黎軍華,鄒繼軍
(東華理工大學(xué),江西 撫州 344000)
中國(guó)是世界上最大的汽車市場(chǎng),也是全球汽車增速最快的市場(chǎng),但是目前大多數(shù)中國(guó)人還是沒有車的,隨著中國(guó)人的收入和財(cái)富不斷增長(zhǎng),中國(guó)的汽車市場(chǎng)非常具有吸引力,,也為汽車電子行業(yè)帶來巨大發(fā)展,在過去30年里,汽車中汽車電子設(shè)備逐漸增加,以網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的X-by-wire(線控技術(shù))在汽車中得到廣泛的應(yīng)用,大大提高了汽車的安全系數(shù)。
CAN總線技術(shù)廣泛應(yīng)用于中國(guó)本土汽車行業(yè)中,但不能滿足一些實(shí)時(shí)性比較高的系統(tǒng)(例如線動(dòng)制動(dòng)系統(tǒng)和線控轉(zhuǎn)向系統(tǒng)),會(huì)產(chǎn)生消息傳送的延時(shí),不能保證消息傳輸延時(shí)的確定性,這將會(huì)帶來巨大的安全隱患,TTCAN(Time Trigged Control Area Network)協(xié)議正是應(yīng)這種需求并提出發(fā)展起來的,TTCAN對(duì)CAN進(jìn)行了擴(kuò)展,提供了時(shí)間觸發(fā)機(jī)制以提高通信實(shí)時(shí)性。
TTCAN是在Bosch公司的標(biāo)準(zhǔn)CAN總線協(xié)議基礎(chǔ)上擴(kuò)展了支持時(shí)間觸發(fā)的高層協(xié)議。TTCAN節(jié)點(diǎn)完全兼容CAN節(jié)點(diǎn),無論是在數(shù)據(jù)鏈路層還是在物理層,它們使用同樣的總線線路和總線收發(fā)器。TTCAN協(xié)議可以同步整個(gè)通信網(wǎng)絡(luò)中所有節(jié)點(diǎn)的通信調(diào)度表,并且還提供了一個(gè)全局參考時(shí)間,當(dāng)總線上所有節(jié)點(diǎn)的時(shí)鐘都同步時(shí),任何Message(報(bào)文)都可以在時(shí)間窗口中被發(fā)送出去,在TTCAN系統(tǒng)中所有的報(bào)文都是由調(diào)度表決定的,所有的時(shí)間窗口可以被設(shè)計(jì)成完全正交,信息的傳送時(shí)間都可以通過調(diào)度表提前預(yù)知。
時(shí)間觸發(fā)系統(tǒng)中任務(wù)是由全局時(shí)間觸發(fā)的,由于時(shí)間觸發(fā)系統(tǒng)保證在同一個(gè)時(shí)刻,系統(tǒng)中只有一個(gè)任務(wù)被觸發(fā),而且在任何時(shí)刻系統(tǒng)中都有任務(wù)在執(zhí)行。這樣,就使系統(tǒng)的使用效率得到了提高,而且不會(huì)發(fā)生任務(wù)阻塞的現(xiàn)象。由于系統(tǒng)中各個(gè)節(jié)點(diǎn)間存在著時(shí)間的漂移 (由于每個(gè)節(jié)點(diǎn)所處的環(huán)境以及其時(shí)鐘晶振的制作工藝等存在差異),所以必須動(dòng)態(tài)的對(duì)每個(gè)節(jié)點(diǎn)的時(shí)鐘進(jìn)行調(diào)整,使整個(gè)系統(tǒng)的各個(gè)節(jié)點(diǎn)時(shí)鐘能夠同步。如圖1 所示,當(dāng)系統(tǒng)時(shí)鐘到達(dá)3和8時(shí)發(fā)送消息A。當(dāng)系統(tǒng)時(shí)間到達(dá)5時(shí)發(fā)送消息B,當(dāng)系統(tǒng)時(shí)間到達(dá)13時(shí)發(fā)送消息C。
圖1 時(shí)間觸發(fā)通信方式
TTCAN實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)同步的方式有兩種,一種遵從級(jí)別1的TTCAN規(guī)范,另一種遵從級(jí)別2的TTCAN規(guī)范。
(1)級(jí)別1 TTCAN規(guī)范實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)同步的方式。在TTCAN網(wǎng)絡(luò)內(nèi)向其它節(jié)點(diǎn)廣播發(fā)送報(bào)文的節(jié)點(diǎn)邏輯上稱為時(shí)間主機(jī),其它節(jié)點(diǎn)稱為時(shí)間從機(jī)。時(shí)間主機(jī)發(fā)送的用于同步網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)的報(bào)文稱為參考報(bào)文,時(shí)間主機(jī)發(fā)送參考報(bào)文不是單次的,而是每隔一定時(shí)間就會(huì)發(fā)送一次,以此來使網(wǎng)絡(luò)內(nèi)其它節(jié)點(diǎn)重新同步于時(shí)間主機(jī),這個(gè)間隔時(shí)間稱為一個(gè)基本循環(huán)。由于網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)的本地時(shí)鐘都要同步于時(shí)間主機(jī)的時(shí)鐘,故時(shí)間主機(jī)的時(shí)鐘可以看作是全局時(shí)鐘。級(jí)別1的TTCAN規(guī)范,使用傳統(tǒng)CAN控制器結(jié)合微控制器的軟件控制便可以實(shí)現(xiàn)。
(2)級(jí)別2 TTCAN規(guī)范實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)同步的方式。級(jí)別2的TTCAN規(guī)范為每個(gè)節(jié)點(diǎn)增加物理的時(shí)鐘部件并把它的時(shí)間作為本地時(shí)鐘。時(shí)間主機(jī)將自身時(shí)鐘模塊內(nèi)的時(shí)鐘作為網(wǎng)絡(luò)的全局時(shí)間,當(dāng)它廣播發(fā)送參考報(bào)文時(shí),連同這個(gè)時(shí)鐘放入報(bào)文的數(shù)據(jù)區(qū)同時(shí)發(fā)送出去。時(shí)間從機(jī)接收到參考報(bào)文后,根據(jù)參考報(bào)文里的時(shí)鐘與本地時(shí)時(shí)鐘的差計(jì)算出全局時(shí)間,如圖2 所示,從而實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)的同步。
圖2 從節(jié)點(diǎn)的全局時(shí)間
(1)參照?qǐng)?bào)文與基本循環(huán)。在TTCAN中的時(shí)間觸發(fā)通信是基于參照?qǐng)?bào)文的周期通信,參照?qǐng)?bào)文是一個(gè)CAN數(shù)據(jù)幀,由時(shí)間主機(jī)有規(guī)則地發(fā)送的,通過它的標(biāo)識(shí)符很容易被識(shí)別。兩個(gè)連續(xù)的參考幀之間的時(shí)間叫做基本循環(huán)。
(2)系統(tǒng)矩陣。設(shè)計(jì)TTCAN系統(tǒng)時(shí),可以根據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目、節(jié)點(diǎn)實(shí)現(xiàn)功能等設(shè)計(jì)若干互不相同的基本循環(huán),再進(jìn)一步根據(jù)系統(tǒng)需要將它們聯(lián)合起來構(gòu)成系統(tǒng)的時(shí)間調(diào)度表,稱為系統(tǒng)矩陣,如圖3 所示。
在一個(gè)系統(tǒng)矩陣的實(shí)現(xiàn)過程中,網(wǎng)絡(luò)內(nèi)各節(jié)點(diǎn)在時(shí)間同步條件下按照系統(tǒng)矩陣的調(diào)度安排來獲得對(duì)總線的使用權(quán),在規(guī)定的時(shí)間窗口內(nèi)完成相應(yīng)的動(dòng)作,從而確??偩€上定期報(bào)文的實(shí)時(shí)性。整個(gè)TTCAN的通信實(shí)際上是各節(jié)點(diǎn)在系統(tǒng)矩陣的安排下,周期性地完成系統(tǒng)矩陣中所規(guī)定的任務(wù),即系統(tǒng)矩陣的周期性循環(huán)。
圖3 系統(tǒng)矩陣
現(xiàn)代汽車系統(tǒng)中由若干個(gè)控制系統(tǒng)組成,各個(gè)控制系統(tǒng)通過緊密的配合才能讓汽車性能安全,可靠。系統(tǒng)整體設(shè)計(jì)思路是在現(xiàn)有CAN總線技術(shù)上的升級(jí)與改進(jìn),兼容原有的CAN總線線路,在系統(tǒng)硬件和軟件上做相應(yīng)的改進(jìn),如圖4 所示,各個(gè)控制系統(tǒng)通過CAN總線網(wǎng)絡(luò)連接,并用TTCAN通信協(xié)議進(jìn)行數(shù)據(jù)傳輸。
圖4 整體內(nèi)部系統(tǒng)
TTCAN節(jié)點(diǎn)接口模塊主要分為三個(gè)部分:模塊控制器;CAN控制器;CAN收發(fā)器,如圖5 所示,節(jié)點(diǎn)硬件部分跟CAN節(jié)點(diǎn)硬件部分是兼容的,TTCAN模塊與CAN模塊最大的不同就在于TTCAN模塊具有時(shí)間觸發(fā)功能,TTCAN內(nèi)核比CAN內(nèi)核多了幀同步塊和觸發(fā)寄存器,硬件設(shè)備均可以通過模塊控制器的內(nèi)部擴(kuò)展功能實(shí)現(xiàn)。
圖5 接口模塊
軟件設(shè)計(jì)語言用C語言編寫,總共分為7個(gè)部分,各時(shí)間單元初始化;循環(huán)時(shí)間控制;本地時(shí)間控制;全局時(shí)間控制;主節(jié)點(diǎn)控制;總操作控制;時(shí)間調(diào)度表;設(shè)計(jì)實(shí)現(xiàn)時(shí)間調(diào)度表可以采取靜態(tài)調(diào)度和動(dòng)態(tài)調(diào)度兩種方法。靜態(tài)調(diào)度是指,系統(tǒng)設(shè)計(jì)者在組網(wǎng)之前將整個(gè)網(wǎng)絡(luò)里每個(gè)節(jié)點(diǎn)在哪一個(gè)窗口發(fā)送或接收?qǐng)?bào)文的順序規(guī)劃好,然后按照規(guī)劃設(shè)計(jì)出調(diào)度表,再根據(jù)每個(gè)節(jié)點(diǎn)不同的特定知識(shí)設(shè)將調(diào)度表相關(guān)內(nèi)容分散到各節(jié)點(diǎn)。這樣設(shè)計(jì)的網(wǎng)絡(luò),運(yùn)行起來之后調(diào)度表不能改變。動(dòng)態(tài)調(diào)度是指按照系統(tǒng)動(dòng)態(tài)的需求,在系統(tǒng)動(dòng)作中動(dòng)態(tài)地生成調(diào)度表,系統(tǒng)節(jié)點(diǎn)再按照調(diào)度表發(fā)送信息。系統(tǒng)的調(diào)度表可以根據(jù)不同的系統(tǒng)生成不同的調(diào)度表,若系統(tǒng)變化時(shí),調(diào)度信息也隨之變化。
TTCAN系統(tǒng)的應(yīng)用前景很大,中國(guó)正處在高速發(fā)展階段,居民擁有的汽車數(shù)據(jù)逐年上升,交通事故率也相對(duì)增加給交通造成了很大影響,此系統(tǒng)對(duì)于構(gòu)建智能交通系統(tǒng)是個(gè)很好的設(shè)想,具有重要的科研意義和使用應(yīng)用價(jià)值。
[1]饒運(yùn)濤,鄒繼軍,王進(jìn)宏,鄭勇蕓.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2007.
[2]饒運(yùn)濤.帶時(shí)間觸發(fā)的CAN網(wǎng)絡(luò)設(shè)計(jì)[J].計(jì)算機(jī)工程,2008,34(21):216-218.
[3]周震,楊正林.時(shí)間觸發(fā)CAN—TTCAN[J].汽車電器,2005.
[4]卞卡明,黎光顯,秦利升.TTCAN的硬件實(shí)現(xiàn)及在智能壓路機(jī)上的應(yīng)用[J].中國(guó)工程機(jī)械學(xué)報(bào),2007.
[5]Leen G,Hefferman D.TTCAN:a new time-triggered controller area networks[J].Microprocessors and Microsystem,2002,26:77-79.