CN103490966B - 一种双冗余can总线数据接收处理方法 - Google Patents

一种双冗余can总线数据接收处理方法 Download PDF

Info

Publication number
CN103490966B
CN103490966B CN201310470785.4A CN201310470785A CN103490966B CN 103490966 B CN103490966 B CN 103490966B CN 201310470785 A CN201310470785 A CN 201310470785A CN 103490966 B CN103490966 B CN 103490966B
Authority
CN
China
Prior art keywords
data
frame
sequence number
message sequence
dual
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.)
Active
Application number
CN201310470785.4A
Other languages
English (en)
Other versions
CN103490966A (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.)
China Academy of Launch Vehicle Technology CALT
Beijing Institute of Space Launch Technology
Original Assignee
China Academy of Launch Vehicle Technology CALT
Beijing Institute of Space Launch Technology
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 China Academy of Launch Vehicle Technology CALT, Beijing Institute of Space Launch Technology filed Critical China Academy of Launch Vehicle Technology CALT
Priority to CN201310470785.4A priority Critical patent/CN103490966B/zh
Publication of CN103490966A publication Critical patent/CN103490966A/zh
Application granted granted Critical
Publication of CN103490966B publication Critical patent/CN103490966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明为了解决现有技术无法简单、有效地处理两个通道接收到重复数据的问题,提供了一种双冗余CAN总线数据接收处理方法,包括如下步骤:(1)在双冗余CAN总线的第一通道和第二通道上同时发送数据帧组成的数据;(2)接收双冗余CAN总线的第一通道的数据,同时接收双冗余CAN总线的第二通道的数据;(3)判断在两个通道中接收到的数据的数据帧中是否需要区分重复数据;(4)对不需区分重复数据的数据帧内的数据直接使用,对需要区分重复数据的数据帧进行区分:对经过区分处理的数据帧中的非重复数据进行使用,对其中的重复数据则抛掉。本发明利用简单的方法规避了软件延迟、线路延迟等对双冗余CAN总线数据接收的影响。

Description

