CAN總線學(xué)習(xí)筆記一:CAN總線的相關(guān)概念
九、CAN的報文格式:
本文引用地址:http://www.biyoush.com/article/267558.htm(關(guān)于這部分內(nèi)容,對于我下一步要進(jìn)行編程實(shí)驗(yàn)控制CAN總線是很重要的一個知識點(diǎn)。很郁悶的是搜了老半天只看見有文字?jǐn)⑹鲞@部分內(nèi)容的,不僅說得不系統(tǒng)完整,而且遠(yuǎn)沒有貼圖說明來的具體直觀。不過還好,搜到了一份E文版的CAN總線資料,再把這個資料詳細(xì)看了下,再做了整理,還是用圖來說明CAN傳輸?shù)膱笪母袷奖容^容易理解。老外寫的東西確實(shí)比國內(nèi)的好,這個不是我吹出來的,有興趣下了看看就知道了,見附件下載。)
CAN通信是一種點(diǎn)對多點(diǎn)的傳輸協(xié)議,不是基于地址的傳統(tǒng)的點(diǎn)對點(diǎn)傳輸協(xié)議。當(dāng)一個點(diǎn)傳輸數(shù)據(jù)時,總線上的其它點(diǎn)都可以為接受方,它們可以通過ID來作出對總線上傳送數(shù)據(jù)的處理(接收或者丟棄)。并且當(dāng)數(shù)據(jù)被正確接收到以后,接收方便會作出應(yīng)答響應(yīng)。CAN協(xié)議還有一個很實(shí)用的功能,就是總線上的任一個節(jié)點(diǎn)可以請求其它節(jié)點(diǎn)向其發(fā)送數(shù)據(jù),這被稱作遠(yuǎn)程發(fā)送請求(RTR)。除此以外,CAN協(xié)議還有一個優(yōu)點(diǎn),當(dāng)總線新加入一個節(jié)點(diǎn)進(jìn)行通信時無需更改原有的程序,新節(jié)點(diǎn)只要通過ID就可以知道是接收還是丟棄數(shù)據(jù)。
CAN協(xié)議定義了四種不同的幀。
1、數(shù)據(jù)幀,這個幀被用于當(dāng)一個節(jié)點(diǎn)把信息傳送給系統(tǒng)的任何其它節(jié)點(diǎn)。數(shù)據(jù)幀由7個不同的位場組成,即幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答場、幀結(jié)束。
2、遠(yuǎn)程幀,此幀是基于數(shù)據(jù)幀格式,只要把RTR位設(shè)置成遠(yuǎn)程發(fā)送請求(Remote Transmit Request),并且沒有數(shù)據(jù)場??偩€上發(fā)送此幀后,表示請求接收與該幀ID相符的數(shù)據(jù)幀。遠(yuǎn)程幀由6個不同的位場組成,即幀起始、仲裁場、控制場、CRC場、應(yīng)答場、幀結(jié)束。
3、錯誤幀,任何單元監(jiān)測到錯誤時就發(fā)送錯誤幀。錯誤幀由兩個不同的場組成。第一個場是錯誤標(biāo)志,用做為不同站提供錯誤標(biāo)志的疊加;第二個場是錯誤界定符。
4、超載幀,節(jié)點(diǎn)需要增加時間來處理接收到的數(shù)據(jù)時便發(fā)送過載幀。超載幀包括兩個位場:超載標(biāo)志和超載界定符。
CAN總線傳輸?shù)钠鹗紟鐖D1。幀起始標(biāo)志數(shù)據(jù)幀或遠(yuǎn)程幀的起始,由一個單獨(dú)的“顯性”位(0)組成。由控制芯片完成。
由圖2和圖3可以看到數(shù)據(jù)幀的兩種不同格式,兩種格式的差別只是它們的ID位數(shù)不同。
1、幀起始。
2、仲裁場,仲裁場包括標(biāo)識符和遠(yuǎn)程發(fā)送請求位(RTR)。
雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理
評論