转载链接:https://www.jianshu.com/p/e16793138330
本篇文章主要从以下几个方面进行对XCP模块的讲解
1.XCP用来做什么;
2.XCP的工具简介;
3.XCP的工作流程;
1.XCP用来做什么?
在汽车电子软件开发中,经常会遇到需要在整车调试或者台架调试时才能确定的一些变量,
这个时候就会用到XCP,例如电机控制器的PID参数,可能根据汽车的负载不一样需要调整,
这个时候就可通过XCP来标定。
那么XCP主要的用处以下总结为四点:
a.标定
b.测量(反馈一些变量的值供上位机或测试系统查看,如转速等)
c.编程和刷新(例如更新一部分地址的数据值,甚至重编程等,这部分用的较少一般用UDS)
d.对ECU功能进行旁路,简单来说就是模拟ECU的数据其中主要用a,b两点,其他两点用的
比较少。
2.XCP的工具简介
目前XCP主要使用的工具有Vector公司的CANape ITAS的INCA,Value CAN等工具。
3.XCP的一般工作流程
首先XCP是主从的工作结构,主节点(Master)即一个上位机,我们定义它为测试系统,
当然你也可以理解为我们使用的XCP工具,一个主节点可以连接多个从节点(Slave),
以XCPOnCAN为例,可以通过CAN ID的方式来识别不同的从节点,一般从节点需要
两个CANID,一个源地址,一个目标地址。
那么硬件连接如下所示:Master(带上位机的笔记本)<-->CAN工具<-->Slave
(ECU 可多个)
a.第一步我们要将Master和Slave连接起来,当然是通过发命令的方式建立连接,
具体命令后面进行讲解。
b.第二步可以通过上位机工具监控之前定义好的一些变量,例如速度,转矩,电压等参数;
c.第三步可以进行一些在线标定功能,比如在台架上标定PID的一些参数,标定过程一般
是先在一 个存储区(RAM)定义的变量找出一个比较好的参数,然后将这个比较
好的参数固化下来,擦除原来 的数据写入到另外一个映射好的存储区(flash),这个
是标定的 一般过程;
d.当然也可以通过重新擦写一个数据区域,使用其编程的功能。