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