查看: 774|回复: 0

[供应] 基于单片机和CAN控制器实现火灾报警控制系统的显示器设计

[复制链接]
发表于 2020-4-2 16:15:02 | 显示全部楼层 |阅读模式
1、引言
火 灾 楼 层 显 示 器作为火 灾 自 动 报 警 系 统的重要组成部分,是一种安装在楼层或独立防火区中的数字式火 灾报 警显示装置。它通过报 警总线与火 灾报 警控制器相连,处理并显示报 警总线上的数据。火 灾楼层显示器中的内置单片机将接收到的总线信息进行判断、分析和处理,将报 警的探测器地址编号转换成相应的火 警地点信息(例如房间号和房间类型等),连同火 警 类型一道通过液晶显示出来,同时发出声光报 警 信 号,通知失火区域的人员。


目前国内现有的火 灾楼层显示器大都以51单片机作为MCU。因为ROM寻址空间所限,火 灾楼层显示器大都只能显示火 警所在楼层号和地址号,无法以直观的汉字信息提示情况各异的具体火 警地点。如果将汉字信息通过总线分发到各个楼层显示器,巨大的通讯量又会给火 警系统总线带来沉重负荷,导致整个火 警系统效率低下,延误火 警上报时机。本文提出了一种基于CAN总线的大容量汉字火 灾楼层显示器,很好的解决了上述问题。


2 、火 灾 报 警系统总体功能描述
火 灾报 警控制系统中,中央火 警控制器通过CAN总线和各个单元进行实时通讯并完成各项控制和报 警功能。单元是火 灾探测器、手动报 警按钮、输入输出模块、楼层显示器等设备的总称。它们是系统终端,直接探测火 灾 信 号,并通过通道上报给控制器,同时接收由各种通道转发控制器给单元的联动信息(启动输入输出模块控制的灭火装置)、显示信息(楼层显示器显示火 灾信息)等。通道是回路模块、转接模块和总线控制盘等设备的总称。它们是控制设备和终端的通道,是拓扑网络构成的中继设备。火 灾报 警控制系统的总体结构和楼层显示器在系统的中的位置如图1所示。


11.png


3、 系统功能及硬件描述


3.1 汉字楼层显示器硬件设计方案
如图2所示,汉字楼层显示器包括单片机及其外围电路,CAN总线模块, FLASH存储器,汉字液晶模块,UART接口,以及灯和按键,蜂鸣器。单片机可通过UART接收PC上传下来的汉字信息,存储到FLASH中作为地址信息的查询数据库。通过CAN控制器MCP2510和CAN总线驱动器 PCA82C250组成的CAN通信模块和火 灾报 警控制器进行CAN总线通信。如果有火 警发生,单片机将记录火 警信息,查询FLASH得到火 警发生的汉字地址信息,并在汉字液晶上滚动显示火 警和信息查询结果。同时,发生火 警时还可通过查询键快速查询火 警信息,通过蜂鸣器报 警,通过消音键消音,并点亮发光二极管报 警。未发生火 警时,通过自检键自检可以检查各个功能是否能正常工作。


22.png


3.2 FLASH存储器电路设计
FLASH 选用的SST29SF040是SST公司推出的高速可编程闪存。它符合JEDEC标准,具有512K×8 Bits的存储结构;芯片擦除及写入的时间快,整片擦除只需70毫秒,段擦除只需18毫秒,字编程写入时间仅为14微秒;可靠性高,能够重复写100,000次,数据可以保存100年不丢失。


SST29SF040 的容量是512K Bytes,而51系列单片机的ROM直接寻址范围是64K Bytes,如果不加以处理而直接使用,将会浪费大量的存储空间。我们使用了一种分页存储方式,使得FLASH存储空间得以充分利用,大大扩充了单片机ROM寻址范围。按照每条汉字信息占用32个Bytes计算,理论上可以最大存储16384条火 警地址信息,足以应付绝大多数复杂的工程环境。图3为存储器电路,最高位地址线A16-A18接单片机的P1.0-P1.2,因而 FLASH存储器实现了8页,每页64K的外部存储结构。在每次读写FLASH时,将P1.0-P1.2赋不同的值即可实现不同的页选。假设page为待选取的页号变量(0-7),在Keil Cx51中通过下列语句即可实现读写前的选页操作:P1 = (P1 & 0xf8)


