1.目的:
crc檢查是針對突發性、單一位元或奇數個位元錯誤進行檢查的動作,已表示資料傳輸的過程中是否錯誤。
2.工作原理:
crc主要的運作方式是將資料位元
d(x)
除以多項式
g(x)
進行運算,不同的
crc檢查則有不同的多項式
g(x)
產生,經過除法運算後可得知餘數
r(x)
來進行判斷。
3.運算規範:檢測資料是否傳輸正確可依照下列表示式進行驗證。
方法一:
資料位元
d(x)
在尾端+波形顯示之
crc_r(x)
=檢測位元
t(x)
檢測位元
t(x)
÷特定多項式
g(x)=0
顯示資料傳送正確≠0
顯示資料傳送錯誤
方法二:
資料位元
d(x)
在尾端+補上
g(x)
次方數個0=
t `(x)
檢測位元
t `(x)
÷特定多項式
g(x)
=餘數字元
r(x)
餘數字元
r(x)
=波型上餘數字元
r(x)
顯示資料傳送正確
≠波形上餘數字元
r(x)
顯示資料傳送錯誤
範例:由於工作原理相同,在此統一採方法二進行檢測。下圖使用
la擷取
piso-200
之can_bus
模組板之標準格式訊號,每
1 bit
為8us
。首先針對訊號分析做解碼動作,其特別規範為每相同訊號連續
5 bits
即給予1 bit
反向訊號,如同下圖
a-b區段內容中因有
5 bits 1
而後面緊接
1 bits 0
,其1 bit 0
之訊號不列入
crc檢查運算內,這點請注意
。首先進行訊號分析,
start
=0 (t-a區段)
、basic id
=11111111111(a-b區段)
、rtr
=0 (b-c區段)
、ide
=0 rb0=0 ctrl=0001(c-d)
、data=10001000 (d-e區段)
、crc r(x)
=0101100100101001 (e-f)、a
ck=01 (f-g)
、stop
=1111111 (g-h)
。can_bus_crc
多項次固定
g(x)
=x15+x14+x10+x8+x7+x4+x3+1
必須轉換為位元形式,從最高位元至常數字元依序排列,位元不足部份補為
0,共有
16 bits
。x15
x14
x13x12
x11x10
x9x8
x7x6
x5x4
x3x2x1
1100010110011001
※依據上式可得
g(x)
=1100010110011001
※can_bus_crc
資料位元串
d(x)
=crc r(x)
碼前資料位元數
=011111111111000000110001000 (t-e區段)
※can_bus_crc
餘數碼r(x)
=crc波形上訊號
=0101100100101001 (e-f區段)
進型運算時因
g(x)為15
階多項式,因此必須在
d(x)
尾端加上15個
0,可得檢測位元
t `(x)
=d(x)
+000000000000000
=011111111111000000110001000000000000000000
10101101101110011001110100
1100010110011001
♁11111111111000000110001000000000000000000
1100010110011001
♁1110100111100101
1100010110011001
♁1011000111110010
1100010110011001 ♁
1110100011010110
1100010110011001
♁ 1011010100111101
1100010110011001
♁1110000101001000
1100010110011001
♁1001001101000100
1100010110011001
♁1010110110111010
1100010110011001
♁1101000001000110
1100010110011001
♁1010111011111000
1100010110011001
♁1101011011000010
1100010110011001
♁1001101011011000
1100010110011001
♁1011111010000010
1100010110011001
♁1111011000110110
1100010110011001
♁1100111010111100
1100010110011001
010110010010100
運算r(x)
=010110010010100
與波形上
crc_r(x)
相符合,因此判段資料傳輸正確無誤。運算資料與波形上比對採前
15 bits
最後1 bit
為crc del
界定符,唯一單獨隱性位元,在此不列入比較。
Android編碼解碼及其原理
概念 編碼解碼就是使用特定的演算法,將資料進行處理,形成資料的另外一種表現形式,編碼後的資料可以使用解碼演算法還原出原始資料。將位元組陣列編碼,返回為string base64.encodetostring byte bs,int flag 將位元組陣列編碼,返回位元組陣列 base64.encod...
ldpc解碼講解 LDPC碼編譯碼原理及應用
ldpc 碼編譯碼原理及應用 下一代移動通訊系統的設計能力將遠遠超過當前的第三代移動通訊系統的 能力其中乙個最重要的特點表現在需要在 20m赫茲的頻寬內 實現高達 100mbps 的資料傳輸。因此 在如此高的頻譜效率下如何保證資料通訊的可靠性 也就成了乙個非常值得關注的課題。以通道編碼為核心內容的前...
base64編譯碼原理
base64 base64的編碼都是按字串長度,以每3個8bit的字元為一組,然後針對每組,首先獲取每個字元的ascii編碼,然後將ascii編碼轉換成8bit的二進位制,得到一組3 8 24bit的位元組 然後再將這24bit劃分為4個6bit的位元組,並在每個6bit的位元組前面都填兩個高位0,...