加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

技術(shù)分享 | CAN會收到錯誤的數(shù)據(jù)嗎?

04/05 09:25
2967
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

CAN-bus總線協(xié)議以高穩(wěn)定性,高容錯率而著稱于世,然而仍有很多用戶在使用的時候擔(dān)心CAN會接受到錯誤的信息,在數(shù)據(jù)里增加了CRC校驗的部分,這種做法是否有必要?CAN會收到錯誤的數(shù)據(jù)嗎?

信息的傳遞,古往今來都是人類無比關(guān)注的一個問題。從最原始的肢體語言到高端的電子信號,信息傳達的方法五花八門。而對于信息安全的追求也是從古至今未有變過,我國西周時期的《太公兵法》就有過“陰符”“陰書”的設(shè)計來保證信息的安全。

而在我們的工業(yè)生產(chǎn)中,為了保證信號的正確傳遞的方法更是五花八門。而在信息傳遞過程中采取CAN協(xié)議是一種常見的減少出錯率的方案。那么,問題來了,CAN協(xié)議何德何能能讓傳輸?shù)男盘柌怀鲥e呢?今天就讓我們來深入分析一番。利用CANScope總線綜合分析儀來抓取一幀CAN的報文如下:

圖2 CANScope總線綜合分析儀抓取的報文

從圖中可以看出CAN協(xié)議采取了差分信號傳輸?shù)姆绞?,可以有效杜絕來自外部的屏蔽干擾。而在最后一行的協(xié)議解析部分,經(jīng)過觀察我們發(fā)現(xiàn)一幀信號被分割成了不同顏色的一段段,每一段究竟是何含義?保證信號正確傳輸?shù)拿孛芫碗[藏在這些段落里。讓我們來庖丁解牛分別為大家分析下。

    幀起啟:在數(shù)據(jù)的開始,是一個1位的數(shù)據(jù)頭,表示數(shù)據(jù)幀都開始

圖3 數(shù)據(jù)頭

    仲裁段:標(biāo)志了本幀數(shù)據(jù)的優(yōu)先級,其中包含了一個ID碼,仲裁段中的ID碼值越小,幀數(shù)據(jù)的優(yōu)先級就越高,CAN控制器在發(fā)送數(shù)據(jù)的同時會監(jiān)聽電纜上的電平狀態(tài),如果發(fā)現(xiàn)仲裁位的電平與本節(jié)點發(fā)出的電平不一致,則退出發(fā)送放棄總線使用權(quán)。這樣的設(shè)計可以提高總線的利用率,并且能讓重要的信息優(yōu)先發(fā)送。

圖4 仲裁段

    控制段:共六位,用于表示數(shù)據(jù)長度。在數(shù)據(jù)的控制段存有保留位以供未來協(xié)議規(guī)則擴展。

圖5 控制段

    數(shù)據(jù)段:經(jīng)過前面的鋪墊,數(shù)據(jù)段所編碼的即是本幀數(shù)據(jù)所需要傳達的信息。一幀信號可以傳送0~8位數(shù)據(jù),每字節(jié)8位。短小精悍保證信息的實時性。

圖6 數(shù)據(jù)段

    CRC段:CRC段即是保證數(shù)據(jù)準(zhǔn)確的一個關(guān)鍵所在(敲黑板)。為防止信號由于某種原因被更改,CAN的數(shù)據(jù)鏈路層上加入了CRC校驗。發(fā)送節(jié)點會根據(jù)發(fā)送內(nèi)容計算得到一個CRC值填入CRC段進行發(fā)送,而相應(yīng)的接收節(jié)點也會對接收到的數(shù)據(jù)進行計算,并將計算出的CRC值和接收到的進行比對。能夠?qū)Φ蒙习堤柕牟攀亲约喝?,如果對照有誤那么就說明傳輸?shù)男盘柍霈F(xiàn)了問題,需要反饋錯誤消息。這樣的機制保證了CAN不會收到錯誤的信息,其安全性毋庸置疑。

圖7 CRC段

    ACK段:用于表征信號是否被正確接收,接受正常的節(jié)點在ACK的第一位會發(fā)出一個顯性位。根據(jù)ACK的狀態(tài),發(fā)送節(jié)點就可以了解到數(shù)據(jù)是否被傳輸成功。若發(fā)送失敗,發(fā)送節(jié)點會根據(jù)自身狀態(tài)來決定是否重傳。

圖8 ACK段

    幀結(jié)束:由7個隱性位組成,表示該幀結(jié)束。

圖9 幀結(jié)束

經(jīng)過這樣一番抽絲剝繭的分析,CAN的報文結(jié)構(gòu)就這樣清晰的展現(xiàn)在我們面前。由于CRC段的存在,CAN出錯的概率十分之小。CRC校驗所使用的CRC多項式最多可以檢測出5個離散錯誤,或發(fā)現(xiàn)長度在15位以下偶然出現(xiàn)的突發(fā)錯誤。CRC校驗對SOF位、仲裁段、控制段和數(shù)據(jù)段的位序列進行計算,但不考慮填充位。CAN協(xié)議中規(guī)定的15位校驗序列源自于BCH代碼,它是一種特別適用于127位以下消息長度的循環(huán)代碼。CAN協(xié)議中所應(yīng)用的15位多項式如下:

X15+X14+X10+X8+X7+X4+X3+1

在發(fā)送或接收收到數(shù)據(jù)場的最后一位后,CRC寄存器就會包含待傳輸或者待接收的CRC序列。將計算出的CRC序列與接收到的CRC序列相除,接收器就可以識別出可能存在的CRC錯誤。

有些工程師擔(dān)心CAN收到錯誤的信息,在數(shù)據(jù)中又做了CRC校驗的工作,豈不知在數(shù)據(jù)鏈路層CAN已經(jīng)自備了CRC校驗的工作,在數(shù)據(jù)中再加入CRC校驗實際上是沒有什么必要的。

CAN總線不但規(guī)定了物理層的差分傳輸規(guī)范,還規(guī)定了數(shù)據(jù)鏈路層的分包校驗規(guī)則,而這兩個都是由硬件自動完成,接收時,無需考慮是否有錯誤,只要從緩沖區(qū)取出數(shù)據(jù)即可,CAN的CRC校驗可以保證錯誤率在10的-9次方以下。毫無疑問是一種非常安全可靠的傳輸協(xié)議。

CAN總線在信號的實時傳輸方面具有非常好的優(yōu)越性,通過?ZPS-CANFD總線分析儀?可以很好的完成CAN總線的故障排查與檢測標(biāo)定。致遠電子憑借自身掌握的核心技術(shù)可為用戶解決工業(yè)現(xiàn)場的各種疑難問題,期待與您一同成長。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
KSZ8463MLI 1 Microchip Technology Inc DATACOM, MANCHESTER ENCODER
$6.84 查看
SN65HVD232D 1 Texas Instruments 3.3 V CAN Transceiver 8-SOIC -40 to 85

ECAD模型

下載ECAD模型
$2.72 查看
TLE6250GXUMA1 1 Infineon Technologies AG Interface Circuit, BICMOS, PDSO8, GREEN, PLASTIC, SOP-8
$1.08 查看
致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