22 февраля 2016г.
Широко применяемый в считывателях магнитных карт систем контроля и управления доступом (СКУД) интерфейс Wiegand имеет ряд разновидностей, отличающихся цифрами в названии интерфейса, которая обозначает количество бит в посылке: Wiegand-26 (кодовая посылка состоит из 24 бит кода карты и 2 бит контроля на четность), Wiegand-34 (32 бит кода и 2 бит контроля на четность) и т.д. Передача данных от считывателя к контроллеру осуществляется по проводному каналу и при незначительных удалениях считывателя от контроллера оказывается достаточным применения простейшего помехоустойчивого кода проверки на четность. При значительных удалениях считывателя от контроллера и в условиях действия наводок и помех этой меры оказывается недостаточно, так как происходит ухудшение характеристик эффективности системы – ошибок первого и второго рода.
С целью повышения помехоустойчивости приема данных в системах с интерфейсом Wiegand предлагается в условиях лабораторного эксперимента применить простейший классический помехоустойчивый код Хемминга (7,4) с минимальным кодовым расстоянием равным 3, т.е. с возможностью исправления одиночных ошибок при декодировании.
Рассмотрим наиболее распространенный интерфейс Wiegand-26, в котором передается 3 байта информации, для кодирования последней воспользуемся распараллеливанием обработки данных с помощью классического кодера Хемминга (7,4). Таким образом, при кодировании каждого полубайта в кодовую группу будут добавляться три проверочных разряда, что в итоге приведет к увеличению разрядности передаваемой информации с 24 бит до 42. Последующее добавление двух бит проверки на четность в начале и в конце кодовой посылки увеличит ее размерность до 44 бит. Следовательно, при таком типе кодирования минимальное кодовое расстояние увеличится до 4, т.е. при декодировании будет возможно исправлять все однократные ошибки и обнаруживать двукратные ошибки.
Для кода Хемминга в простейшем варианте при заданных четырёх (k=4) информационных символах (а1, а2, а3, а4) проверочные (контрольные или избыточные) символы будут располагаться вперемежку с информационными символами в определенных позициях кода. Три проверочных символа (кi, i = 1,3), задаваемые определенными равенствами проверки на чётность, могут быть вычислены по заданным алгоритмам [1]. Код Хемминга является разделимым кодом, контрольные разряды в кодовых комбинациях этого кода располагаются на позициях, номера которых равны целой степени двойки (20, 21, 22). При этом свободные позиции занимают информационные разряды, располагаемые в возрастающем порядке. Как известно [1], кодер выполняет операции формирования значений контрольных разрядов ki из имеющихся значений информационных разрядов ai , i = 1,4 по следующему алгоритму: значение контрольного разряда ki определяется как сумма по модулю два тех информационных разрядов, в двоичном выражении позиций которых содержится единица в том же разряде, что и у ki .
В качестве примера рассмотрим эксперимент кодирования по Хеммингу строки текстового сообщения с помощью технологии создания виртуальных приборов LabVIEW. Для чтения текстовой строки, преобразования строковых данных в коды символов, преобразования кодов символов в двоичный 8-разрядный код и осуществления операции кодирования по Хеммингу (7,4) с распараллеливанием обработки можно использовать алгоритм, реализованный во фрагменте диаграммной панели виртуального прибора LabVIEW, и приведенный на Рисунке 1. Фрагмент лицевой панели панелей виртуального прибора для этого случая приведен на Рисунке 2.
Алгоритм декодирования комбинаций кода Хемминга
состоит в следующем. В декодере
формируется некоторая двоичная
комбинация, имеющая разрядность, равную числу контрольных разрядов в комбинации
кода Хемминга и называемая
синдромом.
Первый
разряд
синдрома b1 равен сумме по
модулю
два первого контрольного разряда k1 и тех информационных разрядов, которые формировали k1 в кодере. Второй разряд синдрома b2 равен сумме по модулю два второго
контрольного разряда k2 и тех информационных разрядов, которые формировали k2 в кодере. Аналогично формируются остальные разряды синдрома.
Очевидно, что при безошибочном приеме синдром
будет равен нулю ( b1 =0; b2 =0; b3 =0). Отличное от нуля значение
синдрома свидетельствует об ошибке в принятой кодовой
комбинации. При этом численное
значение синдрома совпадает с номером разряда кодовой комбинации, который принят ошибочно.
Этот разряд при декодировании должен быть проинвертирован для исправления принятой ошибки с использованием операции
суммирования по модулю два.
Фрагменты диаграммной и лицевой
панелей виртуального прибора
декодера Хемминга
(7,4) приведены
соответственно на Рисунке 3 и 4.
Таким образом,
для систем с интерфейсом Wiegand-26 предложен алгоритм
повышения помехоустойчивости приема данных на основе использования классического кодера Хемминга (7,4) и его реализация в виртуальном приборе LabVIEW. Уменьшение скорости
передачи данных в 1,62 раза является платой за повышение помехоустойчивости приема
с возможностью обнаруживать двукратные и исправлять однократные ошибки при декодировании кодовых комбинаций. Увеличение скорости
передачи данных с проигрышем в 1,3 раза при той же помехоустойчивости может быть достигнуто за счет использования кода Хемминга (31,26),
но реализация виртуального прибора LabVIEW для этого случая – предмет отдельного рассмотрения.
Список литературы
1.
Алехин В.А., Корниенко
В.Т., Шеболков В.В. Построение дискретного радиоканала передачи аналоговых сообщений.
Учебное пособие - Таганрог: Изд-во ТТИ ЮФУ. 2009. №4402.