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