一、基本概念
實際的通信鏈路都不是理想的,位元在傳輸程序中可能會產生差錯:1可能變為0,0可能變為1,稱為位元差錯,
在一段時間內,傳輸錯誤的位元占所傳輸位元總數的比率稱為誤碼率BER(Bit Error Rate),
提高資料代碼的抗干擾能力. 這必須在原二進制代碼長度的基礎上增加幾位二進制代碼的長度,使相應資料具有一定的冗余度,
編碼有一定的檢錯能力,編碼必須要有一定的冗余度,編碼器的冗余性只是檢錯的必要條件,而不是充分條件,
碼重:編碼中1的個數,如01100010B的碼重為3
碼距:兩個編碼不相同的位數,兩個編碼之間的碼距等于它們“異或”操做結果的碼重,例如:01101100B ^10001001B=11100101B 碼距為5,
二、奇偶校驗
在原編碼的基礎上增加一位奇偶檢驗位,使得整個編碼的碼重固定為奇數(奇校驗)或偶數(偶校驗)
當干擾持續時間很短(如常見的尖峰干擾),即當差錯單個出現,奇偶檢驗即可以達成檢錯的目的,
如:奇校驗 發送:1101101 -----------------接收端:1101100 “1”數量奇性改變,可檢錯,
1101101 -----------------0111101 產生2位誤碼,奇校驗無法檢錯,
當連續出現幾個差錯時,簡單的奇偶校驗不能發現,這也是奇偶檢驗的缺點,
三、和校驗
如果一串資訊有“n”個位元組,對這n個位元組進行"加"運算,然后將結果附在位元組后面進行傳輸,附加的位元組就是校驗和,
在計算機中常用兩種加法 1、邏輯異或 2、加法指令
四、回圈冗余校驗CRC(應用最廣泛)
基本原理是將一段資訊看成一段二進制,然后用一個特定的數去除它,最后將余數作為校驗附在資訊后,在接收端同樣處理,
其根本思想就是先在要發送的幀后面附加一個數(這個就是用來校驗的校驗碼,但要注意,這里的數也是二進制序列的,下同),生成一個新幀發送給接收端,當然,這個附加的數不是隨意的,它要使所生成的新幀能與發送端和接收端共同選定的某個特定數整除(注意,這里不是直接采用二進制除法,而是采用一種稱之為“模2除法”),到達接收端后,再把接收到的新幀除以(同樣采用“模2除法”)這個選定的除數,因為在發送端發送資料幀之前就已通過附加一個數,做了“去余”處理(也就已經能整除了),所以結果應該是沒有余數,如果有余數,則表明該幀在傳輸程序中出現了差錯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/20682.html
標籤:嵌入式
