一,、 背景介紹
AUTOSAR是英文AUTomotive Open Systems ARchitecture的縮寫,中文意思是汽車,,它定義了一套支持分布式的,、功能驅(qū)動的汽車電子軟件開發(fā)方法和電子控制單元上的軟件架構(gòu)標(biāo)準(zhǔn)化方案,以便應(yīng)用于不同的汽車平臺,,提高軟件復(fù)用,,降低開發(fā)成本。AUTOSAR是由汽車和其一線供應(yīng)商建立的汽車軟件開發(fā)全球合作聯(lián)盟,,于 2003年夏天正式成立,,并于2004年啟動了主要的工作,其目的就在于控制汽車軟件的復(fù)雜性和多樣性,。AUTOSAR包括9個核心成員:BMW Groups(寶馬),、BOSCH(博世)、Continental(大陸),、DAIMLER(戴姆勒),、Ford(福特)、GM(通用),、PSA Peugeot Citron(標(biāo)志-雪鐵龍),、TOYOTA(豐田),、VOLKSWAGEN AG(大眾),。目前其成員已超過150個,國內(nèi)OEM中已有一汽及上汽加入,,恒潤科技成為繼一汽,、上汽之后,國內(nèi)第三家加入該組織的公司,。
AUTOSAR自面世以來,,從半導(dǎo)體工業(yè)、工具和軟件廠商,、零部件供應(yīng)商到汽車制造商本身,,整個汽車領(lǐng)域內(nèi)的價(jià)值體系都給予該標(biāo)準(zhǔn)積極的推動。 AUTOSAR開發(fā)成員在2007年發(fā)布了2.1版本,,使AUTOSAR的發(fā)展到達(dá)了一個穩(wěn)定的階段,,隨后通過幾個不同的開發(fā)項(xiàng)目對AUTOSAR的實(shí)用性進(jìn)行了測試,,現(xiàn)在AUTOSAR已經(jīng)做好進(jìn)入到產(chǎn)品ECU的準(zhǔn)備,而寶馬集團(tuán)已將符合AUTOSAR標(biāo)準(zhǔn)的ECU(電子控制單元)應(yīng)用在全新BMW 7系量產(chǎn)車型中,,預(yù)計(jì)在2010年AUTOSAR的所有核心成員都將推出相關(guān)的產(chǎn)品,。在商業(yè)領(lǐng)域里,支持AUTOSAR標(biāo)準(zhǔn)的工具和軟件供應(yīng)商已推出了相應(yīng)的工具和軟件,,提供需求管理,,系統(tǒng)描述,軟件構(gòu)件算法模型驗(yàn)證,,軟件構(gòu)件算法建模,,軟件構(gòu)件代碼生成,RTE生成,,ECU配置以及基礎(chǔ)軟件和操作系統(tǒng)等服務(wù),,幫助OEM實(shí)現(xiàn)無縫的AUTOSAR系統(tǒng)軟件架構(gòu)開發(fā)流程。目前AUTOSAR版本為3.1版,,預(yù)計(jì)將于2009年秋季發(fā)布4.0版本,。
由于AUTOSAR提倡“在標(biāo)準(zhǔn)上合作,在實(shí)現(xiàn)上競爭”的原則,,其核心思想在于“統(tǒng)一標(biāo)準(zhǔn),、分散實(shí)現(xiàn)、集中配置”,,所以采用AUTOSAR將為OEM帶來很大的好處,,這將使得他們對于軟件采購和控制擁有更靈活和更大的權(quán)利,因?yàn)檐浖到y(tǒng)的標(biāo)準(zhǔn)化和開放化將使更多的軟件供應(yīng)商進(jìn)入汽車電子行業(yè),,從而使得他們有更多的選擇,,同時軟件的質(zhì)量監(jiān)督也會相應(yīng)提高,有利于提高他們的產(chǎn)品質(zhì)量,。但是,,也必須看到在全行業(yè)內(nèi)推行此標(biāo)準(zhǔn)還是存在潛在障礙的,就是來自一些 OEM廠商和大的第一級汽車供應(yīng)商的抵制,,因?yàn)樗麄円呀?jīng)有自己的標(biāo)準(zhǔn)和架構(gòu)了,,而采用AUTOSAR標(biāo)準(zhǔn)及其架構(gòu)可能產(chǎn)生更換成本、喪失控制等風(fēng)險(xiǎn),。盡管如此,,汽車電子軟件開發(fā)方法和軟件架構(gòu)的標(biāo)準(zhǔn)化是汽車行業(yè)不可阻擋的發(fā)展趨勢,而且目前還沒有哪種標(biāo)準(zhǔn)比AUTOSAR標(biāo)準(zhǔn)走的更遠(yuǎn),。鑒于此,,國內(nèi)汽車 OEM必須做好應(yīng)對AUTOSAR的準(zhǔn)備,這對他們來說,是挑戰(zhàn)更是機(jī)遇,。
在AUTOSAR標(biāo)準(zhǔn)的實(shí)施過程中,,OEM將起主導(dǎo)作用。OEM應(yīng)如何提出需求并在他們的產(chǎn)品上使用這些來自不同供應(yīng)商的具有標(biāo)準(zhǔn)功能和接口的軟件呢,?AUTOSAR為此同時制定了方法上,、流程上的標(biāo)準(zhǔn),即AUTOSAR方法論,。本文將著重解讀AUTOSAR方法論內(nèi)容,,講解OEM應(yīng)如何將該標(biāo)準(zhǔn)應(yīng)用在他們的產(chǎn)品研發(fā)及生產(chǎn)過程中。
二,、 AUTOSAR 技術(shù)概述
AUTOSAR的計(jì)劃目標(biāo)主要有3項(xiàng),,第一是建立獨(dú)立于硬件的分層的軟件架構(gòu);第二是為實(shí)施應(yīng)用提供方法論,,包括制定無縫的軟件架構(gòu)堆疊流程并將應(yīng)用軟件整合至ECU中,;第三是制定各種車輛應(yīng)用接口規(guī)范,作為應(yīng)用軟件整合標(biāo)準(zhǔn),,以便軟件構(gòu)件在不同的汽車平臺上的復(fù)用,。
1、AUTOSAR軟件架構(gòu)
為了實(shí)現(xiàn)AUTOSAR的目標(biāo),,即實(shí)現(xiàn)應(yīng)用程序和基礎(chǔ)模塊之間的分離,,汽車電子軟件架構(gòu)被抽象成幾個層,如圖1所示,。
圖1:AUTOSAR軟件架構(gòu)層次圖,。
為了區(qū)別軟件依賴和硬件依賴,基礎(chǔ)軟件分為四個層次:服務(wù)層(Services Layer),、ECU抽象層(ECU Abstraction Layer),、微控制器抽象層(Microcontroller Abstraction Layer)和RTE(Runtime Environment)。除此四層外,,在AUTOSAR軟件架構(gòu)中還有復(fù)雜驅(qū)動(Complex Driver),,由于對復(fù)雜傳感器和執(zhí)行器進(jìn)行操作的模塊涉及到嚴(yán)格的時序問題,在AUTOSAR中這部分沒有被標(biāo)準(zhǔn)化,。
* 服務(wù)層提供包括診斷協(xié)議,、存儲管理,、ECU模式管理和操作系統(tǒng)等在內(nèi)的系統(tǒng)服務(wù),。除了操作系統(tǒng)外,服務(wù)層的軟件模塊都是與平臺無關(guān)的,。
* ECU抽象層將ECU結(jié)構(gòu)(如外設(shè)與ECU的聯(lián)接方式等)進(jìn)行了抽象處理,。該層與ECU平臺相關(guān),但與微控制器無關(guān)。
#p#副標(biāo)題#e#
* 微控制器抽象層包括微控制器相關(guān)的驅(qū)動(如I/O驅(qū)動,、ADC驅(qū)動等),。
* RTE層負(fù)責(zé)軟件構(gòu)件(即應(yīng)用層)相互間的通信以及軟件構(gòu)件與基礎(chǔ)軟件之間的通信。RTE層之下的基礎(chǔ)軟件對于應(yīng)用層來說是不可見的,,必須通過RTE進(jìn)入,,它將軟件構(gòu)件從對底層軟件和硬件平臺的依賴中獨(dú)立出來,實(shí)現(xiàn)了應(yīng)用程序和基礎(chǔ)軟件之間的分隔,。2,、 AUTOSAR方法論
AUTOSAR為符合該標(biāo)準(zhǔn)的汽車電子軟件系統(tǒng)開發(fā)過程定義了一套通用的技術(shù)方法,這種方法即被稱為AUTOSAR方法論(AUTOSAR Methodology),。汽車作為整車系統(tǒng)功能的規(guī)劃和設(shè)計(jì)者,,需要了解并掌握AUTOSAR提供的這套開發(fā)流程,才能主導(dǎo)和推進(jìn)符合 AUTOSAR標(biāo)準(zhǔn)的系統(tǒng)的開發(fā)過程,。
兼容AUTOSAR標(biāo)準(zhǔn)的汽車電子軟件系統(tǒng)設(shè)計(jì)與開發(fā)流程如圖 2所示,。
圖2:AUTOSAR系統(tǒng)設(shè)計(jì)與開發(fā)流程。
主要步驟可劃分兩個階段:
第一個階段是系統(tǒng)配置階段,,這屬于系統(tǒng)級設(shè)計(jì)決策工作,。首先是編寫系統(tǒng)配置輸入文件,為XML類型的文件,。應(yīng)用軟件的描述術(shù)語在 AOTUSAR中為軟件構(gòu)件(Software Components),,該文件將確定需要使用的軟件構(gòu)件(即系統(tǒng)具有哪些功能)和硬件資源(ECU),以及整個系統(tǒng)的約束條件,。AUTOSAR提供了一系列的模板(軟件構(gòu)件模板,,ECU資源模板和系統(tǒng)模板)和標(biāo)準(zhǔn)的信息交換格式,工具供應(yīng)商可據(jù)此提供相應(yīng)的工具支持,,從而簡化系統(tǒng)設(shè)計(jì)的工作,,最終系統(tǒng)設(shè)計(jì)者只需要使用工具填充或編輯相應(yīng)的模板即可導(dǎo)出系統(tǒng)配置輸入文件。
系統(tǒng)配置輸入包含三部分內(nèi)容,,第一個輸入是軟件構(gòu)件描述,,定義每個需要的軟件構(gòu)件的接口內(nèi)容,包括數(shù)據(jù)類型,,端口,,接口等;第二個輸入是ECU資源描述,,定義了每個ECU的資源需求,,如處理器、外部設(shè)備,、存儲器,、傳感器和執(zhí)行器等;第三個輸入是系統(tǒng)約束描述,定義總線信號,,拓?fù)浣Y(jié)構(gòu)和軟件構(gòu)件的映射關(guān)系,。
系統(tǒng)配置階段接下來的工作是將初步獲得的系統(tǒng)配置輸入文件借助系統(tǒng)配置生成器生成系統(tǒng)配置描述文件,同樣為XML文件,,這是系統(tǒng)配置階段的最終工作成果,。該文件將包含所有的系統(tǒng)信息,包括將軟件構(gòu)件映射到相關(guān)的ECU上(這種映射需要考慮到構(gòu)件的需要,、構(gòu)件的連接,、資源需求以及約束條件,有時也需要考慮成本等方面的因素),,以及通信矩陣(整車的網(wǎng)絡(luò)結(jié)構(gòu),、時序以及網(wǎng)絡(luò)數(shù)據(jù)幀的內(nèi)容)。
第二個階段是ECU的配置,,這階段的工作需要對系統(tǒng)中每個ECU分別進(jìn)行,。首先是使用第一個階段的工作成果——系統(tǒng)配置描述文件,從中提取出與各個ECU相關(guān)的系統(tǒng)配置描述信息,,提取的信息包括ECU通信矩陣,、拓?fù)浣Y(jié)構(gòu)、頂級功能組合(據(jù)此產(chǎn)生需映射到該ECU上的所有軟件構(gòu)件),,將放在另一個XML文件中,。提取信息的工作可借助工具完成。然后進(jìn)入ECU配置的實(shí)際工作中,,這一步負(fù)責(zé)往輸入對象中添加具體應(yīng)用所必需的信息,,如任務(wù)調(diào)度、必要的BSW模塊,、BSW配置信息,、給任務(wù)分配的可運(yùn)行實(shí)體等。這一步的結(jié)果被放在ECU 配置描述文件中,,它包含了具體ECU所需的所有信息,。最后一步是生成具體ECU的可執(zhí)行程序,此步將根據(jù)ECU 配置描述文件中的配置信息構(gòu)建完成ECU的基礎(chǔ)軟件的設(shè)置和與基于AUTOSAR構(gòu)件的應(yīng)用軟件的集成,,最終生成ECU的可執(zhí)行代碼,。
此外,要說明的是,,AUTOSAR系統(tǒng)的設(shè)計(jì)過程使用了虛擬功能總線(Virtual Functional Bus)的概念,。虛擬功能總線(Virtual Functional Bus)將AUTOSAR軟件構(gòu)件相互間的通信以及軟件構(gòu)件與基礎(chǔ)軟件之間的通信進(jìn)行了抽象,同時使用預(yù)先定義的標(biāo)準(zhǔn)接口,。而對于虛擬功能總線來說,,ECU內(nèi)部通信和外部總線通信并沒有什么區(qū)別,,這種區(qū)別要等到系統(tǒng)布局以及ECU的具體功能最終確定才會體現(xiàn)出來,。軟件構(gòu)件本身對于這種區(qū)別并不關(guān)注,,因此我們可以在獨(dú)立的情況下開發(fā)軟件構(gòu)件。在系統(tǒng)實(shí)現(xiàn)過程中,,虛擬功能總線所代表的功能最終以RTE的生成來體現(xiàn),。
3、標(biāo)準(zhǔn)化的應(yīng)用接口
通過RTE實(shí)現(xiàn)AUTOSAR軟件構(gòu)件(即應(yīng)用程序)相互間的通信以及軟件構(gòu)件與基礎(chǔ)軟件之間的通信的前提是,,軟件構(gòu)件必須具有標(biāo)準(zhǔn)的 AUTOSAR接口,。目前,AUTOSAR 3.1版已定義了一些典型的汽車電子應(yīng)用領(lǐng)域(動力,,車身/舒適和底盤)的標(biāo)準(zhǔn)接口,。AUTOSAR按照功能邏輯分別將這些領(lǐng)域的系統(tǒng)劃分成若干個模塊,這些模塊可被視為一個軟件構(gòu)件或多個軟件構(gòu)件的組合,,這些功能性的軟件構(gòu)件的接口被明確定義,,所定義的接口的內(nèi)容包括名稱,含義,,范圍,,數(shù)據(jù)類型,通信類型,,單位等,。應(yīng)用軟件開發(fā)者在軟件構(gòu)件的設(shè)計(jì)與開發(fā)時需要應(yīng)用這些接口定義。
#p#副標(biāo)題#e#
這里以車身/舒適系統(tǒng)的雨刷管理的軟件構(gòu)件的接口定義為示例,,如圖3:
圖3:軟件構(gòu)件的接口定義,。
說明:
雨刷管理構(gòu)件(WiperWasherManager)有兩個接口,CmdWashing 和StaWasher,圖中WWManager表示為雨刷管理軟件構(gòu)件的實(shí)例,。針對CmdWashing接口定義了以下信息:
1) CmdWashing接口由WiperWasherManager構(gòu)件提供,,其數(shù)據(jù)內(nèi)容為FrontWasher構(gòu)件的Activation接口所使用。
2)CmdWashing包含一個“Command”的數(shù)據(jù)元素,。
3)“Command”的數(shù)據(jù)類型為“t_onoff”,。
4)“t_onoff”屬于“RecordType”,該類型描述一般的開/關(guān)信息,。
應(yīng)用軟件開發(fā)者應(yīng)該意識到,,面向運(yùn)行時環(huán)境(RTE)接口的應(yīng)用軟件設(shè)計(jì)的重要性,及早地將AUTOSAR應(yīng)用層接口引入到實(shí)際的項(xiàng)目中來,,為實(shí)現(xiàn)應(yīng)用軟件的可復(fù)用性做好準(zhǔn)備,,從而優(yōu)化整個軟件開發(fā)流程。
三,、 設(shè)計(jì)應(yīng)用與實(shí)施
仍以車身/舒適領(lǐng)域的外部車燈控制系統(tǒng)的設(shè)計(jì)為例,,在本例中只涉及轉(zhuǎn)向燈的閃爍控制功能的實(shí)現(xiàn),。
在系統(tǒng)配置階段,第一步是收集系統(tǒng)配置輸入內(nèi)容,。首先收集實(shí)現(xiàn)該功能所需的軟件構(gòu)件,,如圖4右部邊框所示,在本系統(tǒng)中共使用了5個軟件構(gòu)件,,按照AUTOSAR提供的軟件構(gòu)件模板編寫每個軟件構(gòu)件的描述文件,;然后明確系統(tǒng)中所用到的ECU資源,形成ECU資源描述文件,,如圖4左上部邊框所示,,這里有3類ECU;最后是系統(tǒng)約束條件的描述文件,,描述系統(tǒng)的網(wǎng)絡(luò)拓?fù)潢P(guān)系,。一般需要提供軟件構(gòu)件描述和系統(tǒng)約束描述文件,以供零部件供應(yīng)商在ECU系統(tǒng)開發(fā)時使用,。
圖4:系統(tǒng)配置輸入內(nèi)容,。
以上描述文件的生成均有專門的工具(這類工具統(tǒng)稱為AUTOSAR描述文件編輯器)支持,用戶只需向工具中填充規(guī)定的內(nèi)容即可,。
軟件構(gòu)件描述文件的生成,,需要獲取每個軟件構(gòu)件的關(guān)于接口,行為,,直接的硬件接口(I/O),,運(yùn)行性能需求(內(nèi)存,功耗,,定時等)等方面的信息,;而軟件構(gòu)件描述文件本身將包含4部分內(nèi)容:
* 一般特性:名稱,生產(chǎn)商等
* 通信屬性:端口,,接口
* 內(nèi)部結(jié)構(gòu):子構(gòu)件,,連接關(guān)系
* 需要的硬件資源:處理時間,調(diào)度,,內(nèi)存大小和類型等,。
ECU資源描述文件生成之前,需要獲取每個ECU的關(guān)于傳感器和執(zhí)行器,,硬件接口,,硬件屬性(內(nèi)存,處理器,,功耗),,連接和帶寬等方面的信息;而ECU描述文件本身將包含7部分內(nèi)容:
* 一般特性:名稱,,生產(chǎn)商等
* 溫度(自身,,環(huán)境,,冷卻/加熱)
* 可用的信號處理方法
* 可用的編程能力
* 可用的硬件:微控制器,架構(gòu)(如多處理器),;內(nèi)存,,接口(CAN,LIN,,MOST,,F(xiàn)lexRay),,外設(shè)(傳感器/執(zhí)行器),,連接(如引腳數(shù)目)。
* RTE之下針對微控制器的基礎(chǔ)軟件模塊
* 從引腳到ECU抽象層的信號
系統(tǒng)約束描述文件生成之前,,需要關(guān)于整個系統(tǒng)的信息,,如總線系統(tǒng),協(xié)議,,通信矩陣和屬性,,功能集群,功能部署(向ECU的分布),;而系統(tǒng)約束描述文件本身將包含3部分內(nèi)容:
* 網(wǎng)絡(luò)拓?fù)洌嚎偩€(CAN,,LIN,F(xiàn)lexRay),,連接的ECU,,網(wǎng)關(guān),電源供應(yīng)
* 通信(針對每個通道):通信矩陣,,網(wǎng)關(guān)表
* 軟件構(gòu)件的映射
以上所描述的系統(tǒng)配置輸入內(nèi)容收集完整后,,使用系統(tǒng)配置工具導(dǎo)出系統(tǒng)配置文件,這一步?jīng)Q定哪個軟件構(gòu)件運(yùn)行在哪塊ECU上,,它生成ECU配置描述,;此外還生成該系統(tǒng)內(nèi)的通信矩陣。如圖5所示,。
圖5:系統(tǒng)配置結(jié)果,。
以上工作完成后,接下來進(jìn)入ECU配置階段,。將每個ECU的配置信息從系統(tǒng)配置文件中提取出來,,其內(nèi)容包括ECU通信矩陣、拓?fù)浣Y(jié)構(gòu),、頂級功能組合(即需映射到該ECU上的所有軟件構(gòu)件的組合),。此外,還需要更具體的關(guān)于AUTOSAR的基礎(chǔ)軟件各主要部分的配置,,如RTE的配置,,OS 的配置,,MCAL(微控制器抽象層)的配置和通信協(xié)議棧配置等。這些軟件部件的配置目前均有相應(yīng)的工具支持,,直接生成可編譯的頭文件以供ECU系統(tǒng)軟件的集成使用,。在生成ECU可執(zhí)行程序之前,需獲得相關(guān)軟件構(gòu)件和基礎(chǔ)軟件的代碼,,然后與上述基礎(chǔ)軟件的配置頭文件進(jìn)行連編,,最后生成ECU的可執(zhí)行程序。如圖6所示,。
圖6:ECU的配置與可執(zhí)行程序的生成,。
#p#副標(biāo)題#e#
綜上所述,整個系統(tǒng)設(shè)計(jì)和開發(fā)流程可用圖7表示,,這里要注意的是,,該過程可能需要多次迭代修改,以達(dá)到最優(yōu),。
圖7:系統(tǒng)設(shè)計(jì)和開發(fā)流程,。
四、總結(jié)
正在成為現(xiàn)實(shí),,建立這樣一個標(biāo)準(zhǔn)化平臺并貫徹標(biāo)準(zhǔn)化,,將會縮短新產(chǎn)品的研發(fā)時間和測試時間,從而幫助企業(yè)實(shí)現(xiàn)快速的市場反應(yīng),。許多都計(jì)劃在接下來的車型中采用AUTOSAR,。在市場上不少工具和軟件供應(yīng)商都已推出了符合AUTOSAR標(biāo)準(zhǔn)的工具或軟件支撐,可為 AUTOSAR系統(tǒng)的設(shè)計(jì)和開發(fā)提供完整的無縫的解決方案,。
AUTOSAR是汽車電子軟件平臺標(biāo)準(zhǔn)化的歷程中的一個巨大飛躍,,我們需要學(xué)習(xí)和理解它。但是也必須看到,,在整個汽車行內(nèi)打破傳統(tǒng)的軟件開發(fā)平臺需要相當(dāng)長的一個過程,。我們可以根據(jù)用戶的需求和目標(biāo),在初期搭建AUTOSAR與傳統(tǒng)軟件的混合平臺,,這是是一個能夠?qū)崿F(xiàn)向AUTOSAR平滑升級的可行的方法,。在這個過程里,重點(diǎn)不是單純地使用,,理解AUTOSAR的理念和思想才最重要,,因?yàn)樗鼘ζ囯娮榆浖_發(fā)的工作流程和商業(yè)模式都將帶來意義深遠(yuǎn)的變革。
參考文獻(xiàn)
1,、 AUTOSAR SPECIFICATIONS Release3.1:AUTOSAR官網(wǎng)發(fā)布的規(guī)范文件
2,、 《03_AUTOSAR_Tutorial.pdf》:AUTOSAR官網(wǎng)文件