技术文章
您现在所在位置:首页 > 技术中心 > CAN总线双机热备份功能的实现

CAN总线双机热备份功能的实现

 发布时间:2009-06-03 点击量:1452
一、CAN总线简介
1、概述
CAN(Controller Area Network)zui初是由德国Bosch公司在80年代初期,为了解决汽车中众多的控制与测量设备之间的数据交换而开发的一种串行数据通信总线,属于现场总线的范畴,1993年成为标准(ISO11898:道路车辆的高速控制器局域网数字交换系统标准)。CAN总线是一种有效支持分布式控制系统或实时控制的串行通信网络,是一个多主总线,总线上的各节点都有权随时向其他节点发送信息,总线冲突时通过总线仲裁方式决定占用总线的节点。CAN的通信介质可以是双绞线,同轴电缆或光纤。它可以通过简单的协议,实现在电磁干扰环境下远距离实时数据的可靠传输。
2、主要特点
CAN总线的主要特点概括如下:
1、  CAN总线上任一个节点均可在任一时刻主动向网络上的其他节点发送数据,而不分主从,通信灵活;
2、  CAN总线采用非破坏性的总线仲裁,当多节点同时向总线发送报文(message)时,优先级低的节点主动停止数据发送(仲裁丢失),而优先级高的节点可以不受影响地继续发送数据;
3、  CAN总线具有点对点,一点对多点,以及全局广播传送数据的功能;
4、  CAN总线通信距离zui远可达10km,通信zui高速可达1Mbit/s;
5、  CAN将业务数据打包成报文发送,每一个报文的有效字节数为8个。这种小报文方式有传输时间短,实时性高,减少因受干扰而重发报文的机率等优点;
6、  CAN采用位校验、填充位校验、循环冗余码校验(CRC)和数据帧格式校验,数据出错概率在10-15以下;
7、  CAN节点出错次数大于一定数量时,可自动退出总线操作,使错误节点对总线的干扰降到zui低;
3、传输距离与传输速率的对应关系
CAN系统内任意两个节点间的传输距离与该距离下zui大位速率的对应关系见下表:


CAN总线的诸多优势,促使其在各个领域得到日益广泛的应用,成为公认的zui有前途的现场总线之一。
二、CAN工作机制
1、CAN的报文(message)类型
CAN系统中,节点以报文方式发送和接收数据。CAN的报文有4种类型,即数据帧、远程帧、出错帧、过载帧,每种帧均有其相应的帧格式。其中与应用层关系zui密切的是数据帧和远程帧。
2、CAN节点的状态
CAN总线上的每个节点总处于“错误主动(Error Active)”,“错误被动(Error Passive)”和“总线脱离(Bus Off)”三种状态之一。
  处于错误主动状态的节点,当发现总线上有错误传输时,将向总线上发“主动出错帧”;处于错误被动状态的节点,当发现总线上有错误传输时,将向总线上发“被动出错帧”。当节点进入总线脱离状态时,将完全退出总线操作。
3、CAN节点的总线仲裁与监听机制
CAN控制器发送数据时,按字节的高位到低位的顺序进行串行发送,在发送的同时进行接收,同时将收到的数据与发送的数据逐位进行比较。在总线仲裁阶段,若发送的位是“1”,而接收到的是“0”,则该节点停止发送,退出总线,这就是仲裁丢失,因而,标识符二进制数值低的报文具有更高的优先权。仲裁丢失的节点等到总线空闲时,再重新进行报文发送。在总线仲裁阶段之后,发送节点仍将发送数据与接收数据逐位进行比较,这叫做“位校验”。若接收数据与发送数据不一致,则出现“位出错”,节点发出错帧。
除发送节点和总线脱离节点外,其他节点均为接收节点。接收节点不停地接收总线上的传输报文,由此不停地监测总线传输的错误状态。
4、CAN节点的报文接收筛选机制
CAN控制器监听接收总线上的所有报文,只有通过CAN控制器的报文筛选器筛选的报文才能进入CAN的报文接收缓冲区,为该节点所接收并传送给应用程序。
报文接收筛选器由接收码寄存器和接收屏蔽寄存器组成。接收码寄存器规定了拟接收报文中参与筛选比较的各位(主要是标识符)必须匹配的值,而接收屏蔽寄存器却将接收码寄存器中的某些位屏蔽为“无关位”,对应“无关位”的报文的位不参加筛选比较。
三、普通的单采集机方式
  目前,在石油钻录井行业应用CAN总线进行数据采集的各类仪器中大多采用单采集机方式进行工作,即只有一台计算机负责CAN总线的数据采集工作,其它计算机负责数据的处理及存储工作。有时为了防止数据丢失,可能采用双数据库服务器存储,达到备份数据的目的,但都要求采集机必须正常工作,一旦采集机中的CAN卡出现故障或采集机系统崩溃均会导致整个系统瘫痪。
