✅ 操作成功!

xcp协议

发布时间:2023-06-06 作者:admin 来源:文学

xcp协议

xcp协议

高二小-行业代码是什么

2023年2月21日发(作者:o型圈规格尺寸表)

基于AUTOSAR架构的XCP标定系统开发

谢江浩;彭忆强;朱丽;罗青松

【摘要】针对汽车总线多样化以及汽车ECU之间数据交互量大的问题,设计一款

以32位微处理器为硬件内核、以AUTOSAR为软件架构,符合MISRA-C嵌入式编

程规范,适用于多种通信总线的XCP标定系统.在该标定系统数据交互中,为增加标

定系统通用性和代码可重用性,采用符合AUTOSAR通信协议栈的标准接口,实现与

AUTOSAR其他协议栈的无缝连接.同时对XCP代码进行QAC检测,提高标定系统

代码阅读性.编写VectorCANoe的CAPL脚本程序,进行自动功能测试,检测标定

系统功能的完整性.测试结果表明:所设计的标定系统数据交互实时性高、可靠性

强.%Withregardtothediversifiedautomobilebusandtheamountofdata

exchangebetweenECU,aXCPcalibrationsystemthattakes32-bit

microprocessorasthecoreofhardwareandAUTOSARasthesoftware

architecture,complieswithMISRA-Cstandardandapplicabletovarious

ataexchangeofthecalibration

system,thissystemusesastandardportsuitableforAUTOSARprotocol

stacktoimprovetheuniversalityofthesystemandthereusabilityofthe

code,andrealizestheseamlessconnectionwithotherAUTOSARprotocol

ile,theXCPsystem'scodeisdetectedwithQACmethodto

cript

programiswrittenbasedonVectorCANoe,andtheautomatetestingof

tresults

showthatthedesignedcalibrationsystemhashighreal-timedataand

strongreliability.

【期刊名称】《中国测试》

【年(卷),期】2017(043)012

【总页数】6页(P113-118)

【关键词】XCP;AUTOSAR;标定系统;QAC

【作者】谢江浩;彭忆强;朱丽;罗青松

【作者单位】西华大学汽车与交通学院,四川成都610039;四川汽车关键零部件同

创新中心,四川成都610039;西华大学汽车测控与安全四川省重点实验室,四川成

都610039;西华大学汽车与交通学院,四川成都610039;四川汽车关键零部件同创

新中心,四川成都610039;西华大学汽车测控与安全四川省重点实验室,四川成都

610039;普华基础软件股份有限公司,上海200233;普华基础软件股份有限公司,上

海200233

【正文语种】中文

标定系统在汽车发动机控制系统、变速器控制系统、底盘控制系统、刹车防抱死系

统、车身电子控制系统等电子模块的开发中都具有重要作用,可以通过修改ECU

控制软件参数来提高车辆安全和舒适性能[1-2]。目前,随着汽车智能化程度越来

越高,汽车电子控制单元的数目越来越多,各电控单元之间的通信速度越来越快,

通信采用的总线形式也趋于多样化。但是,国外开发的XCP标定软件不仅价格昂

贵,而且不提供原代码,而国内大部分汽车厂商的标定软件都是基于CAN总线的

CCP(CANcalibrationprotocol)标定协议[3-4],所以开发一款可以兼容不同

通信总线的XCP标定系统势在必行。但是,由于汽车电子控制单元的多样性,使

得对不同的汽车电子控制单元,代码都需重新开发,代码重用性低、开发成本高。

为解决上述问题,缩短研发周期,需开发一款可重用的标定软件。

为此,本文开发了一款基于AUTOSAR架构的XCP标定系统。该系统融入

AUTOSAR软件架构,使用通信标准接口进行数据交互,实现XCP协议的模块化

开发,同时XCP协议可以实现不同总线上的数据传输,适用于不同硬件平台,提

高通信能力,解决了使用其他汽车总线实现标定的难题。最后,通过对所开发的标

定系统进行代码QAC检测及功能测试,结果显示该标定系统软件功能完整、实时

性高、性能稳定。

随着汽车电子控制系统复杂性的不断增加,软件代码量急剧上升,且嵌入式系统不

支持硬件抽象,导致处理器型号更换以后,代码的重用性差,软件往往需要重新编

写,这就使得软件系统开发周期长、成本高,不能满足汽车电子技术高速发展的要

求。于是AUTOSAR(automotiveopensystemarchitecture)架构应运而生

[5],它是汽车制造商和供应商共同合作开发、建立的符合汽车电子开放式E/E架

构行业标准。

AUTOSAR架构整体分为3层,分别是应用层、运行环境抽象层、基础软件层。

应用层包括传感器软件组件、执行器软件组件以及应用软件组件。运行环境抽象层

是应用软件和基础软件层的通信桥梁,可以为应用层提供一个统一的通信环境。基

础软件层是协议栈的实现,包括标准通信栈、网络管理模块、诊断协议栈、存储栈、

