首页 > 汽车技术 > 正文

一文搞懂汽车标定协议之XCP

2024-07-29 08:13:51·  来源:九州华海科技  
 

前言:


看这篇文章之前,我们需要先带着问题来看,什么是XCP?为什么要用XCP?相对于CCP的优势是什么?


首先我们知道CCP是基于CAN的测量与标定协议,其全名为CAN Calibration Protocol。


而XCP中的X表示为任意一种通信,例如CAN、Ethernet、USB等,由于传统的CCP协议受限与CAN通信本身吞吐量的限制,因此ASAM组织在2003年提出了XCP标定协议,且在XCP协议中优化了CCP协议资源利用率。XCP与CCP一致主要应用与测量与标定,遵循主从模式,即上位机为主机,ECU为从机。


一、XCP的基本应用


1.调试控制器,除传统的Debug方式外,还可以借助上位机通过XCP来调试ECU


2.上传ECU数据,实现对ECU内部变量进行观测


3.在线对ECU内部变量进行标定


4.数据仿真,周期性下载数据至ECU,通常用于快速原型


二、XCP基本特征


1.数据测量(Polling & DAQ)


2.数据标定(Polling & Block Calibration)


3.Flash编程


4.多传输协议


5.块通信


6.时间戳数据传输


7.数据激励


8.测量数据优先级


三、Polling与DAQ测量


Polling模式通俗可以理解为一问一答模式,主设备先问,从设备回答,两者之间不断交互来实现主从设备的通信和数据交换,这种通信方式实现起来比较简单,但是占用带宽,效率极低。


在理解DAQ模式之前,先举个例子,A是卖鱼的,鱼卖的比较好, 没鱼了就和B打电话叫B送点鱼,长时间之后,B发现每次送的鱼基本都一样,就和A立下个规矩,草鱼卖的快一天送一次,黑鱼三天送一次,清江鱼五天送一次,不用天天打电话说了,如果临时急需在打电话。讲到这里就明白了,如果所有的数据都是一问一答的传输,就会浪费很多的带宽,影响效率,因此DAQ就将数据按传输速率分组,分为若干个DAQ List,每个List里面包含若干个ODT(数据列表),每个ODT中包含若干个entry(条目),这些条目专门存储数据地址以及数据长度,每个DAQ List对应一个发送周期,周期性的向上位机发送测量数据。DAQ模式除去了命令式交互,大大增加了数据带宽提升了效率。


图片


四、普通标定与块标定


普通标定模式与Polling一致,一问一答,效率低。


图片


XCP在CCP的基础上新增了块标定,上位机可对连续的地址空间连续写入。


图片


五、XCP服务


XCP把命令式传输对象叫做CTO,把数据传输对象叫做DTO。


图片


CTO包括:




DTO包括:




六、CMD指令与RES、ERR指令


CMD命令表示上位机对ECU发出命令,ECU必须对上位机做出正响应(RES)或负响应(ERR)。


报文格式如下:


CMD:1字节PID+7字节数据

图片


正响应:1字节PID(0xFF)+7字节数据

图片


负响应:1字节PID(0xFE)+1字节否定响应码

图片


常用的CMD指令如下:


连接指令与正响应:

图片


断开连接与正响应:

图片


数据下载指令:


图片


Polling数据上载:

图片


DAQ数据上载:

图片


七、EV指令


EV指令格式如下:EV指令用于ECU对上位机事件上报。

图片


EV事件如下:




EV事件不需要 ,因此无法保证到达。


八、RESV指令


RESV命令表示上位机对ECU执行相应动作,指令格式如下:

图片

RESV对ECU执行事件如下:




九、STIM数据激励


STIM命令表示上位机周期性的向ECU下载数据,相当于反向DAQ,常用于快速原型开发,数据格式如下:

图片


十、总结


XCP在CCP的基础上优化了多协议通信,支持任何物理层协议,不仅限于CAN,优化了控制单元资源的利用率,增加同步数据激励,通过块传输命令优化通信效率。


随着汽车以太网的普及,XCP也将会得到广泛的应用,华海科技拥有一支专业的车载基础软件研发团队,针对XCP我们可以提供以下服务:


XCP协议培训服务,XCP理论学习及实操培训;

XCP协议栈定制开发服务,我们的XCP协议栈经过了单元,集成和功能测试,稳定可靠。可以支持CANApe、INCA等测量标定软件。已为国内多家客户提供相关服务,并获得客户肯定。


分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25