四、双机热备份功能的提出
  为了防止和避免单采集机工作方式带来的不利影响,保证在一台采集机崩溃的情况下仍能使整个系统正常工作,本文提出了基于CAN总线的双机热备份功能的实现方法,即采用双采集机的工作方式,两台采集机都通过CAN总线三通连接到CAN总线上,共用同一组传感器和节点,同时采集。
五、双机热备份功能的实现
  根据CAN总线本身的特点,为了避免冲突,实现真正的双机采集,我们把两台采集机分成了主采集机和辅采集机,在主辅采集机同时接收CAN节点定时发送过来的数据帧的情况下,只有主采集机能够向总线上发送各种命令(包括进行搜索和设置CAN节点的命令),而辅采集机只能处于侦听状态。当主采集机死机或CAN卡工作不正常的时候,辅采集机就会自动切换成主采集机,担当起对CAN节点的各项管理工作。当原主采集机恢复正常工作时,当前的主采集机就又会自动切换回辅采集机状态,关闭各项设置功能,这就要求主辅采集机通过CAN总线进行必要的通讯。
1、硬件框图


2、主辅采集机通讯
  为了实现主辅采集机的正确通讯和及时准确切换,要求双方通过CAN总线传输信号。我们采用了只主采集机发送通讯信号,辅采集机只接收通讯信号的方式,在主辅采集机都进行数据采集的同时,只要辅采集机能不间断地接收到主采集机发来的通讯信号,就认为主采集机还存在并运行正常,一旦一段时间(10~30秒)收不到通讯信号,就认为主采集机已经出现问题,将直接切换成主采集机(在软件界面上有“主”、“辅”采集机标识)。
  受CAN适配卡总线驱动能力的限制,在CAN总线上一般允许挂接64个节点,占用0~63号逻辑地址,为了使主辅采集机之间的通讯信号(即一个数据帧)不与任何节点(0~63号)冲突,我们采用逻辑地址之上的更高一位进行接收屏蔽,具体设置方法如下:

单机采集时CAN卡初始化设置:


双机采集时辅采集机CAN卡初始化设置:


主采集机发送的主辅采集机通讯信号(数据帧)格式:
byte_len=SIX
id1=0x60  //01100 + 0
id2=0x00
data[0]=0x00
data[1]=0x00
data[2]=0x00
data[3]=0x00
data[4]=0x00
data[5]=0x00

该数据帧中的数据字段可任意值,这里默认为0。

需要注意的是,在辅采集机进行数据采集接收的过程中应将该通讯信号与“0”号地址节点(一般为绞车计数)区分开来,如果将该通讯信号也接收进数据缓冲区,会使“0”号节点对应的传感器数据为0。为了使该通讯信号有zui高的优先权,将它的逻辑地址设成了“0”号,但它与“0”号节点是有区别的,区别在于6位逻辑地址的前一位上。因此在接收到该信号后应进行特殊处理。
3、软件流程图


六、基于CAN总线的双机热备份功能的优点和特点
1、  实现了CAN卡与CAN卡之间的双向通讯;
2、  与通过网络等其它介质通讯相比,通过CAN总线直接通讯更快捷和准确,避免了因其它通讯介质或通讯设备故障而产生的误报现象;
3、  其中的一台采集机出现故障并不影响整个系统的正常运行;
4、  主辅采集机的正确通讯保证了CAN节点在同一时刻只有一个命令中心,防止了多方指挥的混乱状态;
5、  更加合理地利用节点和传感器,两个甚至更多个采集系统只需一套传感器总成,减轻了钻井现场的安装和维护任务,并降低了成本;
6、  及时准确地保存了现场的两套数据,避免了因数据丢失造成的损失。

七、基于CAN总线的双机热备份功能的先进性和可扩展性
1、  据了解目前还没有其它任何一家钻录井仪器制造厂商真正实现基于CAN总线的双机热备份功能;
2、  实现了直接利用CAN总线进行两块CAN卡之间的双向通讯;
3、  可扩展该功能,利用CAN总线实现分别装有CAN卡的两台计算机之间的数据交换和消息传递。

八、参考资料
1、SBS SysExpanModule/CSM 技术手册V3.4
 
 

上海神开石油仪器有限公司(www.shenkaiyiqi.com)主营:汽油辛烷值测定机,自动开闭口闪燃点试验器,自动运动粘度测定器,自动蒸馏试验器,自动X荧光硫含量测定器,自动紫外荧光定硫仪,深色石油产品管式炉,凝点试验器,铜片腐蚀试验器,汽油辛烷值测定器冰塔

传真:021-62506641

邮箱:syp@shenkai.com

地址:上海浦东浦星路1769号

版权所有 © 2019 上海神开石油仪器有限公司   备案号:  管理登陆  技术支持:化工仪器网  GoogleSitemap

在线客服 联系方式 二维码

服务热线

13501749106

扫一扫,关注我们