一种双冗余CAN总线数据接收处理方法
技术领域
本发明涉及一种数据处理方法,更具体地,涉及一种双冗余CAN总线数据接收处理方法。
背景技术
采用传统的单CAN总线的控制网络,会存在某些失效环节,比如主干线故障、分支线故障、驱动电路故障等。因此,现有技术中,为了提高数据传输的稳定性和安全性,通常使用双冗余CAN总线网络。
现有技术中确保通信可靠性和差错控制的方法例如中国专利申请(申请号为CN200810106342.6),其公开了一种双冗余CAN总线通信***的通信方法,包括下述步骤:1)在网络中启动节点1和节点2;2)在节点1和节点2之间建立通信登记表;3)当节点1要向节点2发送报文时,节点1根据所要进行的操作确定报文的传输模式为单帧报文传输模式或大批量报文传输模式;4)若采用单帧报文传输模式,则两节点间采用返回N自动重传机制对传输过程进行差错管理;5)若采用大批量报文传输模式,则两节点间采用选择拒绝自动重传机制对传输过程进行差错管理。所述步骤5中的选择拒绝自动重传机制为接收节点要求发送节点重传的只有被检测到差错的帧。但是,上述方法不适于采用双冗余通道热切换技术和双冗余通道数据同发同收技术时的可靠通信。
其中,双冗余通道热切换技术是双CAN总线的一个通道作为工作通道,另外一个通道热备份,当工作通道出现故障时,切换到备份通道,备份通道作为工作通道继续工作,原来的通道如果修复好则作为备份通道,如果不能修复好则标识故障。
双冗余通道数据同发同收技术是双CAN总线的两个通道都作为工作通道,数据在两个通道上同时传送,只要有一个通道数据传送通畅,则认为工作正常。
但是,现有技术尚无简单、有效地解决两个通道接收到重复数据时的处理的技术方案。双冗余CAN总线***的接收节点会在双总线上分别收到相同的数据,并且受软件延迟、线路延迟等影响,两个通道上收到的数据间隔时间会有所不同,如何能区分接收到的数据为重复数据成为接收处理的关键。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种双冗余CAN总线数据接收处理方法是为双冗余通道数据同发同收技术而提出来的。
根据本发明的一方面,提供了一种双冗余CAN总线数据接收处理方法,包括如下步骤:
(1)在双冗余CAN总线的第一通道和第二通道上同时发送数据帧组成的数据;
(2)接收双冗余CAN总线的第一通道的数据,同时接收双冗余CAN总线的第二通道的数据;
(3)判断在两个通道中接收到的数据的数据帧中是否需要区分重复数据;
(4)对不需区分重复数据的数据帧内的数据直接使用,对需要区分重复数据的数据帧进行区分:对经过区分处理的数据帧中的非重复数据进行使用,对其中的重复数据则抛掉。
在步骤(1)中,在数据帧中存放消息序号,且在每个通道内,各数据帧的消息序号在每次发送以后发生变化。
进一步地,在步骤(3)中,根据数据帧的消息标识符确定是否需要区分重复数据。
进一步地,在步骤(4)中,根据所述消息序号进行区分。
进一步地,步骤(4)包括如下步骤:
(a)获得新的数据帧的消息序号与上次消息序号,其中,新的数据帧的消息序号是从其中一个通道接收到的当前数据帧的消息序号,上次消息序号是在接收所述当前数据帧之前、通过任意通道接收到的、与所述当前数据帧具有相同的数据帧的消息标识符的数据帧的消息序号;
(b)判断新的数据帧的消息序号是否等于上次消息序号:如果相等,则抛掉所述接收的当前数据帧;否则将所述接收的当前数据帧的消息序号赋给所述上次消息序号并使用当前数据帧。
进一步地,在两个通道上发送的同一个数据的消息序号相同,发送的不同数据的消息序号每一帧不相同。
进一步地,消息序号占用一个字节长度,在0-255的数据范围内循环变化。
本发明的有宜效果如下:采用这种双冗余CAN总线数据接收处理方法,仅仅增加一个字节的传输信息,就可以解决重复指令的处理问题,也规避了软件延迟、线路延迟等对双冗余CAN总线数据接收的影响。
附图说明
图1是根据本发明的一个实施例的双冗余CAN总线网络结构示意图;
图2是根据本发明的一个实施例的CAN接口扩展示意图;
图3示出了根据本发明的一个实施例的需要区分重复数据的数据帧格式;
图4示出了根据本发明的一个实施例的数据接收处理流程图。
具体实施方式
下面结合附图说明本发明的具体实施例。
如图1-2所示,为双冗余CAN总线网络的结构示意图和CAN接口扩展示意图。
在硬件上,双冗余CAN总线同时使用两条CAN总线、两个CAN总线驱动器和两个CAN总线控制器和一个CPU。CPU通过不同的端口和中断同时控制两个CAN控制器。在一个实施例中,双冗余CAN总线BUS A、BUS B要求使用相同两套CAN设备,从而实现物理介质。BUS A的CAN设备包括独立的总线电缆、总线驱动器1-2和总线控制器1-1,BUS B的CAN设备包括独立的总线电缆、总线驱动器2-2和总线控制器2-1。CPU1由FPGA实现。
在工作中,发送时可以通过两条总线BUS A、BUS B发送同一组数据。接收时CPU控制器1-1和2-1可以同时处理两路总线BUS A、BUS B上发来的数据,接收并进行适当处理。
在一个实施例中,双冗余CAN接口卡1-1和1-2分别为SJAl000,它们提供两路独立的CAN接口、每片芯片的8位地址/数据总线和读写控制信号。SJAl000输出信号经过光耦连接CAN收发器PCA82C250,PCA82C250供电电源为隔离电源,由隔离电源转换模块提供。CAN总线的复位信号由FPGA芯片提供,CAN控制器SJAl000的中断信号输出到FPGA。
软件设计上,采用VxWorks操作***开发驱动。VxWorks操作***是风河公司(Wind RiverSyStem)推出的一款运行在目标机上的高性能、可裁减的嵌入式强实时操作***,它包括进程管理、存储管理、设备管理、文件***管理、网络协议及***应用等几个部分,只占用了很小的存储空间,并可高度裁减,保证了***能以较高的效率运行。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。
VxWorks操作***提供几种标准驱动模型,如串行设备驱动、块设备驱动、网络接口驱动、总线控制器驱动等。根据设备不同,可选择相应的标准驱动模型或自定CAN模块是串行设备,设计选择了标准串行设备驱动模型。
如图2所示,根据本发明的一个实施例,待发送的数据以数据帧的形式同时被CAN通道A和CAN通道B发送,并且在上述两个通道被发送的数据被同时接收。在待发送的数据帧中,均存放有帧消息标识符以及消息序号。
在每个通道内,每次发送数据帧以后,下一帧待发送的数据帧的消息序号将较上一次本通道发送的数据帧的帧序号发生变化。在一个优选的实施例中,该消息序号占用一个字节,且将在0-255的范围内循环增加。如图3所示,该消息序号被放在帧数据的数据场。
图3还示出了待发送的各帧数据的帧格式。每一帧数据均包括:帧头(1字节)、仲裁场(1字节)、控制场(1字节)、数据场(8字节)、帧尾及其他(1字节)这五部分。其中,数据场包括DAT A0-DAT A7这8个字节,且DAT A0用于存放消息序号。
下面结合图4,详细说明本发明的双冗余CAN总线数据接收处理方法。
根据本发明的一个优选的实施例,在两个CAN通道A和CAN通道B上分别发送的相同数据的消息序号相同,发送的不同数据的消息序号每一帧不相同。消息序号在0-255的数据范围内循环变化,其变化的条件是:针对不同的消息,则消息序号发生改变。在一个优选的实施例中,该消息序号针对不同的消息自增1。
当在CAN通道A和CAN通道B上分别同时发送数据帧组成的数据以后,双冗余CAN总线的数据接收端同时接收两个通道发送来的数据帧组成的数据,其接收是按照逐帧接收实现的。其中,双冗余CAN总线的数据接收端使用现有技术中的各种双冗余CAN总线的数据接收模块,其具体实现是本领域技术人员的公知常识,并不作为本发明的发明点。在某些实施例中,可以使用Intel的8XC196CA/CB、飞利浦的TJA1040、82C250、LPC2292、西门子的81C90/91等。
在从CAN通道A和CAN通道B分别接收到两个数据帧以后,需要判断在这两个数据帧中是否需要区分重复数据。所谓的重复数据,被定义为具有相同帧消息标识符的两个分别属于不同CAN通道的数据帧。因此,判断时,根据数据帧的消息标识符确定是否需要区分重复数据。其中,对不需区分重复数据的数据帧内的数据,直接使用即可;而对需要区分重复数据的数据帧进行区分。
上述区分的具体操作为:根据所述消息序号将上述分别属于不同的通道的数据帧加以区分。在一个优选的实施例中,这种区分包括下面两个步骤:
(a)获得新的数据帧的消息序号与上次消息序号,其中,新的数据帧的消息序号是从其中一个通道接收到的当前数据帧的消息序号,上次消息序号是在接收所述当前数据帧之前、通过任意通道接收到的、与所述当前数据帧具有相同的帧的消息标识符的数据帧的消息序号;
(b)判断新的数据帧的消息序号是否等于上次消息序号:如果相等,则抛掉所述接收的当前数据帧;否则将所述接收的当前数据帧的消息序号赋给所述上次消息序号并使用当前数据帧。
以此类推,接收到的多个数据帧就组成了发送时的原始数据。
以上的各实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通工程技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

