文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.01.013
中文引用格式: 王晨辉,吴悦,杨凯. 基于STM32的多通道数据采集系统设计[J].电子技术应用,2016,42(1):51-53,57.
英文引用格式: Wang Chenhui,Wu Yue,Yang Kai. Design of multi-channel data acquisition system based on STM32[J].Application of Electronic Technique,2016,42(1):51-53,57.
0 引言
在地质灾害监测中,需要监测泥位、地声、次声、位移等多种监测数据,数据采集系统被广泛应用,监测人员关注的不再是采集系统的功能,而是其基本性能,如采集速度、采集精度、抗干扰能力[1]。而且,以往人工到现场定时采集数据的监测方法已不能满足当前地质灾害监测技术要求,本文利用ARM微控制器STM32F103和低噪声双通道模数转换芯片ADS1256共同构建低功耗多通道数据采集系统,实现多通道数据不间断实时采集,通过串口与GPRS模块或北斗卫星模块实现监测数据的远程无线传输,有效提高监测参数精度,提升系统稳定性与可靠性,降低系统功耗。
1 系统总体设计
多通道数据采集系统主要由ARM微控制器STM32F103、A/D转换电路、电源电路、数据存储电路、数据传输电路和数据监控中心组成[2]。STM32F103作为多通道数据采集系统的核心,控制协调具体的数据采集、存储与传输。A/D转换电路可采集泥位、地声、次声、位移等现场数据,STM32F103将采集的现场数据简单分析处理后通过数据传输电路传输到远程数据监控中心,数据传输主要通过GPRS或北斗卫星模块上传,后台数据监控中心可实现对现场数据的实时在线查看及历史查询,数据存储电路可将采集数据实时保存到SD卡中,方便以后数据处理。系统总体结构框图如图1所示。
2 系统硬件电路设计
2.1 微控制器简介
微控制器采用STM32系列的32位微控制器STM32F103R8。它采用ARM32位Cortex TM-M3的CPU,主频可达72 MHz,内置高达512 KB的闪存和64 KB的SRAM,具备丰富的外设资源,主要包括ADC、RTC、I2C及SPI等接口。可提供睡眠、停机和待机三种省电模式,有效保证系统的低功耗性,而且Thumb-2指令集可有效提高系统运行的效率与实时性。
2.2 A/D转换电路
A/D转换电路选用TI公司推出的针对工业应用的模数转换器ADS1256,其24位Δ-ΣADC适用于科学仪器、工艺控制等工业应用领域,提供了最高23位的无噪声精度、最高30 kS/s的数据速率、±0.001 0% 非线性特性,非常适合用于高速、高精度数据采集,其内部集成有输入多路复用器、输入缓冲器、可编程增益放大器[3]。
2.3 电源电路
电源电路采用太阳能浮充锂电池作为供电电源,锂电池组基本参数为12 V/16 Ah,通过电源转换为系统提供12 V、5 V及3.3 V三路工作电源,微控制器通过程序管理协调实现各部分电源供给,实现系统的低功耗。5 V电源由TPS54229E转化提供,支持宽电压输入,集成高效率FET,电路PCB空间较小,适合多通道数据采集系统的多电源总线调节设计[4],3.3 V电源采用功耗非常低的降压模块LTC3631转化提供。
2.4 数据存储电路
数据存储电路主要由内部Flash和外部MicroSD卡两部分组成[5]。内部Flash用于系统内部传感器的数据存储,MicroSD卡用于采集野外现场监测传感器的数据存储。微控制器STM32F103采用SDIO模式驱动MicroSD卡工作,微控制器控制CLK作为MicroSD卡的时钟信号线,在每个时钟内可传输一位命令或数据;CMD是命令信号线,用于传输微控制器发出的命令或命令响应;监测数据通过DATA0~DATA3四根数据线进行传输。此外,系统扩展EEPROM存储器,采用Microchip公司的24LC512,用于存储系统的ID、采集时间、采集频率、工作模式、数据传输目标地址等相关参数,EEPROM内部存储的信息为系统的定时与实时在线两种工作模式提供标准参考。
2.5 数据传输电路
数据传输电路分为GPRS和北斗卫星传输,系统通过RS232串口分别与GPRS和北斗卫星传输模块连接。GPRS传输作为常规的传输模式,传输模式简单、可靠、稳定,在数据传输时优先选择,无法满足GPRS信号时选择北斗卫星传输模式。GPRS传输模块选用华为GTM900C模块,通过GPRS网络以TCP/IP数据包方式将现场监测数据实时传输到远程监控中心。北斗卫星传输模块选用国智恒集团的BGT-500模块,可实现RDSS的双向定位和短报文通信功能,具有较高的集成度和更低的功耗,系统通过北斗通信模块以短报文方式将监测数据传输到远程监控中心。
3 系统软件设计
系统软件设计主要包括微控制器软件设计、数据采集软件设计、数据存储软件设计、数据传输软件设计及数据监控中心软件设计。
3.1 微控制器软件设计
在微控制器的协调下完成现场数据采集、存储与传输。微控制器软件设计主要涉及系统工作状态初始化、A/D转换初始化、SDIO和MicroSD卡初始化及串口初始化。初始化完成后,微控制器进入到低功耗工作模式,相关数据采集通道自动进行相应的数据采集模式,当各个通道采集到数据后会发出采集完成中断来唤醒微控制器,中断子程序流程图如图2所示[6]。
3.2 A/D转换软件设计
数据采集程序由微控制器与ADS1256共同完成,数据采集包括A/D数据和数字量数据采集,A/D数据采集包括被测现场信号的带宽、被测信号精度、采集功耗,A/D数据采集在设置时要将ADS1256设置为可调模式,数据的输出在模式选择后与芯片时钟频率CLK有关,数据采集通过SPI通信协议,数据转换后用TDM模式输出,软件流程图如图3所示。
3.3 数据存储软件设计
微控制器通过SDIO模式完成现场数据的存储,主要包括MicroSD卡的初始化、卡识别、采集数据的读写[7]。上电初始化后,微控制器通过库函数SDIO_Init()配置SD卡时钟,发送命令检测是否有SD卡存在并对接入系统的卡进行归类,同时对操作电压进行范围验证以保证CID和CSD数据能正常读写;STM32F103以时钟频率开始MicroSD卡的识别流程,发送ALL_SEND_CID获取MicroSD的CID(unique card identification),发送SEND_RELATIVE_ADDR获取RCA(Relative Card Address),RCA用于对MicroSD进行寻址,一旦RCA被接收,代表卡已进入待机状态;接下来STM32F103发送SEND_CSD来获取卡的CSD(Card Specific Data)寄存器内容,包括块长度、卡存储容量、最大时钟速率等;然后进入读写状态,通过调用SD_ReadDisk()函数与SD_WriteDisk()函数实现微控制器与MicroSD卡之间的数据读写操作。
3.4 数据传输软件设计
微控制器启动数据传输程序后,对系统进行工作方式初始化,通过EEPROM读取相关通信配置,比如设定服务器IP地址、端口号、设备号、工作时间等;然后由微处理器发出指令检测现场传输信号,首先查询GPRS模块网络是否注册成功;成功后即可建立与数据监控中心服务器的连接,并进行数据传输处理;根据需要发送一定格式的心跳信息。一旦发现现场无GPRS网络信号自动切换到北斗卫星传输模式,现场北斗传输模块上电后微处理器向北斗发送IC卡检测命令,回复正确后向数据监控中心发送通信申请,收到命令后才发送现场数据。数据传输软件流程图如图4所示。
3.5 数据监控中心程序流程图
数据监控中心(服务器)软件作为TCP服务器端和北斗服务器端,具有公网固定IP地址且开放监听端口,分别接收来自GPRS客户端的TCP数据包与北斗客户端的数据,并向客户端发送应答数据。主要任务是完成对通信数据的接收、分析、处理和存储。首先服务器端启动TCP/IP监听和打开串口,监听TCP端口和串口,将接收到数据包/数据进行分析、处理,然后将数据存储到数据库中,便于以后数据查询与分析[8]。数据监控中心程序流程图如图5所示。
4 系统测试与分析
为验证测试多通道数据采集系统的性能功能,搭建野外模拟数据测试平台,给4个数据采集通道输入模拟野外监测传感器的电压信号,将系统采集到的数据与采集通道的输入电压进行对比分析,测试结果如表1所示。
从两组测试结果可以看出,系统4个采集通道均可准确对输入电压进行数据采样,采集数据可以精确到小数点后3位,系统采样结果相对误差较小,完全满足对野外监测数据的精度要求。
5 结语
本文以嵌入式微处理器STM32F103与ADS1256共同构建多通道数据采集系统,充分发挥STM32F103的控制协调作用,可实时在线采集0~5 V电压输出型的不同传感器信号,有效保证数据采集精度、实时性及数据处理能力,并实现远程数据传输,远程数据监控中心与地质灾害现场可进行实时在线通信,对现场数据可进行实时查询、分析及数据处理。软硬件架构的合理设计有效降低了系统的成本与功耗,实现系统的微型化与智能化采集,可广泛应用于地质灾害野外现场数据采集,在地质灾害监测中有较好的应用前景。
参考文献
[1] 徐航,罗巍.基于嵌入式的多通道高速数据采集系统[J].自动化与仪器仪表,2013(1):148-150.
[2] 杨振江.智能仪器与数据采集系统中的新器件及应用[M].西安:西安电子科技大学出版社,2001:95-163.
[3] 陈红远,郭天太,吴俊杰,等.多通道微弱电压信号同步采集系统开发[J].电子技术应用,2014(40):79-84.
[4] 钟文涛,刘强.基于单片机的野外信息检测记录系统[J].机电工程技术,2013,42(5):26-30.
[5] 胡祥超,李艳洁,赵新华,等.便携式野外传感器原位数据采集系统设计[J].传感器与微系统,2014,33(10):69-72.
[6] 丁凡,周永明.基于ZigBee的多路温度数据无线采集系统设计[J].仪表技术与传感器,2013(8):72-78.
[7] 潘玲娇,张自嘉,樊延虎,等.嵌入式16通道同步数据采集系统设计[J].仪表技术与传感器,2013(11):91-94.
[8] 马军,李志华.基于STM32的无线次声采集系统的设计[J].电子技术应用,2014,40(4):92-95.