一种网络级自适应CAN总线故障诊断方法与流程

文档序号:15979067发布日期:2018-11-17 00:06阅读:225来源:国知局

本发明涉及一种can总线故障诊断方法,特别是一种网络级自适应can总线故障诊断方法nafd(annetwork-leveladaptivefaultdiagnosismethodforcontrollerareanetwork)。nafd通过网络节点间的信息通信来诊断节点的间歇故障和永久故障,当节点出现永久故障时使其进入总线关闭状态,从而提高网络的可靠性。

背景技术

控制器局域网can(controllerareanetwork)是一种面向汽车的国际标准化串行通信协议,目前已经是汽车网络的标准协议。由于其高性能和可靠性也广泛应用于工业自动化、船舶、医疗设备汽车以及其它工业场合,为分布式控制系统实现各节点之间实时、可靠的数据通信提供强有力支持。

汽车节点是can网络中的电控模块,随着can总线网络规模和复杂性的增加,网络遭受干扰的可能性增大。网络节点设备连接器松动或电缆疲劳引起的连接不畅以及环境干扰等会造成节点间歇性故障,而网络节点电控单元硬件如存储器、cpu等会造成节点永久故障,从而恶化网络服务质量和降低网络性能。

因此,如何对can总线网络中的节点进行有效的故障检测,准确判断节点故障类型,并减少检测时网络的数据量,提高总线诊断速度,成为故障诊断时所要解决的问题。



技术实现要素:

本发明所要解决的技术问题是针对现有can总线故障诊断的方法无法准确判断网络中节点的故障类型及诊断时网络中数据量大、诊断速度慢等问题,提出了一种网络级自适应can总线故障诊断方法nafd,将can网络中的节点分为测试节点及被测节点,采用节点间依次进行诊断的方式,判断故障节点的故障类型;同时,每个节点中的缓存内容只包含对应节点的状态,减少了网络中的数据量,从而提高了网络性能。

本发明一种网络级自适应can总线故障诊断方法包括两部分内容:模型分析及故障诊断方法。模型分析是对can总线网络拓扑模型进行通信过程分析,从而得到网络故障诊断模型。故障诊断方法是利用网络拓扑模型对can总线中的节点进行依次诊断。直到诊断完成后,发送广播帧,更新每个节点中缓存区内的所有节点状态,此时节点出现的故障状态标记为间歇性故障,当下一次诊断时,若该节点还处于故障状态,此时标记为永久故障,并使其处于总线关闭状态,从而达到提高网络可靠性的目的。

所述的can总线网络的拓扑模型,can网络中的任意一个ecu节点与can总线相连接,并且can总线采用多主机方式工作,即网络中节点可以再任意时刻主动地向网络中其他节点发送信息。

为了使描述更为方便,假设can总线网络中有n个节点,v是can总线网络中所有节点的集合,其中n1是第一个节点,n2是第二个节点,…,nn是第n个节点。即:v=(n1,n2,......,nn)。

在诊断时对can总线网络模型进行以下假设:

(1)当节点停止工作时,即认为节点发生故障,并且故障节点不会与其他节点进行通信。

(2)网络中可能存在一个或多个故障节点,但网络中所有的故障节点个数要小于等于(n-2)。

(3)诊断过程中的任意节点都可能发生故障。节点的故障状况可以分为间歇故障或永久故障。

(4)对于已经测试过的节点,在同一个诊断周期内不会重复诊断该节点状态的变化。但是,在下一个诊断周期中将会诊断该节点的状态变化。

(5)在一个诊断周期中,每个节点仅由另一个节点进行测试。

所述的故障诊断方法是在对can网络中的节点进行故障诊断时,将网络中的节点分为测试节点和被测节点,当网络中的节点为测试节点时,将发送测试帧对被测节点进行测试;当网络中的节点为被测节点时,将接收来自其他测试节点发送的测试帧。nafd方法在每个节点中,为网络中所有的节点分配一个缓存区,用来存储网络中各个节点的工作状态,且缓存顺序与节点顺序一致,缓存区内节点的状态包括:正常状态、间歇故障状态及永久故障状态三种节点状态。网络中用来诊断故障时的数据帧中前2个字节用来存储测试节点的id及被测节点的id,第3个字节中的前两位用来存储发送的帧类型,其中:00代表测试帧;01代表结果帧;10代表第二次发送的结果帧;11表示结束的广播帧,其余位用来存储网络中各节点的状态,其中:00代表节点无故障,处于正常状态;01代表节点处于间歇故障状态;10代表节点处于永久故障状态;11表示保留。

