Неарифметические двоичные коды



Наряду с арифметическими кодами в системах автоматизации применяются и неарифметические двоичные коды. В частности, в устройствах индикации и связи с оператором применяются двоично-десятичные коды, предназначенные для отображения арабских цифр. Обычно для отображения цифр используются кодовые комбинации, состоящие из четырех двоичных символов. Наибольшее применение нашел двоично-десятичный код 8–4–2–1, в котором каждая десятичная цифра записывается в арифметическом двоичном коде таким образом, что численное значение записанной четырехсимвольной комбинации равно отображаемой цифре, а именно:

0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000, 9=1001.

Запись чисел в двоично-десятичном коде производится в десятичной системе исчисления, но вместо обычных цифр используются вышеприведенные комбинации нулей и единиц.

Из других неарифметических двоичных кодов, применяющихся для записи чисел, наиболее интересны циклические коды Грея, нашедшие применение в кодовых датчиках положения.

 Кодами Грея называются двоичные коды, у которых соседние кодовые комбинации отличаются лишь одним кодовым символом. Соседними кодовыми комбинациями мы здесь называем кодовые комбинации, предназначенные для отображения чисел, которые, будучи записанными в каком-либо арифметическом коде, отличаются друг от друга на единицу младшего разряда, принятую в данной системе кодирования. Чтобы код Грея был циклическим, кодовая комбинация, отображающая максимальное число данного кода, выполняется соседней с кодовой комбинацией, отображающей минимальное число. Понятие соседней кодовой комбинации становится совершенно ясным, если мы представим круговой датчик положения, позиции которого последовательно отображены в каком-либо коде Грея. Тогда соседние кодовые комбинации будут отображать соседние позиции датчика положения, причем последняя позиция окажется соседней с первой. Количество двоичных символов m, отображающих код Грея, определяется количеством положений Q проектируемого датчика положения из соотношения

.

Очевидно, что если, например, Q=1000, то m≥10.

В таблице 2.1 приведен пример четырехсимвольного кода Грея, способного отобразить не более 16 позиций кодового датчика, и одновременно приведен четырехразрядный арифметический двоичный код, отображающий те же позиции. Видно, что в коде Грея при переходе от позиции к позиции изменяется только один символ, а в арифметическом коде в некоторых позициях изменяются сразу несколько символов, причем при переходе от позиции 7 к позиции 8 и от последней позиции к первой изменяются все символы сразу.

 

Таблица 2.1

Неточности в нанесении кодовой маски и установке считывающих элементов приводят, при использовании арифметического кода, к появлению ложных сигналов на границах между соседними позициями, если при переходе от позиции к позиции меняются сразу несколько символов. Так, если при переходе от позиции 7 к позиции 8 первым произойдет переход от нуля семерки к единице восьмерки, возникнет кратковременный сигнал о нахождении датчика в позиции 15. При применении кода Грея появление ложных сигналов такого рода невозможно. Использование кодов Грея повышает надежность аналого-цифрового преобразования в датчиках положения.

Важнейшую роль в организации взаимодействия между человеком-оператором и УВМ играют двоичные коды обмена информацией (см. приложение 1). Из них наиболее распространенным является код ASCII (American Standard Code for Information Interchange, табл. П1.1), играющий роль международного стандарта. Это семибитовый код, т.е. код, в котором каждая кодовая комбинация состоит из семи двоичных символов, что позволяет получить всего 128 (27) различных кодовых комбинаций. С помощью кода ASCII (произносится аски) кодируются 26 букв (заглавных и строчных) современного латинского (английского) алфавита, 10 арабских цифр, знаки математических операций, знаки препинания, различные специальные символы (например, %) и управляющие символы (табл. П1.3).

Обработка кодовых комбинаций ASCII производится байтами. Благодаря этому в составе каждой кодовой комбинации ASCII появляется дополнительный бит, который может быть использован либо для расширения кода (“ расширенный ASCII”), либо для контроля правильности кодовых комбинаций. В байте кода ASCII дополнительный бит занимает место старшего бита. При расширении кода ASCII его основная часть, т.е. символы, отображенные в таблице П.1.1, кодируется нулевым значением старшего бита (b7=0), а дополнительные символы, полученные при расширении ASCII, кодируются единичным значением старшего бита. Именно таким путем сформированы символы отечественного кода обмена информацией КОИ-8 (см. табл. П1.2), применение которого нормировано по ГОСТ Р34.303-92, построенным в соответствии с международным стандартом ISO4873-86. В коде КОИ-8 представлены, кроме символов базового ASCII, буквы русского алфавита и дополнительные управляющие символы. Соответствие русских управляющих символов КОИ-8 английским управляющим символам ASCII можно проследить по таблице П1.3. Заметим, что в таблицах П1.2 и П1.3 приведены только 16-ричные коды, но их нетрудно перевести в двоичную форму, если воспользоваться рекомендациями, приведенными в §2.3. А десятичные цифры в коде ASCII (табл. П1.1) закодированы по принципу двоично-десятичного кодирования, так как четыре младших бита ( ) кодов десятичных цифр соответствуют двоично-десятичному коду 8-4-2-1.

Символы кодов обмена информацией составляют основу алфавитов всех современных систем кодирования. По этой причине большинство символов кода ASCII отображено на клавишах стандартной клавиатуры любого компьютера. Типичным примером применения символов ASCII являются символы кода ISO-7 (см. приложение 4), предназначенного для программного управления оборудованием. В этом коде, которому соответствует отечественный стандарт ГОСТ 20999-83, используются исключительно символы ASCII. Код ISO-7 является 8-битным, причем свободный старший бит в каждом байте кода ISO-7 используется для контроля кода по четности (см. §2.5). Заметим, что код ISO-7 не может считаться двоичным кодом, так как его слова состоят не из двоичных символов (не из наборов нулей и единиц), а из символов ASCII. Аналогично строятся языки ассемблеров, которые позволяют при программировании в машинных кодах пользоваться алфавитно-цифровыми мнемоническими обозначениями кодов операций и команд процессоров УВМ, присваивать символические имена их рабочим регистрам и формировать удобные схемы адресации. Тем более не отображаются непосредственно в двоичных кодах алгоритмические языки высокого уровня.

 


Дата добавления: 2018-04-04; просмотров: 182;