33.png


3.3汉字液晶显示模块设计
我们选用金鹏电子公司的OJM2*8A汉字液晶模块作为显示设备。OJM2*8A中文液晶显示模块内含GB 2312的15*15点阵国标一、二级简体汉字和 8*8点阵及8*16点阵ASCII字符,用户输入GB2312区位码或ASCII码即可实现文本显示。每个汉字的区位码只占用两个字节,是原来汉字点阵所需存储单元的1/16。


汉字液晶模块接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY高电平(BUSY =1)表示液晶模块忙于内部处理,不能接收 用 户 命 令;BUSY低电平(BUSY =0)表示液晶模块空闲,等待接收用户命令。发送命令到液晶模块可在BUSY =0后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ信 号(REQ =1)通知液晶模块处理当前数据线上的命令或数据。液晶模块在收到外部REQ高电平信 号后立即读取数据线上的命令或数据,同时将应答线BUSY 变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理。此时用户对模块的写操作已经完成,用户可以撤消数据线上的信 号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY=0 ?),如果BUSY=0,表明模块对用户的写操作已经执行完毕,可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节。模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长。对液晶模块写汉字时序图如图4所示。


44.png


3.4 CAN总线通讯模块设计
我们选择Microchip公司的MCP2510CAN控制器和Philips公司的PCA82C250CAN收发器构建CAN总线通讯模块。 MCP2510支持CAN2.0A/B协议,可接收和发送2.0协议下的标准帧、扩展帧和远程帧。MCP2510拥有三个发送缓冲区和两个接收缓冲区,可以进行接收滤波和消息管理,防止过度发送和过度接收形成拥塞。其最大的优点是拥有传输速率可达5Mb/S的SPI端口,节省MCU端口,提高通信速度。 Philips公司的82C250CAN总线收发器可与MPC2510无缝连接,它有高速模式,斜率控制模式和延时模式。经过多次的实验证实其工作在斜率控制模式下最为稳定,速度也能构满足系统10Kbps的传输速率。


CAN 总线通讯模块电路如图5所示,单片机通过I/O口直接和MCP2510的SPI口相连,用软件模拟实现SPI接口协议。PCA82C250作为 MCP2510与物理CAN总线的接口。如果需要进一步提高系统的抗干扰能力,可在MCP2510和PCA82C250之间加一个光电隔离器。


4 、系统软件设计
汉字楼层显示器软件功能主要是1.将串口发送下来的汉字信息文件写入FLASH存储。2.和火 灾报 警控制器进行CAN通信,如果发现有火 警信息,则查找FLASH中的汉字地址信息,予以显示在汉字液晶上报 警,如有多条火 警信息,则滚动显示各条信息。


55.png


图 5是汉字楼层显示器软件流程图。用page(值为0-7)表示读写的FLASH页,用count(值为0-65535)表示每页页内地址。其中 page0-page6用来存储通过串口下载的汉字信息,page7用来存储接收到的火 警等动态信息。一旦接收到新火 警,即查询FLASH中相应的汉字信息,并在液晶上滚动显示。


为了快速定位所查询的火 警汉字地址信息,我们采用数组结构存储。尽管这样会因为实际火 警地址不等长,而造成存储中出现一些空地址,存储效率不高,但是由于我们对数组的查找是一种可以直接定位的快速查找,不用采用链表之类的复杂数据结构,也避免了二分检索之类复杂的搜索算法。对于单片机而言,实质上是以比较小的空间为代价换来了比较高的时间效率,还是十分值得的。


5、 结语
本文提出的基于CAN总线的大容量汉字火 灾楼层显示器,较好的解决了现有火 灾楼层显示器的缺陷。对大于51单片机ROM 64K寻址空间的数据存储需求,采取分页存储的访问方式可以很好的解决这个问题。通过在FLASH中存储大容量数据信息,可以避免因为CAN总线上通讯数据流量过大而导致火 警不能及时传达,延误报 警时机。而且FLASH中的汉字信息可以通过串口在线擦写,便于现场调试。目前产品已经投入实用,用户反应运行良好。




图片1.png

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表