网络中某无故障节点在特定时间通过发送测试帧表示本方法开始工作。若任一节点在指定时间内未收到测试帧,则其成为测试者,启动测试过程。如果被测节点收到测试帧,表示该测试节点无故障,并在被测节点的缓存中标记测试节点为无故障,此外,被测节点根据测试节点发送的测试帧中信息来更新其缓存区内各节点的工作状态;若被测节点无故障,则被测节点在规定时间内向测试节点发送结果帧,测试者接收到结果帧后读取测试信息。并依据该诊断信息更新其缓存区:测试节点将其自身标记为无故障,同时,测试者将被测试节点标记为无故障。该过程称为一个测试轮。

当网络中的测试轮将网络中所有的节点都测试完成为止,最后一个无故障节点nm向前一个无故障节点nm-1第二次发送结果帧(其中m≤n,n是系统网络中节点的总数,m是系统网络中最后一个无故障的节点),表示网络中所有的节点都测试完毕。在接收到第二次结果帧后,由nm-1向之前的所有节点发送广播帧,广播帧中包含整个can网络中的所有测试信息,之前的所有节点接收到广播帧后,读取广播帧中测试信息,更新节点缓存区中各个节点的工作状态,当所有节点的缓存更新完成。此过程称为一个测试周期。

当第一个测试周期中检测到故障节点将其标记为间歇故障状态,在下一特定时间内重复以上测试周期,若第一个测试周期中的故障节点能够重新接受测试帧并能够返回结果帧,此时将该节点标记为正常节点,若该节点继续不能向上一节点返回结果帧,此时将该节点标记为永久故障状态,并使其进入总线关闭状态。若在第二个测试周期中检测到新的故障节点,此时将该节点标记为间歇故障,并重复上述测试过程。

与现有技术相比,本发明采用的技术方案考虑了实际情况,增加了对网络节点设备连接器松动或电缆疲劳引起的连接不畅等外界干扰造成节点间歇性故障的诊断情况,避免了由于外界因素造成的误判,提高了can总线网络的可靠性,并且每个节点中的缓存顺序是按节点顺序排列,只存储节点的状态,相比于现有技术,节约存储空间。

附图说明

图1为本发明的can网络拓扑模型

图2为本发明的nafd方法为每个节点分配的缓存结构

图3为本发明的测试帧的帧格式

图4为本发明的诊断过程流程图

图5为本发明的实际工作过程图

图6为本发明的nafd方法与实际情况诊断效果的对比

具体实施方式

下面结合附图对本发明作进一步的详细说明,本发明一种网络级自适应can总线故障诊断方法包括两部分内容:模型分析及故障诊断方法。模型分析是对can总线网络拓扑模型进行分析,进行合理假设,从而得到网络故障诊断模型。故障诊断方法是在网络拓扑模型中对can总线中的节点进行依次诊断。直到所有节点诊断完成后,发送广播帧,更新每个节点中缓存区内的所有节点状态,此时节点出现的故障状态标记为间歇性故障,当下一次诊断时,若该节点仍处于故障状态,此时标记为永久故障,并使其处于总线关闭状态,从而达到提高网络可靠性的目的。

can总线网络的拓扑模型如图1所示。can网络中的任意一个ecu节点与can总线相连接,并且can总线采用多主机方式工作,即网络中节点可以再任意时刻主动地向网络中其他节点发送信息。

为了使描述更为方便,假设can总线网络中有n个节点,v是can总线网络中所有节点的集合,其中n1是第一个节点,n2是第二个节点,…,nn是第n个节点。即:v=(n1,n2,......,nn)。

在诊断时对can总线网络模型进行以下假设:

1)当节点停止工作时,即认为节点发生故障,并且故障节点不会与其他节点进行通信。

2)网络中可能存在一个或多个故障节点,但网络中所有的故障节点个数要小于等于(n-2)个。

3)诊断过程中的任意节点都可能发生故障。节点的故障状况可以分为间歇故障或永久故障。

4)对于已经测试过的节点,在同一个诊断周期内不会重复诊断该节点状态的变化。但是,在下一个诊断周期中将会诊断该节点的状态变化。

5)在一个诊断周期中,每个节点仅由另一个节点进行测试。

当使用nafd方法对can网络中的节点进行故障诊断时,将网络中的节点分为测试节点和被测节点,当网络中的节点为测试节点时,将发送测试帧对被测节点进行测试;当网络中的节点为被测节点时,将接收来自其他测试节点发送的测试帧。

