CAN總線的報文是怎么產(chǎn)生以及收發(fā)的,遇到通訊異常的問題時從什么角度分析?這篇文章將會帶您快速了解報文的傳輸原理。
1、節(jié)點通訊的原理
圖1 CAN節(jié)點示意圖
如圖1所示是一個CAN節(jié)點的示意圖,整體包括了CAN收發(fā)器、CAN控制器和MCU。我們以節(jié)點發(fā)送報文為例,當(dāng)我們使用上位機軟件發(fā)送一段報文時,報文會通過MCU發(fā)送給CAN控制器。CAN控制器將這段報文解析成邏輯信號后,再發(fā)送給CAN收發(fā)器。CAN收發(fā)器根據(jù)CAN-bus標(biāo)準(zhǔn)將接收到的邏輯信號轉(zhuǎn)換成電信號,再通過CAN_H和CAN_L兩根總線將電信號傳到總線上的其他節(jié)點上。
簡單說就是MCU將報文發(fā)送給控制器,控制器將報文轉(zhuǎn)換成符合規(guī)范的CAN報文后,通過CAN收發(fā)器以電信號的形式在總線上進行傳輸。
2、電平是如何轉(zhuǎn)換成邏輯?
圖2 CAN-bus信號電平
如圖2所示,CAN總線使用的是雙線差分信號,所以分為CAN_H和CAN_L兩根總線,根據(jù)兩根總線之間電壓的差值大小來判斷其顯隱性。而線纜上傳輸?shù)碾娖叫盘栔挥袃煞N可能,分別為顯性電平和隱性電平,其中顯性電平代表邏輯0,隱性電平代表邏輯1。
當(dāng)接受到報文時,首先就要通過CAN收發(fā)器將電信號轉(zhuǎn)換成邏輯信號。根據(jù)圖3所示的ISO11898高速CAN電平標(biāo)準(zhǔn)進行判斷,但是線路上經(jīng)常會受到各種干擾,為了保證傳輸?shù)姆€(wěn)定性。所以差分電平小于0.5V就是隱性電平代表邏輯1,差分電平大于0.9V就是顯性電平代表邏輯0。
圖3 ISO11898高速CAN電平
3、邏輯信號如何轉(zhuǎn)換成報文?
CAN控制器是CAN-bus設(shè)備的核心元件,集成了CAN規(guī)范中數(shù)據(jù)鏈路層的全部功能,能夠自動完成CAN-bus協(xié)議的解析。
當(dāng)CAN收發(fā)器將邏輯信號傳送給CAN控制器后,CAN控制器會將邏輯信號轉(zhuǎn)換成符合CAN規(guī)范的CAN幀。而CAN幀的類型包括了數(shù)據(jù)幀、遠(yuǎn)程幀、幀間空間、錯誤幀和超載幀。
圖4 標(biāo)準(zhǔn)幀格式
以最常見的數(shù)據(jù)幀為例,圖4就是標(biāo)準(zhǔn)幀的格式,包括了幀起始、仲裁場、控制場、數(shù)據(jù)場等。
圖5 報文解析實例
圖5就是報文解析的實例,當(dāng)接受到對應(yīng)的邏輯信號后,CAN控制器就會根據(jù)規(guī)定的CAN幀格式進行解析,并將報文發(fā)給MCU。
4、上位機報文顯示
圖6 上位機報文顯示
如圖6所示,當(dāng)CAN控制器完成了CAN-bus協(xié)議的解析后,就會將報文傳輸?shù)組CU中在上0位機軟件中進行顯示。像幀起始、CRC場、ACK場這樣的數(shù)據(jù)不讀取,所以我們上位機軟件只顯示數(shù)據(jù)幀類型、幀ID和幀數(shù)據(jù)等信息。
5、總結(jié)
對于CAN總線報文錯誤來說,百分之90的錯誤都來自于物理層,而CANScope總線分析儀可以對CAN 波形與報文同步發(fā)送和接收,快速對CAN總線進行各項測試,幫助工程師們快速完成故障定位和問題排查。
-
CAN
+關(guān)注
關(guān)注
57文章
2754瀏覽量
463697 -
電平
+關(guān)注
關(guān)注
5文章
360瀏覽量
39897 -
邏輯
+關(guān)注
關(guān)注
2文章
833瀏覽量
29469
發(fā)布評論請先 登錄
相關(guān)推薦
評論