基于stm32单片机数据采集控制系统设计
2021-12-11徐国成
徐国成
摘要:本文提出了基于 STM32 单片机的数据采集控制系统的设计,从硬件与软件系统方面来实现对工业现场所需数据的实时采集和监测,保障了生产过程的平稳运行,对于企业管控一体化建设具有重要的意义。
关键词:STM32;单片机;数据采集
引言
数据采集是对所需数据获取的一个过程,一般是经过传感器等将设备的信号传输至主控器进行处理与分析。数据采集系统则是结合计算机等测试平台搭建软硬件产品组成的系统[1]。近年来,在科学研究、工业现场等领域数据采集技术尤为突出。该技术已经应用在航空航天、卫星雷达、遥感监控、通信技术、工业生产等领域。数据采集系统中数据的采集、存储与处理三者密不可分,随着科学技术日新月异的发展变化,数据采集技术也日趋完善,得到不断的更新和发展。
1.系统总体设计
单片机作为主控芯片,实现对采集过程和输出的控制,单片机处理后的数据通过串行通讯方式传输到以太网接口,通过交换机将电路板和计算机进行连接,然后把数据传输给上位机,实现远程I/O数据采集与实时显示。
2.系统硬件设计
本系统要实现对工业现场中的 16 路数字量和 8 路模拟量的数据采集和实时显示,通过方案的论证,选择单片机来完成系统设计。设计 DI、DO、AI、AO 四块电路板[2]。每块电路都使用 STM32F103RB 芯片作为主控器,选择CH9121网络串口透传模块和 RJ45水晶头网口进行连接,通过网线连接至同一路由器,然后和计算机相连,在上位机软件上进行数据的实时采集与显示。其中,四块电路板只有数据采集部分不一样,电源电路、主控模块、网络通信模块等公共部分将以单块电路板的外围电路进行描述,然后分别描述不同的部分。
通过STM32F03RB芯片来完成整个数据采集过程的主控作用。数字信号采集时,16路数字信号驱动继电器后与主控器的 16 个I/O口相连,通过软件编程读取相应I/O口的状态值获得 16 路数据;模拟数据采集时,输入的8路模拟信号经过集成芯片进行处理后,然后连接至主控器的I/O,其整个过程需要STM32F103RB芯片提供集成转换芯片所需的时钟。STM32F103RB 不仅控制数据采集与处理过程,同时还将处理后的数据通过网线上传至计算机,实现对工业现场机器运行状态的实时监测。
本系统对8路模拟信号进行采集,其中包括3路PT100,3路K型热电偶和2路4~20mA
电流信号,模拟量要经过调理电路才能被主控芯片的I/O口采集。其中PT100热电阻连接的集成芯是 MAX31865,K型热电偶连接的是MAX6675,这两块芯片内部都集成了SPI通信总线进行数据传输。
3.系统软件设计
整机软件设计包括单片机主程序、数据采集与处理程序、串口通信程序、上位机通信程序和报警程序。其中,单片机主程序包含时钟的初始化、相关I/O口的初始化、USART串口和 SPI 总线的配置。数据采集与处理分为数字量控制采样和模拟量控制采样。串口通信程序是对使用到的串口进行参数设置,并编写简单的通信协议实现数据的收发。集成采集芯片通信程序是通过SPI总线进行数据通信以及对采集到的温度进行线性的模数转换。上位机通信程序是通过对CH9121芯片写入命令或者通过上位机进行参数配置,将两者配置在同一局域网,通过TCP/IP协议来进行数据传输。
本系统要完成对工业现场中16通道数字量和8通道模拟量的采样与处理,在工作之前,首先要完成通道参数的配置工作,具体包括通道输入信号类型、报警门限参数等。整个工程的程序一般包含数据采样处理和数据通信[3]。程序的主体为数据采集与显示、报警处理部分。经过配置后的模块工作流程主要为:(1)将程序烧录进电路板上电后,程序在Flash中运行,部分程序復制到 RAM 中运行;(2)程序从Flash中读取配置通道参数,分别对16路开关量和 8 路模拟量进行循环采样,若没有配置信息,就等待接受配置信息;(3)进行数据采集时,采样频率是 5Hz,即1秒钟采集 5 次;(4)完成模拟量、开关量等多种传感器的数据采集任务,若出现故障,则系统给出指示灯报警信号;数据通信部分是在中断函数中完成,其主要工作包括:(1)接收分析主机命令类型;(2)将采样数据上传至计算机进行显示;(3)配置通道参数。
单片机芯片初始化模块主要实现的功能是将运行时的芯片各功能模块进行初始化,主远程I/O数据采集控制系统设计要是通过配置各个模块控制寄存器来实现。单片机上电后看门狗处于使能状态,如果不周期性地进行查看操作就会出现复位。因此,对看门的操作最简单的办法就是禁止看门狗。虽然看门狗是比较有效的一个措施,但是这种方法不可取。所以,当调试完毕再添加看门狗电路,从而确保系统稳定运行。主程序流程图如图2所示。
8路模拟热通道采集的信号为电压信号,需要转化为相应的物理量进行传输和显示,这是将物理量转化为电压信号的逆过程。本设计采集到的物理量主要是温度、电流。通过数字转换芯片直接转换成电压信号接至主控芯片I/O口,在显示时还要通过对比采集到的电阻和电压转换为最原始的温度和电流。图3为各通道数据采集转换流程图。
4.系统测试
对于本系统,在经过硬件电路分析,软件程序介绍后,还要完成联合调试。通过系统
调试才能最终实现系统的功能。软硬件分模块调试,可以做到硬件电路和软件程序相结合,
变为可正常使用的一套系统。硬件调试首先将电路板焊接完成,检查元器件的焊接情况,
某些有极性的元器件放置是否正确,是否存在短路、虚焊的情况,然后分模块进行硬件功
能测试。经过检查无误后开始联机调试。联机调试是全面测试数据存储、主控器设备、串
口和网口通信等是否正常。将测试程序下载进调试好的电路,在硬件平台上开始软件程序测试。测试程序主要是将程序下载到硬件电路板上来验证功能是否实现,主要包括串口通信、采集程序和网口通信的测试。
对各个模块的芯片进行了上电测试,确保电源供电模块正常,能够使系统上电后正常运行。然后分别对数据采集、串口通信和网口通信进行测试。采集模块是对输入的16 路电压信号进行采集,通过检测对应I/O口的状态和串口进行传输的数据,从而证明开关量的采集一切正常;串口通信模块需要用程序编写串口通信协议,然后通过串口测试板来显示收发数据是否正常;网口通信测试是将电路板和计算机通过路由器进行连接,然后通过上位机进行配置,将他们接入到同一局域网进行数据的收发。CH9121芯片内嵌入了TCP/IP,以完成数据在网口和串口通信中的交互。测试结果表明网络串口透传一切正常,可以将串口数据正确地上传至计算机。
参考文献
[1] 王琳,商周,王学伟. 数据采集系统的发展与应用[J]. 电测与仪表,2004:4-8.
[2] 张晓萍. 单片机数据采集系统通信接口设计[J]. 数字通信世界,2017:5-8.
[3] 贺伟,李辉. 基于单片机的多路数据采集系统设计[J]. 饮食科学,2017:20-22.
[4]李鹏. MSP430 单片机在多路数据采集系统设计中的应用[J]. 无线互联科技,2016:
[5] 王鹏. 基于 Modbus 协议的数据采集系统的研究[D]. 合肥工业大学硕士论文,2019.