Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессор комплексы 17.03.2015.docx
Скачиваний:
123
Добавлен:
04.02.2016
Размер:
1.39 Mб
Скачать

Буквенно-цифровой код

Когда микро-ЭВМ взаимодействует с телетайпом или видеотерминалом, необходимо прибегать к коду, кото­рый одновременно включает в себя числовые и алфавитные знаки. Такие коды называются буквенно-цифровыми.

Наиболее распространен буквенно-цифровой код ASCII (произносится АСКИ) — стандартный американский код обмена информации.

В табл. 3.1 приведена выдержка 7-разрядного кода ASCII. В этот список входят 7-разрядные коды цифр, про­писных букв и знаков пунктуации. Полный код ASCII включает кодирование строчных букв и признаков команд.

ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ

Во время передачи, обработки и хранения двоич­ных кодов в ЭВМ могут произойти ошибки с вероят­ностью, отличной от нуля, т. е. прием 1 вместо 0, или наоборот. Это может привести к неверному результа­ту работы ЭВМ. Для снижения вероятности получе­ния ошибочного результата разработчики ЭВМ при­нимают ряд мер, одной из которых является специ­альное кодирование информации.

Рассмотрим некоторые методы специального ко­дирования. Двоичные коды, очень удобные для вы­числений, создают серьезные осложнения в случаях, где используются переходы между двумя соседними значениями. Примером может служить система уп­равления углом поворота вала или линейных переме­щений какого-либо объекта. Два соседних кодовых состояния датчика положения, имеющего выходной сигнал в двоичном коде, могут отличаться во многих разрядах. Например, соседние позиции 7ю и 8ю бу­дут иметь коды 0111 и 1000 соответственно. Часто при переходе от одной позиции к другой возникает кратковременная неопределенность в значениях кода. В результате датчик может выдавать выходные ко­ды 1010, 0101, 1100 и т.д., которые сильно отличают­ся от старого 0111 и нового 1000 значений. В резуль­тате система управления будет вырабатывать невер­ный управляющий сигнал.

Возникающую погрешность можно уменьшить пу­тем применения кода Грея. Этот код для двух соседних позиций должен отличаться только на 1 бит. Так как все другие биты неизменны во время перехода, то вы­ходной сигнал в переходный момент может представ­ляться только старым или новым значением кода. Поэтому неопределенность уменьшается до значения кода в предыдущей или новой позиции и никаких дру­гих кодов не возникает.

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

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

Существует способ, позволяющий не только обна­руживать, но и исправлять возникающие при обра­ботке данных ошибки. Пусть необходимо хранить че­тыре бита данных, например 1110. Для графического представления предлагаемого способа кодирования воспользуемся диаграммой Венна, состоящей из трех взаимно пересекающихся кругов (рис. 4.2), обра­зующих семь областей. Запишем значения битов хра­нимого слова во внутренние области на диаграмме. Оставшиеся три области заполним «битами четности». При вычислении их надо помнить, что полное число единиц в каждом круге должно быть четным. Напри­мер, в круге А на диаграмме Венна находятся три единицы (рис. 3.2, а). Следовательно, бит четности в круге А должен быть равен 1. По завершении про­цедуры вычисления битов четности каждая из семи областей будет содержать по одному биту (рис. 3.2,6). Эти семь битов называются кодовым словом, а про­цедура получения кодового слова из четырехбитово­го называется алгоритмом кодирования.

Если значение одного из битов кодового слова станет ошибочным (рис. 3.2, в), то для обнаружения ошибки проверяют значения битов четности. Провер­ка показывает (рис. 3.2, г), что в кругах Л и С про­изошла ошибка, в круге В—нет. Одна и только од­на область на диаграмме принадлежит одновременно кругам А и С, но не принадлежит В. Следовательно, ошибочным является бит, расположенный именно в этой области. Если изменить его значение, то ошиб­ка будет исправлена. Описанная процедура называ­ется алгоритмом декодирования.

Разумеется, процедура корректировки эффектив­на только в том случае, когда в кодовом слове только одна ошибка. Если возникают две ошибки и более, то их исправить не удастся. Вместо исправления двух ошибок будет привнесена третья. От этого нежела­тельного эффекта можно избавиться, хотя бы частич­но, путем добавления еще одного бита четности, рас­положенного за пределами пересекающихся кругов. Значение этого бита выбирается таким образом, что­бы полное количество единиц на диаграмме было четным. Эта мера не позволяет алгоритму декодиро­вания исправлять двойные ошибки, но она дает воз­можность их обнаруживать.

Описанный код назван кодом Хемминга в честь его разработчика. Существу­ет несколько разновидностей кодов Хемминга, и все они сравнительно легко реализуются в микропроцес­сорных средствах обработки информации.