Продольный контроль по избыточности (LRC) или горизонтальный контроль избыточности — это вид контроля ошибок, применяемый независимо к каждому из параллельных потоков битов. Данные должны быть разделены на для передачи, к которым добавляются дополнительные проверочные данные.

Термин обычно относится к одному биту чётности для каждого потока битов, вычисляемому независимо от всех других потоков битов ().

Это «дополнительное» слово LRC в конце блока данных очень похоже на контрольную сумму и циклическую проверку избыточности (CRC).

Оптимальный прямоугольный код Простая продольная чётность может только обнаружить ошибки, но в сочетании с дополнительным кодированием для контроля ошибок, таким как поперечный контроль по избыточности (transverse redundancy check, TRC), позволяет их исправлять. Поперечная проверка избыточности хранится на специальной «дорожке чётности».

Когда в блоке передаваемых данных возникает ошибка в одном бите, такая двумерная проверка чётности, или «двухкоординатная проверка чётности», позволяет приёмнику использовать TRC для определения байта, в котором ошибка произошла, и LRC для определения дорожки, содержащей ошибку, что даёт точное положение ошибочного бита и позволяет исправить его путём инвертирования.

Псевдокод

Международный стандарт ISO 1155 утверждает, что продольный контроль по избыточности для последовательности байт может быть вычислен программно следующим алгоритмом:

lrc := 0 for each byte b in the buffer do lrc := (lrc + b) and 0xFF lrc := (((lrc XOR 0xFF) + 1) and 0xFF)

который может быть выражен как «8-битное значение в дополнительном коде суммы всех байтов по модулю 28» (x AND 0xFF эквивалентно x MOD 28).

Другие формы

Многие протоколы используют байт продольной избыточности на основе операции XOR (часто называемый или BCC), включая межсетевой протокол для последовательных интерфейсов (SLIP, не путать с более поздним и хорошо известным межсетевым протоколом для последовательного канала), стандарт для считывания показаний электросчётчиков, смарт-карты, определённые в ISO/IEC 7816 и протокол .

8-битный LRC, подобный этому, эквивалентен циклическому избыточному коду с использованием многочлена x8 + 1, однако независимость потоков битов менее очевидна при таком рассмотрении.

Примечания

Категория:Обнаружение и устранение ошибок Категория:Стандарты ISO