一种冗余CAN总线通信系统的数据通信方法与流程

文档序号:12492087阅读:来源:国知局

技术特征:

1.一种冗余CAN总线通信系统的数据通信方法,其特征在于,包括以下步骤:

a、发送端将包含滚动计数值a的PDO报文在两条CAN总线上发送;发送端发送具有同一个报文ID的PDO报文时,每发送一帧PDO报文,PDO报文的滚动计数值a加1,滚动计数值a的初始值为0,滚动计数值的上限值为N,当滚动计数值a达到其上限值N时,重新从1开始计数;

b、在接收端设置期望计数器和无效接收窗口,所述期望计数器的计数值b用于表示期望接收到的PDO报文的滚动计数值,所述无效接收窗口所对应的PDO报文的滚动计数值范围由M帧PDO报文的计数值共同组成,该M帧PDO报文位于期望接收到的PDO报文之前,并紧邻该期望接收到的PDO报文;M为预设的窗口宽度;接收端每接收到发送端发送的一帧PDO报文时,先判断该帧PDO报文是否有效,其中: 除接收到的PDO报文的滚动计数值a为0的情况以外,当接收到的PDO报文的滚动计数值a落入无效接收窗口对应的PDO报文滚动计数值范围内时,接收端判断接收到的PDO报文为无效报文;当期望计数器的计数值b为0、接收到的PDO报文的滚动计数值a为0、或者是接收到的PDO报文的滚动计数值a不在所述无效接收窗口对应的PDO报文滚动计数值范围内时,接收端判断接收的PDO报文有效;

c、接收端在接收到滚动计数值a为0的有效报文时,将期望计数器的计数值b设为1,在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b小于所述的上限值N时,将期望计数器的计数值b更新为该有效报文的滚动计数值加1,在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b等于所述的上限值N时,将期望计数器的计数值b更新为1;

d、接收端在接收到无效报文时,丢弃该无效报文,并维持当前期望计数器的计数值b不变。

2.根据权利要求1所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于,将PDO报文的数据场中的第一个字节用于计数。

3.根据权利要求2所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于,N=255。

4.根据权利要求1或2所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于, 所述预设的窗口宽度M的取值范围为5<M<50。

5.根据权利要求1或2所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于,所述预设的窗口宽度M由以下公式确定:

6.根据权利要求1所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于,接收端在接收到PDO报文的滚动计数值a为0的报文时对外发出发送端正在重启的通知信息。

7.根据权利要求1所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于,在接收端设置正常接收窗口,所述正常接收窗口所对应的PDO报文的滚动计数值范围由期望接收到的PDO报文和M帧PDO报文的滚动计数值共同组成,该M帧PDO报文位于期望接收到的PDO报文之后,并紧邻该期望接收到的PDO报文;

接收端在接收到有效的PDO报文时,如果该有效的PDO报文的滚动计数值a既不为0也不在所述的正常接收窗口所对应的PDO报文滚动计数值范围内,则接收端对外发出故障报警信息。

8.根据权利要求1所述的一种冗余CAN总线通信系统的数据通信方法,其特征在于,所述的步骤b进一步包括以下步骤:

接收端每接收到发送端发送的一帧PDO报文时,先判断所述期望计数器的计数值b 是否为0,如果b=0,则判断接收到的PDO报文为有效报文;

如果b≠0,接收端判断接收到的PDO报文的滚动计数值a是否为0,如果a=0,则判断接收到的PDO报文为有效报文;

如果a≠0,接收端判断期望计数器的计数值b与该接收到的PDO报文的滚动计数值a的差值c是否小于0,c=a-b;如果c不小于0,则直接判断c是否大于等于0且小于预设的窗口宽度M,如果c<0,则将c+N赋给c后再判断c是否大于等于0且小于预设的窗口宽度M;

如果接收端判断c是大于等于0且小于预设的窗口宽度M,则判断接收到的PDO报文为有效报文,如果接收端判断c不是大于等于0且小于预设的窗口宽度M,则进一步判断c是否大于等于M且小于报文有效但发生故障的阈值T,T=N-M;

如果接收端判断c是大于等于M且小于报文有效但发生故障的阈值T,则接收端判断接收到的PDO报文为有效报文并对外发出故障报警信息;如果接收端判断c不是大于等于M且小于报文有效但发生故障的阈值T,则判断接收到的PDO报文为无效报文。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1