Обнаружение ошибок PDF Print E-mail
Written by Administrator   
Sunday, 19 August 2012 22:13


Достаточно просто реализуется способ применения кодов, обнаруживающих ошибки. Процедура обнаружения ошибок основывается на следующем принципе: к передаваемому информационному кадру длиной К бит добавляются N-К бит кода обнаружения ошибок, так что длина передаваемого кадра становится равной N бит. Значение кода обнаружения ошибок вычисляется, как функция передаваемых информационных бит. В приемнике информационные и контрольные биты отделяются друг от друга. На основе полученных информационных данных в приемнике вновь вычисляют проверочный код. Если принятый и вычисленный коды совпадают, то принимается решение об отсутствии ошибки; если коды не совпадают, то ошибка имеется. На практике всегда есть вероятность того, что ошибка не будет обнаружена даже с применением проверочных кодов. Эту вероятность принято называть остаточным уровнем ошибок.
Наиболее простой способ обнаружения ошибок — добавление бита четности в конце каждого передаваемого блока данных. Есть две разновидности такого подхода.

При отрицательной четности необходимо, чтобы общее число логических единиц в блоке стало нечетным, т. е. в конце блока добавляют логическую единицу или логический ноль для получения нечетного количества единиц.

При положительной четности добавляют логическую единицу или логический ноль для получения четного количества единиц.

Если в процессе передачи и приема один из битов изменился, то наличие ошибки будет обнаружено. Нетрудно заметить, что при изменении значений у четного количества бит такой способ ошибки не обнаружит. Поэтому простая проверка четности не является надежным средством обнаружения ошибок. Более надежным и наиболее употребляемым является метод циклической проверки четности с избыточностью CRC (Cyclic Redudancy Check). В таком методе к передаваемому кадру из к бит добавляется п-к бит так называемой контрольной последовательности кадра FCS (Frame Check Sequency). Полученный блок из бит должен делиться без остатка на заранее заданную константу. Такое деление выполняется в приемнике. Если деление прошло без остатка — ошибки в принятом блоке нет. Таким методом можно обнаруживать одну или несколько ошибок. Изменение значения бита можно истолковать как применение к данному биту операции исключающего ИЛИ (операнд XOR).