发明内容
本发明所要解决的技术问题是,克服现有技术的缺点,提供一种增强网络稳定性、降低整车电能消耗的商用车CAN网络管理方法。
为了解决以上技术问题,本发明提供一种商用车CAN网络管理方法,其特征在于,采用直接网络管理与间接网络管理相结合的管理方式,将采用间接网络管理的CAN节点定义为A类节点,将采用直接网络管理的CAN节点定义为B类节点,
对所述A类节点的管理方法按如下步骤进行:
ⅰ、当发生唤醒事件时,A类节点由初始化状态进入网络启动状态,进而进入网络激活状态,所述唤醒事件包括点火钥匙打开或者接到复位指令;
ⅱ、A类节点进入网络激活状态之后,立即传输指定的周期性应用报文;
ⅲ、当点火钥匙关闭时,A类节点由网络激活状态进入网络关闭状态,进而进入初始化状态;
对所述B类节点的管理方法按如下步骤进行:
Ⅰ、当发生唤醒事件时,B类节点由初始化状态进入网络启动状态,B类节点发送激活报文唤醒其他B类节点,进入网络激活状态,所述唤醒事件包括重新通电、接到复位指令、点火钥匙打火或者总线上有连续的显性电平;
Ⅱ、B类节点处于激活状态,建立逻辑环路管理网络,当B类节点需要CAN通信时,请求网络进行通信;当B类节点不需要CAN通信时,释放网络;
Ⅲ、当一个B类节点检测到当前状态需释放网络,发送携带睡眠指令的网络报文释放网络,当所有的B类节点释放了网络,一个睡眠应答位被置为网络管理报文被发送,B类节点进入网络关闭状态;
Ⅳ、B类节点处于网络关闭状态时,如果发生唤醒事件,B类节点由网络关闭状态进入网络激活状态;如果一段时间之后,没有唤醒事件发生,B类节点由网络关闭状态进入初始化状态。
本发明进一步限定的技术方案是:所述直接网络管理为OSEC标准的直接网络管理。
进一步地,B类节点的管理方法的步骤Ⅱ中,当B类节点通信失败时,进入故障模式,网络管理进入一个特定的错误状态,保持故障模式2s之后,将记录一个诊断故障码;
所述B类节点通信失败是指B类节点接收功能错误计数器数值大于4或者发送功能错误计数器数值大于8。
进一步地,B类节点的管理方法的步骤Ⅱ中,B类节点处于激活状态时,如果有新增加的B类节点,新增加的B类节点首先通过网络管理报文声明自身节点地址,已经在网络上的B类节点收到此报文后,增加新增加的B类节点的地址,重新对节点地址排序,重新建立逻辑环路。
进一步地,B类节点的管理方法的步骤Ⅱ中,B类节点处于激活状态时,如果有B类节点退出网络,要退出的B类节点首先通过网络管理报文声明自身节点地址及退出请求,网络上的其它B类节点收到此报文后,删除要退出的B类节点的地址,重新对节点地址排序,重新建立逻辑环路。
进一步地,B类节点的管理方法的步骤Ⅱ中,B类节点处于活动状态时,接收报文的B类节点对接收的报文进行超时监控,如果报文丢失时间达到其周期的5倍时,则认定该报文超时,接收报文的B类节点将与之对应的信号值置为默认值或者无效值,同时记录诊断故障码,诊断故障码会保存下来,通过诊断工具进行删除, 当故障消除后,即可自动回到网络激活状态。
进一步地,在如下条件下,接收报文的B类节点放弃对接收的报文进行超时监控:点火钥匙关闭;点火钥匙打开后的3s以内;需要供电的B类节点的供电电压超出范围9~16V;发动机启动及启动后的1s之内;从诊断仪接收到关闭或者开启报文接收或者发送功能的命令。
进一步地,B类节点的管理方法的步骤Ⅱ中,B类节点通过监测CAN控制器的Bus-off条件监控总线状态,如果由于CAN控制器的Bus-off导致B类节点与CAN网络断开连接,则B类节点发送复位指令尝试恢复总线通信;
所述B类节点发送服务指令的循环延迟时间为:首次重试延迟时间为50ms;后续重试延迟时间,对于发动机控制系统为100ms,其余节点为500ms;
所述B类节点发送服务指令的最长持续时间,对于发动机控制系统为无限长,其余节点为10s。
进一步地,B类节点的管理方法的步骤Ⅱ中,如果B类节点供电电压不在9~16V范围内220ms后,所述B类节点禁止报文的发送行为和接收行为,进入欠压/过压的错误状态,并保留网络激活状态;当B类节点处于供电电压9~16V范围内220ms后,所述B类节点恢复网络激活状态。
本发明的有益效果是:本发明所述的一种商用车CAN网络管理方法,运用有效的网络管理手段,增强网络的稳定性,降低网络的电能消耗,适用于网络节点多的商用车;并且,本发明的B类网络节点可以在网络激活状态增加和减少,灵活程度高;检测CAN控制器的Bus-off条件监控总线状态,降低单个节点不断尝试连接,影响网络负载;进行供电电压异常处理,避免了因电压异常频繁引起的报文超时以及网络故障;本发明组网方便,在不改变现有商用车的设计的情况下,直接安装使用,适应能力强。
实施例1
本实施例提供的一种商用车CAN网络管理方法,采用OSEC标准的直接网络管理与间接网络管理相结合的管理方式,将采用间接网络管理的CAN节点定义为A类节点,将采用直接网络管理的CAN节点定义为B类节点。
在CAN总线式通讯方式中,规定了网络运行相关的工作状态以及相互转换关系如图1所示,图中虚线部分只适用于B类节点。
如图1所示,节点将从初始化网络状态转化为网络启动状态,其转化条件为:
l A类节点: 点火钥匙打开或者接到复位指令。
l B类节点重新通电、接到复位指令、点火钥匙打火或者CAN总线活动。
下面介绍一下图1中所示的网络状态的节点的操作:
网络非激活状态:所有节点不需要CAN通信。
网络启动状态:节点能够接收和处理报文或者节点请求网络通讯。
网络激活状态:节点允许发送应用报文。
网络关闭状态:各节点立刻禁止报文的发送功能和接收功能。
本地模式:网络关闭后进入,B类节点执行不需要CAN通信的功能。
低功耗模式:网络关闭后进入,B类节点将禁止所有功能,同时进入特殊模式以降低功耗。
本实施例汇总,共用10个高速CAN节点,所述10个高速CAN节点的组网示意图如图1所示,其中A类节点两个:分别为车身控制模块和组合仪表;B类节点八个:分别问变速箱控制单元、车身电子稳定系统、音响、发动机控制系统、发动机防盗锁止系统、行驶记录仪、转角传感器、胎压报警系统。上述10个高速CAN节点通过HS-CAN总线连接,数据传输速度为250kbit/s。
对所述A类节点的管理方法按如下步骤进行:
ⅰ、当发生唤醒事件时,A类节点由初始化状态进入网络启动状态,由初始化状态进入网络启动状态的时间为0-150ms;进而进入网络激活状态,由网络启动状态进入网络激活状态的时间为150-200ms。
所述唤醒事件包括点火钥匙打开或者接到复位指令。
ⅱ、A类节点进入网络激活状态之后,立即传输指定的周期性应用报文,以保持心跳。
ⅲ、当点火钥匙关闭时,A类节点由网络激活状态进入网络关闭状态,进而进入初始化状态,由网络激活状态进入网络关闭状态的时间为0-150ms。
对所述B类节点的管理方法按如下步骤进行:
Ⅰ、当发生唤醒事件时,B类节点由初始化状态进入网络启动状态,由初始化状态进入网络启动状态的时间为80ms;B类节点发送激活报文唤醒其他B类节点,在90-120ms内,节点进入网络激活状态。
所述唤醒事件包括重新通电、接到复位指令、点火钥匙打火或者总线上有连续的显性电平。
Ⅱ、B类节点处于激活状态,建立逻辑环路管理网络,当B类节点需要CAN通信时,请求网络进行通信;当B类节点不需要CAN通信时,释放网络。
在B类节点处于激活状态时,有如下几种特殊情况的处理:
(1)当B类节点通信失败时,进入故障模式,网络管理进入一个特定的错误状态,保持故障模式2s之后,将记录一个诊断故障码。所述B类节点通信失败是指B类节点接收功能错误计数器数值大于4或者发送功能错误计数器数值大于8。
当总线关闭之后,系统也进入故障模式。在故障模式下,发送周期为1s的网络管理报文。
(2)B类节点处于激活状态时,通过建立逻辑环路管理网络,节点发送网络管理报文时,都会标明目的地址。
如果有新增加的B类节点,新增加的B类节点首先通过网络管理报文声明自身节点地址,已经在网络上的B类节点收到此报文后,增加新增加的B类节点的地址,重新对节点地址排序,重新建立逻辑环路。
如图3所示,原网络节点地址有: 0x00,0x12, 0x13;新加节点地址:0x33,需对地址重新排序后,重新建立逻辑环路。
如果有B类节点退出网络,要退出的B类节点首先通过网络管理报文声明自身节点地址及退出请求,网络上的其它B类节点收到此报文后,删除要退出的B类节点的地址,重新对节点地址排序,重新建立逻辑环路。
(3)接收报文的B类节点对接收的报文进行超时监控,如果报文丢失时间达到其周期的5倍时,则认定该报文超时,接收报文的B类节点将与之对应的信号值置为默认值或者无效值,同时记录诊断故障码,诊断故障码会保存下来,可以通过诊断工具进行删除,当故障消除后,即可自动回到网络激活状态。
在如下条件下,接收报文的B类节点放弃对接收的报文进行超时监控:点火钥匙关闭;点火钥匙打开后的3s以内;需要供电的B类节点的供电电压超出范围9~16V;发动机启动及启动后的1s之内;从诊断仪接收到关闭或者开启报文接收或者发送功能的命令。
(4)B类节点通过监测CAN控制器的Bus-off条件监控总线状态,如果由于CAN控制器的Bus-off导致B类节点与CAN网络断开连接,则B类节点发送复位指令尝试恢复总线通信。
所述B类节点发送服务指令的循环延迟时间为:首次重试延迟时间为50ms;后续重试延迟时间,对于发动机控制系统为100ms,其余节点为500ms。
所述B类节点发送服务指令的最长持续时间,对于发动机控制系统为无限长,其余节点为10s。
在每次总线关闭及重置操作发生时(或者每一个点火钥匙ON/OFF周期内),节点只能存储一个故障码。当报文超时错误监控暂停条件满足时,节点不存储检测到的总线关闭故障。通过这种处理方式,可以避免单个节点因Bus-off,不断尝试总线通讯,影响网络负载,严重时网络负载可高达90%以上,降低了网络稳定性。
(5)对B类节点进行供电电压异常处理,如果B类节点供电电压不在9~16V范围内220ms后,所述B类节点禁止报文的发送行为和接收行为,进入欠压/过压的错误状态,并保留网络激活状态;当B类节点处于供电电压9~16V范围内220ms后,所述B类节点恢复网络激活状态。
对B类节点进行供电电压异常处理,避免了因电压异常频繁引起的报文超时以及bus-off等故障状态,保证了网络的稳定性。
Ⅲ、当一个B类节点检测到当前状态需释放网络,发送携带睡眠指令的网络报文释放网络,当所有的B类节点释放了网络,一个睡眠应答位被置为网络管理报文被发送,B类节点进入网络关闭状态,B类节点处于网络关闭状态时,任何节点不允许发送也接收应用报文。
Ⅳ、B类节点处于网络关闭状态时,如果发生唤醒事件,B类节点由网络关闭状态进入网络激活状态,由网络关闭状态进入网络激活状态的时间为:如果唤醒事件是本地事件,时间是50ms;如果唤醒事件是远程事件,时间为150ms。
如果一段时间之后,没有唤醒事件发生,B类节点由网络关闭状态进入初始化状态,进入初始化状态之后,如果有唤醒时间发生,执行步骤Ⅰ。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。