基于AUTOSAR开发工具链的AUTOSAR软件实战开发-软件架构设计(二)
軟件功能模塊劃分
按照軟件功能需求和功能安全等級分割軟件功能組件,一般ECU通用功能為例,模塊劃分先按照功能劃分,前面我們提到,對于基于標準AUTOSAR開發(fā),當前無論是整車廠還是供應商,其底層開發(fā)均愿意采用基于工具鏈開發(fā),不論是Vector亦或者東軟的neusar,其底層功能都有自己很成熟的功能模塊劃分,再此不做詳細介紹,大的功能模塊包含通信模塊、診斷服務模塊,存儲模塊,復雜驅動模塊幾類。
?
對于不同的ECU,不同的整車廠,不同的供應商,由于其功能需求區(qū)別過大,甚至可以說是完全不同的需求,因此無法采用完全固定的架構方案適配所有需求,因此對于整車廠和供應商,其架構主要功能模塊劃分工作在應用層,當然之里面也能抽出一些較為通用的功能,一般會包含狀態(tài)管理模塊,數據處理模塊,故障處理模塊,控制輸出模塊,通信信息處理模塊等。至于這些模塊功能具體怎么細分就需要架構師去詳細分析考量了。
?
模塊劃分重點考慮以下兩點:
1.模塊功能高內聚,模塊間低耦合
在做架構設計時都會考慮的,高內聚可以使模塊的可重用性、移植性大大更高。低耦合強可以減少模塊間接口。二者相輔相成,一般內聚性高,耦合性就會低。主要方法:
??? ?分層設計,應用層架構也盡量采用分層設計,從數據方向考慮,可以分為數據獲取層(I/O,CAN/LIN等方式獲取數據),數據應用層。比如CAN接收數據,一幀報文有十幾個信號,每個信號有偏移和縮放,但是實際使用的信號只有三個,那么數據獲取層只需將這三個信號進行偏移和縮放處理,傳給數據應用層。從邏輯方向考慮,可分為邏輯策略層,控制輸出層。
??? ?模塊只對外暴露最小限度的接口,形成最低的依賴關系,模塊內部的修改,就不得影響其他模塊,比如采集溫度處理,有二十個溫度處理點,但是后續(xù)只需要使用最大最小溫度,那么就不需要將所有溫度對外輸出,在數據獲取層模塊對溫度進行求極值處理,然后對外只輸出最大最小溫度兩個接口,這樣在溫度采樣點個數或獲取方式發(fā)生變更時只影響數據獲取層模塊,不會對數據應用層模塊產生影響。
??? ?不允許直接采用全局變量形式進行數據傳輸,所有對外數據交互均需通過RTE,所有接口均需通過RTE也是AUTOSAR要求的方式,可以保證模塊有更好的獨立和切割性。
2.功能安全。
隨著汽車電子器件越來越多的應用到汽車上,功能安全也越來越受到重視,功能安全需求的加入,在設計架構功能模塊時,就多了一個考慮因素,舉個例子,對于一個車速采集功能,其功能安全等級要求是ASIL C,但是在TSR(功能安全需求)中拆分為了兩條功能安全ASIL A(C)的需求和ASIL B(C)的需求,這樣我們在劃分模塊時也需要將電壓采集功能拆分為兩個功能模塊,一個用于實現安全ASIL A(C)的需求,一個用于實現實現安全ASIL B(C)的需求。(功能安全拆解在此不做詳細敘述)
總結
以上是生活随笔為你收集整理的基于AUTOSAR开发工具链的AUTOSAR软件实战开发-软件架构设计(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 解压缩命令
- 下一篇: SICK LMS511开发及数据结构分析