Индикатор кода — RC-5 Protocol Philips
При конструировании дистанционного управления на инфракрасных лучах для контроля удобно иметь индикатор кодов передаваемых пультом. Плата ch-c3000 позволяет изготавливать устройства с возможностью установки фото приемников типа TSOP4836.
Введение
Многообразие недорогих пультов дистанционного управления с кодировкой RC-5, выпускаемых разнообразными производителями, делает его привлекательным для управления бытовыми приборами. При появлении нового пульта всегда сталкиваешься с проблемой выяснить какая кнопка генерирует какой код, поэтому в этом нам сможет помочь описываемое устройство.
Немного теории
Код RC-5 использует манчестерское кодирование. Этот принцип кодирования удобен для синхронизации декодирующего устройства. В этом случае можно применять тактирование без кварцевой стабилизации частоты, что очень удобно.
Передача бита в RC-5 имеет следующие характеристики:
Формирование логической единицы , логического ноля . Для декодирования необходимо определять значения уровней сигнала в момент прихода синхроимпульса.
Длительность одного байта соответствует 1778 мкс. Длительность «пакета» передачи составляет 14 бит. И имеет следующий вид:
Рисунок приведен после сигнала фотоприемника для упрощения понимания процесса декодирования.
Обратите внимание, что контроллер «увидит» начало передачи, только начиная с середины первого бита, это есть «линия» синхросигнала. В Манчестерском кодировании всегда будет присутствовать изменение уровня сигнала в середине бита. Это свойство используется для синхронизации таймера измерения длительности импульса.
Декодирование заключается в том, что запустив таймер во время синхроимпульса нам необходимо каждый раз в момент прерывания по фронту, изменять полярность контроля фронта сигнала. При получении очередного прерывания по фронту, сравнить полученную длительность по таймеру со значением ~1331 мск. Если полученное значение меньше, значит это начало байта, если больше — синхроимпульс, в этом месте можно судить о значении бита. Цикл повторения передачи кода 64 бита.
Индикатор в собранном виде.
Схема индикатора.
Демонстрация работы индикатора.
Файлы для загрузки
[wpdm_file id=58 title=»true» desc=»true» template=»bluebox drop-shadow raised» ]
[wpdm_file id=59 title=»true» desc=»true» template=»bluebox drop-shadow raised» ]
[wpdm_file id=60 title=»true» desc=»true» template=»bluebox drop-shadow raised» ]
[wpdm_file id=61 title=»true» desc=»true» template=»bluebox drop-shadow raised» ]
Убран лишний код.
[wpdm_file id=65 title=»true» desc=»true» template=»bluebox drop-shadow raised» ]
Спасибо Вам!
Да правда ето очень тяжелый код. Я думаю что наверно не будет необходимости ползуются такии защиты в коде. Если возможно и если есть время у вас, можно сделать простой код для RC-5 на асемблере. Думаю что ето будеть интересно для всеь. Спасибо Вам!
Хорошо, я в ближайшие две недели, собираюсь для ИЛЛИССИ подготовить статью и за одно на ассемблере подготовлю для RC-5 демо программу и описание.
Понял. Я вычистил, практически все, что не касается декодирования. Самая последняя ссылка. Думаю там будет проще понять. Сама программа располагается в «прерываниях». Это сильно тяжелый код, он написан для работы там где есть сильные ИК помехи, там он себя на 100% оправдывает, есть более простой вариант, он проще, и для понимания, и намного меньше занимает места (правда под Си). Он появиться в ILLISSI в ближайшее время. Если будут вопросы не стесняйтесь — задавайте.
Уже все в порядке!!! Получилось!!! Спасибо!
У меня есть один вопрос: почему программа настолько велика, и внутри есть многие другие модулый. Можно разместить только ассемблерный код для , Индикатор кода — RC-5 ?
Здравствуйте!
Почему не могу забрать «Файлы для загрузки» из проекта
«Индикатор кода — RC-5 Protocol Philips» ?
Без понятия, должно все нормально скачиваться.