基于ARM的多通道数据采集系统

2015-06-07 10:47张加宏
仪表技术与传感器 2015年2期
关键词:微控制器高精度上位

杨 博,张加宏, 2,李 敏, 2,顾 芳

(1.南京信息工程大学电子与信息工程学院,江苏南京 210044;2. 江苏省气象探测与信息处理重点实验室,江苏南京 210044;3. 南京信息工程大学物理与光电工程学院,江苏南京 210044)



基于ARM的多通道数据采集系统

杨 博1,张加宏1, 2,李 敏1, 2,顾 芳3

(1.南京信息工程大学电子与信息工程学院,江苏南京 210044;2. 江苏省气象探测与信息处理重点实验室,江苏南京 210044;3. 南京信息工程大学物理与光电工程学院,江苏南京 210044)

设计一种多通道、多功能的数据采集系统,除普通数据采集外,还实现高精度数据采集、高速数据采集的功能和分通道计数的数据处理方法。系统利用数据采集模块采集前端传感器输出的不同频率电压信号;以ARM微控制器为主控,将数据处理后,通过显示模块实时显示;通过SD卡实现数据存储;通过RS232总线传送给PC上位机,实现远程数据采集和分析。试验表明:该系统能采集较宽频率范围的电压信号,并能够进行适当的算法处理,具有较好的通用性、实时性和可靠性。

数据采集;多通道;ARM;SD卡储存;PC上位机

0 引言

数据采集系统是数字系统的重要组成部分,它与传感器技术、信号处理技术、计算机技术一起构成了现代检测技术的基础[1]。数据采集系统被广泛的应用,人们关心的不再是采集系统的功能,而是其基本性能:比如采集速度、采集精度、抗干扰能力,尤其是采集速度,它是目前人们最为关心的指标之一[2]。目前,大多数数据采集系统只是单一具有高精度、高速采样的功能,而缺少一种即具有高精度采样通道又具有高速采样通道,还具有通常的采样通道,甚至还具有分通道计数数据处理通道并可以将采集得到的数据存储、显示、传给电脑处理、显示、画图的数据采集系统。因此,目前市面上的大多数数据采集系统使用起来具有一定的局限性。

本文设计的基于ARM的多通道数据采集系统可以有效地实现高精度采样、高速采样、普通采样和分通道计数数据处理的功能,还可以将采集得到的数据存储、显示并通过RS232总线传给电脑处理、显示和画图。

1 系统整体设计

如图1所示,系统以32位ARM微控制器STM32F103为主控,加上数据采集模块、显示、控制模块、SD卡存储模块和PC上位机组成。其中,数据采集模块又包含2路高速信号采集通道、3路高精度信号采集通道、4路普通信号采集通道和1路分通道计数数据处理通道。

图1 系统框图

当数据采集系统运行时,不同的通道进行不同的电压采集,采集的数据通过TFT彩色屏显示。TFT彩色屏同时具有触摸屏的功能,可以进行数据储存的选择,即根据需要选择储存的数据,并通过SD卡存储,方便以后的数据处理。此外,采集到的数据还可通过RS232总线传送给PC上位机,在上位机中进行数据显示。对于分通道计数通道采集到的数据,还可以进行图形曲线显示,方便直观地看出各个通道采集到的数据量变化。

2 系统硬件设计

2.1 主控芯片简介

考虑具体目标的实现,主控芯片选用STM32F103微控制器。它以Cortex-M3为内核,具有高性能、低功耗、实时性等特点,工作频率为72 MHz,内置高速储存器、12位A/D转换器、SDIO驱动模块、定时器等外设,并提供3种低功耗模式,供用户合理地优化功耗[3]。选用这款微控制器,不仅可以满足驱动芯片和数据处理的要求,还可使用内部集成的12位A/D、SDIO模块,减少外围模块,提高系统稳定性。

2.2 数据采集模块

系统的数据采集模块包括:高精度采样模块、高速采样模块、普通采样模块、分通道计数数据处理模块。不同采样模块通过不同方法实现。对于高精度采样模块,采用24位高精度A/D转换芯片AD7793。AD7793是一款适合高精度测量应用的低功耗ADC,内部包含Σ-Δ电路,以极高的采样频率对输入模拟信号进行采样,并对两个采样值之间的差值进行低位量化。在10 Hz的采样频率下,可实现最高24位的采样精度,分辨率较高[4]。

