AUTOSAR開發技術手冊

一、總體概述
AUTOSAR是Automotive Open System Architecture(汽車開放系統架構)的首字母縮寫,是一家致力於制定汽車電子軟件標準的聯盟。AUTOSAR是由全球汽車製造商、部件供應商及其他電子、半導體和軟件系統公司聯合建立,各成員保持開發合作伙伴關係。自2003年起,各夥伴公司攜手合作,致力於爲汽車工業開發一個開放的、標準化的軟件架構。AUTOSAR這個架構有利於車輛電子系統軟件的交換與更新,併爲高效管理愈來愈複雜的車輛電子、軟件系統提供了一個基礎。此外,AUTOSAR在確保產品及服務質量的同時,提高了成本效率。

整車軟件系統可通過AUTOSAR架構對車載網絡、系統內存及總線的診斷功能進行深度管理,它的出現有利於整車電子系統軟件的更新與交換,並改善了系統的可靠性和穩定性。目前支持AUTOSAR標準的工具和軟件供應商都已經推出了相應的產品,提供需求管理,系統描述,軟件構件算法模型驗證,軟件構建算法建模,軟件構件代碼生成,RTE生成,ECU配置以及基礎軟件和操作系統等服務,幫助OEM實現無縫的系統軟件架構開發流程。

AUTOSAR計劃目標主要有三個:

1)建立獨立於硬件的分層軟件架構;

2)爲實施應用提供方法論,包括制定無縫的軟件架構堆疊流程並將應用軟件整合至ECU;

3)制定各種車輛應用接口規範,作爲應用軟件整合標準,以便軟件構件在不同汽車平臺複用。

二、分層概述


AUTOSAR整體框架爲分層式設計,以中間件RTE(Runtime Environment)爲界,隔離上層的應用層(Application Layer)與下層的基礎軟件(Basic Software)。圖1是AUTOSAR體系架構分層標準。

                                                          圖 1 AUTOSAR體系架構分層標準

1、           Application Layer(應用層)


應用層中的功能由各軟件組件SWC(software component)實現,組件中封裝了部分或者全部汽車電子功能,包括對其具體功能的實現以及對應描述,如控制大燈,空調等部件的運作,但與汽車硬件系統沒有連接。

1) 軟件組件SWC(software component)

軟件組件SWC(software component)是由Atomic component最小邏輯單元組成。Atomic component最小邏輯單元有Application、Sensor/actuator兩種類型。其中Application是算法實現類型,能在各ECU上自由映射;Sensor/actuator是爲Application提供I/O端口類型,用於與ECU綁定,但不可像Application那樣能在各ECU上自由映射。數個SWC的邏輯集合組合成Composition。圖2是SWC組成實例。

                                                                                   圖 2

2)端口Ports

端口Ports是用來和其他SWC通信。通信內容分爲Data elements與operations。其中,Data elements用Sender/Receiver通信方式;operations用Client/Server通信方式。圖3是通信方式

                                                                                          圖3

發送—接收端口(Sender/Receiver)用來傳輸數據,具有一個通信端口可以包含多種數據類型特點。但如果一個數據類型要通過總線傳輸,那麼它必須與一個信號對應起來,數據類型既可以是簡單的數據類型(integer, float),也可以是複雜類型(array, record)。通信方式:1:n或n:1。

                                                                                          圖 4

客戶端—服務器端口(Client/Serverr)用來提供Operation服務,具有一個客戶端—服務器端口可以包含多種Operation和同步或是異步通信特點,一個客戶端—服務器端口可以包含多種Operations操作,Operations操作也可被單個調用。通信方式:1:n或n:1。

                                              

                                                                                          圖 5

3)可運行實體(Runnables entities)

可運行實體(Runnablesentities),簡稱Runnables。可運行實體包含實際實現的函數,可以是具體的邏輯算法或是實際操作。可運行實體由RTE週期性或是事件觸發調用,如當接收到數據。

                                                                                 圖 6

2、Runtime environment層     (RTE)


