官方的demo用的是基于以太网的,但我对can更熟悉,所以想要实现基于can的XCP,失败~
2026.4.18 今天在CSDN上看到一个帖子,发现想要实时调参根本不用通过XCP协议,文章里说可以通过将模型参数暴露为CANoe系统变量,在canoe里调整系统变量就行。告别CAPL编程!用Matlab/Simulink+CANoe实现复杂ECU仿真的5个技巧
1.
用canoe内置的标定工具箱总是报错,查看trace得知是因为slave不支持D7命令。回复FE 20,FE指错误响应,20指从机不支持该命令。
2.
D7命令是个可选项,所以查看A2l文件,把文件里描述从机支持D7命令的部分删除,想着canoe可能会跳过这个命令。实验后发现没用,和上面现象一样。
3.
索性不用上位机标定了,自己在IG模块里遵循XCP协议发标定报文,在A2L文件里找到测量量的地址和长度。
地址是0,长度是1个字节,AG也是1,所以。F4到后面跟的也是1.
确实是读到了一个值,但这0x4D是什么鬼!这个值在matlab给的是6。而且感觉地址是0就怪怪的,刚开始以为是相对地址,A2L文件里应该有一个类似于起始地址的东西。但是翻了一通啥也没找到。
4.
用canape试着测量一下,读出来也是同样的4D。
用canape进行标定的时候,canoe崩溃了,我也崩溃了。