浅论汽车电子行业的汽车开放系统架构AUTOSAR
一、AUTOSAR的背景介紹
AUTOSAR,英文全稱為AUTomotive Open System Architecture,翻譯過來就是汽車開放系統架構。它是由全球汽車制造商、部件供應商及其他電子、半導體和軟件系統公司于2003年聯合擬制的一套符合汽車電子軟件開發的、開放的以及標準化的軟件架構,是對汽車技術開發一百多年來的經驗總結。該架構旨在改善汽車電子系統軟件的更新與交換,同時更方便有效地管理日趨復雜的汽車電子軟件系統。使得不同結構的電子控制單元的接口特征標椎化,應用軟件具備更好的可擴展性以及可移植性,能夠實現對現有軟件的重用,大大降低了重復性工作,縮短開發周期。
AUTOSAR成員之間開展合作的主要目標是:使基本系統功能以及接口標椎化,使軟件開發合作伙伴之間能交換、轉換和集成各自的車載網絡功能,最大限度地提高車輛售后的軟件更新和系統升級效率。有了這個標準,AUTOSAR可以把范例從一個基于ECU的系統轉移到基于功能的系統進行設計開發,統籌技術和經濟方面對不斷增長的E/E復雜性的汽車軟件開發的管理。由于AUTOSAR提倡“在標準上合作,在實現上競爭”的原則,其核心思想是“統一標準、分散實施、集中配置”,所以采用AUTOSAR將為OEM帶來很多好處,使得他們對于軟件采購和控制擁有更大和更靈活的權利。軟件系統的開放化和標準化將使更多的軟件供應商進入汽車電子軟件行業,OEM將有更多的選擇,這將有利于提高軟件產品的質量。
AUTOSAR的計劃目標主要有三個:
- 1)建立分層的體系架構
- 2)為應用程序的開發提供方法論
- 3)制定各種應用接口規范
二、ATUOSAR的分層模型
為了實現應用程序和硬件模塊之間的分離,AUTOSAR被抽象成四層:由上至下依次為:應用層(Application Layer)、運行時環境(Run Time Environment,RTE)、基礎軟件層(Basic Software,BSW)以及微控制器(Microcontroller),如下圖所示。
而對于基礎軟件層BSW而言,它主要包括四部分:微控制器抽象層,ECU抽象層,服務層以及復雜驅動。其中:
- 微控制器抽象層(MCAL)包含了跟硬件相關的驅動程序,可以用來訪問內存、通信和I/O等;
- ECU抽象層負責提供統一的訪問接口實現對通信、內存或者I/O的訪問,從而無須考慮這些資源由微處理器提供還是由外部設備提供;
- 服務層提供各種類型的后臺服務,例如網絡服務、內存管理和總線通信服務等,操作系統就位于這一層;
- 復雜驅動(CCD)層跨越于微控制器硬件層和RTE之間,其主要任務是整合具有特殊目的且不能用MCAL進行配置的非標準功能模塊,將該部分功能嵌入到AUTOSAR基礎軟件層中,從而實現處理復雜傳感器以及執行器的特定功能和時間要求;
如下圖所示:
基礎軟件層的組件及其功能對應如下:
- 1)系統:提供標準化的規定(針對操作系統、定時器以及錯誤存儲器)、ECU特定的服務(ECU狀態管理、看門狗管理)和庫函數;
- 2)內存:對內部和外部的內存(非易失性存儲器)的訪問入口進行標準化;
- 3)通信:對汽車網絡系統、ECU通信系統以及ECU內部軟件的訪問入口進行標準化;
- 4)輸入/輸出:對傳感器、執行器以及ECU外設的訪問入口進行標準化;
同時,基礎軟件層模塊按照類型可以分為驅動模塊、接口模塊、處理模塊以及管理器。
1、驅動模塊
驅動模塊包含了控制和使用內部或者外部器件的功能,分為內部驅動和外部驅動。
-
1)內部驅動
內部器件位于微控制器(單片機)的內部,比如內部EEPROM、內部CAN控制器、內部ADC模塊等。它主要是針對單片機內部器件資源的驅動程序,這部分驅動程序屬于微控制器抽象層(MCAL)。
-
2)外部驅動
外部器件是指單片機外部的ECU硬件,比如外部EEPROM、外部看門狗、外部Flash等。外部驅動程序就是針對單片機外部硬件資源的驅動程序,屬于ECU抽象層。外部驅動程序需要通過微控制器抽象層(MCAL)驅動程序來實現對外部器件的驅動。這種方法下AUTOSAR也支持嵌入在系統基礎芯片(SBCs)中的組件,像收發器以及看門狗等。例如,使用SPI通信接口的外部EEPROM驅動程序是通過SPI總線處理程序來驅動外部EEPROM的。但是有一種例外,對于和內存映射相關的外部器件(如外部Flash存儲器),其驅動程序是可以直接對微控制器進行存取訪問的,所以這部分驅動程序屬于微控制器抽象層(MCAL)。
2、接口模塊
接口模塊包含了對其次級模塊進行抽象的功能,比如對一個特定功能的硬件進行抽象。它提供一個通用的接口函數(API)來訪問一種特定的器件類型,且與該類型器件的數目無關,同時也與器件的具體硬件實現無關。
接口模塊不會改變數據的內容。一般來說,接口屬于ECU抽象層。例如,CAN通信系統的接口模塊提供一個通用的接口函數來訪問CAN通信網絡,并且與ECU上CAN控制器的數目以及硬件實現無關。
3、處理模塊
處理模塊是一個專用的接口,它控制一個或多個客戶端對一個或多個驅動程序進行并行、多重以及異步地訪問。也就是說,它起著緩沖、隊列、仲裁以及多路復用的功能。同時,處理程序也不會改變數據本身的內容。處理模塊通常會并入驅動程序或是接口模塊中(如SPIHandlerDriver、ADC Driver等)。
4、管理器
管理器為多重的客戶端提供特定的服務。當單純的處理程序不能滿足對多重的客戶端進行抽象時,就需要用到管理器來進行處理。除了處理功能外,管理器還可以對數據內容進行評估、改變或是適應數據內容。
一般而言,管理器屬于服務層。例如,非易失性隨機存儲器(NVRAM)的管理器負責對內部或是外部存儲設備進行并行的訪問,如Flash、EEPROM存儲器等。同時,它也可以完成分布式并且可靠的數據存儲、數據校驗以及默認值的規定等。
三、ATUOSAR的接口標準
通過RTE實現AUTOSAR軟件組件之間以及應用層與基礎軟件之間的通信前提是:軟件組件之間必須有標準的AUTOSAR接口。AUTOSAR規范把汽車電子領域內的一些典型的應用劃分為若干個由一個或多個軟件組件組成的模塊,并詳細定義了這些軟件組件相關的參數,例如名稱、范圍、類型等。
AUTOSAR定義了三種接口:標椎化接口(Standardized Interface)、AUTOSAR接口(AUTOSAR Interface)和標準化的AUTOSAR接口(Standardized AUTOSAR Interface)。
AUTOSAR接口是一種與應用相關的接口,與RTE一并生成。基于AUTOSAR接口的端口可以用于軟件組件(Software Component,SWC)之間或者軟件組件與ECU固件之間(例如復雜驅動)的通信。
標準化AUTOSAR接口是一種特殊的AUTOSAR接口。這些在AUTOSAR規范中定義過的接口被SWC用于訪問AUTOSAR BSW模塊提供的服務,比如ECU管理模塊或者診斷事件管理模塊。
標椎化接口是AUTOSAR規范中用C語言定義的API。這些接口用于ECU內部BSW模塊之間,RTE和操作系統之間或者RTE和COM模塊之間。
如圖所示,基礎軟件之間通過標椎化接口進行數據通信和操作調用的。故基礎軟件之間可以相互調用各自的API函數,但是微控制器抽象層只能被ECU抽象層所調用,底層驅動信息通過ECU抽象層傳遞給服務層使用。
四、ATUOSAR的開發方法
AUTOSAR為汽車電子軟件系統開發過程定義了一套通用的技術方法,即AUTOSAR方法論。該方法描述了從系統底層配置到ECU可執行代碼產生過程的設計步驟,如下圖所示。
AUTOSAR設計和開發流程分為三個階段:系統配置、ECU設計與配置階段、代碼生成階段。
第一階段:定義系統配置文件,這是系統設計者或架構師的任務。包括選擇硬件和軟件組件,定義整個系統的約束條件。AUTOSAR通過使用信息交換格式和模板描述文件來減少初始系統設計時的工作量。系統配置的輸入是XML類型的文件,輸出是系統配置描述文件,系統配置的主要作用是把軟件組件的需求映射到ECU上。
第二階段:根據系統配置描述文件提取單個ECU資源相關的信息,提取出來的信息生成ECU提取文件。根據這個提取文件對ECU進行配置,例如操作系統任務調度,必要的BSW模塊及其配置,運行實體到任務的分配等,從而生成ECU配置描述文件。該描述文件包含了特定ECU的所有信息。
第三階段:生成代碼,是基于ECU配置描述文件指定的配置來產生代碼、編譯代碼,并把相關代碼鏈接起來形成可執行文件。
具體的開發流程如下:
1、編寫系統配置輸入描述文件
在AUTOSAR中,所有的描述文件都是XML類型的文件。系統配置輸入文件包含三部分內容:
- 1)軟件組件描述,定義了每個涉及的軟件組件的接口內容,如數據類型,端口,接口等;
- 2)ECU資源描述,定義了每個ECU的資源需求,如處理器、存儲器、外圍設備、傳感器和執行器等;
- 3)系統約束描述,定義了總線信號,軟件組件間的拓撲結構和映射關系;
2、系統配置
系統配置的功能主要是在資源和時序關系的前提下,把軟件組件映射到各個ECU上,然后借助系統配置生成器生成系統配置描述文件。這個描述文件包括總線映射之類的所有系統信息以及軟件組件與某個ECU的映射關系。
3、提取特定ECU的描述
從系統配置描述文件中提取出與各個ECU相關的系統配置描述信息,提取的信息包括ECU通信矩陣、拓撲結構、映射到該ECU上的所有軟件組件,并將這些信息放在各個ECU的提取文件中。
4、ECU配置
ECU配置主要是為該ECU添加必要的信息和數據,如任務調度、必要的基礎軟件模塊及其配置、運行實體及任務分配等,并將結果保存在ECU配置描述文件中,該文件包含了屬于特定ECU的所有信息,換言之,ECU上運行的軟件可根據這些信息構造出來。
5、生成可執行文件
根據ECU配置描述文件中的配置信息,生成RTE和基礎軟件配置代碼,完成基礎軟件和軟件組件的集成,最終生成ECU的可執行代碼。
更多內容,請參見我的另一篇博客【精心整理吐血推薦的AUTOSAR科普介紹材料】
總結
以上是生活随笔為你收集整理的浅论汽车电子行业的汽车开放系统架构AUTOSAR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CF1380D Berserk And
- 下一篇: WEB测试工具---死链接检测工具xen