国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AUTOSAR架構(gòu)的XCP標(biāo)定系統(tǒng)開發(fā)

2017-05-30 03:55謝江浩彭憶強朱麗羅青松
中國測試 2017年12期

謝江浩 彭憶強 朱麗 羅青松

摘 要:針對汽車總線多樣化以及汽車ECU之間數(shù)據(jù)交互量大的問題,設(shè)計一款以32位微處理器為硬件內(nèi)核、以AUTOSAR為軟件架構(gòu),符合MISRA-C嵌入式編程規(guī)范,適用于多種通信總線的XCP標(biāo)定系統(tǒng)。在該標(biāo)定系統(tǒng)數(shù)據(jù)交互中,為增加標(biāo)定系統(tǒng)通用性和代碼可重用性,采用符合AUTOSAR通信協(xié)議棧的標(biāo)準(zhǔn)接口,實現(xiàn)與AUTOSAR其他協(xié)議棧的無縫連接。同時對XCP代碼進(jìn)行QAC檢測,提高標(biāo)定系統(tǒng)代碼閱讀性。編寫Vector CANoe的CAPL腳本程序,進(jìn)行自動功能測試,檢測標(biāo)定系統(tǒng)功能的完整性。測試結(jié)果表明:所設(shè)計的標(biāo)定系統(tǒng)數(shù)據(jù)交互實時性高、可靠性強。

關(guān)鍵詞:XCP;AUTOSAR;標(biāo)定系統(tǒng);QAC

文獻(xiàn)標(biāo)志碼:A 文章編號:1674-5124(2017)12-0113-06

Abstract: With regard to the diversified automobile bus and the amount of data exchange between ECU, a XCP calibration system that takes 32-bit microprocessor as the core of hardware and AUTOSAR as the software architecture, complies with MISRA-C standard and applicable to various communication buses is designed. In the data exchange of the calibration system, this system uses a standard port suitable for AUTOSAR protocol stack to improve the universality of the system and the reusability of the code, and realizes the seamless connection with other AUTOSAR protocol stacks. Meanwhile, the XCP systems code is detected with QAC method to improve the code readability of the calibration system. A CAPL script program is written based on Vector CANoe, and the automate testing of functional integrity of calibration system is carried out. The test results show that the designed calibration system has high real-time data and strong reliability.

Keywords: XCP; AUTOSAR; calibration system; QAC

0 引 言

標(biāo)定系統(tǒng)在汽車發(fā)動機控制系統(tǒng)、變速器控制系統(tǒng)、底盤控制系統(tǒng)、剎車防抱死系統(tǒng)、車身電子控制系統(tǒng)等電子模塊的開發(fā)中都具有重要作用,可以通過修改ECU控制軟件參數(shù)來提高車輛安全和舒適性能[1-2]。目前,隨著汽車智能化程度越來越高,汽車電子控制單元的數(shù)目越來越多,各電控單元之間的通信速度越來越快,通信采用的總線形式也趨于多樣化。但是,國外開發(fā)的XCP標(biāo)定軟件不僅價格昂貴,而且不提供原代碼,而國內(nèi)大部分汽車廠商的標(biāo)定軟件都是基于CAN總線的CCP(CAN calibration protocol)標(biāo)定協(xié)議[3-4],所以開發(fā)一款可以兼容不同通信總線的XCP標(biāo)定系統(tǒng)勢在必行。但是,由于汽車電子控制單元的多樣性,使得對不同的汽車電子控制單元,代碼都需重新開發(fā),代碼重用性低、開發(fā)成本高。為解決上述問題,縮短研發(fā)周期,需開發(fā)一款可重用的標(biāo)定軟件。

為此,本文開發(fā)了一款基于AUTOSAR架構(gòu)的XCP標(biāo)定系統(tǒng)。該系統(tǒng)融入AUTOSAR軟件架構(gòu),使用通信標(biāo)準(zhǔn)接口進(jìn)行數(shù)據(jù)交互,實現(xiàn)XCP協(xié)議的模塊化開發(fā),同時XCP協(xié)議可以實現(xiàn)不同總線上的數(shù)據(jù)傳輸,適用于不同硬件平臺,提高通信能力,解決了使用其他汽車總線實現(xiàn)標(biāo)定的難題。最后,通過對所開發(fā)的標(biāo)定系統(tǒng)進(jìn)行代碼QAC檢測及功能測試,結(jié)果顯示該標(biāo)定系統(tǒng)軟件功能完整、實時性高、性能穩(wěn)定。

