ob体育竞彩 _欧宝体育在线链接 學習網站
當前位置: ob体育竞彩 > 現場總線> 正文

CAN總線故障排查步驟詳解

時間:2017-10-05 17:59 來源:ob体育竞彩

CAN總線故障排查步驟詳解
排查步驟1——測量波特率排查位定時異常節點
波特率(也稱位定時,就是信號位的最小脈寬)是CAN總線通訊的最基本要素。如果波特率不匹配或者波特率有所偏差,會導致識別信號的錯誤,造成無法通訊或者通訊異常。所以任何情況下,對異常的CAN總線測試,首先都要測試波特率的準確性。波特率發生差別主要發生在:使用了非整數值的晶振(比如11.0592MHZ)、極端溫度導致晶振偏差、CAN控製器內部波特率發生器偏差。
CANScope具備自動匹配與統計波特率的功能,可以直觀地反映總線上的波特率狀況。
1 操作方法
將CANScope的CANH、CANL接入總線,打開軟件,在CAN報文界麵,等待一段時間,CANSCOPE將自動匹配波特率結果。

2 典型案例(125K的波特率偏差)
這個號稱125K波特率的總線上,CANScope測出125.4K的波特率,如圖所示。

因為這個波特率是儀器通過大量的位寬平均統計出來的,排除了由於測量誤差造成的偏差。這個值是真實可靠的。所以我們可以肯定是總線上某些節點的波特率有所偏差,即“一粒老鼠屎壞一鍋粥”
一旦波特率有所偏差就會導致出錯的概率大大增加,重發的無效數據次數增多,數據傳輸延遲等現象。降低了CAN重同步糾錯能力,所以保證準確的波特率是CAN通訊中最重要的。PS:之所以選擇125K為例,是因為125K是最經常出問題的波特率。
3 解決方案
(1). 通過CANSCOPE眼圖反溯功能(見排查步驟7),找到波特率不匹配的節點,對其程序中的位定時寄存器或者晶振進行修正為正確位時間;
(2). 將總線上每個節點單獨上電,用CANSCOPE測試其波特率,找到故障節點,亦對其程序中的位定時寄存器或者晶振進行修正為正確位時間。
(3). 如果無法修改故障節點的程序,或者已經是同樣的波特率還是無法正常通訊。這時需要考慮到可能是采樣點不一致導致。所以建議修改正常節點的程序。需要提高正常節點波特率寄存器中的同步跳轉寬度SJW值(加大到3個單位時間),則可以加大位寬度和采樣點的容忍度。
(4). 如果所有節點都無法修改,則建議購買致遠電子的CAN網橋CANbridge串聯在故障節點上,由CAN網橋來調整兩端的波特率寄存器匹配值,保證通訊。
排查步驟2——總線工作狀態“體檢”
評價一個CAN總線到底工作狀況如何,是我們檢查的基本步驟。以前即使對於正常工作的節點,我們也隻能模糊的回答“從通訊上看是正常的”或者“偶爾不正常”,這時心裏也是沒底的。
所以我們可以使用CANScope的報文統計功能,定量評價總線概況。就像醫院裏麵的各種常規檢查。評價一個人是健康還是亞健康,還是疾病。
1 操作方法
(1). 打開CANScope,在CAN報文界麵點擊開啟,這時CANScope默認進行一次匹配波特率和示波器自動量程,可以切換到CAN示波器界麵,等待自動量程結束後。
為了保證數據正確性(因為自動匹配時可能會有異常數據),所以需要再切換到CAN報文界麵,點擊停止,然後再點擊啟動,以清除剛才的異常數據。記錄一定時間的報文,推薦記錄1萬-10萬幀作為一個評價基數。然後點擊停止,進行下麵的統計工作。

(2). 點擊報文界麵右上角的幀統計功能,就有一個框對所有收到的報文進行分類。

比如這個總線的成功CAN幀占83.8%,其他的都是錯誤的,每種錯誤類型和百分比都一目了然。這樣我們就可以量化評價一個總線好壞。
成功率
狀態
80%以下
基本不能工作(信號延遲、丟失等情況非常嚴重)
80%-90%
亞健康待整改(信號經常有延遲、丟失等情況)
90%-95%
可工作(信號偶爾有延遲、丟失等情況)
97%以上
工作狀況較好(總線錯誤對通訊影響較小)
由於CAN的校驗機製,保證了錯誤不會被CAN節點接收,但錯誤的報文也會占用總線時間,導致正確的報文延時或者總線堵塞。所以提高傳輸成功率就是保證係統工作正常。
2 典型案例(整改成果量化統計)
平時我們做CAN的測試和整改工作,如何反映我們的整改效果?怎麼才能體現出我們的努力?從大的來說可以給黨和人民一個交代,從小的來說,對得起自己的辛勤勞動。所以必須用報文統計功能來導出報表,量化整改成果。
比如,我們在整改之前,先統計一下報表,發現成功率隻有83.3,而整改後,提高到99.9%,很明顯我們的整改工作是有效的。

3 解決方案
從幀統計中如果發現有錯誤,則可以雙擊這個錯誤,即可在報文上麵定位到這一幀,然後在選項卡右邊右擊,新建水平窗口。

