worklog

Введение
В данной статье рассматриваются принципы работы ИК пультов дистанционного управления (ПДУ). Многие современные устройства оборудованы системами дистанционного управления. Инфракрасный свет, невидимый для глаз, оказывается весьма простым, удобным и надежным средством беспроводного дистанционного управления.
Вокруг нас существует большое количество источников инфракрасного излучения. Для обеспечения надежного приема и гарантированной защиты от помех используется модуляция сигнала и кодирование. К сожалению нет единого и универсального протокола для ИК ПДУ, хотя среди всего многообразия есть наиболее широкораспространенные.
Теория
Передача данных производится, в близком к видимому инфракрасном спектре. Длина волны в большинстве реализованных систем варьируется в пределах 800 - 950 нм. Самый простой способ избавиться от фонового шума - модулировать (заполнить) сигнал при передаче одной из стандартных частот: 30, 33, 36, 37, 38, 40, 56 кГц. Именно на эти частоты настроены все современные интегральные приемники.
Для обеспечения достаточной дальности при передаче кодовой последовательности необходимо сформировать мощный сигнал. Ток через ИК-светодиод может достигать 1 А - такие токи вполне допустимы в импульсном режиме, при этом средняя рассеиваемая мощность не должна превышать предельно допустимую, указанную в документации.
Разработано большое количество специализированных микросхем (SAA3010, GS8489, KS51840 и т.п) генерирующих готовую кодовую последовательность и потребляющих минимальный ток ждущем режиме, что немаловажно при питании от батарей. Эти микросхемы существенно упрощают схему ПДУ. Когда мы нажимаем кнопку пульта, микросхема передатчика активизируется и генерирует кодовую последовательность, с заданым заполнением. Светодиод преобразуют эти сигналы в ИК-излучение. Излученный сигнал принимается фотодиодом, который снова преобразует ИК-излучение в электрические импульсы. Эти импульсы усиливаются и демодулируются микросхемой приемника. Затем они подаются на декодер. Декодирование обычно осуществляется программно с помощью микроконтроллера.
Приемник ИК ДУ должен восстанавливать данные с двухфазным кодированием, он должен реагировать на большие быстрые изменения уровня сигнала независимо от помех. Ширина импульсов на выходе приемника должна отличаться от номинальной не более чем на 10%. Приемник должен быть нечувствительным к постоянным внешним засветкам. Удовлетворить всем этим требованиям достаточно непросто. Старые реализации приемника ИК ДУ, даже с применением специализированных микросхем, содержали десятки компонентов. Такие приемники часто использовали резонансные контуры, настроенные на частоту заполнения. Все это делало конструкцию сложной в изготовлении и настройке, требовало применения хорошего экранирования.
В последнее время большое распространение получили трехвыводные интегральные приемники ИК ДУ (SFH5110-xx, TSOP17xx, TFMS5хх0 и т.п.). В одном корпусе они объединяют фотодиод, предусилитель и формирователь. На выходе формируется обычный ТТЛ сигнал без заполнения, пригодный для дальнейшей обработки микроконтроллером. Наиболее важный параметр при выборе приемника - частота заполнения.
Внутренний усилитель интегрального приемника имеет высокий коэффициент усиления, поэтому для исключения самовозбуждения и устранения влияния наводок по цепям питания необходимо использовать электролитический конденсатор емкостью не менее 4,7 мкФ, подключенный максимально близко к выводу VCC.
Модуляция
В ПДУ используется три вида модуляции. Рассмотрим их без заполнения, приведенных к ТТЛ уровням (сразу на выходе типичного ИК-приемника).
Двухфазное кодирование (Bi-phase coding)
Фронт импульса - лог. "1", спад импульса - лог. "0".

Модуляция длительностью пауз (Pulse Distance Modulation)
Длина импульсов постоянна. Паузы большей длительности - лог. "1" , меньшей - лог. "0".

Модуляция длительностью импульса (Pulse Width Modulation)
Длина пауз постоянна. Импульсы большей длительности - лог. "1" , меньшей - лог. "0".

Протокол RC5
Один из самых старых и распростаненных протколов. В свое время RC5, разработаный фирмой Philips для управления бытовой аппаратурой, получил большое распространение. Сейчас он применяется реже, и, в основном, любителями из-за своей простоты и широкой доступностью недорогих компонентов. Позднее фирма Philips внедрила и стала использовать улучшенный протокол RC6.
- 5-битный адрес, 6 битные команды
- модуляция Bi-phase coding
- сначала идут старшие биты, потом младшие (MSB first)
- частота заполнения 36 кГц

Формат посылки RC5

Кодирование лог. "0" и лог. "1"
Два первых бита - это стартовые биты (всегда лог. "1"). Управляющий бит T изменяется только при новом нажатии на кнопку. При удержании кнопки, посылка передается с интервалом 64 такта (113,778 мс).

