車輛控制系統軟體的集成,大家如何理解這個概念?尤其在寫代碼與做模型的時候,如何去集成?大家的經驗是啥?

大家在做模型開發以及代碼時候,尤其在工程應用中,大家是如何理解集成這個概念?請大神指點迷津!


沒人回答我就先來強答一發,拋磚引玉

首先集成的概念我覺得是把控制邏輯模型生成的代碼,與底層驅動硬體的代碼融合在一起,生成編譯後可以在控制器中運行的工程。所以集成的目的就是生成完整的工程。

比較常見的做法是首先定義介面,在autosar軟體架構當中,底層與應用層通過RTE層進行交互,所以首先邊界需要定義清楚,也就是介面函數和變數需要明確。這一步是集成的基礎,這樣的好處是底層負責硬體驅動,應用層負責演算法邏輯,兩邊可以並行開發而且可以更加專註於自己的部分。

然後應用層控制邏輯用模型搭建,使用工具生成代碼,或者直接編譯成庫文件,在工程中融合進去,具體細節需要注意應用層介面函數的出入口,運行時間(考慮cpu負載),介面變數的調用等,可能需要使用C語言進行具體的代碼編輯。

總結一下,應用層與底層各司其職,中間通過介面實現連接。


謝謝誠邀。

軟體集成,無非是生成控制系統的軟體安裝包,這個包按照標定參數或者配置文件可能安裝在不同平台或者ECU上,或者生成不同平台或者ECU的安裝包。

軟體集成一定要提到持續集成的概念,首先要有代碼版本庫,svn或者gitlab,其次,要有開發編譯環境,可能是Linux開發環境和windows開發環境,如arm,dsp,第三,通過持續集成工具gitlab-ci或者jenkins構建集成框架,開發人員將代碼上傳到代碼庫後,觸發編譯環境自動集成編譯(從配置庫集成不同開發人員的模塊),編譯通過後,將生產環境(整車環境)需要的可執行程序,配置標定文件,庫文件打包,如果有FOTA功能,可在線更新整車上,如果沒有,則人工拷貝安裝包到車上。

當然,集成框架中,在集成安裝包安裝到整車前,如果有條件,可以集成進靜態分析如QAC,單元測試如vectorcast,SIL環境,HIL環境等自動化模擬測試工具。到此初步建立自動化持續集成框架,無論什麼控制器,凡是人工可轉為腳本執行的,凡是可以程序判斷預期結果的,都可以集成進去。


只接觸過安全氣囊控制器和前視攝像頭的開發。所以只能就這兩個產品進行描述。我做過的安全氣囊控制器產品是分為系統,硬體,系統軟體,控制演算法(也可以叫feature),機械,測試,匹配(包括標定)。一般控制演算法是用matlab的simulink進行開發,mask後轉成autocode,然後用一些handcode將autocode集成到系統軟體中。系統軟體除了包括控制演算法,還有Power mode, Bootloader, CAN COM, Diagnostic, Calibration等模塊。

攝像頭產品由於計算量比較大,因此多採用3核架構,DSP, ARM, Host三個核。 一般DSP和ARM會封裝成一個底層雙核處理器,主要集成視覺檢測演算法以及目標融合演算法(如果有雷達目標數據輸入的話)。Host會實現電源,診斷,標定,bootloader等常用模塊外,會集成控制演算法(也是simulink模型生成的autocode)。


推薦閱讀:

TAG:軟體 | 代碼 | 系統集成 | 控制 | 汽車電子控制 |