图2为高精度采样模块的电路原理图。AD7793的SCLK、DIN、DOUT/RDY、CS等4根控制线与微控制器相连接,SCLK作为串行时钟输入,用于来往ADC的数据传输。CS作为片选端,选择ADC是否开始工作。DIN作为ADC的输入移位寄存器的串行数据输入端,DOUT/RDY作为串行数据输出/数据就绪输出端,可以作为串行数据输出引脚,访问ADC的输出移位寄存器,也可以作为数据就绪引脚,方便进行转换的中断处理。此外,AD7793的IOUT1可以输出1 mA的精准恒流源,通过R1(2.5 kΩ)的精密电阻,作为参考电压输入。这样AIN1+、AIN1-和AIN2+、AIN2-可以作为2个高精度数据采集通道,进行高精度的数据采集。

图2 高精度采集模块电路图

对于一般采样模块,采用普通16位4通道并行A/D转换芯片AD7606-4。AD7606-4是一款集成式4通道数据采集系统,它具有很多优良的特性:1 MΩ模拟输入阻抗的输入缓冲器,片内精密基准电压及缓冲,通过数字滤波器能够实现过采样功能,灵活的并行/串行接口,低功耗[5-6]。它可以达到较高的采样精度以及适中的采样速度,十分适合用于普通的数据采集。

AD7606-4通过OS0、OS1、OS2控制线与微控制相连,选择过采样模式。CONVST A和CONVST B作为启动A/D转换的控制信号,分别控制1-2和3-4通道的A/D转换的启动。此外,RD作为读信号、RST作为复位信号、BUSY作为忙信号、CS作为片选信号,DB0~DB15作为16根数据线与微控制相连,用来控制和和传送转换后的数据。AIN1、AIN2、AIN3、AIN4则作为4个采样输入通道,进行需采样量的输入。

对于高速采样模块和分通道计数数据处理模块,采用微控制器STM32F103内部的A/D转换器。STM32F103内部集成了3个逐次比较型ADC,虽然采样精度只有12位,但是,其最高时钟频率可以达到14 MHz,最快采样速率可以达到1 MHz,采样速率远高于高精度采样模块和一般采样模块,可以实现高速数据的采样。而对于分通道计数数据处理模块,也是需要高速采样而对于采样精度要求则不高,因此使用STM32F103内部的A/D转换器也是适合的。系统高速采样模块使用STM32F103内部集成的ADC1中的3个通道,而分通道计数数据处理模块则使用STM32F103内部集成的ADC3中的一个通道。

2.3 SD卡储存模块

SD卡是常用的储存芯片,具有稳定性好、读写速度快、通用性高、体积小、容量高等特点。SD卡有2种工作模式:SDIO通信模式和SPI模式。其中SDIO通信模式存储速度快,且微控制器STM32F103内部集成了SDIO通信接口,使用较方便,因此,本系统采用SDIO模式驱动SD卡。SD卡储存模块电路如图3所示。DATA2、CD/DAT3、CMD、CLK、DATA0、DATA1引脚通过SDIO接口与微控制器相连接。CLK作为外SD卡的时钟信号线,是由微控制器产生的时钟信号,每个时钟周期传输一位命令或数据。CMD是命令信号线,传输所有的命令和命令响应。DATA0~DATA3是4根数据线,用来传输数据。驱动SD卡时,首先进行SDIO的初始化,然后进行SD卡的上电识别和SD卡的初始化,之后可以随意通过读写函数进行SD卡的读写操作。

图3 SD卡存储模块电路

2.4 微控制器和PC上位机通讯模块

系统采用简单的RS232串口实现微控制器和PC上位机的通讯。RS232串行通讯传送距离最大约为15 m,最高速率可达20 kb/s,并且RS232是为点对点通讯而设计的,其应用十分广泛。但是,由于RS232标准的电平采用负逻辑,与TTL和CMOS电平是不同的[7-8],因此,在通信时需要进行电平转换。RS232电平转换芯片选用MAX232芯片,它可以实现RS232电平和CMOS电平之间的相互转换,MAX232的IN和OUT端分别为接收器的输出和驱动器的输入端,与微控制器的串口输入、输出的RXD和TXD相连,可将串口转换为RS232电平,实现RS232通信。

2.5 其他模块

显示、控制模块:采用TFT电阻触摸彩屏作为显示和控制模块。采用ILI9341[9]芯片驱动3.2英寸液晶屏显示,通过微控制器STM32F103的FSMC接口驱动ILI9341配置引脚和控制信号线实现数据的显示。采用TSC2046作为电阻触摸屏的驱动芯片。TSC2046是典型的逐次逼近寄存型A/D变换器,其结构以电容再分布为基础,包含了取样/保持功能,支持低电压I/O接口[10]。微控制器通过SPI总线驱动TSC2046芯片,当屏幕受到挤压时,通过TSC2046采集到触点X方向和Y方向的电压值,从而确定触点的坐标,实现触摸屏的控制。

