Infrared

HackTricks 지원하기

적외선 작동 원리

적외선은 인간에게 보이지 않습니다. IR 파장은 0.7에서 1000 마이크론입니다. 가정용 리모컨은 데이터 전송을 위해 IR 신호를 사용하며, 0.75..1.4 마이크론의 파장 범위에서 작동합니다. 리모컨의 마이크로컨트롤러는 특정 주파수로 적외선 LED를 깜박이게 하여 디지털 신호를 IR 신호로 변환합니다.

IR 신호를 수신하기 위해 광수신기가 사용됩니다. 이는 IR 빛을 전압 펄스로 변환하며, 이는 이미 디지털 신호입니다. 일반적으로 수신기 내부에는 어두운 빛 필터가 있어 원하는 파장만 통과시키고 잡음을 차단합니다.

다양한 IR 프로토콜

IR 프로토콜은 3가지 요소에서 다릅니다:

  • 비트 인코딩

  • 데이터 구조

  • 반송 주파수 — 일반적으로 36..38 kHz 범위

비트 인코딩 방식

1. 펄스 간격 인코딩

비트는 펄스 사이의 간격 지속 시간을 변조하여 인코딩됩니다. 펄스 자체의 너비는 일정합니다.

2. 펄스 폭 인코딩

비트는 펄스 폭의 변조로 인코딩됩니다. 펄스 폭 후의 간격 너비는 일정합니다.

3. 위상 인코딩

맨체스터 인코딩으로도 알려져 있습니다. 논리 값은 펄스 폭과 간격 사이의 전환의 극성에 의해 정의됩니다. "간격에서 펄스 폭"은 논리 "0"을 나타내고, "펄스 폭에서 간격"은 논리 "1"을 나타냅니다.

4. 이전 방식과 기타 이국적인 조합

여러 유형의 장치에 대해 보편적이 되려고 하는 IR 프로토콜이 있습니다. 가장 유명한 것은 RC5와 NEC입니다. 불행히도, 가장 유명하다고 해서 가장 일반적이라는 의미는 아닙니다. 제 환경에서는 NEC 리모컨 두 개만 보았고 RC5는 없었습니다.

제조업체는 동일한 장치 범위 내에서도 고유한 IR 프로토콜을 사용하는 것을 좋아합니다(예: TV 박스). 따라서 서로 다른 회사의 리모컨과 때로는 동일한 회사의 서로 다른 모델의 리모컨은 동일한 유형의 다른 장치와 작동할 수 없습니다.

IR 신호 탐색

리모컨의 IR 신호가 어떻게 생겼는지 확인하는 가장 신뢰할 수 있는 방법은 오실로스코프를 사용하는 것입니다. 이는 수신된 신호를 복조하거나 반전하지 않고 "있는 그대로" 표시합니다. 이는 테스트 및 디버깅에 유용합니다. NEC IR 프로토콜의 예를 통해 예상 신호를 보여드리겠습니다.

일반적으로 인코딩된 패킷의 시작 부분에는 프리앰블이 있습니다. 이는 수신기가 이득 수준과 배경을 결정할 수 있게 해줍니다. 프리앰블이 없는 프로토콜도 있으며, 예를 들어 Sharp가 있습니다.

그런 다음 데이터가 전송됩니다. 구조, 프리앰블 및 비트 인코딩 방법은 특정 프로토콜에 의해 결정됩니다.

NEC IR 프로토콜은 짧은 명령과 버튼이 눌리는 동안 전송되는 반복 코드로 구성됩니다. 명령과 반복 코드 모두 시작 부분에 동일한 프리앰블을 가지고 있습니다.

NEC 명령은 프리앰블 외에도 장치가 수행해야 할 작업을 이해할 수 있도록 주소 바이트와 명령 번호 바이트로 구성됩니다. 주소 및 명령 번호 바이트는 전송의 무결성을 확인하기 위해 역값으로 중복됩니다. 명령 끝에는 추가적인 정지 비트가 있습니다.

반복 코드는 프리앰블 뒤에 "1"이 있으며, 이는 정지 비트입니다.

**논리 "0"과 "1"**에 대해 NEC는 펄스 간격 인코딩을 사용합니다: 먼저 펄스 폭이 전송된 후 그 뒤에 간격이 있으며, 그 길이가 비트의 값을 설정합니다.

에어컨

다른 리모컨과 달리 에어컨은 눌린 버튼의 코드만 전송하지 않습니다. 버튼이 눌리면 모든 정보를 전송하여 에어컨과 리모컨이 동기화되도록 합니다. 이렇게 하면 20ºC로 설정된 기계가 한 리모컨으로 21ºC로 증가하고, 이후 20ºC로 온도가 설정된 다른 리모컨으로 온도를 더 높이면 21ºC로 "증가"하게 됩니다(21ºC에 있다고 생각하고 22ºC로 증가하지 않음).

공격

Flipper Zero로 적외선을 공격할 수 있습니다:

FZ - Infrared

참고 문헌

HackTricks 지원하기

Last updated