ПЯТИРАЗРЯДНЫЙ ЦИФРОВОЙ КОД
Ниже представлена полная таблица истинности с шестнадцатеричным эквивалентом каждого символа пятибитного кода ANSI, использование которого рекомендовано стандартами ISO.
Пятиразрядный ANSI-код (цифровой):
Следует отметить, что у данного кода младшие значащие разряды стоят в начале, что соответствует порядку следования битов на магнитной дорожке, когда карта проходит в нормальном направлении считывания (слева направо лицом к головке).
Наибольшую важность представляют три особых символа: флажок начала ( start ), флажок конца ( end ) и разделитель поля данных ( sep ). Полезное содержимое дорожки (закодированные на ней данные) всегда заключено между start и end , разделитель sep может неоднократно использоваться внутри блока данных с тем, чтобы разграничить зоны, которые важно отличать друг от друга.
Символ start играет наиважнейшую роль, поскольку распознавание именно этого символа позволяет декодеру узнать, что он получает поток данных, закодированных на пяти битах, и точно определить его начало.
Мы знаем, что для синхронизации демодулятора запись всегда должна начинаться, по крайней мере, с десяти нулей, которые, естественно, требуется удалить при декодировании.
Блок «полезных» данных может начинаться с одного или нескольких битов в состоянии 0, но при этом флажок start позволяет избежать любого разночтения. В конце дорожки блок данных завершается флажком end, за ним сразу следует символ определения ошибки, так называемый LRC, речь о котором пойдет ниже.
Начало и конец дорожки заполняются нулями, что объясняет явное несоответствие между объявленными объемами: так, например, 40 символов На дорожке ISO 2 соответствует 200 бит, в то время как дорожка может вместить их до 253. Аналогичный расчет возможен и для дорожки ISO 3, которая в состоянии вместить 708 бит, а ограничена 107 символами, представляющими только 535 бит, так же, как и дорожка ISO 1, содержащая 79 полезных символов по 7 бит (то есть 553 бита).
Практический опыт подсказывает, что при кодировании следует примерно поровну распределить лишние нулевые биты, между началом и концом дорожки. Тогда полезные данные окажутся размещенными в зоне, наиболее благоприятной для считывания, а именно посередине дорожки.
АЛФАВИТНО-ЦИФРОВОЙ КОД
Ниже представлена таблица истинности семибитного кода ANSI в той же форме, что и предыдущая.
Семиразрядный ANSI-код (алфавитно-цифровой):
Помимо значительно большего числа специальных символов, редко используемых на практике, вновь можно отметить наличие флажков start, end и разделителя полей sep . Роль, выполняемая этими тремя флажками, идентична той, что они играют в пятибитном цифровом коде. Однако обратим внимание, что кодирование было выбрано так, чтобы наверняка не спутать оба стартовых символа (11010 и 1010001).
Правильно разработанный декодер будет полностью в состоянии распознать «на лету» флажок start и понять из этого, что данные закодированы семью битами.
КОНТРОЛЬ ЧЕТНОСТИ
При считывании магнитных носителей, таких как карты и билеты, ошибок бывает предостаточно. Дорожка может быть загрязнена, поцарапана или частично размагничена; кроме того, сам процесс вставки карт в считывающее устройство может быть не вполне удачным, в то время как качество считывающей головки также не всегда бывает безупречным.
Во избежание того, чтобы ошибка в одном единственном бите кредитной карточки не могла привести к вычитанию суммы одной из ваших покупок с банковского счета какой-либо знаменитости, совершенно необходимо внедрить целый комплекс мер по определению ошибок.
Наиболее простой метод заключается в добавлении бита четности к каждой группе битов, предназначенных для кодирования символа.
Принято выбирать значение бита чётности таким образом, чтобы общее число единичных битов в общем коде символа всегда оставалось нечетным (контроль на нечетность).
Например, в пятибитном коде цифра 6, записываемая как 0110 в двоичной системе и содержащая четное число битов в состоянии 1, будет тогда закодирована в виде 01101 путем прибавления в качестве бита четности 1, что в сумме приведет к 3 — нечетной цифре.
Читать дальше