根據(jù)IEEE最近的報(bào)告,豪華級(jí)別的汽車的軟件代碼長(zhǎng)度將超過(guò)1億行,GENIVI聯(lián)盟預(yù)測(cè)其中70%的代碼是來(lái)自汽車的IVI系統(tǒng),也就是我們常說(shuō)的車載信息和娛樂(lè)系統(tǒng)(InfotainmentandTelematics),其余的30%代碼來(lái)自儀表盤、車身電子、發(fā)動(dòng)機(jī)和引擎控制以及汽車安全相關(guān)部件[1]。即使是30%的代碼,這3千萬(wàn)行代碼長(zhǎng)度也已經(jīng)超過(guò)了1千萬(wàn)級(jí)代碼行數(shù)的波音787飛機(jī),與2千5百萬(wàn)行代碼行數(shù)的Windwos2000接近。如此巨大的代碼量不使用嵌入式系統(tǒng)操作(以下簡(jiǎn)稱嵌入式OS)和軟件平臺(tái)架構(gòu)是不可想象的,以此聯(lián)動(dòng)產(chǎn)生的軟件研發(fā)、測(cè)試和維護(hù)成本也是巨大的,帶給汽車的安全性和可靠性隱患更是無(wú)法預(yù)估的。
OSEK和AUTOSAR
90年代的中期,一些歐洲的汽車工業(yè)廠商聯(lián)合發(fā)起了一個(gè)聯(lián)盟--OSEK/VDX,目的是為了形成一個(gè)針對(duì)汽車中各分布式單元的開(kāi)放式架構(gòu)的工業(yè)標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)對(duì)RTOS、軟件接口、通信和網(wǎng)絡(luò)管理任務(wù)都有專門的說(shuō)明。
“OSEK”的意思是“開(kāi)放系統(tǒng)和汽車電子的對(duì)應(yīng)通信接口”。這個(gè)標(biāo)準(zhǔn)最初是在1993年由德國(guó)的BMW、Bosch、Daimler-Benz、Opel、Siemens、VW和Karlsruhe大學(xué)共同發(fā)起制定的。“VDX”的意思是“車輛分布式執(zhí)行”(VehicleDistributedeXecutive),這個(gè)標(biāo)準(zhǔn)的發(fā)起人是法國(guó)的PSA和Renault。1994年2個(gè)聯(lián)盟合并,由于OSEK操作系統(tǒng)的功能能夠和VDX協(xié)調(diào)運(yùn)行,所以為了簡(jiǎn)化,一般使用術(shù)語(yǔ)“OSEK”來(lái)取代OSEK/VDK。
開(kāi)發(fā)OSEK規(guī)范之前,汽車電子開(kāi)發(fā)者要支付高額的、周期性開(kāi)發(fā)費(fèi)用,面對(duì)控制單元(ECU)軟件非應(yīng)用相關(guān)方面的管理也不正規(guī),不同的軟件接口和協(xié)議所造成的各生產(chǎn)廠商制造的控制單元部件的不兼容性的問(wèn)題更是嚴(yán)重,這些問(wèn)題的存在便促使了OSEK出現(xiàn)[2]。
OSEK聯(lián)盟只是定義OSEK規(guī)范,符合該規(guī)范的開(kāi)源和商業(yè)的RTOS產(chǎn)品現(xiàn)在已經(jīng)很多了,比如開(kāi)源的FreeOSEK、OpenOSEK、Toppers-OSEK(日本京都大學(xué)發(fā)起的開(kāi)源項(xiàng)目,我在“開(kāi)源的嵌入式OS”一文中已經(jīng)作了介紹)。商業(yè)OSEKOS有德國(guó)Vector公司的OS/Can、EB(Elektrobit)公司的tresosAutoCore和OsekCore,美國(guó)MentorGraphic的Nucleus,還有GPL和商業(yè)雙授權(quán)的ArcticCore,它同時(shí)支持AUTOSAR和OSEK規(guī)范[3]。
OSEK是基于ECU開(kāi)發(fā),標(biāo)準(zhǔn)包括三部分:操作系統(tǒng)(0S)、通信(COM交互層)、網(wǎng)絡(luò)管理(NM)。AUTOSAR(汽車開(kāi)發(fā)系統(tǒng)架構(gòu))是基于整體汽車電子開(kāi)發(fā),包括汽車電子功能的劃分、ECU統(tǒng)一軟件架構(gòu)、ECU軟件開(kāi)發(fā)過(guò)程等整套的方法和理論。AUTOSAR規(guī)范中定義的操作系統(tǒng)就是OSEKOS,而通信和網(wǎng)絡(luò)管理雖然和OSEK有區(qū)別,但思路是一樣的。