潘志前
(上海蔚蘭動力科技有限公司,上海,200050)
截至2018年9月,全國機動車保有量達3.22億輛[公安部數據],2017年,全國機動車四項污染物排放總量初步核算為4359.7萬噸,機動車的尾氣排放成為空氣污染的首要因素。電動汽車具有零排放、零污染的優點,受到相關國家部門的推廣。VCU作為電動汽車的整車控制器,相當于電動汽車的大腦,跟電池控制器、電機控制器、底盤控制器等通過CAN總線進行通訊,控制車輛安全平穩的運行。
AUTOSAR是AUTOmotive Op en System Architecture(汽車開放系統架構)的首字母縮寫,由汽車制造商,供應商以及工具開發商聯合開發。截止到2018年,成員中有9大核心成員,200多其他成員。
隨著汽車軟件開發的復雜度不斷增加,軟件代碼量的急速上升,硬件的多樣化,導致對軟件可移植性的依賴越來越強。AUTOSAR具有標準化的接口,通過配置可以任意移植應用層到不同的硬件上,不但可以提高代碼質量,而且大大縮短了軟件的開發時間。
AUTOSAR架構將底層軟件和應用層軟件通過RTE層進行分離,再將底層分為微控制器抽象層、ECU抽象層、服務層和復雜驅動。見圖1。微控制器抽象層是底層軟件的最底層,主要包括微控制器驅動、MEMORY驅動、通訊驅動、I/O驅動等;ECU抽象層處在底層軟件的中間層,將ECU硬件抽象化,主要是作為微控制器層驅動的接口,也包含外部設備驅動;服務層是底層軟件的最高層,主要包括操作系統,網絡管理、內存管理、診斷服務、ECU狀態及模式管理、監控管理等;復雜驅動是在AUTOSAR里面未被定義,具有很高時序限制的驅動。

圖1 AUTOSAR分層架構

圖2 V型開發流程
AUTOSAR具有一整套的方法進行軟件開發,即方法論。整個方法分為三個階段,即系統配置階段、ECU配置階段及生成代碼階段。系統配置階段包括軟件組件描述、ECU資源描述及系統限制描述。軟件組件描述主要包括該SWC用到的操作和數據、對架構和硬件的要求、所使用的資源、運行機制等;ECU資源描述主要包括使用了哪些硬件,比如傳感器、執行器、存儲器、處理器、外部設備、引腳分配等;系統限制描述主要包括網絡拓撲、協議、通訊矩陣、波特率等。系統配置階段主要包括將端口數據映射到通信矩陣,并將SWC映射到ECU;ECU配置階段主要包括將runnable映射到task中;最后進行軟件集成,利用工具將各個軟件模塊生成的代碼進行集中編譯,最后生成可執行的代碼。
VCU軟件功能的開發嚴格按照V型架構開發,如圖2所示。
VCU相當于電動汽車的大腦,收集來自于駕駛員需求的加速踏板信號、剎車信號、檔位
信號,還有來自于底盤控制器、車身控制器、人機交互等信號,來自于電機控制器的MCU的信號,來自于電池控制器BMU的信號等其他控制器的信號,見圖3。VCU綜合這些信號進行判斷,最終輸出命令到其他控制器,從而達到車輛的安全平穩運行。
VCU的功能主要包括整車高壓上、下電管理、扭矩管理、驅動系統熱管理、高壓能量管理、低壓能量管理、充電管理、診斷管理等,下面簡要介紹一下各個功能模塊。
該模塊主要負責整車高壓的上電和下電時序。上電時,VCU被喚醒,喚醒后VCU進行自檢,自檢完成后接著喚醒其他動力系統控制器,如BMU、MCU等;所有控制器喚醒后,VCU發送上高壓請求,BMU進入預充,預充完成后閉合主繼電器,完成上高壓的流程。下高壓時,VCU發送下電請求,接下來進入電池、電機的絕緣檢測階段,絕緣檢測完畢后,VCU請求BMU打開主繼電器,BMU打開主繼電器后,進入電機主動放電階段,放電完成后,完成下電操作。

