ГОСТ Р 54309—2011
Приложение Д
(обязательное)
Вычисление циклического избыточного кода
Реализация проверки с помощью циклических избыточных кодов (CRC-кодов) позволяет выявлять ошибки
передачи в приемнике. С этой целью слова CRC-кода должны быть включены в передаваемые данные. Слова
CRC-кода определяют в соответствии с описанной в настоящем приложении процедурой.
Код CRC определяют с помощью полинома степени п
е л(х )« х я -тдд. 1-хп- , > ... ♦ д2 • х2 ♦ д, • х ♦ 1
при n i l ид,, с {0.1}, I» 1
.......
л - 1.
CRC-код может быть вычислен с помощью сдвигового регистра, содержащего п ячеек, где п равно степени
полинома. Блок-схема вычисления CRC-кода представлена на рисунке Д.1. Ячейки обозначают как б0 ...
где Ъ0 соответствует 1; 0, соответствует х; Ь2 соответствует х2: ...;, соответствует х" * 1. Сдвиговый регистр
дополняют с помощью вставки операторов XOR на входе тех ячеек, где соответствующие коэффициенты д,полино
ма равны 1.
Рисунок Д.1 — блок-схема вычисления CRC-кода
В начале вычисления кода CRC-8 все ячейки сдвигового регистра инициализируют нулями.
После поступления первого бита блока данных на вход данных (старший бит поступает первым) тактовый
генератор обеспечивает сдвиг ячеек регистра на одну ячейку в направлении ячейки старшего бита Ьп _ ,. При этом в
промежуточные ячейки помещают данные после соответствующих операций XOR. Затем процедуру повторяют для
каждого входного бита данных. После поступления последнего бита (младший бит)блока данных на вход сдвиговый
регистр будет содержать слово CRC-кода. которое вслед за этим считывают. При передаче данных и слова
CRC-кода старший бит следует первым.
Код CRC-8. используемый в системе РАВИС. основан на следующем полиноме:
GB(x) = х8 ♦ х7 ♦ х6 + х4 ♦ х2 1.
32