Вычисление контрольного поля кадра
Рекомендация V.42
предусматривает применение как 16-разрядного, так и 32-разрядного контрольного
поля кадра (FCS). Поле FCS-32 применяется при передаче данных по каналам с
очень большим уровнем помех.
Поле FCS-16
представляет собой дополнение до "1" по модулю 2 двух следующих
чисел:
> остатка от
деления числа
xV+x^xVW+x^xV+x^xV+xV+x^+x^)
на образующий
полином CRC-)6xl6+xl -l-:»:5-!-!, где k — количество бит в кадре,
находящихся между последним битом открывающего флага и первым битом FCS (не
включая эти биты), за исключением стаффинг-битов.
> остатка от
деления по модулю 2 на образующий полином х +х +х +1 произведения х16
на содержимое кадра, находящегося между последним битом открывающего флага и
первым битом FCS, за исключением стаффи нг-битов.
При типовой
реализации вычисления FCS в передатчике сначала содержимое сдвигового регистра
устанавливается в единичное состояние, а затем изменяется путем деления полей
адреса, управления и информационного поля на образующий полином. Дополнение
результирующего остатка до "1" передается в виде 16-разрядного
контрольного поля кадра.
При типовой
реализации в приемнике первоначальное содержимое ячеек регистра устанавливается
равным " 1 ". Окончательный остаток после умножения последовательно
входящих защищенных битов и FCS принимаемого кадра на х16 и последующего
деления на образующий полином ^r^+^^+^+l, должен равняться при отсутствии
ошибок передачи константе <0001 1101 0000 1111> (от л:15 до х
соответственно). Если это не так, то принятый кадр считается ошибочным и
запрашивается его повторная передача.
Вычисление FCS-32
принципиально ничем не отличается от вычисления 16-разрядного контрольного
кадра. В данном случае используется образующий полином CRC-32 х^+х^+х^+х^+х^+х^+х^+х^+х^х^
A^+^+^+l. На приемной стороне правильность приема кадров с FCS-32
контролируется по константе <1100 0111 00000100 1101 1101 0111 1011>.