CAN總線通信的CRC校驗(yàn)方法
出處:面包板 發(fā)布于:2019-07-10 14:16:51
數(shù)據(jù)校驗(yàn)是為保證數(shù)據(jù)的完整性進(jìn)行的一種驗(yàn)證操作。CAN通信采用CRC校驗(yàn)作為一種重要的錯(cuò)誤檢測手段,是節(jié)點(diǎn)判斷CAN幀信息的完整性并產(chǎn)生確認(rèn)應(yīng)答的依據(jù)。
在現(xiàn)場總線通信和控制的實(shí)際應(yīng)用中,工業(yè)應(yīng)用環(huán)境往往是極端的溫度以及電磁噪聲或是其他的惡劣環(huán)境,系統(tǒng)在這種條件下能否正常工作至關(guān)重要,試想一下倘若生產(chǎn)線設(shè)備發(fā)送的位置信息在傳輸過程出現(xiàn)了錯(cuò)誤,輕則可能造成生產(chǎn)癱瘓,重則可能導(dǎo)致設(shè)備損壞甚至人員傷害。
在CAN總線通信過程中CAN控制器具備完整的錯(cuò)誤檢測能力,其中包含:位錯(cuò)誤檢測、格式錯(cuò)誤檢測、填充錯(cuò)誤檢測、應(yīng)答錯(cuò)誤檢測和CRC錯(cuò)誤檢測。作為一種重要的錯(cuò)誤檢測手段,CRC錯(cuò)誤檢測是接收節(jié)點(diǎn)判斷CAN幀信息的完整性并向總線確認(rèn)應(yīng)答的依據(jù)。
常見的校驗(yàn)方法
1、簡單的校驗(yàn)是數(shù)據(jù)發(fā)送后進(jìn)行主動(dòng)回讀,結(jié)果一致才確認(rèn)傳輸成功,很顯然這種傳輸溝通的方式很直觀并非常精準(zhǔn),但是由于回讀的操作使得數(shù)據(jù)傳輸量翻倍,也就是傳輸對(duì)帶寬要求高且效率低下。
2、奇偶校驗(yàn),就是傳輸中使用額外1個(gè)位來記錄傳輸數(shù)據(jù)二進(jìn)制數(shù)中1的個(gè)數(shù)是奇數(shù)還是偶數(shù),這個(gè)方案適合絕大多數(shù)硬件,傳輸開銷適中,因此被廣泛使用,例如常見的串口通信。
3、累加和校驗(yàn),該算法原理是對(duì)數(shù)據(jù)逐一進(jìn)行累加后得到一個(gè)數(shù)值,接收方在接收數(shù)據(jù)同時(shí)也進(jìn)行數(shù)據(jù)的累加并終與發(fā)送過來的累加和進(jìn)行比較,該算法計(jì)算簡單,無論在硬件或是軟件實(shí)現(xiàn)都能保證較高的效率,常用于低速串行數(shù)據(jù)通信校驗(yàn)和芯片代碼的完整性判斷。
4、CRC檢驗(yàn),該算法是基于一個(gè)多項(xiàng)式除法取余的結(jié)果,其根據(jù)位數(shù)需求和多項(xiàng)式變化有數(shù)十種版本,憑借其硬件實(shí)現(xiàn)簡單,位反轉(zhuǎn)偵錯(cuò)能力較強(qiáng)及運(yùn)算開銷適中的優(yōu)點(diǎn)被廣泛應(yīng)用與數(shù)字網(wǎng)絡(luò)傳輸以及數(shù)據(jù)存儲(chǔ)領(lǐng)域,如磁盤數(shù)據(jù)校驗(yàn)、USB、GSM/CDMA通信,在計(jì)算機(jī)應(yīng)用中經(jīng)常接觸到的RAR和ZIP文件的壓縮/解壓數(shù)據(jù)完整性檢查也采用了該算法。
5、MD5、SHA為代表的信息摘要校驗(yàn),數(shù)據(jù)摘要算法也被稱為哈希(Hash)算法、散列算法,摘要算法用于數(shù)據(jù)量比較大的場合。它通過對(duì)所有數(shù)據(jù)提取指紋信息以實(shí)現(xiàn)數(shù)據(jù)簽名、數(shù)據(jù)完整性校驗(yàn)等功能,由于其不可逆性,有時(shí)候會(huì)被用做敏感信息的加密,如軟件注冊(cè)授權(quán)文件的內(nèi)容保護(hù),還有經(jīng)常遇到的互聯(lián)網(wǎng)大文件(例如大小到GB級(jí)別的ISO鏡像)通常會(huì)帶有MD5、SHA1等信息方便用戶檢查傳輸數(shù)據(jù)的完整性。
CAN幀中的CRC檢驗(yàn)
1、CRC域在CAN幀中的位置
如圖1橙色塊方框所示,一個(gè)傳統(tǒng)CAN幀結(jié)構(gòu)中,CRC域放置在數(shù)據(jù)結(jié)束后應(yīng)答檢測之前,對(duì)于CAN FD也是相同的位置,該信息對(duì)于用戶應(yīng)用界面來說是不可見的,可以通過CANscope總線分析儀解碼窗口或者帶有CAN協(xié)議解碼能力的示波器從總線模擬波形上得到對(duì)應(yīng)的CRC數(shù)據(jù)展示,見圖2。
圖2
2、CRC的在CAN幀中的生成
在經(jīng)典CAN中,使用15位CRC,在硬件可使用移位和異或運(yùn)算完成CRC的計(jì)算,而CAN FD規(guī)范中對(duì)幀數(shù)據(jù)長度進(jìn)行了擴(kuò)展,對(duì)于數(shù)據(jù)長度小于等于16字節(jié)的CAN FD幀,采用17位CRC,對(duì)于數(shù)據(jù)長度大于16字節(jié)的CAN FD幀采用21位CRC。CAN總線中使用的若干版本CRC生成多項(xiàng)式g整理如表1所示。
3、CRC是如何完成校驗(yàn)工作的
CAN幀基于CRC多項(xiàng)式的安全校驗(yàn)是發(fā)送器根據(jù)發(fā)送的比特計(jì)算校驗(yàn)值,并在CAN幀結(jié)構(gòu)CRC字段中提供該結(jié)果。接收器使用相同的多項(xiàng)式來計(jì)算總線上所見位的校驗(yàn)值,將自我計(jì)算的校驗(yàn)值與接收的校準(zhǔn)值進(jìn)行比較,如果匹配,則認(rèn)為幀被正確接收,接收節(jié)點(diǎn)在ACK時(shí)隙位中發(fā)送顯性狀態(tài),從而覆蓋發(fā)送器的隱性狀態(tài)。在不匹配的情況下,接收節(jié)點(diǎn)在ACK定界符之后發(fā)送錯(cuò)誤幀。
目前CAN FD的控制器CRC校驗(yàn)實(shí)現(xiàn)過程會(huì)相對(duì)復(fù)雜一點(diǎn),在一個(gè)CAN總線網(wǎng)絡(luò)中,幀起始被檢測到后所有的節(jié)點(diǎn)開始使用三組多項(xiàng)式g15、g17和g21同步計(jì)算CRC序列,其中也包含發(fā)送節(jié)點(diǎn),由于CRC的計(jì)算受CAN幀類型和DLC長度影響,直到CAN幀的控制域以及DLC確認(rèn)后才選擇采用對(duì)應(yīng)的CRC生成序列,確定的CRC序列會(huì)在幀結(jié)構(gòu)中CRC字段被采納用于發(fā)送或者用于接收比較。
4、有關(guān)CRC的ISO CAN FD、non-ISO CAN FD兼容性問題
當(dāng)前CAN FD協(xié)議有兩個(gè)版本,為提高故障(錯(cuò)誤)檢測能力,新版本特別引入了一個(gè)3位填充位計(jì)數(shù)器和一個(gè)額外的奇偶校驗(yàn)位。此外,CRC計(jì)算方法也發(fā)生了變化。這些改進(jìn)使的CAN FD協(xié)議與博世(BOSCH)開發(fā)的原始CAN FD協(xié)議不兼容。負(fù)責(zé)ISO的工作組已完成其文件,并已將其提交給DIS(國際標(biāo)準(zhǔn)草案)在進(jìn)行投票程序。
為了避免誤解,CiA建議使用術(shù)語“ISO CAN FD”和“non-ISO CAN FD”。所有符合ISO 11898-2:2015的產(chǎn)品都應(yīng)稱為“ISO CAN FD”。執(zhí)行博世(BOSCH)原始CAN FD協(xié)議的產(chǎn)品應(yīng)命名為“non-ISO CAN FD”,在這個(gè)過度階段的產(chǎn)品主要目的是用于前期評(píng)估和開發(fā),將來所有產(chǎn)品都將符合ISO標(biāo)準(zhǔn)。
請(qǐng)注意,早前一些供應(yīng)商提供的組件或者工具是針對(duì)non-ISO CAN FD協(xié)議的,包括目前在售的部分CAN FD產(chǎn)品,CiA建議僅使用ISO CAN FD產(chǎn)品進(jìn)行設(shè)計(jì)和開發(fā),不過你可繼續(xù)使用non-ISO CAN FD做評(píng)估和前期開發(fā),因?yàn)閰f(xié)議的改變對(duì)于用戶界面是不可見,但注意的是不能同一個(gè)網(wǎng)絡(luò)混用non-ISO CAN FD和ISO CAN FD接口設(shè)備,這樣會(huì)造成CAN總線錯(cuò)誤無法完成發(fā)送和接收,如果僅僅是發(fā)送或接收傳統(tǒng)的CAN幀將不會(huì)受到任何影響,幸運(yùn)的是部分設(shè)備供應(yīng)商提供的組件或者工具允許用戶選擇支持ISO或者non-ISO模式,這樣能很好地在過渡時(shí)期幫助你完成工作。
總結(jié)
傳統(tǒng)CAN以及目前CAN FD采取的校驗(yàn)機(jī)制,保證傳輸過程中遭受破壞的幀數(shù)據(jù)幾乎不會(huì)被接收以及應(yīng)答成功,能有效防止物理層傳輸錯(cuò)誤,讓用戶界面不需要額外關(guān)注幀傳輸數(shù)據(jù)的正確性。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)5G技術(shù)在智能制造中的應(yīng)用與實(shí)踐解析2025/12/31 10:57:21
- 工業(yè)以太網(wǎng)交換機(jī)選型與現(xiàn)場應(yīng)用技術(shù)指南2025/12/18 10:48:14
- 無線傳輸電路基礎(chǔ),射頻前端設(shè)計(jì)、天線匹配與鏈路預(yù)算計(jì)算2025/10/27 13:55:50
- ASK 解調(diào)的核心要點(diǎn)與實(shí)現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- PCB電源完整性(PI)設(shè)計(jì)核心實(shí)操規(guī)范
- 多層PCB疊層設(shè)計(jì)核心實(shí)操規(guī)范
- 提高M(jìn)OSFET效率的電路優(yōu)化方法
- 電源管理IC在智能家居中的應(yīng)用
- 差分信號(hào)連接器設(shè)計(jì)要點(diǎn)
- PCB焊盤與過孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析









