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