縱向冗餘校驗

縱向冗餘校驗LRC,Longitudinal Redundancy Check)是通信中常用的一種校驗形式。縱向冗餘校驗(LRC)是一種從縱向通道上的特定比特串產生校驗比特的錯誤檢測方法。在行列格式中(例如,在磁帶中),LRC經常是與VRC一起使用,這樣就會為每個字元校驗碼。

基本介紹

  • 中文名:縱向冗餘校驗
  • 外文名:LRC,Longitudinal Redundancy Check
  • 特點:通信中常用的一種校驗形式
  • 實質:校驗形式
介紹,實現,最佳矩形碼,偽代碼,

介紹

縱向冗餘校驗的異或校驗和可以簡單快速的計算出來,將一個數據塊的所有數據位元組遞歸,經過異或選通後即可產生異或校驗和。由於算法簡單,可以快速簡單地計算縱向冗餘校驗。然而,LRC並不很可靠,多個錯誤可能相互抵消,在一個數據塊內位元組順序的互換根本識別不出來。因此LRC主要用於快速校驗很小的數據塊兒(如32B)。在射頻識別系統中,由於標籤的容量一般較小,每次交易的數據量也不大,所以這種算法還是比較適合的。

實現

Set LRC = 0
For each character c in the string
do
Set LRC = LRC XOR c
end do

最佳矩形碼

雖然簡單的縱向奇偶校驗只能檢測錯誤,但它可以與附加的錯誤控制編碼(例如橫向冗餘校驗)組合以糾正錯誤。 橫向冗餘校驗存儲在專用的“奇偶校驗軌道”上。
每當在數據傳輸塊中發生任何單比特錯誤,這種二維奇偶校驗或“雙坐標奇偶校驗”時,使接收器能夠使用TRC來檢測錯誤發生在哪個位元組,以及 LRC準確檢測出錯誤發生的軌道,準確發現哪個位出錯,然後通過翻轉糾正該位。

偽代碼

國際標準ISO 1155規定,可以通過以下算法在軟體中計算位元組序列的縱向冗餘校驗:
Set LRC = 0For each byte b in the bufferdo    Set LRC = (LRC + b) AND 0xFFend doSet LRC = (((LRC XOR 0xFF) + 1) AND 0xFF)
它可以表示為“模數為28的所有位元組之和的8位二進制補碼值”(x AND 0xFF等於x MOD 28)。
許多協定使用基於XOR的縱向冗餘校驗位元組(通常稱為塊校驗字元或BCC),包括串列線路網際網路協定(SLIP),[8] IEC 62056-21電錶讀數標準,智慧卡定義 在ISO / IEC 7816和ACCESS.bus協定中。
這樣的8位LRC等效於使用多項式
的循環冗餘校驗,但是當以這種方式查看時,位流的獨立性不太清楚。

相關詞條

熱門詞條

聯絡我們