Längsüberfülle-Kontrolle

Im Fernmeldewesen, einer Längsüberfülle-Kontrolle (LRC) oder der horizontalen Überfülle-Kontrolle ist eine Form der Überfülle-Kontrolle, die unabhängig auf jede einer parallelen Gruppe von Bit-Strömen angewandt wird. Die Daten müssen in Übertragungsblöcke geteilt werden, zu denen die zusätzlichen Kontrolle-Daten hinzugefügt wird.

Der Begriff gilt gewöhnlich für ein einzelnes Paritätsbit pro Bit-Strom, obwohl es auch verwendet werden konnte, um sich auf einen größeren Code von Hamming zu beziehen. Während einfache Längsparität nur Fehler entdecken kann, kann sie mit dem zusätzlichen Fehlerkontrollcodieren wie eine Querüberfülle-Kontrolle verbunden werden, um Fehler zu korrigieren.

Telekommunikationsstandard-ISO 1155 Staaten, dass eine Längsüberfülle-Kontrolle für eine Folge von Bytes in der Software durch den folgenden Algorithmus geschätzt werden kann:

Satz LRC = 0

Für jedes Byte b im Puffer

tun Sie

Satz LRC = (LRC + b) UND 0xFF

Ende tut

Satz LRC = (((LRC XOR 0xFF) + 1) UND 0xFF)

der als "der 8-Bit-Two'S-Ergänzungswert der Summe aller Bytes modulo 2 ausgedrückt werden kann."

Ein 8-Bit-LRC wie das ist zu einer zyklischen Redundanzprüfung mit dem Polynom x+1 gleichwertig, aber die Unabhängigkeit der Bit-Ströme, ist wenn geschaut, auf diesen Weg weniger klar.

Viele Protokolle verwenden solch ein XOR-basiertes Längsüberfülle-Kontrolle-Byte (häufig genannt Block-Kontrolle-Charakter oder BCC), einschließlich des IEC 62056-21 Standard für das elektrische Meter-Lesen, kluge Karten, wie definiert, in ISO 7816, und das ACCESS.bus Protokoll.

C#

///

///Rechenmaschine von Longitudinal Redundancy Check (LRC) für eine Byte-Reihe. Warnung: Dieser Code hat keine Garantie. Überprüfen Sie es, und befestigen Sie es vor dem Verwenden.

///</Zusammenfassung>

öffentliches statisches Byte calculateLRC (Byte [] Daten)

{\

/* https://gist.github.com/953550

*

http://en.wikipedia.org/wiki/Longitudinal_redundancy_check

*/

Byte lrc = 0x00;

für (interne Nummer i = 0; ich

Java

/ * *

* Berechnet die Kontrollsumme in Übereinstimmung mit dem ISO 1155-Standard

* Mehr Info:

http://en.wikipedia.org/wiki/Longitudinal_redundancy_check

* @param Daten ordnen, um Kontrollsumme für zu berechnen

* kehrt @return zurück die berechnete Kontrollsumme im Byte formatieren

*/

öffentliches Byte calculateLRC (Byte [] Daten) {\

Byte-Kontrollsumme = 0;

für (interne Nummer i = 0; ich

C

nicht unterzeichnete Rotforelle calculateLRC (nicht unterzeichnete Rotforelle *buf, nicht unterzeichnete interne Nummer n) {\

nicht unterzeichnete Rotforelle-Kontrollsumme = 0;

während (n> 0) {\

Kontrollsumme + = *buf ++;

n-;

}\

kehren Sie ((~checksum) + 1) zurück;

}\</Quelle>

Kommunikationen des langen Ziehens / Längsspannung
Impressum & Datenschutz