電子工程網(wǎng)
標題: Loto實(shí)踐干貨(3) 測量CAN總線(xiàn)通訊數據 [打印本頁(yè)]
作者: LOTO2018 時(shí)間: 2020-6-3 11:45
標題: Loto實(shí)踐干貨(3) 測量CAN總線(xiàn)通訊數據
最近在做運動(dòng)控制卡的項目,調試樣機的過(guò)程中,需要驗證CAN總線(xiàn)通訊功能的正確性。以前只限于理論上認識CAN總線(xiàn),使用的CANbus的通訊卡也是有上位機例程,基本上簡(jiǎn)單地配置上位機軟件就可以正常工作了。這次調試需要深入測試CAN接口的通訊過(guò)程,正好把之前的對CAN的認識再復習深化一下。
之所以采用CAN總線(xiàn),是因為它只需要兩根雙絞線(xiàn)就可以連接多個(gè)通訊節點(diǎn),并且可以傳輸相對遠的距離,在工業(yè)現場(chǎng)抗干擾能力也很強。下圖是我按照CAN總線(xiàn)的要求做的一條雙絞線(xiàn),黃色和綠色分別是CAN_High線(xiàn)和CAN_Low線(xiàn)。要求絞距20mm,不絞合的距離不超過(guò)50mm。
規定的雙絞線(xiàn)傳輸距離與CAN總線(xiàn)的傳輸速率的關(guān)系如下表。我們的傳輸距離很短,所以可以采用很高的傳輸速率。即便是采用最高的傳輸速率,以OSC802示波器的25M帶寬,也是足夠調試用的。
下圖是我設計驅動(dòng)控制板的CAN通訊接口部分的原理圖,使用SN65HVD230收發(fā)器:
打樣后的運動(dòng)控制板是這樣的:
使用LOTO的USB示波器OSC802對CAN通訊的信號進(jìn)行捕捉,抓取數據進(jìn)行解析判斷。
使用USB示波器OSC802的單次觸發(fā)功能,很輕松對CAN總線(xiàn)上的電平信號進(jìn)行了捕捉。不過(guò)我們現在還看不懂它,需要對CAN的電平邏輯和傳輸協(xié)議有所了解。
沒(méi)有收發(fā)信號時(shí),兩條導線(xiàn)上的電平相同(大約2.5V)。這種電平狀態(tài)為隱形狀態(tài),也稱(chēng)之為隱性電平,即為邏輯1。有信號時(shí),CAN_H導線(xiàn)的電平升高至少1V;而對應的CAN_L導線(xiàn)電平降低同樣值,這種電平狀態(tài)為顯形狀態(tài),也稱(chēng)之為顯性電平,即為邏輯0。5V和3.3V的CAN收發(fā)器的邏輯電平會(huì )稍有不同。
我們通過(guò)程序發(fā)出一串CAN數據后,用OSC802捕捉到的波形如下:
根據波形進(jìn)行數據解碼需要注意的有兩點(diǎn):
1:在CAN協(xié)議中將CAN_H和CAN_L的差值為高電平時(shí)定義為顯性,邏輯上表示為0,為低電平時(shí)定義為隱性,邏輯上表示為1。
2:在CAN的協(xié)議中當連續出現5個(gè)顯性時(shí)就需要插入一個(gè)隱性。
CAN的標準幀和擴展幀協(xié)議格式:
所以,波形數據解讀為:
圖中被紅色斜線(xiàn)劃掉的為CAN協(xié)議有意在5個(gè)連續顯性后面加的單個(gè)隱性位,所以去掉。所以,通過(guò)USB 示波器 OSC802抓取到的數據為:
00000000000011000001001100010100000001010101011110011010001111100000111101111
這個(gè)數據幀發(fā)出的數據為:
1010101111001101
0xAB, 0xCD
解析結果與上位機收發(fā)的結果互相驗證正確,所以此次運動(dòng)控制板的CAN接口功能調試成功完成。
歡迎光臨 電子工程網(wǎng) (http://selenalain.com/) |
Powered by Discuz! X3.4 |
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页