中間件部分給應用層提供了通信手段,這裏的通信是一種廣義的通訊,可以理解成接口,應用層與其他軟件體的信息交互有兩種,第一種是應用層中的不同模塊之間的信息交互;第二種是應用層模塊同基礎軟件之間的信息交互。而RTE就是這些交互使用的接口的集散地,它彙總了所有需要和軟件體外部交互的接口。從某種意義上來看,設計符合AUTOSAR的系統其實就是設計RTE。

SW-C之間的通信是調用RTE API函數而非直接實現的,都在RTE的管理和控制之下。每個API遵循統一的命名規則且只和軟件組件自身的描述有關。具體通信實現取決於系統設計和配置,都由工具供應商提供的RTE Generator自動生成的。

在設計開發階段中,軟件組件通信層面引入了一個新的概念,虛擬功能總線VFB(Virtual Functional Bus)。它是對AUTOSAR所有通信機制的抽象,利用VFB,開發工程師將軟件組件的通信細節抽象,只需要通過AUTOSAR所定義的接口進行描述,即能夠實現軟件組件與其他組件以及硬件之間的通信,甚至ECU內部或者是與其他ECU之間的數據傳輸。

                                                                                           圖 7

從圖中可以看到,有三種接口描述,我們先從定義的角度來看這三種接口有什麼不同。

1.    StandardizedInterface(標準接口):標準接口是在AUTOSAR標準中被標準化的接口,但是並沒有使用AUTOSAR接口技術,標準接口通常被用在某個ECU內部的軟件模塊之間的通訊,不能用於網絡通訊。

2.    StandardizedAUTOSAR Interface(標準AUTOSAR接口):標準AUTOSAR接口是在AUTOSAR標準中使用AUTOSAR接口技術標準化的接口,這樣的接口的語法和語義都被規定好了,這樣的接口通常使用在AUTOSAR服務中,這樣的接口是基礎軟件服務提供給應用程序的。

3.    AUTOSARInterface(AUTOSAR接口):AUTOSAR接口定義了軟件模塊和BSW模塊(僅僅是IO抽象和複雜驅動)之間交互的方式,AUTOSAR接口是以port的形式出現的,AUTOSAR將ECU內部的通訊和網絡通訊使用的接口進行了統一。

從上邊的定義中我們可以看出不同的接口使用的場景不同,及不同的模塊交互會使用到不同的接口。除了將接口歸類以外,這樣定義究竟有什麼實際的意義呢?從實際使用的角度來看,第一和第二類接口都是語法語義標準化的接口,即接口函數的數量、函數的名字、函數參數名字及數量、函數的功能、函數的返回值都已經在標準裏邊定義好了。不同的公司的軟件在實施這些接口的時候雖然內容算法不同,但是它們長相和功能是一致的,接口定義在AUTOSAR規範文檔裏邊是可以查得到的。第三類接口呢,AUTOSAR僅僅規定了簡單的命名規則,這類接口高度的和應用相關,比如BCU控制大燈打開的接口可以是Rte_Call_RPort_BeamLight_SetDigOut也可以是Rte_Call_RPort_HeaderLight_Output,公司可以自己定義,又比如儀表想要從CAN總線上獲得車速,改接口可以是Rte_IRead_RE_Test_RPort_Speed_uint8也可以是Rte_IRead_Test_RE_RPort_Spd_uint8,這些接口必須通過RTE交互。

                                                                            圖 8

3、Basic software層(BSW)


雖然汽車中有各種不同的ECU,它們具有各種各樣的功能,但是實現這些功能所需要的基礎服務是可以抽象出來的,比如IO操作,AD操作,診斷,CAN通訊,操作系統等,無非就是不同的ECU功能,所操作的IO、AD代表不同的含義,所接收發送的CAN消息代表不同的含義,操作系統調度的任務週期優先級不同。這些可以被抽象出來的基礎服務被稱爲基礎軟件。根據不同的功能對基礎軟件繼續可以細分成四部分,分別爲服務層(Service Layer),ECU抽象層(ECUAbstract Layer),複雜驅動(ComplexDriver)和MCAL(Microcontroller Absstraction Layer),四部分之間的互相依賴程度不盡相同。

