Информационный портал MSEVM



Главная > Каталог программ > Методы кодировки

Методы кодировки самого ИК-сигнала в канале, применяемые в ПДУ

В канале передачи команды передаются пачками импульсов, осциллограммы которых выглядят примерно так:


Рис. 1

Если увеличить разрешение по горизонтали раз в 200, то становится видно, что каждый импульс не является монолитным, а состоит и более коротких импульсов некоторой фиксированной частоты (обычно 36-40 кГц):


Рис. 2
Эта часть довольно очевидна и широко описана, однако самое интересное начинается как раз при более детальном ознакомлении с ИК-пакетом.

Методы кодировки полезных данных внутри пакета

Остановимся где-то посередине между Рис. 1 и Рис. 2 в разрешении по горизонтали. Если присмотреться, то видно, что есть некоторый фиксированный интервал, которому кратны любые интервалы между началом и концом пачки:


Рис. 3
Обратная величина этого интервала и есть DataClock.
Если рассматривать Рис.3, как поток данных, то очевидно, что он несет один бит за интервал времени, равный обратной величине DataClock:

Рис. 4
В принципе, этих трех параметров (частота заполнения "Filler", скорость данных "Data Clock" и смысловой поток) уже достаточно для воспроизведения команды ИК-пульта, но для удобства IR-Studio "вырезает" только один пакет (таких пакетов Рис.1 изображено тр и) из общего потока и записывает код в таком виде:
Filler=36000
DataClock=1800
[Buttons]
1=0101010001010001010101
Это "неоптимизированная" запись.

Методы оптимизации

Как уже было сказано выше, прямой записи (010101...) уже достаточно для воспроизведения команды, однако для более наглядного рассмотрения считанных кодов можно применить оптимизацию.

Специфическая оптимизация
такая в IR-Studio есть пока только одна - это код RC5.

- RC5:
имеет вид:

RC5:<id-устройства>:<id-команды>
где id - это шестнадцатеричные коды.
вот пример кода до оптимизации:
     1=101101010101010101010101001
     2=101011010101010101010100110
и после:
      1=RC5:00:01
      2=RC5:00:02
полную реализацию алгоритма декодирования кода RC5 можно найти в исходных текстах, распространяемых с IR-Studio.

Неспецифическая оптимизация
В IR-Studio реализовано несколько видов неспецифической оптимизации:

- Ярлыки(Shortcuts):
Это метод замены фрагментов кодов ярлыками(буквами):

	01    заменяется на  "a"
	011     ----"----    "b"
	0001    ----"----    "c"
	0000001 ----"----    "d" - только в версия 0.4.4 и выше
пока мне встречались пульты, использующие кодирование "a"/"b"(SONY), "a"/"d"(Mitsubishi ) и "a"/"c"(Orion,Daewoo,Echostar,Kathrein и другие). Встречаются, конечно, и другие кодировки, например, Манчестерская ("01"->1, "10"->0) , которая как является частью RC5, так и используется в других (не RC5) пультах.

- RLE(Run Length Encoding):
Это метод замены повторяющихся кодов конструкцией: [число_повторов:код], т.е. такой код:
11111111111111110000000010101000101000101010100000000100010001000100010001010101
после оптимизации будет выглядеть, как:
[16:1][8:0]101010001010001010101[8:0]100010001000100010001010101


- Prefix/Suffix:
Это метод вынесения идентичного начала и окончания всех кодов одного пульта отдельно.

- Final Zeroes:
Этот метод - единственный "необратимый", поэтому на некоторых пультах может повередить кодировку (в настоящее время в базе ни одного такого пульта нет). Тем не менее пользоваться этим методом следует только в том случае, если вы можете убедится в работоспособности кодировки и после оптимизации. Собственно метод заключается в "выравнивании" финальных нулей (паузы между пакетами). Например, имеем коды (уже оптимизированные вышеперечисленными методами):
  Power=111abbabbba[40:0]
      1=111abbaaaaa[39:0]
      2=111abbaaaba[41:0]
      3=111abbaabaa[41:0]
      4=111abbaabba[38:0]
При этом, очевидно, возникают сложности с выделением "суффикса". После оптимизации "Final Zeroes" те же коды будут выглядеть как:
  Power=111abbabbba[40:0]
      1=111abbaaaaa[40:0]
      2=111abbaaaba[40:0]
      3=111abbaabaa[40:0]
      4=111abbaabba[40:0]
В данном случае суффикс может быть легко выделен.





На главную страницу







e-mail рассылки
Радиолюбитель
Подписаться письмом


















Яндекс цитирования Rambler's Top100