1 簡介
汽車電子化是現(xiàn)代汽車發(fā)展的重要標(biāo)志之一。目前世界每輛汽車采用電子裝置的情況已成為衡量這部汽車水平高低的主要標(biāo)志。為了加強市場競爭能力,國外廣泛采用 16~32位微處理器,以及廣泛采用更先進的傳感器,使汽車的功能從對汽車自身的控制管理擴大到“汽車-人-環(huán)境”這樣一個大系統(tǒng)的信息獲取、處理和控制。
2 汽車電子產(chǎn)品的分類及嵌入式技術(shù)應(yīng)用
按照對汽車行駛性能作用的影響劃分,可以把汽車電子產(chǎn)品歸納為兩類。一類是車控電子——汽車電子控制裝置。汽車電子控制裝置要和車上機械系統(tǒng)進行配合使用,即所謂“機電結(jié)合”的汽車電子裝置。它們包括發(fā)動機、底盤、車身電子控制,例如電子燃油噴射系統(tǒng)、制動防抱死控制、防滑控制、牽引力控制、電子控制懸架、電子控制自動變速器、電子動力轉(zhuǎn)向等。另一類是車載電子——車載汽車電子裝置。車載汽車電子裝置是在汽車環(huán)境下能夠獨立使用的電子裝置,與汽車本身的性能并無直接關(guān)系。它們包括汽車信息系統(tǒng)(行車電腦)、導(dǎo)航系統(tǒng)、汽車音響及電視娛樂系統(tǒng)、車載通信系統(tǒng)、上網(wǎng)設(shè)備等。
汽車電子的技術(shù)基礎(chǔ)是嵌入式技術(shù)。在過去的幾十年里,嵌入式技術(shù)發(fā)展迅速。隨著后PC時代的來臨,計算廣泛的嵌入到應(yīng)用中去,嵌入式系統(tǒng)將成為未來計算的主要存在方式。應(yīng)用的牽引和計算環(huán)境的變遷推動了嵌入式技術(shù)的發(fā)展。嵌入式技術(shù)與行業(yè)的結(jié)合又帶動了行業(yè)的發(fā)展。汽車的電子化、信息化是嵌入式技術(shù)在汽車行業(yè)的應(yīng)用。
車控電子產(chǎn)品是一個個分布在汽車上的電子控制單元(ECU)、智能傳感器(Smart Sensor)等功能單元器件。這些器件通過總線連接在一起組成一個子系統(tǒng)。它們可以以適合自己的協(xié)議,如Lin、J1939等進行通信。不同的子系統(tǒng)也通過總線組成更大的網(wǎng)絡(luò)。其中智能傳感器(Smart Sensor)是一個以工業(yè)現(xiàn)場總線為基礎(chǔ),以CPU為處理核心,以數(shù)字通信為變送方式的傳感器和變送器的統(tǒng)一體。與傳統(tǒng)的Sensor相比,Smart Sensor增加了數(shù)字通信功能,面向網(wǎng)絡(luò),具有聯(lián)網(wǎng)功能。
3 車控電子產(chǎn)品系統(tǒng)平臺——OSEK/VDX
為了滿足日益龐大復(fù)雜的汽車電子控制軟件的開發(fā)需要,實現(xiàn)應(yīng)用軟件的可移植性和不同廠商的控制模塊間的可兼容性。1993年,德國汽車工業(yè)界聯(lián)合推出了汽車電子的開放式系統(tǒng)及接口——OSEK/VDX(Open Systems and the Corresponding InteRFaces For AutomoTIve Electronics)規(guī)范,旨在為汽車上的分布控制單元提供一個開放結(jié)構(gòu)的工業(yè)標(biāo)準(zhǔn)。OSEK/VDX 規(guī)范從實時操作系統(tǒng)RTOS(RealTime Operating System)、軟件接口、通信和網(wǎng)絡(luò)管理等方面對汽車的電子控制軟件開發(fā)平臺作了較為全面的定義與規(guī)定。
它所提出的一整套解決方案是未來汽車電子軟件開發(fā)的發(fā)展方向。目前,一些公司推出了符合OSEK/VDX規(guī)范的操作系統(tǒng)并得到了OSEK /VDX委員會的認證,如 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實現(xiàn)語言(OSEK Implementation Language,OSEK OIL)。采用符合OSEK/VDX標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng)可以提高產(chǎn)品代碼的復(fù)用率、降低開發(fā)成本、縮短產(chǎn)品開發(fā)周期。使用兼容OSEK/VDX標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng)的應(yīng)用架構(gòu)如圖1所示。
圖1 兼容OSEK/VDX規(guī)范的操作系統(tǒng)應(yīng)用架構(gòu)
下面分別對OSEK規(guī)范的操作系統(tǒng)部分(OS)、通信部分(COM)、網(wǎng)絡(luò)管理部分(NM)、實現(xiàn)語言部分(OIL)、運行調(diào)試接口部分(ORTI)等進行介紹。
3.1 OSEK OS規(guī)范
OSEK OS規(guī)范定義操作系統(tǒng)內(nèi)核的實現(xiàn)機制和應(yīng)用編程接口(API),包括任務(wù)管理機制、中斷處理機制、事件機制、資源管理機制、報警器管理機制等及相關(guān)標(biāo)準(zhǔn)的應(yīng)用編程接口。OSEK OS規(guī)范的實現(xiàn)機制見本刊網(wǎng)站www.dpj.com.cn。
3.2 OSEK COM規(guī)范
OSEK COM規(guī)范(OSEK Communication Specification)為汽車ECU應(yīng)用軟件提供了統(tǒng)一的通信環(huán)境。通過定義應(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ù)。消息和消息屬性通過OSEK實現(xiàn)語言(OIL)靜態(tài)配置。消息的內(nèi)容和使用方法與OSEK COM無關(guān)。OSEK COM允許0長度的消息存在。在內(nèi)部通信情況下,交互層IL(Interaction Layer)使消息數(shù)據(jù)立即發(fā)送到接收方。在外部通信情況下,IL將1個或多個消息壓縮成指定的交互層協(xié)議數(shù)據(jù)單元(IPDU),并把它們傳遞到下層處理,如圖2所示。 內(nèi)部通信的功能性是外部通信功能性的子集。交互層里的消息管理者是基于消息對象的。消息對象存在于發(fā)送端的是“發(fā)送消息對象”,存在于接收端的是“接收消息對象”。
圖2 OSEK COM中消息發(fā)送和接收的簡單模型
交互層和下層通信的數(shù)據(jù)被組織稱I?PDUs,包括一個或多個消息。一個消息必須占據(jù)在I?PDU中連續(xù)的位而且不能被分離,在I?PDUs中交叉。在I?PDUs中消息被位排列。消息的大小在位中說明。交互層提供了應(yīng)用程序接口(API)來處理消息,API包括初始化、數(shù)據(jù)傳送和通信管理的服務(wù)。在網(wǎng)絡(luò)上傳送消息的服務(wù)是非阻塞的,一個發(fā)送消息的服務(wù)可能不能返回一個最終的發(fā)送狀態(tài),因為網(wǎng)絡(luò)中的傳送仍在進行之中。OSEK COM為應(yīng)用程序提供了通知機制來決定傳送或接收的狀態(tài)。
3.3 OSEK NM規(guī)范
對于由不同生產(chǎn)商生產(chǎn)的汽車ECU產(chǎn)品,它們有通過串行數(shù)據(jù)交換連接成網(wǎng)絡(luò)的趨勢。因此,為了避免重復(fù)勞動和縮短開發(fā)時間,需要有一個基礎(chǔ)性的標(biāo)準(zhǔn)。OSEK NM規(guī)范(OSEK Network Management system specification)為提高ECU產(chǎn)品的網(wǎng)絡(luò)互連能力提供了一個網(wǎng)絡(luò)連接標(biāo)準(zhǔn)。OSEK NM任務(wù)的目的是提高ECU產(chǎn)品網(wǎng)絡(luò)通信的安全性和可靠性。OSEK NM規(guī)范規(guī)定了網(wǎng)絡(luò)管理的機制和應(yīng)用編程接口(API)。采用OSEK NM規(guī)范的ECU產(chǎn)品具有以下功能:
◆ 經(jīng)過授權(quán)后,每一個節(jié)點必須是可以訪問的;
◆ 在允許訪問失敗的情況下,具有最大容忍限度;
◆ 支持網(wǎng)絡(luò)診斷。
作為一個基礎(chǔ)的配置,遵守OSEK規(guī)范的網(wǎng)絡(luò)管理實現(xiàn)必須應(yīng)用在網(wǎng)絡(luò)的所有節(jié)點。每一個節(jié)點都能在規(guī)定的間隔內(nèi)獲得整個網(wǎng)絡(luò)的狀態(tài)信息。 OSEK NM為網(wǎng)絡(luò)監(jiān)控提供了兩種機制:一種是通過監(jiān)控應(yīng)用的消息進行間接監(jiān)控;另一種是對于特定的網(wǎng)絡(luò)管理利用標(biāo)記機制進行直接監(jiān)控。OSEK NM包括以下部分:
◆ OSEK NM與應(yīng)用程序的接口(API);
◆ 節(jié)點監(jiān)控的算法;
◆ OSEK NM與OSEK COM的接口;
◆ 轉(zhuǎn)換到睡眠狀態(tài)的算法;
◆ OSEK NM協(xié)議數(shù)據(jù)單元(NMPDU)。
圖3說明了OSEK NM在整個系統(tǒng)中的位置及其與其他部分的關(guān)系。
圖3 OSEK NM在系統(tǒng)中的位置
3.4 OSEK實現(xiàn)語言規(guī)范
為了達到軟件可移植的目標(biāo),OSEK OIL規(guī)范(OSEK Implementation Language Specification)定義了一種配置和使用OSEK應(yīng)用的方法。圖4表示了一個遵守OSEK規(guī)范的應(yīng)用開發(fā)過程。OIL文件可以是手寫的或者是系統(tǒng)配置工具產(chǎn)生的。
圖4 基于OSEK規(guī)范的應(yīng)用開發(fā)過程
OIL提供一種在特定CPU中配置OSEK應(yīng)用的機制。每個CPU對應(yīng)一個OIL描述,所有的OSEK系統(tǒng)對象用OIL對象來描述。OSEK應(yīng)用的OIL描述是一組OIL對象的組合,CPU是這些OIL對象的容器。OIL明確地為每個OIL對象定義了所有標(biāo)準(zhǔn)屬性。每個OSEK應(yīng)用可以定義附加的特殊執(zhí)行屬性和引用。每個OSEK應(yīng)用可以限制每個屬性的取值范圍。
OIL中的對象包括:CPU(處理器)、OS(操作系統(tǒng))、Appmode(應(yīng)用模式)、Isr(中斷服務(wù))、Resource(資源)、 Task(任務(wù))、Counter(記數(shù)器)、Event(事件)、Alarm(報警器)、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)開發(fā)工具提供了統(tǒng)一的接口。通過OSEK ORTI,使調(diào)試工具可以獲取和顯示操作系統(tǒng)的運行狀態(tài)和性能、各種任務(wù)的狀態(tài)、各種操作系統(tǒng)對象的狀態(tài)等信息。ORTI文件是由系統(tǒng)生成器在系統(tǒng)生成階段產(chǎn)生的。ORTI使用KIOL語言將操作系統(tǒng)內(nèi)核信息傳遞給調(diào)試器,同時為OSEK標(biāo)準(zhǔn)對象定義了一些的語法規(guī)則。ORTI信息是通過ASCII文本文件提供的。由于OSEK/VDX是基于靜態(tài)配置的,因此,ORTI不支持動態(tài)的表示和配置數(shù)據(jù)。
OSEK ORTI規(guī)范包括Part A和Part B兩部分:Part A介紹了ORTI為調(diào)試工具定義的操作系統(tǒng)內(nèi)核對象的語言(Kernel Object Interface Language,KOIL);Part B描述了OSEK/VDX標(biāo)準(zhǔn)對象、屬性和它們的含義。
3.5.1 ORTI文件結(jié)構(gòu)
ORTI文件包含版本信息部分、聲明部分和信息部分。版本信息部分描述了KOIL和內(nèi)核的版本。對于ORTI來講,內(nèi)核的版本是ORTI標(biāo)準(zhǔn)的版本號。聲明部分聲明ORTI實現(xiàn)中使用的內(nèi)核類型,相當(dāng)于C語言中的結(jié)構(gòu)聲明。它描述了訪問內(nèi)核對象所包含數(shù)據(jù)的方法。該部分詳細說明了給定屬性的顯示名稱。信息部分包含了所有給定系統(tǒng)聲明部分所聲明的方法,描述了計算或引用所需屬性的方法。信息部分還提供了所需屬性的靜態(tài)值和表達式。
3.5.2 標(biāo)準(zhǔn)的ORTI對象及屬性
OS對象,包含正在運行的任務(wù)、正在運行的優(yōu)先級、正在運行的中斷處理程序、操作系統(tǒng)服務(wù)、最近的錯誤、當(dāng)前應(yīng)用的模式等屬性。
任務(wù)對象,包含優(yōu)先級、狀態(tài)、堆棧、活動狀態(tài)、上下文等屬性。
上下文對象,包含地址、大小等兩個屬性。
堆棧對象,包含大小、基地址、堆棧方向、填充模式等四個屬性。
報警器對象,包含報警時間、周期、狀態(tài)、動作、記數(shù)器等五個屬性。
資源對象,包含狀態(tài)、資源鎖、優(yōu)先級等三個屬性。
消息容器對象,包含消息名稱、類型、隊列大小、隊列記數(shù)器、當(dāng)前消息地址等五個屬性。
4 車控電子產(chǎn)品的開發(fā)流程
車控電子產(chǎn)品是軟硬件結(jié)合的嵌入式系統(tǒng)。為了節(jié)約資源,縮短產(chǎn)品開發(fā)周期,一般應(yīng)采取軟硬件同步開發(fā)的方案,如圖5所示。車控電子產(chǎn)品的開發(fā)工具對軟硬件的同步開發(fā)、調(diào)試提供了很好的支持。車控電子產(chǎn)品的軟件開發(fā)分為功能描述、軟件設(shè)計、代碼生成、操作系統(tǒng)環(huán)境下高級調(diào)試等步驟。車控電子產(chǎn)品的硬件開發(fā)分為硬件描述、硬件設(shè)計、硬件調(diào)試等步驟。當(dāng)軟件設(shè)計完成后,通過使用相應(yīng)的工具,完成在虛擬ECU平臺上的驗證。當(dāng)硬件設(shè)計完成后,與硬件一起進行軟硬件集成調(diào)試。通過這種開發(fā)方式,縮短了產(chǎn)品上市的時間。
圖5 軟硬件并行的開發(fā)方案
目前,汽車車控電子產(chǎn)品軟件開發(fā)流程是“V”形開發(fā)流程,如圖6所示。“V”形開發(fā)流程分為五個階段,即功能設(shè)計、原型仿真、代碼生成、硬件在回路仿真——HIL、標(biāo)定。
圖6 車控電子產(chǎn)品軟件開發(fā)流程
在功能設(shè)計階段使用的主要工具是MATLAB。通過使用MATLAB提供的Simulink、Stateflow等工具,完成控制方案的設(shè)計、功能模塊的設(shè)計、控制算法的設(shè)計等任務(wù),并進行初步的仿真模擬工作。在原型仿真階段使用的主要工具是DSPACE。使用dSPACE提供的快速控制原型 ——RCP工具完成離線的仿真工作。在開始該階段之前,需要使用Real Time Workshop、Targetlink等工具完成由Simulink、Stateflow等產(chǎn)生的代碼向標(biāo)準(zhǔn) C代碼的轉(zhuǎn)換工作。在進行向標(biāo)準(zhǔn) C代碼的轉(zhuǎn)換過程中,可以根據(jù)需要加入符合OSEK規(guī)范的嵌入式實時操作系統(tǒng)。在代碼生產(chǎn)階段使用的主要工具是CodeWarrior。通過使用 CodeWarrior提供的編譯器、調(diào)試器等工具,完成從標(biāo)準(zhǔn)C代碼向目標(biāo)硬件平臺上的產(chǎn)品代碼的轉(zhuǎn)換工作。圖7表示了車控電子產(chǎn)品的代碼生成過程。
圖7 車控電子產(chǎn)品代碼生成過程
結(jié)語
我國自主發(fā)展汽車車控產(chǎn)品尚處于起步階段。本文簡要介紹了車控產(chǎn)品的系統(tǒng)平臺——OSEK/VDX規(guī)范,并給出了一個基于OSEK/VDX規(guī)范的簡單的車控電子開發(fā)模型。在這個模型中,要求開發(fā)者熟練使用國際上主流的開發(fā)工具,以提高開發(fā)效率,縮短開發(fā)時間。
評論
查看更多