操作系统、微控制器抽象层MCAL(microcontrollerabstractionlayer)驱动软

件模块。

本文所述标定系统属于基础软件层,它提供了一种符合AUTOSAR标准通信接口

的标定软件模块解决方案。

本系统以飞思卡尔32位MPC5644作为微处理器。该微处理器最高总线时钟频率

可达到150MHz,内部192KBRAM,4MB片内Flash,满足多标定数据要求。

其系统设计方案如图1所示。

在此系统中,标定工具支持Vector公司的CANape软件、ETAS公司的INCA软

件以及普华I-CAL软件,PC端标定软件与标定工具对应,通信驱动模块可以是

CAN总线、FlexRay总线、USB等,本系统使用CAN总线。

本系统的工作原理是:安装于PC端的标定软件,通过GUI界面发送指令,标定

工具将命令转换为通信数据,发送给微处理器MPC5644通信驱动模块,XCP标

定协议栈根据命令要求进行相应操作。其通信命令包括标准命令组、标定命令组、

页切换命令组、DAQ基本命令组、Flash刷写组。XCP标定协议栈响应命令返回

给PC标定软件,确认操作是否成功。

在AUTOSAR软件架构中,通信模块通过Interface(接口)模块与驱动模块进行

连接。本系统使用CAN总线传输标定数据,通过CanInterface模块嵌入

AUTOSAR软件架构。符合AUTOSAR软件架构要求,可以提高代码重用性,更

换处理器型号后,代码不需要重新编写,减少软件系统研发成本、缩短开发周期。

AUTOSAR通信协议栈一般抽象为总线驱动模块、总线接口模块、网络管理模块、

通信管理模块、传输层模块以及内部数据交互模块等。其中,总线驱动模块实现硬

件通信驱动;总线接口模块提供协议层数据路由;协议层数据路由,通过诊断协议

与诊断模块通信实现诊断功能;网络管理模块通过网络管理协议实现其功能;内部

数据交互模块实现ECU之间数据交互。同时运行环境抽象层与通信管理模块连接,

实现与应用层之间的通信[6]。图2显示XCP协议在AUTOSAR软件架构中的位

置,可以基于CAN总线、FlexRay总线或以太网,通过总线接口接入AUTOSAR

软件架构。

XCP协议实现数据标定与测量,通过AUTOSAR软件架构的总线接口实现数据发

送与接收,嵌入式操作系统的任务调度实现不同通道DAQ周期上传。

在图2中,AUTOSARXCP模块在总线接口模块上方,如FlexRay或CAN总线,

并通过总线接口实现XCP协议独立标定数据的传输。

XCP协议通过CAN接口模块的CanIf_Transmit函数发送数据,发送成功后,调

用CanIf_TxIndication回调函数确认数据发送成功,图3详细说明数据发送成功

后的处理过程。

XCP协议通过CAN接口模块的CanIf_RxIndication函数接收测量数据,并对其

进行处理,图4详细说明数据接收成功后处理机制。具体实现了XCP独有Block

传输响应机制,包含DAQ和STIM处理流程以及事件错误与命令错误的处理机制。

由于CAN报文每帧最多8Byte数据,未满8Byte数据需用0xFF填充,所以完成

数据接收后,需先对报文长度进行检查,然后再判断接收命令是否正确,再进行相

关处理。在Block模式下,进行DOWNLOAD和PROGRAM命令处理,需先将

命令数据包存入缓存池,判断当前标定或刷写命令的总字节长度是否大于6,如果

否,则将状态置为接收;如果大于6,则状态置为模块接收,并将缓存池ID设置

为DNLOAD_NEXT或PROGRAM_NEXT命令,并结束接收过程。

XCP协议通过主从模式进行通信。其中主机一般指PC端标定软件,从机一般指包

含XCP协议的ECU模块。主机通过标准命令组中的CONNECT命令进行与从机

的连接;建立连接后,主机就可以发送标定命令组的DOWNLOAD与UPLOAD

命令进行数据的标定与测定,发送页切换组命令SET_CAL_PAGE,实现RAM与

Flash不同区域切换,发送DAQ/STIM命令组的WRITE_DAQ等命令实现标定数

据的实时上传,同时也可以发送Flash刷写命令组的PROGRAM命令实现数据储

存[7]。

XCP协议接受到命令后,首先判断前期接收到的命令是否处理完成,是否处于空

闲状态,再判断接收到的命令是否有效,如果是则进行相应的命令处理。以标准命

令处理过程为例,进行说明。

在XCP协议中,标准命令主要用于主机与从机建立连接,数据的上传与下载以及

数据解锁等。其包含的部分命令见表1。

通过CONNECT命令主机与从机建立连接。如果上传与下载数据需要解锁,必须

通过GET_SEED命令获取密钥,并使用UNLOCK命令进行解锁;解锁成功后,通

过SET_MTA命令指定工作地址,之后才可以通过DOWNLOAD命令下载数据到

该地址或通过UPLOAD命令上传该地址对应的数据。当完成数据的传输后,可以

