黎軍華,鄒繼軍
(東華理工大學,江西 撫州 344000)
中國是世界上最大的汽車市場,也是全球汽車增速最快的市場,但是目前大多數中國人還是沒有車的,隨著中國人的收入和財富不斷增長,中國的汽車市場非常具有吸引力,,也為汽車電子行業帶來巨大發展,在過去30年里,汽車中汽車電子設備逐漸增加,以網絡技術為基礎的X-by-wire(線控技術)在汽車中得到廣泛的應用,大大提高了汽車的安全系數。
CAN總線技術廣泛應用于中國本土汽車行業中,但不能滿足一些實時性比較高的系統(例如線動制動系統和線控轉向系統),會產生消息傳送的延時,不能保證消息傳輸延時的確定性,這將會帶來巨大的安全隱患,TTCAN(Time Trigged Control Area Network)協議正是應這種需求并提出發展起來的,TTCAN對CAN進行了擴展,提供了時間觸發機制以提高通信實時性。
TTCAN是在Bosch公司的標準CAN總線協議基礎上擴展了支持時間觸發的高層協議。TTCAN節點完全兼容CAN節點,無論是在數據鏈路層還是在物理層,它們使用同樣的總線線路和總線收發器。TTCAN協議可以同步整個通信網絡中所有節點的通信調度表,并且還提供了一個全局參考時間,當總線上所有節點的時鐘都同步時,任何Message(報文)都可以在時間窗口中被發送出去,在TTCAN系統中所有的報文都是由調度表決定的,所有的時間窗口可以被設計成完全正交,信息的傳送時間都可以通過調度表提前預知。
時間觸發系統中任務是由全局時間觸發的,由于時間觸發系統保證在同一個時刻,系統中只有一個任務被觸發,而且在任何時刻系統中都有任務在執行。這樣,就使系統的使用效率得到了提高,而且不會發生任務阻塞的現象。由于系統中各個節點間存在著時間的漂移 (由于每個節點所處的環境以及其時鐘晶振的制作工藝等存在差異),所以必須動態的對每個節點的時鐘進行調整,使整個系統的各個節點時鐘能夠同步。如圖1 所示,當系統時鐘到達3和8時發送消息A。當系統時間到達5時發送消息B,當系統時間到達13時發送消息C。

圖1 時間觸發通信方式
TTCAN實現網絡內節點同步的方式有兩種,一種遵從級別1的TTCAN規范,另一種遵從級別2的TTCAN規范。
(1)級別1 TTCAN規范實現網絡內各節點同步的方式。在TTCAN網絡內向其它節點廣播發送報文的節點邏輯上稱為時間主機,其它節點稱為時間從機。時間主機發送的用于同步網絡內各節點的報文稱為參考報文,時間主機發送參考報文不是單次的,而是每隔一定時間就會發送一次,以此來使網絡內其它節點重新同步于時間主機,這個間隔時間稱為一個基本循環。由于網絡內各節點的本地時鐘都要同步于時間主機的時鐘,故時間主機的時鐘可以看作是全局時鐘。級別1的TTCAN規范,使用傳統CAN控制器結合微控制器的軟件控制便可以實現。
(2)級別2 TTCAN規范實現網絡內各節點同步的方式。級別2的TTCAN規范為每個節點增加物理的時鐘部件并把它的時間作為本地時鐘。時間主機將自身時鐘模塊內的時鐘作為網絡的全局時間,當它廣播發送參考報文時,連同這個時鐘放入報文的數據區同時發送出去。時間從機接收到參考報文后,根據參考報文里的時鐘與本地時時鐘的差計算出全局時間,如圖2 所示,從而實現網絡內各節點的同步。

圖2 從節點的全局時間
(1)參照報文與基本循環。在TTCAN中的時間觸發通信是基于參照報文的周期通信,參照報文是一個CAN數據幀,由時間主機有規則地發送的,通過它的標識符很容易被識別。兩個連續的參考幀之間的時間叫做基本循環。
(2)系統矩陣。設計TTCAN系統時,可以根據網絡節點數目、節點實現功能等設計若干互不相同的基本循環,再進一步根據系統需要將它們聯合起來構成系統的時間調度表,稱為系統矩陣,如圖3 所示。
在一個系統矩陣的實現過程中,網絡內各節點在時間同步條件下按照系統矩陣的調度安排來獲得對總線的使用權,在規定的時間窗口內完成相應的動作,從而確??偩€上定期報文的實時性。整個TTCAN的通信實際上是各節點在系統矩陣的安排下,周期性地完成系統矩陣中所規定的任務,即系統矩陣的周期性循環。

圖3 系統矩陣
現代汽車系統中由若干個控制系統組成,各個控制系統通過緊密的配合才能讓汽車性能安全,可靠。系統整體設計思路是在現有CAN總線技術上的升級與改進,兼容原有的CAN總線線路,在系統硬件和軟件上做相應的改進,如圖4 所示,各個控制系統通過CAN總線網絡連接,并用TTCAN通信協議進行數據傳輸。

圖4 整體內部系統
TTCAN節點接口模塊主要分為三個部分:模塊控制器;CAN控制器;CAN收發器,如圖5 所示,節點硬件部分跟CAN節點硬件部分是兼容的,TTCAN模塊與CAN模塊最大的不同就在于TTCAN模塊具有時間觸發功能,TTCAN內核比CAN內核多了幀同步塊和觸發寄存器,硬件設備均可以通過模塊控制器的內部擴展功能實現。

圖5 接口模塊
軟件設計語言用C語言編寫,總共分為7個部分,各時間單元初始化;循環時間控制;本地時間控制;全局時間控制;主節點控制;總操作控制;時間調度表;設計實現時間調度表可以采取靜態調度和動態調度兩種方法。靜態調度是指,系統設計者在組網之前將整個網絡里每個節點在哪一個窗口發送或接收報文的順序規劃好,然后按照規劃設計出調度表,再根據每個節點不同的特定知識設將調度表相關內容分散到各節點。這樣設計的網絡,運行起來之后調度表不能改變。動態調度是指按照系統動態的需求,在系統動作中動態地生成調度表,系統節點再按照調度表發送信息。系統的調度表可以根據不同的系統生成不同的調度表,若系統變化時,調度信息也隨之變化。
TTCAN系統的應用前景很大,中國正處在高速發展階段,居民擁有的汽車數據逐年上升,交通事故率也相對增加給交通造成了很大影響,此系統對于構建智能交通系統是個很好的設想,具有重要的科研意義和使用應用價值。
[1]饒運濤,鄒繼軍,王進宏,鄭勇蕓.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2007.
[2]饒運濤.帶時間觸發的CAN網絡設計[J].計算機工程,2008,34(21):216-218.
[3]周震,楊正林.時間觸發CAN—TTCAN[J].汽車電器,2005.
[4]卞卡明,黎光顯,秦利升.TTCAN的硬件實現及在智能壓路機上的應用[J].中國工程機械學報,2007.
[5]Leen G,Hefferman D.TTCAN:a new time-triggered controller area networks[J].Microprocessors and Microsystem,2002,26:77-79.