关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于CAN总线的大容量汉字火灾楼层显示器设计

基于CAN总线的大容量汉字火灾楼层显示器设计

作者: 时间:2010-11-25 来源:网络 收藏

  模块接口协议为请求/应答(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所示。

对液晶模块写汉字时序图
图4 对液晶模块写汉字时序图

  3.4 通讯模块设计

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

CAN总线通信电路
图5 CAN总线通信电路

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

4 系统软件设计

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

汉字楼层显示器软件流程图

图6 汉字软件流程图

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

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

5 结语

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

参考文献

  [1] 朱明,王殊.一种基于CAN总线的大型系统下位网络的设计与实现. 消防技术与产品信息,2003,(12):5~8

  [2] 王立峰,王晓平,耿庆波,彭熙伟. 基于CAN总线的客房通信控制器的设计.微计算机信息,2005,(16):3~7

  [3] 徐爱钧,彭秀华编著. Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践. 电子工业出版社,2004


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