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