新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 示波器CAN總線數據解碼方法

        示波器CAN總線數據解碼方法

        作者: 時間:2016-12-12 來源:網絡 收藏
        采用示波器偵測串口總線的通信是比較常用的一種解碼技術。以Pico示波器為例,Pico示波器具有串行解碼的功能,能夠對CAN、FlexRay、 I2C、I2S、SPI、LIN或UART等串行總線進行解碼。Pico示波器比較適合做串行解碼,因為它們的深度存儲器可以讓軟件采集較長時間、不間斷的數據,尤其是6000系列能夠在幾秒內采集數千個數據幀存入到512M的樣本存儲器。下面將介紹如何用一個款Pico示波器進行CAN總線數據解碼

        一、CAN總線解碼概述

        本文引用地址:http://www.104case.com/article/201612/328770.htm

        1、 CAN總線概念

        數據通信時,物理線路上傳輸的信號是由一系列高低電平組成的,這些高低電平攜帶了我們所需要的信息,在數據接收端,我們需要將這些物理電平按照原始的編碼規則進行解析,從而得到實際的物理信號。

        CAN(控制器區域網絡)總線是一種在汽車和工業機械中使用的串行協議,允許微控制器相互通訊。該標準最初由 Robert Bosch GmbH 于 1983 年制定。它使用雙絞線上傳輸差分信號,分別為CAN高(CAN H )和CAN低(CAN L),當線路受到共模干擾之后,信號差值不變,信號依然能夠正確被解析。

        2 CAN總線上傳輸的電平特點

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


        adclass=0&app_id=0&c=news&cf=1&ch=0&di=8&fv=9&is_app=0&jk=ce536641e50a73&k=%B5%E7%C2%B7%B0%E5%CE%AC%D0%DE&k0=%B5%E7%C2%B7%B0%E5%CE%AC%D0%DE&k1=%B5%E7%C2%B7%B0%E5%B3%AD%B0%E5&k2=%CA%BE%B2%A8%C6%F7&k3=%B5%E7%C0%C2%B2%E2%CA%D4%D2%C7&k4=%BD%F8%BF%DA%B5%E7%C0%C2&kdi0=8&kdi1=8&kdi2=8&kdi3=8&kdi4=8&luki=1&mcpm=83698&n=10&ncf=0&nmv=0&p=baidu&q=liliangvs_cpr&rb=1&rs=1&seller_id=5&sid=730ae5416653ce00&ssp2=1&stid=22&t=tpclicked3_hc&td=&tu=u2333792&u=http%3A%2F%2Fwww%2Ediangon%2Ecom%2Fwenku%2Fxianchangzongxian%2F201606%2F00032773%2Ehtml&urlid=0" target="_blank">
        電路板維修
        電路板抄板
        示波器

        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波形上進行解碼,暫時還無法實現從差分波形上進行解碼。

        二、PicoScope6 串行解碼功能


        電纜故障定點儀
        電路板維修
        有機肥加工設備
        電纜故障檢測

        三、解碼設置

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

        3.1 僅從CAN低波形上進行解碼設置

        1將CAN網絡中的CANL端接入到示波器A通道(示波器通道任意選擇)探頭的正極,CAN網絡的GND連接探頭的負極。

        2 點擊PicoScope6工具菜單,選擇串行解碼功能。彈出串行解碼設置窗口。


        電纜故障檢測
        電纜中間接頭
        電纜接頭

        1)設置A通道協議:CAN Low

        2)設置CAN低判斷閾值,如1.6V。該閾值用于判斷CAN-L電平是“0”或“1”.

        3)設置總線波特率,即目前測試網絡的波特率,例如500K波特。

        4)設置顯示模式,選擇“在視圖中”或“在窗口中”查看CAN數據。

        In View: 在視圖中,在波形顯示窗口查看解碼之后的CAN數據。

        In Window: 在窗口中,在表格中查看解碼之后的CAN數據。

        2、僅從CAN高波形上進行解碼設置

        1)將CAN網絡中的CANH端接入到示波器A通道(示波器通道任意選擇)探頭的正極,CAN網絡的GND連接探頭的負極。

        2 )點擊PicoScope6工具菜單,選擇串行解碼功能。彈出串行解碼設置窗口。


        母線槽
        電纜故障定點儀
        電纜接頭

        設置步驟如下:

        1)設置A通道協議:CAN High

        2)設置CAN低判斷閾值,如3V。該閾值用于判斷CAN-L電平是“0”或“1”.

        3)設置總線波特率,即目前測試網絡的波特率,例如500K波特。

        4)設置顯示模式,選擇“在視圖中”或“在窗口中”查看CAN數據。

        In View: 在視圖中,在波形顯示窗口查看解碼之后的CAN數據。

        In Window: 在窗口中,在表格中查看解碼之后的CAN數據。

        3、從CAN高波形和CAN低波形上同時解碼

        1)將CAN網絡中的CANH端接入到示波器A通道(示波器通道任意選擇)探頭的正極,CAN網絡的GND連接探頭的負極。

        2)將CAN網絡中的CANH端接入到示波器B通道(示波器通道任意選擇)探頭的正極,CAN網絡的GND連接探頭的負極。

        注意:CANH和CANL使用的測試通道可以自由選擇。只是在進行解碼設置時,對應正確即可。

        3 )點擊PicoScope6工具菜單,選擇串行解碼功能。彈出串行解碼設置窗口。

        在一個窗口分別設置CANH和CANL的解碼設置,具體參考3.1和3.2章節的設置。如下圖所示:

        四、使用注意事項

        Pico示波器進行串行解碼有一個技術難點:Pico示波器的解碼以完整的一個CAN數據幀為單位,即只有采集到完整的一幀CAN報文,才能將該數據幀完整的解析出來。

        1) 采集CANH和CANL波形時,注意時基的設置。即保證每一個波形頁面至少能夠采集到一個完整的數據幀,此時才能夠解析出CAN報文。對于CAN總線來說,時基設置在1ms/div或者大于1ms/div即可。

        2) 注意采樣率的設置,要保證采集到的波形不失真。例如CAN總線的波特率為500Kbps,那么采樣率只有大于1MS/s,才能夠采集到正確的波形(滿足乃奎斯特定律)。

        3 )示波器的波形(一個顯示頁面)與波形之前是不連續的,總是或多或少一些間隙。所以當在進行CAN總線解碼時,波形頁面的邊緣會有一些無法被解析的數據幀,主要原因是波形頁面邊緣將一個完成的數據幀截斷了,以至于無法得到爭取的解析。如下圖所示:



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 金华市| 湟源县| 扎赉特旗| 乐平市| 太仆寺旗| 新昌县| 怀宁县| 仙桃市| 惠东县| 沭阳县| 手游| 永福县| 扎兰屯市| 新闻| 邹城市| 郸城县| 闻喜县| 洛隆县| 巢湖市| 兴文县| 彰化市| 青岛市| 雷山县| 汽车| 南汇区| 郴州市| 广河县| 阿图什市| 芜湖市| 四会市| 巴南区| 普兰县| 望谟县| 曲麻莱县| 海淀区| 江达县| 广元市| 桦川县| 苏州市| 阿拉尔市| 犍为县|