OSEK/VDX標(biāo)準(zhǔn)與車(chē)控電子產(chǎn)品開(kāi)發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 簡(jiǎn)介
汽車(chē)工業(yè)是技術(shù)密集、資金密集、綜合性強(qiáng)、附加值高、經(jīng)濟(jì)效益好的產(chǎn)業(yè)。汽車(chē)工業(yè)的水平與規(guī)模是一個(gè)國(guó)家綜合國(guó)力的體現(xiàn)。據(jù)統(tǒng)計(jì),2002年,中國(guó)汽車(chē)的生產(chǎn)量為325萬(wàn)輛;2003年1至8月,國(guó)內(nèi)汽車(chē)產(chǎn)量272.8萬(wàn)輛,同比增長(zhǎng)36%;轎車(chē)銷(xiāo)售量占國(guó)內(nèi)汽車(chē)銷(xiāo)售量的42.5%。我國(guó)已成為世界第五大汽車(chē)生產(chǎn)國(guó)。
汽車(chē)電子化是現(xiàn)代汽車(chē)發(fā)展的重要標(biāo)志之一。目前世界每輛汽車(chē)采用電子裝置的情況已成為衡量這部汽車(chē)水平高低的主要標(biāo)志。國(guó)外汽車(chē)電子系統(tǒng)在汽車(chē)價(jià)格中所占比例已達(dá) 30%以上(我國(guó)目前僅為10%以?xún)?nèi)),而且這一比例還在不斷擴(kuò)大。為了加強(qiáng)市場(chǎng)競(jìng)爭(zhēng)能力,國(guó)外廣泛采用 16~32位微處理器,以及廣泛采用更先進(jìn)的傳感器,使汽車(chē)的功能從對(duì)汽車(chē)自身的控制管理擴(kuò)大到“汽車(chē)-人-環(huán)境”這樣一個(gè)大系統(tǒng)的信息獲取、處理和控制。與國(guó)外相比,我國(guó)的汽車(chē)電子工業(yè)起點(diǎn)低,技術(shù)裝備水平較低,沒(méi)有掌握核心技術(shù)。伴隨著我國(guó)汽車(chē)需求的強(qiáng)勁增長(zhǎng),我們應(yīng)抓住國(guó)外汽車(chē)生成基地向我國(guó)轉(zhuǎn)移的機(jī)遇,大力發(fā)展自主產(chǎn)權(quán)的汽車(chē)電子控制技術(shù),促進(jìn)我國(guó)汽車(chē)電子控制產(chǎn)品開(kāi)發(fā)水平升級(jí)。
2 汽車(chē)電子產(chǎn)品的分類(lèi)及嵌入式技術(shù)應(yīng)用
按照對(duì)汽車(chē)行駛性能作用的影響劃分,可以把汽車(chē)電子產(chǎn)品歸納為兩類(lèi)。一類(lèi)是車(chē)控電子——汽車(chē)電子控制裝置。汽車(chē)電子控制裝置要和車(chē)上機(jī)械系統(tǒng)進(jìn)行配合使用,即所謂“機(jī)電結(jié)合”的汽車(chē)電子裝置。它們包括發(fā)動(dòng)機(jī)、底盤(pán)、車(chē)身電子控制,例如電子燃油噴射系統(tǒng)、制動(dòng)防抱死控制、防滑控制、牽引力控制、電子控制懸架、電子控制自動(dòng)變速器、電子動(dòng)力轉(zhuǎn)向等。另一類(lèi)是車(chē)載電子——車(chē)載汽車(chē)電子裝置。車(chē)載汽車(chē)電子裝置是在汽車(chē)環(huán)境下能夠獨(dú)立使用的電子裝置,與汽車(chē)本身的性能并無(wú)直接關(guān)系。它們包括汽車(chē)信息系統(tǒng)(行車(chē)電腦)、導(dǎo)航系統(tǒng)、汽車(chē)音響及電視娛樂(lè)系統(tǒng)、車(chē)載通信系統(tǒng)、上網(wǎng)設(shè)備等。
汽車(chē)電子的技術(shù)基礎(chǔ)是嵌入式技術(shù)。在過(guò)去的幾十年里,嵌入式技術(shù)發(fā)展迅速。隨著后PC時(shí)代的來(lái)臨,計(jì)算廣泛的嵌入到應(yīng)用中去,嵌入式系統(tǒng)將成為未來(lái)計(jì)算的主要存在方式。應(yīng)用的牽引和計(jì)算環(huán)境的變遷推動(dòng)了嵌入式技術(shù)的發(fā)展。嵌入式技術(shù)與行業(yè)的結(jié)合又帶動(dòng)了行業(yè)的發(fā)展。汽車(chē)的電子化、信息化是嵌入式技術(shù)在汽車(chē)行業(yè)的應(yīng)用。
車(chē)控電子產(chǎn)品是一個(gè)個(gè)分布在汽車(chē)上的電子控制單元(ECU)、智能傳感器(Smart Sensor)等功能單元器件。這些器件通過(guò)總線連接在一起組成一個(gè)子系統(tǒng)。它們可以以適合自己的協(xié)議,如Lin、J1939等進(jìn)行通信。不同的子系統(tǒng)也通過(guò)總線組成更大的網(wǎng)絡(luò)。其中智能傳感器(Smart Sensor)是一個(gè)以工業(yè)現(xiàn)場(chǎng)總線為基礎(chǔ),以CPU為處理核心,以數(shù)字通信為變送方式的傳感器和變送器的統(tǒng)一體。與傳統(tǒng)的Sensor相比,Smart Sensor增加了數(shù)字通信功能,面向網(wǎng)絡(luò),具有聯(lián)網(wǎng)功能。
3 車(chē)控電子產(chǎn)品系統(tǒng)平臺(tái)——OSEK/VDX
為了滿足日益龐大復(fù)雜的汽車(chē)電子控制軟件的開(kāi)發(fā)需要,實(shí)現(xiàn)應(yīng)用軟件的可移植性和不同廠商的控制模塊間的可兼容性。1993年,德國(guó)汽車(chē)工業(yè)界聯(lián)合推出了汽車(chē)電子的開(kāi)放式系統(tǒng)及接口——OSEK/VDX(Open Systems and the Corresponding Interfaces For Automotive Electronics)規(guī)范,旨在為汽車(chē)上的分布控制單元提供一個(gè)開(kāi)放結(jié)構(gòu)的工業(yè)標(biāo)準(zhǔn)。OSEK/VDX 規(guī)范從實(shí)時(shí)操作系統(tǒng)RTOS(RealTime Operating System)、軟件接口、通信和網(wǎng)絡(luò)管理等方面對(duì)汽車(chē)的電子控制軟件開(kāi)發(fā)平臺(tái)作了較為全面的定義與規(guī)定。
它所提出的一整套解決方案是未來(lái)汽車(chē)電子軟件開(kāi)發(fā)的發(fā)展方向。目前,一些公司推出了符合OSEK/VDX規(guī)范的操作系統(tǒng)并得到了OSEK /VDX委員會(huì)的認(rèn)證,如 OSEK Works、OSEKOS、OSEKTurbo等。OSEK/VDX標(biāo)準(zhǔn)包括以下四部分:OSEK/VDX操作系統(tǒng)規(guī)范(OSEK Operating System,OSEK OS), OSEK/VDX通信規(guī)范(OSEK Communication,OSEK COM), OSEK/VDX網(wǎng)絡(luò)管理規(guī)范(OSEK Network Management,OSEK NM)以及OSEK/VDX實(shí)現(xiàn)語(yǔ)言(OSEK Implementation Language,OSEK OIL)。采用符合OSEK/VDX標(biāo)準(zhǔn)的嵌入式實(shí)時(shí)操作系統(tǒng)可以提高產(chǎn)品代碼的復(fù)用率、降低開(kāi)發(fā)成本、縮短產(chǎn)品開(kāi)發(fā)周期。使用兼容OSEK/VDX標(biāo)準(zhǔn)的嵌入式實(shí)時(shí)操作系統(tǒng)的應(yīng)用架構(gòu)如圖1所示。
圖1 兼容OSEK/VDX規(guī)范的操作系統(tǒng)應(yīng)用架構(gòu)
.
下面分別對(duì)OSEK規(guī)范的操作系統(tǒng)部分(OS)、通信部分(COM)、網(wǎng)絡(luò)管理部分(NM)、實(shí)現(xiàn)語(yǔ)言部分(OIL)、運(yùn)行調(diào)試接口部分(ORTI)等進(jìn)行介紹。
3.1 OSEK OS規(guī)范
OSEK OS規(guī)范定義操作系統(tǒng)內(nèi)核的實(shí)現(xiàn)機(jī)制和應(yīng)用編程接口(API),包括任務(wù)管理機(jī)制、中斷處理機(jī)制、事件機(jī)制、資源管理機(jī)制、報(bào)警器管理機(jī)制等及相關(guān)標(biāo)準(zhǔn)的應(yīng)用編程接口。OSEK OS規(guī)范的實(shí)現(xiàn)機(jī)制見(jiàn)本刊網(wǎng)站www.dpj.com.cn。
3.2 OSEK COM規(guī)范
OSEK COM規(guī)范(OSEK Communication Specification)為汽車(chē)ECU應(yīng)用軟件提供了統(tǒng)一的通信環(huán)境。通過(guò)定義應(yīng)用軟件通信接口以及ECU內(nèi)部通信和ECU外部通信,OSEK COM規(guī)范提高了應(yīng)用軟件模塊的可移植性。OSEK COM 提供了多種服務(wù),以方便在任務(wù)與任務(wù)之間、中斷服務(wù)程序與中斷服務(wù)程序之間以及任務(wù)與中斷服務(wù)程序之間發(fā)送數(shù)據(jù)。
OSEK COM 規(guī)范的目的是支持應(yīng)用軟件的移植性、重用性和相互合作性。應(yīng)用程序接口隱藏了內(nèi)部和外部通信的區(qū)別,同樣也隱藏了不同的通信協(xié)議、總線系統(tǒng)和網(wǎng)絡(luò)。
OSEK COM中的通信是基于消息的。消息包括了特定應(yīng)用的數(shù)據(jù)。消息和消息屬性通過(guò)OSEK實(shí)現(xiàn)語(yǔ)言(OIL)靜態(tài)配置。消息的內(nèi)容和使用方法與OSEK COM無(wú)關(guān)。OSEK COM允許0長(zhǎng)度的消息存在。在內(nèi)部通信情況下,交互層IL(Interaction Layer)使消息數(shù)據(jù)立即發(fā)送到接收方。在外部通信情況下,IL將1個(gè)或多個(gè)消息壓縮成指定的交互層協(xié)議數(shù)據(jù)單元(IPDU),并把它們傳遞到下層處理,如圖2所示。 內(nèi)部通信的功能性是外部通信功能性的子集。交互層里的消息管理者是基于消息對(duì)象的。消息對(duì)象存在于發(fā)送端的是“發(fā)送消息對(duì)象”,存在于接收端的是“接收消息對(duì)象”。
圖2 OSEK COM中消息發(fā)送和接收的簡(jiǎn)單模型
交互層和下層通信的數(shù)據(jù)被組織稱(chēng)I?PDUs,包括一個(gè)或多個(gè)消息。一個(gè)消息必須占據(jù)在I?PDU中連續(xù)的位而且不能被分離,在I?PDUs中交叉。在I?PDUs中消息被位排列。消息的大小在位中說(shuō)明。交互層提供了應(yīng)用程序接口(API)來(lái)處理消息,API包括初始化、數(shù)據(jù)傳送和通信管理的服務(wù)。在網(wǎng)絡(luò)上傳送消息的服務(wù)是非阻塞的,一個(gè)發(fā)送消息的服務(wù)可能不能返回一個(gè)最終的發(fā)送狀態(tài),因?yàn)榫W(wǎng)絡(luò)中的傳送仍在進(jìn)行之中。OSEK COM為應(yīng)用程序提供了通知機(jī)制來(lái)決定傳送或接收的狀態(tài)。
3.3 OSEK NM規(guī)范
對(duì)于由不同生產(chǎn)商生產(chǎn)的汽車(chē)ECU產(chǎn)品,它們有通過(guò)串行數(shù)據(jù)交換連接成網(wǎng)絡(luò)的趨勢(shì)。因此,為了避免重復(fù)勞動(dòng)和縮短開(kāi)發(fā)時(shí)間,需要有一個(gè)基礎(chǔ)性的標(biāo)準(zhǔn)。OSEK NM規(guī)范(OSEK Network Management system specification)為提高ECU產(chǎn)品的網(wǎng)絡(luò)互連能力提供了一個(gè)網(wǎng)絡(luò)連接標(biāo)準(zhǔn)。OSEK NM任務(wù)的目的是提高ECU產(chǎn)品網(wǎng)絡(luò)通信的安全性和可靠性。OSEK NM規(guī)范規(guī)定了網(wǎng)絡(luò)管理的機(jī)制和應(yīng)用編程接口(API)。采用OSEK NM規(guī)范的ECU產(chǎn)品具有以下功能:
◆ 經(jīng)過(guò)授權(quán)后,每一個(gè)節(jié)點(diǎn)必須是可以訪問(wèn)的;
◆ 在允許訪問(wèn)失敗的情況下,具有最大容忍限度;
◆ 支持網(wǎng)絡(luò)診斷。
作為一個(gè)基礎(chǔ)的配置,遵守OSEK規(guī)范的網(wǎng)絡(luò)管理實(shí)現(xiàn)必須應(yīng)用在網(wǎng)絡(luò)的所有節(jié)點(diǎn)。每一個(gè)節(jié)點(diǎn)都能在規(guī)定的間隔內(nèi)獲得整個(gè)網(wǎng)絡(luò)的狀態(tài)信息。 OSEK NM為網(wǎng)絡(luò)監(jiān)控提供了兩種機(jī)制:一種是通過(guò)監(jiān)控應(yīng)用的消息進(jìn)行間接監(jiān)控;另一種是對(duì)于特定的網(wǎng)絡(luò)管理利用標(biāo)記機(jī)制進(jìn)行直接監(jiān)控。OSEK NM包括以下部分:
◆ OSEK NM與應(yīng)用程序的接口(API);
◆ 節(jié)點(diǎn)監(jiān)控的算法;
◆ OSEK NM與OSEK COM的接口;
◆ 轉(zhuǎn)換到睡眠狀態(tài)的算法;
◆ OSEK NM協(xié)議數(shù)據(jù)單元(NMPDU)。
圖3說(shuō)明了OSEK NM在整個(gè)系統(tǒng)中的位置及其與其他部分的關(guān)系。
圖3 OSEK NM在系統(tǒng)中的位置
3.4 OSEK實(shí)現(xiàn)語(yǔ)言規(guī)范
為了達(dá)到軟件可移植的目標(biāo),OSEK OIL規(guī)范(OSEK Implementation Language Specification)定義了一種配置和使用OSEK應(yīng)用的方法。圖4表示了一個(gè)遵守OSEK規(guī)范的應(yīng)用開(kāi)發(fā)過(guò)程。OIL文件可以是手寫(xiě)的或者是系統(tǒng)配置工具產(chǎn)生的。
圖4 基于OSEK規(guī)范的應(yīng)用開(kāi)發(fā)過(guò)程
.
OIL提供一種在特定CPU中配置OSEK應(yīng)用的機(jī)制。每個(gè)CPU對(duì)應(yīng)一個(gè)OIL描述,所有的OSEK系統(tǒng)對(duì)象用OIL對(duì)象來(lái)描述。OSEK應(yīng)用的OIL描述是一組OIL對(duì)象的組合,CPU是這些OIL對(duì)象的容器。OIL明確地為每個(gè)OIL對(duì)象定義了所有標(biāo)準(zhǔn)屬性。每個(gè)OSEK應(yīng)用可以定義附加的特殊執(zhí)行屬性和引用。每個(gè)OSEK應(yīng)用可以限制每個(gè)屬性的取值范圍。
OIL中的對(duì)象包括:CPU(處理器)、OS(操作系統(tǒng))、Appmode(應(yīng)用模式)、Isr(中斷服務(wù))、Resource(資源)、 Task(任務(wù))、Counter(記數(shù)器)、Event(事件)、Alarm(報(bào)警器)、Com(通信子系統(tǒng))、Message(消息)、Ipdu(交互層協(xié)議數(shù)據(jù)單元)、NM(網(wǎng)絡(luò)管理)。
3.5 OSEK ORTI規(guī)范
OSEK ORTI規(guī)范(OSEK Run?Time Interface Specification)為OSEK操作系統(tǒng)開(kāi)發(fā)工具提供了統(tǒng)一的接口。通過(guò)OSEK ORTI,使調(diào)試工具可以獲取和顯示操作系統(tǒng)的運(yùn)行狀態(tài)和性能、各種任務(wù)的狀態(tài)、各種操作系統(tǒng)對(duì)象的狀態(tài)等信息。ORTI文件是由系統(tǒng)生成器在系統(tǒng)生成階段產(chǎn)生的。ORTI使用KIOL語(yǔ)言將操作系統(tǒng)內(nèi)核信息傳遞給調(diào)試器,同時(shí)為OSEK標(biāo)準(zhǔn)對(duì)象定義了一些的語(yǔ)法規(guī)則。ORTI信息是通過(guò)ASCII文本文件提供的。由于OSEK/VDX是基于靜態(tài)配置的,因此,ORTI不支持動(dòng)態(tài)的表示和配置數(shù)據(jù)。
OSEK ORTI規(guī)范包括Part A和Part B兩部分:Part A介紹了ORTI為調(diào)試工具定義的操作系統(tǒng)內(nèi)核對(duì)象的語(yǔ)言(Kernel Object Interface Language,KOIL);Part B描述了OSEK/VDX標(biāo)準(zhǔn)對(duì)象、屬性和它們的含義。
3.5.1 ORTI文件結(jié)構(gòu)
ORTI文件包含版本信息部分、聲明部分和信息部分。版本信息部分描述了KOIL和內(nèi)核的版本。對(duì)于ORTI來(lái)講,內(nèi)核的版本是ORTI標(biāo)準(zhǔn)的版本號(hào)。聲明部分聲明ORTI實(shí)現(xiàn)中使用的內(nèi)核類(lèi)型,相當(dāng)于C語(yǔ)言中的結(jié)構(gòu)聲明。它描述了訪問(wèn)內(nèi)核對(duì)象所包含數(shù)據(jù)的方法。該部分詳細(xì)說(shuō)明了給定屬性的顯示名稱(chēng)。信息部分包含了所有給定系統(tǒng)聲明部分所聲明的方法,描述了計(jì)算或引用所需屬性的方法。信息部分還提供了所需屬性的靜態(tài)值和表達(dá)式。
3.5.2 標(biāo)準(zhǔn)的ORTI對(duì)象及屬性
OS對(duì)象,包含正在運(yùn)行的任務(wù)、正在運(yùn)行的優(yōu)先級(jí)、正在運(yùn)行的中斷處理程序、操作系統(tǒng)服務(wù)、最近的錯(cuò)誤、當(dāng)前應(yīng)用的模式等屬性。
任務(wù)對(duì)象,包含優(yōu)先級(jí)、狀態(tài)、堆棧、活動(dòng)狀態(tài)、上下文等屬性。
上下文對(duì)象,包含地址、大小等兩個(gè)屬性。
堆棧對(duì)象,包含大小、基地址、堆棧方向、填充模式等四個(gè)屬性。
報(bào)警器對(duì)象,包含報(bào)警時(shí)間、周期、狀態(tài)、動(dòng)作、記數(shù)器等五個(gè)屬性。
資源對(duì)象,包含狀態(tài)、資源鎖、優(yōu)先級(jí)等三個(gè)屬性。
消息容器對(duì)象,包含消息名稱(chēng)、類(lèi)型、隊(duì)列大小、隊(duì)列記數(shù)器、當(dāng)前消息地址等五個(gè)屬性。
4 車(chē)控電子產(chǎn)品的開(kāi)發(fā)流程
車(chē)控電子產(chǎn)品是軟硬件結(jié)合的嵌入式系統(tǒng)。為了節(jié)約資源,縮短產(chǎn)品開(kāi)發(fā)周期,一般應(yīng)采取軟硬件同步開(kāi)發(fā)的方案,如圖5所示。車(chē)控電子產(chǎn)品的開(kāi)發(fā)工具對(duì)軟硬件的同步開(kāi)發(fā)、調(diào)試提供了很好的支持。車(chē)控電子產(chǎn)品的軟件開(kāi)發(fā)分為功能描述、軟件設(shè)計(jì)、代碼生成、操作系統(tǒng)環(huán)境下高級(jí)調(diào)試等步驟。車(chē)控電子產(chǎn)品的硬件開(kāi)發(fā)分為硬件描述、硬件設(shè)計(jì)、硬件調(diào)試等步驟。當(dāng)軟件設(shè)計(jì)完成后,通過(guò)使用相應(yīng)的工具,完成在虛擬ECU平臺(tái)上的驗(yàn)證。當(dāng)硬件設(shè)計(jì)完成后,與硬件一起進(jìn)行軟硬件集成調(diào)試。通過(guò)這種開(kāi)發(fā)方式,縮短了產(chǎn)品上市的時(shí)間。
圖5 軟硬件并行的開(kāi)發(fā)方案
目前,汽車(chē)車(chē)控電子產(chǎn)品軟件開(kāi)發(fā)流程是“V”形開(kāi)發(fā)流程,如圖6所示。“V”形開(kāi)發(fā)流程分為五個(gè)階段,即功能設(shè)計(jì)、原型仿真、代碼生成、硬件在回路仿真——HIL、標(biāo)定。
圖6 車(chē)控電子產(chǎn)品軟件開(kāi)發(fā)流程
在功能設(shè)計(jì)階段使用的主要工具是MATLAB。通過(guò)使用MATLAB提供的Simulink、Stateflow等工具,完成控制方案的設(shè)計(jì)、功能模塊的設(shè)計(jì)、控制算法的設(shè)計(jì)等任務(wù),并進(jìn)行初步的仿真模擬工作。在原型仿真階段使用的主要工具是dSPACE。使用dSPACE提供的快速控制原型 ——RCP工具完成離線的仿真工作。在開(kāi)始該階段之前,需要使用Real Time Workshop、Targetlink等工具完成由Simulink、Stateflow等產(chǎn)生的代碼向標(biāo)準(zhǔn) C代碼的轉(zhuǎn)換工作。在進(jìn)行向標(biāo)準(zhǔn) C代碼的轉(zhuǎn)換過(guò)程中,可以根據(jù)需要加入符合OSEK規(guī)范的嵌入式實(shí)時(shí)操作系統(tǒng)。在代碼生產(chǎn)階段使用的主要工具是CodeWarrior。通過(guò)使用 CodeWarrior提供的編譯器、調(diào)試器等工具,完成從標(biāo)準(zhǔn)C代碼向目標(biāo)硬件平臺(tái)上的產(chǎn)品代碼的轉(zhuǎn)換工作。圖7表示了車(chē)控電子產(chǎn)品的代碼生成過(guò)程。
圖7 車(chē)控電子產(chǎn)品代碼生成過(guò)程
結(jié)語(yǔ)
我國(guó)自主發(fā)展汽車(chē)車(chē)控產(chǎn)品尚處于起步階段。本文簡(jiǎn)要介紹了車(chē)控產(chǎn)品的系統(tǒng)平臺(tái)——OSEK/VDX規(guī)范,并給出了一個(gè)基于OSEK/VDX規(guī)范的簡(jiǎn)單的車(chē)控電子開(kāi)發(fā)模型。在這個(gè)模型中,要求開(kāi)發(fā)者熟練使用國(guó)際上主流的開(kāi)發(fā)工具,以提高開(kāi)發(fā)效率,縮短開(kāi)發(fā)時(shí)間。
參考文獻(xiàn)
1 Designing an OSEK/VDX Compliant RTOS for the C16x. Andrew Coombes, CEng,http://www.dspace.com
2 Experience with an Advanced Design Flow with OSEK/VDX compliant Code Generation for Automotive ECU's. Manfred Thanner, Motorola GmbH ; Raz Yerushalmi, I-Logix, http://www.omimo.be/magazine/01q1/2001q1_p006.pdf
3 ModelBased Software Development for Electronic Control Units (ECUs). Peter Bechberger http://www.dspaceinc.com/ww/en/pub/company/ medien/papers/73_e.htm
4 Connecting Simulink to OSEK/VDX: Automatic Code Generation for RealTime Operating Systems with TargetLink, Lutz K ster, Thomas Thomsen, Ralf Stracke, http://www.dspace.com
5 OSEK/VDXCompliant Embedded Development Solution for Automotive Applications. Jennifer Hubert, http://www.dspace.com