基于STM32F1的多通道无线数据接收系统设计
2019-09-11肖峰
肖 峰
(中国电子科技集团公司第四十七研究所,沈阳110032)
1 引 言
随着科技的进步以及计算机使用的普及, 同时在微处理技术不断发展的促进下,数据采集系统在现代生产生活中迅速、广泛地得到应用。此类系统的任务是对生产现场及工作环境的各种参数进行采集,送入到计算机,根据不同的需求和目的由计算机进行相应的算法处理和图形化处理,最终得到所需的数据类型和图形化显示。在处理完成后,还要将生成的大量数据按照相应要求进行存储和备份,以便实现对某些物理量的监视[1]。这些都需在对系统的设计中加以考虑。
2 系统设计
通过对数据采集组网的应用场景进行分析,设计一种简便的组网模型。模型分为三个部分:由PC机和监控软件构成的监控系统(以下简称上位机),由单片机实现的接收系统(以下简称主机),以及由传感器实现的采集控制系统(以下简称从机)。各部分协调工作完成数据采集和监控任务[2]。其中,上位机和主机各有一个,从机则有多个。每个从机都有自己独立的通讯地址。从机在使用之前,通过上位机操控界面进行通讯地址的设置和查询,从而实现一个上位机、一个主机和多个从机的快速便捷组网。
设计的多通道无线数据接收系统的系统功能结构图如图1 所示。
图1 系统框图
上位机部分采用AC220V 供电,包括PC 上位机、显示器、鼠标和键盘,主要完成对采集到的数据进行分析、处理和存储,并具有数据列表显示和报警设置等功能。
主机采用5V 和3.3V 供电,5V 主要给液晶显示供电,以及通过5V 转3.3V 芯片把电源适配器的5V转换成3.3V,供其他芯片和模块使用。
单片机选用STM32F1 系列处理器,这一系列处理器运算速度快,接口丰富,存储空间大,应用可移植性好[3]。
无线通讯部分为采用SiliconLab 公司的无线收发芯片SI4463 设计的一款433MHz 无线收发模块,空旷通讯距离最远可达两千米,负责与多个编号的从机进行通讯,实现主机与多个从机指令和数据的互传[4];串口通讯模块选用MAX3232E 芯片进行设计,负责与PC 上位机进行通讯,实现主机与PC 上位机指令和数据的互传[5]。
从机供电系统和处理器的选取与主机一样,温湿度传感器模块负责对环境温湿度的采集,最后通过433MHz 无线模块发送给主机,从机还支持控制继电器操作,完成对排风机、卷帘机、浇灌系统等设备的控制。
除此之外,系统还支持本地的按键操作和液晶显示,方便用户在脱离上位机的情况下对系统进行简单操作。
3 硬件设计
单片机电路原理图如图2 所示,包括串口通讯接口X7 以及由芯片U3、电容C5 至C9 以及C20 组成的通讯模块,完成与上位机的通讯;接口X5 用于完成ISP 程序下载;复位电路由按键S1 及电阻R5、电容C10 组成,下载使能由跳线W1 及电阻R31 和R32 组成,本地数据存储模块D1 用于存储主机的配置参数等信息,主机的人机交互包括带灯按键接口X3(对应按键1),X4(对应按键2)以及液晶显示接口X9,液晶屏支持显示多个不同编号从机的数据信息,方便用户在脱离上位机的情况下对系统的监控信息以及监控状态进行简单观察和操作[6]。
图2 主机电路原理图
4 软件设计
主机软件采用Keil C 编写,运行于以STM32F1为核心的硬件平台上。主机软件设计由无线通讯、串口通讯、人机交互、数据处理等部分组成。无线通讯部分实现主机与多个从机指令和数据的互传,其中每个从机都配置有不同的通讯地址;串口通讯部分实现主机与上位机指令和数据的互传;主机的人机交互部分包括按键操作和液晶显示,用户可以在脱离上位机的情况下,对系统进行简单的操作,实现信息监控和状态监控;数据处理部分执行了采集数据的防干扰处理以及转换处理,防干扰处理采用去极值法和冒泡法等算法。具体的主机软件流程图如图3 所示。
图3 主机软件流程图
程序开始运行后,首先进行系统初始化工作,包括按键初始化、液晶显示初始化和中断初始化等,然后进行无线模块初始化、串口通讯初始化,判断是否串口接收中断(即判断是否接收到来自上位机的串口控制命令),如是,则清除中断标志,并根据命令判断是设置从机编号命令、查询从机编号命令还是读取从机数据命令,如果是上述命令其中之一,则主机根据命令格式要求组包后通过无线模块发送给从机,一直等待主机发送完毕后,主机进入接收模式(等待来自从机的命令);如否,则判断按键1 选择从机编号是否动作,如果是,则记录从机编号,液晶显示相应的从机编号;如否,则判断按键2 确认采集从机数据是否动作,如果是,则主机根据命令格式要求组包后通过无线模块发送给从机,一直等待主机发送完毕后,主机进入接收模式;如否,则判断是否有外部中断(即是否有相应的从机发来数据),如果是,则清除中断标志,然后主机接收数据并做相应的数据处理,接着主机再把数据发送给上位机,供上位机存储、显示,主机也通过液晶屏显示对应的数据,上述程序运行完毕后清缓存;如否,则继续判断是否接收到来自上位机的串口控制命令。
上位机软件采用C#编写,运行于Windows 操作系统。无线数据采集系统的监控软件可对采集的数据进行分析、处理和存储,并具有数据列表显示等功能。软件支持不同从机编号的单次获取数据,以及自动采集功能,可以导出数据,数据存储为Excel 格式,方便后续的分析处理[7-8],导出后的数据表外观如图4 所示。相关的软件界面如图5、图6 所示。
图4 导出数据表格图
图5 上位机软件界面
图6 设置、查询从机编号界面
5 结束语
设计基于STM32F1 的多通道无线数据接收系统构建,体现出了组网快捷、灵活性高等优点,能快速收集生产现场及工作环境的数据,对现场环境以及生产数据进行实时监控,有效提高生产效率,节约能源,具有很高的研究价值和十分广阔的应用前景。