嵌入式線控駕駛系統(tǒng)開發(fā)過程中設(shè)計(jì)和測試考慮
5. 分布式結(jié)構(gòu)設(shè)計(jì)
現(xiàn)代嵌入式系統(tǒng)包含一些分布式ECU,它們相互間通過一個(gè)象FlexRay這樣的容錯通信系統(tǒng)進(jìn)行實(shí)時(shí)通信。寶馬(BMW)最新的DSC(動態(tài)穩(wěn)定性控制)包含ABS作為其15個(gè)子功能之一。通過從DECOMSYS向單個(gè)子系統(tǒng)增加主機(jī)、任務(wù)和信號等網(wǎng)絡(luò)部件,嵌入式功能可以連接和映射到一個(gè)ECU結(jié)構(gòu)之上。此外,它方便了OSEKtime/OS等時(shí)間觸發(fā)操作系統(tǒng)的任務(wù)激活時(shí)間行為的仿真。集群、主機(jī)、任務(wù)和連接是在MATLAB/Simulink環(huán)境下進(jìn)行設(shè)計(jì)和仿真的。最后,整個(gè)設(shè)計(jì)與DECOMSYS::DESIGNER產(chǎn)品實(shí)現(xiàn)了無縫集成,可以與FlexRay xCDEF設(shè)計(jì)數(shù)據(jù)倉庫進(jìn)行互動。
Vector公司和Cadence公司提供的分布式網(wǎng)絡(luò)設(shè)計(jì)解決方案(分別為DaVinci和SysDesign)集成了Simulink/Stateflow的Real-Time Workshop/Real-Time Workshop Embedded Coder,由子系統(tǒng)產(chǎn)生代碼,并將它們映射到結(jié)構(gòu)上進(jìn)行驗(yàn)證。
產(chǎn)品代碼生成 模型經(jīng)過驗(yàn)證并且生效之后,就該產(chǎn)生代碼了。使用編譯器時(shí),這個(gè)過程是簡單的。這里存在著各種不同的優(yōu)化設(shè)置和用戶配置選項(xiàng)。關(guān)鍵之處在于保持代碼的高效、精確并與原有的代碼或其他工具進(jìn)行集成。另一個(gè)要點(diǎn)是保持代碼相對框圖的可追蹤性,以便進(jìn)行檢查和驗(yàn)證。
圖6:圖3中電源管理設(shè)計(jì)的測試覆蓋
圖7顯示了一個(gè)自動鏈接的HTML報(bào)告。當(dāng)開發(fā)人員選擇代碼中的求和模塊時(shí),它將把該模塊在框圖中進(jìn)行高亮顯示。
圖7:代碼回放
圖6*中的應(yīng)用使用了速率轉(zhuǎn)換模塊。不過,它與商用RTOS之間也存在著直接的聯(lián)系,包括VxWorks 和各種OSEK產(chǎn)品。如圖7*所示,還需要集成設(shè)備驅(qū)動程序。
3. 硬件在環(huán)測試
控制器建立起來之后,就可以在環(huán)路中使用實(shí)時(shí)設(shè)備模型來執(zhí)行一系列開環(huán)和閉環(huán)測試了。有一種測試僅涉及處理器,稱作“處理器在環(huán)”測試。另一種測試使用實(shí)際建立的ECU硬件,叫做“硬件在環(huán)”測試。在這兩種測試中,都使用設(shè)備模型來對物理控制器進(jìn)行測試。通過這一系列測試(或許與需求驗(yàn)證中所用的是同種測試),控制器必須看來對于消費(fèi)者是可以接受的。
4. 集成組件
在開發(fā)過程中,大部分軟件標(biāo)準(zhǔn)都要求需求追蹤能力,這或許源于其他需求工具。此外,還需要軟件配置管理(SCM)來對開發(fā)過程中的各種工件(artifact)進(jìn)行存儲、版本維護(hù)和查找。由報(bào)告生成工具產(chǎn)生的文檔將確保管理者、消費(fèi)者和供應(yīng)商能夠看到模型。SCM的接口如圖8*所示。
圖8:器件驅(qū)動模塊庫
當(dāng)整個(gè)軟件工程化過程行為得到支持時(shí),將會推動軟件的進(jìn)步。但是,僅僅進(jìn)行局部的、支離破碎的改進(jìn)是不足夠。本文介紹了基于模型的設(shè)計(jì)和產(chǎn)品代碼生成的一個(gè)完整的軟件工程化框架,并且還給出了具體的方法和工具,意在表明它并非僅僅是一種理論,而是既實(shí)用又有效。
評論