陳曉霞,苑文舉
(長春工業大學計算機科學與工程學院,長春130012)
為滿足日益龐大復雜的汽車電子控制軟件的開發需要,1993年歐洲汽車工業界聯合推出了OSEK/VDX標準。OSEK/VDX[1]是應用在模塊和靜態實時操作系統上的標準,由主要的汽車制造商、供應商、研究機構以及軟件開發商所發起。OSEK,是指德國的汽車電子類開放系統和對應接口標準(open system s and the corresponding interfaces for automotive electronics),OSEK/VDX規范從實時操作系統、軟件接口、通信和網絡管理等方面對汽車的電子控制軟件開發平臺作較為全面的定義與規定。而VDX則是汽車分布式執行標準(vehicle distributed executive),后者最初是由法國獨自發起的,后來加入OSEK團體。兩者的名字都反映出OSEK/VDX的目的是為汽車電子制定標準化接口。
本文主要介紹了一種遵循OSEK規范,并在的基礎上,設計開發了一種應用到CAN網絡通信中的節點通信的嵌入式實時操作系統。
本文針對OSEK/VDX OS介紹了其主要特點[2],重點分析了它的運行機制。OSEK/VDX具有實時性、可移植性、可擴展性3個特點。本文就是根據這3個特點來構造一個符合CAN網絡通信的操作系統。
μC/OS-II是一個著名的源代碼公開的內核,它的主要性能特點是:源代碼公開,可移植,可固化,可裁剪,搶占式,多任務,可確定性,實用性和可靠性。該操作系統都有成功應用的實例,這些應用的實踐是該內核實用性和可靠性的最好依據。
OSEK規范把進程分為基礎進程和擴展進程。圖1和圖2是基本任務和擴展任務的狀態轉移圖。

圖1 基本任務

圖2 擴展任務
OSEK提供了兩種同步機制,即對共享資源的互斥訪問機制和事件機制。系統在處理多個進程對共享資源的互斥訪問時,采用信號量對臨界區數據或資源加鎖。在某一時刻只能有一個進程訪問資源,但是某些操作可能會出現優先級反轉的情況,即當一個高優先級的進程試圖訪問一個已經被較低優先級的進程占用的資源時,則該高優先級的進程必須等待,直到低優先級的進程釋放該資源。而此時有介于這兩個優先級之間的進程可能就會先于較高優先級來搶占資源,這就造成了優先級反轉。為了避免這種情況發生,OSEK操作系統采用了優先級最高限度協議(Priority Ceiling Pro tocol)[3]。使用該協議同時解決了死鎖的問題。
為了使OSEK操作系統能夠在有不同計算能力(不同CPU、不同存儲容量)的ECU上運行,OSEK定義了4個符合類,分別是BCCl、ECCl、BCC2、ECC2。每一個符合類包括一組操作系統特性,代表一類應用程序的需求,也包含了這些操作系統特性運行所需要的硬件需求。
筆者所研究的項目旨在通過OSEK OS來實時監控車載網絡中的各個節點,通過即時更新的配置信息,判斷其當前的可操作性和工作狀態。車載網關和網絡節點由CAN總線連接,使用CAN 2.0B[4]協議通信。網絡節點將相應的配置信息(包括故障碼和由傳感器采集到的相關參數)裝入周期性發送的專用網絡管理報文中。車載網關負責收集這些配置信息,并通過基于IPv6的無線網絡將其發送至遠程故障診斷服務器。待服務器分析故障信息,得出相應的處理信息后,再將處理信息發回至車載網關,并由其下發至網絡節點以執行相應操作。顯然,OSEK/VDX OS的實時性[3]更符合項目的需求。圖3為該應用的硬件連接流程。
使用自行設計的CAN節點構建邏輯環路通信,該節點采用Microchip公司的PIC18F2580作為中央控制單元,PCA82C250作為CAN轉換器,節點間的通信使用CAN 2.0B協議。考慮到今后的擴展需求,擬使用29位擴展標識符。車載網關采用Samsung公司S3C2410為CPU的ARM開發板,使用Microchip公司MCP2510 CAN控制器與總線通信,將經過裁剪后的μC/OS-II操作系統應用于其中。

圖3 硬件連接流程
CAN2.0協議通信的接收機制是通過設置過濾寄存器和屏蔽寄存器來過濾29位擴展標識符,以判斷是否需要接受總線上當前傳輸的CAN報文。CAN報文標識符域和數據域的具體使用情況如圖4所示。

圖4 CAN報文標識符域和數據域的具體使用情況
本文通過OSEK OS的實時性,可移植性和可擴展性[6]為CAN網絡節點的通信提供了一套符合OSEK/VDX規范的操作系統。該操作系統是通過將裁剪后的μC/OS-Ⅱ移植到該系統中,此操作系統對CAN網絡節點的通信進行了相關的任務管理,在節點通信的過程中對其進行了中斷處理,以及對不同事件的處理進行了分類,這樣就保證了網絡節點通信的精確和方便。
將CAN節點與車載網關以總線連接,通過車載網關可以提取如下數據以驗證穩定邏輯環路通信的形成過程,同時也為下一步的理論研究提供了寶貴的數據資料。如表1所列。

表1 網絡節點形成穩定邏輯環路通信的數據
根據實際項目的需要,在CAN網絡中實現了OSEK OS的研究與應用。該操作系統支持兩種類型的網絡管理,通過提取的數據,對各網絡節點形成穩定邏輯環路通信的過程加以定量的分析和驗證。在此基礎上與項目已有部分相結合,提出了遠程故障診斷系統的方案。
[1]The OSEK/VDX Group.OSEK/VDX Operating System version 2.2.
[2]The OSEK/VDX Group.OSEK/VDX System Generation,OIL:OSEK Implementation Language version 2.3[EB/OL].(2003-10-15)[2010-07].http://www.osek-vdx.org.
[3]KM Zuberi.EM ERALDS-OSEK:A Small Real-time Operating System for Automotive Control and Monitoring[EB/OL].(2003-10-15)[2010-07].http://www.sae.org.
[4]CAN Specification V 2.0.
[5]羅蕾.嵌入式實時操作系統及應用開發[M].北京:北京航空航天大學出版社,2005.
[6]袁銘蔚,孫澤昌,陳覺曉.一種嵌入式實時操作系統——OSEK/VDX OS[J].測控技術,22(12):45-47.