由圖1可知,發送節點在發完CRC 場之后,會發出一位應答隙,在這一位的時間內,接收節點應該輸出顯式位作為回應,發送節點如果在應答隙內沒有檢測到有效的顯式位,則會判定總線錯誤,所以限制CAN 總線系統信號傳播延時上限的根本條件就是必須確保發送節點在應答隙內接收到有效的應答信號。
為了滿足這一根本條件,以 1 Mbit/s 波特率,單點采樣模式為例,依據采樣點在設置同步段、時間段1、時間段2 內的前后變化,當設置為75%位寬度時(即采樣點位于距位起始的75%位寬度,為750 ns),在應答隙要使得發送節點采集到有效的顯式位,理論上來講,必須滿足整個信號傳播延時小于750 ns。即隔離器件、總線驅動器、線纜等的延時總和小于750ns才能保證應答有效。如圖3所示:
圖3 CAN總線延時理論分析框圖
CAN總線延時分析
首先,我們看CAN網絡上節點之間通信的傳播延時情況,如圖4所示,t2、t5為收發器循環延時、t3、t6為隔離延時、t4、t7為CAN控制器處理延時,t1 為線纜傳輸延時。
圖4 CAN總線信號傳輸延時
以節點A發送,節點B接收為例,從CAN報文發出開始,到接收到ACK應答,整個應答回路延時為T總=(t1+t2+t3+t4+t5+t6+t7)*2,期間報文經過了4次隔離及收發器,兩次線纜,若想提高傳輸距離,需對各個環節的延時時間進行分析。
1、隔離器件延時
為了提高CAN節點的可靠性,CAN底層硬件通常會使用隔離設計。常用解決方案有采用光耦+CAN收發器,如圖5所示(6N137+TJA1051),光耦6N137具有典型的60ns單向延時,而全部雙向信號必須經過4個光耦,總隔離延時達240ns,在位時間配置不變的情況下,大大地縮短了CAN系統的容許線纜長度。
圖5 光耦隔離延時
圖6 隔離收發器延時