Приложение А
(обязательное)
ГОСТ Р 54708—2011
Расчет слова CRC
Использование циклических кодов с избыточностью (CRC кодов) позволяет обнаруживать ошибки передачи
на стороне приемника. Эти слова CRC должны бытьопределены в результате процедуры, описанной в этом прило
жении.
CRC код определяется полиномом в степени п:
G(x) = х* ♦ д(|
_
1
х
° - 1
+ ... ♦дj? ♦
0
)х ♦ 1,
где: л г 1.
д, с {0.1}./ « 1 ... л - 1.
Расчет CRC может быть выполнен посредством сдвигового регистра, содержащего п ступеней, эквивален
тныхстепени полинома (см. рисунокА. 1). Ступени обозначены от £>0до £>„
_
,. где Ь0соответствует 1.б, соответству ет
х. Ь2соответствует х2.Ь„
_
, соответствуетх" " 1.
Сдвиговый регистр функционирует, включая элементы XORs (исключающее И
Л
И) на входах тех регистров,
где корреспондирующий коэффициент gtполинома равен *1*.
РисунокА.1 — CRC генератор
В начале вычисления CRC все содержимое регистров калибруется одинаково.
После поступления на вход регистра первого бита блока данных (первый — MSb), сдвиговые тактовые
импульсы заставляют регистр перемещать его содержимое вперед на одну ступень к МЗЬ(Ь
Л
_
1). в то же время
загружая следующие ступени результатом соответствующих XOR операций. Процедура затем повторяется для
каждого битаданных. Вследза сдвигом после поступления на вход последнего бита (LSb) блокаданных, сдвиговый
регистр содержит слово CRC. которое затем считывается. Данные и CRC слова передаются, начиная с MSb.
CRC должен быть инвертирован (дополнен единицами) перед передачей.
Должен использоваться генератор полинома G(x) = х’° + х12 ♦ х5 ♦ 1.
Если CRC будет приложен коригинальным данным, то второй CRC. рассчитанный по всей длине, приведет к
постоянному значению 1D0F16.
15