然後就可以查看對應的波形,達到發現問題所在的目的。
排查步驟3——流量分析與總線利用率排查傳輸堵塞
CAN總線本質上還是半雙工通訊,就是“單行道”,即一個節點發送的時候其他節點無法發送數據。雖然CAN報文ID有優先級的區分,但如果高優先級一直占用總線,導致低優先級的節點就無法發出數據,這就是堵塞現象。所以控製流量,防止堵塞是總線健康正常通訊的基本要素。
1操作方法
(1).操作CANScope能正常接收報文後,然後打開總線利用率。即可獲得目前總線的基本流量概況。


點擊刷新時間,改為較快。觀察一段時間:
如果利用率都沒有超過30%,則說明總線流量較好,沒有明顯的擁堵情況;
如果有利用率突發超過70%,則說有堵塞情況,建議進行下麵第二步流量分析的排查。
如果平均利用率都在70%以上,則說明總線嚴重擁堵,必須進行流量分析整改。
(2).與排查步驟2類似,先取得1萬-10萬幀的評價基數。然後點擊流量分析,在CAN報文下麵生成以時間軸排列的CAN報文時序圖。

這樣我們就可以發現有擁堵的位置。

可以按住CTL,鼠標左鍵放大查看對應區域,看看是哪些ID導致了堵塞。

可以將鼠標停在幀之間,可以自動測量幀間隔寬度。

(3).擁堵的還有一個重要的危害就是發生競爭,導致仲裁。在仲裁結束時,容易產生尖峰脈衝,有導致位翻轉的隱患,特別是在容抗較大場合,容易導致位錯誤。

2典型案例(礦山瓦斯監測數據堵塞問題)
由於煤礦通訊的距離很遠,所以波特率通常都是設置為5K,每秒的最大帶寬隻有40幀/秒,因此如果同時有50個節點平均1秒各發1幀數據,肯定有10個低優先級的節點數據發不出來。實際情況是當節點數量超過30以後,就經常有節點上傳延遲。

3解決方案
主要是要修改通訊協議:
(1).子節點拉大定時上傳的周期,比如此案例,可以將所有節點的上傳周期改為2秒;
(2).采用“平時主機輪詢式通訊,突發事件子節點上傳數據”的方式,保證了正常通訊秩序與突發事件的實時響應速度;
(3).采用主機定時發送心跳,子節點按時間片輪轉的方式上傳,如果某個子節點遇到突發事件,子節點可打破規則,即時上傳數據。
(4).提高通訊波特率,提高傳輸帶寬。但要小心這樣會縮短通訊距離,有可能導致通訊異常。
(5).采用光纖傳輸,提高傳輸帶寬。因為光纖傳輸延遲是雙絞線的1/2,所以同樣距離,使用光纖介質可以提高1倍傳輸波特率,這裏推薦使用致遠電子的CANHUB-AF1S1光纖轉換器,其特色是在光纖上麵依然保持CAN鏈路層信號。獲得最佳的帶寬和實時性。

    看過《CAN總線故障排查步驟詳解》的人還看了以下文章
    關於CAN總線的一些事情 關於CAN總線的一些事情
    CAN總線是各種總線中使用比較廣泛的一種通信技術,它在單片機控製技術中和PLC控製技術中會常常使用這種通信技術。下麵我們來說說關於CAN總線的一些事情。 什麼叫CAN總線 CAN總線它是控製器局域網絡(Controller Area Network, CAN)的簡稱,是由德國博世(BOSC...
    iic總線為什麼需要上拉電阻 iic總線為什麼需要上拉電阻
    II總線是當今電子係統中應用最廣泛的芯片間通信標準,它是一種開漏通信標準,需要上拉電阻將總線電平拉到Vdd 在設計中需要增加上拉電阻,但關鍵是上拉電阻阻值取多少合適呢?通常芯片手冊中會有推薦的上拉阻值,所以在設計時按推薦的取值就可以了。下圖是一...
    組態王HTConvertTime函數年份上限2019怎麼解決 組態王HTConvertTime函數年份上限2019怎麼
    如下圖:組態王HTConvertTime使用2019年 相信用過組態王軟件的人都會知道,組態王HTConvertTime這個函數到了現在2020年已經不能用了,那以前做的項目怎麼辦能,接下來我來為大家介紹以下2種解決方案,如果適用,請采納。 方案1.致電組態王,要求組態王廠家發...
    電子開發中如何確定使用I2C總線還是SPI總線或者CAN總線 電子開發中如何確定使用I2C總線還是SPI總線
    電子項目開發中經常用到通訊功能,包括板子上芯片間的通訊和設備間的通訊。而常用的有線通訊方式無非就這幾種,如I2C、SPI、RS232、RS485接口、CAN、USB等。其中I2C也叫IIC,對於題目中提到的幾種通訊方式,I2C和SPI是芯片間的短距離通訊,無法長距離通訊。...
    can協議是什麼 can協議是什麼
    CAN總線是德國公司BOSCH公司為解決現代汽車中眾多控製和測試儀器之間的數據交換而開發的一種串行數據通信協議,即控製器局域網總線。 其是一種多主總線,通信介質可以是雙絞線、同軸電纜、光纖,通信速率可達1Mb/s,通信距離可達10Km。此協議的最大特點是廢...
    Baidu
    map