李 芳,宋 偉,陳燕梅
(南京依維柯汽車有限公司產(chǎn)品工程部,江蘇 南京 210028)
OSEK(德文:OffeneSystemeand deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)體系是1993年德國汽車工業(yè)界提出的,其含義是汽車電子開放式系統(tǒng)及其接口。這個體系的最早倡導(dǎo)者有:寶馬、博世、戴姆勒克萊斯勒、歐寶、西門子、大眾和卡爾魯斯厄大學(xué)的工業(yè)信息技術(shù)研究所。法國的汽車制造商標(biāo)致和雷諾于1994年加入了OSEK體系,并將法國汽車工業(yè)使用的汽車分布式運行系統(tǒng) (Vehicle Distributed Ex-ecutivr,VDX)也納入這一體系。
在1995年召開的研討會上,眾多汽車廠商對OSEK和VDX的認(rèn)識達(dá)成了共識,產(chǎn)生了OSEK/VDX規(guī)范,OSEK網(wǎng)絡(luò)管理 (OSEK Net Management,OSEK NM) 只是OSEK/VDX規(guī)范中的一部分[1], 以下是基于南京依維柯車型對OSEK管理進(jìn)行闡述。
PD2014 CAN網(wǎng)絡(luò)管理有兩種實現(xiàn)機(jī)制,即直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理,節(jié)點清單見表1,網(wǎng)絡(luò)拓?fù)鋱D如圖1所示。其中ECU根據(jù)其電源情況可分為兩種類型,包括點火鑰匙控制型 (+15電節(jié)點)和常電型 (+30電節(jié)點)。
+15節(jié)點是指在點火鑰匙處于非OFF檔時ECU獲得電源,OFF檔時ECU失去電源。+15節(jié)點的網(wǎng)絡(luò)管理采用間接網(wǎng)絡(luò)管理策略。
表1 節(jié)點清單
+30節(jié)點是指ECU電源不受點火鑰匙控制,點火鑰匙處于OFF檔時進(jìn)入睡眠狀態(tài)。+30節(jié)點網(wǎng)絡(luò)管理采用直接網(wǎng)絡(luò)管理策略。
+15節(jié)點采用間接網(wǎng)絡(luò)管理策略,在PD2014車型上采用間接網(wǎng)絡(luò)管理的節(jié)點為:EDC,TCU,IMMO,行駛記錄儀,安全氣囊模塊,ESP。
2.1.1 網(wǎng)絡(luò)啟動
在網(wǎng)絡(luò)管理中+15節(jié)點具有3種狀態(tài):網(wǎng)絡(luò)非激活狀態(tài) (Network inactive)、網(wǎng)絡(luò)啟動狀態(tài) (Network startup)、 網(wǎng)絡(luò)激活狀態(tài) (Network active)。 3種狀態(tài)之間的轉(zhuǎn)換見圖2。
網(wǎng)絡(luò)非激活狀態(tài)向網(wǎng)絡(luò)激活狀態(tài)的轉(zhuǎn)換由IGN OFF到IGN ON的改變引起的。一旦進(jìn)入網(wǎng)絡(luò)啟動狀態(tài),節(jié)點須開啟從CAN總線上接收報文的功能;一旦進(jìn)入網(wǎng)絡(luò)激活狀態(tài),節(jié)點須立刻開始傳輸指定的周期性應(yīng)用報文。
2.1.2 網(wǎng)絡(luò)非激活狀態(tài)
網(wǎng)絡(luò)激活狀態(tài)向網(wǎng)絡(luò)非激活狀態(tài)的轉(zhuǎn)換由IGN ON到IGN OFF的改變引起。在網(wǎng)絡(luò)非激活狀態(tài)下,節(jié)點不允許傳輸應(yīng)用報文。網(wǎng)絡(luò)激活狀態(tài)到網(wǎng)絡(luò)非激活狀態(tài)的轉(zhuǎn)換時間 (tShutdownIGN)見表2。
表2 間接網(wǎng)絡(luò)管理定時參數(shù)
直接網(wǎng)絡(luò)管理是一種自組織形式的網(wǎng)絡(luò)管理,網(wǎng)絡(luò)節(jié)點中沒有主從之分,每個節(jié)點都被網(wǎng)絡(luò)中其他節(jié)點監(jiān)控,同時該節(jié)點也監(jiān)控網(wǎng)絡(luò)中的其他節(jié)點,在PD2014車型上采用直接網(wǎng)絡(luò)管理的節(jié)點為:儀表和BCM。
2.2.1 邏輯環(huán)
在直接網(wǎng)絡(luò)管理中,網(wǎng)段中節(jié)點通過節(jié)點地址的先后順序依次發(fā)送網(wǎng)絡(luò)管理報文,這種發(fā)送順序在邏輯上形成一種結(jié)構(gòu),稱之為邏輯環(huán)。邏輯環(huán)中每一個節(jié)點都具備一個前任者和后繼者。每個節(jié)點的前任者和后繼者是通過節(jié)點地址的數(shù)值確定的。邏輯環(huán)中,節(jié)點地址大小的關(guān)系是:前任節(jié)點<本地節(jié)點<后繼節(jié)點。每個節(jié)點接收到的來自前任者指向自己的環(huán)報文,之后向自己的后繼者發(fā)送出自己的環(huán)報文。地址最大的節(jié)點的后繼者是地址最小的節(jié)點。這樣,有規(guī)律地向各自的邏輯后繼者發(fā)送同步環(huán)報文,以此來監(jiān)控已建立的環(huán),實現(xiàn)了直接網(wǎng)絡(luò)管理功能,如圖3所示。PD2014車型的邏輯環(huán)如圖4所示,儀表的地址為0x17,BCM的地址為0x21,儀表是BCM的前任者,BCM是儀表的后繼者。
2.2.2 網(wǎng)絡(luò)管理報文類型
1)Ring報文 在穩(wěn)定的邏輯環(huán)形成后,環(huán)中的每個節(jié)點在接收到其前任的Ring報文后,向后繼者發(fā)送自己的Ring報文。
2)Alive報文 網(wǎng)絡(luò)中的節(jié)點初始化完成后,發(fā)送Alive報文,用于表明有新的節(jié)點加入到網(wǎng)絡(luò)的邏輯環(huán)中。
3)LimpHome報文 當(dāng)接收/發(fā)送錯誤計數(shù)器超過其閾值或總線出現(xiàn)嚴(yán)重錯誤時,節(jié)點進(jìn)入NMLimpHome狀態(tài),并周期發(fā)送LimpHome報文。
2.2.3 網(wǎng)絡(luò)管理報文格式
節(jié)點的網(wǎng)絡(luò)管理報文將和PGN、數(shù)據(jù)長度一起發(fā)送。網(wǎng)絡(luò)管理報文的類型都可以通過標(biāo)志位來識別,此標(biāo)志位是網(wǎng)絡(luò)管理CAN數(shù)據(jù)幀數(shù)據(jù)場的一部分。表3定義了網(wǎng)絡(luò)管理報文的基本參數(shù)。表4定義了網(wǎng)絡(luò)管理CAN數(shù)據(jù)幀的數(shù)據(jù)場的格式。
表3 網(wǎng)絡(luò)管理報文基本參數(shù)
以PD2014車型儀表為例,其網(wǎng)絡(luò)管理報文格式見表5。
表5 儀表報文格式
2.2.4 直接網(wǎng)絡(luò)管理定時參數(shù) (表6)
表6 直接網(wǎng)絡(luò)管理定時參數(shù)
2.2.5 直接網(wǎng)絡(luò)管理策略
網(wǎng)絡(luò)管理策略規(guī)定了節(jié)點網(wǎng)絡(luò)管理報文的時序流程,其目的是建立和維護(hù)節(jié)點之間的聯(lián)系。網(wǎng)絡(luò)管理策略只是提供網(wǎng)絡(luò)的狀態(tài)信息,而不同狀態(tài)的控制方法由應(yīng)用程序負(fù)責(zé)。網(wǎng)絡(luò)中各個節(jié)點狀態(tài)見表7,狀態(tài)之間的轉(zhuǎn)換關(guān)系見圖5。
1)睡眠狀態(tài) 當(dāng)睡眠條件滿足時,節(jié)點需要進(jìn)入睡眠狀態(tài)。通過對Ring報文中的:“Sleep indication=1”和 “Sleep acknowledge=1”來切換到睡眠狀態(tài)。
睡眠協(xié)商通過以下步驟完成 (圖6):①睡眠條件滿足后,下一個要發(fā)送的Ring報文中的位Sleepindication置1;②當(dāng)Ring報文在邏輯環(huán)中傳遞一周,并且所有接收Ring報文中的位Sleep indication都被置1,那么最先發(fā)出Sleep indication=1 Ring報文的節(jié)點發(fā)送Ring報文,并將位Sleep acknowledge置1;③所有接收到Sleep acknowledge=1的Ring報文的節(jié)點停止發(fā)送任何應(yīng)用報文,所有節(jié)點進(jìn)入到睡眠狀態(tài), 啟動定時器TWaitBusSleep, 在TWaitBusSleep期間, 沒有網(wǎng)絡(luò)啟動條件發(fā)生,當(dāng)TWaitBusSleep后總線進(jìn)入非激活狀態(tài)。
表7 節(jié)點狀態(tài)
2)網(wǎng)絡(luò)啟動 每個節(jié)點的啟動順序都一樣,見圖7。
圖7表示了節(jié)點A發(fā)生了本地喚醒之后的網(wǎng)絡(luò)啟動順序。
①在tNwStartupLocal,A時間,節(jié)點A能夠接收數(shù)據(jù)。為了喚醒網(wǎng)絡(luò)上的其它節(jié)點,節(jié)點A發(fā)送激活報文。此喚醒報文開始了節(jié)點B和節(jié)點C的初始化。只要節(jié)點A沒有接收到其它節(jié)點的CAN協(xié)議應(yīng)答,節(jié)點A的CAN控制器將重復(fù)發(fā)送激活報文 (總線負(fù)載為100%),直到被別的節(jié)點應(yīng)答。
②在節(jié)點A第一次發(fā)送激活報文之后的tNwStartupRemote,B時間,節(jié)點B能接收應(yīng)用報文。節(jié)點B接收激活報文,同時CAN控制器進(jìn)行應(yīng)答。節(jié)點A的CAN控制器停止重復(fù)發(fā)送激活報文。
③節(jié)點C比節(jié)點B的啟動過程要慢。它沒有接收到節(jié)點A的激活報文,在節(jié)點A第一次發(fā)送的激活報文之后的tNwStartupRemote,C時間,節(jié)點C也可以接收應(yīng)用報文。
④節(jié)點B在tNwStartupRemote,B時間, 節(jié)點C在tNwStartupRemote,C時間分別發(fā)送各自的激活報文,但是這些報文不影響網(wǎng)絡(luò)的啟動行為。
⑤tNwActive,A時間之后,節(jié)點A從網(wǎng)絡(luò)啟動狀態(tài)轉(zhuǎn)移到網(wǎng)絡(luò)激活狀態(tài)。這是節(jié)點A最早可以發(fā)送應(yīng)用報文的時間,因為至少在此時,所有的節(jié)點能夠接收應(yīng)用報文。此時,節(jié)點A允許發(fā)送包含導(dǎo)致網(wǎng)絡(luò)喚醒的信號信息的應(yīng)用報文。
3)激活狀態(tài) 在激活狀態(tài)下,節(jié)點主要在“邏輯環(huán)”中進(jìn)行Ring報文的接收和發(fā)送。
4)跛行狀態(tài) 跛行狀態(tài)表明網(wǎng)絡(luò)通信存在故障。進(jìn)入跛行狀態(tài)的前提條件:NM報文發(fā)送失??;在TMax時間內(nèi)沒有收到有效的Ring報文。
當(dāng)以上情況的發(fā)生使得網(wǎng)絡(luò)管理計數(shù)器NMRxcount、NMTxcount的數(shù)值超過各自的閾值NNm-RxLimit、NNmTxLimit時,節(jié)點進(jìn)入跛行狀態(tài)。跛行狀態(tài)下,節(jié)點以Terror周期地發(fā)送LimpHome報文,使得網(wǎng)絡(luò)上的所有節(jié)點仍然能夠監(jiān)聽到它。接收到LimpHome報文的節(jié)點應(yīng)更新自身網(wǎng)絡(luò)的LimpHome配置。當(dāng)總線進(jìn)入睡眠或接收到任意一條NM報文后,LimpHome狀態(tài)結(jié)束。
PD2014網(wǎng)絡(luò)管理測試主要包括:3輪臺架測試,2輪labcar集成測試,2輪在車測試,1輪EMC測試,4輪道路試驗。
每輪測試包括間接網(wǎng)絡(luò)管理測試和直接網(wǎng)絡(luò)管理測試。間接網(wǎng)絡(luò)管理測試包括網(wǎng)絡(luò)啟動性能測試、網(wǎng)絡(luò)停止性能測試。直接網(wǎng)絡(luò)管理測試包括正常網(wǎng)絡(luò)管理通信測試、網(wǎng)絡(luò)喚醒和睡眠測試、電源電壓情況測試、網(wǎng)絡(luò)啟動測試、網(wǎng)絡(luò)關(guān)閉測試、跛行狀態(tài)下節(jié)點收發(fā)能力測試、網(wǎng)絡(luò)管理配置測試。下面以直接網(wǎng)絡(luò)管理中的睡眠測試為例,介紹網(wǎng)絡(luò)管理臺架測試的方法。
1)測試設(shè)備 筆記本電腦PC,CANcardXL(包含CANcab),插接件若干 (DB9轉(zhuǎn)接頭、OBD-DB9轉(zhuǎn)接頭等),120Ω終端電阻 (2個),可調(diào)電源。
2)測試環(huán)境 ①如果待測節(jié)點未集成終端電阻,則電路需要連接 圖8中 “1” 和“2”終端網(wǎng)絡(luò);②如果待測節(jié)點集成了120 Ω的終端電阻,則電路只需要連接圖8中 “1” 終端網(wǎng)絡(luò)。
3)測試步驟 ①CANoe建立3個具備網(wǎng)絡(luò)管理功能的虛擬節(jié)點;②啟動CANoe,使虛擬節(jié)點在線;③本地事件觸發(fā)DUT通信;④CANoe監(jiān)測總線報文,查看DUT是否和虛擬節(jié)點建立穩(wěn)定邏輯環(huán);⑤滿足DUT睡眠條件;⑥等待2000ms;⑦CANoe監(jiān)測總線上的報文,查看DUT是否發(fā)送網(wǎng)絡(luò)管理報文將 “SleepIndication” 位置 “1”。
4)評價指標(biāo) DUT發(fā)送SI置1的Ring報文。
本文介紹了OSEK網(wǎng)絡(luò)管理原理,并對南京依維柯PD2014車型網(wǎng)絡(luò)管理實現(xiàn)機(jī)制進(jìn)行了闡述。對深入理解OSEK網(wǎng)絡(luò)管理和將OSEK網(wǎng)管應(yīng)用到具體的工程項目中,以及研究或開發(fā)特定要求的總線OSEK網(wǎng)絡(luò)系統(tǒng)具有指導(dǎo)意義。
[1]熊毅.基于OSEK規(guī)范的網(wǎng)絡(luò)管理的研究與改進(jìn)[J].計算機(jī)應(yīng)用研究,2007,24(9):217-220.
[2]張利.OSEK網(wǎng)絡(luò)管理在汽車CAN系統(tǒng)中的研究與實現(xiàn)[J].電子測量與儀器學(xué)報, 2011, 25 (6): 522-527.
[3]程安宇.OSEK/VDX直接網(wǎng)絡(luò)管理一致性測試方法設(shè)計[J]. 計算機(jī)技術(shù)與應(yīng)用, 2012, 38 (4): 133-136.