Claims (2)

1.一种双冗余CAN总线数据接收处理方法,其特征在于,包括如下步骤:
(1)在双冗余CAN总线的第一通道和第二通道上同时发送数据帧组成的数据,其中待发送的数据以数据帧的形式同时被CAN总线的第一通道和第二通道发送;
(2)接收双冗余CAN总线的第一通道的数据,同时接收双冗余CAN总线的第二通道的数据,其中在上述两个通道被发送的数据被同时接收;
(3)判断在两个通道中接收到的数据的数据帧中是否需要区分重复数据;
(4)对不需区分重复数据的数据帧内的数据直接使用,对需要区分重复数据的数据帧进行区分:对经过区分处理的数据帧中的非重复数据进行使用,对其中的重复数据则抛掉,
在步骤(1)中,在数据帧中存放消息序号,且在每个通道内,各数据帧的消息序号在每次发送以后发生变化;
在步骤(3)中,根据数据帧的消息标识符确定是否需要区分重复数据;
在步骤(4)中,根据所述消息序号进行区分;
步骤(4)进一步包括如下步骤:
(a)获得新的数据帧的消息序号与上次消息序号,其中,新的数据帧的消息序号是从其中一个通道接收到的当前数据帧的消息序号,上次消息序号是在接收所述当前数据帧之前、通过任意通道接收到的、与所述当前数据帧具有相同的帧消息标识符的数据帧的消息序号;
(b)判断新的数据帧的消息序号是否等于上次消息序号:如果相等,则抛掉所述接收的当前数据帧;否则将所述接收的当前数据帧的消息序号赋给所述上次消息序号并使用当前数据帧;
并且在两个通道上发送的同一个数据的消息序号相同,发送的不同数据的消息序号每一帧不相同。
2.根据权利要求1所述的数据接收处理方法,其特征在于,消息序号占用一个字节长度,在0-255的数据范围内循环变化。
CN201310470785.4A 2013-10-10 2013-10-10 一种双冗余can总线数据接收处理方法 Active CN103490966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310470785.4A CN103490966B (zh) 2013-10-10 2013-10-10 一种双冗余can总线数据接收处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310470785.4A CN103490966B (zh) 2013-10-10 2013-10-10 一种双冗余can总线数据接收处理方法