1 AUTOSAR架構(gòu)簡介

隨著汽車電子控制系統(tǒng)復(fù)雜性的不斷增加,軟件代碼量急劇上升,且嵌入式系統(tǒng)不支持硬件抽象,導(dǎo)致處理器型號更換以后,代碼的重用性差,軟件往往需要重新編寫,這就使得軟件系統(tǒng)開發(fā)周期長、成本高,不能滿足汽車電子技術(shù)高速發(fā)展的要求。于是AUTOSAR(automotive open system architecture)架構(gòu)應(yīng)運而生[5],它是汽車制造商和供應(yīng)商共同合作開發(fā)、建立的符合汽車電子開放式E/E架構(gòu)行業(yè)標(biāo)準(zhǔn)。

AUTOSAR架構(gòu)整體分為3層,分別是應(yīng)用層、運行環(huán)境抽象層、基礎(chǔ)軟件層。應(yīng)用層包括傳感器軟件組件、執(zhí)行器軟件組件以及應(yīng)用軟件組件。運行環(huán)境抽象層是應(yīng)用軟件和基礎(chǔ)軟件層的通信橋梁,可以為應(yīng)用層提供一個統(tǒng)一的通信環(huán)境?;A(chǔ)軟件層是協(xié)議棧的實現(xiàn),包括標(biāo)準(zhǔn)通信棧、網(wǎng)絡(luò)管理模塊、診斷協(xié)議棧、存儲棧、操作系統(tǒng)、微控制器抽象層MCAL(microcontroller abstraction layer)驅(qū)動軟件模塊。

本文所述標(biāo)定系統(tǒng)屬于基礎(chǔ)軟件層,它提供了一種符合AUTOSAR標(biāo)準(zhǔn)通信接口的標(biāo)定軟件模塊解決方案。

2 XCP標(biāo)定系統(tǒng)設(shè)計方案

本系統(tǒng)以飛思卡爾32位MPC5644作為微處理器。該微處理器最高總線時鐘頻率可達(dá)到150 MHz,內(nèi)部192 KB RAM,4 MB片內(nèi)Flash,滿足多標(biāo)定數(shù)據(jù)要求。其系統(tǒng)設(shè)計方案如圖1所示。

在此系統(tǒng)中,標(biāo)定工具支持Vector公司的CANape軟件、ETAS公司的INCA軟件以及普華I-CAL軟件,PC端標(biāo)定軟件與標(biāo)定工具對應(yīng),通信驅(qū)動模塊可以是CAN總線、FlexRay總線、USB等,本系統(tǒng)使用CAN總線。

本系統(tǒng)的工作原理是:安裝于PC端的標(biāo)定軟件,通過GUI界面發(fā)送指令,標(biāo)定工具將命令轉(zhuǎn)換為通信數(shù)據(jù),發(fā)送給微處理器MPC5644通信驅(qū)動模塊,XCP標(biāo)定協(xié)議棧根據(jù)命令要求進(jìn)行相應(yīng)操作。其通信命令包括標(biāo)準(zhǔn)命令組、標(biāo)定命令組、頁切換命令組、DAQ基本命令組、Flash刷寫組。XCP標(biāo)定協(xié)議棧響應(yīng)命令返回給PC標(biāo)定軟件,確認(rèn)操作是否成功。

3 符合AUTOSAR架構(gòu)的XCP協(xié)議實現(xiàn)

在AUTOSAR軟件架構(gòu)中,通信模塊通過Interface(接口)模塊與驅(qū)動模塊進(jìn)行連接。本系統(tǒng)使用CAN總線傳輸標(biāo)定數(shù)據(jù),通過Can Interface模塊嵌入AUTOSAR軟件架構(gòu)。符合AUTOSAR軟件架構(gòu)要求,可以提高代碼重用性,更換處理器型號后,代碼不需要重新編寫,減少軟件系統(tǒng)研發(fā)成本、縮短開發(fā)周期。

