CN106789510A - 冗余can总线通信系统的数据通信方法 - Google Patents

冗余can总线通信系统的数据通信方法 Download PDF

Info

Publication number
CN106789510A
CN106789510A CN201611193872.XA CN201611193872A CN106789510A CN 106789510 A CN106789510 A CN 106789510A CN 201611193872 A CN201611193872 A CN 201611193872A CN 106789510 A CN106789510 A CN 106789510A
Authority
CN
China
Prior art keywords
count value
counter
roll
pdo
message
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
Application number
CN201611193872.XA
Other languages
English (en)
Other versions
CN106789510B (zh
Inventor
王君惠
石磊
金江善
姜春宇
张岳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
711th Research Institute of CSIC
Original Assignee
711th Research Institute of CSIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 711th Research Institute of CSIC filed Critical 711th Research Institute of CSIC
Priority to CN201611193872.XA priority Critical patent/CN106789510B/zh
Publication of CN106789510A publication Critical patent/CN106789510A/zh
Application granted granted Critical
Publication of CN106789510B publication Critical patent/CN106789510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • H04L12/40176Flexible bus arrangements involving redundancy
    • H04L12/40182Flexible bus arrangements involving redundancy by using a plurality of communication lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了冗余CAN总线通信系统的数据通信方法,包括:发送端将包含滚动计数值a的PDO报文在两条CAN总线上发送;发送端发送具有同一个报文ID的PDO报文时,每发送一帧PDO报文,滚动计数值a加1,a的初始值为0,上限值为N,当a达到N时,重新从1开始计数;在接收端设置期望计数器,期望计数器的计数值b表示期望接收到的PDO报文的滚动计数值;接收端每接收到发送端的一帧PDO报文时,先判断报文是否有效;在报文为有效报文、且a为0时,将b设为1;在报文为有效报文、且b<N时,将b更新为b=a+1,如b=N,则令b=1;接收端在接收到无效报文时,丢弃该无效报文,并维持b不变。本发明可避免接收端产生新旧数据的震荡。

Description

冗余CAN总线通信系统的数据通信方法
技术领域
本发明涉及现场总线通信技术,尤其涉及冗余CAN总线通信系统的数据通信方法。
背景技术
目前,CAN总线技术已被广泛应用于工业控制领域。CAN总线分为物理层、数据链路层和应用层。其中,物理层和数据链路层遵循CAN2.0协议规范。1992年,CIA组织成立,其首要任务之一就是制定CAN应用层协议。目前,通过的协议规范包括DeviceNet、CANOpen等。CANOpen规范是工业控制领域权威的规范,其包括系列文档。其中,最基本的为CANOpen301,已正式发布并应用。此外,CANOpen302是针对浮动主节点的规范,CANOpen307是海事规范。对于安全等级要求较高的系统而言,尤其是硬实时嵌入式系统而言(海事领域、航空航天等领域),对传输数据的可靠性要求较高,因此通常会采用冗余CAN总线通信系统。冗余CAN总线通信系统的物理层结构如图1所示,其中,节点100包括两个CAN控制器101、102以及两个CAN收发器103、104。目前的冗余CAN总线系统主要有以下几种通信方式:
1、双CAN通信系统的简单冗余:
这种方式简单地将双CAN冗余通讯系统作为单CAN系统的重复,在两条CAN总线上发送和接收数据。其通信方式过于简单,如果在数据通信过程出现阻塞状况,同一帧报文将会在不同的时间到达接收方,从而导致数据的反复震荡,数据一致性差。对于实时系统而言,将会很大程度影响系统的功能和可靠性。
2、冗余系统的冷备份:
所谓冷备份即数据首先在一条CAN总线上进行传输,当使用的这一条CAN总线出现故障时,再使用另外一条CAN总线代替故障的CAN总线,进行数据的传输。该种传输机制由于任一时刻只有一条CAN总线在传输数据,也即可以保证数据的一致性问题。但是,其存在下面问题:(1)在总线切换的过程中会出现数据的丢失以及数据的延时传输;(2)当使用的那一条CAN总线出现短暂的干扰或故障时,该机制失去冗余的含义,因此,对于实时系统而言,冷备份系统并不适合。
3、CANOpen307规范中使用的热备份:
针对单CAN总线网络而言,CIA组织提出了CANOpen301规范。而海事电子产品由于其安全等级较高,因此采用冗余CAN总线,并在CANOpen301基础上提出了CANOpen307规范。目前,CANOpen307规范仍然是草稿版,未正式发布。
CANOpen307规范中也是采用热冗余,即两条CAN总线都进行过程数据(PDO)的发送,其从源端保证数据的一致性。即:待发送的CAN报文,从请求发送开始,到放入CAN控制器进行发送,会分别在两条CAN总线上进行计时,如果超过设定的时间窗口,会将报文舍弃,从而保证数据的一致性。但是,这种通信方式存在以下问题:(1)时间窗口的设置不能无限的大,要小于报文的禁止时间,否则仍然会出现乱序的问题;(2)在有限的时间窗口内,可能出现下面情况:当两条CAN总线都收到干扰时,会导致总线报文发送延迟,两条CAN总线上的报文都超过设定的时间窗口,将报文舍弃。那么,对于实时嵌入式系统来讲,丢弃了重要的报文,延迟了报文的接收时间,将会对系统产生不可预估,甚至是破坏性的影响。(3)在代码实现机制上复杂。
发明内容
本发明所要解决的技术问题在于提供一种制造成本低的冗余CAN总线通信系统的数据通信方法,其能充分保证接收数据的一致性,并最大程度避免接收端产生新旧数据的震荡。
为解决上述技术问题,本发明所采取的技术方案是:
冗余CAN总线通信系统的数据通信方法,包括以下步骤:
发送端将包含滚动计数值a的PDO报文在两条CAN总线上发送;发送端发送具有同一个报文ID的PDO报文时,每发送一帧PDO报文,PDO报文的滚动计数值a加1,滚动计数值a的初始值为0,滚动计数值的上限值为N,当滚动计数值a达到其上限值N时,重新从1开始计数;
在接收端设置期望计数器,期望计数器的计数值b用于表示期望接收到的PDO报文的滚动计数值;接收端每接收到发送端发送的一帧PDO报文时,先判断该帧PDO报文是否有效,其中: 当期望计数器的计数值b为0、接收到的PDO报文的滚动计数值a为0、或者是接收到的PDO报文的滚动计数值a等于期望计数器的计数值b时,判断接收的PDO报文有效,否则,判断接收到的PDO报文为无效报文;
接收端在接收到滚动计数值a为0的有效报文时,将期望计数器的计数值b设为1,在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b小于所述的上限值N时,将期望计数器的计数值b更新为该有效报文的滚动计数值加1,在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b等于所述的上限值N时,将期望计数器的计数值b更新为1;
接收端在接收到无效报文时,丢弃该无效报文,并维持当前期望计数器的计数值b不变。
本发明的冗余CAN总线通信系统的数据通信方法易于实现、可靠性高,在热冗余传输的前提下,即保证了接收数据的一致性,又避免了数据的震荡,提高了实时系统的性能。与现有技术相比,本发明至少具有以下优点和特点:
1、与双CAN通信系统的简单冗余相比,解决了数据通信的乱序和数据一致性问题;
2、相比冗余系统的冷备份而言,可以实现两条CAN总线同时进行数据的传输,不存在CAN总线切换带来的丢帧和数据通信延时问题;
3、相比CANOpen307机制而言,本发明不在发送端进行报文的过滤,而采用接收端进行报文的比较判断,解决了由于时间窗口设置时导致丢失报文的问题,而且软件实现简单可靠;
4、本发明的发送端在两条CAN总线上都进行数据的传输,从源头上避免了丢帧的问题,而接收端可区分出新旧报文,对新报文进行接收,将旧报文进行舍弃,在保证数据一致性的同时,又避免了数据的震荡。
附图说明
图1示出了冗余CAN总线通信系统的物理层结构示意图。
图2示出了发送端所采用的滚动计数机制的原理示意图。
图3示出了根据本发明一实施例的冗余CAN总线通信系统的数据通信方法的接收端流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
请参阅图2。根据本发明一实施例的一种冗余CAN总线通信系统的数据通信方法为了防止接收方接收到的数据产生新旧数据的震荡,在发送端采用了滚动计数(RollingCounter)的机制,在接收端进行数据的筛选。在本实施例中,对于同一个ID的PDO报文而言,在报文的数据场中取第一个字节进行滚动计数,该滚动计数值最大值可以灵活设置。发送端每发送一帧报文,滚动计数值就加1,包含该滚动计数值的报文在两条总线(即图2中的默认总线和冗余总线)上发送。发送端在上电或复位后首先发送滚动计数值为0的报文,之后的计数从1开始,如果超过数据字典中定义的最大值,则从1开始重新计数。
请结合图3所示。根据本发明一实施例的一种冗余CAN总线通信系统的数据通信方法,包括以下步骤:
发送端将包含滚动计数值a的PDO报文在两条CAN总线上发送;发送端发送具有同一个报文ID的PDO报文时,每发送一帧PDO报文,PDO报文的滚动计数值a加1,滚动计数值a的初始值为0,滚动计数值的上限值为N,当滚动计数值a达到其上限值N时,在发送下一帧PDO报文时,重新从1开始计数;在本实施例中,N=255,发送端发送的第一帧PDO报文的a为1,第二帧PDO报文为2,依次类推,当发送端发送完a=255的那一帧PDO报文之后,接下来的发送的那一帧PDO报文的滚动计数值a=1;
在接收端设置期望计数器,期望计数器的计数值b用于表示期望接收到的PDO报文的滚动计数值;接收端每接收到发送端发送的一帧PDO报文时,先判断该帧PDO报文是否有效,其中: 当期望计数器的计数值b为0、接收到的PDO报文的滚动计数值a为0、或者是接收到的PDO报文的滚动计数值a等于期望计数器的计数值b时,判断接收的PDO报文有效,否则,判断接收到的PDO报文为无效报文;也就是说,如果接收到的PDO报文的滚动计数值a大于或小于当前期望计数器的计数值b时则都将该PDO报文视为无效;
接收端在接收到滚动计数值a为0的有效报文时,将期望计数器的计数值b强制设为1;接收端在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b小于上限值N时,将期望计数器的计数值b更新为该有效报文的滚动计数值加1,即,b=a+1;接收端在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b等于上限值N时,则将期望计数器的计数值b更新为1;
接收端在接收到无效报文时,丢弃该无效报文,并维持当前期望计数器的计数值b不变。
在此要说明的是,图3所示的接收端工作流程图仅为示意性的,并不应当视为对本申请限制。例如,接收端也可以先判断a是否为0,而后判断b是否为0。
本实施例中,接收方端对接收到的报文进行了过滤,从而能充分保证接收数据的一致性,并最大程度避免接收端产生新旧数据的震荡。
举例来说,假设发送端发送的第一帧PDO报文在两条CAN总线上同时进行传输,该PDO报文的滚动计数值a=0。如果接收端通过其中一条CAN总线先接收到该帧报文,因a=0会判断该PDO报文为有效报文,并使b=1,也就是说,接收端期望接收到的下一帧PDO报文的滚动计数值为1。当在另一条CAN总线上传输的、滚动计数值为0的PDO报文后传输到接收端时,因a=0,仍然会被接收端判断为有效报文,同时期望计数器的计数值b仍然为1。接下来,假设发送端又将第二帧PDO报文同时在两条CAN总线上进行传输,此时第二帧PDO报文的滚动计数值a=1。如果接收端又通过其中一条CAN总线先接收到该帧报文,由于b=a=1,接收端会判断该PDO报文为有效报文,并使b=1+1=2。而当在另一条CAN总线上传输的、滚动计数值为1的PDO报文后传输到接收端时,因1<2,会被接收端判断为无效报文而被舍弃。依此类推,假设接收端通过其中一条CAN总线先接收到了a=255的这一帧有效报文,因此时期望计数器的计数值b也等于255,则会使b=1。而当在另一条CAN总线上传输的、滚动计数值为255的PDO报文后传输到接收端时,因255≠1,还是会被接收端判断为无效报文而被舍弃。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (3)

1.冗余CAN总线通信系统的数据通信方法,其特征在于,包括以下步骤:
发送端将包含滚动计数值a的PDO报文在两条CAN总线上发送;发送端发送具有同一个报文ID的PDO报文时,每发送一帧PDO报文,PDO报文的滚动计数值a加1,滚动计数值a的初始值为0,滚动计数值的上限值为N,当滚动计数值a达到其上限值N时,重新从1开始计数;
在接收端设置期望计数器,所述期望计数器的计数值b用于表示期望接收到的PDO报文的滚动计数值;接收端每接收到发送端发送的一帧PDO报文时,先判断该帧PDO报文是否有效,其中: 当期望计数器的计数值b为0、接收到的PDO报文的滚动计数值a为0、或者是接收到的PDO报文的滚动计数值a等于期望计数器的计数值b时,判断接收的PDO报文有效,否则,判断接收到的PDO报文为无效报文;
接收端在接收到滚动计数值a为0的有效报文时,将期望计数器的计数值b设为1,在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b小于所述的上限值N时,将期望计数器的计数值b更新为该有效报文的滚动计数值加1,在接收到滚动计数值a不为0的有效报文、且期望计数器的计数值b等于所述的上限值N时,将期望计数器的计数值b更新为1;
接收端在接收到无效报文时,丢弃该无效报文,并维持当前期望计数器的计数值b不变。
2.根据权利要求1所述的冗余CAN总线通信系统的数据通信方法,其特征在于,将PDO报文的数据场中的第一个字节用于计数。
3.根据权利要求2所述的冗余CAN总线通信系统的数据通信方法,其特征在于, N=255。
CN201611193872.XA 2016-12-21 2016-12-21 冗余can总线通信系统的数据通信方法 Active CN106789510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611193872.XA CN106789510B (zh) 2016-12-21 2016-12-21 冗余can总线通信系统的数据通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611193872.XA CN106789510B (zh) 2016-12-21 2016-12-21 冗余can总线通信系统的数据通信方法

Publications (2)

Publication Number Publication Date
CN106789510A true CN106789510A (zh) 2017-05-31
CN106789510B CN106789510B (zh) 2020-03-24

Family

ID=58893903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611193872.XA Active CN106789510B (zh) 2016-12-21 2016-12-21 冗余can总线通信系统的数据通信方法

Country Status (1)

Country Link
CN (1) CN106789510B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003773A (zh) * 2020-07-15 2020-11-27 东风汽车集团有限公司 一种can总线安全数据的端到端校验方法及系统
CN112600740A (zh) * 2021-01-08 2021-04-02 重庆长安汽车股份有限公司 一种车联网can数据上传漏帧率的自动检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100014439A1 (en) * 2007-03-14 2010-01-21 Nxp, B.V. Node of a distributed communication system, node and monitoring device coupled to such communication system
CN101958802A (zh) * 2010-09-06 2011-01-26 广东电网公司茂名供电局 采样值双网在线切换方法
CN103490966A (zh) * 2013-10-10 2014-01-01 北京航天发射技术研究所 一种双冗余can总线数据接收处理方法
CN103516571A (zh) * 2013-07-22 2014-01-15 浙江中控研究院有限公司 一种双can总线保证数据通信可靠性的系统架构及其方法
CN105743755A (zh) * 2016-04-19 2016-07-06 上海君协光电科技发展有限公司 一种双冗余can总线通信系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100014439A1 (en) * 2007-03-14 2010-01-21 Nxp, B.V. Node of a distributed communication system, node and monitoring device coupled to such communication system
CN101958802A (zh) * 2010-09-06 2011-01-26 广东电网公司茂名供电局 采样值双网在线切换方法
CN103516571A (zh) * 2013-07-22 2014-01-15 浙江中控研究院有限公司 一种双can总线保证数据通信可靠性的系统架构及其方法
CN103490966A (zh) * 2013-10-10 2014-01-01 北京航天发射技术研究所 一种双冗余can总线数据接收处理方法
CN105743755A (zh) * 2016-04-19 2016-07-06 上海君协光电科技发展有限公司 一种双冗余can总线通信系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003773A (zh) * 2020-07-15 2020-11-27 东风汽车集团有限公司 一种can总线安全数据的端到端校验方法及系统
CN112600740A (zh) * 2021-01-08 2021-04-02 重庆长安汽车股份有限公司 一种车联网can数据上传漏帧率的自动检测方法
CN112600740B (zh) * 2021-01-08 2022-06-07 重庆长安汽车股份有限公司 一种车联网can数据上传漏帧率的自动检测方法

Also Published As

Publication number Publication date
CN106789510B (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN106789509A (zh) 一种冗余can总线通信系统的数据通信方法
EP2936747B1 (de) Datenübertragung unter nutzung eines protokollausnahmezustands
CN103023715B (zh) 一种基于rs485总线通讯链路的故障监测方法
EP1789857B1 (de) Datenübertragungsverfahren und automatisierungssystem zum einsatz eines solchen datenübertragungsverfahrens
CN101227366B (zh) 总线传输数据防冲突方法
CN100550757C (zh) 组播通信网络中联合注册的方法及装置
EP2915289B1 (de) Repeater, can-kommunikationssystem und verfahren zur übertragung eines datentelegramms innerhalb eines can-kommunikationssystems
CN107248933A (zh) 一种轨道交通信号系统双主防护的方法
WO2008016726A3 (en) Techniques for distributing routing information using multicasts
CN106789510A (zh) 冗余can总线通信系统的数据通信方法
EP1686732B1 (de) Verfahren und System zur Übertragung von Telegrammen
CN105183687A (zh) 一种分时串口通信方法及系统
CN101217445B (zh) 防止环路产生的方法和以太环网系统
CN109639543A (zh) 一种汽车总线负载降低的方法及系统
Basu An efficient approach of election algorithm in distributed systems
CN107317731A (zh) 一种客户端与服务器连接状态的检测方法
CN101729284A (zh) 一种基于设备端主动以实现管理系统中链路轮询的方法
CN101237319B (zh) 以太环网中的主节点、时间同步方法和以太环网系统
CN103163863B (zh) 一种can信息的发送控制方法及系统
CN102843290B (zh) 数据采集监控系统的问答式规约报文处理方法
DE102012207958A1 (de) Verfahren zur Übertragung von Daten in einem paketorientierten Kommunikationsnetzwerk und entsprechend eingerichtetes Teilnehmergerät an dem Kommunikationsnetzwerk
DE2805705A1 (de) Datenaustauschverfahren zwischen mehreren prozessoren
CN103152836A (zh) 一种同频多终端无线通讯网络的通讯方法
CN111628891A (zh) 一种基于qnx的双以太网冗余的实现方法
CN104506642A (zh) 一种客户端消息高效的收发和处理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 201108 Shanghai city Minhang District Huaning Road No. 3111

Patentee after: The 711 Research Institute of China Shipbuilding Corp.

Address before: 201108 Shanghai city Minhang District Huaning Road No. 3111

Patentee before: Shanghai Marine Diesel Engine Research Institute

CP01 Change in the name or title of a patent holder