Задача системы исправления (коррекции) ошибок заключается в обнаружении ошибки, локализации места ошибки и автоматическом исправлении ошибки. Код Хэмминга обнаруживает и исправляет одиночные ошибки. Минимальное кодовое расстояние кода Хэмминга Dmin = 3.
В коде Хэмминга разряд слова, в котором произошла ошибка, указывается его двоичным номером в передаваемом слове. Рассчитаем количество контрольных разрядов для случая передачи данных байтами (8 разрядными словами).
Длина информационного слова m = 8 разрядов. Если k это количество контрольных разрядов, то длина передаваемого слова n =m+k. Ошибка может возникать в любом разряде передаваемого слова, поэтому
2k >n+1
Один двоичный набор необходим для указания правильной передачи данных. В результате приходим к выражению
2k – k - 1 > m
В нашем случае m = 8, k = 4, n = 12.
Для каждого контрольного разряда будет построено уравнение контроля по четности. Таблица номеров разрядов передаваемого слова имеет вид.
Двоичный набор 0 0 0 0 используется для указания правильной передачи информации. В этом случае
|
|
С4 С3 С2 С1 = 0 0 0 0.
При возникновении одиночной ошибки С4 С3 С2 С1 не равно
0 0 0 0.Построим уравнения контроля, складывая по модулю 2 те разряды передаваемого слова, для которых Ci =1.
В системе уравнений (24) в качестве контрольных выбираем разряды х8 х4 х2 х1, потому что встречаются в уравнениях (24) только один раз. Сформируем уравнения для вычисления контрольных разрядов. Получим систему уравнений.
Согласно уравнениям (25) структура устройства – передатчика в коде Хэмминга имеет вид.
Рис.46
На Рис.46
ШиД шина данных;
РгИ информационный регистр;
Рг ПС регистр передаваемого слова;
ШиПС шина передаваемого слова.
Устройство – передатчик работает следующим образом. По шине данных в информационный регистр РгИ принимаются значения информационного слова. Схема вычисления системы уравнений (**) вычисляет значения контрольных разрядов и записывает их в разряды регистра передаваемого слова РгПС. В остальные разряды РгПС принимаются значения данных из РгИ. Таким образом,формируется передаваемое слово и передается по шине ШиПС. При передаче слова могут возникнуть ошибки в любом разряде. Поэтому,принятое слово может не совпадать с переданным, и все разряды проверяются с целью обнаружения и исправления ошибок.
Структура устройства – приемника имеет вид.
Рис.47
Переданное передатчиком слово в коде Хэмминга принимается в регистр принимаемого слова приемника. Одновременно оно подается на комбинационную схему вычисления корректирующего слова С4 С3 С2 С1.
Для автоматической коррекции (исправления) одиночной ошибки необходимо инвертировать значение ошибочного разряда. С выхода комбинационной схемы корректирующее слово С4 С3 С2 С1 поступает на вход дешифратора DC.
|
|
Если одиночных ошибок нет, то С4С3С2С1 = 0 0 0 0, и на нулевом выходе дешифратора DC0 появится единица, указывающая на правильную передачу. Если появляется одиночная ошибка в одном из разрядов принимаемого слова, то С4 С3 С2 С1 не равно нулю, и на одном из выходов дешифратора, отличного от DC0, появится единица.
Каждый выход Dci, кроме нулевого, подается на вход схемы сложения по модулю 2 с данными с выхода РгПС.
Если Dci = 0, то есть ошибки в i – том разряде нет, то
Если в I – том разряде возникает ошибка, то Dci = 1 и ошибка исправляется.
Корректируются только разряды данных и в информационный регистр принимается правильное слово y8 y7 y6 …у2 у1.
Недостатком кода Хэмминга является то, что он не обнаруживает двойные ошибки, и при их возникновении коррекция происходит неверно.