通过DISCONNECT命令断开主机与从机之间的连接。表中的

DOWNLOAD_NEXT命令用于Block功能传输中。

XCP软件测试主要是针对代码的QAC扫描和功能测试,其中QAC扫描用于检测

编程规范是否满足MISRA-C规范,增强代码阅读性以及减少代码存在的风险;功

能测试用于检测XCP软件功能是否正确和完善。

代码的QAC静态扫描主要包括最大嵌套值STMIF、路径复杂度STCYC、静态路

径计数值STPTH、单一函数的行数STLIN、声明静态全局变量和函数STSCT、注

释密度STCDN。其中最大嵌套值需小于5,值过大会导致黑盒测试比较困难;路

径复杂度需小于15,值过大会增大代码复杂度。另外,静态路径计数值需小于

300,单一函数的行数需小于200,声明静态全局变量和函数需小于30,这3个

数值均会影响代码的可读性及可靠性[9]。

本文以最大嵌套值举例进行说明,如图5所示。图中有一个函数的最大嵌套值超

过最大值,其原因是在实际代码中,该函数需要支持多种刷写方式,且检查地址时

需要对多种情况进行考虑,为了功能的完整性以及不影响代码可读性,可以接受。

在进行功能测试之前,首先需要将XCP标定软件集成到AUTOSAR软件架构中,

其中包括OSEKOS:实现周期性任务的调度;通信模块:由于该系统基于CAN

总线实现数据的传输,所以主要包括CAN模块相关的程序;存储模块:主要是

Flash程序的刷写,实现数据的保存与读取。

本文中,XCP标定软件的功能测试工具为Vector的CANoe。通过对其编写

CAPL脚本程序,可以模拟主机发送各种命令同时接受响应数据,将响应数据与期

望数据进行比较,就可以自动实现标定软件功能测试[10-11],图6是功能测试过

程中搭建的硬件环境。图中左边为MPC5644开发板,作为XCP标定系统的下位

机;右上角为CANoe工具,实现数据的传输;右下角为PE下载器,实现对XCP

系统程序刷写及调试。

图7显示了测试脚本界面,通过添加TestCase与TestFunction完成XCP系统功

能性测试。然后对连接命令的测试进行说明,图8显示了连接命令的3种不同测

试用例。图8(a)表示:发送正常连接命令,正常响应;图8(b)表示:重复发

送正常连接命令,第1次正常响应,第2次响应已连接错误;图8(c)表示:第

1次发送正常连接命令后,正常响应,再发送错误地址连接命令,响应超出范围错

误。图9显示测试结果,从图中可以看出测试结果都通过,说明所研制的XCP系

统标定、测量、存储等功能都满足要求。

基于飞思卡尔32位微处理器MPC5644,完成了所研制的XCP标定系统的功能测

试。通过在该微处理器中刷写基于AUTOSAR架构的XCP系统,并通过CANoe

工具编写CAPL脚本,实现XCP功能的自动测试。其中涉及嵌入到AUTOSAR架

构,主要体现在通信模块接口规范,用于实现数据的传输。由于该系统基于CAN

总线通信,所以使用CAN接口模块嵌入AUTOSAR架构中。嵌入到AUTOSAR

架构中,可以增强代码的重用性,对于后期基于FlexRay与以太网通信,只需要

修改与硬件相关的驱动模块,就能够完成XCP基于FlexRay或以太网通信的移植,

减少软件的开发周期,从而节约开发成本,提供汽车总线多样化的解决方案。

【相关文献】

[1]苏瑜,周文华,竺春狄.一种适用不同通信方式基于XCP协议的ECU标定工具的开发[J].汽车工

程,2010,32(1):81-85.

[2]OSARadaptiveplatformonitsway[J].AutomotiveIndustries,2015,

194(3):52-53.

[3]阴晓峰,刘武东.汽车电子系统软件开发新标准AUTOSAR[J].西华大学学报(自然科学版),

2010,29(2):102-106.

[4]郭晞文.参照AUTOSAR标准的汽车电子通信与应用[D].杭州:浙江大学,2008.

[5]冯占军,丁锋,谭啟寅.基于XCP协议的ECU控制器标定系统开发[J].上海汽车,2013(11):

16-18.

[6]程驰.FlexRay通讯网络在新一代动力系统控制器上的应用研究[D].北京:清华大学,2013.

[7]李岩.基于XCP协议的标定系统设计与实现[D].长春:吉林大学,2012.

[8]徐柯.嵌入式软件测试的研究[D].成都:电子科技大学,2006.

[9]徐泽南.软件自动化测试框架的设计与应用[D].上海:复旦大学,2011.

[10]刘正升,万程亮,蒋志忠,等.自动测试系统中新技术的发展及应用[J].中国测试,2009,35

(4):58-61.

[11]王安军,蒋建春,陈培然.符合AUTOSAR规范的底层驱动软件开发[J].计算机工程,2011,37

(9):62-64,67.

👁️ 阅读量:0