CAN总线在消防产品的运用

CAN总线在消防产品的运用

 

当今时代科学技术飞速发展,带动计算机软硬件技术和集成电路技术的发展,对于我们以前使用传统的现场总线技术正在悄悄地发生一场新的变革。我们单位以前在控制器和控制器之间通讯用的数据通讯协议是RS485标准,在使用过程中发现有很多问题,比如说通讯距离短、容易出现通讯错误等缺点。随着总线技术的推广陆续出现了几种标准:ISP、HART、LONWORKS、CAN等,我们对这几种总线技术进行了分析,觉得CAN总线技术具有性能高、可靠性高、传输距离远和稳定性高的特点,所以决定将CAN总线技术应用到消防产品中,下面主要谈谈如何应用的。   1CAN总线技术介绍   CAN总线是ControllerAreaNetwork的简称,最早是德国Bosch公司开始研究开发的一种串行数据通讯协议,主要目的是为了解决汽车中的数据传输,由于汽车中干扰非常大,必须有一种可靠稳定的数据传输协议。CAN总线就是在这种情况下诞生的。它是一种多主总线方式,就是说在通讯线上可以存在多个主机并行的情况,这和以前我们使用的RS485总线方式是完全不一样的,RS485总线通讯线上只能而且必须有一个是作为主机存在,其他的都是从机。还有CAN对于通信介质没有太严格的要求,既可以是双绞线,又可以是同轴电缆,还可以是光导纤维。CAN总线的通信速率最高可以达到1Mbps,通信速率可以在软件中设置,使用起来非常灵活。   CAN协议的一个最大特点是我们可以对通信数据块进行编码。数据块的标识码可由11位二进制数组成,因此可以定义211个不同的数据块,数据段长度最多为8个字节,这样可以满足在工业控制中的控制命令、器件状态这些信息传递的需求。CAN总线卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。CAN总线与以前的BITBUS、RS485总线相比有如下特性:   1.1CAN总线可以多主方式工作,在网络上的任意一个节点在总线空闲的时候都可以主动向网络上的其它节点发送信息,而不分主从,通讯方式灵活。   1.2CAN总线网络上的节点(信息)可按照内部设定成不同的优先级,可以满足不同的实时要求。   1.3CAN总线采用总线裁决技术,如果说同一时间有两个节点需要向网络传送信息,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,这些都是由硬件自动完成的,不需要你在软件中设置,节省时间,防止出现网络瘫痪情况。   1.4CAN总线数据传输方式多,可以点对点、一点对多点(成组)及全局广播几种方式传送、接收数据。我们在消防产品中主要用到点对点和全局广播这两种传输方式。   1.5CAN总线通讯距离非常远,在低速率的情况下直接通讯距离最远可达10KM。   1.6CAN总线上的理论节点数可达100多个,对于一个大型的消防系统,这个数量完全可以分配给各个设备来使用。   1.7CAN每帧信息都有CRC校验及其它检错措施,保证了数据出错率极低。   1.8CAN采用短帧的有效字节数为8个,这样传输时间短,受干扰的概率低且具有极好的检错效果。   1.9CAN总线每一个节点在自身发生错误严重的时候,可以自动切断本身与总线的联系,以使总线上的其它节点不受影响。我在产品中使用的CAN总线控制器是PHILIPS公司的SJA1000,CAN总线收发器是PHILIPS公司的82C250。下面对SJA1000和82C250做一下简要介绍:SJA1000具有完成高性能通信协议所要求的全部必要特性。具有简单总线连接的SJA1000可完成物理层和数据层的所有功能。其主要特性有:*多主结构*可连接各种类型微控制器接口*访问总线优先权*多种报文标识符*强有力的错误处理能力*数据长度为0~8个字节*可组态总线接口*可编程时钟输出*成组和广播报文功能*无损结构的逐位仲裁*传送速率可编程(最高为1Mbps)   2控制段和报文缓存器   SJA1000的地址域由控制段和报文缓存器组成;   2.1控制寄存器   控制寄存器的内容用于改变SJA1000的状态,控制位可被微控制器置位或复位,其将控制寄存器作为读/写存贮器;   2.2命令寄存器(CMR)   命令寄存器对微控制器来说是只写存储器。对此寄存器进行访问时返回值是“11111111”。在释放接收缓存器命令的同时,可以发出清除数据溢出命令。读接收缓存器之后,微控制器可以通过设置释放接收缓存器为1,来释放接收队列当前信息的内存空间;   2.3状态寄存器(SR)   状态寄存器的内容影响总线控制器的状态。状态对于微控制器作为只读存贮器出现;   2.4中断寄存器(IR)   中断寄存器允许识别中断源,当寄存器的一个或更多位被置位,INT引脚被激活。在该寄存器被微控制器读出后,所有位被SJA1000复位。该寄存器对于微控制器作为只读存贮器出现;82C250是CAN控制器和物理总线间的接口,它最初为汽车高速通信(最高达1Mbps)应用设计,器件可以提供对总线的差动发送能力和对CAN控制器的差动接收能力。具有抗瞬间干扰保护总线的能力,具有降低射频干扰的斜率控制。最多可以连接100多个节点。(如图2)   下面从硬件电路和软件设计两部分来介绍。图(2)是部分电路原理图。注意SJA1000复位端的连接,80C31是高电平复位,而SJA是低电平复位,因此在接复位信号时,将RESET和P1.7经过与门(74HC32)和非门(74HC14)与SJA1000的复位端相连。另外SJA1000的11脚MODE接高电平,选择Intel二分频模式。SJA1000的16脚是中断信号输出端,在中断允许情况下,有中断发生时,16脚出现由高电平到低电平的跳变,因此,16脚可以直接与80C31的外部中断输入端相连接。在设计单元电路时还要注意下面两点。a)在总线两端各接一个120Ω的总线阻抗匹配电阻。忽略掉它们会降低总线的抗干扰能力,甚至导致无法通信。b)SJA1000的TX1脚悬空,RX1引脚的电位必须维持在0.5VCC上,否则,将不能形成CAN协议所要求的电平逻辑。#p#分页标题#e#   报文接收条件:接收代码位(ACR.7~ACR.0)和信息识别码的高8位(ID.10~ID.3)相等,且与接收屏蔽(AMR.7~AMR.0)的相应位相或为1,则报文被接收。