Повторная передача
Протокол NEC
Очень распростаненный, простой и универсальный протокол. Его используют многие корейские и японские производители бытовой техники, такие как NEC, Sanyo, Panasonic, Hitachi, Nokia. Сейчас сложно установить кому из них принадлежит эта разработка, но в интеренете он чаще всего упоминается как NEC протокол.
- 8-битные адрес и команды
- адрес и команды дублируются с инверсией
- модуляция Pulse Distance Modulation
- сначала идут младшие биты, потом старшие (LSB first)
- частота заполнения 38 кГц

Формат посылки NEC

Стартовая последовательность

Кодирование лог. "0" и лог. "1"
Основная посылка передается только один раз при нажатии на кнопку. При удержании кнопки, передается последовательность повтора через каждые 110 мс.

Последовательность повтора

Повторная передача
Протокол JVC
Протокол очень похож на NEC. Отличия заключаются только во временных интервалах, отсутствием дублирования адреса-команд с инверсией и способом передачи состояния удержания кнопки.
- 8-битные адрес и команды
- модуляция Pulse Distance Modulation
- сначала идут младшие биты, потом старшие (LSB first)
- частота заполнения 38 кГц

Формат посылки JVC

Стартовая последовательность

Кодирование лог. "0" и лог. "1"
Основная посылка передается только один раз при нажатии на кнопку. При удержании кнопки, передается только команда через каждые 50-60 мс.

Повторная передача
Протокол Sony
Еще один распространенный протокол.
- 12-, 15- и 20-битные варианты протокола
- модуляция Pulse Width Modulation
- сначала идут младшие биты, потом старшие (LSB first)
- частота заполнения 40 кГц
В 12-ти битном варианте: 7 бит команды и 5 бит адреса устройства. В 15-ти битном варианте 8 и 7 бит соответственно.После окончания передачи удерживается состояние лог. "0" до достижения 45 мс интервала с начала передачи.

Формат посылки Sony

Стартовая последовательность

Кодирование лог. "0" и лог. "1"
При удержании кнопки, передается только команда через каждые 45 мс.

Повторная передача
Определение типа протокола
Самый простой способ узнать с каким пультом мы имеем дело, не имея под рукой осцилографа - записать сигнал на компьютер. Для этого нужно подать сигнал с включенного по стандартной схеме интегрального приемника на микрофонный вход и записать его на компютер, а затем проанализировать полученный сигнал. Главное условие - установить частоту дикретизации более 44 кГц (например 96 кГц или выше). Получаем следующее...
Сигнал с приемника получается инвертированным. Масштабируем запись и расставляем маркеры. Теперь можно замерить длительность импульсов. В данном случае длительности импульсов составили:
- первая часть синхроимпульса - 9 мс;
- вторая часть синхроимпульса - 4,5 мс;
- короткие импульсы - 9 мс / 8 имп = 1,125 мс;
- длинные импульсы - 18 мс / 8 имп = 2,25 мс.
теперь осталось найти и уточнить тип данного протокола. Легко видеть, что это протокол NEC.
Декодирование
Для дальнейшего изучения принципов работы ИК ДУ соберем тестовую схему, состоящую из ИК приемника (TSOP1736), микроконтроллера (ATtiny12L) и светодиода, выполняющую следующие задачи:
- принять первую посылку с пульта;
- запомнить "свою" кнопку;
- зажигать светодиод синхронно с нажатием "своей" кнопки.

Тестовая схема
Тестовая схема, для упрощения, изображена без цепей ISP. Питание схемы, а также прошивка микроконтроллера выполняется напрямую по разъему ISP от программатора USBasp. Это оказывается очень удобным, т.к. нет лишних проводов питания, блок питания не занимает место на столе во время разработки.

