Индикатор кода — RC-5 Protocol Philips

 


Индикатор кода — 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» ]


С наилучшими пожеланиями Catcatcat!

Индикатор кода — RC-5 Protocol Philips: 6 комментариев

  1. Спасибо Вам!
    Да правда ето очень тяжелый код. Я думаю что наверно не будет необходимости ползуются такии защиты в коде. Если возможно и если есть время у вас, можно сделать простой код для RC-5 на асемблере. Думаю что ето будеть интересно для всеь. Спасибо Вам!

  2. Понял. Я вычистил, практически все, что не касается декодирования. Самая последняя ссылка. Думаю там будет проще понять. Сама программа располагается в «прерываниях». Это сильно тяжелый код, он написан для работы там где есть сильные ИК помехи, там он себя на 100% оправдывает, есть более простой вариант, он проще, и для понимания, и намного меньше занимает места (правда под Си). Он появиться в ILLISSI в ближайшее время. Если будут вопросы не стесняйтесь — задавайте.

  3. Уже все в порядке!!! Получилось!!! Спасибо!
    У меня есть один вопрос: почему программа настолько велика, и внутри есть многие другие модулый. Можно разместить только ассемблерный код для , Индикатор кода — RC-5 ?

Добавить комментарий