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

文档序号:9870006阅读:来源:国知局
据发送失败的原因是仲裁失败,表示数据未发送,失败与接收端无关;重要数据发送失败的原因是数据错误,则表示数据在发送过程中出现异常。此时,先统计重发的次数,再进行数据重发判断。如果重发的次数大于预设的重发上限值,则表示进行多次重发后,仍不能正常发送完成,通信线路故障或者CAN总线非常繁忙,则告警输出:总线错误,总线繁忙。如果重要数据发送失败的原因是除了上述原因以外其他的原因,则告警输出:未知通信错误。
[0026]参考图3,图3为一种增强型CAN总线数据重发方法的一具体实施例的流程图。首先,初始化CAN;等待数据,如果没有数据则继续等待,直到有数据需要发送时,将待发送的数据送入发送信箱进行发送;获取发送标识,所述标识包含发送结果,错误类型等信息;根据获取的标识,判断是否发送成功,如果发送成功,则继续等待下一个要发送的数据,否则进行错误处理,即进行重发判断;判断未发送成功的数据是否为重要数据,如果不是重要数据,则不做处理,返回等待数据,否则进行进一步重发判断;判断数据发送失败的原因是否为ACK错误,如果为ACK错误,则进行错误次数记录,当ACK的错误次数超过3次时,判断从设备故障或者通信线路故障,则告警输出:ACK错误,从设备无应答,否则判断数据发送失败的原因是否为仲裁错误或数据错误,如果是仲裁失败或数据错误,则重发并统计重发次数,当重发次数超过3次时,告警输出:总线错误,总线繁忙;如果不是仲裁失败或数据错误,则告警输出:未知通信错误。
[0027]—种增强型CAN总线数据重发装置,包括:
第一模块,用于判断数据是否发送成功,如果数据发送成功,则继续判断数据是否发送成功,否则进行重发判断;
第二模块,用于根据数据发送失败的原因进行重发判断并做出不同的处理。
[0028]进一步作为优选的实施方式,所述根据数据发送失败的原因进行重发判断并做出不同的处理具体包括:
首先,判断是否为重要数据,如果为重要数据,则继续进行数据发送失败原因判断,否则返回判断数据是否发送成功;
接着,判断数据发送失败的原因是否为ACK错误,如果是,则统计ACK错误的个数并根据ACK错误的个数做出相应处理,否则继续进行数据发送失败原因判断;
最后,判断数据发送失败的原因是否为仲裁失败或者数据错误,如果是,则统计重发次数并进行数据重发;否则,进行不同的异常处理。
[0029]进一步作为优选的实施方式,所述统计ACK错误的个数并根据ACK错误的个数做出相应处理具体为:
首先,统计ACK错误的个数;
接着,判断ACK错误的个数是否大于ACK错误的上限值,如果ACK错误的个数大于ACK错误的上限值,则进行不同的异常处理,否则判断数据是否发送成功。
[0030]进一步作为优选的实施方式,所述统计重发次数并进行数据重发具体为:
首先,统计重发次数;
接着,判断重发次数是否大于重发上限值,如果重发次数大于重发上限值,则进行不同的异常处理,否则重发数据。
[0031]进一步作为优选的实施方式,所述进行不同的异常处理具体为:
判断是否为ACK错误的个数大于ACK错误的上限值,如果是,告警输出:ACK错误,从设备无应答,否则判断是否为重发次数大于重发上限值,如果是,则告警输出:总线错误,总线繁忙,否则告警输出:未知通信错误。
[0032]所述增强型CAN总线数据重发装置可以有效地提高CAN总线的资源利用率,减小数据发送的拥堵程度。
[0033]以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
【主权项】
1.一种增强型CAN总线数据重发方法,其特征在于:包括以下步骤: S1、判断数据是否发送成功,如果发送成功,则继续判断数据是否发送成功,否则执行步骤S2以进行重发判断; S2、根据数据发送失败的原因进行重发判断并做出不同的处理。2.根据权利要求1所述的增强型CAN总线数据重发方法,其特征在于:所述步骤S2包括: S21、判断是否为重要数据,如果为重要数据,则执行步骤S22,否则执行步骤SI; S22、判断数据发送失败的原因是否为ACK错误,如果是,则统计ACK错误的个数并根据ACK错误的个数做出相应处理,否则执行步骤S23; S23、判断数据发送失败的原因是否为仲裁失败或者数据错误,如果是,则统计重发次数并进行数据重发;否则,执行步骤S24; S24、进行不同的异常处理。3.根据权利要求2所述的增强型CAN总线数据重发方法,其特征在于:所述步骤S23中统计重发次数并进行数据重发包括: S231、统计重发次数; S232、判断重发次数是否大于重发上限值,如果重发次数大于重发上限值,则执行步骤S24,否则执行步骤S233; S233、重发数据。4.根据权利要求3所述的增强型CAN总线数据重发方法,其特征在于:所述步骤S22中统计ACK错误的个数并根据ACK错误的个数做出相应处理包括: S221、统计ACK错误的个数; S2 2 2、判断ACK错误的个数是否大于ACK错误的上限值,如果ACK错误的个数大于ACK错误的上限值,则执行步骤S24,否则执行步骤SI。5.根据权利要求4所述的增强型CAN总线数据重发方法,其特征在于:所述步骤S24包括: S241、判断是否为ACK错误的个数大于ACK错误的上限值,如果是,告警输出:ACK错误,从设备无应答,否则执行步骤S242; S242、判断是否为重发次数大于重发上限值,如果是,则告警输出:总线错误,总线繁忙,否则执行步骤S243; S243、告警输出:未知通信错误。6.一种增强型CAN总线数据重发装置,其特征在于:包括: 第一模块,用于判断数据是否发送成功,如果数据发送成功, 则继续判断数据是否发送成功,否则进行重发判断; 第二模块,用于根据数据发送失败的原因进行重发判断并做出不同的处理。7.根据权利要求6所述的增强型CAN总线数据重发装置,其特征在于:所述根据数据发送失败的原因进行重发判断并做出不同的处理具体包括: 首先,判断是否为重要数据,如果为重要数据,则继续进行数据发送失败原因判断,否则返回判断数据是否发送成功; 接着,判断数据发送失败的原因是否为ACK错误,如果是,则统计ACK错误的个数并根据ACK错误的个数做出相应处理,否则继续进行数据发送失败原因判断; 最后,判断数据发送失败的原因是否为仲裁失败或者数据错误,如果是,则统计重发次数并进行数据重发;否则,进行不同的异常处理。8.根据权利要求7所述的增强型CAN总线数据重发装置,其特征在于:所述统计重发次数并进行数据重发具体为: 首先,统计重发次数; 接着,判断重发次数是否大于重发上限值,如果重发次数大于重发上限值,则进行不同的异常处理,否则重发数据。9.根据权利要求8所述的增强型CAN总线数据重发装置,其特征在于:所述统计ACK错误的个数并根据ACK错误的个数做出相应处理具体为: 首先,统计ACK错误的个数; 接着,判断ACK错误的个数是否大于ACK错误的上限值,如果ACK错误的个数大于ACK错误的上限值,则进行不同的异常处理,否则判断数据是否发送成功。10.根据权利要求9所述的增强型CAN总线数据重发装置,其特征在于:所述进行不同的异常处理具体为: 判断是否为ACK错误的个数大于ACK错误的上限值,如果是,告警输出:ACK错误,从设备无应答,否则判断是否为重发次数大于重发上限值,如果是,则告警输出:总线错误,总线繁忙,否则告警输出:未知通信错误。
【专利摘要】本发明公开了一种增强型CAN总线数据重发方法,包括以下步骤:S1、判断数据是否发送成功,如果发送成功,则继续判断数据是否发送成功,否则执行步骤S2以进行重发判断;S2、根据数据发送失败的原因进行重发判断并做出不同的处理。还公开一种增强型CAN总线数据重发装置。本发明的增强型CAN总线数据重发方法和装置,通过对不同数据发送失败的原因进行判断,然后做出不同处理,降低了总线的资源占用率,提升了总线容量以及减小数据发送的拥堵程度,对总线异常的检测更加及时。本发明作为一种增强型CAN总线数据重发方法和装置可广泛应用于CAN总线通信领域。
【IPC分类】H04L12/40, H04L1/16
【公开号】CN105634894
【申请号】CN201511030469
【发明人】黎德宇
【申请人】深圳市科陆电源技术有限公司
【公开日】2016年6月1日
【申请日】2015年12月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1