Infrared Communication : NEC Protocol
범용적으로 사용되는 적외선 통신 프로토콜 중 하나인 NEC 프로토콜 방식
을 소개합니다.
IR 적외선 통신
IR 적외선 통신은 아래와 같은 리모컨으로 전자기기를 제어하기 위한 방법입니다. 가정에서도 에어컨, TV 등의 모니터에 대부분 사용됩니다. 리모컨에 있는 적외선 송신기로 전자기기의 적외선 수신기에 제어할 데이터를 송신합니다. 많이 사용해보셔서 아시겠지만, 근거리에서 사용 가능 하고, 방향의 영향을 많이 받습니다. 적외선의 빛을 껏다 켯다 하는 방식으로 송신기와 수신기 사이에 물리적 장벽이 있으면 통신이 불가능합니다.
적외선 리모컨
적외선 통신 방식은 아래와 같이 전자기기의 제조사에 따라 다양한 통신 방식이 존재합니다. 이 말은 표준화가 되지 않은 혹은 덜 된 통신 방식입니다. 삼성은 구글링해도 따로 프로토콜 명이 없는 것 같습니다. LG는 제품마다 다를 수 있지만, NEC 통신 방식을 사용하는 것으로 확인됩니다.
✔ 프로토콜 / 제조사
- RC5 / Philips
- RC6 / Philips
- SIRC / Sony
- NEC / 보편적으로 많이 사용
- RCA / XBOX
- - / Samsung
각 제조사마다 프로토콜이 다르기 때문에, 보편적으로 많이 사용하는 NEC 프로토콜에 대해서 설명하겠습니다.
NEC Protocol
NEC 통신 방식은 보면적으로 많이 사용되는 프로토콜입니다. 대부분의 중소기업 제품에서 사용하는 적외선 리모컨은 NEC 통신 방식을 사용합니다.
NEC Data Bit
NEC 프로토콜에서 데이터 0 과 1을 보내는 방식은 아래와 같습니다. NEC 프로토콜에서 캐리어 신호 주파수는 38kHz 를 사용하여 HIGH 신호 동안은 38kHz 의 속도로 적외선을 깜빡이게 합니다.
- Data 0 : 562.5us Pulse 신호 뒤에 562.5us LOW 신호
- Data 1 : 562.5us Pusle 신호 뒤에 1.6875ms LOW 신호
- NEC Carrier Frequency : 38kHz
NEC Procotol : Logical Data 0, 1
NEC Data Frame
NEC Protocal 의 데이터 프래임은 아래 그림과 같은 구조를 가집니다.
- Start : 9ms Pulse 유지 후 4.5m Low
- Address : 8Bit Address Data
- Address(Inverse) : 8Bit Inverse Address Data
- Command : 8bit Command Data
- Command(Inverse) : 8bit Command Data
NEC Data Frame
Address 와 Command 의 반전된 데이터를 함께 보내는 이유는 수신부에서 정상적으로 데이터가 수신되었는지 확인을 위한 용도입니다. 추가적으로 반전된 데이터를 사용함으로써 Address 데이터 프레임과, Command 프레임의 시간이 동일하고, 전체 데이터 프레임의 전송 시간을 37.5ms 로 고정합니다.
NEC Consecutive Stream
NEC 연속 신호 규정
볼륨 업을 누르고 있는 것과 같이 연속적인 신호를 송신하는 경우 Start 신호 이후 2.25ms 의 Pulse 를 유지하면 됩니다.
마무리
본 포스에서 IR 적외선 통신 방식 중의 하나인 NEC 프로토콜에 대해 설명하였습니다. 아두이노에서 적외선 통신을 하기 위해 반드시 알고 있어야 하는 내용은 아니고, 제공된 라이브러리 사용법만 익혀도 사용 가능합니다. 하지만 이 방식을 이해하면 적외선 통신으로 시리얼 통신을 하는 등 어려가지 응용 및 문제점 해결이 가능해서 정리를 하였습니다.
이후 포스트에서는 IR 송수신 부품에 대한 설명을 하고, 아두이노로 적외선 통신을 사용하는 방법을 소개할 예정입니다. 끝까지 읽어 주셔서 감사합니다.😄
'Embedded > Arduino' 카테고리의 다른 글
아두이노 강좌 #36 IRremote 라이브러리로 IR 수신 코드 작성 - 603LM (2) | 2020.09.08 |
---|---|
아두이노 강좌 #35 적외선 IR(Infrared) 송신 수신 부품 CL-1L5 603LM (0) | 2020.09.07 |
아두이노 코딩 : 스텝 모터 위치 제어 28BYJ-48 5V (0) | 2020.09.02 |
아두이노 강좌 #33 Stepper 라이브러리 기본 사용법 및 주의사항 (1) | 2020.09.02 |
아두이노 강좌 #32 스텝 모터 28BYJ-48 5V 라이브러리 없이 동작 - 여자 방식 비교 (2) | 2020.09.02 |