基于SPI总线技术的无线消防信号转换模块设计
2022-07-08韩成浩
吕 璐,韩成浩
(吉林建筑大学,吉林 长春 130118)
针对目前无线消防系统实现消防设备联动的问题中,如何使无线消防指令转为有线信号从而控制消防设备稳定启动是急需解决的重中之重。无线消防系统以ZigBee技术为基础组成庞大的无线消防报警网络,但无线信号只能在ZigBee网络中进行传输,无法启动消防设备。本文设计了基于SPI总线技术的无线信号转换模块,以实现将无线指令转为有线信号启动消防设备。相较于常用的IIC和UART等通信方式,SPI具有配置简单,数据传输灵活且高速传输等众多种优势。
1 转换模块方案设计
1.1 转换模块构成
本模块主要由CC2530、C8051F040等单片机组成。模块结构图如图1所示,其中上位机负责将消防指令通过串口传送至CC2530;CC2530负责组建ZigBee网络并传输无线消防指令;C8051F040负责通过SPI技术将接收到的指令转为有线信号,从而控制消防设备的稳定启动,并将启动结果反馈至上位机。
图1 转换模块构成
1.2 SPI总线技术
SPI总线是全双工高速同步串行接口,其速率比异步通信效率高约20%~30%[1]。相比较于IIC和UART数据包限制特定位数的数据传输方式,SPI最显著的优势在于可以实现无中断的数据传输。与IIC相比,SPI从机不需要唯一地址;与UART相比,SPI从机可使用主机时钟,不需要精密的晶振;与CAN总线相比,不需要借助收发器即可实现总线上数据传输。SPI通信最少只需要3根线,节约芯片管脚[2]。基于以上优势,目前越来越多的芯片集成了这种通信协议。
SPI通信原理简单,以主从方式工作。通过片选确定通信从机。主机通过控制时钟信号线提供的脉冲从而同步主机与从机之间的数据传输,对通信有绝对的控制权。工作方式一般需根据从机方式进行设置。
2 转换模块硬件设计
转换模块需要支持无线通信功能,因此本文选用CC2530作为无线通信网络的核心芯片。CC2530结合了领先的RF收发器的优良性能和德州仪器的ZigBee协议栈,通过不同的运行模式,满足了超低功耗的要求,常用与家庭自动化、工业控制和监控等方面[3]。但CC2530计算和处理数据的能力有限,本文选用C8051F040单片机配合CC2530共同协作以实现更多功能。C8051F系列单片机采用CIP-51内核,具有强大的计算能力[4],其包含256个SFR页,通过设置SFR页,即可配置单片机和控制片上外设功能,内部含有JTAG接口,可实现程序下载和调试。
CC2530和C8051F040单片机通过SPI总线进行数据传输。CC2530在ZigBee网络中接收到的无线指令数据通过SPI技术传输至C8051F040中,从而控制有线的消防设备稳定启动。需注意与串口通信不同,SPI通信在接线时需按照同名引脚接线,转换模块硬件连接如图2所示。
图2 硬件连接图
3 转换模块软件设计
本模块包括CC2530程序设计、C8051F040程序设计、上位机程序设计三部分。
3.1 CC2530程序设计
通过CC2530可组建ZigBee无线网络,其中包括协调器、路由器和终端节点三部分。协调器负责通过串口接收上位机的消防指令并无线发送至路由器节点、终端节点等。当ZigBee网络中的终端节点收到无线消防指令时,将收到的指令通过SPI技术传送至C8051F040单片机。
对于CC2530,有两个串行通信接口,可分别运行于异步UART模式和同步SPI模式。本文将SPI通信设置在P1端口的位置2,根据外设I/O引脚映射,配置SPI通信引脚分别为SSN:P1.4、SCK:P1.5、MOSI:P1.6、MISO:P1.7。配置CC2530为SPI通信主模式,采用4线制SPI0工作模式,波特率为115200,高位字节先传送。
CC2530中SPI主模式的字节传送以寄存器U1BUF写入字节为开始。U1GCR.ACTIVE为变高代表传送开始,变低代表传送结束。当传送结束时,U1CSR.TX_BYTE位置1。在进行软件编程时注意以片选引脚从高到低电平的跳变为信号代表选中相应从机设备。CC2530的程序设计流程如图3所示。
图3 CC2530程序流程图
3.2 C8051F040程序设计
由于CC2530计算能力有限,因此配备计算能力更强的C8051F040来处理大量的数据,并执行相应的消防设备启动。
通过设置交叉开关,将C8051F040的SPI通信引脚设置为:NSS:P0.3、SCK:P0.0、MOSI:P0.2、MISO:P0.1。配置C8051F040为4线制从机模式,采用与主机相同的SPI0工作模式。因SPI通信中由主机设置波特率,因此在配置从机C8051F040时无需设置通信波特率。
对于C8051F040,在从模式中接收到的字节将会被传送到接收缓冲器中,然后通过读取SPI0DAT来读取主机发来的数据,从而触发中断进行动作。C8051F040程序设计流程如图4所示。
图4 C8051F040程序流程图
3.3 上位机程序设计
通过上位机,对环境温度进行监测,当超过设定的温度阈值时报警,由消防控制中心的工作人员控制启动消防设备。启动命令通过串口发送给CC2530协调器,从而进行消防报警信号无线传输。上位机LabVIEW程序设计流程如图5所示。
图5 LabVIEW程序流程图
上位机采用LabVIEW进行程序设计,LabVIEW是一种采用图形化的编程语言开发环境的标准的数据采集和仪器控制软件。
4 结语
如图6所示,红色为高温极限,绿色为低温极限,白色为实时温度。当监测到温度超过阈值时,报警灯亮,提醒消防人员。消防人员通过发送区发送消防指令,通过ZigBee网络无线传输,通过SPI技术转为有线指令传至C8051F040,控制不同的消防设备稳定启动。
图6 上位机工作界面
在火灾发生时,消防设备的稳定启动为人们的生命财产安全提供最重要的保障。本文设计的基于SPI总线技术的无线消防控制系统转换模块,实现了在无线消防控制系统中将无线信号转换为有线方式控制消防设备稳定启动,为安全生活保驾护航。采用SPI总线作为单片机之间的通信方式,不仅节约了有限的串口资源,更提高了传输效率,且操作灵活简单。该模块还可适用于无线控制、智能家居、边缘计算等多个领域,具有一定的实用价值和意义。