Publications (2)

Publication Number Publication Date
CN103490966A CN103490966A (zh) 2014-01-01
CN103490966B true CN103490966B (zh) 2016-08-24

Family

ID=49830939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310470785.4A Active CN103490966B (zh) 2013-10-10 2013-10-10 一种双冗余can总线数据接收处理方法

Country Status (1)

Country Link
CN (1) CN103490966B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104363156B (zh) * 2014-10-31 2017-12-01 北奔重型汽车集团有限公司 一种双冗余网络拓扑方法
CN105353678B (zh) * 2015-11-17 2017-12-26 珠海格力电器股份有限公司 Can总线通讯隔离电路和方法
CN105656601A (zh) * 2015-12-28 2016-06-08 华为技术有限公司 一种重复消息确定方法及接收端设备
CN106330640A (zh) * 2016-08-17 2017-01-11 中国航空工业集团公司西安飞行自动控制研究所 一种基于can总线的数据交叉传输方法
EP3301523A1 (de) * 2016-09-30 2018-04-04 Siemens Aktiengesellschaft Redundant betreibbares kommunikationssystem für ein industrielles automatisierungssystem und verfahren zu dessen betrieb
CN106444713B (zh) * 2016-10-20 2019-06-18 北京精密机电控制设备研究所 一种基于双冗余can总线通信的多智能单机伺服控制***
CN106789510B (zh) * 2016-12-21 2020-03-24 中国船舶重工集团公司第七一一研究所 冗余can总线通信***的数据通信方法
JP6717214B2 (ja) * 2017-01-18 2020-07-01 株式会社オートネットワーク技術研究所 通信装置、通信システム及びコンピュータプログラム
CN107070763A (zh) * 2017-05-08 2017-08-18 北京航天发射技术研究所 一种处理双can总线时序不同步的方法及***
CN107579804B (zh) * 2017-07-17 2021-04-16 福建星网锐捷通讯股份有限公司 一种过滤重复数据的方法和***
CN109728985A (zh) * 2017-10-30 2019-05-07 北京精密机电控制设备研究所 一种基于rs422和can总线异构的实时冗余通信***
CN107592188B (zh) * 2017-11-09 2020-12-04 深圳震有科技股份有限公司 一种ptn承载电路仿真业务无损切换的方法及***
CN108023799B (zh) * 2017-11-10 2021-07-16 中国航空工业集团公司西安航空计算技术研究所 一种机载双余度can总线通信方法
CN109167737B (zh) * 2018-07-27 2022-05-03 中国地质大学(武汉) 融合数据缩减与动态优先权队列的can调度方法
CN109639546B (zh) * 2018-12-28 2021-07-30 浙江中控研究院有限公司 一种基于can总线的冗余***
CN109890008A (zh) * 2018-12-29 2019-06-14 北京锦鸿希电信息技术股份有限公司 数据的同步方法、装置及存储介质
CN111708312B (zh) * 2020-04-28 2021-11-09 北京骥远自动化技术有限公司 一种高可靠数据传输plc***及其数据传输方法
CN111614532B (zh) * 2020-05-13 2022-04-12 湖北三江航天万峰科技发展有限公司 一种基于dsp的can冗余通讯***
CN111786866B (zh) * 2020-09-04 2020-11-17 成都运达科技股份有限公司 多通信总线无缝切换的冗余通信方法
CN112947151B (zh) * 2021-01-28 2023-05-12 中国人民解放军93114部队 基于车辆双can总线的高效滤波方法及装置
CN113141289B (zh) * 2021-05-18 2022-07-26 卡斯柯信号有限公司 一种用于轨旁安全平台的总线数据传输方法
CN113806290B (zh) * 2021-08-27 2023-10-27 中国航空无线电电子研究所 一种用于综合模块化航空电子***的高完整性片上***
CN116360389B (zh) * 2023-02-22 2024-04-09 北京航天发射技术研究所 一种电驱特种车辆的同步伺服控制器故障控制***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345171A (ja) * 2005-06-08 2006-12-21 Yaskawa Electric Corp データ伝送方法およびデータ伝送システム
CN101908974A (zh) * 2010-07-16 2010-12-08 北京航天发射技术研究所 Can总线双冗余热切换***及热切换方法
CN102316499A (zh) * 2010-07-07 2012-01-11 中兴通讯股份有限公司 一种环形组网中数据传输的方法及***
CN102790664A (zh) * 2011-05-19 2012-11-21 昆盈企业股份有限公司 一对多无线数据传输方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345171A (ja) * 2005-06-08 2006-12-21 Yaskawa Electric Corp データ伝送方法およびデータ伝送システム
CN102316499A (zh) * 2010-07-07 2012-01-11 中兴通讯股份有限公司 一种环形组网中数据传输的方法及***
CN101908974A (zh) * 2010-07-16 2010-12-08 北京航天发射技术研究所 Can总线双冗余热切换***及热切换方法
CN102790664A (zh) * 2011-05-19 2012-11-21 昆盈企业股份有限公司 一对多无线数据传输方法及装置

