5 ноября 2014 г.

IrDA / ИК. Инфракрасные протоколы связи и как с ними работать

Один из самых дешёвых и распространённых способов управления домашней техникой является инфракрасная передача данных. Т.к. человеческий глаз не видит ИК излучения нам оно никак не мешает. 


Но у камер шире спектр видимого излучения, благодаря этому их можно использовать для проверки работоспособности ИК излучателя.



Для того чтобы обеспечить ИК связь необходим ИК передатчик и ИК приёмник. В качестве передатчика подойдёт простейший ИК светодиод. Я заказывал в Китае пару штук и мне пришли на вид обычные красные светодиоды. 

Диапазон частот красного и инфракрасного цвета находятся близко, так что приёмник реагировал и на мерцания красного светодиода. Возможно красное излучение было погрешностью и основная излучаемая длина волны и в ИК диапазоне, но у меня не было оборудования чтобы это проверить.


Есть довольно много источников ИК света, Солнце самый сильный из них, но также есть лампы накаливания, свечи, обогреватели и любая другая нагретая вещь. Все они излучают свет в ИК диапазоне. 

Именно то насколько нагреты тела и показывают нам ИК камеры.




Передатчик

Для того чтобы избежать помех от остальных источников при передаче данных, сигнал подвергается модуляции. Вместо того чтобы просто зажечь светодиод, мы заставляем его мерцать с определённой частотой в тот момент когда хотим передать 1 (или 0) и оставляем его выключенным когда 0 (или 1). 

Таким образом мы можем настроить приёмник чтобы он реагировал только на колебания ИК света определённой частоты и игнорировал различные помехи от других источников.


Как видно чаще всего используется данная система: 1 = отсутствие сигнала на приёмнике и 0 = мерцание светодиода - передатчика. Частота мерцания ИК диода в зависимости от протокола меняется от 30 до 60 КГц.


Приемник

Схема хорошего приёмника намного сложнее.

Не стоит пугаться этой схемы, т.к. все эти части уже интегрированы в 1 корпус.

У передатчиков 3 вывода, + - и сигнал, стандартную схему подключения можно найти в документации, но для проверки можно и подключить напрямую (без фильтров, подтяжек).

Но всё же, следует использовать фильтры т.к. микроконтроллер реагирует и на внешние наводки, МК показывал что есть сигналы на ИК приёмнике, хотя я их не посылал, я отодвинул плату и всё стало нормально.

В документации на TL1838 есть рекомендуемая схема подключения:



Как видно на блок схеме вначале сигнал усиливается, после этого убирается его постоянная составляющая (конденсатор). Затем идёт ограничитель, после него импульс будет иметь постоянную амплитуду, вне зависимости от расстояния до передатчика.

Band Pass Filter - Полосовой фильтр, пропускает сигнал только определённой частоты (нашего передатчика). Далее идёт демодулятор, он преобразует наши колебания в ровный импульс (отделяет полезный сигнал от несущей составляющей).

Интегратор и компаратор определяют наличие сигнала необходимой частоты и если он есть выставляют на выходе 0, иначе 1. Именно поэтому на выходе мы получаем инвертированный сигнал.

Протоколы передачи данных

Есть несколько основных протоколов передачи данных, но часто у каждого производителя техники свой собственный протокол. Они все похожи между собой и разделяются лишь способом модуляции сигнала и длиной импульсов.

Всего есть 3 основных типа модуляции:

Двухфазное кодирование (ДФК). (Manchester modulation) Время передачи 1 бита постоянное.

Если в середине этого интервала фронт импульса это лог. 1. Если спад 0.

--------------------------------------------------------------------------------------------------------------------------

Модуляция длительностью пауз (МДП). (Pulse distance modulation). Как видно длительность импульса постоянная, отличия лишь в длине паузы. 
Больше пауза = 1. Меньше = 0.

--------------------------------------------------------------------------------------------------------------------------
Модуляция длительностью импульса (МДИ). (Pulse length modulation). Обратно предыдущему варианту. Длительность пауз постоянна, отличия в продолжительности импульса.
Больше импульс = 1. Меньше = 0.

Итак разберём из чего состоит сигнал передающийся по средством ИК связи. Для примера возьмём NEC протокол.


Вначале идёт импульс АРУ (AGC) - Автоматическая регулировка усиления, он использовался в старых ИК приёмниках для настройки усиления. После него идёт пауза, по длительности начального импульса и паузы можно определить тип используемого протокола.

После этого посылается адрес начиная с младшего бита. Здесь используется МДП, больше пауза = 1. Затем для надёжности передается инвертированный адрес. В какой-то момент оказалось что 256 адресов недостаточно и решили отказаться от повторной передачи адреса, но взамен увеличить длину адреса до 2 байт.

Адрес не зависит от нажатой кнопки, он всегда одинаков, он отличается от устройства к устройству (телевизор не реагирует на пульт от муз. центра даже если они одной фирмы).

В конце концов передаётся команда и её инверсия, которые определяются нажатой на пульте кнопкой.

Эта информация передаётся всего 1 раз. Если продолжать держать кнопку нажатой, то идёт передача кода повтора:


Код повтора состоит из начального АРУ импульса с последующим коротким импульсом.

Некоторые протоколы:
 

Источники:



Комментариев нет :

Отправить комментарий