蔡營,王永峰,岳意娥,楊麗莎
(東風汽車公司技術中心電子電器部,湖北武漢 430058)
基于OSEK標準的整車CAN網(wǎng)絡管理設計及測試驗證
蔡營,王永峰,岳意娥,楊麗莎
(東風汽車公司技術中心電子電器部,湖北武漢 430058)
為了有效地管理網(wǎng)絡資源,降低控制器在車輛停止工作后的能源消耗,在整車網(wǎng)絡設計中需增加CAN網(wǎng)絡管理。OSEK網(wǎng)絡管理標準能夠有效地保證各個節(jié)點實時、可靠通信,能夠滿足CAN網(wǎng)絡對實時性、可靠性的要求;在整車CAN網(wǎng)絡設計中增加OSEK網(wǎng)絡管理,能夠在保證網(wǎng)絡正??煽窟\行的情況下,有效地分配網(wǎng)絡資源,協(xié)調(diào)各控制器高效工作,并且能夠?qū)崟r監(jiān)督各節(jié)點運行狀態(tài)。實際應用表明,OSEK網(wǎng)絡管理在整車CAN網(wǎng)絡中能夠協(xié)調(diào)各控制器正常工作,監(jiān)督整車網(wǎng)絡運行狀態(tài),降低能源消耗。最后設計一套有效的測試方法,能夠?qū)φ嚲W(wǎng)絡管理協(xié)調(diào)的有效性進行核查。測試結(jié)果表明,整車網(wǎng)絡管理設計能滿足整車CAN網(wǎng)絡性能要求。
OSEK;網(wǎng)絡管理;測試驗證
得益于汽車電子技術的高速發(fā)展,汽車上的功能日趨健全和復雜,整車控制器數(shù)量也大大增加,控制器之間的交互變得更多。為了能夠讓各控制器之間相互協(xié)調(diào),共享整車網(wǎng)絡資源,在整車上設計高效的車載計算機網(wǎng)絡成為車輛設計的一個重要部分。目前,車載網(wǎng)絡使用了多種傳輸技術,能夠通過采用多條不同速率的現(xiàn)場總線,將不同功能的控制器分類連接起來,在網(wǎng)關服務器的協(xié)調(diào)作用下,完成正常的信息交換和網(wǎng)絡管理功能。CAN總線技術以其高實時性、可靠性、傳輸速率等優(yōu)勢,在車載網(wǎng)絡中得到了廣泛的應用,是目前車載網(wǎng)絡中最常見的總線之一。在整車CAN網(wǎng)絡設計過程中,隨著ECU數(shù)量的增加,網(wǎng)絡越來越復雜,在通信過程中,可能會出現(xiàn)因其他控制器故障或未加入網(wǎng)絡而導致信號丟失。為了完成對整車網(wǎng)絡的實時監(jiān)控和資源管理,在設計過程中加入網(wǎng)絡管理,能大大提高信息傳輸?shù)陌踩院蜏蚀_性。OSEK/VDX(Vehicle Distributed execute)是歐洲汽車廠商和汽車電子研究機構共同推出的一種汽車開放式系統(tǒng)及其接口的軟件標準,其中的網(wǎng)絡管理規(guī)范提供了標準的網(wǎng)絡管理策略和方法,通過其提供的接口和服務能夠完成整車各控制器的管理和監(jiān)控[1]。本文在研究OSEK網(wǎng)絡管理的原理基礎上,將其應用到整車CAN網(wǎng)絡開發(fā)中,并提出了一套網(wǎng)絡管理測試方法,對設計的有效性進行檢驗。
OSEK/VDX由操作系統(tǒng)規(guī)范(OSEKOperating System,OSEK OS)、網(wǎng)絡管理規(guī)范(OSEK Net Management,OSEK NM)、通信規(guī)范(OSEK Communication,OSEK COM)和OSEK實現(xiàn)語言(OSEK ImplementationLanguage,OIL)四大部分組成。
1.1 OSEK網(wǎng)絡管理分類
根據(jù)OSEK網(wǎng)絡管理標準,把OSEK網(wǎng)絡管理系統(tǒng)分為2個類型:①直接網(wǎng)絡管理——支持網(wǎng)絡配置管理、網(wǎng)絡狀態(tài)管理、網(wǎng)絡睡眠協(xié)商、數(shù)據(jù)管理、錯誤管理、操作模式管理等;②間接網(wǎng)絡管理——包括統(tǒng)一監(jiān)控周期的間接網(wǎng)絡管理和非統(tǒng)一監(jiān)控周期的間接網(wǎng)絡管理,均支持網(wǎng)絡配置管理、網(wǎng)絡狀態(tài)管理、錯誤管理、操作模式管理等。間接網(wǎng)絡管理中,雖然兩者具有相同的網(wǎng)絡管理功能,但非統(tǒng)一周期的間接網(wǎng)絡管理在監(jiān)控應用程序消息時,監(jiān)控周期采用各個應用程序?qū)狾SEK COM里的IPDU的死限監(jiān)控周期,而統(tǒng)一周期的間接網(wǎng)絡管理在一個周期內(nèi)對所有的應用程序消息進行監(jiān)控。一個ECU節(jié)點可以同時具有以上2個版本的網(wǎng)絡管理或多個同一版本的網(wǎng)絡管理并存,用來管理多個網(wǎng)絡,而各個網(wǎng)絡管理系統(tǒng)相互獨立且互不影響。
1.2 OSEK網(wǎng)絡管理運行機理
一般情況下,ECU有正常操作和節(jié)電模式。為了保護電池的能量,NM必須決定何時關閉節(jié)點。直接NM提供一個協(xié)商機制,負責與網(wǎng)絡相連的所有節(jié)點在同一時刻進入睡眠。如需要將節(jié)點切換到睡眠模式,則需發(fā)送睡眠請求消息和睡眠應答消息來同步完成,其基本流程如下[2]。
1)應用程序調(diào)用GotoMode(BusSleep)要求總線進入睡眠。節(jié)點下一次接收ring消息時,NM組件將發(fā)送睡眠請求域為真的ring消息,進入NMNormal-PreSleep睡眠前準備狀態(tài)。
2)如果在LimpHome模式下接收,則發(fā)送睡眠請求域為真的imphome消息,進入NMLimpHomePreSleep睡眠前準備狀態(tài)。
3)當睡眠協(xié)商正在進行時,如果必須發(fā)送alive消息,那么發(fā)送的alive消息的睡眠請求域置為真,進入睡眠前準備狀態(tài)NMNormalPreSleep。
4)當ring消息已經(jīng)在邏輯環(huán)中完成一周傳輸,所有接收網(wǎng)絡管理消息的睡眠請求域都為真,并且當前網(wǎng)絡狀態(tài)允許睡眠時,發(fā)出睡眠請求的第1個節(jié)點開始發(fā)送睡眠請求和睡眠應答都為真的ring消息,并設置睡眠等待報警,其余節(jié)點如果都進行了睡眠請求,當收到睡眠應答為真的消息時,也要設置睡眠等待報警。
5)當各個節(jié)點的睡眠報警出現(xiàn)時,則進入睡眠狀態(tài)。
6)當前節(jié)點處在睡眠等待狀態(tài)NMTwbsNormal或NMTwbsLimpHome,如果收到睡眠請求域不為真的消息,則返回睡眠前準備狀態(tài)。
7)當應用程序調(diào)用GotoMode(Awake)或收到數(shù)據(jù)鏈路層的喚醒信號,則睡眠節(jié)點將被喚醒。
整車CAN網(wǎng)絡管理有2種實現(xiàn)方式,即間接網(wǎng)絡管理和直接網(wǎng)絡管理。在某車型網(wǎng)絡設計中,整車網(wǎng)絡拓撲結(jié)構如圖1所示。該車型中,各控制器的用電情況主要分為2類:點火鑰匙控制電源(IGN 15供電)和帶常電(IGN 30供電)。使用ING 15供電的系統(tǒng),通過監(jiān)測網(wǎng)絡中的關鍵報文,來獲取整車網(wǎng)絡狀態(tài)。此類控制器采用的是間接網(wǎng)絡管理方式,如控制器A、B、C;使用IGN 30供電的系統(tǒng),通過蓄電池供電,不受點火鑰匙控制,當整車電源處于OFF擋時,控制器具備進入睡眠狀態(tài)的條件。此類控制器采用直接網(wǎng)絡管理方式,通過發(fā)送網(wǎng)絡管理報文參與網(wǎng)絡管理,如控制器D、E、F、G。
圖1 整車網(wǎng)絡拓撲結(jié)構
2.1 直接網(wǎng)絡管理
2.1.1 直接網(wǎng)絡管理報文
直接網(wǎng)絡管理中,網(wǎng)絡管理報文用于傳遞節(jié)點狀態(tài)的信息。網(wǎng)絡管理報文的基本格式見表1。
表1 網(wǎng)絡管理報文格式
表1中ID基址表示報文ID分配的區(qū)間,在該車型設計中,定義網(wǎng)絡管理報文的ID Base=0x5,即所有參與直接網(wǎng)絡管理節(jié)點發(fā)出的網(wǎng)絡管理報文的ID為0x5xx??刂茍龅亩x及取值說明見表2。
根據(jù)功能不同,可以將網(wǎng)絡管理報文分為:Alive報文、Ring報文和LimpHome報文。其中Ring報文是邏輯環(huán)報文,在穩(wěn)定的邏輯環(huán)中,節(jié)點通過該報文傳遞各自狀態(tài)信息;Alive報文是網(wǎng)絡中完成初始化操作或者建環(huán)時被其他節(jié)點跳過后,節(jié)點發(fā)出的用以申明加入邏輯環(huán)的管理報文;LimpHome報文是在節(jié)點接收錯誤計數(shù)器或者發(fā)送錯誤計數(shù)器超過閾值時發(fā)送。
表2 控制場定義
2.1.2 邏輯環(huán)機制
邏輯環(huán)機制是指邏輯環(huán)中的節(jié)點根據(jù)節(jié)點地址的大小順序依次發(fā)送邏輯環(huán)報文。通過該機制,邏輯環(huán)中的節(jié)點能夠交換節(jié)點信息。每個節(jié)點在初始化完成之后發(fā)送Alive報文,并等待TTyp時間,同時根據(jù)網(wǎng)絡上是否有其它節(jié)點發(fā)送Alive或Ring報文而進行不同的操作:如果沒有其它節(jié)點發(fā)送Alive或Ring報文,則發(fā)送指向自身的Ring報文(目標地址=自身節(jié)點地址);如果有其它節(jié)點發(fā)送Alive或Ring報文,則節(jié)點根據(jù)這些報文的地址信息參與到邏輯環(huán)的常規(guī)運行中;每個節(jié)點完成上述操作后,則邏輯環(huán)被建立。
在邏輯環(huán)建立后,每個直接網(wǎng)絡管理節(jié)點進入邏輯環(huán)的常規(guī)運行中。邏輯環(huán)中,每個均有一個前繼節(jié)點和后繼節(jié)點。前繼節(jié)點和后繼節(jié)點是通過節(jié)點地址來確定自己的。比如在此車型中,參與直接網(wǎng)絡管理的節(jié)點為D、E、F、G,其中D節(jié)點物理地址為0x501(即D節(jié)點發(fā)出的網(wǎng)絡管理報文ID為501),E節(jié)點為0x502,F(xiàn)節(jié)點為0x50B、G節(jié)點為0x50C。那么根據(jù)建環(huán)規(guī)則,D的后繼節(jié)點為E,前繼節(jié)點為G;E節(jié)點的后繼節(jié)點為F,前繼節(jié)點為D;F節(jié)點的后繼節(jié)點為G,前繼節(jié)點為E;G節(jié)點的后繼節(jié)點為D,前繼節(jié)點為F。E、F、G、D組成的邏輯環(huán)結(jié)構如圖2所示。
圖2 邏輯環(huán)結(jié)構
2.1.3 直接網(wǎng)絡管理狀態(tài)
2.1.3.1 網(wǎng)絡管理狀態(tài)定義
在OSEK整車網(wǎng)絡管理設計中,定義了如圖3所示的網(wǎng)絡管理狀態(tài):①NMOn、NMOff和NMShutDown為第1層狀態(tài);②NMBusSleep、NMAwake、NMInit和NMActive、NMPassive是并列的2組狀態(tài),且均為NMOn的子狀態(tài);③NMReset、NMNormal和NM-LimpHome均為NMAwake的子狀態(tài)。其中,“NMBus-Sleep、NMAwake、NMInit和NMActive、NMPassive是并列的2組狀態(tài)”是指在NMOn狀態(tài)下,這2組狀態(tài)可以同時存在。例如,當某節(jié)點處于NMAwake狀態(tài)時,同時該節(jié)點還可以是NMActive或NMPassive狀態(tài)。
圖3 直接網(wǎng)絡管理狀態(tài)
2.1.3.2 網(wǎng)絡管理狀態(tài)轉(zhuǎn)換
為了有效監(jiān)控網(wǎng)絡中各個節(jié)點的狀態(tài),網(wǎng)絡管理各狀態(tài)間能夠在一定條件下實現(xiàn)相互轉(zhuǎn)換。在整車網(wǎng)絡管理設計時,對轉(zhuǎn)換條件進行細化和明確。
1)NMOFF-NMOn-NMShutDown間轉(zhuǎn)換節(jié)點進入NMOn狀態(tài);調(diào)用StopNM服務后,節(jié)點進入NMShutDown狀態(tài);節(jié)點執(zhí)行完此狀態(tài)的操作后,自動進入NMOff狀態(tài)。
2)NMInit-NMAwake-NMBusSleep間轉(zhuǎn)換NMInit狀態(tài)為默認初始狀態(tài),當執(zhí)行完此狀態(tài)的操作后,節(jié)點進入NMAwake狀態(tài);當網(wǎng)絡允許睡眠后,進入NMBus-Sleep狀態(tài);當節(jié)點收到通信請求后,進入NMInit狀態(tài)。
3)NMActive-NMPassive轉(zhuǎn)換NMActive為默認初始狀態(tài),當應用程序調(diào)用SilentNM服務后,進入NM-Passive狀態(tài);節(jié)點調(diào)用TalkNM服務后,進入NMActive狀態(tài)。
各狀態(tài)之間的轉(zhuǎn)換如圖4所示。
2.1.4 睡眠與喚醒
在該車型設計中,參與直接網(wǎng)絡管理的節(jié)點包括D、E、F、G,此4個節(jié)點形成邏輯環(huán),發(fā)生本地或遠程事件時,節(jié)點恢復通行,整個邏輯環(huán)被喚醒,邏輯環(huán)的睡眠過程如下。
圖4 NM網(wǎng)絡管理狀態(tài)轉(zhuǎn)換
1)網(wǎng)段中某一節(jié)點判斷自身睡眠條件滿足,則發(fā)送“網(wǎng)段中某一節(jié)點判斷自等于1的Ring管理報文。
2)其后繼節(jié)點接收該Ring報文后,判斷自身是否滿足睡眠條件:若滿足,則將自身要發(fā)送的Ring報文中的“Sleep.Ind”位也置1;反之,則“Sleep.Ind”位仍為0。
3)其余節(jié)點也按照2)規(guī)則傳遞Ring報文。
4)待某一個節(jié)點監(jiān)測到邏輯環(huán)中所有節(jié)點都將“待某一個節(jié)點監(jiān)測到邏位置為1時,該節(jié)點發(fā)送“,該節(jié)點發(fā)送監(jiān)測到邏等于1的Ring報文。
5)監(jiān)測到“Sleep.ACK”位置為1的Ring報文后,邏輯環(huán)中的所有節(jié)點設置TWaitBusSleep定時器。
6)TWaitBusSleep期間節(jié)點進入準備睡眠狀態(tài),在此期間如果沒有收到Sleep.Ind=0的網(wǎng)絡管理報文并且未發(fā)生本地喚醒事件,則節(jié)點將進入睡眠狀態(tài)。
7)如果在TWaitBusSleep期間接收到Sleep.Ind=0的網(wǎng)絡管理報文或發(fā)生本地喚醒事件,節(jié)點退出準備睡眠狀態(tài),重新進入網(wǎng)絡管理復位狀態(tài)。
2.2 間接網(wǎng)絡管理
1)間接網(wǎng)絡管節(jié)點狀態(tài)IGN15供電的系統(tǒng)采用間接網(wǎng)絡管理方式,在該車型設計中,采用間接網(wǎng)絡管理的節(jié)點為A、B、C。參與間接網(wǎng)絡管理的節(jié)點共有3種工作狀態(tài):網(wǎng)絡激活狀態(tài)、網(wǎng)絡啟動狀態(tài)和網(wǎng)絡非激活狀態(tài)。節(jié)點處于激活狀態(tài)下,按功能需求發(fā)送應用報文,而一旦進入非激活狀態(tài),則不允許發(fā)送應用報文。
2)間接網(wǎng)絡管理實現(xiàn)參與間接網(wǎng)絡管理的系統(tǒng)根據(jù)自己的功能需要,檢測網(wǎng)絡中關鍵CAN報文。關鍵報文選取發(fā)送節(jié)點發(fā)給接收節(jié)點所有報文中周期最小的報文。當接收節(jié)點關鍵報文周期的5倍時間內(nèi)沒有檢測到該報文,則節(jié)點認為被檢測節(jié)點已脫離整車網(wǎng)絡。當沒有激活的觸發(fā)事件存在時,節(jié)點停止對其他節(jié)點檢測,系統(tǒng)自動進入睡眠狀態(tài)。節(jié)點重新上電后,立刻脫離睡眠狀態(tài),進入激活模式[3]。
該車型在設計過程中,網(wǎng)絡管理驗證主要包括3個方面:臺架集成測試、實車集成測試和耐久車網(wǎng)絡集成測試。每項測試中均包括了直接網(wǎng)絡管理測試和間接網(wǎng)絡管理測試。其中直接網(wǎng)絡管理測試主要檢驗參與直接網(wǎng)絡管理節(jié)點邏輯環(huán)建立及睡眠喚醒等性能,間接網(wǎng)絡管理主要測試網(wǎng)絡啟動和關閉時網(wǎng)絡基本性能[4]。本文以直接網(wǎng)絡管理測試為例,講解在該車型設計時,網(wǎng)絡管理驗證測試的方法和步驟。
直接網(wǎng)絡管理測試包括:網(wǎng)絡建環(huán)能力、邏輯環(huán)穩(wěn)定性、總線睡眠、總線睡眠保持和總線喚醒。
測試設備包括:帶CANoe軟件計算機、整車診斷口連接線束、CANoe工具(CANCase、CANCard)。整車集成測試電路圖如圖5所示。測試方法及步驟如下。
圖5 網(wǎng)絡管理測試電路
1)整車上電到ON擋,啟動CANoe。通過整車OBD接口,讀取整車CAN網(wǎng)絡報文,篩選出網(wǎng)絡管理報文,驗證參與直接網(wǎng)絡管理節(jié)點D、E、F、G所發(fā)網(wǎng)絡管理報文是否建立一個完整的邏輯環(huán)。
2)用CANoe軟件建立3個模擬節(jié)點,將此3個模擬節(jié)點加入網(wǎng)絡中,驗證是否能重新建立邏輯環(huán);正常建立后,撤銷3個模擬節(jié)點,驗證邏輯環(huán)是否恢復正常。
3)整車下電到OFF擋,關閉車門及后備廂門,等待車輛睡眠,查看節(jié)點網(wǎng)絡管理報文中是否將“,等待車輛睡眠,查看節(jié)點網(wǎng)絡管理置1,以及總線上出現(xiàn)Sleep.ACK=1的Ring報文之后,所有節(jié)點停止發(fā)送報文。
4)記錄整車從下電OFF擋到整車睡眠的時間。
5)通過遠程喚醒和本地喚醒2種方式喚醒網(wǎng)絡。核查節(jié)點被喚醒后,是否發(fā)送Alive報文,并喚醒整個網(wǎng)絡,之后正常發(fā)送Ring報文。
邏輯環(huán)穩(wěn)定性測試結(jié)果如圖6所示。
The Design and Test Verification of Vehicle CAN Network M anagement Based on OSEK Standard
CAI Ying,WANG Yong-feng,YUE Yi-e,YANG Li-sha
(Electrical and Electronic Department,Dongfeng Motor Corporation Technical Centre,Wuhan 430058)
In order to better manage network resources and reduce the energy consumptions of CAN controllers after the vehicle is stationary,when design the network of whole vehicle,it is necessary to take the CAN network management into consideration.OSEK network management standards could effectively ensure that all nodes are in real-time,reliable communication,which satisfies the requirements on real-time and reliability for CAN network.By applying OSEK network management to the design of vehicle CAN network,it can allocation network resources effectively,coordinate all controllers to work together efficiently,and supervise the status of each nodes in real-time. The practical application indicates that OSEK network management in the vehicle CAN network is capable of coordinating the work,monitoring network status of vehicle operation and reducing energy consumption.At last,a valid method of testing is designed to verify the effectiveness of the vehicle network management.Test results show that the network management design can meet the requirements of the vehicle CAN network performance.
OSEK;network management;test&verification
U463.6
A
1003-8639(2016)08-0038-04
2016-02-02;
2016-03-08
蔡營,男,碩士,輔助工程師,主要研究方向為汽車CAN網(wǎng)絡設計及測試。