Also Published As

Publication number Publication date
CN103490966A (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
CN103490966B (zh) 一种双冗余can总线数据接收处理方法
CN103490959B (zh) 一种双冗余can总线故障检测方法
CN105610876B (zh) 工业控制自动化网络通信协议转换器及通信协议转换方法
CN103634150B (zh) 一种冗余的高安全性can总线通信方法
CN106776436B (zh) 一种适用于多点互联的高速串行总线的通信方法
CN103248526B (zh) 实现带外监控管理的通信设备、方法
CN101529401B (zh) 用于在网络上分配usb集线器功能的方法和装置
CN103840993A (zh) 一种双冗余can总线数据发送方法
CN102857397A (zh) 一种多主异步双工差分总线及通讯方法
CN101454763B (zh) 用于在串行总线之间传输数据的网关
CN102035688B (zh) 一种快速控制网络链路访问设计方法
CN103501236B (zh) 网络控制平面逻辑拓扑生成方法及装置
CN104780064A (zh) 一种双冗余通道热切换can总线故障检测方法
CN102347879A (zh) 基于环型以太网和辅助网络的d-bus高速总线技术
CN104239256A (zh) 通过sas的pcie隧穿
CN109932966B (zh) 一种基于m-lvds总线实时高效数据传输方法
CN101789972A (zh) 网络通信装置
CN101547131B (zh) Eaps环网单通故障定位和保护方法
CN102811152A (zh) 一种多主总线网络通讯实时交易数据交换实现方法
JP6190281B2 (ja) 中継システムおよびスイッチ装置
CN106027397A (zh) 一种星型拓展的分布式测量设备网络通信方法
CN104486187A (zh) 一种动态同步的can通讯设备和方法
CN202351855U (zh) 对io扩展板的升级***
CN105993142A (zh) 用于在总线***中确定性地进行数据传输的方法和总线***
CN106411616B (zh) 一种通过1553b总线管理以太网终端的装置及方法

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