•     服務層(Service Layer),這一層基礎軟件提供了汽車ECU非應用相關的服務,包括OS,網絡通訊,內存管理(NVRAM),診斷(UDS,故障管理等),ECU狀態管理模塊等,它們對ECU的應用層功能提供輔助支持,這一層軟件在不同領域的ECU中也非常相似,例如不同的ECU中的OS的任務週期和優先級不同,不同的ECU中的NVRAM的分區不同,存儲的內容不同。

•     ECU抽象層(ECU Abstract Layer),這一層軟件提供了ECU應用相關的服務,它是對一個ECU的抽象,它包括了所有的ECU的輸入輸出,比如AD,DIO,PWM等,這一層軟件直接實現了ECU的應用層功能,可以讀取傳感器狀態,可以控制執行器輸出,不同領域的ECU會有很大的不同。

•     MCAL(Microcontroller Absstraction Layer),這一層軟件是對ECU所使用的主控芯片的抽象,它跟芯片的實現緊密相關,是ECU軟件的最底層部分,直接和主控芯片及外設芯片進行交互,它的作用是將芯片提供的功能抽象成接口,然後把這些接口提供給上邊的服務層/ECU抽象層使用。

•     複雜驅動(Complex Drivers),汽車ECU中有一些領域的ECU會處理相當複雜的硬件信號,執行相當複雜的硬件動作,例如發動機控制,ABS等,這些功能相關的軟件很難抽象出來適用於所有的汽車ECU,它是跟ECU的應用以及ECU所使用的硬件緊密相關的,屬於AUTOSAR構架中在不同的ECU上無法移植的部分。

                                                                  

                                                                             圖 9                  

圖10是BSW層中各個子模塊說明。

                                                                              圖 10

4、Microcontroller層
底層驅動層是由芯片生產廠家提供。

三、開發工具


上圖是AutoSar開發流程階段及各個階段可以使用的開發工具。從網上調研情況來看,Vector和EB公司有整套的開發工具鏈。其中,Vector中的DaVinciDeveloper和DaVinci ConfiguratorPro開發工具使用較爲普遍,建議採用Vector公司開發工具鏈。

從開發流程上看,各個開發階段分別都有各自的開發工具:

1)  系統設計階段即需求開發與系統功能設計,採用PREEvision開發工具(價格諮詢未回郵件);

2)  SWC功能軟件開發階段即ECU功能描述,採用DaVinciDeveloper開發工;(價格諮詢未回郵件);

3)  BSW基礎軟件及RTE設計,採用DaVinciConfigurator Pro開工具(價格諮詢未回郵件);

4) 頭文件和C代碼採用MATLAB·Simulink工具自動生成。(盜版)

上圖展示Vector公司開發AutoSar時所用的功能組件,其中紅色字體是Vector工具鏈中自帶組件。根據需要,暫定需要OS、SYS、DIAG、MEM、COM、CAN、FR、ETH、MCAL組件,價格在諮詢當中。

黑色字體是底層硬件供應商提供。現已諮詢到,瑞薩供應商底層驅動售價$20K。

四、開發流程
MATLAB·Simulink和Real-TimeWorkshop Embedded Coder生成AUTOSAR標準的代碼是透明和直觀的過程,它支持兩種不同的工作流程:自上而下和自下而上。我們採用自上而下開發方式。

自上而下,從架構模型到Autosar SC。在自上而下的開發流程中,系統工程師使用架構生成工具(如davinci tool suite)來設計整車ECU網絡。當然,工程師也可以使用其他的架構設計工具。架構軟件會輸出一個XML來描述對應的組件,該文件裏包含了組件的一些必要信息比如:runnables,接口,數據類型等等。Matlab軟件可以利用架構軟件生成的XML文件自動創建Simulink架構模型,裏面包含了接口模塊以及相應的Autosar相關設置。之後系統工程師就可以在該框架模型的基礎上,完善內部的控制模塊。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章