В телекоммуникациях продольный контроль избыточности (LRC) или горизонтальный контроль избыточности — это форма контроля избыточности , которая применяется независимо к каждой из параллельной группы потоков битов. Данные должны быть разделены на блоки передачи , к которым добавляются дополнительные контрольные данные.
Термин обычно применяется к одному биту четности на поток битов, вычисляемому независимо от всех других потоков битов ( BIP-8 ). [1] [2]
Это «дополнительное» слово LRC в конце блока данных очень похоже на контрольную сумму и циклический избыточный код (CRC).
В то время как простая продольная четность может только обнаруживать ошибки, ее можно комбинировать с дополнительным кодированием контроля ошибок, таким как поперечная проверка избыточности (TRC), для исправления ошибок. Поперечная проверка избыточности хранится на выделенной «дорожке четности».
Всякий раз, когда в передаваемом блоке данных возникает ошибка в одном бите, такая двумерная проверка четности или «двухкоординатная проверка четности» [3] позволяет приемнику использовать TRC для определения, в каком байте произошла ошибка, а LRC — для определения, в какой именно дорожке произошла ошибка, чтобы точно определить, какой именно бит содержит ошибку, а затем исправить этот бит, перевернув его. [4] [5] [6]
Международный стандарт ISO 1155 [7] гласит, что продольный контроль избыточности для последовательности байтов может быть выполнен программно с помощью следующего алгоритма:
lrc := 0 для каждого байта b в буфере do lrc := ( lrc + b ) и 0xFF lrc := ((( lrc XOR 0xFF) + 1) и 0xFF)
что можно выразить как «8-битное дополнительное до двух значение суммы всех байтов по модулю 2 8 » ( x AND 0xFF
эквивалентно ).x MOD 28
Многие протоколы используют байт продольной проверки избыточности на основе XOR (часто называемый символом проверки блока или BCC), включая протокол последовательного интерфейса (SLIP, не путать с более поздним и хорошо известным протоколом последовательной линии Интернета ), [8] стандарт IEC 62056-21 для считывания показаний электросчетчиков, смарт-карты, как определено в ISO/IEC 7816 , и протокол ACCESS.bus .
Подобный 8-битный LRC эквивалентен циклическому избыточному коду, использующему полином x 8 + 1, но независимость потоков битов менее очевидна, если рассматривать ее таким образом.