多主競爭,逐位仲裁機制
CAN總線采用了多主競爭式總線結構,采用非破壞性仲裁技術,當兩個節點同時向總線傳輸數據時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響繼續傳輸數據,由于這些節點對每一個位進行監聽,并且必須服從于更高優先級的消息,因此它們的響應時間必須快到能夠在破壞下一個比特以前終止傳輸。
1Mbps速率下,總線競爭分析
以下通過實際例子對總線狀態進行分析。由于實際組網中,節點之間通過線纜連接,數據的發送、接收及傳輸都會有一定的延時。CAN系統設計時,就需要考慮延時對系統的影響。現假設一個CAN網絡,只有A、B兩個節點,A、B之間的總單向延時為200ns,即為A到B,或B到A的發送、傳輸及接收延時的總和。信號傳輸速率為1Mbps,即位時間為1000ns。
如圖1所示,節點A在時間t=0時開始發送一條消息,從而在總線(2)上傳輸一個顯性位。有可能出現的情況是,節點B剛好在節點A的信號被接收到以前(3)開始發送,也即時間t=199ns。當時間t=1000ns,節點A第二位開始之初,在節點A轉到隱性狀態以前(4)兩個節點都沒意識到對方的有效性。然后,節點B在時間t=1199ns的第二位開始之初(6),轉到隱性狀態。另一個單向延遲以后,該隱性電平才到達節點A,時間 t=1399ns(8)。只有在這時,節點A才能讀取RXD信號,并且可以確定其代表總線的真實狀態。
從分析可知,只有通過兩倍單向延時,節點A才能夠判別總線的真實狀態。由于CAN協議固有的逐位仲裁機制,這種雙向延遲必須較好地位于一個位時間預算范圍內。否則,在第二個位仲裁完成以前,節點A就可能開始傳送其第三個位。
圖1
為保證節點每位采樣到的總線電平都是總線的真實狀態,CAN的每一個位時間都定義一段時間,用于補償雙向延時,即PROP_SEG傳播段。總傳輸延時必須小于PROP_SEG的設定時間,而采樣點在PROP_SEG之后,保證每個節點在對總線數據采樣以前都確實等待足夠長的時間,使采樣數據正確。(PROP_SEG為位時間配置的范疇,超出本文范圍,如需要更深入的了解,請查閱相關的文獻。)
CAN 標準規定,線纜的傳輸延遲為5ns/m,1Mbps信號速率時最大線纜長度為40m。通信速率為1Mbps,即位時間為1000ns,PROP_SEG設定為650ns時,由于線纜本身具有200ns的單向延時(即400ns的雙向延時),從而使收發器和相關電路的總延遲只剩約250ns。也就是說,如果CAN底層硬件的傳輸延時只要小于250ns,線纜長度即可達到40m。
CAN收發器的循環延時
CAN 收發器的制造商通常規定“循環延時”,其包括驅動器和接收機延遲。由于雙向計算中涉及兩個收發器,因此每個收發器都應有125ns或者更低的循環延時,以支持1Mbps信號速率下40m的總線長度。如果收發器電路包括更多的器件,如隔離、電平轉換或保護組件,這些器件產生的延時也必須包括在總延時預算中。
CAN隔離方案對總線傳輸距離的影響
在實際使用中,為了提高CAN節點的可靠性,CAN底層硬件通常會使用隔離設計。常用解決方案有采用光耦+CAN收發器,如6N137+TJA1051,圖2;或者直接使用隔離收發器,如CTM1051KT,圖3。
若采用圖2的隔離方案,光耦6N137具有典型的60ns單向延時,而全部雙向信號必須經過4個光耦,加上單個TJA1051約120ns的典型循環路延時,總的循環延時達到480ns。在位時間配置不變的情況下, 1Mbps速率實際只能傳輸約17m的距離,這樣大大地縮短了CAN系統的容許線纜長度。
而采用圖3所示的隔離方案,單個CTM1051KT的循環延時典型為130ns,與單個TJA1051的循環延時基本一致,在位時間配置不變的情況下,CTM1051KT自帶隔離基本不會對容許線纜長度造成影響,完全滿足1Mbps速率下約40m的傳輸距離。
總結
若想從硬件底層著手,在通信速率不變的情況下,增加CAN通信的距離,必須了解CAN通信的原理及信號線傳輸的原理,盡量減小CAN信號傳輸的延時時間,從而提高實際通信的距離。
-
收發器
+關注
關注
10文章
3454瀏覽量
106243 -
CAN總線
+關注
關注
145文章
1955瀏覽量
131092 -
CAN收發器
+關注
關注
3文章
166瀏覽量
25735
發布評論請先 登錄
相關推薦
評論