Can总线负载率监控方法及系统的制作方法

文档序号:9420173阅读:1065来源:国知局
Can总线负载率监控方法及系统的制作方法
【技术领域】
[0001]本发明涉及CAN总线领域,特别涉及一种CAN总线负载率监控方法及系统。
【背景技术】
[0002]CAN总线在通信时,必须首先设置波特率,各个节点只有处于同一波特率下才能正常通信。同时,由于CAN总线有带宽限制,正常的总线负载率必须在设置波特率允许的30%以下才能正常通信,超过这一限定值,将会造成CAN总线拥塞以及信元的丢包。若波特率范围为5Kbps?IMbps之间。以设置波特率为250Kbps为例,以30%的负载率为上限计算。Ims可传输的最大数据位数量为:250*30%= 75bit。因此,如果在此条件下,CAN总线中平均Ims发送超过75bit的CAN数据帧将造成总线的拥塞,同时也一定有数据帧丢失。
[0003]然而在通常的CAN通信设备中,没有针对总线负载率高的监控功能,因而造成一旦出现总线负载率过高,有总线拥塞和数据帧丢包的情况,分析和处理的难度大,必须由专业的技术人员到场解决。
[0004]因此,如何在CAN总线网络中实时监控总线负载率,是亟待解决的技术难题。

【发明内容】

