-
縱向冗餘校驗
鎖定
縱向冗餘校驗(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),IEC 62056-21電錶讀數標準
[1]
,智能卡定義 在ISO / IEC 7816和ACCESS.bus協議中。
這樣的8位LRC等效於使用多項式
的循環冗餘校驗,但是當以這種方式查看時,位流的獨立性不太清楚。
- 參考資料
-
- 1. 串行通信接口的實用設計方法 .萬方[引用日期2018-08-01]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:9次歷史版本
- 最近更新: 你饿嘛i