当前位置:无忧公文网 >范文大全 > 征文 > 一种冗余的高安全性CAN总线通信系统

一种冗余的高安全性CAN总线通信系统

时间:2022-03-23 09:20:20 浏览次数:

摘要:该文从CAN总线通信的角度,提出了一种冗余的高安全性CAN总线通讯系统。以求解决在联锁系统中遇到的通信问题。文章详细阐述了新型通信系统的设计原理与实现步骤,并用实例验证了该方法的有效性。

关键词:CAN; 通信系统;二乘二取二;冗余;安全性

中图分类号:TP273.5 文献标识码:A 文章编号:1009-3044(2014)02-0401-03

如今的工业控制领域正朝着信息化、智能化、网络化不断发展,影响着通信效率的工业总线技术越来越受到行业的重视。传统的工业通信总线大多采用RS-485总线,但是RS-485总线存在着总线利用率低、传输速率低、通信距离短等缺点,并且缺乏完备的错误检测机制,导致其安全性较差,不适合应用在安全相关的工业领域。安全相关的工业领域包括核电、水利、交通、矿山等关系着重大公共安全的行业,一般有着严格的安全性要求。

本文提出了一种新的设计方案,通过采用二乘二取二架构,多重校验和冗余收发技术,每个有效的数据包的发送和接收都是冗余的,并且通过在发送端和接收端设置多次校验,确保系统的高安全性。

1 背景

控制器局域网CAN(Controller Area Network)总线是一种能有效支持分布式实时控制的串行通信网络。近年来,由于CAN总线具有高可靠性、高传输速率、良好的勘误检错能力和低廉的成本优势,逐渐成为应用最广泛的现场总线之一。安全相关的工业领域比一般的工业领域对安全性要求更高,而且往往应用环境恶劣,存在着大量的干扰,例如电磁、温度、粉尘等影响。CAN总线虽然有错误检测机制,但在实际应用过程中,仍不可避免地会由于控制器或收发器故障、传输介质损坏及环境的干扰产生传输错误。另外,CAN总线的一个特点是多主工作方式,但在实际应用中,多主工作方式容易导致总线控制冲突,使得紧急命令和消息得不到响应或者响应过慢,对中断逻辑结构要求较高,不适合对安全性和响应时间有着严格要求的安全相关系统。

2 CAN总线系统架构

本文的目的在于提供一种冗余的高安全性CAN总线通信系统,以解决现有技术中存在的问题。

一种冗余的高安全性CAN总线通信系统,包括一个上位机、多个下位机和两条互为热备的CAN总线,每个上位机和下位机均由两个互为热备的模块构成;每个模块均有两个同步运算的微处理器CPU,分别为第一CPU和第二CPU,构成两个相互独立的运算通道,每个运算通道集成两个CAN总线接口,所述两个CAN总线接口分别一一对应连接两条CAN总线。

由上述技术方案可知,本方案采用二乘二取二架构,包括一个上位机、若干下位机和两条CAN总线,每个上位机和下位机均由两个互为热备的模块构成,两条CAN总线构成热备,每个模块集成两个相互独立的运算通道,每个运算通道以一个高性能微处理器为核心,同步运算并实现二取二表决,每个运算通道集成两个CAN总线接口分别连接到两条CAN总线上;CAN总线通信采用主从模式,上位机定期巡访所有下位机,每个时间片内,上位机和固定的下位机通信,有效避免总线冲突。本实用新型采用多重校验和冗余收发技术,每个有效的数据包的发送和接收都是冗余的,并且在发送端和接收端设置多次校验,确保高安全性。

3 工作原理

本设计方案的工作原理(选取一个下位机2进行说明):

1)准备阶段:系统上电,完成初始化工作,每个模块检查自身状态和接口设备是否运行正常;检查完毕后,若所有模块均处于正常工作状态,则互为热备的两个模块根据固定的主备关系工作,若有模块出现故障,则互为热备的两个模块根据本模块和对方模块的状态确定主备关系;若前期检查所有模块均正常工作,上位机模块M1工作在主系状态下,M2工作在备系状态下,下位机模块M3工作在主系状态下,M4工作在备系状态下;

2)上位机主系模块CPU1发送阶段:上位机主系模块M1占有总线控制权,在固定的时间片内,选择与下位机主系模块M3通信:M1-CPU1将自己需要发送的数据Data1_1通过CAN总线接口M1-CPU1-CAN1发送到CAN-BUS1上;M1-CPU2通过CAN总线接口M1-CPU2-CAN1接收数据,M3-CPU1通过CAN总线接口M3-CPU1-CAN1接收数据,M3-CPU2通过CAN总线接口M3-CPU2-CAN1接收数据;

3)上位机主系模块CPU2比较阶段:M1-CPU2接收到来自M1-CPU1的数据Data1_1,并将接收到的数据Data1_1与自己准备发送的数据Data1_2做比较,如果两个数据相同,则跳转步骤S4,如果两个数据不相同,则跳转步骤S8;