nafd方法在每个节点中,为网络中所有的节点分配一个缓存区,用来存储网络中各个节点的工作状态,且缓存顺序与节点顺序一致,缓存结构如图2所示,缓存区内节点的状态包括:正常状态、间歇故障状态及永久故障状态三种节点状态。网络中用来诊断故障时的帧格式如图3所示,每个帧中前2个字节用来存储测试节点的id及被测节点的id,第3个字节中的前两位用来存储发送的帧类型,其中:00代表测试帧;01代表结果帧;10代表第二次发送的结果帧;11表示结束的广播帧,其余位用来存储网络中各节点的状态,其中:00代表节点无故障,处于正常状态;01代表节点处于间歇故障状态;10代表节点处于永久故障状态;11表示保留。

如图4所示为本故障诊断方法nafd一个测试周期的工作流程。网络中某无故障节点在特定时间通过发送测试帧表示本方法开始工作。若任一节点在指定时间内未收到测试帧,则其成为测试者,启动测试过程。如果被测节点收到测试帧,表示该测试节点无故障,并在被测节点的缓存中标记测试节点为无故障,此外,被测节点根据测试节点发送的测试帧中信息来更新其缓存区内各节点的工作状态;若被测节点无故障,则被测节点在规定时间内向测试节点发送结果帧,测试者接收到结果帧后读取测试信息。并依据该诊断信息更新其缓存区:测试节点将其自身标记为无故障,同时,测试者将被测试节点标记为无故障。该过程称为一个测试轮。

当网络中的测试轮将网络中所有的节点都测试完成为止,最后一个无故障节点nm向前一个无故障节点nm-1第二次发送结果帧(其中m≤n,n是系统网络中节点的总数,m是系统网络中最后一个无故障的节点),表示网络中所有的节点都测试完毕。在接收到第二次结果帧后,由nm-1向之前的所有节点发送广播帧,广播帧中包含整个can网络中的所有测试信息,之前的所有节点接收到广播帧后,读取广播帧中测试信息,更新节点缓存区中各个节点的工作状态,当所有节点的缓存更新完成。此过程称为一个测试周期。

当第一个测试周期中诊断到故障节点将其标记为间歇故障状态,在下一特定时间内重复以上测试周期,若第一个测试周期中的故障节点能够重新接受测试帧并能够返回结果帧,此时将该节点标记为正常节点,若该节点继续不能向上一节点返回结果帧,此时将该节点标记为永久故障状态,并使其进入总线关闭状态。若在第二个测试周期中诊断到新的故障节点,此时将该节点标记为间歇故障,并重复上述测试过程。

如图5所示是本方法的实际工作模型,假设测试节点n1向被测节点n2发送测试帧,一旦节点n2接收到n1发送的测试帧,就认为节点n1正常,并在节点n2中存储n1节点的状态,当n1接收到n2发送的结果帧时,认为n2节点处于正常状态,此时,在测试节点中标记节点n1、n2的状态,在被测节点标记n2的状态。以此类推,按照节点顺序依次进行检测,当节点n4向节点n5发送测试帧,节点n4没有接到n5的结果帧,此时,认为n5节点为间歇性故障,在n4的缓存区中标记n5为间歇故障,以此类推,当测试第m个节点时,节点nm向节点nm-1发送结果帧,表示节点nm处于正常状态,当没有下一个节点时,此时,节点nm向节点nm-1发送结束帧,表示本测试周期完成,由节点nm-1向之前的所有节点发送广播帧,之前的所有节点接收到广播帧后,读取广播帧中测试信息,更新节点缓存中各个节点的工作状态。当所有节点的缓存区更新完成,在下一特定时间内重复以上测试周期,若上一个测试周期中的故障节点能够重新接受测试帧并能够返回结果帧,此时将该节点标记为正常节点,若该节点继续不能向上一节点返回结果帧,此时将该节点标记为永久故障状态,并使其进入总线关闭状态。

为了验证本发明一种网络级自适应can总线故障诊断方法的有效性,本发明选取10组网络模型进行测试分析,每个网络模型中包含1000个节点,设置了不同数量的故障节点,设置的故障节点个数分别为:5、9、16、24、35、40、48、55、60、69,实际情况与诊断情况对比图如图6所示,横坐标表示实验组数,纵坐标为节点的故障个数,运用nafd方法进行诊断时诊断的故障节点数分别为:4、12、14、24、37、40、46、57、58、66。对故障节点的识别准确率可达97%,说明深度学习算法用在故障检测方面是可行的,并且准确率也得到了一定的提升。

本发明的一种网络级自适应can总线故障诊断方法nafd,通过对can总线网络拓扑模型进行分析,将can网络中的节点分为测试节点及被测节点,采用节点间依次进行检测的方式,判断故障节点的故障类型,并且进行两次综合判断,避免由于外界因素干扰造成的判断失误,使节点进入关闭状态而浪费网络中的节点资源;同时,每个节点中的缓存内容只包含对应节点的状态,减少了网络中的数据量,在提高了can总线网络可靠性的同时也提高了网络性能。

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