Печать

Тестер пультов ДУ протокола RC-5

Опубликовано . Опубликовано в Устройства на AVR

Рейтинг:   / 2
ПлохоОтлично 

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

Достоинство предлагаемого прибора — полный визуальный контроль передаваемой информации. Хотя он "понимает" команды только одного, самого распространенного формата RC5, изменив программу, можно приспособить тестер и к приему команд других форматов.
Команда согласно протоколу RC5 показана на рис. 1. Кодовая последовательность (кривая 1) состоит из 14 тактовых интервалов длительностью по 1,78 мс (64 периода частоты 36 кГц), в каждом из которых передают один разряд двоичного кода. Лог. 1 соответствует положительный перепад уровня в середине тактового интервала, лог. 0 — отрицательный.

Рис.1

Два первых разряда (St,, St2) — стартовые. Они всегда имеют значение 1, что позволяет приемнику опознать начало команды. Третий разряд — служебный. Его значение сменяется противоположным при каждом нажатии на кнопку ПДУ, что позволяет отличить новую команду от автоматического (каждые 114 мс при удержании кнопки нажатой) повторения ранее поданной. В разрядах S4—S0 указан адрес устройства (системы), которому предназначена команда. Приведенный в примере адрес 5 (00101) закреплен за видеомагнитофонами, а, например, телевизорам присвоены адреса 0 (00000) или 1 (00001), видеокамерам — 9 (01001). В шести разрядах С5—С0 записан собственно код команды, в данном случае 35Н (110101), "Воспроизведение".

Протокол RC5 позволяет с помощью одного пульта подавать по 64 команды независимо на 32 различных устройства. Если этого недостаточно, используют "расширенный" протокол RC5, согласно которому еще один разряд команды (С6) занимает место второго стартового (St2). Таким образом, число возможных команд возрастает до 128.

При передаче команд по ИК каналу связи сформированной кодовой последовательностью RC5 модулируют несущую частоту 36 кГц, в результате чего ПДУ излучает пачки ИК импульсов этой частоты (кривая 2 на рис. 1). Для их приема обычно применяют специализированные модули, импульсная последовательность на выходе которых (кривая 3) инверсна исходной.

Тестер протокола RC-5
Рис.2

Прибор, схема которого приведена на рис. 2, построен на микроконтроллере AT90S2313 фирмы Atmel. Выходы портов микроконтроллера выдерживают втекающий ток до 20 мА, что позволяет напрямую подключать к ним светодиодные индикаторы. Сигнал, принятый и демодулированный ИК приемником В1, поступает на выв. 3 (PD1) микроконтроллера DD1, сконфигурированный как вход с внутренним "подтягивающим" резистором. Блокировочный конденсатор С1 должен быть расположен как можно ближе к выводам питания ИК приемника.

Светодиодный индикатор HG1 подключен к порту В (выводам 12—19) микроконтроллера DD1. Резисторы R4—R11 ограничивают ток. Динамическая индикация организована путем поочередной установки уровня лог. 0 на выводах 7—9,11 (PD3—PD6) микроконтроллера DD1, к которым подключены базовые цепи транзисторов VT1—VT4, коммутирующих аноды светодиодов индикатора.

Адрес и код команды, принятой тестером, индикатор отображает четырьмя шестнадцатиричными цифрами. Две старшие — адрес устройства, которому послана команда, две младшие- ее код. Учтите, если Ctrl=1, старшая шестнадцатиричная цифра кода команды будет выведена увеличенной на 4. Это связано с особенностями программной процедуры декодирования.

Программа микроконтроллера на языке BASIC разработана с помощью системы программирования BASCOM-AVR.

Основную задачу — декодирование принятой команды выполняет подпрограмма  Getrc5.  Она  встроена в компилятор, поэтому описывать ее в тексте программы не требуется.  Она начинает декодироаание, обнаружив в принятом сигнале паузу длительностью более 3,5 мс, и считает первый же принятый после этого импульс стартовым. Закончив прием, подпрограмма возвращает адресную часть команды в переменной А, ее код — в переменной С. Если в течение 131 мс ни одного импульса не принято, подпрограмма завершает работу, присвоив переменным А и С значения 255.

Далее программа разделяет старшие и младшие разряды адреса и кода команды, занося их в переменные К(1)—К(4), и с помощью функции Di преобразует полученные значения в коды шестнадцатиричных цифр для отображения на семисегментном индикаторе. Светящемуся элементу соответствует 0 в разряде кода, погашенному — 1. Сигналы распределены по выводам микроконтроллера исходя из удобства разводки печатной платы. В цикле динамической индикации операторами Waitms заданы интервалы (в миллисекундах), в течение которых выводится каждая цифра

Вместо ИК приемника ILMS5360 подойдет SFP506 или TSOP1736. Кварцевый резонатор ZQ1 — в любом конструктивном исполнении, но обязательно на частоту 10 МГц, иначе потребуется корректировка программы. Индикатор BQ-M326RD можно заменить CA56-12SRD с цифрами большего размера или четырьмя отдельными индикаторами с общим анодом. В первом случае достаточно учесть увеличенные размеры индикатора (цоколевка совпадает), во втором — потребуется существенная корректировка печатного монтажа. В качестве стабилизатора DA1 пригоден любой с выходным напряжением 5 В. Конденсаторы С2, СЗ — керамические КМ-5, оксидные С1, С4 — К50-35 или импортные. Резисторы — МЛТ0-125.

Источник: Радио №2, 2005 г.

Файлы:
Дата 12.11.2010 Размер файла 4.34 KB Закачек 1080

Рекомендуем посмотреть