Boit_K__Cifrovaya_yelektronika_BookZZ_or g (773598), страница 38
Текст из файла (страница 38)
8.32). Это представление очень наглядно. 8.7.4. Код «3 из б» Из 5-битовых комбинаций также можно построить код 3 из 5. Каждая 5- битовая комбинация содержит три состояния 1 и два О. Часто используется код Лоренца и шифровальный код номер 3. Таблицы перевода представлены на рис. 8.33. Для распознавания ошибки проводится проверка на нечетность. 5-битовая комбинация безошибочна только при условии, что три ее бита имеют состоя- Рис.
8.33. Таблицы перевода ваинейших кодов 3 из 5. 4 З а т Нииар бита 5-битова» яомбиивиия Рие. 8.34. Распознавание ошибки при помощи контролв нечетноети. 88.гд, р ч б 23ф ние 1 и два бита состояние О. Если это не так, то контролер нечетности на выходе показывает состояние 1 и выдает сообщение об ошибке (рис. 8.34). Коды «3 из 5» используются прежде всего для гарантированной передачи чисел на большие расстояния.
8.7.5. Код «2 из 7» Коды «2 из 7» состоят из 7-битовых комбинаций. 7-битовые комбинации также называются 7-битовым словом. Каждая десятичная цифра представляется 7 битами. Получаемая при этом избыточность больше, чем при представлении цифры только 5 битами. Из 7 битов 2 бита всегда имеют состояние 1 и 5 битов состояние О. Два часто применяемые кода «2 из 7» показаны на рис.
8.35. Это двоично-пятеричный код и отраженный двоично-пятеричный код. Биты б и 7 образуют код «1 из 2». Биты номер 5, 4, 3, 2 и О образуют код 1 из 5. Такая структура кода позволяет относительно простую обработку 7-битового слова. Отраженный двоично-пятеричный код получается простым образованием дополнения. Дополнение образуется путем замены 1 на О в битах номер б и 7. Рие. 8.35. Таблица перевода двоичнопвтеричного кода и отраженного двоично-пвтеричного кода. 8.8.
Коды, исправляющие ошибки 8.8.1. Принцип действия Прежде чем ошибка может быть исправлена, она должна быть обнаружена. Код, исправляющий ошибки, также является кодом, распознающим ошибки, По сравнению с кодом, распознающим ошибки, код с исправлением ошибок обладает большей избыточностью. Для передачи одного знака требуется на несколько бит больше. Десятичная цифра представляется, например, 7 битами, а не как в коде, распознающим ошибки, 5 битами.
~~~236 Глава 8 Двоичные иоды и системы счисления Большая избыточность позволяет выявить ошибочный бит. Если известен ошибочный бит, то самостоятельная коррекция относительно проста. Если ошибочный бит содержит 1, то правильное значение О. Если ошибочный бит содержит О, то правильное значение 1. То есть ошибочный бит должен быть инвертирован. Код с исправлением ошибок производит самостоятельную коррекцию ошибочного бита.
Сообщение об ошибке может выдаваться независимо от самокоррекции. Во многих случаях желательна регистрация выявленной ошибки. В основном коды с исправлением ошибок могут исправлять только одну ошибку в слове. Если в слове ошибочны два бита, то в большинстве случаев выдается сообщение только об одной ошибке.
То есть самостоятельное исправление ошибки не произойдет. Вероятность того, что в слове будут одновременно ошибочны два бита, чрезвычайно мала. Если, тем не менее, такая ошибка встретилась, то после сообщения об ошибке нужно остановить передачу данных и устранить ее причину. В настоящее время разработаны коды, которые могут исправлять два и больше битов в слове.
Но им нужно еще больше битов для передачи одного слова, и они так сложно устроены, что их применение экономически нецелесообразно. 8.8.2. Код Хемминга Среди кодов, распознающих ошибки, чаще всего используется код Хемминга, также называемый Хемминг-дополненным двоично-десятичным кодом.
Для передачи одной десятичной цифры в коде Хемминга необходимы 7 бит (рис. 8.36). По схеме кодирования Хемминга после каждых четырех бит данных добавляются три контрольных бита. Рве. 8З6. Код Хемминга. Каждая контрольная группа кода Хемминга состоит из трех информационных и одного контрольного бита. С помощью контрольного бита три информационных бита контрольной группы дополняются до четного числа 1-состояний.
Структура контрольной группы Х, показана на рис. 8.37. Информационные биты — номер 5, номер б и номер 7. Контрольный бит — номер 4. При изображении десятичной цифры О информационные биты не имеют 1-состояний. Поэтому контрольный бит также не получает 1-состояния. При передаче десятичной цифры 1 информационные биты содержат одно 1-состояние. Контрольный бит принимает в этом случае 1-состояние. Тогда количество 1-состояний контрольной группы станет четным. Такая же ситуация имеет место для представления десятичной цифры 2. При изображении десятичной цифры 3 информационные биты содержат два 1-состояния.
Число 1-состояний четно. Контрольный бит принимает в этом случае О-состояние. Для десятичных цифр от 4 до 9 контрольный бит всегда равен 1, если три информационных бита содержат нечетное число 1-состояний. Контрольный бит всегда равен О, если три информационных бита содержат четное число 1-состояний.
Структура контрольной группы Х, состоит из информационных битов номер 3, номер 6 и номер 7 и контрольного бита 2 (рис. 8.38). С помощью контрольного бита Х, три информационных бита контрольной группы дополняются до четного числа 1-состояний. Алгоритм — как у контрольной группы Х,. Контрольное группе К. Конргольне» группе К, Ряе.
8.38. Структура контрольной группы Хг Рнс. 8.37. Структура контрольной группы аг Третья контрольная группа — Х,. Она состоит из информационных битов номер 3, номер 5 и номер 7. Контрольный бит Х, имеет номер 1 (рис. 8.39). С помощью контрольного бита три информационных бита контрольной группы дополняются до четного числа 1-состояний. Х, всегда равен 1, если три информационных бита содержат нечетное число 1-состояний. Установление ошибки происходит посредством проверки четности контрольных групп. В коде Хемминга каждая контрольная группа проверяется на четность. ЯЗВ Г дл д Для проверки 7-битовой комбинации требуются три контролера четности.
Они подключаются согласно рис. 8.40. При нечетности контрольной группы на выходе соответствующего контролера появляется 1-состояние. Это 1-состояние означает ошибку. 7-битовая комбинация кода Хемминга считается содержащей ошибку, если по крайней мере один контролер четности сообщает об ошибке. Итак, распознавание ошибки происходит без проблем. Как происходит ее исправление? Если ошибка встречается в бите номер 1, то контролер четности группы Х, сообщает об ошибке.
Выход У, принимает состояние 1. Ошибка в бите номер 2 вызывает сообщение об ошибке контролера четности группы Х, (Ув = 1). В случае ошибки в бите номер 3 ошибку выдают контролеры четности Х, и Хп На рис. 8.41 показано, какие контролеры четности выдают сообщение об ошибке, и состояния выходов У„, У и У, в случае ошибок в отдельных битах. Рис. 8.41. Соответствие сообщений об ошибках вьвдолнмм состояниям контролеров четности.
к щ а ъъ9~ При рассмотрении рис. 8.41 ясно, что выходные состояния У„, Ув и 2' образуют двоичное число, которое соответствует номеру ошибочйого бита. Выход Л„' соответствует 2!, выход У соответствует 2', выход Ус соответствует 2'. Выходные состояния контролеров четности в коде Хемминга указывают номер ошибочного бита. Таким образом, однозначно идентифицируется ошибочный бит.
Теперь его можно исправлять. Коррекция происходит самостоятельно с помощью цифровой микросхемы, которая инвертирует бит, помеченный как ошибочный. Больше делать ничего не надо, так как если ошибочный бит равен 1, то его истинное значение О. Вели ошибочный бит равен О, то его истинное значение 1. В схемах, которые работают с кодом Хемминга, каждая 7-битовая комбинация проверяется в определенных точках схемы и в случае необходимости исправляется.
Такая проверка и коррекция целесообразна прежде всего после передачи информации через длинные дорожки на плате, так как длинные дорожки больше подвержены воздействию помех. Контрольный тест 1. Чем отличаются понятия бинарный и двоичный? 2. Преобразуйте двоичные числа таблицы 8.42 в десятичные.
г 2 дасаааанаа ццфра 22 В!2 !024 !6 МВ !22 Рнс. 3.42. Преобрвтоввние двоичных чисел в десятичные. 3. Преобразуйте следующие десятичные числа в двоичные: 58 512 1298 1983 а) 1101 + 100; 1 б) 111 101 + 1001; в) 11 011 г) 110 001 + 100100; + 11101; ч о д) 111100 е) 110 011 ж) 1000,11 з) 1100,11 + 1100111; + 1010100; + 111,11; + 111,01. т ? о в Проверьте результат переводом в десятичную систему счисления.
6. Вычитание в двоичной системе счисления. Решите следующие примеры в дополнительном коде: а) 1101 — 100", в б) 111101 в) 11011 г) 1001100 1001; — 1111; — 101 010; о ? ? д) 100111 е) 110 011 ж) 111000 з) 1101 — 10 111; — 11 010; — 10 011; — 10 100. ? ? ? ? 7. Преобразуйте следующие десятичные числа в двоично-десятичный код: а) 10941; б) 3890; в) 7863; г) 98001; д) 7 989.
8. Сложение в двоично-десятичном коде: а) 0100 б) 1000 в) 0111 г) 0011 + 0011; + 0110; + 1001; + 110; в о о о д) 1001 е) 1001 ж) 0110 з) 1001 + 1000; + 0001; + 0110; + 0110. ? ? ? ? Я40 Глава 8. Двоичные коды и сисиеиы счисления гоооо 17750 2730 9990 пооо 32000. 4. Преобразуйте следующие вещественные двоичные числа в десятичные: а) 110110,101; б) 100101,1101; в) 1010,11101; г) 0,10101; д) 0,011101.
5. Сложение в двоичной системе счисления. Решите следующие примеры: К р Ю 24~)) 9. Сложение в двоично-десятичном коде: а) 1000 б) 1001 в) 0111 г) 1001 — 0111; — 1000; — 0110; — 0111; ? е о ? д) 0111 е) 0111 ж) 1000 з) 0011 — 0011; — 1001; — 0011; — 1000.
? о ? о 10. Переведите шестнадцатеричные числа в десятичные и двоичные а) АВ1; б) 87Х2; в) Е605; г) ВСЗ4; д) 12В31; е) ВА1А; ж) 31459; з) 1А1В. 11. Переведите десятичные числа в шестнадцатеричные и двоичные а) 100; б) 259; в) 1020; г) 1983; д) 10000; е) 126; ж) 18020; 3) 999. 12. Перекодируйте числа в таблице на рис. 8.43. В каждом свободном поле нужно записать результат. Десятичное число 2560, например, должно преобразоваться в двоичное число, в шестнадцатеричное число, в восьмеричное число и в ВСЮ-число. Рис.
8.43. Задача на кодирование. 13. Объясните структуру кода с избытком 3. 14. Что понимают под избыточностью? 15. Как построен одношаговый код? 16. Назовите три кода с распознаванием ошибки и объясните на примере, как производится распознавание ошибки. 17, Что такое проверка четности? 18. Объясните, как представляются отрицательные числа в двоичной системе счисления. 19. Чем различаются код с распознаванием ошибки и код с исправлением ошибки? 20.