系列文章目录
使用CAPL脚本解析hex、S19、vbf文件
使用CAPL脚本对CAN报文的Counter、CRC、周期、错误帧进行实时监控
使用CAPL脚本模拟发送符合协议要求(Counter和CRC)的CAN报文
使用CAPL脚本控制继电器实现CAN线、电源线的通断
使用CAPL脚本实现BUS OFF干扰测试
使用CAPL脚本进行DTC自动化测试
使用CAPL脚本进行UDS刷写及其自动化测试
使用CAPL脚本进行UDS协议测试
使用CAPL脚本进行网络管理测试
常见问题处理系列文章… …
粉丝问题解答系列文章… …
其他持续更新中… …
问题描述
使用CANFD的配置模板新建了一个CANOE工程,使用IG模块发送CAN报文或者普通的CANFD报文都正常,但是只要发送CANFD报文时勾选了BRS(转换可变速率),发送报文时就会出现错误帧或发送失败。现象如下:
错误帧类型包括:
ECC: 100001111xxxxx, Not Acknowledge error, dominant error flag, Bit Position = 561
ECC: 110000000xxxxx, Bit Error, Bit Position = 94
原因分析
按照常规思路,逐一排查了:1、线束连接;2、终端匹配电阻;3、重启CANOE;4、重新插拔VN1630A;5、重新创建CANOE工程;6、怀疑是CANoe的IG发送界面有BUG,写了CAPL脚本来发送CANFD加速报文。以上均无问题。
最后在检查CAN通信配置时,发现采样点(sample point)配置不对,CANOE新建工程后,数据域和仲裁域的采样点均默认配置为70%。如下所示:
解决方案
将数据域和仲裁域的采样点均更改为80%(这个要根据被测设备的配置而定,大部分设备配置的是80%):
重新发送CANFD报文,并勾选BRS(转换可变速率),测试成功:
扩展知识
1、BRS
CAN FD(CAN with Flexible Data Rate)协议中的BRS(Bit Rate Switch)是一个关键特性,它允许在同一个CAN FD帧中使用两种不同的比特率,从而提高了数据传输的灵活性和效率。
定义:BRS是CAN FD协议中的一个控制位,用于指示是否在同一帧中切换比特率。
作用:通过BRS位,CAN FD帧可以在仲裁阶段(使用标称比特率)和数据阶段(使用更高的数据比特率)之间切换比特率,从而在不改变物理层的情况下提高数据传输速率。
优势:提高数据传输速率(通过允许在数据阶段使用更高的比特率,BRS可以显著提高数据传输速率,从而加快数据传输速度并减少传输时间);灵活性(BRS提供了在单个帧中切换比特率的灵活性,使得网络设计更加灵活多样);兼容性(BRS的引入并没有改变CAN FD的物理层规范,因此现有的CAN网络可以平滑升级到CAN FD网络,而无需更换物理布线)。
应用场景:BRS特别适用于那些对数据传输速率有较高要求的应用场景,如汽车、工业自动化、航空航天等领域。在这些领域中,大量的实时数据需要在不同的节点之间快速传输,以确保系统的正常运行和性能优化。
2、采样点
在CANFD协议中,采样点是节点判断信号逻辑电平的位置,是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。这些采样点用于确定该位的值是0还是1,从而确保数据的正确接收和解析。
合适的采样点位置是CAN控制器正常通信的保证。对于CAN网络这个整体而言,多个节点要尽量保持同一个采样点。若网络中节点采样点不一致可能会导致同样的采样频率出现采样错误,进而使整个网络出现故障。