AUTOSAR通信協(xié)議棧一般抽象為總線驅(qū)動模塊、總線接口模塊、網(wǎng)絡(luò)管理模塊、通信管理模塊、傳輸層模塊以及內(nèi)部數(shù)據(jù)交互模塊等。其中,總線驅(qū)動模塊實現(xiàn)硬件通信驅(qū)動;總線接口模塊提供協(xié)議層數(shù)據(jù)路由;協(xié)議層數(shù)據(jù)路由,通過診斷協(xié)議與診斷模塊通信實現(xiàn)診斷功能;網(wǎng)絡(luò)管理模塊通過網(wǎng)絡(luò)管理協(xié)議實現(xiàn)其功能;內(nèi)部數(shù)據(jù)交互模塊實現(xiàn)ECU之間數(shù)據(jù)交互。同時運行環(huán)境抽象層與通信管理模塊連接,實現(xiàn)與應(yīng)用層之間的通信[6]。圖2顯示XCP協(xié)議在AUTOSAR軟件架構(gòu)中的位置,可以基于CAN總線、FlexRay總線或以太網(wǎng),通過總線接口接入AUTOSAR軟件架構(gòu)。

XCP協(xié)議實現(xiàn)數(shù)據(jù)標(biāo)定與測量,通過AUTOSAR軟件架構(gòu)的總線接口實現(xiàn)數(shù)據(jù)發(fā)送與接收,嵌入式操作系統(tǒng)的任務(wù)調(diào)度實現(xiàn)不同通道DAQ周期上傳。

在圖2中,AUTOSAR XCP模塊在總線接口模塊上方,如FlexRay或CAN總線,并通過總線接口實現(xiàn)XCP協(xié)議獨立標(biāo)定數(shù)據(jù)的傳輸。

3.1 XCP協(xié)議數(shù)據(jù)發(fā)送過程分析

XCP協(xié)議通過CAN接口模塊的CanIf_Transmit函數(shù)發(fā)送數(shù)據(jù),發(fā)送成功后,調(diào)用CanIf_TxIndication回調(diào)函數(shù)確認(rèn)數(shù)據(jù)發(fā)送成功,圖3詳細(xì)說明數(shù)據(jù)發(fā)送成功后的處理過程。

3.2 XCP協(xié)議數(shù)據(jù)接收響應(yīng)過程分析

XCP協(xié)議通過CAN接口模塊的CanIf_RxIndication函數(shù)接收測量數(shù)據(jù),并對其進(jìn)行處理,圖4詳細(xì)說明數(shù)據(jù)接收成功后處理機制。具體實現(xiàn)了XCP獨有Block傳輸響應(yīng)機制,包含DAQ和STIM處理流程以及事件錯誤與命令錯誤的處理機制。由于CAN報文每幀最多8Byte數(shù)據(jù),未滿8Byte數(shù)據(jù)需用0xFF填充,所以完成數(shù)據(jù)接收后,需先對報文長度進(jìn)行檢查,然后再判斷接收命令是否正確,再進(jìn)行相關(guān)處理。在Block模式下,進(jìn)行DOWNLOAD和PROGRAM命令處理,需先將命令數(shù)據(jù)包存入緩存池,判斷當(dāng)前標(biāo)定或刷寫命令的總字節(jié)長度是否大于6,如果否,則將狀態(tài)置為接收;如果大于6,則狀態(tài)置為模塊接收,并將緩存池ID設(shè)置為DNLOAD_NEXT或PROGRAM_NEXT命令,并結(jié)束接收過程。

3.3 XCP協(xié)議分析

XCP協(xié)議通過主從模式進(jìn)行通信。其中主機一般指PC端標(biāo)定軟件,從機一般指包含XCP協(xié)議的ECU模塊。主機通過標(biāo)準(zhǔn)命令組中的CONNECT命令進(jìn)行與從機的連接;建立連接后,主機就可以發(fā)送標(biāo)定命令組的DOWNLOAD與UPLOAD命令進(jìn)行數(shù)據(jù)的標(biāo)定與測定,發(fā)送頁切換組命令SET_CAL_PAGE,實現(xiàn)RAM與Flash不同區(qū)域切換,發(fā)送DAQ/STIM命令組的WRITE_DAQ等命令實現(xiàn)標(biāo)定數(shù)據(jù)的實時上傳,同時也可以發(fā)送Flash刷寫命令組的PROGRAM命令實現(xiàn)數(shù)據(jù)儲存[7]。

