提出采用两级环形总线网络拓扑、主从通信方式的消防指示灯智能监控系统。设计了用电池提供应急电源的通信网关的总体结构。采用单片机自带的双串口构成两个独立光电隔离的RS-485 接口作为下级环形总线主站,实现与智能应急标志灯之间交换数据。利用单片机的SPI 接口功能和另一个单片机扩展第三个独立的光电隔离RS-485 接口,作为上级环形总线网络的从站, 实现与监控主机之间状态和命令信息交换。
串口扩展电路
串口扩展的方式:一种是硬件的扩展方式。使用市面上对串口进行扩展的芯片,有SP2338DP,GM8123 系列。第二是软件模拟法。可根据串行通信的传送格式, 利用定时器和主机的I/O 口来模拟串行通信的时序, 以达到扩展串口的目的。接收过程中需要检测起始位, 这可以使用查询方式或中断方式进行处理。接收和发送过程中, 对定时的处理既可以使用查询方式也可以使用定时器中断方式。而这种方法需要占用大量的CPU 时间, 只能用于功能简单的应用中, 并不适合中继网关这类功能复杂的设备。本设计使用STC12 单片机的同步串行口(SPI) 和另一个带有串口的单片机STC11F04E( 以下简称为STC11) 来扩展串口。其中TX、RX 分别是串口的数据发送信号和数据接收引脚。RE 用于控制MAX485 的接收或发送状态。
电路原理:图中下部分给出了光电隔离型RS-485 接口原理。3 个RS-485 接口使用相同的原理, 但3 个接口中MAX485芯片的工作电源是各自独立的。SCK、MISO、MOSI 分别是SPI 接口的时钟信号、主站输入信号、主站输出信号。定义STC12 的SPI 接口工作在从站方式,STC11 作为SPI 主站。由于STC11 单片机没有SPI 功能, 必须用软件模拟SPI 主站功能, 这里仅将STC11 作为字节数据传输的中转站, 不进行信息帧的校验、存储和转换。监控计算机发出指令经STC11 的串口接收, 通过SPI 发送至STC12 进行处理。STC11 再通过SPI 接收返回信息, 然后通过串口发送至监控计算机。设计中,STC12 通过在SPI_TX 引脚的输出下降沿,告知STC11 启动模拟SPI 主站功能, 从STC12 的SPI 接口寄存器中读取一个字节数据。