Главная :: Цифра:: Описание протоколов ИК систем дистанционного управления.2006-07-15


Предисловие.

Задавшись однажды вопросом создания системы управления на ИК лучах, долго искал описание протокола Сони. Нигде внятного описания я так и не нашел. Предлагаемый ниже материал основан на собственных изысканиях и крупицах собранной информации по буржуйскому интернету. Описание остальных протоколов - компиляция datasheet фирм "Vishay Telefunken", Atmel и др.


1. Протокол SONY.

В протоколе используется модуляция pulse-lenght или по-русски ШИМ. Это означает, что кодирование битов "0" и "1" производится за счет изменения длины импульса. Базовый интервал Т равен 550мкс. Для кодирования "1" длина импульса равна 2*Т = 1100мкс, "0" длина импульса равна Т = 550 мкс. Импульсы разделены между собой с интервалом Т. Ниже приведен поясняющий рисунок.

Формат кадра:

Кадр начинается со стартового импульса, равного 4Т. Далее следует пакет из 12 или 15 бит данных. Длина пакета ограничена и равна 45мс. В случае 12-ти битной последовательности 7 бит отводится под команду, 5 бит под адрес устройства (например, телевизор, ПКД и др.). В 15-ти битном случае 8 и 7 бит соответственно. При передаче младший бит последовательности идет первым (LSB first). Например, для телевизора код адреса <00001>, код кнопки "Power" <0010101>. Таким образом, код команды "Power" будет <000010010101>. Посмотрим, как будет выглядеть алгоритм передачи этой команды. Сначала посылаем стартовый импульс, затем биты команды в обратном порядке <101010010000>. После передачи команды удерживаем состояние лог "0" по достижении 45 мс интервала с начала передачи.

Алгоритм передачи в общем виде:


begin /* Посылка стартового бита */
line_high //устанавливаем лог-1
wait 2.2 ms
line_low //устанавливаем лог-0
wait 0.55 ms /* посылаем пакет */ /* LSB first */
for current_bit = low_order_bit to high_order_bit
do
begin
line_high //устанавливаем лог-1
if (current_bit is a 1)
wait 1.1 ms
else
wait 0.55 ms
line_low //устанавливаем лог-0
wait 0.55 ms // разделительный интервал
end
wait_for_45ms //Удерживаем лог-0, пока полное время передачи не станет 45 мс.
end

Дополнительная информация:

Для приема ИК излучения удобно использовать интегральный ИК-приемник фирмы "Vishay Telefunken" TSOP1736. В розницу его стоимость около 1$.

По принципу работы TSOP1736 инвертирует передаваемый сигнал (см. datasheet), поэтому на его выходе будет примерно следущая картина


2. Протокол RC5 (bi-phase coding).

В стандарте RC 5 используется бифазное кодирование, также известное как код Манчестер. Частота несущей равна 36 кГц. Начало передачи определяют 2 стартовых бита. Следом идет toggle бит. Если нажать кнопку на пульте и держать, будут генерироваться посылки (DataWord) с одинаковым значением Toggle bit. Если отпустить кнопку и нажать снова, пойдут те же посылки, но уже с инверсным значением Toggle bit. Следующие 5 бит - адрес источника, остальные 6 - код команды. Длина пакета (dataword) равна 24.9мс, период повторения пакета 114мс. Длина одного битового интервала ~ 1.8мс.


Пример реализации RC5 декодера можно подглядеть здесь или в документе "AVR410: RC5 IR Remote Control Receiver" фирмы Atmel.

На этом пока всё, если этого мало, пишите.

написал: webmaster


Комментарии

Здесь никто ничего не написал. Вы можете быть первым.


Оставить сообщение

Только зарегистрированные пользователи могут комментировать.



   Copyright by Sibaudio 2005-2022