圖3 VCU控制系統
該模塊采集加速踏板、剎車踏板、檔位、巡航等信號,經過處理后反應了駕駛員對車輛的需求,期望加速、減速還是巡航等,然后對需求的扭矩進行濾波,保證駕駛的平穩性。最后對來自于底盤控制器、電機控制器、電池控制器等的扭矩進行仲裁,仲裁后輸出需求扭矩到電機控制器。
該模塊主要負責動力系統的熱管理工作,包括電池和電機的熱管理。熱管理模式主要包括主動冷卻模式、被動冷卻模式、大小循環、遠程預加熱等,VCU根據電池SOC、電機工況、電池溫度、電機溫度、環境溫度等條件判斷需要何種熱管理模式,保證電池、電機處于高性能區域。同時,當在低溫環境下,熱管理還針對遠程請求對電池進行預加熱,以保證客戶用車時電池性能不受限制。當車輛的慢充槍插入且低溫時,還能對電池進行保溫管理,維持電池在合理的溫度范圍內。
該模塊主要負責高壓能量的分配,通過計算電池可用功率、電機功率需求、高壓附件的功率需求,分別計算出在放電工況和制動能量回收工況下的能量,再根據電池的能力進行能力分配。當車輛在充電工況時,根據充電槍能力、電池SOC、電池溫度、環境溫度等要素綜合考慮高壓能量的分配,比如電池加熱或制冷需要的能量、乘員艙加熱或制冷需要的能量等。
該模塊主要負責整車的低壓能量管理,主要包括休眠時喚醒VCU使能DCDC給低壓電池充電和整車電壓負載的管理。當低壓電池SOC或電壓低于閾值時,低壓電池通過通訊發送信息喚醒VCU,從而使能DCDC給低壓電池充電;另外,將低壓電壓分為三級,在不同的電壓等級下,根據負載的優先級,會卸載不同的負載,以保證低壓電的穩定。
該模塊主要負責交流慢充,當車輛處于休眠時,可通過插槍信號喚醒VCU,VCU根據當前車輛檔位、充電口溫度、是否有其他故障等綜合判斷是否具備充電條件,如果不具備,則終止,如果具備,則喚醒OBCM、DCDC、BMU等控制器,并完成上高壓準備,然后VCU請求閉合S2和慢充繼電器,進行慢充充電。在充電過程中,持續監控電池的狀態和其他控制器的狀態,當電池充滿或客戶終止時或有過溫、過流、過壓、絕緣等故障時,VCU進行下電請求,以保證安全。
該模塊按照UDS的規范要求,對電動汽車動力系統及其相關系統進行診斷,包括零部件的對地短路、對電源短路、開路、性能等故障進行時時在線診斷外,還包括出現故障后的安全處理,一方面保證人員的安全,另一方面保證車輛的安全。另外,診斷管理還對產線EOL進行測試,以保證車輛零部件能夠正常工作。
軟件集成工具采用的是ETAS提供的ISOLAR-A和Matlab,主要集成步驟包括以下幾步:
1.生成AUTOSAR接口文件,文件格式為.ARXML;
2.將AUTOSAR工程添加到ISOLAR-A工具中;
3.添加軟件組件SWC的輸入和輸出接口;
4.生成軟件組件SWC;
5.連接軟件組件SWC的接口;
6.代碼生成;
7.進行預編譯、編譯和后編譯;
8.生成 Hex 和 A2l。
整個集成主要包括上述的8個步驟,如圖4所示。
軟件測試是軟件開發環節中必不可少、至關重要的環節,主要包括單元測試、MIL測試及HIL測試。
單元測試是軟件開發中最小集合的測試,包括收集軟件需求、制定單元測試計劃、設計單元測試用例、進行單元測試、輸出單元測試報告、評審單元測試結果等活動,見圖5。單元測試可在Matlab/Simulink測試環境下進行,輸入測試用例,輸出測試報告。
MIL(Module In Loop)測試,顧名思義,測試環境也是在Matlab/Simulink下搭建的,將所有VCU模型或部分模型聯系在一起進行測試,亦可搭建駕駛員輸入模型、電機模型、電池模型等,盡可能模擬真實環境,得出的測試結果也更接近實際情況。MIL測試過程類似單元測試。
HIL(Hardware In Loop)測試是軟件開發最后一環測試,我們采用的是ETAS測試臺架,將VCU外圍硬件,如踏板、剎車、慢充繼電器、檔位等接入臺架,在ECU-TEST上根據測試用例進行自動化測試。
AUTOSAR架構具有很多的優點,也是目前主流廠商開發軟件采用的方法。VCU軟件的開發基于此,具有軟件的移植性、替代性、兼容性等優點,本文就是在AUTOSAR架構上進行了VCU多種功能的開發,并對開發的軟件進行集成、測試,以達到整車功能的需求。

圖4 軟件集成流程

圖5 測試流程