Вычисление контрольного поля кадра

Рекомендация 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>.