一种增强型can总线数据重发方法和装置的制造方法

文档序号:9870006阅读:785来源:国知局
一种增强型can总线数据重发方法和装置的制造方法
【技术领域】
[0001]本发明涉及CAN通信领域,尤其是一种增强型CAN总线数据重发方法和装置。
【背景技术】
[0002]CAN是Controller Area Network的缩写(以下称为CAN),是ISO国际标准化的串行通信协议,是国际上应用最广泛的现场总线之一。CAN总线在工业控制总线中占用越来越多的比例。CAN总线采用CSMA机制,具有优先级管理,重要数据优先发送,保证系统可靠性。
[0003]目前在CAN通信过程中,如果通信失败,不管失败原因,根据不同策略,直接重发,虽然保证了通信的可靠性,但是将大量占用总线资源,降低总线带宽;另一种处理方式,不重发并按异常处理,则会引起误报故障。

【发明内容】

[0004]为了解决上述技术问题,本发明的目的是提供一种增强型CAN总线数据重发方法和装置,其可以降低总线的资源占用率,提升总线容量以及减小数据发送的拥堵程度,对总线异常的检测更加及时。
[0005]本发明所采用的技术方案一方面是一种增强型CAN总线数据重发方法,包括以下步骤:
51、判断数据是否发送成功,如果发送成功,则继续判断数据是否发送成功,否则执行步骤S2以进行重发判断;
52、根据数据发送失败的原因进行重发判断并做出不同的处理。
[0006]进一步地,所述步骤S2包括:
521、判断是否为重要数据,如果为重要数据,则执行步骤S22,否则执行步骤SI;
522、判断数据发送失败的原因是否为ACK错误,如果是,则统计ACK错误的个数并根据ACK错误的个数做出相应处理,否则执行步骤S23;
523、判断数据发送失败的原因是否为仲裁失败或者数据错误,如果是,则统计重发次数并进行数据重发;否则,执行步骤S24;
524、进行不同的异常处理。
[0007]进一步地,所述步骤S23中统计重发次数并进行数据重发包括:
5231、统计重发次数;
5232、判断重发次数是否大于重发上限值,如果重发次数大于重发上限值,则执行步骤S24,否则执行步骤S233;
5233、重发数据。
[0008]进一步地,所述步骤S22中统计ACK错误的个数并根据ACK错误的个数做出相应处理包括:
5221、统计ACK错误的个数;
5222、判断ACK错误的个数是否大于ACK错误的上限值,如果ACK错误的个数大于ACK错误的上限值,则执行步骤S24,否则执行步骤SI。
[0009]进一步地,所述步骤S24包括:
5241、判断是否为ACK错误的个数大于ACK错误的上限值,如果是,告警输出:ACK错误,从设备无应答,否则执行步骤S242;
5242、判断是否为重发次数大于重发上限值,如果是,则告警输出:总线错误,总线繁忙,否则执行步骤S243;
5243、告警输出:未知通信错误。
[0010]本发明的技术方案另一方面为一种增强型CAN总线数据重发装置,包括:
第一模块,用于判断数据是否发送成功,如果数据发送成功,则继续判断数据是否发送成功,否则进行重发判断;
第二模块,用于根据数据发送失败的原因进行重发判断并做出不同的处理。
[0011]进一步地,所述根据数据发送失败的原因进行重发判断并做出不同的处理具体包括:
首先,判断是否为重要数据,如果为重要数据,则继续进行数据发送失败原因判断,否则返回判断数据是否发送成功;
接着,判断数据发送失败的原因是否为ACK错误,如果是,则统计ACK错误的个数并根据ACK错误的个数做出相应处理,否则继续进行数据发送失败原因判断;
最后,判断数据发送失败的原因是否为仲裁失败或者数据错误,如果是,则统计重发次数并进行数据重发;否则,进行不同的异常处理。
[0012]进一步地,所述统计重发次数并进行数据重发具体为:
首先,统计重发次数;
接着,判断重发次数是否大于重发上限值,如果重发次数大于重发上限值,则进行不同的异常处理,否则重发数据。
[0013]进一步地,所述统计ACK错误的个数并根据ACK错误的个数做出相应处理具体为: 首先,统计ACK错误的个数;
接着,判断ACK错误的个数是否大于ACK错误的上限值,如果ACK错误的个数大于ACK错误的上限值,则进行不同的异常处理,否则判断数据是否发送成功。
[0014]进一步地,所述进行不同的异常处理具体为:
判断是否为ACK错误的个数大于ACK错误的上限值,如果是,告警输出:ACK错误,从设备无应答,否则判断是否为重发次数大于重发上限值,如果是,则告警输出:总线错误,总线繁忙,否则告警输出:未知通信错误。
[0015]本发明的有益效果是:本发明的增强型CAN总线数据重发方法,通过对不同数据发送失败的原因进行判断,然后做出不同处理,降低了总线的资源占用率,提升了总线容量以及减小数据发送的拥堵程度,对总线异常的检测更加及时。
[0016]本发明的另一有益效果是:本发明的增强型CAN总线数据重发装置可以有效地提高CAN总线的资源利用率,减小数据发送的拥堵程度。
【附图说明】
[0017]下面结合附图对本发明的【具体实施方式】作进一步说明: 图1是本发明中一种增强型CAN总线数据重发方法的整体流程图;
图2是本发明中一种增强型CAN总线数据重发方法的的具体流程图;
图3是本发明中一种增强型CAN总线数据重发方法的一具体实施例的流程图。
【具体实施方式】
[0018]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0019]—种增强型CAN总线数据重发方法,参考图1,包括以下步骤:
51、判断数据是否发送成功,如果发送成功,则继续判断数据是否发送成功,否则执行步骤S2以进行重发判断;
52、根据数据发送失败的原因进行重发判断并做出不同的处理。
[0020]进一步作为优选的实施方式,参考图2,所述步骤S2包括:
521、判断是否为重要数据,如果为重要数据,则执行步骤S22,否则执行步骤SI;
522、判断数据发送失败的原因是否为ACK错误,如果是,则统计ACK错误的个数并根据ACK错误的个数做出相应处理,否则执行步骤S23;
523、判断数据发送失败的原因是否为仲裁失败或者数据错误,如果是,则统计重发次数并进行数据重发;否则,执行步骤S24;
524、进行不同的异常处理。
[0021]进一步作为优选的实施方式,所述步骤S22中统计ACK错误的个数并根据ACK错误的个数做出相应处理包括:
5221、统计ACK错误的个数;
5222、判断ACK错误的个数是否大于ACK错误的上限值,如果ACK错误的个数大于ACK错误的上限值,则执行步骤S24,否则执行步骤SI。
[0022]进一步作为优选的实施方式,所述步骤S23中统计重发次数并进行数据重发包括:
5231、统计重发次数;
5232、判断重发次数是否大于重发上限值,如果重发次数大于重发上限值,则执行步骤S24,否则执行步骤S233;
5233、重发数据。
[0023]进一步作为优选的实施方式,所述步骤S24包括:
5241、判断是否为ACK错误的个数大于ACK错误的上限值,如果是,告警输出:ACK错误,从设备无应答,否则执行步骤S242;
5242、判断是否为重发次数大于重发上限值,如果是,则告警输出:总线错误,总线繁忙,否则执行步骤S243;
5243、告警输出:未知通信错误。
[0024]当利用CAN总线进行数据传输失败时,首先判断所传输的数据是否为重要数据,如果不是重要数据,则返回判断数据是否发送成功;否则,继续做进一步判断。
[0025]接着,判断重要数据发送失败的原因,如果重要数据发送失败的原因是ACK错误,则表示数据发送成功,接收端未接收,或者发送端未与接收端建立连接,可不用重发,可直接判断接收失败,统计ACK错误的个数,当ACK错误的个数大于预设的ACK错误上限值时,进行告警输出:ACK错误,从设备无应答;如果重要数据发送失败的原因为仲裁失败或者数据错误,重要数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1