<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x
    查看: 1695|回復: 0
    打印 上一主題 下一主題

    Loto實踐干貨(3) 測量CAN總線通訊數據

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2020-6-3 11:45:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: 示波器 , 信號源 , 電源 , 測試 , 邏輯分析儀
    最近在做運動控制卡的項目,調試樣機的過程中,需要驗證CAN總線通訊功能的正確性。以前只限于理論上認識CAN總線,使用的CANbus的通訊卡也是有上位機例程,基本上簡單地配置上位機軟件就可以正常工作了。這次調試需要深入測試CAN接口的通訊過程,正好把之前的對CAN的認識再復習深化一下。




    之所以采用CAN總線,是因為它只需要兩根雙絞線就可以連接多個通訊節點,并且可以傳輸相對遠的距離,在工業現場抗干擾能力也很強。下圖是我按照CAN總線的要求做的一條雙絞線,黃色和綠色分別是CAN_High線和CAN_Low線。要求絞距20mm,不絞合的距離不超過50mm。





    規定的雙絞線傳輸距離與CAN總線的傳輸速率的關系如下表。我們的傳輸距離很短,所以可以采用很高的傳輸速率。即便是采用最高的傳輸速率,以OSC802示波器的25M帶寬,也是足夠調試用的。





    下圖是我設計驅動控制板的CAN通訊接口部分的原理圖,使用SN65HVD230收發器




    打樣后的運動控制板是這樣的:




    使用LOTO的USB示波器OSC802對CAN通訊的信號進行捕捉,抓取數據進行解析判斷。




    使用USB示波器OSC802的單次觸發功能,很輕松對CAN總線上的電平信號進行了捕捉。不過我們現在還看不懂它,需要對CAN的電平邏輯和傳輸協議有所了解。
    沒有收發信號時,兩條導線上的電平相同(大約2.5V)。這種電平狀態為隱形狀態,也稱之為隱性電平,即為邏輯1。有信號時,CAN_H導線的電平升高至少1V;而對應的CAN_L導線電平降低同樣值,這種電平狀態為顯形狀態,也稱之為顯性電平,即為邏輯0。5V和3.3V的CAN收發器的邏輯電平會稍有不同。





    我們通過程序發出一串CAN數據后,用OSC802捕捉到的波形如下:






    根據波形進行數據解碼需要注意的有兩點:
    1:在CAN協議中將CAN_H和CAN_L的差值為高電平時定義為顯性,邏輯上表示為0,為低電平時定義為隱性,邏輯上表示為1。
    2:在CAN的協議中當連續出現5個顯性時就需要插入一個隱性。
    CAN的標準幀和擴展幀協議格式:





    所以,波形數據解讀為:




    圖中被紅色斜線劃掉的為CAN協議有意在5個連續顯性后面加的單個隱性位,所以去掉。所以,通過USB 示波器 OSC802抓取到的數據為:
    00000000000011000001001100010100000001010101011110011010001111100000111101111




    這個數據幀發出的數據為:
    1010101111001101
    0xAB, 0xCD
    解析結果與上位機收發的結果互相驗證正確,所以此次運動控制板的CAN接口功能調試成功完成。



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

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