3 系统软件设计

3.1 微控制器的软件设计

该系统软件设计主要包括微控制器的软件设计、分通道计数数据处理的算法设计、SD卡文件系统移植设计和PC上位机的设计。其中微控制器的软件设计又包括:下降沿中断的初始化,内部ADC转换的初始化,外部ADC模块初始化,SDIO和SD卡驱动的初始化,显示、控制模块的初始化以及串口的初始化。

在完成初始化以后,微控制器进入低功耗模式,各个电压采集通道开始进行数据的采集。当各个通道采集到数据以后,各个通道会产生一个采集完成的中断,微控制器被唤醒,进入中断服务程序。采集中断流程图如图4所示。在中断服务程序中,读取每个通道所采样到的数据值,将读取的数值通过显示屏显示、通过串口发送给上位机,同时,根据储存选择的标志位,判断是否将采集的数值存储进SD卡内。另外,如果触摸屏上按键被用户触摸,也将进入按键中断处理程序,在按键中断中进行储存标志位的清除和置位。

图4 采集中断流程图

3.2 SD卡文件系统的移植

仅仅通过SDIO接口驱动SD只完成了SD卡中的物理地址读写数据的工作,还需要移植文件系统,来实现数据的储存和管理。FATFS是一个为嵌入式系统设计的通用FAT文件系统模块,具有以下一些特点:与Windows的FAT文件系统兼容;不依赖平台,易于移植;代码和工作去占用空间小[11]。本系统移植FATFS_R0.09a文件系统,然后可以利用封装好的API接口函数实现SD卡的文件操作。

FATFS的主程序包含5个文件,即fdiskio.h、ffconf.h、ff.c、ff.h和integer.h。移植中还需要添加diskio.h和diskio.c构成底层的硬件I/O[12]。ff.c主要是独立于底层介质操作文件的函数,利用这些函数可以实现文件的读写。ffconf.h头文件包含了对文件系统的各种配置。integer.h中包含了一些数值类型的定义。移植过程中首先使integer.h中的数据类型和STM32数据类型一致,然后在diskio.c中实现5个主要函数:储存介质初始化函数dis_initialize( )、介质状态函数dis_status( )、扇区读取函数dis_read( )、扇区写入函数dis_write( )、时间接口函数get_fattime(),最后在ffconf.h中对文件系统进行裁剪配置,完成文件系统的移植。

3.3 PC上位机的软件设计

PC上位机采用基于.NET平台的WindowsForm和C#语言编写。在WindowsForm中,主要就是窗体的设计和相应控件的应用[13]。系统采用串口控件实现上位机与微控制器之间的通信;采用按钮、文本框等控件,实现数据显示以及存储、查询等功能的实现。在上位机和微控制器进行串口通信中,首先需要对串口进行初始化,系统中设置串口传输速率为9 600 bit/s,8位数据位、1位停止位并且不设置校验位。初始化结束后,打开微控制器所在的串口,此时,微控制发送的数据开始存入PC内的串口缓存区。当缓存区数据大于1个字节后,上位机系统自动触发串口读取事件,在事件中可以调用函数,实现对微控制器发送来的数据进行显示、存储等功能的操作。上位机软件运行流程图如图5所示。

3.4 分通道计数的算法设计

所谓分通道计数的数据处理方法是指将0~2.5 V均匀分为64段,每段在数据处理器内对应一个虚拟通道,对数据进行采集后,在处理器内对每个虚拟通道进行计数,最后输出10 s内64个虚拟通道的电压计数值。在系统初始化时,将电压分段,并设置好各电压段对应的虚拟通道。当该通道开始采集数据时,根据采集的电压,将对应的虚拟通道的计数值加1。以10 s为1个周期,即每10 s向上位机发送1次10 s内每个虚拟通道累计的数值,在上位机软件中画图显示出来,发送完毕后,对每个虚拟通道清零,在下一个10 s内重新计数、传送。

图5 上位机软件运行流程图

4 系统测试与分析

为了测试系统的各种功能,给各采集通道输入一个固定模拟电压量,给分通道计数数据处理通道一个连续变化的模拟量。并将该系统采集的数据和给定的模拟电压量进行比对。测试结果如表1和图6所示。从实验结果可以看出,本系统各个通道可以准确地采样到通道的输入数值,高速采集通道可以精确到小数点后3位,高精度采集通道可以精确到小数点后7位,普通采集通道可以精确到小数点后5位,采样精度可以得到保证。同时,本系统也可以将数据传送给上位机软件进行显示和画图处理。此外,经过测试,系统存储功能运行良好,可以选择性地进行数据的储存。

表1 多通道数据采集系统的测试结果