Тестовая схема, собранная на макетной плате
Прошивка
Выбран самый дешевый микроконтролер ATtiny12L. Ресурсы данного микроконтроллера весьма ограничены, поэтому разработка прошивки cделана на ассемблере. В приложенном исходнике с тестовой прошивкой подробно описан алгоритм работы.
Тестовая прошивка IR.asm
Ссылки
[1] SB-Projects. IR Remote Control Theory
http://www.sbprojects.com/knowledge/ir/i
[2] Микроэлектронные проекты. Леонид Иванович Ридико. Применение кода RC-5
http://www.telesys.ru/electronics/projec
[3] Теория работы ИК пультов ДУ
http://www.vidon.ru/old/ir-remote/teory.h
[4] Описание протоколов ИК систем дистанционного управления
http://www.sibaudio.ru/?id=30&pid=34&cid=1
October 19 2008, 17:13:07 UTC 3 years ago
October 20 2008, 06:52:42 UTC 3 years ago
November 11 2008, 21:07:02 UTC 3 years ago
Протокол NEC
Очень распростаненный, простой и универсальный протокол. Его используют многие корейские и японские производители бытовой техники, такие как NEC, Sanyo, Panasonic, Hitachi, Nokia. Сейчас сложно установить кому из них принадлежит эта разработка, но в интеренете
А так - аплодирую стоя. Просто охуенно. Прямо захотелось восполнить проблемы в электротехнике и радиоэлектронике, которые мешают въехать в аналоговую и цифроаналоговую схемотехнику настолько, чтобы самому разрабатывать девайсы (ну, мелкие понятное дело, без опыта практики и прочего не позалупаешься (:) и... например, чайник научить включяться по пульту. Или к компу примонстрячить для музыки или видео.
А вообще, интересен вариант с bluetoosh управлением, и прочим беспроводным но не "инфра". Только, чую, это будет гораздо дороже.
Ещё такой вопрос - где купить монтажную платы, запчасти? Эх, всё равно чисто академический интерес... Не до того... Программмист я, не электронщик =)
Anonymous
January 24 2009, 19:23:55 UTC 3 years ago
Теория ИК ДУ
Спасибо за такую хорошую статью!!! У вас есть дар ясно обьяснять!И это без всяких там самолюбований.. Это такая редкость для РУнета..
А продолжение будет? Меня интересует как сделать просте дистанционное ИК управление для игрушки с 2я эл.моторами, пульт и приемник. (в вашем изложении конечно! :)))
January 24 2009, 19:48:19 UTC 3 years ago
Re: Теория ИК ДУ
да, продолжение будет. Это "Теория ИК ДУ", а будет еще "Практика ИК ДУ". Ну а прошивку и схему подключения для управления 4-мя нагрузками могу хоть сейчас выслать. Три варианта - первый режим "Нажал-Включилось / Нажал-Выключилось", второй режим "Нажал-Включилось / Отпустил-Выключилось", третий - "Нажал-Включилось,удерживаем-импульсы / Отпустил-Выключилось"Anonymous
January 26 2009, 18:42:36 UTC 3 years ago
Re: Теория ИК ДУ
это хорошая новость! Значит можно будет понять что это за детали на схеме и почему они именно так размещены. Ждемс! ))Большое спасибо за схемы!!! если не затруднит, вышлите сюда пожалуйста boxx77@gmail.com Буду более чем счастлив! ))
Я правда не понял в чем разница между вторым вариантом и третим , мне нужно так - "Нажал и пока удерживаю - Включено/ отпустил или исчез сигнал- Выключилось". И так в обе стороны для каждого из двух моторов. Дистанция метров 10 - 15. Бюджетная схема, чем дешевле- тем лучше))
November 26 2009, 21:14:36 UTC 2 years ago
Re: Теория ИК ДУ
прошу прощения... пропустил ваш коммент...http://woodocat.ru/LJ/IR/IRoo_x4.zi
Anonymous
November 23 2009, 19:44:01 UTC 2 years ago
Re: Теория ИК ДУ
Вы не могли бы прошивку и схему подключения для управления 4-мя нагрузками прислать Renegad-master@mail.ruЯ собрал на восем нагрузок и тут возникла проблема в тригерном режиме (вкл.выкл.) работае, а я бы хотел чтобы при нажатии соответствующей кнопки вкл. и удержании ее была вкл нагрузка(команда проходила) при отпускании команда пропадала, уже всю голову поломал с программой контроллера(циклы,таймера задержки) добился только импульсного включения но меня это не устраивает.
Спасибо за понимание Сергей.
November 26 2009, 21:10:51 UTC 2 years ago
Re: Теория ИК ДУ
наконец добрался до компа :)Архив выслал на почту.Как подключать:
8<--------------------------------------
; --- определение выводов ---
.equ IRR = 4 ;PB4 - инфракрасный приемник
.equ CH1 = 0 ;PB0 - первый канал (Push-On/Push-Off)
.equ CH2 = 1 ;PB1 - второй канал (Push-On/Push-Off)
.equ CH3 = 2 ;PB2 - третий канал (Push-On/Push-Off)
.equ CH4 = 3 ;PB3 - четвертый канал (Push-On/Push-Off)
8<--------------------------------------
В архиве
R4 - режим триггера
K4 - режим "кнопки"
P4 - серия импульсов
ваш вариант К4
November 26 2009, 21:15:20 UTC 2 years ago
Re: Теория ИК ДУ
тот же архив для общего доступа http://woodocat.ru/LJ/IR/IRoo_x4.ziAnonymous
March 15 2009, 16:52:56 UTC 3 years ago
Anonymous
June 10 2009, 06:38:03 UTC 2 years ago
September 25 2009, 09:59:45 UTC 2 years ago
Anonymous
April 11 2011, 10:43:43 UTC 1 year ago
Хороший сайт! Все красиво сделано.
Автору нужно памятник постаить за такое!:)Отличный сайт! Все хорошо сделано.
January 27 2012, 04:12:33 UTC 4 months ago