《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 业界动态 > 时间触发CAN网络节点设计

时间触发CAN网络节点设计

《电子技术应用》2007年第2期
2008-01-04
作者:韩晓东, 吴临政, 吴 波

摘 要:介紹了依照時(shí)間觸發(fā)" title="時(shí)間觸發(fā)">時(shí)間觸發(fā)現(xiàn)場總線的標(biāo)準(zhǔn),研制應(yīng)用于道路車輛的TTCAN網(wǎng)絡(luò)節(jié)點(diǎn)通信卡,實(shí)現(xiàn)時(shí)間觸發(fā)通信功能的開發(fā)過程。
關(guān)鍵詞:道路車輛?? 總線? TTCAN? 時(shí)間觸發(fā)

?

??? CAN總線是一種有效支持分布式控制的串行通信網(wǎng)絡(luò),具有突出的可靠性、實(shí)時(shí)性" title="實(shí)時(shí)性">實(shí)時(shí)性和靈活性等優(yōu)點(diǎn),在汽車、機(jī)械、機(jī)器人、數(shù)控機(jī)床及醫(yī)療器械等領(lǐng)域得到廣泛應(yīng)用[1]。但由于CAN網(wǎng)絡(luò)沒有統(tǒng)一的全局時(shí)鐘,因此常采用事件觸發(fā)的方式組織報(bào)文發(fā)送,這種方法在實(shí)際應(yīng)用中存在一些弊端:
? ?(1)由于沒有全局同步時(shí)鐘,而是依靠各MCU進(jìn)行獨(dú)立的軟件延時(shí),因此相鄰兩次數(shù)據(jù)發(fā)送的時(shí)間間隔不可能嚴(yán)格按照預(yù)定時(shí)序進(jìn)行,必然會出現(xiàn)一定超前或滯后。當(dāng)這種超前、滯后較嚴(yán)重時(shí),就會引起總線時(shí)序的混亂。
?? ?(2)當(dāng)CAN網(wǎng)絡(luò)總線負(fù)載較高時(shí),發(fā)送失敗的報(bào)文在其嘗試重發(fā)的過程中會嚴(yán)重影響網(wǎng)絡(luò)的運(yùn)行穩(wěn)定,造成其他報(bào)文發(fā)送的延遲。
?? ?(3)由于沒有全局同步時(shí)鐘,網(wǎng)絡(luò)上各MCU的軟件計(jì)時(shí)會出現(xiàn)離散。尤其在周期時(shí)間較長時(shí),節(jié)點(diǎn)間的時(shí)間離散會影響原定報(bào)文的發(fā)送時(shí)序。
  要解決這些問題,提高系統(tǒng)的實(shí)時(shí)性、穩(wěn)定性,就必須引入全局統(tǒng)一的同步時(shí)鐘,并采用嚴(yán)格守時(shí)的時(shí)間觸發(fā)、硬件定時(shí)的TTCAN網(wǎng)絡(luò)傳輸系統(tǒng)。
1 TTCAN簡介[2]
  TTCAN(時(shí)間觸發(fā)現(xiàn)場總線)是為了適應(yīng)第一代電控駕駛系統(tǒng)的需要而開發(fā)的。通信網(wǎng)絡(luò)中純粹的時(shí)間觸發(fā)操作由系統(tǒng)中統(tǒng)一的同步時(shí)間決定。信息的傳遞依賴于一個(gè)預(yù)先定義好的時(shí)間進(jìn)度表。
  其主要特征是總線訪問受控于稱為“基本周期”的時(shí)間循環(huán)?;局芷诒环指畛纱_定數(shù)量的時(shí)間窗,類型包括:參考報(bào)文、獨(dú)占窗、仲裁窗和空閑窗。基本周期的構(gòu)成如圖1所示。

?


  在一個(gè)基本周期內(nèi),“獨(dú)占”、“仲裁”和“自由”三種時(shí)間窗的個(gè)數(shù)以及排放位置可以自由定義。其功能如下:

?? ?(1)參考報(bào)文:由時(shí)間主控單元發(fā)送,用于控制基本周期的計(jì)時(shí),并標(biāo)志著一個(gè)基本周期的開始。一個(gè)基本周期僅包含一個(gè)參考報(bào)文。
??? (2)獨(dú)占窗:用于報(bào)文的傳送,要求有足夠長的時(shí)間來保證傳送的完成。每個(gè)獨(dú)占窗為一個(gè)特定的CAN報(bào)文而保留,此時(shí)其他報(bào)文不會競爭總線。這是TTCAN最主要的特點(diǎn),也是優(yōu)點(diǎn)。在排外窗中,如果一個(gè)報(bào)文發(fā)送失敗,則不允許重新發(fā)送,這與標(biāo)準(zhǔn)CAN協(xié)議不同。
  (3)仲裁窗:當(dāng)總線空閑時(shí),仲裁窗對所有報(bào)文都開放,并根據(jù)報(bào)文優(yōu)先級進(jìn)行仲裁。因此可以專門設(shè)計(jì)給對實(shí)時(shí)性要求很高的節(jié)點(diǎn),為事件觸發(fā)留出一定的數(shù)據(jù)傳輸時(shí)間。
  (4)空閑窗:是為將來系統(tǒng)的擴(kuò)展而保留的時(shí)間段。因此,將來可以向系統(tǒng)加入更多的節(jié)點(diǎn)。
  總體來看,TTCAN比目前的CAN有著時(shí)序準(zhǔn)確、帶寬利用率高、實(shí)時(shí)性好等明顯的優(yōu)點(diǎn),對于道路車輛數(shù)控系統(tǒng)來說,可以提高其穩(wěn)定性、實(shí)時(shí)性和安全性。另外,因采用TTCAN而節(jié)省下來的總線負(fù)載,可以留給將來更多節(jié)點(diǎn)的加入,使其成為一輛全數(shù)字化的新型車輛。
2 TTCAN通信卡硬件設(shè)計(jì)[3-4]
  作為完整的系統(tǒng),TTCAN通信卡要具有以下功能:
??? (1)連接CAN總線,以TTCAN標(biāo)準(zhǔn)收發(fā)CAN報(bào)文,實(shí)現(xiàn)時(shí)間觸發(fā)通信;
??? (2)通過雙口" title="雙口">雙口RAM與其他設(shè)備進(jìn)行數(shù)據(jù)交換;
??? (3)有較強(qiáng)的抗干擾能力。
??? 根據(jù)以上功能模塊的要求,選擇硬件設(shè)計(jì)所需的主要部件有:
??? (1)MCU:選用ATMEL公司 T89C51CC01單片機(jī);自帶CAN控制器,集成度高,編程簡單,且支持TTCAN功能;
??? (2)雙口RAM:要求至少1KB容量,快速讀寫,有忙仲裁機(jī)制,故選擇了IDT7130;
??? (3)CAN收發(fā)器:選Philips公司的成熟產(chǎn)品 PCA82C250。
??? 為了避免外界對通信板卡的干擾,使CAN總線通信板工作更加可靠,將CAN收發(fā)器與MCU之間的信號和電源進(jìn)行隔離。另外,為了對CAN總線上的高頻噪聲進(jìn)行濾波處理,還要增加抗高頻噪聲EMC電路。通信卡各主要功能之間的關(guān)系如圖2所示。

?


3 TTCAN通信軟件" title="通信軟件">通信軟件設(shè)計(jì)
 ?為實(shí)現(xiàn)基于雙口RAM的TTCAN通信板卡的功能,其通信軟件應(yīng)該具有雙口RAM操作、TTCAN 通信及一些輔助功能。每項(xiàng)功能再細(xì)分,通信軟件主要功能框架如圖3所示。

?


