匡政睿, 殳国华, 余玟铮
(上海交通大学 电工电子国家级实验教学示范中心,上海 200240)
随着我国智能化技术的快速发展,数据采集系统一直是嵌入式系统研究的重点,应用在如智能化家居、野外环境和智能化农业[1]等需要多种类采集数据的广泛场合。目前市面上数据采集系统的设计大多为输入种类固定型采集系统,但该设计方法有采集种类单一、人机交互性差和采用有线传输方式受限于传输距离的问题。
针对以上问题,系统基于嵌入式系统的设计原则,采用STM32H750XB高性能核心控制器作为主控制器,该核心控制器具有480 MHz最大工作频率[2],能充分满足系统设定的功能需要。在数据采集方面,通过采集工业标准电信号实现多源采集,搭建采样电路,使用主控制器内部集成高达16位精度的模数转换器模块[3](analog-to-digital converter,ADC)可以大大提高采集准确性。系统采用彩色触摸显示屏,设计了基于TouchGFX技术[4]的新型动态图形用户界面,并搭载远程通信模块进行云端远程监控。无线多源数据采集系统的设计,提升了采集系统对基于标准电信号种类数据采集的可拓展性和远端监控的可便性,具有十分广阔的前景。
无线多源数据采集系统所实现的系统架构如图1所示,主要由STM32主控电路、采样电路及外设模块构成。多源输入数据经采样电路转换为0~3.3 V电压信号,STM32通过ADC对输入的转换信号进行采集,并将采集数据基于自定义的数学转换关系进行数据处理,以动态化显示到触摸屏上。在数据存储和通信方面,STM32将采集到的数据实时保存到存储模块,并搭载ATK-ESP8266通信模块上传至共享云端,供监控者实时监控。
图1 无线多源数据采集系统框图
系统共设置8路多源信号采集通道,输入信号基于工业下标准电信号模拟量分为0~10 V电压信号输入和4~20 mA电流信号输入,通过跳线切换。由于STM32内部采集的ADC模块只能采集0~3.3 V范围的电压信号,因此需要对输入电压信号和电流信号进行转换。
图2 单路数据采样电路设计图
ATK-ESP8266是一款高速高性能的串口-无线WiFi模块[6],自带原子云网络服务器。该模块内部集成了TCP/IP协议栈,支持三种常用网络工作模式。系统通过STM32内部集成的串口与远程通信模块的收发管脚连接,并配置模块为站点工作模式,进行与云端的数据通信。
触摸屏显示模块选用5英寸(1英寸=2.54 厘米)800×480分辨率的液晶显示屏,支持RGB565和RGB888等格式的数据显示。触摸控制芯片选用GT911,可以同时识别5个触摸点的实时准确位置,具有较高的感触精度[7]。由于人机交互界面需要大量的显存,因此系统拓展了一颗大小为32 MB 的W9825G6KH芯片,来分配图形缓存数据。
系统电源转换电路设计如图3所示,通过microuniversal serial bus(microUSB)接口模块为触摸屏背光芯片CAT4237和通信模块进行供电,再通过AMS1117稳压器元件降压至3.3 V电压,供电给STM32主控、存储模块和LED指示灯等元件。
图3 电源转换电路设计
基于keil软件和TouchGFX平台,设计了系统软件的C和C++代码,主程序总流程设计如图4所示。
图4 主程序软件设计框图
STM32内部集成的ADC模块,转换精度可选16位、14位、12位等,支持多通道同时采集[8]。本系统设置ADC模块进行轮询采集,转换精度为16位,在采集数据后通过DMA(direct memory access)总线传送给STM32做进一步数据处理。在实际的系统运行过程中,接入输入信号还需设置每路的采集设置,包括设置采集通道开关和采集速率等。
TouchGFX是一款专门为STM32微控制器提供高性能人机交互界面的设计平台,通过MVP(model-view-presenter)架构连接显示屏硬件与人机交互界面设计代码,平台开发界面框架如图5所示。
图5 TouchGFX界面框架
系统在实际显示可供设置的参数有:
(1) 设置输入量与显示量之间的数学线性关系如图6所示。图6中:un为采集到的第n路输入电压信号;k和b为一次函数数学关系式参数,可参考传感器输出标准电信号参数含义相关手册进行设置;yn为传感器实际采集到的物理量。
图6 系统自定义显示界面设计
(2) 设置动态波形图的数据位数和波形图的竖轴范围。
标准电信号一般为0~10 V直流电压和4~20 mA直流电流,系统也支持该范围的交流信号采集,因此共设置测试4路,系统参数设置为:通道3,采集速率1 Ms/s,显示位数0.01。
系统单界面最多支持同时显示两路采集数据波形图,每个波形图左侧为通道序列,波形图下方为每路通道的采集数据最大值、最小值和平均值等,其中交流信号的平均值以有效值为准。
系统稳定运行后,对比采集值与实际设定值计算误差,采集结果如表1所示。
表1 标准电信号测试采集结果
接入两路通道进行温度、湿度采集测试,其中湿度传感器和温度传感器型号均为VMS-3002系列,分别接入通道0和通道1,根据传感器手册设置转换关系,测试多源数据输入系统的运行情况。
待系统稳定运行后将采集平均值与实际值对比,试验测试数据如表2所示,计算误差符合数据采集系统标准。
表2 传感器数据测试采集结果
系统入网后会自动将采集到的数据传入云端,从云端收到系统采集数据结果如图7所示。
图7 云端接收结果图
基于STM32的无线多源数据采集系统,克服了传统嵌入式数据采集系统的单一性输入和传输距离有限等缺点,可以准确地同时采集多路多源传感器的输入信号。基于高性能图形用户界面技术TouchGFX模块化地完成了人机交互界面。系统支持二次开发输入数据与显示数据的自定义数学关系,可以动态化地还原传感器实际输入数据。在无线通信方面,通过远程通信模块进行无线数据交互和远端监控,方便了监控采集信息和远端控制。