摘要:在CAN網(wǎng)絡(luò)中傳輸攝文時(shí),噪聲干擾或傳輸中斷等因素往往使接收端收到的報(bào)文出現(xiàn)錯(cuò)碼。為了及時(shí)可靠地把報(bào)文傳輸給對(duì)方并有效地檢測(cè)錯(cuò)誤,需要采用差錯(cuò)控制。詳細(xì)介紹了CAN總線中循環(huán)冗余校驗(yàn)碼的差錯(cuò)控制原理及其實(shí)現(xiàn)方法。 關(guān)鍵詞:循環(huán)冗余校驗(yàn) 差錯(cuò)控制 報(bào)文
在CAN系統(tǒng)中為保證報(bào)文傳輸?shù)恼_性,需要對(duì)通信過程進(jìn)行差錯(cuò)控制。目前常用的方法是反饋重發(fā),即一旦收到接收端發(fā)出的出錯(cuò)信息,發(fā)送端便自動(dòng)重發(fā),此時(shí)的差錯(cuò)控制只需要檢錯(cuò)功能。常用的檢錯(cuò)碼兩類:奇偶校驗(yàn)碼和循環(huán)冗余校驗(yàn)碼。奇偶校驗(yàn)碼是一種最常見的檢錯(cuò)碼,其實(shí)現(xiàn)方法簡(jiǎn)單,但檢錯(cuò)能力較差;循環(huán)冗余校驗(yàn)碼的編碼也很簡(jiǎn)單且誤判率低,所以在通信系統(tǒng)中獲得了廣泛的應(yīng)用。下面介紹CAN網(wǎng)絡(luò)中循環(huán)冗余校驗(yàn)碼(即CRC碼)的原理和實(shí)現(xiàn)方法。 CRC碼檢錯(cuò)是將被處理報(bào)文的比特序列當(dāng)作一個(gè)二進(jìn)制多項(xiàng)式A(x)的系數(shù),該系數(shù)除以發(fā)送方和接收方預(yù)先約定好的生成多項(xiàng)式g(x)后,將求得的余數(shù)P(x)作為CRC校驗(yàn)碼附加到原始的報(bào)文上,并一起發(fā)給接收方。接收方用同樣的g(x)去除收到的報(bào)文B(x),如果余數(shù)等于p(x),則傳輸無誤(此時(shí)A(x)和B(x)相同);否則傳輸過程中出錯(cuò),由發(fā)送端重發(fā),重新開始CRC校驗(yàn),直到無誤為止。 上述校驗(yàn)過程中有幾點(diǎn)需注意:①在進(jìn)行CRC計(jì)算時(shí),采用二進(jìn)制(模2)運(yùn)算法,即加法不進(jìn)位,減法不借位,其本質(zhì)就是兩個(gè)操作數(shù)進(jìn)行邏輯異或運(yùn)算;②在進(jìn)行CRC計(jì)算前先將發(fā)送報(bào)文所表示的多項(xiàng)式A(x)乘以xn,其中n為生成多項(xiàng)式g(x)的最高冪值。對(duì)二進(jìn)制乘法來講,A(x)·xn就是將A(x)左移n位,用來存放余數(shù)p(x),所以實(shí)際發(fā)送的報(bào)文就變?yōu)锳(x)·xn+p(x);③生成多項(xiàng)式g(x)的首位和最后一位的系數(shù)必須為1。 圖1為CRC校驗(yàn)的工作過程。
目前已經(jīng)有多種生成多項(xiàng)式被列入國(guó)際標(biāo)準(zhǔn)中,如:CRC-4、CRC-12、CRC-16、CCITT-16、CRC-32等。CAN總線中采用的生成多項(xiàng)式為g(x)=x15+x14+x10+x8+x7+x4+x3+1。可以看出,CANU叫線中的CRC校驗(yàn)采用的多項(xiàng)式能夠校驗(yàn)七級(jí),比一般CRC校驗(yàn)(CRC-4、CRC-12、CRC-16等)的級(jí)數(shù)(二~五級(jí))要高許多,因而它的檢錯(cuò)能力很強(qiáng),誤判率極低,成為提高數(shù)據(jù)傳輸質(zhì)量的有效檢錯(cuò)手段。 2.1 硬件電路的特點(diǎn) 在CAN總線中為了產(chǎn)生CRC碼,硬件電路除了具有復(fù)位和時(shí)鐘信號(hào)以外,還需要以下兩個(gè)控制信號(hào)的參與:①填充位解除信號(hào)destuff,它的有效邏輯值是1;②CRC檢驗(yàn)的使能信號(hào)enable,有效邏輯也為1。該硬件電路的特點(diǎn)是采用選擇器和反相器代替?zhèn)鹘y(tǒng)設(shè)計(jì)中用的異或門,既實(shí)現(xiàn)了比較功能,又降低了生產(chǎn)成本,同時(shí)也為工程師們提供了一種新的設(shè)計(jì)思路。 2.2 硬件電路圖 圖2即為實(shí)現(xiàn)CRC碼的硬件電路圖。 圖中需要說明的幾點(diǎn)如下:①使能信號(hào)和填充位解除信號(hào)省略;②crcnxt代表的邏輯值為輸入報(bào)文序列和CRC寄存器的最高位異或的結(jié)果;③標(biāo)號(hào)0~14所指示的為15位CRC寄存器,上升沿觸發(fā);④標(biāo)號(hào)1~6所指示的為選擇器和反相器的組合邏輯,實(shí)現(xiàn)異或功能,該選擇器的邏輯功能為Y=AB+AC,具體結(jié)構(gòu)如圖3所示。 2.3 電路工作過程 從以上分析可知:①當(dāng)enable=0時(shí),CRC清0;②當(dāng)enable=1、destuff=1時(shí),進(jìn)行正常CRC計(jì)算;③當(dāng)enable=1而destuff=0時(shí),正在解除填充時(shí),數(shù)據(jù)暫停傳送。 在各個(gè)控制信號(hào)均有效時(shí),輸入報(bào)文的每一位都是和CRC寄存器的最高位相異和后移入最低位,同時(shí)寄存器的第13、9、7、6、3、2位均和其最高位異或,結(jié)果分別左移一位;其它未進(jìn)行異或操作的寄存器位值也分別左移一位,直到報(bào)文的每一位都移入CRC寄存器為止,此時(shí)寄存器中的值取為計(jì)算得到的CRC碼。
如果報(bào)文的比特序列長(zhǎng)度為16,則需要左移16次才能對(duì)報(bào)文的每一位均進(jìn)行處理。如果以Ck表示CRC寄存器的第k位位值、Ck'表示移位后的第k位位值(k=0,1,2,3……15),則移位規(guī)律見表1。
3 CRC校驗(yàn)碼的軟件實(shí)現(xiàn) CRC校驗(yàn)用軟件實(shí)現(xiàn)起來非常方便。鑒于目前的資料中介紹的方法多使用C語(yǔ)言、匯編語(yǔ)言等實(shí)現(xiàn),而缺乏用硬件描述語(yǔ)言實(shí)現(xiàn),這里給出CRC碼的Verilog HDL之行為級(jí)描述程序。 本程序在Verilog_XL下編譯通過,同時(shí)在Synopsis上成功進(jìn)行了綜合及優(yōu)化。 //用Verilog HDL實(shí)現(xiàn)CRC碼 module crc(clk,rst,enable,destuff,datain,crc); input clk; input rst; input enable; input destuff; input datain; output[14:0]crc; reg[14:0]crc; wire crcnxt=datain^crc[14]; always@(posedge rst or posedge clk) begin if(rst)crc=0; else if(enable && destuff) begin if(crcnxt) crc<=crc^15h'4599; else crc<={crc[13:0],1'b0}; end end
endmodule 假設(shè)發(fā)送的是一個(gè)標(biāo)準(zhǔn)格式的遠(yuǎn)程幀,需求的數(shù)據(jù)字節(jié)為8,標(biāo)識(shí)符序列為10101011000,則對(duì)上述程序仿真后的波形如圖4所示。Crc序列從第20位開始輸出。 CRC校驗(yàn)碼的檢錯(cuò)能力很強(qiáng),并且由于CRC碼檢錯(cuò)的軟件和硬件實(shí)現(xiàn)都很簡(jiǎn)單,因而被廣泛地應(yīng)用于各類數(shù)據(jù)校驗(yàn)中。CRC碼檢錯(cuò)是提高數(shù)據(jù)傳輸質(zhì)量、高效檢錯(cuò)的有力手段。 |
CAN總線中循環(huán)冗余校驗(yàn)碼的原理及其電路實(shí)現(xiàn)
- CAN總線(129497)
相關(guān)推薦
800Mbps準(zhǔn)循環(huán)LDPC碼編碼器的FPGA實(shí)現(xiàn)
800Mbps準(zhǔn)循環(huán)LDPC碼編碼器的FPGA實(shí)現(xiàn)引言低密度校驗(yàn)碼腸 ,碼 由于其接近香農(nóng)限的糾錯(cuò)性能,使得其成為當(dāng)前信道編碼的研究熱點(diǎn)。 碼面臨的一個(gè)關(guān)鍵問題是其較高的編碼復(fù)雜度和編碼時(shí)延。 形耐
2012-08-11 11:44:45
CAN/CAN FD通信中有哪些循環(huán)冗余校驗(yàn)(CRC)的方法?
數(shù)據(jù)校驗(yàn)是為保證數(shù)據(jù)的完整性進(jìn)行的一種驗(yàn)證操作。CAN通信采用CRC校驗(yàn)作為一種重要的錯(cuò)誤檢測(cè)手段,是節(jié)點(diǎn)判斷CAN幀信息的完整性并產(chǎn)生確認(rèn)應(yīng)答的依據(jù)。在現(xiàn)場(chǎng)總線通信和控制的實(shí)際應(yīng)用中,工業(yè)應(yīng)用環(huán)境
2019-09-11 11:51:22
CAN通信控制的CRC校驗(yàn)
CAN 節(jié)點(diǎn)中設(shè)有錯(cuò)誤檢測(cè)、標(biāo)定和自檢等措施。檢測(cè)錯(cuò)誤包括多種方式,其中最常用、最有效的一種是 CRC 校驗(yàn)。CRC 序列由循環(huán)冗余校驗(yàn)碼求得的幀檢查序組成。為實(shí)現(xiàn) CRC 計(jì)算,被除的多項(xiàng)式系數(shù)由
2018-12-24 10:28:14
實(shí)現(xiàn)功能安全性冗余CAN參考設(shè)計(jì)
描述該參考設(shè)計(jì)展示了如何在物理層實(shí)施冗余(并行)CAN 以實(shí)現(xiàn)功能安全性。其中包括兩個(gè) SN65HVD257 CAN 收發(fā)器以及可確保兩個(gè)收發(fā)器收到相同數(shù)據(jù)的額外邏輯。特性較短的傳播延遲和快速的循環(huán)
2022-09-23 07:09:05
校驗(yàn)碼碼距是如何去定義的
嵌入式系統(tǒng)設(shè)計(jì)師學(xué)習(xí)筆記⑨:校驗(yàn)碼碼距的定義:一個(gè)編碼系統(tǒng)的碼距就是整個(gè)編碼系統(tǒng)中任意(所有)兩個(gè)碼字(合法編碼)的最小距離。例如:要對(duì)A,B兩個(gè)字母進(jìn)行編碼若用1位長(zhǎng)度的二進(jìn)制編碼,若A=1,B
2021-12-22 07:21:56
CRC16的計(jì)算校驗(yàn)碼的方式有哪幾種?
CRC16的計(jì)算校驗(yàn)碼的方式有哪幾種?如何使用Delphi編寫Modbus RTU CRC16的校驗(yàn)碼?
2021-11-03 07:20:27
CRC32校驗(yàn)碼主要用來做什么的
CRC32校驗(yàn)碼主要用來檢驗(yàn)數(shù)據(jù)在傳輸過程中的完整性一、發(fā)送方1、計(jì)算要發(fā)送數(shù)據(jù)的CRC32碼2、發(fā)送數(shù)據(jù)包3、數(shù)據(jù)包內(nèi)容 數(shù)據(jù)+CRC32碼二、接收方1、接收數(shù)據(jù)包2、提取 數(shù)據(jù) 和CRC32碼3
2022-02-25 06:29:27
CRC循環(huán)冗余校驗(yàn)的算法
想問下51單片機(jī)和所有嵌入式中一個(gè)很基本也很常見的問題,CRC循環(huán)冗余校驗(yàn)的算法中生成多項(xiàng)式為什么要那樣?。ㄓ袀€(gè)生成多項(xiàng)式的表格),如果信息段中一位或多位傳輸錯(cuò)誤,校驗(yàn)段是怎樣保證唯一性識(shí)別錯(cuò)誤的。謝謝
2015-01-21 21:02:15
CRC校驗(yàn)方法通過CAN總線通信來實(shí)現(xiàn)
,接收節(jié)點(diǎn)在ACK時(shí)隙位中發(fā)送顯性狀態(tài),從而覆蓋發(fā)送器的隱性狀態(tài)。在不匹配的情況下,接收節(jié)點(diǎn)在ACK定界符之后發(fā)送錯(cuò)誤幀。目前CANFD的控制器CRC校驗(yàn)實(shí)現(xiàn)過程會(huì)相對(duì)復(fù)雜一點(diǎn),在一個(gè)CAN總線網(wǎng)絡(luò)中,幀
2019-09-25 15:41:50
CRC是什么意思
CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check),是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。循環(huán)冗余檢查(CRC)是一種
2021-08-11 06:41:50
LABVIEW編寫的程序CRC16 X32得到的校驗(yàn)碼不正確,請(qǐng)大家?guī)臀铱垂悄睦锏膯栴},謝謝
LABVIEW編寫的程序CRC16/X32得到的校驗(yàn)碼不正確,請(qǐng)大家?guī)臀铱垂悄睦锏膯栴},謝謝!輸入16進(jìn)制數(shù)據(jù):0100 0000 0800 0102 01正確校驗(yàn)碼為:DFDE
2022-03-02 14:44:15
ModBus CRC16校驗(yàn)碼學(xué)習(xí)筆記(附手稿)精選資料分享
ModBus CRC16校驗(yàn)碼學(xué)習(xí)筆記(附手稿)學(xué)習(xí)背景最近在玩輪轂電機(jī)的驅(qū)動(dòng)控制,該電機(jī)配套的驅(qū)動(dòng)器可以使用485或者CAN總線協(xié)議。該電機(jī)的485通信協(xié)議的報(bào)文中最后兩個(gè)字節(jié)按照某寶賣家
2021-08-30 06:28:27
Modbus 協(xié)議的校驗(yàn)碼計(jì)算
Modbus 協(xié)議的校驗(yàn)碼計(jì)算,這個(gè)會(huì)有幫助的,你也可以自己定義校驗(yàn)算法的DLL然后封裝,以適應(yīng)不同的廠商
2015-07-08 10:42:19
Modbus庫(kù)開發(fā)筆記之八:CRC循環(huán)冗余校驗(yàn)的研究與實(shí)現(xiàn)
`談到Modbus通訊自然免不了循環(huán)冗余校驗(yàn)(CRC),特別是在標(biāo)準(zhǔn)的串行RTU鏈路上是必不可少的。不僅如此在其他開發(fā)中,也經(jīng)常要用到CRC 算法對(duì)各種數(shù)據(jù)進(jìn)行校驗(yàn)。這樣一來,我們就需要研究一下這個(gè)
2017-08-19 19:47:40
PSoC 4 循環(huán)冗余校驗(yàn) (CRC)
循環(huán)冗余校驗(yàn) (CRC) 組件的默認(rèn)用途是根據(jù)任意長(zhǎng)度的串行比特流計(jì)算 CRC。在數(shù)據(jù)時(shí)鐘的上升沿上對(duì)輸入數(shù)據(jù)進(jìn)行采樣。在啟動(dòng)前,CRC 值復(fù)位為 0,或可用初始值作為種子值。完成比特流時(shí),可讀取計(jì)算出的 CRC 值
2013-07-04 11:30:02
crc校驗(yàn)碼生成工具下載-crc表生成工具
crc校驗(yàn)碼生成工具下載-crc表生成工具[此貼子已經(jīng)被作者于2008-5-30 9:23:38編輯過]
2008-05-20 11:16:49
dfplayer mini播放模塊校驗(yàn)碼怎么計(jì)算
產(chǎn)品說明如下:鏈接根據(jù)官方說明,可以用串口發(fā)送命令來控制模塊的工作,串口指令需要兩位的校驗(yàn)碼,琢磨好久,都算不對(duì),后來發(fā)現(xiàn)是文檔標(biāo)識(shí)錯(cuò)誤。按圖片所寫,即可算出校驗(yàn)碼。
2022-01-07 07:16:34
labview 中MODBUS校驗(yàn)碼計(jì)算方法字符串
字符串互聯(lián)后通過MODBUS校驗(yàn)碼校驗(yàn)程序,發(fā)出的數(shù)據(jù)不正確,但是我把需要校驗(yàn)的數(shù)據(jù)直接填在MODBUS校驗(yàn)碼校驗(yàn)程序內(nèi)部,數(shù)據(jù)是正確的,原因在哪呢?
2020-05-20 19:16:14
labview CRC16位校驗(yàn)碼生成程序
輸入任意長(zhǎng)度的16進(jìn)制字符串,輸出CRC校驗(yàn)碼高字節(jié)和低字節(jié)。參考了“mao525159“這位用戶的程序
2020-05-23 11:00:40
labview DAQ----MODBUS CRC16循環(huán)冗余校驗(yàn)
說明:CRC循環(huán)冗余錯(cuò)誤校驗(yàn)計(jì)算方法 CRC—16(循環(huán)冗余錯(cuò)誤校驗(yàn))生成CRC—16校驗(yàn)字節(jié)的步驟如下: (1)裝入一個(gè)16位寄存器,所有數(shù)位均為1。 (2)該16位寄存器的高位字節(jié)與開始8位字節(jié)
2011-11-07 10:46:20
【HAL庫(kù)每天一例】第031例:CRC-循環(huán)冗余校驗(yàn)
();/* CRC循環(huán)冗余校驗(yàn)初始化 */MX_CRC_Init();/* 進(jìn)行冗余循環(huán)校驗(yàn),獲取校驗(yàn)碼*/uwCRCValue = HAL_CRC_Accumulate(&hcrc
2016-06-05 11:00:19
一個(gè)加校驗(yàn)碼的函數(shù)
','0','0','0','0','\n',}; // 函數(shù)說明:加校驗(yàn)碼函數(shù)void crc(void){ uchar j,i=0,k; for(j=0;j>4;if(k>=0&&k=10&&k=0&&i=10&&i
2016-11-01 20:00:59
串口發(fā)送的候?yàn)槭裁磾?shù)組中最后兩個(gè)CRC校驗(yàn)碼不能發(fā)送出去
校驗(yàn)碼收不到,但在MDK中確實(shí)看到數(shù)組中是有CRC校驗(yàn)碼的,我在for循環(huán)發(fā)送前面加一個(gè)斷點(diǎn),再全速運(yùn)行,最后兩個(gè)字節(jié)可以收到;在for循環(huán)后的break處加一個(gè)斷點(diǎn),也可以接收到最后兩個(gè)字節(jié),后來我在
2019-06-19 04:35:16
串口通訊 波特率設(shè)置的大小對(duì)CRC校驗(yàn)碼的影響
今天編寫個(gè)程序 6010A的 下位機(jī)做從 用串口通訊測(cè)試 當(dāng)波特率設(shè)置38400時(shí)我返回的CRC校驗(yàn)碼是正確的 但設(shè)置是19200或者9600時(shí),用校驗(yàn)碼計(jì)算器計(jì)算校驗(yàn)碼是錯(cuò)誤的,所有的返回?cái)?shù)據(jù)還都是正確的,這個(gè)是怎么回事,求大神解答!
2018-12-18 15:16:34
單片機(jī)校驗(yàn)碼計(jì)算問題
單片機(jī)有一串報(bào)文校驗(yàn)碼 4D 30 35 30 30 30 35 30 35 30是用SUM1校驗(yàn)方式,最后校驗(yàn)后顯示的是01,D9 是怎么算出來的
2019-11-23 08:31:41
如何利用循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元進(jìn)行傳輸數(shù)據(jù)的校驗(yàn)呢
循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元是什么?如何利用循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元進(jìn)行傳輸數(shù)據(jù)的校驗(yàn)呢?
2021-12-15 06:04:22
如何在MDK中查看編譯后的16位校驗(yàn)碼?
用過PIC單片機(jī)的人都知道,其開發(fā)環(huán)境MPLAB工具欄上有個(gè)地方會(huì)顯示代碼編譯后的16位校驗(yàn)碼,比如E0C3之類的,想問下KEIL4中如何查看,謝謝大家
2019-08-21 22:19:43
實(shí)用資料——CRC校驗(yàn)碼生成算法
同樣方法進(jìn)行計(jì)算,只是計(jì)算的內(nèi)容不要包括最后兩個(gè)字節(jié),然后比較生成的CRC校驗(yàn)碼和數(shù)據(jù)幀中的是否相同即可。如果發(fā)送方交換CRC校驗(yàn)碼的高低8位,則接收方可以計(jì)算包括交換后的CRC碼在內(nèi)的整個(gè)數(shù)據(jù)幀,傳輸正確的話結(jié)果恒為0x0000。
2012-01-11 21:10:42
實(shí)用資料——CRC校驗(yàn)碼生成算法
同樣方法進(jìn)行計(jì)算,只是計(jì)算的內(nèi)容不要包括最后兩個(gè)字節(jié),然后比較生成的CRC校驗(yàn)碼和數(shù)據(jù)幀中的是否相同即可。如果發(fā)送方交換CRC校驗(yàn)碼的高低8位,則接收方可以計(jì)算包括交換后的CRC碼在內(nèi)的整個(gè)數(shù)據(jù)幀,傳輸正確的話結(jié)果恒為0x0000。
2012-02-14 19:45:06
常用編碼(BCD編碼、余3碼、格雷反射碼、奇偶校驗(yàn)碼)
1111 1000 4、奇偶校驗(yàn)碼在數(shù)據(jù)的存取、運(yùn)算和傳送過程中,難免會(huì)發(fā)生錯(cuò)誤,把“1”錯(cuò)成“0”或把“0”錯(cuò)成“1”。奇偶校驗(yàn)碼是一種能檢驗(yàn)這種錯(cuò)誤的代碼。它分為兩部分;信息位和奇偶校驗(yàn)位。有奇數(shù)個(gè)“1”稱為奇校驗(yàn),有偶數(shù)個(gè)“1”則稱為偶校驗(yàn)。
2011-04-11 10:00:29
怎么看這款單片機(jī)的校驗(yàn)碼是多少呢
很久以前寫的程序,由于程序有很多版本,所以想看一下最終版的程序校驗(yàn)碼來確定最終的程序。請(qǐng)問如何用燒錄器來看校驗(yàn)碼呢我開始是直接用CSWrite來read chip看看單片機(jī)的校驗(yàn)碼但是最后發(fā)現(xiàn)每一個(gè)的校驗(yàn)碼都是FFFF,就很奇怪,想問一下怎么看校驗(yàn)碼
2020-07-01 16:16:01
汽車CAN總線技術(shù)
和防盜控制器互相存儲(chǔ)對(duì)方信息,校驗(yàn)碼中還摻雜了隨即碼,從而大幅提高防盜能力。校驗(yàn)信息通過Can-Bus傳遞大幅提高了信息傳遞的可靠性,使防盜系統(tǒng)的工作穩(wěn)定可靠。就目前而言,Can-Bus總線技術(shù)一般
2015-06-24 13:56:39
計(jì)算CRC-16循環(huán)冗余校驗(yàn)碼的程序開發(fā)
字節(jié)的處理就是重復(fù)第2步到第5步了7、把所有的欲發(fā)送或接收消息這樣處理后, CRC寄存器里的值就是我們最終需要得到的CRC校驗(yàn)碼。如果你能正確回答我的問題,那么恭喜你,你自己可以用Visual
2010-12-18 22:56:18
請(qǐng)問CRC16校驗(yàn)碼的程序該怎樣編寫?
比如:求CRC16校驗(yàn)碼的程序該怎樣編寫?Dim bytSj() As BytebytSj(1) = Text2.TextbytSj(2) = 5bytSj(3) = 0bytSj(4
2019-03-14 06:35:45
轉(zhuǎn):循環(huán)冗余校驗(yàn)(CRC)算法入門引導(dǎo)
寫給嵌入式程序員的循環(huán)冗余校驗(yàn)(CRC)算法入門引導(dǎo)前言CRC校驗(yàn)(循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。在嵌入式軟件開發(fā)中,經(jīng)常要用到CRC 算法對(duì)各種數(shù)據(jù)進(jìn)行校驗(yàn)。因此,掌握基本的CRC
2016-08-01 18:32:16
基于C8051F的CRC校驗(yàn)算法的實(shí)現(xiàn)
介紹了CRC(循環(huán)冗余碼校驗(yàn))原理及集成混合信號(hào)片上系統(tǒng)單片機(jī)C8051F的新特性,推導(dǎo)獲得以字節(jié)為單位的數(shù)據(jù)序列CRC碼遞推算法,利用C8051F單片機(jī)的自帶CAN2.0B總線接口控制器可以很
2009-03-14 08:39:5046
循環(huán)冗余校驗(yàn)碼的單片機(jī)及CPLD 實(shí)現(xiàn)
循環(huán)冗余碼校驗(yàn)(CRC)是一種可靠性很高的串行數(shù)據(jù)校驗(yàn)方法。介紹循環(huán)冗余碼校驗(yàn)的基本原理,并分別用單片機(jī)和CPLD 作了循環(huán)冗余碼校驗(yàn)的軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)。包括匯編語(yǔ)言和VHDL
2009-04-16 14:19:4416
基于CAN 總線的雙機(jī)冗余系統(tǒng)設(shè)計(jì)方法
冗余技術(shù)是提高計(jì)算機(jī)控制系統(tǒng)可靠性的重要措施之一。本文在分析傳統(tǒng)雙機(jī)冗余系統(tǒng)不足之處的基礎(chǔ)上,提出基于CAN 總線的雙機(jī)冗余系統(tǒng)的設(shè)計(jì)方法。此方法同樣適用于多機(jī)冗余
2009-05-14 14:39:4235
循環(huán)冗余校驗(yàn)在SOPC中的自定義指令實(shí)現(xiàn)
NIOS II 軟核處理器是Altera 公司一款靈活高效的嵌入式處理器,常應(yīng)用于控制和通信領(lǐng)域。循環(huán)冗余校驗(yàn)(CRC)廣泛應(yīng)用于各種數(shù)據(jù)校驗(yàn)中。本文通過NIOS II 的自定義指令,成功地
2009-07-07 14:06:2421
循環(huán)冗余校驗(yàn)在單片機(jī)無線通信中的應(yīng)用
本文介紹了循環(huán)冗余碼(CRC 碼)校驗(yàn)的原理和計(jì)算方法,分析兩種查表冗余校驗(yàn)快速算法,提出新型分段查表法,良好地解決以單片機(jī)為核心的濕度測(cè)控系統(tǒng)無線數(shù)據(jù)傳輸差錯(cuò)控
2009-07-30 15:36:3534
電話網(wǎng)遠(yuǎn)程通信中CRC校驗(yàn)碼的設(shè)計(jì)及實(shí)現(xiàn)
本文介紹了基于電話網(wǎng)遠(yuǎn)距離分布式測(cè)控系統(tǒng)的通信方法,重點(diǎn)介紹了傳輸協(xié)議中CRC 循環(huán)校驗(yàn)碼校驗(yàn)原理,CRC 碼的生成、檢測(cè)方法及其在Dephi 環(huán)境中的實(shí)現(xiàn),并給出了實(shí)例。
2009-08-12 10:24:2118
基于素域構(gòu)造的準(zhǔn)循環(huán)低密度校驗(yàn)碼
該文提出一種基于素域構(gòu)造準(zhǔn)循環(huán)低密度校驗(yàn)碼的方法。該方法是Lan 等所提出基于有限域構(gòu)造準(zhǔn)循環(huán)低密度校驗(yàn)碼的方法在素域上的推廣,給出了一類更廣泛的基于素域構(gòu)造的準(zhǔn)循
2010-03-05 17:04:523
基于素域構(gòu)造的準(zhǔn)循環(huán)低密度校驗(yàn)碼
該文提出一種基于素域構(gòu)造準(zhǔn)循環(huán)低密度校驗(yàn)碼的方法。該方法是Lan 等所提出基于有限域構(gòu)造準(zhǔn)循環(huán)低密度校驗(yàn)碼的方法在素域上的推廣,給出了一類更廣泛的基于素域構(gòu)造的準(zhǔn)循
2010-03-06 10:38:1513
利用無損壓縮降低循環(huán)冗余校驗(yàn)的錯(cuò)誤漏檢率及其電路實(shí)現(xiàn)
循環(huán)冗余校驗(yàn)(CRC)算法在很多領(lǐng)域都有廣泛的應(yīng)用。對(duì)于確定格式的CRC 校驗(yàn)碼生成多項(xiàng)式,其錯(cuò)誤漏檢率基本為確定值。因此待檢數(shù)據(jù)的長(zhǎng)度越大,出現(xiàn)錯(cuò)誤而不會(huì)被檢測(cè)到的機(jī)會(huì)
2010-03-06 11:24:3415
每天都在幫我們的算法———循環(huán)沉余校驗(yàn)#電子技術(shù)教學(xué) #計(jì)算機(jī)專業(yè) #循環(huán)沉余校驗(yàn) #數(shù)據(jù)算法
算法循環(huán)冗余校驗(yàn)
野望發(fā)布于 2022-09-10 16:58:58
基于LabVIEW的Modbus協(xié)議兩種校驗(yàn)碼的實(shí)現(xiàn)方法
基于LabVIEW的Modbus協(xié)議兩種校驗(yàn)碼的實(shí)現(xiàn)方法
介紹基于LabVIEW的Modbus協(xié)議兩種校驗(yàn)碼的實(shí)現(xiàn)方法,該方法可在基于PC機(jī)的測(cè)控系統(tǒng)中加以實(shí)際運(yùn)用。
2009-10-13 00:08:193926
奇偶校驗(yàn)碼
奇偶校驗(yàn)碼
奇偶校驗(yàn)碼是一種開銷最小,能發(fā)現(xiàn)數(shù)據(jù)代碼中一位出錯(cuò)情況的編碼,常用于存儲(chǔ)器讀寫檢查,或ASCII字符、其它類
2009-10-13 16:42:174573
海明校驗(yàn)碼
海明校驗(yàn)碼
這是由Richard Hamming于1950年提出、目前還被廣泛采用的一種很有效的校驗(yàn)方法,是只要增加少數(shù)幾個(gè)校驗(yàn)位,就能檢測(cè)出二位同時(shí)出錯(cuò)、亦能檢測(cè)出一位
2009-10-13 16:46:462077
循環(huán)冗余校驗(yàn)碼---CRC碼
循環(huán)冗余校驗(yàn)碼---CRC碼
二進(jìn)制信息位串沿一條信號(hào)線逐位在部件之間或計(jì)算機(jī)之間傳送稱為串行傳送。CRC(Cyclic Redundancy c
2009-10-13 16:52:386924
奇偶校驗(yàn)碼,奇偶校驗(yàn)碼原理是什么?
奇偶校驗(yàn)碼,奇偶校驗(yàn)碼原理是什么?
奇偶校驗(yàn)碼是奇校驗(yàn)碼和偶校驗(yàn)碼的統(tǒng)稱,是一種最基本的檢錯(cuò)碼。它是由n-1位信息元和1位校驗(yàn)元組成,可
2010-03-17 17:39:1261481
循環(huán)冗余校驗(yàn)確保正確的數(shù)據(jù)通信
有幾種方法可以確保收到正確數(shù)據(jù)后才執(zhí)行動(dòng)作。最簡(jiǎn)單的方 式就是控制器回讀所發(fā)送的數(shù)據(jù),另一種替代方法是循環(huán)冗余校驗(yàn)(CRC)
2011-06-02 10:09:281088
crc校驗(yàn)基本原理
本內(nèi)容介紹了crc校驗(yàn)基本原理,CRC幾個(gè)基本概念,CRC碼的生成步驟.CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)
2011-12-21 16:55:044500
基于FPGA的循環(huán)冗余校驗(yàn)實(shí)驗(yàn)系統(tǒng)
文章首先分析了循環(huán)冗余校驗(yàn)碼的功能,在此基礎(chǔ)上提出了基于FPGA的實(shí)現(xiàn)方法,詳細(xì)闡述了CRC校驗(yàn)編解碼的實(shí)現(xiàn)方法,并提出了基于現(xiàn)有的實(shí)驗(yàn)箱設(shè)備實(shí)現(xiàn)小型的CRC校驗(yàn)系統(tǒng)的總體設(shè)計(jì)
2012-03-26 13:52:101572
CRC校驗(yàn)碼算法的研究與實(shí)現(xiàn)
為了提高實(shí)際通信中檢查信號(hào)傳輸錯(cuò)誤的能力,提高和推廣CRC校驗(yàn)技術(shù),本論文用邏輯代數(shù)知識(shí)、按模運(yùn)算、代數(shù)知識(shí)和C語(yǔ)言編程工具設(shè)計(jì)了幾種具體實(shí)用的CRC校驗(yàn)碼的計(jì)算方法,這些
2012-05-28 15:41:070
CAN總線通信協(xié)議的分析和實(shí)現(xiàn) CAN總線通信協(xié)議以及其實(shí)現(xiàn)方法
CAN總線通信協(xié)議的分析和實(shí)現(xiàn) CAN總線通信協(xié)議以及其實(shí)現(xiàn)方法
2017-09-04 08:45:3340
CRC基本原理及其兩個(gè)重要性質(zhì)的介紹及FPGA實(shí)現(xiàn)
CRC校驗(yàn)碼,根據(jù)校驗(yàn)碼位數(shù)的不同常用的CRC循環(huán)冗余校驗(yàn)算法有:CRC8、CRC12、CCITT CRC16、ANSI CRC16、CRC32。這次我只實(shí)現(xiàn)了CRC8的算法,至于CRC16
2017-09-29 15:38:0523
循環(huán)冗余校驗(yàn)奇偶校驗(yàn)累加和校驗(yàn)等知識(shí)分享
CRC校驗(yàn)(循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。在嵌入式軟件開發(fā)中,經(jīng)常要用到CRC
2017-11-08 09:31:128412
crc校驗(yàn)簡(jiǎn)記式意思
CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯(cuò)功能,對(duì)數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面
2017-12-04 08:51:241642
crc校驗(yàn)方法及示例
CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check[1] ):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。循環(huán)冗余檢查(CRC)是一種
2017-12-04 09:35:1513594
crc循環(huán)冗余校驗(yàn)碼算法
循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check, CRC)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡(jiǎn)短固定位數(shù)校驗(yàn)碼的一種散列函數(shù),主要用來檢測(cè)或校驗(yàn)數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。它是利用除法及余數(shù)的原理來作錯(cuò)誤偵測(cè)的。
2017-12-04 10:11:3921673
crc校驗(yàn)錯(cuò)誤_crc校驗(yàn)錯(cuò)誤怎么解決
CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check[1] ):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。循環(huán)冗余檢查(CRC)是一種
2017-12-05 15:34:3043087
PIC24F系列參考手冊(cè)之可編程循環(huán)冗余校驗(yàn)(CRC)
本文主要介紹了PIC24F系列參考手冊(cè)之可編程循環(huán)冗余校驗(yàn)(CRC)。
2018-06-25 03:20:000
PIC32系列中文參考手冊(cè)—第60章 32位可編程循環(huán)冗余校驗(yàn) (CRC)
PIC32系列中文參考手冊(cè)—第60章 32位可編程循環(huán)冗余校驗(yàn) (CRC)
2018-05-25 17:29:284
薦讀:基于FPGA 的CRC校驗(yàn)碼生成器
,循環(huán)冗余校驗(yàn),是一種數(shù)字通信中的常用信道編碼技術(shù)。其特征是信息段和校驗(yàn)字段的長(zhǎng)度可以任意選定。 2.CRC校驗(yàn)的基本原理: CRC碼是由兩部分組成的,前部分是信息碼,就是需要校驗(yàn)的信息,后部分是校驗(yàn)碼,如果CRC碼長(zhǎng)共n bit,信息碼長(zhǎng)k bit,就稱為(n,k)碼,剩余的r bit即為校驗(yàn)位。如
2018-06-13 11:18:506206
CAN總線錯(cuò)誤類型及校驗(yàn)方法
你了解CAN總線嗎?你知道總線中有哪些錯(cuò)誤嗎?你想了解總線中的錯(cuò)誤是如何校驗(yàn)以及錯(cuò)誤之間的關(guān)系嗎?下文為大家揭開它神秘的面紗。
2018-06-26 10:29:2728436
如何用SMART編寫CRC校驗(yàn)算法程序
CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。
2018-11-26 09:50:278568
基于TMS320C64x的CRC校驗(yàn)算法分析
CRC(Cyclic Redundancy Check)循環(huán)冗余校驗(yàn)碼是數(shù)據(jù)通信領(lǐng)域中常用的一種差錯(cuò)校驗(yàn)碼,在早期的通信中運(yùn)用廣泛。
2020-08-10 16:46:511255
CAN/CAN FD通信中的循環(huán)冗余校驗(yàn)(CRC)方法
傳統(tǒng)CAN以及目前CAN FD采取的校驗(yàn)機(jī)制,保證傳輸過程中遭受破壞的幀數(shù)據(jù)幾乎不會(huì)被接收以及應(yīng)答成功,能有效防止物理層傳輸錯(cuò)誤,讓用戶界面不需要額外關(guān)注幀傳輸數(shù)據(jù)的正確性。
2020-12-26 02:32:251116
并行循環(huán)冗余校驗(yàn)算法
循環(huán)冗余碼校驗(yàn)(CRC)是一種眾所周知的錯(cuò)誤檢測(cè)代碼,已廣泛用于以太網(wǎng),PCIe和其他傳輸協(xié)議中?,F(xiàn)有的基于FPGA的實(shí)現(xiàn)解決方案在高性能場(chǎng)景中會(huì)遇到資源過度利用的問題。填充零問題和可編程性的引入
2022-02-08 16:42:07988
使用FPGA實(shí)現(xiàn)循環(huán)冗余校驗(yàn)CRC編碼器的設(shè)計(jì)資料說明
介紹了循環(huán)冗余校驗(yàn)(CRC)編碼器的設(shè)計(jì)及FPGA實(shí)現(xiàn)過程,采用原理圖輸入法對(duì)整個(gè)系統(tǒng)進(jìn)行了編譯和仿真,并在芯片EPlK30TCl44-3中對(duì)該設(shè)計(jì)的核心部分進(jìn)行了測(cè)試驗(yàn)證。結(jié)果表明,試驗(yàn)數(shù)據(jù)與理論分析結(jié)果完全相符。
2021-02-05 17:00:0019
CRC校驗(yàn)碼并行計(jì)算的FPGA實(shí)現(xiàn)
用軟件實(shí)現(xiàn) CRC 校驗(yàn)碼計(jì)算很難滿足高速數(shù)據(jù)通信的要求 ,基于硬件的實(shí)現(xiàn)方法中 ,有串行經(jīng)典算法 LFSR 電路 以及由軟件算法推導(dǎo)出來的其它各種并行計(jì)算方法。以經(jīng)典的LFSR 電路為基礎(chǔ) ,研究
2021-03-28 09:34:2430
Verilog數(shù)字系統(tǒng)基礎(chǔ)設(shè)計(jì)中的循環(huán)冗余校驗(yàn)
CRC(循環(huán)冗余校驗(yàn)) CRC介紹 臨時(shí)“插播”,后面有實(shí)例。 CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))是數(shù)據(jù)幀傳輸中常用的一種差錯(cuò)控制編碼方式,針對(duì)要發(fā)送的數(shù)據(jù)
2021-08-17 17:08:566229
AN5507_STM32H7 系列閃存接口中的循環(huán)冗余校驗(yàn)
AN5507_STM32H7 系列閃存接口中的循環(huán)冗余校驗(yàn)
2022-11-21 08:11:130
CRC循環(huán)冗余校驗(yàn)簡(jiǎn)介
CRC 是Cyclic Redundancy Check的縮寫,循環(huán)冗余校驗(yàn),用于校驗(yàn)數(shù)據(jù)傳輸?shù)耐暾?。一般情況下在數(shù)據(jù)發(fā)送前計(jì)算CRC校驗(yàn)值,附在發(fā)送數(shù)據(jù)之后,數(shù)據(jù)接收方也按照同樣方法計(jì)算CRC,然后對(duì)比計(jì)算結(jié)果,如果一致說明數(shù)據(jù)數(shù)據(jù)傳輸無誤,否則數(shù)據(jù)傳輸出錯(cuò)。
2023-04-24 13:04:543155
華大電子MCU CIU32M010、CIU32M030循環(huán)冗余校驗(yàn)計(jì)算單元及電源管理
華大電子MCU CIU32M010、CIU32M030循環(huán)冗余校驗(yàn)計(jì)算單元及電源管理
2023-06-20 10:22:03354
CRC校驗(yàn)碼的多種Verilog實(shí)現(xiàn)方式
CRC循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check),檢錯(cuò)碼。
2023-06-21 15:03:472946
32位可編程循環(huán)冗余校驗(yàn)(CRC)
電子發(fā)燒友網(wǎng)站提供《32位可編程循環(huán)冗余校驗(yàn)(CRC).pdf》資料免費(fèi)下載
2023-09-25 11:22:290
評(píng)論
查看更多