XCP協(xié)議接受到命令后,首先判斷前期接收到的命令是否處理完成,是否處于空閑狀態(tài),再判斷接收到的命令是否有效,如果是則進(jìn)行相應(yīng)的命令處理。以標(biāo)準(zhǔn)命令處理過程為例,進(jìn)行說明。

3.4 標(biāo)準(zhǔn)命令分析

在XCP協(xié)議中,標(biāo)準(zhǔn)命令主要用于主機與從機建立連接,數(shù)據(jù)的上傳與下載以及數(shù)據(jù)解鎖等。其包含的部分命令見表1。

通過CONNECT命令主機與從機建立連接。如果上傳與下載數(shù)據(jù)需要解鎖,必須通過GET_SEED命令獲取密鑰,并使用UNLOCK命令進(jìn)行解鎖;解鎖成功后,通過SET_MTA命令指定工作地址,之后才可以通過DOWNLOAD命令下載數(shù)據(jù)到該地址或通過UPLOAD命令上傳該地址對應(yīng)的數(shù)據(jù)。當(dāng)完成數(shù)據(jù)的傳輸后,可以通過DISCONNECT命令斷開主機與從機之間的連接。表中的DOWNLOAD_NEXT命令用于Block功能傳輸中。

4 XCP軟件測試

XCP軟件測試主要是針對代碼的QAC掃描和功能測試,其中QAC掃描用于檢測編程規(guī)范是否滿足MISRA-C規(guī)范,增強代碼閱讀性以及減少代碼存在的風(fēng)險;功能測試用于檢測XCP軟件功能是否正確和完善。

4.1 QAC靜態(tài)掃描分析

代碼的QAC靜態(tài)掃描主要包括最大嵌套值STMIF、路徑復(fù)雜度STCYC、靜態(tài)路徑計數(shù)值STPTH、單一函數(shù)的行數(shù)STLIN、聲明靜態(tài)全局變量和函數(shù)STSCT、注釋密度STCDN。其中最大嵌套值需小于5,值過大會導(dǎo)致黑盒測試比較困難;路徑復(fù)雜度需小于15,值過大會增大代碼復(fù)雜度。另外,靜態(tài)路徑計數(shù)值需小于300,單一函數(shù)的行數(shù)需小于200,聲明靜態(tài)全局變量和函數(shù)需小于30,這3個數(shù)值均會影響代碼的可讀性及可靠性[9]。

本文以最大嵌套值舉例進(jìn)行說明,如圖5所示。圖中有一個函數(shù)的最大嵌套值超過最大值,其原因是在實際代碼中,該函數(shù)需要支持多種刷寫方式,且檢查地址時需要對多種情況進(jìn)行考慮,為了功能的完整性以及不影響代碼可讀性,可以接受。

4.2 功能測試分析

在進(jìn)行功能測試之前,首先需要將XCP標(biāo)定軟件集成到AUTOSAR軟件架構(gòu)中,其中包括OSEK OS:實現(xiàn)周期性任務(wù)的調(diào)度; 通信模塊:由于該系統(tǒng)基于CAN總線實現(xiàn)數(shù)據(jù)的傳輸,所以主要包括CAN模塊相關(guān)的程序;存儲模塊:主要是Flash程序的刷寫,實現(xiàn)數(shù)據(jù)的保存與讀取。

本文中,XCP標(biāo)定軟件的功能測試工具為Vector的CANoe。通過對其編寫CAPL腳本程序,可以模擬主機發(fā)送各種命令同時接受響應(yīng)數(shù)據(jù),將響應(yīng)數(shù)據(jù)與期望數(shù)據(jù)進(jìn)行比較,就可以自動實現(xiàn)標(biāo)定軟件功能測試[10-11],圖6是功能測試過程中搭建的硬件環(huán)境。圖中左邊為MPC5644開發(fā)板,作為XCP標(biāo)定系統(tǒng)的下位機;右上角為CANoe工具,實現(xiàn)數(shù)據(jù)的傳輸;右下角為PE下載器,實現(xiàn)對XCP系統(tǒng)程序刷寫及調(diào)試。

