紀宏巖
(北汽集團越野車研究院,北京 101300)
一種基于時間觸發的CAN發送機制
紀宏巖
(北汽集團越野車研究院,北京 101300)
提出一種CAN總線發送機制,通過這種機制,網絡上的所有節點能夠獲取統一的時鐘,報文將基于時間觸發的方式發送。此機制應用于現有CAN網絡之后,能夠有效避免總線競爭帶來的報文延遲,提高CAN總線的傳送實時性。
時間觸發;事件觸發;總線競爭;報文優先級
隨著汽車上電子功能的增多,總線上節點數量也越來越多,總線負載率也隨之增高。在負載率超過40%的基礎上,如果不針對CAN網絡進行任何優化,將會使很多節點發送的報文產生競爭,從而帶來傳送的延遲。本文提出一種改進方式,即選取網絡中的某個節點,讓其周期性地發送同步報文,其他節點收到這條報文之后,立刻進行時鐘同步,通過這種方法,使網絡上的所有節點獲取公共時鐘,再以公共時鐘為基準,為每個節點分配自己的時間段,節點都只在屬于自己的時間段內發送報文,不屬于自己的時間段內不發送,這樣每個節點在發送報文的時候都不會與其他節點產生競爭,需發送報文就立刻能夠成功發送出去,不會產生延遲。這種發送方式不需要對硬件和網絡拓撲做改動,適用于任何CAN總線網絡,可以在不增加成本的基礎上有效改善總線網絡的實時性。
CAN是一種基于事件觸發的通信方式。所謂事件觸發是指當任何一個節點有發送報文需求時,立刻就進行發送。但也可能其他的節點有發送需求,這時就會產生競爭,CAN國際標準ISO 11898規定了此時依靠報文的優先級來決定報文的發送順序,這種機制保證了在產生競爭時,每條報文都能夠被成功發送,但沒法保證報文的實時性,優先級低的報文不能在需發送的時候立刻發送成功,會有等待而造成的延遲?;谑录|發的報文發送示意圖如圖1所示。
圖1 基于事件觸發的報文發送
從圖1可以看到,節點A、B、C、D在不同的時刻分別向總線上發送ID為5、7、3、6的報文。B節點發送優先級較低,雖然發送時間很早,但是由于總線競爭的原因導致其最終發送到總線上的時刻最靠后。這就是基于“事件觸發”發送方式的缺陷,各個節點之間沒有公共時鐘,報文的發送不能統一進行協調,很多時候會由于多個節點同時發送報文造成總線競爭而產生延遲。
提出一種以時間觸發的CAN報文發送機制,時間觸發的關鍵是要讓所有的節點都能獲取一個公共的時鐘,CAN總線采取廣播的方式發送報文,任何一個節點發送的報文都可以被其它節點所接收,并且發送節點發送完成和接收節點接收成功是同一個時刻,因此利用CAN總線的這種特點來實現基于時間觸發。
選取網絡上的任何一個節點發送同步報文,發送同步報文的節點稱為同步節點。為了保證同步報文能夠精確地 按周期發送,同步報文的ID設置為0(優先級最高),同步報文的周期取所有周期報文的最大公約數。假設其他報文的周期分別為10 ms、20 ms、30 ms、50 ms,則同步報文的周期為300 ms。同步節點每間隔300 ms發送一次同步報文,其發送完該報文之后,立刻將自身計數器清0,其他節點收到同步報文之后也將自身計數器清0,這樣就能夠使網絡上所有節點每隔300 ms實現一次時鐘同步?;跁r間觸發的報文發送如圖2所示。
圖2 基于時間觸發的報文發送
從圖2可以看出,時間軸上每間隔300 ms為一個同步時刻,所有節點都以同步時刻為基準發送報文。由于發送時刻都不沖突,因此報文能夠在第一時間內被發送成功,避免了總線競爭,也就大大降低了報文延遲的可能。
闡述CAN總線時間觸發方面的一些思路,并嘗試在汽車網絡設計過程中進行一些有意義的理論實踐,所提出的方法和措施都在工作中經過驗證,實用性較強,對于提高汽車網絡設計的實時性具有重要的參考作用。
[1] 顏碧云,魏葉華.基于CAN總線的共享時鐘混合調度算法[J].計算機工程與應用,2014(4):69-72,156.
[2] 馮曉東,果艷紅.TTCAN動態調度算法實現與仿真[J].電子測量與儀器學報,2008,22(2):81-85.
[3] 王慶祥,陳家琪.TTCAN網絡的響應分析及系統矩陣的優化[J].上海理工大學學報,2005,27(1):32-36,42.
(編輯 心 翔)
A Time-trigger Method of CAN Transmission Mechanism
JI Hong-yan
(BAIC Off-road Vehicle Research Centre,Beijing 101300,China)
This article proposes a CAN transmission mechanism that all nodes on the network get a global clock,and message sending is triggered by time. This mechanism could effectively avoid delay caused by CAN competition,thus improve the real-time transmission.
time-trigger;event-trigger;CAN competition;message priority
U463.6
A
1003-8639(2017)10-0061-02
2017-01-05
紀宏巖,碩士,高級工程師,負責車載網絡的設計和診斷系統的開發,具有10年總線開發經驗。