[0005]有鉴于此,本发明旨在提供一种CAN总线负载率监控方法及系统,以实时监控总线负载率,保障正常通信。
[0006]具体地,该CAN总线负载率监控方法包括:步骤A:将CAN总线通信的接收设置为中断方式,并设置为接收所有数据;步骤B:根据当前设置的波特率以及数据帧类型,计算第一预设时间内允许发送的数据帧的最大数量N。;步骤C:响应接收中断时,确认接收到的CAN数据帧的数据长度length,并保存当前的计数值CNT,根据所述当前的计数值CNT与上次响应接收中断的计数值CNTcild,计算得到所述第一预设时间内实际发送的数据帧数量N ;所述计数值CNT的预设初始值小于所述第一预设时间,所述计数值CNT在CAN总线的主节点运行时实时累加;步骤D:比较所述数据帧的最大数量N。与所述实际发送的数据帧数量N ;步骤E:在所述实际发送的数据帧数量N大于所述数据帧的最大数量N。时,确定当前的总线负载率异常。
[0007]进一步地,在所述步骤E之后还包括:步骤F:在第二预设时间内连续确定当前的总线负载率异常时,进行故障提示和/或报警操作。
[0008]进一步地,在所述步骤D之后还包括:在所述实际发送的数据帧数量N小于或等于所述数据帧的最大数量N。时,确定当前的总线负载率正常。
[0009]进一步地,所述步骤C中所述第一预设时间内实际发送的数据帧数量N的计算公式如下:N = length*8/( (CNT-CNTcild) *(100*10 3))。
[0010]进一步地,所述第一预设时间为Ims ;所述计数值CNT的单位为lOOus。
[0011]具体地,该CAN总线负载率监控系统包括:CAN主节点及CAN从节点;所述CAN主节点及CAN从节点通过CAN总线连接;所述CAN主节点包括:
[0012]设置单元,用于将CAN总线通信的接收设置为中断方式;
[0013]计算单元,用于根据当前设置的波特率以及数据帧类型,计算第一预设时间内允许发送的数据帧的最大数量N。;
[0014]第一处理单元,用于响应接收中断时,确认接收到的CAN数据帧的数据长度length,并保存当前的计数值CNT,根据所述当前的计数值CNT与上次响应接收中断的计数值CNTcild,计算得到所述第一预设时间内实际发送的数据帧数量N ;所述计数值CNT的预设初始值小于所述第一预设时间,所述计数值CNT在CAN总线的主节点运行时实时累加;第二处理单元,用于比较所述数据帧的最大数量N。与所述实际发送的数据帧数量N,在所述实际发送的数据帧数量N大于所述数据帧的最大数量N。时,确定当前的总线负载率异常。
[0015]进一步地,所述的CAN总线负载率监控系统还包括:报警单元,用于在第二预设时间内连续确定当前的总线负载率异常时,进行故障提示和/或报警操作,所述报警单元与所述第二处理单元信号连接。
[0016]进一步地,所述第一处理单元包括:处理子单元,用于如下公式计算所述第一预设时间内实际发送的数据帧数量N,N = lengths/ ((CNT-CNTold) * (100*10 3))。
[0017]进一步地,所述的CAN总线负载率监控系统还包括第三处理单元,用于在所述实际发送的数据帧数量N小于或等于所述数据帧的最大数量N。时,确定当前的总线负载率正常;所述第三处理单元与所述第二处理单元信号连接。
[0018]进一步地,所述第一预设时间为Ims ;所述计数值CNT的单位为lOOus。
[0019]本发明通过在将CAN总线通信的接收设置为中断方式,且根据所述当前的计数值CNT与上次响应接收中断的计数值CNTcild,计算得到所述第一预设时间内实际发送的数据帧数量N,在所述实际发送的数据帧数量N大于所述数据帧的最大数量N。时,确定当前的总线负载率异常,可以对CAN总线上的所有数据进行实时监控,从而保证正常通信。
【附图说明】
[0020]构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0021]图1为本发明实施例提供的一种CAN总线负载率监控方法的流程图;
[0022]图2为本发明实施例提供的CAN总线负载率监控系统中主从节点的连接示意图;
[0023]图3为图2所示CAN主节点的结构框图。
【具体实施方式】
[0024]应当指出,本部分中对具体结构的描述及描述顺序仅是对具体实施例的说明,不应视为对本发明的保护范围有任何限制作用。此外,在不冲突的情形下,本部分中的实施例以及实施例中的特征可以相互组合。
[0025]请参考图1,下面将附图对本发明实施例的CAN总线负载率监控方法作详细说明。
[0026]如图1所示,该实施例的CAN总线负载率监控方法可以包括如下步骤:
[0027]Sll:将CAN总线通信的接收设置为中断方式,并设置为接收所有数据;
[0028]S12:根据当前设置的波特率以及数据帧类型,计算第一预设时间内允许发送的数据帧的最大数量N。;
[0029]S13:响应接收中断时,确认接收到的CAN数据帧的数据长度length,并保存当前的计数值CNT ;
[0030]S14:根据所述当前的计数值CNT与上次响应接收中断的计数值CNTcild,计算得到所述第一预设时间内实际发送的数据帧数量N ;所述计数值CNT的预设初始值小于所述第一预设时间,所述计数值CNT在CAN总线的主节点运行时实时累加;
[0031]S15:比较所述数据帧的最大数量N。与所述实际发送的数据帧数量N ;
[0032]S16:在所述实际发送的数据帧数量N大于所述数据帧的最大数量N。时,确定当前的总线负载率异常。
[0033]优选地,在所述S16之后还可以包括:在第二预设时间内连续确定当前的总线负载率异常时,进行故障提示和/或报警操作。这样,通过在确定当前的总线负载率过高(即异常)一段时间后,即总线平均负载率都高于安全的负载率范围时,将进行故障提示和报警,便于在总线负载率异常时,能及时有效地处理。
[0034]具体的,还可以在所述S15之后还包括:在所述实际发送的数据帧数量N小于或等于所述数据帧的最大数量N。时,确定当前的总线负载率正常。此外,所述第一预设时间内实际发送的数据帧数量N的计算公式如下:N = lengths/ ((CNT-CNTold) * (100*10 3))。所述第一预设时间可为Ims ;所述计数值CNT的单位可为lOOus。
[0035]本实施例通过将CAN总线通信的接收设置为中断方式,且根据所述当前的计数值CNT与上次响应接收中断的计数值CNTcild,计算得到所述第一预设时间内实际发送的数据帧数量N,在所述实际发送的数据帧数量N大于所述数据帧的最大数量N。时,确定当前的总线负载率异常,可以对CAN总线上的所有数据进行实时有效监控,从而保证正常通信
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1