当前位置:首页 > 工业控制 > 工业控制
[导读]提出了一种基于CAN总线的集散型火灾报警控制系统的设计方案,系统以AT89C51单片机为节点控制器,MCP2510为总线控制器,MCP2551为总线收发器。文章主要介绍了AT89C51与MCP2510的SPI接口实现方法,以及MCP2510的初始化方法。

随着经济建设的发展,社会对火灾报警控制系统的规模的要求越来越大,为了适应市场的需要,笔者利用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的接口技术。


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

  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个字节数据,用来表示区域机的逻辑地址码,其余数据用来表示故障、报警的探测器号和设备号,或区域机配置。

    表1:集中机发送的报文帧 


    表2:区域机发送的报文帧

  表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总线的集散型火灾报警控制系统具有较高的安全性、可靠性和实时性,可用于各种场合的火灾报警控制。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在现代流程工业生产中,生产工艺相关的运行参数,如温度、液位、压力、流量等,都是采用仪表进行测量检测,并根据仪表的测量结果通过控制阀门、泵等执行机构使这些工艺运行参数处于要求的范围内以满足工艺生产的需要。目前,在先进的工厂...

关键字: 故障树 控制系统

减少振动和能量,阻尼器的主要作用是减少振动和能量。阻尼器通过提供运动的阻力,耗减运动能量,从而帮助控制系统或机械部件的振动。

关键字: 阻尼器 控制系统 机械部件

随着科技的不断进步,传感器技术在工业、农业、医疗、环保等领域的应用越来越广泛。BF350传感器作为一种高精度、高稳定性的传感器,被广泛应用于各种测量和控制系统中。本文将详细介绍BF350传感器的使用方法,帮助读者更好地理...

关键字: 传感器 BF350 控制系统

功率电子开关是现代电力电子技术的核心组件之一,广泛应用于各种电力转换和控制系统中。本文将对功率电子开关的作用、分类、工作原理、应用领域以及发展趋势进行详细的探讨,旨在让读者深入了解功率电子开关的重要性和应用价值。

关键字: 功率电子开关 电力转换 控制系统

误差放大器是电子测量和控制系统中不可或缺的一部分,它负责将实际测量值与期望值之间的误差进行放大,以驱动后续电路或系统对误差进行补偿或调整。本文将对误差放大器的工作原理、组成结构、特点以及应用进行详细的探讨,旨在帮助读者更...

关键字: 误差放大器 电子测量 控制系统

今天,小编将在这篇文章中为大家带来工业控制系统的有关报道,通过阅读这篇文章,大家可以对工业控制系统具备清晰的认识,主要内容如下。

关键字: 工业控制系统 控制系统

在这篇文章中,小编将对工业控制系统的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: 控制系统 工业控制系统

在下述的内容中,小编将会对工业控制系统的相关消息予以报道,如果工业控制系统是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 工业控制系统 控制系统

随着工业自动化技术的不断发展,工业自动化控制系统在工业生产中发挥着越来越重要的作用。工业自动化控制系统通过自动化技术实现生产过程的智能化、高效化和精细化,提高了生产效率、降低了生产成本、提升了产品质量。本文将详细探讨工业...

关键字: 工业自动化 控制系统 智能化

电力通信网是为了保证电力系统的安全稳定运行而应运而生的。它同电力系统的继电保护及安全稳定控制系统、调度自动化系统被人们合称为电力系统安全稳定运行的三大支柱。

关键字: 电力系统 通信网 控制系统
关闭
关闭