APP下载

基于STM32的实验室监控系统设计

2019-06-06王珍凤

关键词:监控器调用时序

陶 沙,王珍凤,向 前,杨 路

(1.铜陵学院 电气工程学院,安徽 铜陵 244000;2.安徽公安职业学院 信息网络安全监察系,安徽 合肥 230031)

实验是高等教育的必要环节,是提升学生实践能力、创新能力和综合素质的有效手段之一[1]。Rockwell-HOTS实验室是铜陵学院与罗克韦尔公司共建,基于CCW等专用软件实现对变频器、PLC等工控设备控制功能。该实验室投资巨大,但却没有配套相应的监控设备监控实验室的实时情况,一旦发生意外事件将会遭受巨大损失。鉴于此,针对上述不足,本文基于嵌入式技术[2-4],以STM32F103VET6为核心设计监控器实时采样实验室的环境信息,借助无线网络[5-6]将实时信息传输给服务器,管理人员借助服务器端运行的Lab-VIEW监控程序了解实时情况。为后续多终端实验室监控系统设计提供了基础,降低了维护成本,在实验室管理和经济等方面都具有重要意义。

1 系统结构

图1 Rockwell-HOTS实验系统图

Rockwell-HOTS实验室系统结构如图1,包括20套HOTS设备,每套设备包括:工控机、PLC、变频器等。基于工业4.0理念,整合了工业自动化中的顺序控制、过程控制、传动控制等控制需求。针对系统监控的需求,融合嵌入式技术、无线网络技术等设计Rockwell-HOTS监控器。硬件结构如图2,主要硬件资源包括:(1)环境信息采样电路;(2)模拟量隔离电路;(3)供电电路;(4)无线网络电路;(5)摄像头电路;(6)液晶显示电路等。监控器由信息处理模块和供电模块组成。处理模块包括传感器电路、信号调理电路、模拟隔离电路、微处理器及周边电路、液晶显示电路和无线网卡电路等。无线网卡电路在核心处理器STM32F103VET6的控制下进行数据传输,液晶显示面板可以就地显示实验系统的环境信息。

2 系统设计

2.1 上位机设计

服务器端的上位机监控程序采用Lab-VIEW[7-9]实现。基于LabVIEW的监控程序功能结构如图3,主要功能包括:(1)数据通信。服务器与监控器之间通过无线网络进行信息的传输,监控器端将采样的实验室环境信息与图像信息传输给服务器。(2)数据显示。服务器端运行数据库程序存储实验室环境信息数据,基于LabVIEW的监控程序从数据库读取数据并显示提供给管理人员观察。(3)安全报警。对采样数据进行分析,判断是否超越阈值,如果超过则触发灯光警报。

2.1.1 数据库存储

应用数据库存储实验室环境信息,考虑到监控数据量的规模不大,也没有并发等操作的需求,采用SQLite[10-12]实现数据的存储管理。服务器端通过无线网络接收环境传感器的采样数据并存储到数据库中,图4所示流程如下:

图2 监控器硬件结构图

图3 监控程序功能组成

(a)import sqlite3 conn=sqlite3.connect('数据库名称.db')用于连接数据库;

(b)c=conn.cursor()c.execute('''CREATE TABLE表名);''')conn.commit()用于创建表;

(c)import socket host='127.0.0.1'port=8080 web=socket.socket()web.bind((host,port))web.listen(最多连接数)conn,addr=web.accept()data=conn.recv(接收字节数)进行网络监听接收来自监控器的采样数据;

(d)调用execute(insert into表)将接收的数据存储到数据库中。

2.1.2 LabVIEW读取数据

LabVIEW自身并没有提供数据库访问功能,需要第三方的应用支持实现,本文采用调用Sqlite3提供的sqlite3.dll文件封装的VI函数操作数据库,如图4。sqlite3_open.vi调用sqlite3_open函数打开数据库文件;sqlite3_prepare.vi调用sqlite3_prepare_v2函数声明要执行的SQL读取操作;sqlite3_step.vi调用了sqlite3_step函数执行声明的SQL语句;sqlite3_finalize.vi调用sqlite3_finalize函数销毁SQL声明;sqlite3_close.vi调用sqlite3_close_v2函数关闭数据库。

图4 LabVIEW对SQLite操作流程

2.2 下位机设计

2.2.1 温湿度采样

DHT11[13-14]上电工作后,存在一个不稳定状态,要等待1 s时间,在此期间不需要发送任何的指令。DHT11与STM32之间的通信采用单总线方式,一次通信用时约4 ms,数据总共40 b,包括8 b的湿度整数数据、8 b的湿度小数数据、8 b的温度整数数据、8 b的温度小数数据和8 b的校验位。当校验和=8 b的湿度整数数据+8 b的湿度小数数据+8 b的温度整数数据+8 b的温度小数数据结果的末8 b,说明传输正确。

