CN103516571A - 一种双can总线保证数据通信可靠性的系统架构及其方法 - Google Patents
一种双can总线保证数据通信可靠性的系统架构及其方法 Download PDFInfo
- Publication number
- CN103516571A CN103516571A CN201310312434.0A CN201310312434A CN103516571A CN 103516571 A CN103516571 A CN 103516571A CN 201310312434 A CN201310312434 A CN 201310312434A CN 103516571 A CN103516571 A CN 103516571A
- Authority
- CN
- China
- Prior art keywords
- controller
- message
- way
- bus
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本发通过检测双路CAN总线报文传输至CAN控制器节点时间,CAN控制器节点以此时间作为冗余超时判断机制,并由接收方节点判断接收到的双路CAN总线同步报文的有效性进行处理。这种双路CAN总线同步传输的做法可以最大程度上保证数据传输的可靠性,同时由于超时机制存在,对系统故障的判断非常及时。双路同步热冗余的方式使得在总线故障或节点故障时可以保证至少有一路CAN总线的正常运行,且不需要冗余切换过程。
Description
技术领域
本发明涉及总线数据通信领域,特别涉及一种双CAN总线保证数据通信可靠性的系统架构及其方法,适用于船用、楼宇、工业生产等领域采用CAN总线网络构成可靠性通信的场合。
背景技术
CAN是控制器局域网络(Controller Area Network)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。
CAN总线技术已经广泛应用于各种检测和控制系统中。CAN总线有诸多的优点,如支持多主结构、基于优先级的无破坏性仲裁机制、较高的传输速率等,可以满足多数应用系统对实时性和可靠性的要求。但是CAN总线本身只定义了底层物理层和数据链路层实现方式,没有规定应用层,应用层的实现仍需要一个高层协议来定义,对于保证工业现场应用实时性和可靠性的要求仍显不足,主要存在:1)CAN总线本身是基于事件触发的,总线上数据的传输时间存在不确定性,同时总线仲裁导致优先级反转更加剧这种可能性;2)CAN总线数据链路层编码机制使得报文填充及长度不确定,对其内部复杂的错误检测机制有影响,数据通讯可靠性并不能达到预期。
目前,提高CAN总线实时性和可靠性的技术方案有很多,实时性的提高多停留在理论阶段,比如针对CAN总线时间传输不确定性提出的TTCAN技术,是在数据链路层之上增加以时间片触发方式发送的机制,使得任何优先级任务都可以得到执行,但是这种各个CAN节点之间需要精确时钟同步,增加了应用成本及设计复杂性,由于CAN的高层协议可以由用户自定义,这种方式对实时性提高仍有改进空间。可靠性的增加目前多是以增加冗余机制,改进CAN总线网路拓扑结构实现,现在常用的拓扑网络有总线型拓扑、环形拓扑、星型拓扑、网状拓扑,这些拓扑结构各有优缺点,实际应用中总线型拓扑结构以网络简单可靠得到大量应用,但此种网络结构往往只能检测到总线级错误,无法及时检测到节点级故障成为其弊端。
中国的一申请号为200810106342.6,名称为“双冗余CAN总线通信系统及其通信方法”的发明专利,公开了一种双冗余CAN总线通信系统及其通信方法,是利用一个通讯登记表记录两路冗余总线的故障状态,故障的判断是分别通过两路总线发送测试帧测试的,因此首先该专利数据传输是异步方式;再次所提专利对于故障的识别是通过单路(A路或B路)自身的超时做出标记的,根据原文两路冗余线路之间是在自身线路超时溢出时做主副通道切换的;另外根据该专利说明书介绍,当数据传输量大时,采用两路同时发送,降低单路总线带宽,但是这种两路同时发送仍是异步发送的,即一部分报文通过A路,一部分报文通过B路,这种做法的缺陷在于只能保证数据的有效传输,但无法保证数据传输的实时性。
发明内容
本发明针对现有技术存在的上述不足,设计一种双CAN总线保证数据通信可靠性的系统架构,侦测报文可以快速侦测CAN主控制器两路CAN总线与CAN控制器节点间通讯时间差,该时间差作为两路CAN总线接收超时判断依据,保证CAN控制器节点通过两路总线同步收发报文时,数据通信的可靠性和实时性。并且即使一路CAN总线出现故障仍能快速应对故障对系统的影响。
本发明通过以下技术方案实现:
一种双CAN总线保证数据通信可靠性的系统架构,双CAN总线架构包括一CAN主控制器、若干CAN控制器节点,CAN主控制器、若干CAN控制器节点包括两路CAN总线接口,分别连接在两路CAN总线上;
其中,CAN主控制器分别同步向两路CAN总线发送两路侦测报文,CAN控制器节点接收两路侦测报文,计算接收到的两路侦测报文的时间差,并向两路CAN总线发送两路响应报文,CAN主控制器接收两路响应报文;
侦测报文及响应报文包括一时间序列号,同步发送的两路侦测报文或同步发送的两路响应报文的时间序列号相同,CAN控制器节点根据时间序列号判断两路侦测报文是否同步发送,CAN主控制器根据时间序列号判断两路响应报文是否同步发送,响应报文的时间序列号填充在响应报文的扩展帧;
若两路侦测报文的时间差大于一预设上限值,则CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知CAN主控制器,CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;若两路侦测报文的时间差小于预设上限值,CAN控制器节对两路侦测报文的时间差作一预设裕量作为主控制器冗余线路超时时间差执行超时判断,CAN控制器节点在主控制器冗余线路超时时间差不超时,且两路侦测报文的时间序列号相同的情况下执行侦测报文,反之则执行异常处理。
较佳的,两路响应报文为同步发送,CAN主控制器接收两路响应报文并计算接收到的两路响应报文的时间差;
若两路响应报文的时间差大于一预设上限值,则CAN主控制器将后接收到或未接收到响应报文的CAN控制器节的一路CAN总线接口标记为异常,CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;反之,CAN主控制器根据两路响应报文的时间差作一预设裕量作为控制器节点冗余线路超时时间差执行超时判断,CAN主控制器在控制器节点冗余线路超时时间差不超时,且两路响应报文的时间序列号相同的情况下执行响应报文,反之则执行异常处理。
较佳的,异常处理包括:
在CAN总线短路的情况下,CAN主控制器及CAN控制器节点采用其自带的检测机制进行处理或提示;
在CAN控制器节点异常的情况下,CAN控制器节点请求CAN主控制器重发侦测报文,则CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知CAN主控制器,CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
在CAN总线阻塞的情况下,CAN控制器节点连续接收n次同步侦测报文皆超时,或CAN主控制器连续接收n次同步响应报文皆超时,则CAN主控制器和CAN控制器节点复位、初始化后重新发送。
较佳的,两路响应报文为先后异步发送,CAN控制器节点接收到一路侦测报文后直接向侦测报文所在的CAN总线发送响应报文,CAN主控制器将先收到响应报文的一路作为主CAN总线,另一路作为辅助CAN总线。
较佳的,若干CAN控制器节点包括在线状态和离线状态,在线状态的若干CAN控制器节点计算接收到的两路侦测报文的时间差,离线状态的若干CAN控制器节点在上线后向CAN主控制器发送请求侦测报文命令。
较佳的,若CAN主控制器或CAN控制器节点的一路或两路CAN总线接口为异常,则两路侦测报文或两路响应报文的时间差记为0,表示CAN总线故障。
较佳的,CAN控制器节点中包括若干节点控制器,主控制器冗余线路超时时间差取若干节点控制器的若干主控制器冗余线路超时时间差的最大值,控制器节点冗余线路超时时间差取最先接收到响应报文的若干节点控制器的控制器节点冗余线路超时时间差。
本发明还提供一种双CAN总线保证数据通信可靠性的方法,侦测报文可以快速侦测CAN主控制器两路CAN总线与CAN控制器节点间通讯时间差,该时间差作为两路CAN总线接收超时判断依据,保证CAN控制器节点通过两路总线同步收发报文时,数据通信的可靠性和实时性。并且即使一路CAN总线出现故障仍能快速应对故障对系统的影响。
一种双CAN总线保证数据通信可靠性的方法,提供如权利要求1的双CAN总线保证数据通信可靠性的系统架构,包括步骤:
S1、CAN主控制器同步发送两路同步侦测报文;
S2、CAN控制器节点同步侦测报文超时判断;
S3、CAN控制器节点同步发送两路响应报文;
其中,步骤S2包括:
S21、CAN控制器节点接收两路侦测报文并计算接收到两路侦测报文的时间差是否大于一预设上限值;
S22、若是,则CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知CAN主控制器,CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
若两路侦测报文的时间差小于预设上限值,则CAN控制器节对两路侦测报文的时间差作一预设裕量作为主控制器冗余线路超时时间差执行超时判断;
S23、若CAN主控制器在主控制器冗余线路超时时间差不超时,且两路侦测报文的时间序列号相同的情况下执行侦测报文,反之则执行异常处理。
较佳的,在步骤S3之后还包括:S4、CAN主控制器同步响应报文超时判断;
步骤S4进一步包括:
S41、CAN主控制器接收两路响应报文并计算接收到的两路响应报文的时间差;
S42、若两路响应报文的时间差大于一预设上限值,则CAN主控制器将后接收到或未接收到响应报文的CAN控制器节的一路CAN总线接口标记为异常,CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
若两路响应报文的时间差小于一预设上限值,CAN主控制器根据两路响应报文的时间差作一预设裕量作为控制器节点冗余线路超时时间差执行超时判断,CAN主控制器在控制器节点冗余线路超时时间差不超时,且两路响应报文的时间序列号相同的情况下执行响应报文,反之则执行异常处理。
较佳的,异常处理包括:
在CAN总线短路的情况下,CAN主控制器及CAN控制器节点采用其自带的检测机制进行处理或提示;
在CAN控制器节点异常的情况下,CAN控制器节点请求CAN主控制器重发侦测报文,则CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知CAN主控制器,CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
在CAN总线阻塞的情况下,CAN控制器节点连续接收n次同步侦测报文皆超时,或CAN主控制器连续接收n次同步响应报文皆超时,则CAN主控制器和CAN控制器节点复位、初始化后重新发送。
较佳的,CAN控制器节点包括在线状态和离线状态;
在线状态的CAN控制器节点接收到两路侦测报文后计算其接收到的时间差;离线状态的CAN控制器节点在上线后向CAN主控制器发送请求侦测报文命令,在CAN主控制器同步发送两路侦测报文后计算接收到两路侦测报文的时间差。
附图说明
图1所示的是本发明系统架构的结构示意图;
图2所示的是本发明报文传输的示意图;
图3所示的是本发明同步侦测报文、同步响应报文的传输流程图;
图4所示的是本发明同步侦测报文、同步响应报文的超时判断流程图。
具体实施方式
以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
为了便于对本发明实施例的理解,下面将结合附图以具体实施例为例作进一步的解释说明,且各个实施例不构成对本发明实施例的限定。
本发明系统架构方式为,一个CAN主控制器1、若干个CAN控制器节点2,每个控制器均有两路CAN总线接口,分别引出两路CAN总线线缆,构成典型双总线型冗余网络结构。CAN控制器节点上可以包含多个节点控制器,以总线型方式联接在一起。系统架构示意图如图1。
实施原理:
报文侦测:报文侦测目的主要是为快速确定两路CAN总线数据报文传输时间延时。CAN主控制器上电时首先同步发送两路侦测报文,由于CAN报文传输时间主要由两部分决定,一个是CAN控制器准备向网络上发送报文时需要的阻塞等待时间,另一个是CAN控制器开始将报文发送至物理网络上所需要的链路发送时间。阻塞等待时间由CAN网络繁忙程度决定,为了快速侦测出线路传输时间,考虑到侦测报文由CAN主控制器两路同步触发发出,且时间序列号在报文发送至CAN主控制器发送缓冲区之前加入,阻塞等待时间对两路同步的CAN总线是一致的,因此CAN报文的传输时间主要是物理链路的发送时间。时间序列号是提供给接收方作为同步报文标识和计数用的。CAN主控制器发送同步侦测报文后,由CAN控制器节点接收并响应,CAN控制器节点根据接收到的两路侦测报文的时间序列号,启动定时机制计算两路侦测报文时间差。此时CAN控制器节点存在着在线或离线两种情况,对于前者CAN控制器节点可分别由两路CAN总线接口接收侦测报文,并计算两路侦测报文的时间差,如果双路CAN总线存在不完整情况下(CAN主控制器或CAN控制器节点的一路或两路CAN总线接口异常,CAN总线接口异常将在下文中介绍),侦测报文时间差将以Δt=0的形式存在,表示CAN总线有故障;对于后者节点控制器重新上线后向主控制器发送请求报文侦测命令,通知CAN主控制器向该节点发送同步侦测报文,然后计算侦测报文的时间差。CAN控制器节点是根据两路侦测报文的时间序列号的一致性判断是否为同步的侦测报文,并启动自身定时器,计算两路同步侦测报文时间差,CAN控制器节点对这两个时间差作适当裕量作为主控制器冗余线路超时时间差。对于两路CAN总线,热冗余状态的同步侦测报文具有相同的时间序列号。对于CAN主控制器,CAN控制器节点在接收到数据响应时也是以同步方式发送响应报文,这样依据CAN主控制器接收到的各节点响应报文计算出两路响应报文时间差,同样作适当裕量作为控制器节点冗余线路超时时间差,由于CAN控制器节点可能存在多个节点控制器的情况,为简化判断选取时间差最长的作为主控制器或控制器节点冗余线路超时时间差。此种方式仍可扩展为CAN主控制器两路CAN发送同步侦测报文,CAN控制器节点接收到侦测报文后立即响应不再以同步方式响应侦测报文,这样可以以接收到的响应报文先后顺序为依据,根据两路CAN总线响应报文的时间选择CAN总线的优先级,选择数据传输速度快的线路为高优先级的主通道,另一通道作为辅助通道。侦测报文格式如下表1,该报文属于CAN应用层报文,可以由用户定义,该报文格式只用于线路侦测阶段。
CAN同步侦测报文数据域时间序列号设置:
表1
标志位置flag标识是侦测报文,发送时该字节为0xAA,表示该报文为同步侦测报文;时间序列号count占四个字节,标识两路报文是否为同一条报文,为CAN主控制器控制芯片定时器计数值,两路同步报文具有相同的时间序列号;id为CAN控制器节点识别号,由于CAN报文本身有ID域,此定义可作辅助判断。侦测报文在CAN主控制器内部准备好,同时发送至两路CAN总线以启动发送,此侦测报文为“广播”型报文,所有CAN控制器节点全部侦听。如果某个从CAN控制器节点侦测阶段只接收到一路报文,则时间差Δt=0,此时CAN控制器节点不再进行双路比较直接执行接收到报文;如果两路均成功发送至CAN控制器节点,CAN控制器节点可以统计出两路先后时间差,第一路接收到时读取内部定时器计数数值为t1,第二路到达时读取内部定时器计数数值为t2,计数值差Δt为该CAN控制器节点的主控制器冗余线路超时时间差;CAN控制器节点两路均接收到数据后,分别从两路响应数据,响应报文发送情况与CAN主控制器一致,同步发送,CAN主控制器也计算时间差作为控制器节点冗余线路超时时间差。CAN控制器节点中有多个节点控制器时,为软件设计方便,CAN主控制器以最大时间差作为冗余判断时间差,超时时间内接收到相同响应报文则认为数据有效,然后进行数据一致性判断,执行动作;如果超时未接收到数值,以最早接收到数据为准。为了保证节点数据同步发送,发送报文时同时向两个发送缓冲区填充数据,并使用同样的发送触发条件。报文传输的示意图及同步侦测报文、同步响应报文的传输流程图参见图2、图3。
2)报文响应:正常通讯阶段两路CAN总线上的报文以以下两种方式存在,CAN主控制器启动报文发送或CAN控制器节点启动报文发送。对CAN主控制器,两路CAN总线同步触发发送报文,CAN控制器节点首先以报文侦测阶段计算时间差作为主控制器冗余线路超时时间差的判断机制;对于CAN控制器节点,CAN主控制器根据节点响应报文时间差作为控制器节点冗余线路超时时间差的判断机制。为了兼容CANOpen协议,避免需要额外增加标识同步的报文,增加CAN总线传输数据量,在正常报文响应发送阶段CAN报文ID采用扩展帧,高位增加两个字节16位的时间序列号,该16位时间序列号可以在帧过滤阶段进行识别,时间序列号格式与侦测报文帧中的时间序列号类似,不同的是字节数为2个,这样11位低位仍可表示2^7=128的ID信息,满足CANOpen总线最多可挂接的节点数目,如表2所示。
CAN扩展帧ID标识重定义:
表2
count:为两个字节的时间序列号,标识不同的同步发送报文。
id:为兼容CANOpen格式的id号。
时间序列号在CAN主控制器或CAN控制器节点每次发送不同报文时,累加1,用于接收方判断是否为同一条同步发送报文。CAN主控制器发送报文时,两个同步报文的帧id部分填充时间序列号,CAN控制器节点接收到两路报文,即以此时间序列号作为是否是同步帧的判断标志,时间序列号一致的报文作为同一条报文。接收到同步报文后,CAN控制器节点根据冗余超时判断时间差进行判断,两路同步报文未超时则执行报文数据一致性判断,数据一直则执行报文动作,不一致,则报文舍弃,转入异常处理通知发送控制器数据出错;两路同步报文接收超时,则认为线路出现故障,接收方控制器由正常通道请求重发,如果依然出现接收超时则可以进入异常处理,并且可以定位哪一接收线路故障。CAN控制器节点发送报文时采取相同的方法。此方法亦可扩展为以先接收到的报文为依据进行动作,后接收到的报文采取舍弃做法,进一步提升CAN报文实时性。
上述已知,同步发送报文包含发送时间序列号,用来标识不同同步报文,由于数据位数的限制,CAN主控制器和CAN控制器节点使用各自的时间序列号,时间序列号在每个CAN控制器节点发送不同报文时,累加1,用于接收方判断是否为同一条同步发送报文,这样避免对于非应答型的主动上传造成时间序列号的判断错乱。正常通信时时间序列号填充在扩展帧ID域,这与报文侦测阶段时间序列号采取不同的处理方法。CAN主控制器发送报文时,两个同步报文的扩展帧ID域填充时间序列号,CAN控制器节点接收到双路CAN报文,即以此时间序列号作为是否是同步帧的判断标志,时间序列号一致的报文作为同一条报文。CAN控制器节点执行报文动作时以冗余超时时间差之内接收到报文的一致性为依据执行报文动作,控制器根据两路具有相同时间序列号的同步报文进行超时时间差判断,如果异常则转入异常处理机制。CAN控制器节点向CAN主控制器发送报文时采取相同的方法。正常通信时超时判断流程如图4所示。
3)异常处理:正常通信阶段的冗余超时判断时间差作为CAN控制器的异常判断机制,前述已知,两路报文以超时时间差之内接收数据一致性的方式为依据进行动作执行。当总线出现故障或者一路CAN总线出现发送阻塞导致线路异常会使冗余判断时间超时。对于主线路出现故障短路的情况,CAN控制器本身具有检测机制,可以通过检测错误状态进行处理并指示;对于节点级故障,CAN控制器检测机制则无能为力,此时CAN控制器节点会检测到两路报文超时,然后请求CAN主控制器重发,如果发送再次超时,则CAN控制器节点将超时未接收到报文通道标记为异常通道并通知给CAN主控制器,此后CAN控制器节点则以单通道进行数据通信;对于通道报文阻塞导致的冗余判断时间超时,表现为两路报文仍能正确到达CAN控制器节点,但接收时间差超时了,CAN控制器节点对这种情况做计数统计,如果三次(这里只是做举例说明,技术人员可以根据实际情况设置统计次数)报文接收均超时了,则向发送方请求CAN控制器复位并重新初始化操作后启动新的发送。此外对于实际应用中新增加CAN控制器节点的情况,CAN控制器节点上线后,向CAN主控制器发送请求同步侦测报文命令,CAN主控制器接收应答并发出同步侦测报文,重新计算新上线CAN控制器节点的冗余判断时间差。
本发明可以快速检测双路CAN总线报文传输至CAN控制器节点时间,CAN控制器节点以此时间作为冗余超时判断机制,并由接收方节点判断接收到的双路CAN总线同步报文的有效性进行处理。通过两路同步接收的报文进行一致性的判断,这个判断的过程为接收方对同步接收的报文按照时间序列号进行比对,数据一致且时间差未超才执行(值得注意的是,这里的时间差与背景技术中所提专利的单路超时判断是不一样的,此处的时间差是A路与B路的接收时间差,并不是单路自身的时间差)。
这种双路CAN总线同步传输的做法可以最大程度上保证数据传输的可靠性,同时由于超时机制存在,对系统故障的判断非常及时。双路同步热冗余的方式使得在总线故障或节点故障时可以保证至少有一路CAN总线的正常运行,且不需要冗余切换过程。此方法仍然可扩展为标识总线优先级,使得CAN控制器可以快速选择通讯速率快、响应时间短的总线作为高优先级的主通道,高优先级的通道执行通信任务,低优先级低的通道作为辅助接收判断,提升系统实时性。采用具备线路侦测的双总线冗余技术方案,对于现有的单纯的设计双路CAN总线进行冷冗余或热冗余的方式来说,提高了冷冗余方式时对总线故障响应速度慢、切换实时性差的特点,同时对热冗余方式两路同步报文处理机制进行改善,进一步提升通信数据的可靠性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限与此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (11)
1.一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,所述双CAN总线架构包括一CAN主控制器、若干CAN控制器节点,所述CAN主控制器、若干CAN控制器节点包括两路CAN总线接口,分别连接在两路CAN总线上;
其中,所述CAN主控制器分别同步向所述两路CAN总线发送两路侦测报文,所述CAN控制器节点接收所述两路侦测报文,计算接收到的所述两路侦测报文的时间差,并向所述两路CAN总线发送两路响应报文,所述CAN主控制器接收所述两路响应报文;
所述侦测报文及响应报文包括一时间序列号,同步发送的两路侦测报文或同步发送的两路响应报文的所述时间序列号相同,所述CAN控制器节点根据所述时间序列号判断两路侦测报文是否同步发送,所述CAN主控制器根据所述时间序列号判断两路响应报文是否同步发送,所述响应报文的时间序列号填充在所述响应报文的扩展帧;
若所述两路侦测报文的时间差大于一预设上限值,则所述CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知所述CAN主控制器,所述CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;若所述两路侦测报文的时间差小于所述预设上限值,所述CAN控制器节对所述两路侦测报文的时间差作一预设裕量作为主控制器冗余线路超时时间差执行超时判断,所述CAN控制器节点在所述主控制器冗余线路超时时间差不超时,且所述两路侦测报文的所述时间序列号相同的情况下执行所述侦测报文,反之则执行异常处理。
2.根据权利要求1所述的一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,所述两路响应报文为同步发送,所述CAN主控制器接收所述两路响应报文并计算接收到的所述两路响应报文的时间差;
若所述两路响应报文的时间差大于一预设上限值,则CAN主控制器将后接收到或未接收到响应报文的所述CAN控制器节的一路CAN总线接口标记为异常,所述CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;反之,所述CAN主控制器根据所述两路响应报文的时间差作一预设裕 量作为控制器节点冗余线路超时时间差执行超时判断,所述CAN主控制器在所述控制器节点冗余线路超时时间差不超时,且所述两路响应报文的所述时间序列号相同的情况下执行所述响应报文,反之则执行异常处理。
3.根据权利要求1或2所述的一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,所述异常处理包括:
在CAN总线短路的情况下,CAN主控制器及CAN控制器节点采用其自带的检测机制进行处理或提示;
在CAN控制器节点异常的情况下,CAN控制器节点请求CAN主控制器重发侦测报文,则所述CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知所述CAN主控制器,所述CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
在CAN总线阻塞的情况下,CAN控制器节点连续接收n次同步侦测报文皆超时,或CAN主控制器连续接收n次同步响应报文皆超时,则CAN主控制器和CAN控制器节点复位、初始化后重新发送。
4.根据权利要求1所述的一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,所述两路响应报文为先后异步发送,所述CAN控制器节点接收到一路所述侦测报文后直接向所述侦测报文所在的CAN总线发送响应报文,所述CAN主控制器将先收到所述响应报文的一路作为主CAN总线,另一路作为辅助CAN总线。
5.根据权利要求1所述的一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,所述若干CAN控制器节点包括在线状态和离线状态,所述在线状态的若干CAN控制器节点计算接收到的所述两路侦测报文的时间差,所述离线状态的若干CAN控制器节点在上线后向所述CAN主控制器发送请求侦测报文命令。
6.根据权利要求1所述的一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,若所述CAN主控制器或所述CAN控制器节点的一路或两路CAN总线接口为异常,则所述两路侦测报文或所述两路响应报文的时间差记为0,表示CAN总线故障。
7.根据权利要求1所述的一种双CAN总线保证数据通信可靠性的系统架构,其特征在于,CAN控制器节点中包括若干节点控制器,所述主控制器冗余线路超时时间差取所述若干节点控制器的若干主控制器冗余线路超时时间差的最大值,所述控制器节点冗余线路超时时间差取最先接收到响应报文的所述若干节点控制器的控制器节点冗余线路超时时间差。
8.一种双CAN总线保证数据通信可靠性的方法,其特征在于,提供如权利要求1所述的双CAN总线保证数据通信可靠性的系统架构,包括步骤:
S1、CAN主控制器同步发送两路同步侦测报文;
S2、CAN控制器节点同步侦测报文超时判断;
S3、CAN控制器节点同步发送两路响应报文;
其中,步骤S2包括:
S21、CAN控制器节点接收两路侦测报文并计算接收到两路侦测报文的时间差是否大于一预设上限值;
S22、若是,则所述CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知所述CAN主控制器,所述CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
若所述两路侦测报文的时间差小于所述预设上限值,则所述CAN控制器节对所述两路侦测报文的时间差作一预设裕量作为主控制器冗余线路超时时间差执行超时判断;
S23、若所述CAN主控制器在所述主控制器冗余线路超时时间差不超时,且所述两路侦测报文的所述时间序列号相同的情况下执行所述侦测报文,反之则执行异常处理。
9.根据权利要求8所述的一种双CAN总线保证数据通信可靠性的方法,其特征在于,在步骤S3之后还包括:S4、CAN主控制器同步响应报文超时判断;
所述步骤S4进一步包括:
S41、CAN主控制器接收所述两路响应报文并计算接收到的所述两路响应报文的时间差;
S42、若所述两路响应报文的时间差大于一预设上限值,则CAN主控制器将后接收到或未接收到响应报文的所述CAN控制器节的一路CAN总线接口标记为异常,所述CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
若所述两路响应报文的时间差小于一预设上限值,所述CAN主控制器根据所述两路响应报文的时间差作一预设裕量作为控制器节点冗余线路超时时间差执行超时判断,所述CAN主控制器在所述控制器节点冗余线路超时时间差不超时,且所述两路响应报文的所述时间序列号相同的情况下执行所述响应报文,反之则执行异常处理。
10.根据权利要求8或9所述的一种双CAN总线保证数据通信可靠性的方法,其特征在于,所述异常处理包括:
在CAN总线短路的情况下,CAN主控制器及CAN控制器节点采用其自带的检测机制进行处理或提示;
在CAN控制器节点异常的情况下,CAN控制器节点请求CAN主控制器重发侦测报文,则所述CAN控制器节点将其后接收到或未接收到侦测报文的一路CAN总线接口标记为异常,并通知所述CAN主控制器,所述CAN控制器节点采用其另一路CAN总线接口进行单通道数据通信;
在CAN总线阻塞的情况下,CAN控制器节点连续接收n次同步侦测报文皆超时,或CAN主控制器连续接收n次同步响应报文皆超时,则CAN主控制器和CAN控制器节点复位、初始化后重新发送。
11.根据权利要求10所述的一种双CAN总线保证数据通信可靠性的方法,其特征在于,CAN控制器节点包括在线状态和离线状态;
所述在线状态的CAN控制器节点接收到所述两路侦测报文后计算其接收到的时间差;所述离线状态的CAN控制器节点在上线后向所述CAN主控制器发送请求侦测报文命令,在所述CAN主控制器同步发送两路侦测报文后计算接收到所述两路侦测报文的时间差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310312434.0A CN103516571B (zh) | 2013-07-22 | 2013-07-22 | 一种双can总线保证数据通信可靠性的系统架构及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310312434.0A CN103516571B (zh) | 2013-07-22 | 2013-07-22 | 一种双can总线保证数据通信可靠性的系统架构及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103516571A true CN103516571A (zh) | 2014-01-15 |
CN103516571B CN103516571B (zh) | 2016-10-05 |
Family
ID=49898645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310312434.0A Active CN103516571B (zh) | 2013-07-22 | 2013-07-22 | 一种双can总线保证数据通信可靠性的系统架构及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103516571B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238508A (zh) * | 2014-08-29 | 2014-12-24 | 南京中电自动化有限公司 | 一种马达保护器数据通讯优化模块 |
CN105323133A (zh) * | 2015-11-12 | 2016-02-10 | 浙江大学 | 一种can总线冗余通信方法及系统 |
CN106789510A (zh) * | 2016-12-21 | 2017-05-31 | 中国船舶重工集团公司第七研究所 | 冗余can总线通信系统的数据通信方法 |
CN106789509A (zh) * | 2016-12-21 | 2017-05-31 | 中国船舶重工集团公司第七研究所 | 一种冗余can总线通信系统的数据通信方法 |
CN106850369A (zh) * | 2016-12-26 | 2017-06-13 | 中核控制系统工程有限公司 | 一种安全级dcs高速冗余总线通信方法 |
CN108023799A (zh) * | 2017-11-10 | 2018-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载双余度can总线通信方法 |
CN108228428A (zh) * | 2018-02-05 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN109104346A (zh) * | 2017-06-21 | 2018-12-28 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109104348A (zh) * | 2017-06-21 | 2018-12-28 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109104349A (zh) * | 2017-06-21 | 2018-12-28 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109639546A (zh) * | 2018-12-28 | 2019-04-16 | 浙江中控研究院有限公司 | 一种基于can总线的冗余系统 |
CN109768907A (zh) * | 2019-01-09 | 2019-05-17 | 北京安控科技股份有限公司 | 一种can总线波特率自适应设置方法 |
CN110532209A (zh) * | 2019-08-13 | 2019-12-03 | 南京芯驰半导体科技有限公司 | 一种基于冗余异构的安全总线系统 |
CN111031134A (zh) * | 2019-12-17 | 2020-04-17 | 中车株洲电力机车有限公司 | 一种通讯方法及装置 |
CN111049607A (zh) * | 2019-11-15 | 2020-04-21 | 中国第一汽车股份有限公司 | 一种车辆的时钟同步方法、装置、系统和存储介质 |
CN111638687A (zh) * | 2020-05-12 | 2020-09-08 | 牧星机器人(江苏)有限公司 | 一种基于精简通讯协议的agv用通讯方法 |
CN111786866A (zh) * | 2020-09-04 | 2020-10-16 | 成都运达科技股份有限公司 | 多通信总线无缝切换的冗余通信方法 |
CN112306939A (zh) * | 2020-10-29 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种总线调用方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1190835A (zh) * | 1997-01-16 | 1998-08-19 | 山武·霍尼韦尔公司 | 以太网通信冗余方法 |
CN1342362A (zh) * | 1998-11-10 | 2002-03-27 | 霍尼韦尔有限公司 | 容错网络 |
US20030147377A1 (en) * | 2001-11-05 | 2003-08-07 | Jean-Francois Saint Etienne | Process for implementation of a redundant switched full-duplex ethernet type communication network |
-
2013
- 2013-07-22 CN CN201310312434.0A patent/CN103516571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1190835A (zh) * | 1997-01-16 | 1998-08-19 | 山武·霍尼韦尔公司 | 以太网通信冗余方法 |
CN1342362A (zh) * | 1998-11-10 | 2002-03-27 | 霍尼韦尔有限公司 | 容错网络 |
US20030147377A1 (en) * | 2001-11-05 | 2003-08-07 | Jean-Francois Saint Etienne | Process for implementation of a redundant switched full-duplex ethernet type communication network |
Non-Patent Citations (1)
Title |
---|
王红亮,田帅帅: "基于节点冗余的CAN总线网络双冗余方法", 《探测与控制学报》, vol. 32, no. 4, 31 August 2010 (2010-08-31) * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238508A (zh) * | 2014-08-29 | 2014-12-24 | 南京中电自动化有限公司 | 一种马达保护器数据通讯优化模块 |
CN105323133A (zh) * | 2015-11-12 | 2016-02-10 | 浙江大学 | 一种can总线冗余通信方法及系统 |
CN106789510A (zh) * | 2016-12-21 | 2017-05-31 | 中国船舶重工集团公司第七研究所 | 冗余can总线通信系统的数据通信方法 |
CN106789509A (zh) * | 2016-12-21 | 2017-05-31 | 中国船舶重工集团公司第七研究所 | 一种冗余can总线通信系统的数据通信方法 |
CN106789510B (zh) * | 2016-12-21 | 2020-03-24 | 中国船舶重工集团公司第七一一研究所 | 冗余can总线通信系统的数据通信方法 |
CN106789509B (zh) * | 2016-12-21 | 2019-08-23 | 中国船舶重工集团公司第七一一研究所 | 一种冗余can总线通信系统的数据通信方法 |
CN106850369A (zh) * | 2016-12-26 | 2017-06-13 | 中核控制系统工程有限公司 | 一种安全级dcs高速冗余总线通信方法 |
CN109104346A (zh) * | 2017-06-21 | 2018-12-28 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109104346B (zh) * | 2017-06-21 | 2020-10-23 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109104349A (zh) * | 2017-06-21 | 2018-12-28 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109104348A (zh) * | 2017-06-21 | 2018-12-28 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
US11356293B2 (en) | 2017-06-21 | 2022-06-07 | Byd Company Limited | Canopen-based train network data transmission method, system and apparatus |
CN109104348B (zh) * | 2017-06-21 | 2020-09-15 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN109104349B (zh) * | 2017-06-21 | 2020-11-20 | 比亚迪股份有限公司 | 基于CANopen协议的列车网络数据传输方法、系统及其装置 |
CN108023799A (zh) * | 2017-11-10 | 2018-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载双余度can总线通信方法 |
CN108023799B (zh) * | 2017-11-10 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载双余度can总线通信方法 |
CN108228428A (zh) * | 2018-02-05 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN109639546A (zh) * | 2018-12-28 | 2019-04-16 | 浙江中控研究院有限公司 | 一种基于can总线的冗余系统 |
CN109639546B (zh) * | 2018-12-28 | 2021-07-30 | 浙江中控研究院有限公司 | 一种基于can总线的冗余系统 |
CN109768907A (zh) * | 2019-01-09 | 2019-05-17 | 北京安控科技股份有限公司 | 一种can总线波特率自适应设置方法 |
CN110532209A (zh) * | 2019-08-13 | 2019-12-03 | 南京芯驰半导体科技有限公司 | 一种基于冗余异构的安全总线系统 |
WO2021027644A1 (zh) * | 2019-08-13 | 2021-02-18 | 南京芯驰半导体科技有限公司 | 一种基于冗余异构的安全总线系统 |
CN110532209B (zh) * | 2019-08-13 | 2022-02-22 | 南京芯驰半导体科技有限公司 | 一种基于冗余异构的安全总线系统 |
CN111049607A (zh) * | 2019-11-15 | 2020-04-21 | 中国第一汽车股份有限公司 | 一种车辆的时钟同步方法、装置、系统和存储介质 |
CN111031134A (zh) * | 2019-12-17 | 2020-04-17 | 中车株洲电力机车有限公司 | 一种通讯方法及装置 |
CN111638687A (zh) * | 2020-05-12 | 2020-09-08 | 牧星机器人(江苏)有限公司 | 一种基于精简通讯协议的agv用通讯方法 |
CN111638687B (zh) * | 2020-05-12 | 2022-01-21 | 牧星机器人(江苏)有限公司 | 一种基于精简通讯协议的agv用通讯方法 |
CN111786866B (zh) * | 2020-09-04 | 2020-11-17 | 成都运达科技股份有限公司 | 多通信总线无缝切换的冗余通信方法 |
CN111786866A (zh) * | 2020-09-04 | 2020-10-16 | 成都运达科技股份有限公司 | 多通信总线无缝切换的冗余通信方法 |
CN112306939A (zh) * | 2020-10-29 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种总线调用方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103516571B (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103516571A (zh) | 一种双can总线保证数据通信可靠性的系统架构及其方法 | |
CN102325019B (zh) | 一种实时工业以太网EtherCAT冗余系统的时钟同步方法 | |
CA2861984C (en) | Technique for handling a status change in an interconnect node | |
CN103329467B (zh) | 实时数据传输方案中检测并报告同步丢失和同步保持的系统和方法 | |
CN103023715A (zh) | 一种基于rs485总线通讯链路的故障监测方法 | |
US9166922B2 (en) | Communication device for an industrial communication network which can be operated in a redundant manner and method for operating a communication device | |
CN104516306B (zh) | 冗余的自动化系统 | |
CN106658565B (zh) | 用于轨道交通车地无线通信的多链路择优传输方法及装置 | |
CN101286940A (zh) | 双冗余can总线通信系统及其通信方法 | |
KR101519719B1 (ko) | 게이트웨이의 메시지 처리 방법 | |
JPS5947906B2 (ja) | ル−プ伝送システム | |
US20210044610A1 (en) | Anomaly detection method and anomaly detection device | |
US9282015B2 (en) | Network relay device | |
CN105471653A (zh) | 一种机载双通道无缝切换方法及系统 | |
CN101494519B (zh) | 一种在can协议中实现消极错帧的方法及其装置 | |
CN101902382B (zh) | 一种以太单环网地址刷新方法及系统 | |
US9197441B2 (en) | Method and system for service protection | |
CN101547131A (zh) | Eaps环网单通故障定位和保护方法 | |
CN101604270B (zh) | 基于vxworks操作系统的ARINC429通信冗余方法 | |
US20160087814A1 (en) | Wireless-communication quality-information processing device and communication system | |
CN109449897B (zh) | 一种基于环网的就地化多子机保护装置定值整定方法 | |
CN103885441A (zh) | 一种控制器局域网络的自适应故障诊断方法 | |
CN106411616A (zh) | 一种通过1553b总线管理以太网终端的装置及方法 | |
CN111181678B (zh) | 一种应用于时间触发fc网络的时间同步方法 | |
CN104869041A (zh) | 一种环形网络中动态路径规划的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |