온도세서가 어떻게 동작하는걸까?

김지성·2022년 8월 4일
1

Embedded

목록 보기
16/19

One-Wire가 뭘까?

우리가 사용하고 있는 온도센서는 One-Wire 통신 방식으로 작동되고 있다. One-Wire 통신의 최대 장점은 두 개의 선으로 양방향 통신과 전원을 공급할 수 있다는 것이다.

[짧은 상식] POE(Power Over Ethernet)이란?

네트워크 장비에 전원을 연결하지 않고, UTP 케이블을 이용하여 데이터 및 전력을 함께 전송하는 기술을 말한다.

PSE(Power Soucring Equipment) - UTP케이블 이용하여 PD에게 전원 공급
PD(Power Devices) - 전원을 공급 받는 장치(IP Camera, CCTV, IP Phone 등)

**UTP : 주거, 빌딩 등 각종 건물에 흔히 사용되는 통신케이블

프로토콜의 종류

1) 물리적인 통신 방식만을 규정한 프로토콜(SPI...)
2) 물리적 + 소프트웨어적인 규칙까지 정한 프로토콜(One-Wire...)
3) 소프트웨어적인 규칙만 정의한 프로토콜(http, TCP...)
4) 서로 상하관계가 있는 프로토콜(http->tcp->ethernet->광통신 프로토콜...)

1.1 통신 시작

One-Wire는 클럭을 받고 보내는 핀이 따로있지 않다. 그래서 전압과 시간을 이용하여 신호를 구분해낸다.

1) "5V = 1, 4V = 2, 3V = 3..."이런 방식의 신호는 노이즈에 굉장히 취약하다.
2) "5V = 1, 0V = 0일때 그 전압을 n초 유지하라" 이런 방식을 굉장히 많이 사용한다.

위 그림은 DS18B20가 초반에 어떻게 작동하는지 보여주는 정보이다.

1) 처음에는 마스터(MCU)가 HIGH에서 LOW로 떨어트리고 480us만큼 유지하라고 한다.
2) 그리고 15~60us만큼 LOW에서 HIGH로 올린다.
3) 그리고 HIGH에서 LOW로 떨어지는데 60~240us만큼 유지한다(데이터 정보를 수집).
4) 반복
위 그림은 DS18B20이 작동하기 위해 필요한 조건들을 소스로 정리한 것이다.

1.2 명령어 종류

MASTER가 통신 시작을 알리고 DS18B20으로부터 presence pulse(정보)를 수신후
"슬레이브는 ROM code(주소)를 갖는다"라는 명령어를 보낼 수 있다.
** i2c에서는 adress라고 하지만 one-wire에서는 ROM code라고 한다.(이름만 다를뿐 원리는 비슷하다.)

ROM Command : 장치를 선택하기 위한 명령어(One-Wire를 사용하는 장치들의 약속)


  • Search ROM : One-Wire bus에 연결된 모든 slave 장치들의 ROM Code(Adress)를 읽는다. (전체 주소를 알아내는 과정)
  • Read ROM : Bus에 장치가 하나만 있을 때 사용(전체 다 훑어 볼 필요없이 바로 선택)
  • Match ROM : Bus에 연결된 slave 장치들이 있지만 그 중에서도 내가 선택한 slave를 작동시킨다. 나머지 slave는 기다리게 한다. (1:1 매칭하는 과정)
  • Skip ROM : 모든 slave장치에게 동시에 명령을 보낼 때 사용한다.

Function Command : 장치에게 특정 동작을 수행하기 위한 명령어
(제조사 마다 성격도 다르고 센서마다 하는 역할이 다르므로 정해진게 없다.)


  • Convert t : 신호선으로 전원을 공급받는 경우 converttmp 명령을 보낸 뒤 신호선을 HIGH로 올려 온도가 변하는 동안에도 전원을 공급해줌
  • Write Scratchpad3바이트 데이터를 scratchpad에 쓴다. (Output Mode)
  • Read Scratchpad
    Scratchpad의 값을 읽어온다. (Input Mode)
  • Copy Scratchpad
    Scratchpad의 값을 EEPROM으로 저장한다. (Scratchpad는 전원이 꺼지면 내부에 있는 정보들이 싹 날라가지만, EEPROM은 사라지지 않는다.) + 신호선으로 전원 공급시 명령어를 보낸 뒤 10us동안 HIGH 유지해야 한다.

[짧은 상식] Scratchpad Memory란?

특정 정보가 모여있는 공간 (자세한건 인터넷을 봐도 모르겠네)

[짧은 상식] Threshold란?

특정 기준값을 넘지 않는다면 알람이 울리지 않지만 기준값을 넘으면 알람이 울린다.




<참고 자료>
1) https://www.maximintegrated.com/en/design/technical-documents/app-notes/1/1100.html

2) https://developer.electricimp.com/resources/onewire

3) https://blog.naver.com/specialist0/221052688558 - 한글정리

profile
JUST DO IT

0개의 댓글