儀器儀表商情網(wǎng):Pico示波器具有串行解碼的功能,能夠對CAN、FlexRay、I2C、I2S、SPI、LIN或UART等串行總線進行解碼。Pico示波器比較適合做串行解碼,因為它們的深度存儲器可以讓軟件采集較長時間、不間斷的數(shù)據(jù),尤其是6000系列能夠在幾秒內采集數(shù)千個數(shù)據(jù)幀存入到512M的樣本存儲器。下面將介紹如何用一個款Pico示波器進行CAN總線數(shù)據(jù)解碼。
1、關于CAN總線解碼
1.1 什么是CAN總線?
數(shù)據(jù)通信時,物理線路上傳輸?shù)男盘柺怯梢幌盗懈叩碗娖浇M成的,這些高低電平攜帶了我們所需要的信息,在數(shù)據(jù)接收端,我們需要將這些物理電平按照原始的編碼規(guī)則進行解析,從而得到實際的物理信號。
CAN(控制器區(qū)域網(wǎng)絡)總線是一種在汽車和工業(yè)機械中使用的串行協(xié)議,允許微控制器相互通訊。
該標準最初由 Robert Bosch GmbH 于 1983 年制定。它使用雙絞線上傳輸差分信號,分別為CAN高(CAN H )和CAN低(CAN L),當線路受到共模干擾之后,信號差值不變,信號依然能夠正確被解析。
1.2 CAN總線上傳輸?shù)碾娖教攸c
CAN 總線上發(fā)布了ISO11898和ISO11519兩個通信標準,分別對應高速CAN和容錯CAN。此兩個標準差分電平的特性不同。本文主要介紹如何用Pico示波器進行ISO11898標準的CAN總線解碼。
CAN高電平大概為3.5V左右,CAN低電平大概為1.5V左右,CAN差分電平大概在2V左右。一般情況下,我們可以從三種CAN總線波形上進行解碼:
1)從CAN-H總線上傳輸?shù)碾娖剑撝翟O置為3V左右即可
2)從CAN-L總線上傳輸?shù)碾娖?,閾值設置為1.6V左右即可
3)從差分波形(CANH-CANL)上進行解碼,閾值設置為1.5左右即可。從差分波形上解碼更加準確,因為差分波形濾除了線路上的共模干擾信號。
但是很遺憾,目前PicoScope6軟件的串行解碼功能只能從CANH或CANL波形上進行解碼,暫時還無法實現(xiàn)從差分波形上進行解碼。
2、PicoScope6 串行解碼功能
3、解碼設置
Pico的任何一臺示波器都具有串行解碼的功能,不同系列的區(qū)別在于示波器硬件參數(shù)高時,采集到的波形更加平滑,噪聲小。在進行解碼時,我們可以只從CAN高波形上進行解碼,或只從CAN低波形上進行解碼,或者同時對CANH和CANL波形進行解碼。
3.1 僅從CAN低波形上進行解碼設置
(1)將CAN網(wǎng)絡中的CANL端接入到示波器A通道(示波器通道任意選擇)探頭的正極,CAN網(wǎng)絡的GND連接探頭的負極。
(2)點擊PicoScope6工具菜單,選擇串行解碼功能。彈出串行解碼設置窗口。
1)設置A通道協(xié)議:CAN Low
2)設置CAN低判斷閾值,如1.6V。該閾值用于判斷CAN-L電平是“0”或“1”.