随着经济建设的发展,社会对火灾报警控制系统的规模的要求越来越大,为了适应市场的需要,笔者利用can现场总线技术,设计出了一种集散型火灾报警控制系统,该系统结构灵活、使用方便,可满足大、中、小各种规模的火灾报警及消防控制的要求。can(controller area network)即控制器区域网——一种有效的支持分布式控制和实时控制的串行通讯网络,由于其高性能、高可靠行,及独特的设计,越来越受到人们的重视,其总线规范已被iso国际标准化组织制定为国际标准,并被公认为是最有前途的现场总线之一。本文主要介绍由mcp2510与mcp2551组成的can现场总线的在集散型火灾报警控制系统中的应用。
1、系统组成与工作原理概述
本文提出的基于can现场总线的集散型火灾报警控制系统的网络结构如图1所示,每个节点都以at89c51单片机为节点控制器,mcp2510为总线控制器,mcp2551为总线收发器,其中,与控制台工作站相连接的节点被称为集中机,其余为区域机。在集中机中,所谓控制台工作站,就是一台pc机,单片机通过外部串行接口与控制台工作站交换信息。各个区域机分布在不同的地理位置上,独立地执行一个完整的任务。在本文系统中,一个区域机通过一种专门设计的探测器总线可以连接感烟、感光、感温等各种火警探测器,还可以借助适配器控制诸如喷水阀、卷帘门等各种消防设备以及各种声光报警设备,探测器总线上的设备通称为前端设备。利用can通信技术将区域机联网,管理人员在集中机上就可以观察各个部分的情况,便于管理和检测,随时可以了解到各区域机运行的是否正常,有无报警发生,也可以使各个区域机通过信息交互,实现资源共享,联防控制。每个区域机都是一个独立的基本报警控制单元,其功能与单独使用时的情况完全一样,它们从本区域机的探测器上采集数据,如有警情出现,在启动本区的有关消防设备的同时,通过can总线将报警信号传送给集中机,集中机再决定需要起动的由其它区域机管辖的有关消防设备,并通过can总线发出联动命令。另外,由于can总线是基于报文的,总线上的节点可以做到即插即用,因而系统的可扩展性比较好;并且,增删can总线上除集中机以外的任何一个节点,不会对其它的节点造成任何影响。
图1中的mcp2510是microchip公司为简化can总线的接口应用而专门设计的一种独立can控制器芯片,支持 can协议2.0a/2.0b,最大可编程波特率为1mbps;mcp2551是microchip公司生产的可容错的高速can总线收发器芯片,支持1mbps的运行速率,可连接高达112个节点,适合12v和24v系统,管脚特性与mcp2510完全兼容。
2 、硬件电路与spi接口技术
图2是本文系统节点进行can通信的硬件电路图
在原理图中,总线控制器mcp2510与总线收发器mcp2551直接相连,因为它们的管脚是完全兼容的,另外,考虑到系统总线速率比较低,所以使mcp2551的斜率电阻输入引脚rs悬空,选择最小斜率,这样,既可将rfi抑制到最小,又可简化线路设计。下面重点说明一下mcp2510与at89c51的接口技术。
采用单片机和mcp2510、mcp2551芯片设计集散型火灾报警控制系统图2 节点进行can通信的硬件接口电路
采用单片机和mcp2510、mcp2551芯片设计集散型火灾报警控制系统mcp2510面向单片机有1个高速spi接口(5mhz),该接口由片选控制输入cs、移位脉冲输入sck、串行数据输入s i和输出so等4个引脚组成。at89c51不具备标准的spi接口,但是,可以利用uart接口与spi接口通信。图3为at89c51的uart接口工作在方式0,即移位寄存器方式时的工作时序图。at89c51的uart有4种工作方式,按方式0工作时,串行数据从rxd输入或输出,txd输出移位脉冲,每次发送或接收8位数据,波特率固定为时钟频率的1/12,即1个位周期对应1个机器周期,1个机器周期由12个时钟周期组成,等分为6个状态(s1~s6),每个状态又等分为2个相位p1、p2,因此1个机器周期的12个时钟周期可记为s1p1、s1p2、s2p1、……、s6p2。txd输出的移位脉冲在每个机器周期的s3、s4和s5期间为低电平,而在其余时间为高电平。发送时,每个机器周期的s6p2输出数据,数据有效时间完全覆盖了txd输出脉冲的负半周,显然,无论是在txd的上升沿,还是下降沿,外设都可从rxd输入有效数据。接收时,每个机器周期的s5p2输入数据,显然,外设如果在txd的下降沿输出数据,单片机就可接收到有效数据。因为mcp2510的spi接口是在sck的上升沿输入数据,在sck的下降沿输出数据,所以,在电路图中,可以将txd直接作为sck的输入信号。mcp2510的spi接口在读过程中,首先接收单片机发出的读命令和地址,这时,输出信号线so处于高祖态,之后,在输出数据时,输入信号线si的状态可为任意值。而在写过程中,so始终处于高阻态。一个写过程或读过程的启动或结束,都是由片选信号cs控制的。根据spi接口的这一工作机理,在电路图中,将mcp2510的si和so连接在一起,形成一个双向信号线,再与at89c51的准双向数据线rxd连接在一起,实验结果证明,mcp2510与at89c51的这种连接方式是完全正确的。因为在单片机应用领域,51系列单片机一直是主流产品,所以将其应用于can总线系统,无疑可以降低成本,缩短开发周期。
为了实现与mcp2510的spi接口交互,单片机的uart接口选择方式0,采用12mhz晶振作为单片机的时钟频率,在方式0下,波特率固定为1mbps。在图2所示的硬件电路的支持下,at89c51就可按照普通移位寄存器的方式与mcp2510进行数据交互,对mcp2510进行写操作和读操作的汇编语言子程序从略。值得指出的是,因为spi传输数据的顺序是先高位后低位,与uart传输数据的顺序相反,因此,编写单片机与mcp2510的接口程序时,对mcp2510的控制字、状态字以及寄存器地址,要进行二进制到排处理。例如,mcp2510的接收缓冲寄存器rxb0的首地址是01010110b,单片机读其中的内容时,写入单片机的串口缓冲寄存器sbuf的地址值应该是01101010b。
3 、mcp2510初始化
mcp2510的初始化包括设定可编程引脚功能、总线波特率以及接收过滤器与屏蔽器,以下主要介绍总线波特率以及接收过滤器与屏蔽器的初始化。
3.1 波特率初始化
mcp2510内含的波特率发生器由可编程预分频器、固定2分频器和位定时器级连而成,它使设计者可以方便地选择所需要的任何波特率。在位定时器中,mcp2510将一个位周期依次分割为同步段、传播段、相位缓冲段1和相位缓冲段2等4个时间段,每个时间段的长度都是输入信号周期tq的整数倍,其中同步段固定为1tq,其余3个时间段的长度都是可编程的。所谓波特率初始化,就是设置可编程预分频器和位定时器各可编程时间段的值,使其满足波特率的需要。
根据can技术协议,波特率为1mbps时,通信距离为40m,波特率为5kbps时,通信距离最远可以达到10km。考虑到本文系统既可用作一个高层楼宇的火灾报警控制网络,又可用作一个单位内部多个仓库、车间等的火灾报警控制网络,所以通信距离应该在数千米以上,而所要传输的数据量不大,故可以选择较低的波特率。在实际应用中,笔者选择波特率为8kbps。
本文系统选择12mhz晶体振荡器为mcp2510提供时钟信号。根据位定时器中各个时间段的长度必须满足的约束条件,初始化传播段寄存器prseg=3,相位缓冲段1寄存器phseg1=4,相位缓冲段2寄存器phseg2=4;然后初始化预分频器brp=49。从而可得总分频系数为(49+1)×2×[1+(3+1)+(4+1)+(4+1)]=1500,最终获得8kbps的波特率。
3.2 过滤器与屏蔽器初始化
mcp2510具有完善的总线争用功能,可用于分布式系统,但是,在火灾报警控制系统中,因为集中机担负着对区域机的监管任务,所以本文系统采用了集中-分散控制方式,集中机不断地巡回查询区域机,在工作台上随时反映区域机工作的情况,为工作人员提供维护设备的依据。
mcp2510支持标准帧、扩展帧和远程帧,数据段长度为0-8个字节。器件对can总线上的数据接收是通过2个接收缓冲器、6个接收过滤器和2个接收屏蔽器的组合来实现的。can总线上的帧只有至少满足一个接收过滤器的条件才可被接收。为了说明过滤器与屏蔽器的初始化方法,这里首先介绍报文帧。本文系统只使用标准数据帧进行数据传输。标准数据帧的长度为44+8n位,其中11位id段在本文系统中被分为两部分,高7位用来表示区域机的逻辑地址码,整个系统允许接入的区域机最多为50个,低4位用来表示报文类型码。集中机发送的报文帧如表1所示,区域机发送的报文帧如表2所示。8n位数据段可有可无,在表1中,只有选呼联动报文含有数据段,表示请求联动的设备号,在表2中,只有请求点名报文不含数据段,其余报文必须至少含有1个字节数据,用来表示区域机的逻辑地址码,其余数据用来表示故障、报警的探测器号和设备号,或区域机配置。
采用单片机和mcp2510、mcp2551芯片设计集散型火灾报警控制系统表1中的xx xxxx表示集中机要访问的区域机的逻辑地址码。表1的报文是发送给区域机的,表2的报文是发送给集中机的,报文能否被接收,要由mcp2510的过滤器来决定,因此,初始化时,集中机按从上到下的顺序将表2中的数据依次写入mcp2510的过滤器rxf1~rxf5,区域机在用本机的逻辑地址码代替表1中的xx xxxx之后,也按从上到下的顺序将表1中的数据依次写入mcp2510的过滤器rxf1~rxf5,未曾用到的过滤器rxf0被设置为全“1”,使其不接收总线上的任何有效报文。初始化时,在区域机方面,将2个接收屏蔽器都设置为全“1”,在集中机方面,将接收屏蔽器rxm1设置为全“1”,而将rxm0设置为101 1011 1010b,表示除集中机的过滤器rxf1的sid9、sid6、sid2和sid0等4位外,过滤器的其余所有位都参与信息过滤,这是因为上述4位与请求点名帧的id码在跳变位置上的隐性位相对应,而请求点名帧容许多个区域机同时发送,从而由传输延迟引起的码间串扰,很可能使这些位的状态不确定。
4 、通信过程简介
集散型火灾报警控制系统的通信过程,也就是集中机对区域机循环进行的点名和查询过程。在点名阶段,集中机发送广播点名帧,区域机以请求点名帧响应,若接收到未被登录的区域机发出的请求点名帧,集中机进行选呼点名,区域机以配置帧响应;在查询阶段,集中机反复判断有无自检请求,若有自检请求,则对区域机逐个选呼自检,区域机以配置帧响应,自检结束,继续选呼查询,区域机以正常帧、或故障帧,或报警帧响应,在查询中若接收到报警信号,再根据需要发送选呼联动帧,区域机以正常帧确认。
5 、结束语
实验结果表明,因为mcp2510具有完善的现场总线管理机制和面向单片机的spi接口,一方面简化了系统的软、硬件设计,另一方面使节点控制器摆脱了对网络通信的频繁干预,从而大大提高了系统的整体性能,与采用rs232等其它串行通信技术的集散型系统相比较,本文提出的基于can总线的集散型火灾报警控制系统具有较高的安全性、可靠性和实时性,可用于各种场合的火灾报警控制。
为篮球而生:红旗胜利科技发布HIPLAY智能手环
坚果pro、小米5c对比评测:当情怀遇到黑科技,坚果Pro与小米5C会擦出怎样的火花!
有方5G亮相天翼智能生态博览会 成功入库中国电信
光敏电阻原理
RT-Thread杰出贡献者最年轻的才19岁
基于CAN现场总线的集散型火灾报警控制系统设计
不拿出口袋就能玩iPhone的牛仔裤
谷歌正式发布其AR导航功能——但目前仅限于Pixel手机
屋顶太阳能发电有望推动欧盟向低碳能源体系转型
西门子发布2020+计划,将推动公司加速转型,进一步巩固自身优势地位
Google删除Chrome清理工具
2015年中国机器视觉产业市场规模22亿元(约3.5亿美元)
安防行业迎来变革新机遇 为社会治理体系建设提供技术支撑
爆发!中兴首发骁龙835+5G网络概念手机
《2018抖音大数据报告》见证国民娱乐短视频APP诞生
华为麒麟A1处理器将在印度正式发布
名额有限| 7月26日,SIA汽车电子专委会走进广汽埃安
工控自动化的十种相关知识
谷歌在Android中加入新的API,推动5G功能的实现和普及
荣耀20PRO上手 一切为了拍照