查看: 1677|回復: 0
打印 上一主題 下一主題

Loto實(shí)踐干貨(3) 測量CAN總線(xiàn)通訊數據

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2020-6-3 11:45:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guā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接口功能調試成功完成。



您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页