С помощью этих кодов можно обнаруживать:
· Ошибки в 1 бите, если порождающий многочлен содержит > 1 члена,
· Ошибки в 2 битах, если порождающий многочлен содержит 3 члена,
· Ошибки в нечетном количестве битов, если порождающий многочлен содержит множитель (х+1),
· Пакеты ошибок длиной менее к+1 бит, если порождающий многочлен содержит множитель (х+1), и один множитель с 3мя членами и более (к+1 - число бит порождающего многочлена).
Принцип построения циклических кодов
Каждая кодовая комбинация Q(x) умножается на одночлен xr , а затем делится на многочлен. Степень каждого одночлена, входящего в Q(x), повышается на r. При делении получается С(х) такой же степени, что и Q(x), и остаток Р(х) степени не более r-1, наибольшее число разрядов которого <=r.
Q(x) xr / g(x) = C(x)+ P(x)/g(x) ..............................(1)
В ЭВМ используется метод умножения кодовой комбинации Q(x) на одночлен xr и прибавлением к этому произведению остатка Р(х) на порождающий многочлен g(x).
Реально умножается на фиксированный многочлен типа x3Å x2Å 1
Схема умножения на многочлен.
Вначале все ячейки содержа 0. Пусть требуется умножить x4 Å x2 Å1 на x3 Å x2 Å1 | |
1 такт | На вход поступает единичный коэффициент при старшей степени x4 , запоминается в 1-й ячейке памяти и передается на выход. |
2 такт | На вход поступает 0-й коэффициент при x3. Содержимое первой ячейки приходит во вторую, на выходе сумматора появляется 1, которая, суммируясь с выходом 3-й ячейки, появляется на выходе 2-го сумматора |
3 такт | На вход поступает коэффициент при x2. Он запоминается в 1-й ячейке памяти и передается на выход. |
4 такт | На вход поступает 0-й коэффициент при x1. Первый сумматор имеет на выходе 1, а второй - 0. |
5 такт | На вход сумматора поступает 1 - коэффициент при x0. |
6-8 такты | Учитывая, что после умножения многочленов старший коэффициент имеет 7-ю степень, необходимо сдвинуть на 3 разряда (убираются разряды, содержащие 0) |
Такт | Вх. символ | Содержимое регистра после очередного сдвига | Вых. символ |
0 | -- | 000 | -- |
1 | 1 | 100 | 1 |
2 | 0 | 010 | 1 |
3 | 1 | 101 | 1 |
4 | 0 | 010 | 0 |
5 | 1 | 101 | 1 |
6 | 0 | 010 | 0 |
7 | 0 | 001 | 0 |
8 | 0 | 000 | 1 |
Схема деления на многочлен
На вход со старших степеней коэффициенты, а на выход - коэффициенты частного. По окончании деления в регистре сдвига слева направо оказываются записанными коэффициенты остатка, начиная с младших степеней.
Пример - разделить x5 Å x4 Å x3 Å x2 Å1 на x3 Å x2 Å1.
Такт | Вх. символ | Содержимое регистра после очередного сдвига | Вых. символ |
0 | -- | 000 | -- |
1 | 1 | 100 | 0 |
2 | 1 | 110 | 0 |
3 | 1 | 111 | 1 |
4 | 0 | 110 | 0 |
5 | 1 | 111 | 1 |
6 | 1 | 010 | -- |
Рассмотрим процесс обнаружения и исправления ошибок. Пусть n=7 и необходимо исправить q=1. Из формул n=2c-1 c кодовым расстоянием dmin>=2q+1 и r<=cq Þ c=3 и r=3. Так как 3 делится без остатка на 1 и 3, то сомножителями двучлена будут все неприводимые многочлены степени 1 и 3. Пусть имеется кодовое слово x3 Å x2 Å1.
Запись
Первые 4 такта Клапан 1 закрыт и информационные символы кодового слова поступают через комбинационную схему на выход и одновременно на схему, которая в соответствии с формулой 1 умножает кодовое слово на х3 и делит на g(x). В регистре получается остаток от деления. Далее клапан 1 открывается, производит 3 сдвига и остаток в виде контрольных символов выводится из регистра. В результате формируется кодовое слово с контрольными символами
х6+х4+х3+х2 -> 1011100
Чтение
После приема всей информации проверяется содержимое всех разрядов регистра, и если все нули, то ошибок нет.
1 Уровень | ||
F0 | Управление ВЗУ | |
2 Уровень | ||
F1 | Организация сопряжения с ЦП | |
F0 | F2 | Промежуточная обработка информации |
F3 | Организация сопряжения с ВЗУ | |
3 Уровень | ||
F11 | Обмен параллельной информацией | |
F1 | F12 | Формирование и хранение слова состояния канала (СКК) |
F13 | Управление обменом | |
F2 | F21 | Хранение параллельной информации |
F22 | Обработка принимаемой информации | |
F3 | F31 | Управление приводом |
F32 | Обработка последовательной информации | |
4 Уровень | ||
F11.1 | Прием параллельной информации из ЦП | |
F11 | F11.2 | Передача параллельной информации в ЦП |
F11.3 | Хранение передаваемой информации | |
F12 | F12.1 | Прием СКК |
F12.2 | Передача СКК | |
F13 | F13.1 | Анализ поступающих сигналов |
F13.2 | Выдача управляющих сигналов | |
F21.1 | Прием передаваемых данных | |
F21 | F21.2 | Хранение передаваемых данных |
F21.3 | Прием служебной информации | |
F21.4 | Хранение служебной информации | |
F22.1 | Анализ слова состояния ВЗУ | |
F22 | F22.2 | Формирование управляющего слова ВЗУ |
F22.3 | Анализ информации, передаваемой из ВЗУ | |
F31 | F31.1 | Передача управляющего слова в ВЗУ |
F31.2 | Прием слова состояния ВЗУ | |
F32.1 | Кодирование информации | |
F32.2 | Декодирование информации | |
F32 | F32.3 | Формирование циклического кода контроля (CRC) |
F32.4 | Опознавание маркеров | |
F32.5 | Параллельно-последовательные преобразования информации |
D Т C |
=1 |
D Т C |
D Т C |