1. Bi-phase coding.
Длина импульсов и промежутки между
ними по 0.9мс или 1.8 мс. Логические 0 и 1
определяются, как показано на рисунке:
2. Pulse-distance
modulation. Длина импульсов постоянна.
Промежутки большей длительности - лог. 1
, меньшей - лог. 0.
3. Pulse-length code.
Длина промежутков постоянна. Импульсы
большей длительности - лог. 1 , меньшей -
лог. 0.
Сразу нужно
сделать оговорку по поводу "импульсов".
На самом деле каждый такой "серый"
импульс - это 20-30 очень коротких импульсов
идущих с большой постоянной частотой (от 30
до 56 кГц) или даже вообще инфракрасный фон с
частотой 400 кГц. При оцифровке звуковой
картой (44100Гц) этот "фон" сливается в
импульсы по форме близкие к прямоугольным.
Этого достаточно для точного декодирования.
Стандарты кодировок:
RC-5
Модуляция Bi-phase. Сначала идут
старшие биты, потом младшие.
Если нажать кнопку на дистанционке и
держать, будут слаться посылки (DataWord) с
одинаковым значением Toggle bit. Если
отпустить кнопку и нажать снова, пойдут
те же посылки, но уже с инверсным
значением Toggle bit.
Этот стандарт использует SAMSUNG без
каких-либо отклонений.
Data word:
Пример: адрес "00110111" и команда
"00011010"
кодируются как
"00110111'11001000'00011010'11100101".
NEC
Модуляция Pulse-distance. Сначала идут
младшие биты, потом старшие.
При нажатии кнопки на дистанционке
выдается одна полная посылка, а затем
через промежутки идут одиночные
импульсы, говорящие о том, что кнопка
еще нажата. Перед посылкой (первой
полной и одиночными импульсами) идет
один длинный импульс синхронизации.
В посылке адрес и команда идут два раза
- сначала просто, затем с инверсией (что-то
не совпало - команда не принята). Кроме
того, основная посылка идет только один
раз при нажатии на кнопку. Вероятность
того, что она пройдет правильно с
первого раза, не очень высока.
Этот стандарт используют HITACHI, NOKIA,
AverMedia.
Creative RM-900 (от SoundBlaster Live Platinum)
повторяет первую посылку 2 раза, кроме
того первый байт адреса равен C1h, а
второй 44h, то есть между первым и вторым
байтом нет ничего общего. Для
совместимости первые 2 байта адреса не
сравниваются и используются оба.
RECS 80
Модуляция Pulse-distance. Сначала идут
старшие биты, потом младшие.
На 100% этому стандарту не соответствует
ничего. Например в JVC дистанционках
использован этот стандарт с сильными
отклонениями (расхождения по
длительностям, Toggle bits никогда не
меняются, адресных битов 6, а командных 8
вместо 4 и 6 соответственно).
Используется JVC, Philps.
SONY / Panasonic
Модуляция Pulse-length. Сначала идут
младшие биты, потом старшие. В начале
посылки есть длинный стартовый импульс.
До 20 бит данных.
При декодировании сигнала получается 28-битный
идентификатор вида 0FAAAACC, где F - флаг
определяющий модуляцию, A - адрес, C - команда.
Исключение составляет SONY, где 24 младших
бита определяют просто код команды.