圖7顯示了測試腳本界面,通過添加TestCase與TestFunction完成XCP系統(tǒng)功能性測試。然后對連接命令的測試進(jìn)行說明,圖8顯示了連接命令的3種不同測試用例。圖8(a)表示:發(fā)送正常連接命令,正常響應(yīng);圖8(b)表示:重復(fù)發(fā)送正常連接命令,第1次正常響應(yīng),第2次響應(yīng)已連接錯誤;圖8(c)表示:第1次發(fā)送正常連接命令后,正常響應(yīng),再發(fā)送錯誤地址連接命令,響應(yīng)超出范圍錯誤。圖9顯示測試結(jié)果,從圖中可以看出測試結(jié)果都通過,說明所研制的XCP系統(tǒng)標(biāo)定、測量、存儲等功能都滿足要求。

5 結(jié)束語

基于飛思卡爾32位微處理器MPC5644,完成了所研制的XCP標(biāo)定系統(tǒng)的功能測試。通過在該微處理器中刷寫基于AUTOSAR架構(gòu)的XCP系統(tǒng),并通過CANoe工具編寫CAPL腳本,實現(xiàn)XCP功能的自動測試。其中涉及嵌入到AUTOSAR架構(gòu),主要體現(xiàn)在通信模塊接口規(guī)范,用于實現(xiàn)數(shù)據(jù)的傳輸。由于該系統(tǒng)基于CAN總線通信,所以使用CAN 接口模塊嵌入AUTOSAR架構(gòu)中。嵌入到AUTOSAR架構(gòu)中,可以增強代碼的重用性,對于后期基于FlexRay與以太網(wǎng)通信,只需要修改與硬件相關(guān)的驅(qū)動模塊,就能夠完成XCP基于FlexRay或以太網(wǎng)通信的移植,減少軟件的開發(fā)周期,從而節(jié)約開發(fā)成本,提供汽車總線多樣化的解決方案。

參考文獻(xiàn)

[1] 蘇瑜,周文華,竺春狄. 一種適用不同通信方式基于XCP協(xié)議的ECU標(biāo)定工具的開發(fā)[J]. 汽車工程,2010,32(1):81-85.

[2] HILTON J. New AUTOSAR adaptive platform on its way[J]. Automotive Industries,2015,194(3):52-53.

[3] 陰曉峰,劉武東.汽車電子系統(tǒng)軟件開發(fā)新標(biāo)準(zhǔn)AUTOSAR[J]. 西華大學(xué)學(xué)報(自然科學(xué)版),2010,29(2):102-106.

[4] 郭晞文. 參照AUTOSAR標(biāo)準(zhǔn)的汽車電子通信與應(yīng)用[D].杭州:浙江大學(xué),2008.

[5] 馮占軍,丁鋒,譚啟寅. 基于XCP協(xié)議的ECU控制器標(biāo)定系統(tǒng)開發(fā)[J]. 上海汽車,2013(11):16-18.

[6] 程馳. FlexRay通訊網(wǎng)絡(luò)在新一代動力系統(tǒng)控制器上的應(yīng)用研究[D]. 北京:清華大學(xué),2013.

[7] 李巖. 基于XCP協(xié)議的標(biāo)定系統(tǒng)設(shè)計與實現(xiàn)[D]. 長春:吉林大學(xué),2012.

[8] 徐柯. 嵌入式軟件測試的研究[D]. 成都:電子科技大學(xué),2006.

[9] 徐澤南. 軟件自動化測試框架的設(shè)計與應(yīng)用[D]. 上海:復(fù)旦大學(xué),2011.

[10] 劉正升,萬程亮,蔣志忠,等. 自動測試系統(tǒng)中新技術(shù)的發(fā)展及應(yīng)用[J]. 中國測試,2009,35(4):58-61.

[11] 王安軍,蔣建春,陳培然. 符合AUTOSAR規(guī)范的底層驅(qū)動軟件開發(fā)[J]. 計算機工程,2011,37(9):62-64,67.

(編輯:商丹丹)