调用SysTick_Init()、USART1_Config()和DHT11_GPIO_Config()初始化定时器、串口和DHT11的GPIO口。之后调用Read_DHT11函数读取DHT11数据,定义了温湿度结构体变量DHT11_Data_TypeDef保存读取的数据,流程如图5。正确读取的数据保存在变量中并返回SUCCESS,显示实时数值,反之打印读取失败。

2.2.2 液晶显示驱动

图5 温湿度采样流程

本文选择3.2寸液晶屏,使用ILI9341[15-16]控制液晶屏、XPT2046控制触摸屏,液晶控制器与MCU通信一般采用8080或6800接口,实际应用当中SPI接口也可以。ILI9341通过8080时序与MCU的IO口进行通信,但效率较低,我们采用FSMC模拟8080时序。FSMC是静态存储控制器,使用它的NOR/PSRAM模式控制LCD,根据STM32的寻址空间映射,地址 0x60000000~0x6FFFFFFF分配给NOR FLASH类的可寻址器件。FSMC写NOR时序与8080接口时序十分相似,区别仅在FSMC的地址信号A[25:0]和8080的数据/命令选择信号D/CX上。在设计时把FSMC的A0地址线连接8080的D/CX,当A0=1,D[15:0]的信号被理解为数值;当 A0=0,D[15:0]的信号被理解为命令。

驱动执行流程如下:(1)外设的初始化,包括STM32的 FSMC、SPI等,XPT2046、ILI9341等控制器的接口初始化;(2)触摸屏校准,匹配液晶屏坐标;(3)初始化触摸板应用程序,能够正常响应触摸屏信号;(4)进入大循环,检测触摸按下标志位,判定是否按下触摸屏,当检测到触摸信号时触发STM32中断,标志位置1;(5)检测到触摸信号,读XPT2046寄存器获得触点坐标电压,转换成LCD的X与Y坐标;(6)在LCD液晶屏坐标位置显示对应颜色;(7)循环捕捉触摸点并画点,实现功能。

2.2.3 摄像头驱动

选择OV7670[17-20]摄像头设备,其采用的FIFO是容量为384 kB的AL422B,我们的监控分辨率在240*320,用RGB565表示每个像素点,那么每个像素占用2 B,每一幅图像占用240*320*2 B=153 600 B,而AL422空间是384 kB,满足监控需求。OV7670实际输出图像时,不是标准VGA时序,可以选择使用QVGA、CIF等时序,其中QVGA是VGA的四分之一,与3.2寸显示屏像素匹配,所以选用QVGA时序。基本思想:OV6770产生场中断信号并传送给STM32,STM32接收到场中断信号后拉高WEN的引脚电平,接着FIFO就会存入图像的数据。当STM32再次接收到场中断信号时,表明FIFO已经接收完图像数据,关闭场中断,拉低WEN引脚电平,避免FIFO继续接收OV7670的图像数据并进行读取操作。数据送到内存缓冲区后做后续处理。应用完成后,开启场中断,当再次捕捉到场中断时,拉高WEN电平,摄像头数据存入FIFO,STM32继续读取数据并应用,如此循环往复。

图6 摄像头驱动流程

图7 基于LabVIEW的监控界面

驱动流程如图6所示,SCCB是由OV定义的3线串行摄像头控制总线,可以控制大部分OV系列图像传感器,类似IIC。STM32是没有SCCB接口的,这里采用GPIO引脚来模拟SCCB时序,SCCB_GPIO_Configuration()函数初始化GPIO引脚。OV7670初始化完成后,采集的图像保存到FIFO,只需检测摄像头模块的VSYNC引脚输出信号,然后从FIFO读取图像数据即可。VSYNC引脚出现两次上升沿才表明FIFO保存了一副图像,所以定义了标志位变量OV7670_VSYNC,初始值为0,检测到第一次上升沿,设为1,检测到第二次上升沿,设为2且禁止写入FIFO。当OV7670_VSYNC=2,STM32读取FIFO是数据并显示,完成后将标志位复位。

基于LabVIEW的监控显示终端如图7所示,报警指示包括烟雾、CO2、火焰等,正常情况显示白色,超过界限值显示红色。

3 小结

基于嵌入式技术,以STM32F103VET6为核心设计了监控器,基于LabVIEW在服务器端设计了监控程序,通过无线网络把监控器端的数据传输给服务器,管理人员通过监控程序了解实验室的情况。实验表明监控器抗干扰性较好,能按照要求实时监控,性能稳定,达到预期目标。

猜你喜欢

监控器调用时序
清明
关于MK10 型下滑仪近场监控参数超标的故障检修
基于不同建设时序的地铁互联互通方案分析
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于FPGA 的时序信号光纤传输系统
一种自动监控系统的输液监控器的设计
基于系统调用的恶意软件检测技术研究
基于模体演化的时序链路预测方法
关于压机双联阀安全监控器的研究