关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 一种基于CAN总线的集散型火灾报警控制系统

一种基于CAN总线的集散型火灾报警控制系统

作者:时间:2009-08-18来源:网络收藏
随着经济建设的发展,社会对的规模的要求越来越大,为了适应市场的需要,笔者利用现场技术,设计出了一种,该系统结构灵活、使用方便,可满足大、中、小各种规模的及消防控制的要求。(ControllerAreaNetwork)即控制器区域网――一种有效的支持分布式控制和实时控制的串行通讯网络,由于其高性能、高可靠行,及独特的设计,越来越受到人们的重视,其规范已被ISO国际标准化组织制定为国际标准,并被公认为是最有前途的现场之一。本文主要介绍由MCP2510与MCP2551组成的现场总线的在型火灾报警中的应用。

1、系统组成与工作原理概述

本文引用地址:http://www.eepw.com.cn/article/163638.htm

  本文提出的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的接口技术。


图2节点进行CAN通信的硬件接口电路

  MCP2510面向单片机有1个高速SPI接口(5Mhz),该接口由片选控制输入CS、移位脉冲输入SCK、串行数据输入SI和输出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。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