4)上位机主系模块CPU2发送阶段:M1-CPU2将自己需要发送的数据Data1_2通过CAN总线接口M1-CPU2-CAN1发送到CAN-BUS1上。M1-CPU1通过CAN总线接口M1-CPU1-CAN1接收数据,M3-CPU1通过CAN总线接口M3-CPU1-CAN1接收数据,M3-CPU2通过CAN总线接口M3-CPU2-CAN1接收数据;

5)下位机主系模块CPU1和CPU2比较阶段:M3-CPU1和M3-CPU2分别从CAN-BUS1上接收到了两个数据Data1_1和Data1_2,分别对这两个数据进行比较,如果M3-CPU1和M3-CPU2均判定两个数据是相同的,则跳转步骤S6,否则,只要M3-CPU1或M3-CPU2其中之一判定两个数据不相同,就跳转步骤S8;

6)下位机主系模块CPU1和CPU2解码阶段:M3-CPU1和M3-CPU2分别解码各自接收到的数据Data1_1和Data1_2,得到相应的时间戳、序列号和CRC校验码,如果M3-CPU1和M3-CPU2均判定相应的时间戳、序列号和CRC校验码是正确的,则跳转S7,如果出现错误,则跳转步骤S8;

7)通信完成阶段:CAN总线通信正确完成,下位机根据解码得到的数据区,进行后续处理,为上位机应答做准备;

8)通信错误阶段:CAN总线通信出现错误,通信中止,等待上位机重新发起通信。

需要说明以下几点:

其一、备系模块(上位机模块M2、下位机模块M4)正常接收CAN总线上的数据,但不允许向CAN总线上发送数据,即处在“只收不发”的状态。备系模块接收到数据后,与其相应的主系模块同步运行,当主系模块出现故障时,备系模块可以无扰切换为主系模块,保证系统可靠运行。

其二、两条CAN总线以相同的方法进行数据传输,形成冗余结构,两条CAN总线只要有一条通信正常,系统就能正常工作。上述步骤S2中,M1-CPU1将自己需要发送的数据Data1_1通过CAN总线接口M1-CPU1-CAN1发送到CAN-BUS1上,同时也通过CAN总线接口M1-CPU1-CAN2发送到CAN-BUS2上,从而M1-CPU2也可以通过CAN总线接口M1-CPU2-CAN2接收数据,M3-CPU1也可以通过CAN总线接口M3-CPU1-CAN2接收数据,M3-CPU2也可以通过CAN总线接口M3-CPU2-CAN2接收数据;上述步骤S4中的情况与此相同。

其三、当下位机根据上位机下发的命令完成规定任务后,向上位机应答,下位机向上位机发送数据和消息与上位机向下位机发送数据和命令,两者的通信方向相反,方法相同。

其四、CAN总线上的各个模块,除了自身发送之外,所有其他的动作,都是由接收事件驱动的。每个CAN接口保持对总线的监听,当接收到数据时,调用相应的接收中断处理函数。同一个CPU上的两个CAN接口的CAN接收中断处理函数在流程上是一致的。因为CAN总线协议取消了地址编码,而在程序中,需要明确每条CAN总线报文来自哪个模块,在编码设计中规定了专门的地址码段。

在CAN总线上,一个合法的数据包必须由两个数据Data1_1和Data1_2组成,Data1_1由发送端的CPU1发出,Data1_2由发送端的CPU2发出,接收端接收到两个数据并比较一致之后才能进行后续处理。数据包内包含地址码、时间戳、序列号、数据区、CRC校验码等内容。其中,地址码标明数据来源于总线上的模块位置,时间戳标明数据发送的时间点,序列号标明数据发送的流水号,数据区存放后续处理中需要使用的命令或信息,CRC校验码标明数据的CRC校验结果。

其五、每个模块的CPU1和CPU2都需要检验各自接收到的数据是否为有效数据。设CAN-BUS1为当前通信总线,CAN-BUS2为备用通信总线,判断接收到的数据是否来自于CAN-BUS1上的有效模块,即当前正在占用通信时间片的模块,对无效模块传来的数据一律丢弃不用;如果该数据来自有效模块的CPU1,将该数据保存至存储区,记录该数据到达的时间点,启动对应的定时器,如果在该定时器规定的时间内,收到来自该有效模块CPU2的数据,则将该数据判定为有效数据;如果超时没有收到来自该有效模块CPU2的数据,则删除保存的数据,并发送报警信息,标识CAN-BUS1总线上通信出错,将CAN-BUS2切换为当前工作总线;如果该数据来自有效模块的CPU2,则查找存储区中是否包含该有效模块CPU1传来的数据,如果有,则将该数据判定为有效数据,如果没有,则将该数据判定为无效数据。

