汽车软件设计的变化趋势
汽車軟件到目前還是一種嵌入式軟件,嵌入式軟件有領域的特點,汽車軟件和其他嵌入式軟件的開發有所不同,其特點有:
對于傳統汽車,汽車軟件設計就是控制器軟件設計。控制器是用來控制汽車部件的,傳統汽車的部件都是復雜的機械系統,沒有對機械原理的良好了解,無法開發控制算法,所以很容易理解第6點,為什么過去的汽車軟件開發人員大部分是機械類出身。
接著第5點的原因也可以就此引出。由于一個控制器控制一個汽車部件,一個控制器上就運行一個程序,強調實時性而不是多任務,對操作系統的要求不高,反而操作系統越簡單實時性越好,所以大部分控制器供應商選擇自行開發專用的底軟(不一定是操作系統),相較于使用通用操作系統,專用底軟不僅能提高性能還能降低成本(操作系統免費而且對硬件要求低)。
機械系統控制算法的參數很多都是無法直接確定的,需要試驗得到,所以各大汽車零部件商都很重視標定功能的開發,汽車軟件的標定功能是領先于其他嵌入式領域的。這是第4點的原因。
CAN通信在很多工業領域也會用到,但是說到行業內的普及率還是汽車為最。CAN通信在今天已經遇到很多瓶頸,但是在汽車總線剛剛出現的時候很好的兼顧了成本和性能。這是第3點的原因。
正如前面所說,研究算法的人大部分是機械類專業出身,他們不懂編程,雖然采用了標準庫的C語言寫汽車控制算法并不難,但是測試這些算法需要搭建一個比算法復雜得多的物理模型,用C完成這部分工作對他們來說是一個難題:算法工程師可以把控制系統拆成一個個小模塊并用C函數復現,但是不懂如何把C函數串起來;而專業的C語言工程師能夠把C函數串起來,但是不知道為什么這么做,也不知道如何去觀察。所以很早以前一個算法的開發需要算法開發者精通C語言或者和C語言工程師緊密配合。而simulink誕生之后,這一切都不需要了,它把后者的工作全包了,算法工程師再也不需要擔心測試環境的搭建,全圖形化的界面的學習幾乎是零成本。算法的開發和測試基本可以由算法工程師一人完成,開發效率提高,開發成本降低。同時也帶來一個新問題,就是算法不能直接使用還要C語言化。這就需要自動代碼生成,由于定點化的問題這部分工作還需要人的參與。這就是汽車軟件界言必simulink的原因。
至于第一點,這是個歷史問題,不過為什么不是arm呢,因為汽車對芯片的那點功耗還是承擔得起的。
to be continued….
總結
以上是生活随笔為你收集整理的汽车软件设计的变化趋势的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XCP协议基础知识 - 协议层
- 下一篇: 【mysql集群故障恢复】