TI中文支持网
TI专业的中文技术问题搜集分享网站

多种CAN通信协议并存下接收广播命令无响应

最近基于28032平台做CAN通信测试,偶尔出现其中一种协议的广播命令不响应。

大概情况为:

 

不同协议收发邮箱说明:

 

接收邮箱

发送邮箱

协议选择标志

(CanProtocolFlag)

MSGID

初始化

LAM接收

滤波

模块之间协议

BOX1

BOX4

一直运行

0xc6900003

0x81DFFFFF

协议1(监控与模块)

BOX1

BOX5

0x00

协议2(监控与模块)

BOX1

BOX5

协议3(监控与模块)

BOX2

BOX8

0x03

0xC29A00F0

0x807FFFFF

协议4(监控与模块)

BOX0

BOX10

0x02

0xD307C080

0x8006C87F

 

通信故障描述

说明:

旧程序包含模块间协议、协议1和协议2,并且默认一直使能。统称为内部协议。

新程序包含上表的所有协议,协议3和协议4 通过标志位选择,内部协议一直使能。

6个模块并机运行(单模块是否复现没验证),刷新新程序。

 

(1)选择CanProtocolFlag=0x03(协议3),下发一条协议1屏蔽通讯中断的广播命令:

ID:0697FF83    DATA:03 F0 00 37 00 01 00 00     (命令1)

其中拨码地址为5(6个模块中最大地址)的模块偶尔出现不响应情况,这里称为“通信故障”。在此基础上切换通信协议为协议4(CanProtocolFlag=0x02),下发命令1,故障仍然复现。把通信协议切换为内部协议(CanProtocolFlag=0x00),下发命令1,故障消失,也就是说模块响应下发命令。

(2)当模块出现通信故障时,下发协议1点对点命令:

ID:06982F83    DATA:03 F0 00 37 00 01 00 00     (命令2)

模块响应,下发协议1中任何一条广播命令(ID: 0697FF83,目的地址为0xff)模块均不响应。

(3)拨码地址为5的模块出现通信故障的次数最多,2号模块仅出现过一次。通过更换模块的插槽,5号模块还是会出现故障。可以排除5号模块的通信硬件连接问题,排除模块插槽通信线问题。

(4)旧程序没有出现上述通信故障情况。 

(5)模块如果上电后第一次能响应命令1,不断电的情况下,模块能正常响应各种协议的命令。如果模块上电后第一次不能响应命令1,不断电的情况下,模块一直不能响应命令1,其他命令均能响应;存在通信故障的情况下在线升级旧程序,然后下发命令1,模块能响应。重新在线升级程序为新程序,模块通信故障仍存在。

 (6)出现上述通信故障的情况很难复现。

赞(0)
未经允许不得转载:TI中文支持网 » 多种CAN通信协议并存下接收广播命令无响应
分享到: 更多 (0)