以上所述实施方式仅仅是对本实用新型的优选实施方式进行描述,并非对本实用新型的范围进行限定,在不脱离本实用新型设计精神的前提下,本领域普通技术人员对本实用新型的技术方案作出的各种变形和改进,均应落入本实用新型的权利要求书确定的保护范围内。

4 实施实例

下面,结合图1和具体实例进一步说明本方案。

一种冗余的高安全性CAN总线通信系统,包括上位机1、下位机2和CAN总线3,其中上位机1一个,下位机2若干个,CAN总线3两条。每个上位机1和下位机2均由两个互为热备的模块构成,两条CAN总线3构成热备。每个模块集成两个相互独立的运算通道,每个运算通道以一个高性能微处理器CPU为核心,同步运算并实现二取二表决;每个运算通道集成两个CAN总线接口分别一一对应连接到两条CAN 总线3上。CAN总线通信采用主从模式,即通信只能由主机发起,从机应答;在通信流程中,上位机1为主机,下位机2为从机,主机周期地逐个同所有从机交互数据,其与每个从机的通信占用一定的时间片,在该时间片内不允许其它从机获得总线的发送权,有效避免总线冲突;通信方法采用多重校验和冗余收发技术,每个有效的数据包的发送和接收都是冗余的,并且在发送端和接收端设置多次校验,确保高安全性。

如图1所示(作为示例,只选了一个下位机2进行说明,其它下位机2情况相同),上位机1具有两个模块M1和M2,互为热备。如果两个模块均正常,则M1工作在主系状态下,M2工作在备系状态下;M1上集成两个高性能微处理器CPU:M1-CPU1和M1-CPU2,M2上集成两个高性能微处理器CPU:M2-CPU1和M2-CPU2。每个CPU都集成了两个CAN总线接口,M1-CPU1集成了M1-CPU1-CAN1和M1-CPU1-CAN2,M1-CPU2集成了M1-CPU2-CAN1和M1-CPU2-CAN2,M2-CPU1集成了M2-CPU1-CAN1和M2-CPU1-CAN2,M2-CPU2集成了M2-CPU2-CAN1和M2-CPU2-CAN2。

下位机2模块的数量根据系统容量的大小而灵活变化,总共有2*N个,每两个模块形成一组冗余结构,互为热备。以一个下位机2为例:模块两个:M3和M4,互为热备,如果两个模块均正常,则M3工作在主系状态下,M4工作在备系状态下;M3上集成两个高性能微处理器CPU:M3-CPU1和M3-CPU2,M4上集成两个高性能微处理器CPU:M4-CPU1和M4-CPU2,每个CPU都集成了两个CAN总线接口,M3-CPU1集成了M3-CPU1-CAN1和M3-CPU1-CAN2,M3-CPU2集成了M3-CPU2-CAN1和M3-CPU2-CAN2,M4-CPU1集成了M4-CPU1-CAN1和M4-CPU1-CAN2,M4-CPU2集成了M4-CPU2-CAN1和M4-CPU2-CAN2。

冗余的两条CAN总线3:CAN-BUS1和CAN-BUS2,CAN总线接口M1-CPU1-CAN1、M1-CPU2-CAN1、M2-CPU1-CAN1、M2-CPU2-CAN1、M3-CPU1-CAN1、M3-CPU2-CAN1、M4-CPU1-CAN1、M4-CPU2-CAN1连接CAN-BUS1;CAN总线接口M1-CPU1-CAN2、M1-CPU2-CAN2、M2-CPU1-CAN2、M2-CPU2-CAN2、M3-CPU1-CAN2、M3-CPU2-CAN2、M4-CPU1-CAN2、M4-CPU2-CAN2连接CAN-BUS2。

5 结束语

本文主要论述了一种新的基于二乘二取二架构的高安全性CAN通信系统的设计方案,介绍了设计原理,并通过设计实例说明了该方案的可行性。该方案对提高系统安全性具有积极的意义。

参考文献:

[1] 姜幼卿,左国华,陈勤学,张宜生.基于CAN总线的温室自动控制系统的通信设计[J].仪表技术与传感器,2005(4).

[2] 饶运涛.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.

[3] 吴坎.基于SJA1000和PCA82C250的CAN总线接口设计[J].机械设计与制造,2010(7).

[4] 朱华伟,伍爱莲,杨如锋,肖涛.适用于变电站的CAN现场总线通信适配卡的设计[J].电力系统及其自动化学报,2005(5).

[5] 夏泽中,薛敏.CAN总线和基于CAN总线的高层协议CANopen[J].可编程控制器与工厂自动化,2005(2).

[6] 鲁也传,陈永生,郭玉臣.基于通信的列车自动监控系统平台设计与实现[J].计算机应用,2009(S2).

[7] 王成,唐涛.CBTC仿真系统中数据库的设计与实现[J].计算机仿真,2007(9).

[8] 王琰.基于通信的列车控制系统后备系统的探讨[J].铁道标准设计,2007(6).

推荐访问: 冗余 总线 通信系统 安全性