李 芳,宋 偉,陳燕梅
(南京依維柯汽車有限公司產品工程部,江蘇 南京 210028)
OSEK(德文:OffeneSystemeand deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)體系是1993年德國汽車工業界提出的,其含義是汽車電子開放式系統及其接口。這個體系的最早倡導者有:寶馬、博世、戴姆勒克萊斯勒、歐寶、西門子、大眾和卡爾魯斯厄大學的工業信息技術研究所。法國的汽車制造商標致和雷諾于1994年加入了OSEK體系,并將法國汽車工業使用的汽車分布式運行系統 (Vehicle Distributed Ex-ecutivr,VDX)也納入這一體系。
在1995年召開的研討會上,眾多汽車廠商對OSEK和VDX的認識達成了共識,產生了OSEK/VDX規范,OSEK網絡管理 (OSEK Net Management,OSEK NM) 只是OSEK/VDX規范中的一部分[1], 以下是基于南京依維柯車型對OSEK管理進行闡述。
PD2014 CAN網絡管理有兩種實現機制,即直接網絡管理和間接網絡管理,節點清單見表1,網絡拓撲圖如圖1所示。其中ECU根據其電源情況可分為兩種類型,包括點火鑰匙控制型 (+15電節點)和常電型 (+30電節點)。
+15節點是指在點火鑰匙處于非OFF檔時ECU獲得電源,OFF檔時ECU失去電源。+15節點的網絡管理采用間接網絡管理策略。

表1 節點清單
+30節點是指ECU電源不受點火鑰匙控制,點火鑰匙處于OFF檔時進入睡眠狀態。+30節點網絡管理采用直接網絡管理策略。
+15節點采用間接網絡管理策略,在PD2014車型上采用間接網絡管理的節點為:EDC,TCU,IMMO,行駛記錄儀,安全氣囊模塊,ESP。
2.1.1 網絡啟動
在網絡管理中+15節點具有3種狀態:網絡非激活狀態 (Network inactive)、網絡啟動狀態 (Network startup)、 網絡激活狀態 (Network active)。 3種狀態之間的轉換見圖2。
網絡非激活狀態向網絡激活狀態的轉換由IGN OFF到IGN ON的改變引起的。一旦進入網絡啟動狀態,節點須開啟從CAN總線上接收報文的功能;一旦進入網絡激活狀態,節點須立刻開始傳輸指定的周期性應用報文。
2.1.2 網絡非激活狀態
網絡激活狀態向網絡非激活狀態的轉換由IGN ON到IGN OFF的改變引起。在網絡非激活狀態下,節點不允許傳輸應用報文。網絡激活狀態到網絡非激活狀態的轉換時間 (tShutdownIGN)見表2。

表2 間接網絡管理定時參數
直接網絡管理是一種自組織形式的網絡管理,網絡節點中沒有主從之分,每個節點都被網絡中其他節點監控,同時該節點也監控網絡中的其他節點,在PD2014車型上采用直接網絡管理的節點為:儀表和BCM。
2.2.1 邏輯環
在直接網絡管理中,網段中節點通過節點地址的先后順序依次發送網絡管理報文,這種發送順序在邏輯上形成一種結構,稱之為邏輯環。邏輯環中每一個節點都具備一個前任者和后繼者。每個節點的前任者和后繼者是通過節點地址的數值確定的。邏輯環中,節點地址大小的關系是:前任節點<本地節點<后繼節點。每個節點接收到的來自前任者指向自己的環報文,之后向自己的后繼者發送出自己的環報文。地址最大的節點的后繼者是地址最小的節點。這樣,有規律地向各自的邏輯后繼者發送同步環報文,以此來監控已建立的環,實現了直接網絡管理功能,如圖3所示。PD2014車型的邏輯環如圖4所示,儀表的地址為0x17,BCM的地址為0x21,儀表是BCM的前任者,BCM是儀表的后繼者。
2.2.2 網絡管理報文類型
1)Ring報文 在穩定的邏輯環形成后,環中的每個節點在接收到其前任的Ring報文后,向后繼者發送自己的Ring報文。
2)Alive報文 網絡中的節點初始化完成后,發送Alive報文,用于表明有新的節點加入到網絡的邏輯環中。
3)LimpHome報文 當接收/發送錯誤計數器超過其閾值或總線出現嚴重錯誤時,節點進入NMLimpHome狀態,并周期發送LimpHome報文。
2.2.3 網絡管理報文格式
節點的網絡管理報文將和PGN、數據長度一起發送。網絡管理報文的類型都可以通過標志位來識別,此標志位是網絡管理CAN數據幀數據場的一部分。表3定義了網絡管理報文的基本參數。表4定義了網絡管理CAN數據幀的數據場的格式。

表3 網絡管理報文基本參數
以PD2014車型儀表為例,其網絡管理報文格式見表5。

表5 儀表報文格式
2.2.4 直接網絡管理定時參數 (表6)

表6 直接網絡管理定時參數
2.2.5 直接網絡管理策略
網絡管理策略規定了節點網絡管理報文的時序流程,其目的是建立和維護節點之間的聯系。網絡管理策略只是提供網絡的狀態信息,而不同狀態的控制方法由應用程序負責。網絡中各個節點狀態見表7,狀態之間的轉換關系見圖5。
1)睡眠狀態 當睡眠條件滿足時,節點需要進入睡眠狀態。通過對Ring報文中的:“Sleep indication=1”和 “Sleep acknowledge=1”來切換到睡眠狀態。
睡眠協商通過以下步驟完成 (圖6):①睡眠條件滿足后,下一個要發送的Ring報文中的位Sleepindication置1;②當Ring報文在邏輯環中傳遞一周,并且所有接收Ring報文中的位Sleep indication都被置1,那么最先發出Sleep indication=1 Ring報文的節點發送Ring報文,并將位Sleep acknowledge置1;③所有接收到Sleep acknowledge=1的Ring報文的節點停止發送任何應用報文,所有節點進入到睡眠狀態, 啟動定時器TWaitBusSleep, 在TWaitBusSleep期間, 沒有網絡啟動條件發生,當TWaitBusSleep后總線進入非激活狀態。

表7 節點狀態
2)網絡啟動 每個節點的啟動順序都一樣,見圖7。
圖7表示了節點A發生了本地喚醒之后的網絡啟動順序。
①在tNwStartupLocal,A時間,節點A能夠接收數據。為了喚醒網絡上的其它節點,節點A發送激活報文。此喚醒報文開始了節點B和節點C的初始化。只要節點A沒有接收到其它節點的CAN協議應答,節點A的CAN控制器將重復發送激活報文 (總線負載為100%),直到被別的節點應答。
②在節點A第一次發送激活報文之后的tNwStartupRemote,B時間,節點B能接收應用報文。節點B接收激活報文,同時CAN控制器進行應答。節點A的CAN控制器停止重復發送激活報文。
③節點C比節點B的啟動過程要慢。它沒有接收到節點A的激活報文,在節點A第一次發送的激活報文之后的tNwStartupRemote,C時間,節點C也可以接收應用報文。
④節點B在tNwStartupRemote,B時間, 節點C在tNwStartupRemote,C時間分別發送各自的激活報文,但是這些報文不影響網絡的啟動行為。
⑤tNwActive,A時間之后,節點A從網絡啟動狀態轉移到網絡激活狀態。這是節點A最早可以發送應用報文的時間,因為至少在此時,所有的節點能夠接收應用報文。此時,節點A允許發送包含導致網絡喚醒的信號信息的應用報文。
3)激活狀態 在激活狀態下,節點主要在“邏輯環”中進行Ring報文的接收和發送。
4)跛行狀態 跛行狀態表明網絡通信存在故障。進入跛行狀態的前提條件:NM報文發送失敗;在TMax時間內沒有收到有效的Ring報文。
當以上情況的發生使得網絡管理計數器NMRxcount、NMTxcount的數值超過各自的閾值NNm-RxLimit、NNmTxLimit時,節點進入跛行狀態。跛行狀態下,節點以Terror周期地發送LimpHome報文,使得網絡上的所有節點仍然能夠監聽到它。接收到LimpHome報文的節點應更新自身網絡的LimpHome配置。當總線進入睡眠或接收到任意一條NM報文后,LimpHome狀態結束。
PD2014網絡管理測試主要包括:3輪臺架測試,2輪labcar集成測試,2輪在車測試,1輪EMC測試,4輪道路試驗。
每輪測試包括間接網絡管理測試和直接網絡管理測試。間接網絡管理測試包括網絡啟動性能測試、網絡停止性能測試。直接網絡管理測試包括正常網絡管理通信測試、網絡喚醒和睡眠測試、電源電壓情況測試、網絡啟動測試、網絡關閉測試、跛行狀態下節點收發能力測試、網絡管理配置測試。下面以直接網絡管理中的睡眠測試為例,介紹網絡管理臺架測試的方法。
1)測試設備 筆記本電腦PC,CANcardXL(包含CANcab),插接件若干 (DB9轉接頭、OBD-DB9轉接頭等),120Ω終端電阻 (2個),可調電源。
2)測試環境 ①如果待測節點未集成終端電阻,則電路需要連接 圖8中 “1” 和“2”終端網絡;②如果待測節點集成了120 Ω的終端電阻,則電路只需要連接圖8中 “1” 終端網絡。
3)測試步驟 ①CANoe建立3個具備網絡管理功能的虛擬節點;②啟動CANoe,使虛擬節點在線;③本地事件觸發DUT通信;④CANoe監測總線報文,查看DUT是否和虛擬節點建立穩定邏輯環;⑤滿足DUT睡眠條件;⑥等待2000ms;⑦CANoe監測總線上的報文,查看DUT是否發送網絡管理報文將 “SleepIndication” 位置 “1”。
4)評價指標 DUT發送SI置1的Ring報文。
本文介紹了OSEK網絡管理原理,并對南京依維柯PD2014車型網絡管理實現機制進行了闡述。對深入理解OSEK網絡管理和將OSEK網管應用到具體的工程項目中,以及研究或開發特定要求的總線OSEK網絡系統具有指導意義。
[1]熊毅.基于OSEK規范的網絡管理的研究與改進[J].計算機應用研究,2007,24(9):217-220.
[2]張利.OSEK網絡管理在汽車CAN系統中的研究與實現[J].電子測量與儀器學報, 2011, 25 (6): 522-527.
[3]程安宇.OSEK/VDX直接網絡管理一致性測試方法設計[J]. 計算機技術與應用, 2012, 38 (4): 133-136.