羅朗,王志強(qiáng),于闊,朱聯(lián)邦,許寬林,尹愛(ài)霞
摘 要:日趨復(fù)雜的汽車電子系統(tǒng)所帶來(lái)的開發(fā)和維護(hù)成本,成為眾多汽車電子企業(yè)面臨的難題,AUTOSAR技術(shù)成為這一難題最有效的解決方案,其目的是建立標(biāo)準(zhǔn)的軟件架構(gòu),并定義統(tǒng)一的標(biāo)準(zhǔn)接口,實(shí)現(xiàn)軟硬件的分離。文章按照AUTOSAR基礎(chǔ)軟件的開發(fā)規(guī)范和開發(fā)要求,開發(fā)了基于MSCAN硬件模塊的驅(qū)動(dòng)層和接口層。文章介紹了符合AUTOSAR規(guī)范的通信模塊開發(fā)技術(shù),然后結(jié)合整車VPC(真空泵控制器)CAN通訊程序?qū)︱?qū)動(dòng)層和接口層進(jìn)行進(jìn)一步闡述。通過(guò)實(shí)車驗(yàn)證測(cè)試,結(jié)合通信程序應(yīng)用層應(yīng)用實(shí)例,更直觀的領(lǐng)悟到軟硬件分離的益處。
關(guān)鍵詞:AUTOSAR;硬件;軟件;CAN
中圖分類號(hào):U463.6 ?文獻(xiàn)標(biāo)識(shí)碼:A ?文章編號(hào):1671-7988(2019)23-114-04
Application of VPC controller CAN communication program based on
AUTOSAR specification in the whole vehicle
Luo Lang, Wang Zhiqiang, Yu Kuo, Zhu Lianbang, Xu Kuanlin, Yin Aixia
( Technology Center, Anhui Jianghuai Automobile Co., Ltd., Anhui Hefei 230601 )
Abstract: The development and maintenance cost of the increasingly complex automotive electronic system, Become a problem faced by many automotive electronic enterprises, AUTOSAR technology is the most effective solution to the problem, Its purpose is to establish a standard software architecture, And define unified standards, Separation of hardware and software. According to the development specifications and requirements of AUTOSAR basic software, the driver kayer and interface layer based on MSCAN hardware module are developed. This paper introduces the development technology of communication module in accordance with AUTOSAR specification. Then combining with the can communication program of the vacuum pump controller, the driving layer and the interface layer are further elaborated. Pass the real vehicle verication test, combined with the application layer instance of communication program, the benefits of hardware and software seperation can be realized more intuitively.
Keywords: AUTOSAR; Hardware; Software; CAN
CLC NO.: U463.6 ?Document Code: A ?Article ID: 1671-7988(2019)23-114-04
引言
電子技術(shù)在汽車上的應(yīng)用幾乎無(wú)處不在,電子設(shè)備的增多使汽車電子的復(fù)雜度呈指數(shù)增長(zhǎng),為減少軟件的重復(fù)開發(fā),降低維護(hù)成本,AUTOSAR規(guī)范應(yīng)運(yùn)而生。
CAN模塊是汽車應(yīng)用的多節(jié)點(diǎn)通訊總線,具有傳輸速率高、抗干擾能力強(qiáng)、實(shí)時(shí)性好等優(yōu)點(diǎn),是當(dāng)前汽車最常用的通訊方式.但其具有軟件復(fù)雜性較高的特點(diǎn)。
1 AUTOSAR模塊介紹
AUTOSAR架構(gòu)由應(yīng)用軟件組件(SW-Cs)、虛擬功能總線(VFB)、運(yùn)行實(shí)時(shí)環(huán)境(RTE)和電控單元基礎(chǔ)軟件(BSW)棧構(gòu)成的分層結(jié)構(gòu),如下圖所示:
圖1 ?AUTOSAR框架結(jié)構(gòu)圖
AUTOSAR的基本設(shè)計(jì)概念是實(shí)現(xiàn)應(yīng)用軟件組件(SW-Cs)與基礎(chǔ)軟件(BSW)的隔離,頂層為應(yīng)用層,是相互交互的應(yīng)用/應(yīng)用軟件組件的集合;底層為微控制器硬件;中間層由AUTOSAR運(yùn)行時(shí)環(huán)境(RTE)和一套完整的被稱為AUTOSAR BSW的基礎(chǔ)軟件棧組成,作為獨(dú)立于硬件的應(yīng)用軟件集成平臺(tái)。
1.1 AUTOSAR應(yīng)用層
AUTOSAR應(yīng)用層是相互交互的應(yīng)用/功能軟件組件的集合,應(yīng)用層是通過(guò)多個(gè)不可分割的SWC組成的,SWC通過(guò)AUTOSAR規(guī)范的端口連接到RTE(運(yùn)行實(shí)時(shí)環(huán)境)上,完成信號(hào)和數(shù)據(jù)的傳輸。SWC將系統(tǒng)模塊化,減少模塊間的耦合,并且抽象出系統(tǒng)各模塊間的數(shù)據(jù)流和服務(wù)調(diào)用關(guān)系。AUTOSAR支持多ECU系統(tǒng),設(shè)計(jì)時(shí)需要將SWC映射到合適的ECU上。
圖2 ?多ECU的應(yīng)用層及SWC結(jié)構(gòu)
1.2 AUTOSAR運(yùn)行實(shí)時(shí)環(huán)境(RTE)
RTE層作為ECU內(nèi)外部信息交換的中心,通過(guò)提供一致的接口服務(wù)實(shí)現(xiàn)通信。其功能包含:內(nèi)部/外部通信,客戶端與服務(wù)器之間的通信,顯性和隱形數(shù)據(jù)訪問(wèn)等。
RTE為每個(gè)ECU實(shí)現(xiàn)VFB的標(biāo)準(zhǔn)接口,提供組件間通信的基礎(chǔ)服務(wù),使組件訪問(wèn)BSW資源更加容易。下圖為RTE與其上層應(yīng)用軟件和下層BSW之間的連接關(guān)系。
圖3 ?RTE連接關(guān)系結(jié)構(gòu)圖
1.3 AUTOSAR基礎(chǔ)軟件層(BSW)
BSW位于RTE以下,由標(biāo)準(zhǔn)組件及ECU特定組件組成,BSW的棧設(shè)計(jì)采用了逐層抽象的策略,從上到下可分為服務(wù)、ECU抽象和微控制器抽象三個(gè)層次,每一層均向其上層組件屏蔽了下層的實(shí)現(xiàn)細(xì)節(jié),以提高BSW組件的可重用性。BSW采用的是模塊化設(shè)計(jì)方法,模塊化設(shè)計(jì)可以很方便的根據(jù)不同的要求,對(duì)模塊進(jìn)行選擇和組合,以構(gòu)成不同功能、或功能相同但性能不同、規(guī)格不同的產(chǎn)品。BSW定義了所用RTE調(diào)用的相關(guān)接口,因?yàn)檫@些接口都是AUTUSAR的標(biāo)準(zhǔn)接口,所以開發(fā)人員可以對(duì)硬件一無(wú)所知的情況下進(jìn)行應(yīng)用組件的開發(fā),并將這個(gè)組件應(yīng)用在任何符合AUTOSAR標(biāo)準(zhǔn)的ECU中,從而實(shí)現(xiàn)應(yīng)用組件的配置開發(fā)與底層硬件平臺(tái)相互獨(dú)立,BSW將硬件資源進(jìn)行抽象和封裝,通過(guò)標(biāo)準(zhǔn)的接口提供給RTE層,給應(yīng)用層使用。
2 AUTOSAR標(biāo)準(zhǔn)的CAN通信模塊結(jié)構(gòu)
飛思卡爾公司為主流汽車控制芯片供應(yīng)商,為降低CAN模塊的使用難度,飛思卡爾公司將CAN控制器模塊集成到控制器內(nèi)部,可應(yīng)用于整車的車身控制單元、電動(dòng)助力轉(zhuǎn)向控制單元、剎車控制單元及電子駐車控制等模塊有著廣泛應(yīng)用。
2.1 CAN驅(qū)動(dòng)層功能及結(jié)構(gòu)
CAN通訊層處于AUTOSAR通信協(xié)議棧的微控制器抽象層,為基礎(chǔ)軟件的最低一層,它與硬件直接交互,CAN驅(qū)動(dòng)層向接口層提供規(guī)范的API(Application interface),同時(shí)還根據(jù)自身的硬件特征,向CAN接口層報(bào)告硬件事件和當(dāng)前控制器的狀態(tài),實(shí)現(xiàn)上層對(duì)硬件資源的無(wú)差別管理和控制。
2.2 CAN接口層功能及結(jié)構(gòu)
CAN接口層位于CAN驅(qū)動(dòng)層之上,它調(diào)用CAN驅(qū)動(dòng)層的API實(shí)現(xiàn)硬件資源的控制和使用,同時(shí)CAN接口層向上對(duì)應(yīng)用層提供了相應(yīng)的訪問(wèn)接口,應(yīng)用層通過(guò)接口層訪問(wèn)和接收發(fā)送的數(shù)據(jù),查詢接口層所管理的硬件資源,方便應(yīng)用層軟件的移植。
3 VPC控制器CAN模塊結(jié)構(gòu)
VPC控制器應(yīng)用飛思卡MC9S08DZ60芯片。
3.1 驅(qū)動(dòng)層結(jié)構(gòu)參考AUTOSAR規(guī)范進(jìn)行開發(fā),其應(yīng)用函數(shù)名稱如下
圖4 ?驅(qū)動(dòng)層基礎(chǔ)函數(shù)
3.2 接口層結(jié)構(gòu)參考AUTOSAR規(guī)范進(jìn)行開發(fā),其應(yīng)用函數(shù)名稱如下
圖5 ?接口層基礎(chǔ)函數(shù)
3.3 由于CAN驅(qū)動(dòng)層及接口層函數(shù)結(jié)合芯片及AUTOSAR規(guī)范統(tǒng)一開發(fā)
并且其函數(shù)運(yùn)行過(guò)程中不存在實(shí)參,因此在實(shí)踐應(yīng)用中無(wú)需對(duì)其進(jìn)行修改,只需對(duì)相應(yīng)的應(yīng)用層進(jìn)行修改即可實(shí)現(xiàn)CAN模塊程序的應(yīng)用。
3.4 VPC控制器CAN數(shù)據(jù)接收應(yīng)用實(shí)例
CAN模塊的驅(qū)動(dòng)層通過(guò)濾波,過(guò)濾掉不需要的ID部分,若ID匹配,則將數(shù)據(jù)傳輸?shù)浇涌趯?,接口層將上述信息傳輸?shù)綉?yīng)用層,應(yīng)用層中相應(yīng)的接收函數(shù)對(duì)應(yīng)唯一的ID值,使用過(guò)程中只需根據(jù)ID數(shù)量及接收函數(shù)名稱對(duì)接收函數(shù)進(jìn)行擴(kuò)展,即可實(shí)現(xiàn)總線上不同節(jié)點(diǎn)ID的接收。
圖6 ?接口層ID擴(kuò)展函數(shù)
CAN模塊應(yīng)用層每增加一組ID,接收函數(shù)則需要增加下述的應(yīng)用層擴(kuò)展函數(shù),下述應(yīng)用層擴(kuò)展函數(shù)對(duì)應(yīng)CAN矩陣的排布方式,同樣CAN矩陣的DBC需要同步更改。
圖7 ?應(yīng)用層擴(kuò)展函數(shù)1
圖8 ?應(yīng)用層擴(kuò)展函數(shù)2
圖9 ?DBC排列方式
3.5 VPC控制器CAN數(shù)據(jù)發(fā)送應(yīng)用實(shí)例
CAN控制器發(fā)送程序可發(fā)送實(shí)時(shí)實(shí)參,寫入相應(yīng)的CAN矩陣即可。無(wú)需其他操作。
3.6 對(duì)上述更改后的CAN接收及CAN發(fā)送程序進(jìn)行修改
用FreescaleCodewarriorV6.3版本軟件進(jìn)行編譯,生成S19文件后刷寫入整車程序,可實(shí)現(xiàn)擴(kuò)展ID信息的接收和讀取。
4 結(jié)論
通過(guò)上述基于AUTOSAR架構(gòu)的VPC軟件驗(yàn)證可發(fā)現(xiàn),對(duì)CAN模塊應(yīng)用軟件實(shí)現(xiàn)驅(qū)動(dòng)層、接口層及應(yīng)用層的分層設(shè)計(jì),應(yīng)用過(guò)程中只需要根據(jù)DBC修改其接口層及應(yīng)用層擴(kuò)展函數(shù),而無(wú)需對(duì)其驅(qū)動(dòng)底層函數(shù)進(jìn)行修改,即可實(shí)現(xiàn)既定的功能。軟硬件分層設(shè)計(jì),不但降低了軟件的開發(fā)和維護(hù)成本,而且實(shí)現(xiàn)了軟件的集成度及平臺(tái)化,對(duì)電子電器行業(yè)的發(fā)展具有重大意義。
參考文獻(xiàn)
[1] 徐欽鵬.基于AUTOSAR車載以太網(wǎng)通信的實(shí)現(xiàn)[J]機(jī)電一體化2018,(10).
[2] 羅茂元.電子機(jī)械式制動(dòng)系統(tǒng)電子通訊網(wǎng)絡(luò)CAN總線物理層設(shè)計(jì)[J]汽車世界2019,(3).
[3] 李威.基于CAN總線下串口通訊在車載監(jiān)測(cè)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī)2019,(2).
[4] 袁偉杰.長(zhǎng)城C50轎車加裝導(dǎo)致CAN網(wǎng)絡(luò)通訊故障的排除[J].汽車與駕駛維修2019,(3).
[5] 喬美昀,韋天文,基于AUTOSAR架構(gòu)的汽車診斷通信協(xié)議棧的開發(fā)[J].企業(yè)科技與發(fā)展2018,(7).