SMARTCAR軟件平臺(tái)實(shí)現(xiàn)汽車電子系統(tǒng)軟件的整體設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著汽車電子向著智能化、標(biāo)準(zhǔn)化、網(wǎng)絡(luò)化的方向發(fā)展,軟件開(kāi)發(fā)在產(chǎn)品開(kāi)發(fā)中所占的比重不斷增加,采用平臺(tái)化的設(shè)計(jì)方法降低成本、縮短開(kāi)發(fā)時(shí)間、充分利用已有資源成為一種必然趨勢(shì)。
目前,主要的汽車電子軟件的開(kāi)發(fā)標(biāo)準(zhǔn)有AUTOSAR、MISRA和OSEK。浙江大學(xué)CCNT實(shí)驗(yàn)室根據(jù)已有的標(biāo)準(zhǔn)和平臺(tái),開(kāi)發(fā)出了SMARTCAR汽車電子軟件平臺(tái),包括了智能汽車平臺(tái)和汽車電子軟件開(kāi)發(fā)平臺(tái)。
浙江大學(xué)副校長(zhǎng)吳朝暉老師同時(shí)也是CCNT的學(xué)術(shù)帶頭人,他介紹說(shuō),包括面向智能汽車的自適應(yīng)中間件平臺(tái)ScudWare和在此基礎(chǔ)上開(kāi)發(fā)的一個(gè)智能汽車空間原型系統(tǒng),是由車載處理中心、各種上下文采集設(shè)備、以及一系列遠(yuǎn)程Web服務(wù)器組成的一個(gè)計(jì)算環(huán)境,主要目的是根據(jù)用戶設(shè)定或者當(dāng)前環(huán)境特性自動(dòng)提供適當(dāng)?shù)姆?wù),減少用戶主動(dòng)發(fā)出服務(wù)請(qǐng)求的次數(shù),在車內(nèi)形成自發(fā)的、定制的服務(wù)空間,為用戶提供安全、舒適的行車環(huán)境。汽車電子軟件開(kāi)發(fā)平臺(tái)SmartOSEK主要包括高可靠強(qiáng)實(shí)時(shí)的嵌入式操作系統(tǒng)內(nèi)核SmartOSEK OS、支持服務(wù)的板級(jí)支持體系結(jié)構(gòu)SmartOSEK BSS以及支持基于模型設(shè)計(jì)的圖形化開(kāi)發(fā)環(huán)境SmartOSEK IDE幾大部分。重點(diǎn)解決復(fù)雜汽車電子應(yīng)用對(duì)操作系統(tǒng)的需求問(wèn)題,面向汽車領(lǐng)域的建模描述問(wèn)題,車控軟件的有效性驗(yàn)證問(wèn)題,開(kāi)發(fā)過(guò)程中的文檔和代碼的自動(dòng)生成問(wèn)題,通過(guò)基于模型的軟件開(kāi)發(fā)思想改變嵌入式系統(tǒng)的傳統(tǒng)開(kāi)發(fā)方法,最終提高汽車電子控制系統(tǒng)產(chǎn)品開(kāi)發(fā)的效率和產(chǎn)品質(zhì)量,降低開(kāi)發(fā)成本。
SmartOSEK的組成結(jié)構(gòu)
SmartOSEK標(biāo)準(zhǔn)重點(diǎn)借鑒OSEK OS、OSEK OIL、OSEK COM、OSEK NM標(biāo)準(zhǔn)。AUTOSAR標(biāo)準(zhǔn),目前來(lái)說(shuō),主要借鑒了其Architecture的Communication Stack、RTE、System Services、Peripherals標(biāo)準(zhǔn)以及MethodologyAndTools、Application InteRFaces中相關(guān)的部分。MISRA標(biāo)準(zhǔn)主要是借鑒其針對(duì)汽車電子安全代碼的127條規(guī)則。
嵌入式實(shí)時(shí)操作系統(tǒng)SmartOSEK OS
SmartOSEK由操作系統(tǒng)、板級(jí)支持、開(kāi)發(fā)工具三大部分組成,其操作系統(tǒng)部分SmartOSEK OS是嚴(yán)格按照OSEK/VDX規(guī)范實(shí)現(xiàn)的,而且是國(guó)內(nèi)第一個(gè)通過(guò)OSEK官方組織認(rèn)證的符合OSEK規(guī)范的嵌入式實(shí)時(shí)操作系統(tǒng)。
SmartOSEK OS嚴(yán)格實(shí)現(xiàn)了OSEK標(biāo)準(zhǔn)所規(guī)定的內(nèi)核模塊,具體包括任務(wù)管理模塊、資源管理模塊、事件機(jī)制模塊、定時(shí)器模塊、中斷處理模塊、錯(cuò)誤處理模塊、內(nèi)部通信模塊等。
SmartOSEK內(nèi)核模塊需要底層模塊的支撐,包括體系相關(guān)模塊、開(kāi)發(fā)調(diào)試模塊、硬件驅(qū)動(dòng)模塊。體系相關(guān)模塊實(shí)現(xiàn)體系密切相關(guān)部分,如上下文切換等;開(kāi)發(fā)調(diào)試模塊針對(duì)特定的平臺(tái)實(shí)現(xiàn)對(duì)應(yīng)用的監(jiān)控跟蹤調(diào)試;硬件驅(qū)動(dòng)模塊包括各研究外設(shè)的驅(qū)動(dòng)。SmartOSEK OS的應(yīng)用開(kāi)發(fā)主要面向汽車電子控制系統(tǒng),包括發(fā)動(dòng)機(jī)控制、變速箱控制、通信系統(tǒng)控制等。圖1是SmartOSEK OS的架構(gòu)圖。
SmartOSEK OS可滿足嚴(yán)格的片內(nèi)存儲(chǔ)器要求,內(nèi)核在4KB~12KB之間(32位PowerPC平臺(tái));主頻為40M的MPC555上的SmartOSEK OS的上下文切換時(shí)間為微秒級(jí);最大中斷屏蔽時(shí)間為21.72μs;最高可承受運(yùn)行40kHz的中斷。
板級(jí)支持SmartOSEK BSS
板級(jí)支持SmartOSEK BSS是一個(gè)開(kāi)放、通用的平臺(tái),屏蔽具體硬件細(xì)節(jié),通過(guò)API向上層操作系統(tǒng)和應(yīng)用程序提供服務(wù),實(shí)現(xiàn)操作系統(tǒng)和應(yīng)用程序與硬件無(wú)關(guān)。對(duì)于新的硬件平臺(tái),只要SmartOSEK BSS能夠?qū)崿F(xiàn),那么上層軟件就可以方便的移植。同時(shí)SmartOSEK BSS也應(yīng)該能夠在不同的開(kāi)發(fā)平臺(tái)上使用,雖然它的具體實(shí)現(xiàn)可能會(huì)有不同,但接口是統(tǒng)一的。
參照AUTOSAR標(biāo)準(zhǔn)中對(duì)軟件系統(tǒng)的劃分,板級(jí)支撐平臺(tái)采用層次化結(jié)構(gòu)設(shè)計(jì),分為微控制器抽象層和ECU抽象層,同時(shí)將整個(gè)板級(jí)支撐平臺(tái)按照功能分為四個(gè)模塊。
MCU抽象層包含各種驅(qū)動(dòng),按照功能特點(diǎn)分為四部分:IO驅(qū)動(dòng)、通訊驅(qū)動(dòng)、存儲(chǔ)驅(qū)動(dòng)和微控制器驅(qū)動(dòng)。它們是一個(gè)個(gè)軟件模塊,用于直接訪問(wèn)微控制器內(nèi)的外設(shè)或者是內(nèi)存映射到微控制器的外部設(shè)備。MCU抽象層的結(jié)構(gòu)如圖2所示。
ECU抽象層包含那些通過(guò)網(wǎng)絡(luò)方式連接到微控制器的外部設(shè)備的驅(qū)動(dòng)。ECU抽象層也分為四個(gè)部分:IO硬件抽象、通訊硬件抽象、存儲(chǔ)硬件抽象、板上設(shè)備抽象。
集成開(kāi)發(fā)環(huán)境SmartOSEK IDE
SmartOSEK IDE是面向汽車電子應(yīng)用、支持SmartOSEK操作系統(tǒng)的集成開(kāi)發(fā)環(huán)境。它充分借鑒了基于模型驅(qū)動(dòng)的設(shè)計(jì)思想,圍繞汽車電子軟件開(kāi)發(fā)領(lǐng)域V字型流程,提供UML需求建模、SmartC算法建模、狀態(tài)圖模型驗(yàn)證、系統(tǒng)可調(diào)度性分析、自動(dòng)代碼生成、自動(dòng)文檔生成等一整套開(kāi)發(fā)工具鏈。SmartOSEK IDE的總體結(jié)構(gòu)見(jiàn)圖3。
按照模型驅(qū)動(dòng)的開(kāi)發(fā)流程,首先是UML需求建模和結(jié)構(gòu)建模,并對(duì)UML進(jìn)行模型驗(yàn)證,以確定設(shè)計(jì)是否滿足需求。SmartOSEK IDE提供模型轉(zhuǎn)換工具,直接把UML模型轉(zhuǎn)換成SmartC模型,在SmartC模型上進(jìn)行具體算法建模。在模型建立完成后,可以對(duì)模型進(jìn)行可調(diào)度性分析,以確保該模型滿足可調(diào)度性的要求。最后可以自動(dòng)生成針對(duì)目標(biāo)平臺(tái)的符合MISRA標(biāo)準(zhǔn)的高質(zhì)量C代碼以及word格式的文檔。
SmartC是浙江大學(xué)CCNT實(shí)驗(yàn)室嵌入式系統(tǒng)工程中心(ESE)自主開(kāi)發(fā)的面向汽車電子領(lǐng)域的系統(tǒng)描述語(yǔ)言,和UML互為補(bǔ)充。SmartC的核心是其層次化建模方法,從上到下將系統(tǒng)的設(shè)計(jì)分為系統(tǒng)層、構(gòu)件層、任務(wù)層、子任務(wù)層、組件層五個(gè)層次。系統(tǒng)層關(guān)注的是整個(gè)系統(tǒng)的結(jié)構(gòu)和需求,構(gòu)件層關(guān)注的是系統(tǒng)的功能需求和軟件部署,任務(wù)層次關(guān)注的是系統(tǒng)的實(shí)現(xiàn),組件層關(guān)注控制算法的實(shí)現(xiàn)。
SmartOSEK IDE支持從模型自動(dòng)生成針對(duì)SmartOSEK OS的應(yīng)用程序C代碼。生成的C代碼可以和SmartOSEK OS一起直接編譯運(yùn)行的,不需要再手動(dòng)修改。SmartOSEK IDE為用戶手動(dòng)在模型中編寫(xiě)的代碼提供符合MISRA標(biāo)準(zhǔn)代碼檢查器。
自動(dòng)生成技術(shù)是提高軟件開(kāi)發(fā)效率的重要手段,SmartOSEK IDE自動(dòng)生成工具包括程序代碼的自動(dòng)生成和設(shè)計(jì)文檔的自動(dòng)生成。程序代碼的自動(dòng)生成根據(jù)系統(tǒng)模型的設(shè)計(jì)和系統(tǒng)的配置文件,快速將預(yù)制的程序代碼組合成為實(shí)際的應(yīng)用系統(tǒng),能自動(dòng)完成系統(tǒng)框架。預(yù)制的代碼包括各種復(fù)用的構(gòu)件、各種驅(qū)動(dòng)以及操作系統(tǒng)等代碼,預(yù)制代碼越豐富,代碼自動(dòng)生成的效率就越高。設(shè)計(jì)文檔的自動(dòng)生成是指根據(jù)設(shè)計(jì)的系統(tǒng)模型自動(dòng)生成相關(guān)的設(shè)計(jì)文檔。自動(dòng)生成技術(shù)能消除傳統(tǒng)軟件開(kāi)發(fā)方法各個(gè)階段之間的壁壘,減少問(wèn)題并提高效率。自動(dòng)生成技術(shù)另外一個(gè)很大的優(yōu)點(diǎn)是能保持生成源與生成目標(biāo)的同步,即模型和代碼能同步更新,非常好的保持系統(tǒng)的一致性。
針對(duì)不同的硬件平臺(tái),SmartOSEK IDE提供了配置工具在自動(dòng)生成代碼之前進(jìn)行配置和選擇,配置后,能自動(dòng)生成適應(yīng)不同平臺(tái)上運(yùn)行的代碼。自動(dòng)生成的代碼框架是提前針對(duì)不同平臺(tái)預(yù)制好的,已經(jīng)作過(guò)相應(yīng)的優(yōu)化。