摘 要:介紹了依照時間觸發(fā)" title="時間觸發(fā)">時間觸發(fā)現場總線的標準,研制應用于道路車輛的TTCAN網絡節(jié)點通信卡,實現時間觸發(fā)通信功能的開發(fā)過程。
關鍵詞:道路車輛?? 總線? TTCAN? 時間觸發(fā)
?
??? CAN總線是一種有效支持分布式控制的串行通信網絡,具有突出的可靠性、實時性" title="實時性">實時性和靈活性等優(yōu)點,在汽車、機械、機器人、數控機床及醫(yī)療器械等領域得到廣泛應用[1]。但由于CAN網絡沒有統(tǒng)一的全局時鐘,因此常采用事件觸發(fā)的方式組織報文發(fā)送,這種方法在實際應用中存在一些弊端:
? ?(1)由于沒有全局同步時鐘,而是依靠各MCU進行獨立的軟件延時,因此相鄰兩次數據發(fā)送的時間間隔不可能嚴格按照預定時序進行,必然會出現一定超前或滯后。當這種超前、滯后較嚴重時,就會引起總線時序的混亂。
?? ?(2)當CAN網絡總線負載較高時,發(fā)送失敗的報文在其嘗試重發(fā)的過程中會嚴重影響網絡的運行穩(wěn)定,造成其他報文發(fā)送的延遲。
?? ?(3)由于沒有全局同步時鐘,網絡上各MCU的軟件計時會出現離散。尤其在周期時間較長時,節(jié)點間的時間離散會影響原定報文的發(fā)送時序。
要解決這些問題,提高系統(tǒng)的實時性、穩(wěn)定性,就必須引入全局統(tǒng)一的同步時鐘,并采用嚴格守時的時間觸發(fā)、硬件定時的TTCAN網絡傳輸系統(tǒng)。
1 TTCAN簡介[2]
TTCAN(時間觸發(fā)現場總線)是為了適應第一代電控駕駛系統(tǒng)的需要而開發(fā)的。通信網絡中純粹的時間觸發(fā)操作由系統(tǒng)中統(tǒng)一的同步時間決定。信息的傳遞依賴于一個預先定義好的時間進度表。
其主要特征是總線訪問受控于稱為“基本周期”的時間循環(huán)?;局芷诒环指畛纱_定數量的時間窗,類型包括:參考報文、獨占窗、仲裁窗和空閑窗。基本周期的構成如圖1所示。
?
在一個基本周期內,“獨占”、“仲裁”和“自由”三種時間窗的個數以及排放位置可以自由定義。其功能如下:
?? ?(1)參考報文:由時間主控單元發(fā)送,用于控制基本周期的計時,并標志著一個基本周期的開始。一個基本周期僅包含一個參考報文。
??? (2)獨占窗:用于報文的傳送,要求有足夠長的時間來保證傳送的完成。每個獨占窗為一個特定的CAN報文而保留,此時其他報文不會競爭總線。這是TTCAN最主要的特點,也是優(yōu)點。在排外窗中,如果一個報文發(fā)送失敗,則不允許重新發(fā)送,這與標準CAN協議不同。
(3)仲裁窗:當總線空閑時,仲裁窗對所有報文都開放,并根據報文優(yōu)先級進行仲裁。因此可以專門設計給對實時性要求很高的節(jié)點,為事件觸發(fā)留出一定的數據傳輸時間。
(4)空閑窗:是為將來系統(tǒng)的擴展而保留的時間段。因此,將來可以向系統(tǒng)加入更多的節(jié)點。
總體來看,TTCAN比目前的CAN有著時序準確、帶寬利用率高、實時性好等明顯的優(yōu)點,對于道路車輛數控系統(tǒng)來說,可以提高其穩(wěn)定性、實時性和安全性。另外,因采用TTCAN而節(jié)省下來的總線負載,可以留給將來更多節(jié)點的加入,使其成為一輛全數字化的新型車輛。
2 TTCAN通信卡硬件設計[3-4]
作為完整的系統(tǒng),TTCAN通信卡要具有以下功能:
??? (1)連接CAN總線,以TTCAN標準收發(fā)CAN報文,實現時間觸發(fā)通信;
??? (2)通過雙口" title="雙口">雙口RAM與其他設備進行數據交換;
??? (3)有較強的抗干擾能力。
??? 根據以上功能模塊的要求,選擇硬件設計所需的主要部件有:
??? (1)MCU:選用ATMEL公司 T89C51CC01單片機;自帶CAN控制器,集成度高,編程簡單,且支持TTCAN功能;
??? (2)雙口RAM:要求至少1KB容量,快速讀寫,有忙仲裁機制,故選擇了IDT7130;
??? (3)CAN收發(fā)器:選Philips公司的成熟產品 PCA82C250。
??? 為了避免外界對通信板卡的干擾,使CAN總線通信板工作更加可靠,將CAN收發(fā)器與MCU之間的信號和電源進行隔離。另外,為了對CAN總線上的高頻噪聲進行濾波處理,還要增加抗高頻噪聲EMC電路。通信卡各主要功能之間的關系如圖2所示。
?
3 TTCAN通信軟件" title="通信軟件">通信軟件設計
?為實現基于雙口RAM的TTCAN通信板卡的功能,其通信軟件應該具有雙口RAM操作、TTCAN 通信及一些輔助功能。每項功能再細分,通信軟件主要功能框架如圖3所示。
?
??? TTCAN通信部分主要包括CAN報文收發(fā)、時間同步和定時、錯誤處理三大功能。其中,CAN報文的收發(fā)是將CAN總線傳來的報文有選擇地接收并存儲下來,并將已打包好的報文發(fā)送出去。而TTCAN的時間同步和定時發(fā)送操作則是此項設計的主要內容,也是TTCAN通信卡的關鍵技術,它的優(yōu)劣直接影響到整個TTCAN網絡系統(tǒng)的實時性和穩(wěn)定性。
3.1 TTCAN時序設計[5-6]
筆者針對本課題組負責的燃料電池城市客車的整車網絡進行了TTCAN改造。將整車控制器" title="整車控制器">整車控制器發(fā)來的第一幀報文VCC#1看作是TTCAN基本周期的參考報文。這一幀的起始時刻(SOF)就是基本周期的起始時刻。在成功接收整車控制器發(fā)來的兩幀報文后,TTCAN節(jié)點要將報文數據解包并存入雙口RAM的指定地址,供其他設備讀??;之后各節(jié)點依次向總線發(fā)報文。目前網絡內除整車控制器外,還有6個節(jié)點,共12個報文要發(fā)送。
由此可以得出整個TTCAN網絡的時序:基本周期開始后,先是3毫秒的時間窗用于各節(jié)點接收整車控制器數據并存進雙口RAM,然后是14個連續(xù)的“排外”時間窗,每個窗的長度為0.5毫秒,用于發(fā)送各個報文。報文只能在指定的“獨占窗”內發(fā)送,即使發(fā)生錯誤也不能重發(fā),這樣才能保證不會影響后續(xù)報文的發(fā)送。最后留出3毫秒的時間,給最后一個節(jié)點讀雙口RAM以及其他外圍操作。整個TTCAN網絡的工作時序安排如圖4所示。
??? 因此,時序控制程序的任務就是使報文能精確地在基本周期內的對應時刻開始發(fā)送,其中與時間觸發(fā)操作密切相關的關鍵技術如下:
??? (1) 俘獲VCC#1的幀起始時刻
T89C51CC01有一個可編程的16位計時器(CANTIMH和CANTIML),它在CAN控制器啟動后就自動運行。另有一個寄存器(CANTTCH和CANTTCL),在TTCAN模式中,它可以根據設定,自動俘獲CAN總線上每一個報文的起始(SOF)時刻或是結束(EOF)時刻。可以用這套硬件機構俘獲VCC#1的起始時刻(圖4中的時刻點0),作為基本周期的開始時刻值。
??? (2) 計算各報文延時長度,精確延時
如圖4所示,為保證第n個報文的發(fā)送時刻在基本周期內的時刻值為T=3+0.5×(n-1)毫秒,可以利用MCU的計時器Timer1來實現整個延時功能。先延時基本時間3毫秒,然后循環(huán)判斷是否輪到發(fā)送(即n=1?),如果未到,則n=n-1并讓Timer1再延時0.5毫秒;如果到了則啟動報文發(fā)送,然后停止Timer1工作。對于某些要發(fā)送多個報文的節(jié)點,例如蓄電池節(jié)點要發(fā)送6個報文,它還要繼續(xù)讓Timer1再延時0.5毫秒,然后發(fā)送下一個報文,一直到發(fā)送完所有報文為止。整個延時發(fā)送過程如圖5所示。
?
?
?
3.2 TTCAN通信軟件特性
??? 將上述的雙口RAM讀寫、延時、報文發(fā)送這三個主要操作與系統(tǒng)初始化、狀態(tài)顯示、容錯處理等附屬功能結合起來,就構成了完整的TTCAN通信軟件系統(tǒng)。TTCAN通信軟件相對于原有CAN通信軟件具有優(yōu)良的特性:
?? (1)報文發(fā)送間隔更緊密,縮短了報文發(fā)送周期;
?? (2)對實時性要求高的報文可在一個基本周期內發(fā)送3次,其平均周期約為4毫秒,能滿足實時性的要求;
?? (3)報文發(fā)送時序準確,出錯概率低,減輕整車控制器的容錯運算負擔;
?? (4)雙口RAM兩端的讀寫也由同一時序控制,可免去繁瑣的雙口RAM判忙機制。
4 TTCAN網絡多節(jié)點聯調測試
實驗室內構建出由5個節(jié)點組成的TTCAN網絡,并制定出理想的報文發(fā)送時序,如圖6所示。TTCAN網絡多節(jié)點聯調測試的主要任務是檢驗各節(jié)點能否與整車控制器實現同步,并按照既定時序發(fā)送報文。
?
4.1 時序準確性測試
??? 為了測試5節(jié)點TTCAN網絡的時序準確性,測量CAN物理總線的差分電壓信號,記錄下波形圖,顯示了TTCAN基本周期中最重要的延時量。
??? (1)圖7顯示了連續(xù)的兩個基本周期。測量兩個基本周期開始時刻的時間間隔為13.04毫秒,符合既定時序13毫秒的要求。
??? (2)圖8是圖7中后4個節(jié)點發(fā)送報文部分的放大圖。
?
?
??? 可見相鄰兩幀報文之間的間隔都基本為0.5毫秒,而且誤差都很小。各節(jié)點嚴格按照既定時序圖發(fā)送報文,說明已經成功實現了TTCAN功能。
4.2 測試數據統(tǒng)計
????利用NI公司的高性能CAN卡,對TTCAN網絡進行持續(xù)測量,記錄連續(xù)400個周期的數據,并將多組數據進行統(tǒng)計分析,結果如表1所示。
??? 由統(tǒng)計結果可見所有測量的關鍵時間量都基本等于理想值,且最大絕對誤差只有0.034毫秒,最大相對誤差也只有0.97%,不會影響時序的穩(wěn)定性,說明TTCAN節(jié)點的時間控制算法是成功的。
??? 在整個TTCAN板卡軟、硬件系統(tǒng)的開發(fā)過程中,都是圍繞著求快、求準和保障穩(wěn)定的思想來設計的。硬件設計上采用更高的MCU及CAN控制器處理速度;對信號部分使用光耦隔離,減小了外界對板卡內數字電路的干擾;在電路板布置上將數字電路與模擬電路分開,并且對兩部分電源進行了電源隔離,避免了兩部分電路間的相互干擾。軟件設計上則以TTCAN協議為基礎,將TTCAN的報文收發(fā)與讀寫雙口RAM的操作有機結合起來,統(tǒng)一編制在一個有序而且緊密的時間序列中,實現了TTCAN網絡的時間觸發(fā)通信功能。
??? 本文構建的5節(jié)點TTCAN網絡在測試中體現了完美的時序準確性、快速性及系統(tǒng)穩(wěn)定性,由此說明新開發(fā)的TTCAN通信板卡是成功的。
參考文獻
[1] ?BOSCH. CAN Specification Version 2.0. BOSCH.1991-09.
[2] ?ISO11898-4. Road vehicles-Controller Area Network?(CAN) Part4:Time triggered communication.International ?Standard Organization,2001-6.
[3] ?鄔寬明.CAN總線原理和應用系統(tǒng)設計.北京航空航天大學出版社,1996.
[4] ?陽憲惠.現場總線技術及其應用.北京:清華大學出版社,1999.
[5] ?SAE J1939. Recommended practice for a serial control?and communications vehicle network. Society of Auto-
?motive Engineers,1994.
[6] ?Armel Corporation. T89C51CC01 Enhanced8-bit microcontroller with CAN controller and Flash memory.2003.