??? TTCAN通信部分主要包括CAN報(bào)文收發(fā)、時(shí)間同步和定時(shí)、錯(cuò)誤處理三大功能。其中,CAN報(bào)文的收發(fā)是將CAN總線傳來的報(bào)文有選擇地接收并存儲下來,并將已打包好的報(bào)文發(fā)送出去。而TTCAN的時(shí)間同步和定時(shí)發(fā)送操作則是此項(xiàng)設(shè)計(jì)的主要內(nèi)容,也是TTCAN通信卡的關(guān)鍵技術(shù),它的優(yōu)劣直接影響到整個(gè)TTCAN網(wǎng)絡(luò)系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。
3.1 TTCAN時(shí)序設(shè)計(jì)[5-6]
  筆者針對本課題組負(fù)責(zé)的燃料電池城市客車的整車網(wǎng)絡(luò)進(jìn)行了TTCAN改造。將整車控制器" title="整車控制器">整車控制器發(fā)來的第一幀報(bào)文VCC#1看作是TTCAN基本周期的參考報(bào)文。這一幀的起始時(shí)刻(SOF)就是基本周期的起始時(shí)刻。在成功接收整車控制器發(fā)來的兩幀報(bào)文后,TTCAN節(jié)點(diǎn)要將報(bào)文數(shù)據(jù)解包并存入雙口RAM的指定地址,供其他設(shè)備讀?。恢蟾鞴?jié)點(diǎn)依次向總線發(fā)報(bào)文。目前網(wǎng)絡(luò)內(nèi)除整車控制器外,還有6個(gè)節(jié)點(diǎn),共12個(gè)報(bào)文要發(fā)送。
  由此可以得出整個(gè)TTCAN網(wǎng)絡(luò)的時(shí)序:基本周期開始后,先是3毫秒的時(shí)間窗用于各節(jié)點(diǎn)接收整車控制器數(shù)據(jù)并存進(jìn)雙口RAM,然后是14個(gè)連續(xù)的“排外”時(shí)間窗,每個(gè)窗的長度為0.5毫秒,用于發(fā)送各個(gè)報(bào)文。報(bào)文只能在指定的“獨(dú)占窗”內(nèi)發(fā)送,即使發(fā)生錯(cuò)誤也不能重發(fā),這樣才能保證不會影響后續(xù)報(bào)文的發(fā)送。最后留出3毫秒的時(shí)間,給最后一個(gè)節(jié)點(diǎn)讀雙口RAM以及其他外圍操作。整個(gè)TTCAN網(wǎng)絡(luò)的工作時(shí)序安排如圖4所示。
??? 因此,時(shí)序控制程序的任務(wù)就是使報(bào)文能精確地在基本周期內(nèi)的對應(yīng)時(shí)刻開始發(fā)送,其中與時(shí)間觸發(fā)操作密切相關(guān)的關(guān)鍵技術(shù)如下:
??? (1) 俘獲VCC#1的幀起始時(shí)刻
  T89C51CC01有一個(gè)可編程的16位計(jì)時(shí)器(CANTIMH和CANTIML),它在CAN控制器啟動后就自動運(yùn)行。另有一個(gè)寄存器(CANTTCH和CANTTCL),在TTCAN模式中,它可以根據(jù)設(shè)定,自動俘獲CAN總線上每一個(gè)報(bào)文的起始(SOF)時(shí)刻或是結(jié)束(EOF)時(shí)刻??梢杂眠@套硬件機(jī)構(gòu)俘獲VCC#1的起始時(shí)刻(圖4中的時(shí)刻點(diǎn)0),作為基本周期的開始時(shí)刻值。
??? (2) 計(jì)算各報(bào)文延時(shí)長度,精確延時(shí)
  如圖4所示,為保證第n個(gè)報(bào)文的發(fā)送時(shí)刻在基本周期內(nèi)的時(shí)刻值為T=3+0.5×(n-1)毫秒,可以利用MCU的計(jì)時(shí)器Timer1來實(shí)現(xiàn)整個(gè)延時(shí)功能。先延時(shí)基本時(shí)間3毫秒,然后循環(huán)判斷是否輪到發(fā)送(即n=1?),如果未到,則n=n-1并讓Timer1再延時(shí)0.5毫秒;如果到了則啟動報(bào)文發(fā)送,然后停止Timer1工作。對于某些要發(fā)送多個(gè)報(bào)文的節(jié)點(diǎn),例如蓄電池節(jié)點(diǎn)要發(fā)送6個(gè)報(bào)文,它還要繼續(xù)讓Timer1再延時(shí)0.5毫秒,然后發(fā)送下一個(gè)報(bào)文,一直到發(fā)送完所有報(bào)文為止。整個(gè)延時(shí)發(fā)送過程如圖5所示。

?

?

?


3.2 TTCAN通信軟件特性
??? 將上述的雙口RAM讀寫、延時(shí)、報(bào)文發(fā)送這三個(gè)主要操作與系統(tǒng)初始化、狀態(tài)顯示、容錯(cuò)處理等附屬功能結(jié)合起來,就構(gòu)成了完整的TTCAN通信軟件系統(tǒng)。TTCAN通信軟件相對于原有CAN通信軟件具有優(yōu)良的特性:
?? (1)報(bào)文發(fā)送間隔更緊密,縮短了報(bào)文發(fā)送周期;
?? (2)對實(shí)時(shí)性要求高的報(bào)文可在一個(gè)基本周期內(nèi)發(fā)送3次,其平均周期約為4毫秒,能滿足實(shí)時(shí)性的要求;
?? (3)報(bào)文發(fā)送時(shí)序準(zhǔn)確,出錯(cuò)概率低,減輕整車控制器的容錯(cuò)運(yùn)算負(fù)擔(dān);
?? (4)雙口RAM兩端的讀寫也由同一時(shí)序控制,可免去繁瑣的雙口RAM判忙機(jī)制。
4 TTCAN網(wǎng)絡(luò)多節(jié)點(diǎn)聯(lián)調(diào)測試
  實(shí)驗(yàn)室內(nèi)構(gòu)建出由5個(gè)節(jié)點(diǎn)組成的TTCAN網(wǎng)絡(luò),并制定出理想的報(bào)文發(fā)送時(shí)序,如圖6所示。TTCAN網(wǎng)絡(luò)多節(jié)點(diǎn)聯(lián)調(diào)測試的主要任務(wù)是檢驗(yàn)各節(jié)點(diǎn)能否與整車控制器實(shí)現(xiàn)同步,并按照既定時(shí)序發(fā)送報(bào)文。

?


4.1 時(shí)序準(zhǔn)確性測試
??? 為了測試5節(jié)點(diǎn)TTCAN網(wǎng)絡(luò)的時(shí)序準(zhǔn)確性,測量CAN物理總線的差分電壓信號,記錄下波形圖,顯示了TTCAN基本周期中最重要的延時(shí)量。
??? (1)圖7顯示了連續(xù)的兩個(gè)基本周期。測量兩個(gè)基本周期開始時(shí)刻的時(shí)間間隔為13.04毫秒,符合既定時(shí)序13毫秒的要求。

??? (2)圖8是圖7中后4個(gè)節(jié)點(diǎn)發(fā)送報(bào)文部分的放大圖。

?

?


??? 可見相鄰兩幀報(bào)文之間的間隔都基本為0.5毫秒,而且誤差都很小。各節(jié)點(diǎn)嚴(yán)格按照既定時(shí)序圖發(fā)送報(bào)文,說明已經(jīng)成功實(shí)現(xiàn)了TTCAN功能。
4.2 測試數(shù)據(jù)統(tǒng)計(jì)
????利用NI公司的高性能CAN卡,對TTCAN網(wǎng)絡(luò)進(jìn)行持續(xù)測量,記錄連續(xù)400個(gè)周期的數(shù)據(jù),并將多組數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表1所示。


??? 由統(tǒng)計(jì)結(jié)果可見所有測量的關(guān)鍵時(shí)間量都基本等于理想值,且最大絕對誤差只有0.034毫秒,最大相對誤差也只有0.97%,不會影響時(shí)序的穩(wěn)定性,說明TTCAN節(jié)點(diǎn)的時(shí)間控制算法是成功的。
??? 在整個(gè)TTCAN板卡軟、硬件系統(tǒng)的開發(fā)過程中,都是圍繞著求快、求準(zhǔn)和保障穩(wěn)定的思想來設(shè)計(jì)的。硬件設(shè)計(jì)上采用更高的MCU及CAN控制器處理速度;對信號部分使用光耦隔離,減小了外界對板卡內(nèi)數(shù)字電路的干擾;在電路板布置上將數(shù)字電路與模擬電路分開,并且對兩部分電源進(jìn)行了電源隔離,避免了兩部分電路間的相互干擾。軟件設(shè)計(jì)上則以TTCAN協(xié)議為基礎(chǔ),將TTCAN的報(bào)文收發(fā)與讀寫雙口RAM的操作有機(jī)結(jié)合起來,統(tǒng)一編制在一個(gè)有序而且緊密的時(shí)間序列中,實(shí)現(xiàn)了TTCAN網(wǎng)絡(luò)的時(shí)間觸發(fā)通信功能。
??? 本文構(gòu)建的5節(jié)點(diǎn)TTCAN網(wǎng)絡(luò)在測試中體現(xiàn)了完美的時(shí)序準(zhǔn)確性、快速性及系統(tǒng)穩(wěn)定性,由此說明新開發(fā)的TTCAN通信板卡是成功的。
參考文獻(xiàn)
[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總線原理和應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社,1996.
[4] ?陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用.北京:清華大學(xué)出版社,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.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容