图6 上位机软件测试图

5 结论

围绕嵌入式技术设计的基于ARM的多通道数据采集系统,采用软硬结合的方式,实现了24位高精度数据采集、1 MHz高速数据采集、普通数据采集的功能和分通道计数的数据处理方法。在保证普通采集速度、采集精度的前提下,扩展了数据采集的精度范围、采集速度和数据处理能力。此外,该系统还具有数据显示、存储、传输的功能。因此,相对于目前大多数功能单一的数据采集系统,该设计具有通用性强、适用范围广的优点,有很大的推广和实用价值。

[1] 魏志猛,杨开勇. 基于采集卡和LabVIEW的锁相放大技术在散射光测量中的应用. 激光杂志,2009,30(4):71-72.

[2] 徐航,罗巍. 基于嵌入式的多通道高速数据采集系统. 自动化与仪器仪表,2013(1):148-150.

[3] 丁凡,周永明. 基于Zigbee的多路温度数据无线采集系统设计. 仪表技术与传感器,2013(8):72-73.

[4] 谢军,刘清惓. 基于MEMS和数字信号处理器的露点传感器设计. 制造业自动化,2013,35(2):133-135.

[5] 卢亚普,王海艳,张庆鹏,等. AD7606在测井采集模块中的应用与设计. 电子测量技术,2014,37(1):105-108.

[6] 何琼,陈铁,程鑫. 基于以太网硬协议栈的数据采集节点. 仪表技术与传感器,2013(2):21-23,27.

[7] 陶晓玲,姚竹亭,刘春力. RS232转RS485有源光隔离转换器结构设计. 伺服控制,2013(1):80-81.

[8] 张成俊,张李超,史玉升. 以太网转RS232转换器设计. 仪表技术与传感器,2013(6):35-36.

[9] 汤莉莉,黄伟. 基于STM32的FSMC接口驱动TFT彩屏设计. 现代电子技术,2013,36(20):139-141.

[10] 吴青萍,沈凯. 基于ARM处理器的TSC2046触摸屏控制器的应用. 现代电子技术,2011,34(23):195-197.

[11] 崔鹏伟,闫学文. 基于SD卡的FATFS文件系统的研究与应用. 工业控制计算机,2013,26(11):141-142.

[12] 丁力,宋志平,徐萌萌,等. FatFS的水动力实验数据存储系统设计. 单片机与嵌入式系统应用,2013(2):24-27.

[13] 黄毅,杨朔,陈进原,等. C# WindowsForm编程中MD5加密的设计与实现. 计算机时代,2013(6):9-12.

Design of Multi-channel Data Acquisition System Based on ARM

YANG Bo1,ZHANG Jia-hong1,2,LI Min1,2,GU Fang3

(1. School of Electronic and Information Engineering,Nanjing University of Information Science & Technology, Nanjing 210044,China;2. Jiangsu Key Laboratory of Meteorological Observation and Information Processing, Nanjing 210044,China;3. School of Physics and Optoelectronic Engineering,Nanjing University of Information Science & Technology,Nanjing 210044,China)

A multi-channel and multifunction data acquisition system was designed not only to achieve common data acquisition,but also to achieve high-precision data acquisition,high-speed data acquisition and the data processing method of sub-channel count. Data acquisition module was used to collect front-end sensor output voltage signals with different frequencies. It took ARM microcontroller as master control to handle the collected data,displayed them real-time through the display module,after the data processing stored them through the SD card and transferred them to the PC host computer by RS232 bus in order to achieve remote sensing data acquisition and analysis. Experimental result shows this system can collect voltage signals over a wide range of frequencies and handle data by appropriate algorithms. Therefore,it has great real-time,versatility and reliability.

data acquisition;multi-channel;ARM;SD-card;PC host computer

项目资助:国家自然科学基金(61306138, 61307113);江苏省自然科学基金(BK2012460);南京信息工程大学2014届“优秀本科毕业论文(设计)支持计划”项目

2014-03-03 收修改稿日期:2014-10-12

TP274

A

1002-1841(2015)02-0104-04

杨博(1991—),主要从事电子设计方面的研究,E-mail:yangbo199112@163.com 张加宏(1979—),副教授,博士,主要从事微纳传感器技术和气象探测技术方面的研究,E-mail:zjhnuist@163.com

猜你喜欢
微控制器高精度上位
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
基于Niosll高精度超声波流量计的研究
高精度PWM式DAC开发与设计
高精度PWM式DAC开发与设计
特斯拉 风云之老阿姨上位
高抗扰高精度无人机着舰纵向飞行控制
物联网技术在微控制器实验教学中的应用
用于高品质电动汽车的分布式并行计算
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统