歡迎來到愛車網,本站為你提供汽車維修,汽車保養,及精彩的汽車評測.
 愛車網 >> 汽車互動 >> 汽車百科 >> 汽車知識 >> 如何用Pico示波器進行CAN總線解碼分析

如何用Pico示波器進行CAN總線解碼分析

如何用Pico示波器進行CAN總線解碼分析

Pico示波器具有串行解碼的功能_能夠對CAN、FlexRay、I²C、I²S、SPI、LIN或UART等串行總線進行解碼.Pico示波器比較適合做串行解碼_因為它們的深度存儲器可以讓軟件采集較長時間、不間斷的數據_尤其是6000系列能夠在幾秒內采集數千個數據幀存入到512M的樣本存儲器.下面將介紹如何用一個款Pico示波器進行CAN總線數據解碼.

1關於CAN總線解碼

1.1 什麼是CAN總線?
數據通信時_物理線路上傳輸的信號是由一系列高低電平組成的_這些高低電平攜帶了我們所需要的信息_在數據接收端_我們需要將這些物理電平按照原始的編碼規則進行解析_從而得到實際的物理信號.
CAN(控制器區域網絡)總線是一種在汽車和工業機械中使用的串行協議_允許微控制器相互通訊.該標准最初由 Robert Bosch GmbH 於 198年制定.它使用雙絞線上傳輸差分信號_分別為CAN高(CAN H )和CAN低(CAN L)_當線路受到共模干擾之後_信號差值不變_信號依然能夠正確被解析.

1.2  CAN總線上傳輸的電平特點
CAN 總線上發布了ISO11898和ISO11519兩個通信標准_分別對應高速CAN和容錯CAN.此兩個標准差分電平的特性不同.本文主要介紹如何用Pico示波器進行ISO11898標准的CAN總線解碼.

.

物理層

ISO11898

電平

顯性

隱性

CAN_H

3.5V

2.5V

CAN_L

1.5V

2.5V

CAN_Diff

2.0V

0V

CAN高電平大概為3.5V左右_CAN低電平大概為1.5V左右_CAN差分電平大概在2V左右.一般情況下_我們可以從三種CAN總線波形上進行解碼:
1)從CAN-H總線上傳輸的電平_阈值設置為3V左右即可
2)從CAN-L總線上傳輸的電平_阈值設置為1.6V左右即可
3)從差分波形(CANH-CANL)上進行解碼_阈值設置為1.5左右即可.從差分波形上解碼更加准確_因為差分波形濾除了線路上的共模干擾信號.
但是很遺憾_目前PicoScope6軟件的串行解碼功能只能從CANH或CANL波形上進行解碼_暫時還無法實現從差分波形上進行解碼.

.
在視圖中”CAN­解碼結果

2 PicoScope6 串行解碼功能

 

.
CAN_L波形

.
CAN_H波形


.
在窗口中”CAN­解碼結果

.
解碼選項卡

 
 

3解碼設置

Pico的任何一台示波器都具有串行解碼的功能_不同系列的區別在於示波器硬件參數高時_采集到的波形更加平滑_噪聲小.在進行解碼時_我們可以只從CAN高波形上進行解碼_或只從CAN低波形上進行解碼_或者同時對CANH和CANL波形進行解碼.

3.1 僅從CAN低波形上進行解碼設置
1將CAN網絡中的CANL端接入到示波器A通道(示波器通道任意選擇)探頭的正極_CAN網絡的GND連接探頭的負極.
2 點擊PicoScope6工具菜單_選擇串行解碼功能.彈出串行解碼設置窗口.

.
CAN低解碼設置界面

.
 


1)設置A通道協議:CAN Low
2)設置CAN低判斷阈值_如1.6V.該阈值用於判斷CAN-L電平是“0”或“1”.
3)設置總線波特率_即目前測試網絡的波特率_例如500K波特.
4)設置顯示模式_選擇“在視圖中”或“在窗口中”查看CAN數據.
*         In View: 在視圖中_在波形顯示窗口查看解碼之後的CAN數據.
*         In Window: 在窗口中_在表格中查看解碼之後的CAN數據.

3.2僅從CAN高波形上進行解碼設置
1將CAN網絡中的CANH端接入到示波器A通道(示波器通道任意選擇)探頭的正極_CAN網絡的GND連接探頭的負極.
2 點擊PicoScope6工具菜單_選擇串行解碼功能.彈出串行解碼設置窗口.

.
CAN高解碼設置界面


設置步驟如下:
1)設置A通道協議:CAN High
2)設置CAN低判斷阈值_如3V.該阈值用於判斷CAN-L電平是“0”或“1”.
3)設置總線波特率_即目前測試網絡的波特率_例如500K波特.
4)設置顯示模式_選擇“在視圖中”或“在窗口中”查看CAN數據.
*         In View: 在視圖中_在波形顯示窗口查看解碼之後的CAN數據.
*         In Window: 在窗口中_在表格中查看解碼之後的CAN數據.

3.3從CAN高波形和CAN低波形上同時解碼
1將CAN網絡中的CANH端接入到示波器A通道(示波器通道任意選擇)探頭的正極_CAN網絡的GND連接探頭的負極.
2將CAN網絡中的CANH端接入到示波器B通道(示波器通道任意選擇)探頭的正極_CAN網絡的GND連接探頭的負極.
注意:CANH和CANL使用的測試通道可以自由選擇.只是在進行解碼設置時_對應正確即可.
點擊PicoScope6工具菜單_選擇串行解碼功能.彈出串行解碼設置窗口.
在一個窗口分別設置CANH和CANL的解碼設置_具體參考3.1和3.2章節的設置.如下圖所示:

.
CAN高解碼設置界面

.
CAN低解碼設置界面

 

4 使用注意事項

Pico示波器進行串行解碼有一個技術難點:Pico示波器的解碼以完整的一個CAN數據幀為單位_即只有采集到完整的一幀CAN報文_才能將該數據幀完整的解析出來.
1 采集CANH和CANL波形時_注意時基的設置.即保證每一個波形頁面至少能夠采集到一個完整的數據幀_此時才能夠解析出CAN報文.對於CAN總線來說_時基設置在1ms/div或者大於1ms/div即可.
2 注意采樣率的設置_要保證采集到的波形不失真.例如CAN總線的波特率為500Kbps_那麼采樣率只有大於1MS/s_才能夠采集到正確的波形(滿足乃奎斯特定律).
示波器的波形(一個顯示頁面)與波形之前是不連續的_總是或多或少一些間隙.所以當在進行CAN總線解碼時_波形頁面的邊緣會有一些無法被解析的數據幀_主要原因是波形頁面邊緣將一個完成的數據幀截斷了_以至於無法得到爭取的解析.如下圖所示: