陳曉霞,路 影,陳文強,潘之杰,趙福全
(浙江吉利汽車研究院有限公司,浙江 杭州 311228)
為滿足日益龐大復雜的汽車電子控制軟件的開發需要,1993年歐洲汽車工業界聯合推出了OSEK/VDX(Open systems and the corresponding interfaces for automotive e1ectronics/Vehic1e distributed executive)標準[1]。該標準應用在模塊和靜態實時操作系統上,由主要的汽車制造商和供應商,研究機構以及軟件開發商所發起。OSEK,是指德國的汽車電子類開放系統和對應接口標準;VDX,是指汽車分布式執行標準。OSEK/VDX標準從實時操作系統、軟件接口、通信和網絡管理等方面對汽車的電子控制軟件開發平臺作了較為全面的定義與規定。
在OSEK/VDX的合作領域內,NM (Network Management system,網絡管理系統)提供標準化功能。它通過標準化的接口確保網絡中的功能,其首要任務是確保ECU (E1ectronic Contro1 Units,電子控制單元)通信網絡的安全性和可靠性。OSEK/VDX標準所提出的網絡管理機制 (OSEK/VDX NM),主要是對網絡節點的工作狀態的實時監控。它提供了兩種可選的監控機制:直接NM和間接NM。這兩種監控機制相比,間接NM要比直接NM占用的資源少,而且能夠提供精確的實時網絡管理信息。目前間接NM的使用已越來越廣泛,所以,本文就選用間接NM進行具體闡釋。
間接網絡管理使用周期性的應用報文監控來決定連接到網絡上的節點的狀態,它不使用專用的網絡管理報文。其節點狀態分為發送者和接收者2種狀態。其中發送者狀態中又包含節點非靜默和節點靜默2種狀態;接收者狀態中包含節點在線和節點離線2種狀態。另外還有2個擴展的節點狀態,即擴展的發送者狀態和擴展的接收者狀態。
間接網絡管理的配置將所有由NM決定的被監控節點的節點狀態組成整體,它有目標配置和擴展配置。
為評估節點狀態和網絡狀況,間接網絡管理提供3種非專用的監控機制:①傳輸;②接收;③故障信號。OSEK間接網絡管理的傳輸和接收監控基于兩種可能的超時檢測機制:所有報文被全局超時TOB監控;每條報文被自身專用的超時監控。
OSEK/VDX間接NM由NMOff(NM關閉)、 NMOn(NM開啟)2個基本狀態組成。NMOn狀態包括NMBusS1eep(NM睡眠模式)、NMAwake(NM激活狀態)兩個子狀態。NMAwake狀態包括NMLimpHome(NM節點自身故障處理)、NMNorma1(NM節點的正常狀態)、 NNWaitBusS1eep(NM節點準備進入BusS1eep模式的等待狀態)3個子狀態。
遠程車載定位設備的故障檢測是無線通信技術、互聯網技術和電子設備故障自檢的結合。為實時監控車載網絡中的節點,我們設計并實現了一種OSEK/VDX標準的間接網絡管理的車載NM系統,并將其應用到控制器區域網絡 (CAN總線)的車載網絡中[2]。車載網關和網絡節點由CAN總線連接,使用CAN2.0B協議通信。車載網關負責收集網絡節點相應的配置信息,并通過IPV6的無線網絡將其發送至遠程故障診斷服務器。在服務器分析完故障信息,并且得出相應的處理信息后,再將處理信息反饋回車載網關,同時給網絡節點發送相應的執行操作信息。車載網絡是由總線將各個網絡節點連接起來的總線型網絡,而邏輯環路定義的通信序列是獨立于該網絡結構的。將惟一的標識符Receiver(接收者)分配給環路上的每個節點,同時,每個節點有惟一的一個Log_Successor(邏輯后繼),邏輯上的第一個節點是邏輯上最后一個節點的邏輯后繼。節點收到報文時,需根據邏輯后繼的更改機制和跳行機制來調整這2個參數。
本文所設計的車載NM系統,首先是由車載網關通過CAN總線收集各網絡節點的故障信息,再通過IPV6無線網絡上傳至遠程故障診斷器,并將得到的故障處理信息下發至有關節點,從而實現車載CAN網絡與遠程故障診斷服務器的信息交互[3]。作為檢測中心程序的服務器端時,實時通信服務器程序打開一個服務偵聽端口,偵聽來自檢測中心程序發送的連接請求,接受連接。連接建好后,它就可以接收檢測中心程序發送的命令數據包。同時,將命令數據包轉發給相應的通信車載設備。這個系統的實現,首先應該形成穩定的邏輯環路通信,而邏輯環路穩定的通信序列是按網絡節點的標識符由小到大的順序依次排列的。若某節點接收到的報文的源節點位于該節點與其邏輯后繼的通信序列之間,則該節點需將邏輯后繼更改為報文的源節點。否則,節點的邏輯后繼無需加以更改。穩定的邏輯環路通信建立以后,如果某一網絡節點由于某種原因不能發送或接收ring報文,而其它節點在計時器Tmax(2個ring報文之間傳送的最大時間)到期后認為該節點離線,從而進入子狀態NMReset(NM節點重置)。
車載網絡對于網絡管理機制的實時性有著極為嚴格的要求,因此,網絡中的節點啟動后應該盡快建立邏輯環路。需要說明的是,新的網絡節點的加入應建立在穩定的邏輯環路通信已實現的基礎上。然而,對于新的網絡節點加入時機,仍需討論。間接網絡管理的具體狀態轉換如圖1所示。
本系統的實現主要以項目的實際需求和現有的硬件設備為基礎。這里主要是采用無需OSEK OS(OSEK操作系統)支持的間接NM的邏輯環路。
假定有3個節點,即節點1、2、3依次上線,待節點1、2建立了穩定的邏輯環路通信的基礎上,節點2接收到Destination(目標源,以下簡稱D)=2的ring報文后,節點3發送D=3的a1ive報文申請加入邏輯環路通信。下面是以3個節點的網絡為例,來說明穩定的邏輯環路通信是如何實現的。
其具體形成過程如圖2所示。節點1和節點2同時上線,由節點1先發送一個ring報文并在Tmax到期前到達,這時節點2發送的報文在其TTyp(2個ring報文之間傳送的標準時間)到期前到達,然后在節點1和節點2的報文都發送成功以后,這時節點3就開始上線并發送a1ive報文。節點3在上電啟動后先等待,直到節點1發送的D=2的ring報文到達后才發送D=3的a1ive報文,接著就進入其子狀態NMNorma1。
OSEK間接網絡管理的靜態狀態檢測算法是靈活的、可分級的。它通過在系統產生時來設置固定的De1taInc和De1taDec,其允許對于靜態狀態選擇不同種類的檢測。
由于文章旨在進行遠程故障檢測,所以我們自行設計了CAN節點所構建的邏輯環路通信來進行本次試驗。本次試驗中所用到的相關器件為:中央控制單元采用PIC18F2580單片機;節點間的通信使用CAN2.0B協議;車載網關采用三星公司的S3C2440為CPU的ARM開發板,使用MCP2510 CAN控制器與總線通信。
CAN2.0協議通信的接收機制是通過設置過濾寄存器和屏蔽寄存器來過濾29位擴展標識符,以判斷是否需要接收總線上在當前傳輸的CAN報文[4]。這里需要指出的是,在SIDL(預留位)bit7~bit5中故障處理和其回執標識位分別為bit1和bit0,而1表示需要操作,0表示誤操作。CAN報文的標識符域和數據域的具體使用情況如圖3所示。
將CAN節點與車載網關以總線連接,通過車載網關可以提取如表1數據,以驗證穩定邏輯環路通信的形成過程。

表1 網絡節點形成穩定邏輯環路通信的數據
試驗表明,在CAN網絡中提出并實現了無需OSEK OS支持的間接網絡管理來對各網絡節點進行監控的系統方案。通過提取數據,來對各網絡節點形成穩定邏輯環路通信的過程加以定量的分析和驗證,并在此基礎上提出了遠程故障診斷系統的方案。
目前這種監測系統已經應用在吉利汽車的HL-1車型上,主要是采用本地診斷來進行通信故障的診斷,然后將診斷結果通過無線網絡上傳到后臺服務器上,最后進行遠程服務來響應,從而可以準確快速地進行故障排除措施。HL-1車型有一輛車在加裝一套防盜器和中控門鎖后出現了電動車窗無法工作的現象,這時利用這套監測系統進行實時監測后,發現是在加裝這2個附件時,用了試燈測量電腦管腳而誤把試燈接頭插入診斷導線K線或L線,給了電腦一個錯誤的編碼信號,從而導致了這次故障。利用遠程故障診斷系統進行實時監測,可極大地提高汽車的動力性、安全性和舒適性。
[1]The OSEK/VDX Group.OSEK/VDX Operating System,version 2.2[EB/OL].
[2]CAN Specification V2.0[OL].http: //www.z1gmcu.com.
[3]王明玉,董 浩,王 建.基于GPRS的車載故障診斷網關的設計與實現[J].汽車工程 , 2009, 31 (10):999-1 003.
[4]潘巨龍,黃 寧,姚伏天,等.ARM9嵌入式Linux系統構建與應用[M].北京:北京航空航天大學出版社,2006.