基于单片机的高精度海量数据采集与存储系统
摘要:为满足在某些恶劣实验环境条件下数据的高精度采集。海量存储以便事后分析的需要,设计出了以MSP430F1611单片机为主控单元,采用16位高精度A/D转换芯片ADS1146实现数据采集;利用大容量TF存储卡实现数据的海量存储,并通过并口转USB芯片及相应的上位机软件实现数据上传以便进行事后分析。目前,该数据采集存储系统已在相关实验项目中得到应用,并获得了良好稳定的实验结果。 0 引言 随着信息技术的发展,特别是各种数字处理器件处理速度的提高,实现海量实时数据处理已成为现实。但是,在一些恶劣实验环境条件下,数据无法实现实时处理,仍需用到存储测试的方法。 存储测试是指在对被测对象无影响或影响在允许范围条件下,在被测体内置入微型存储测试系统,现场实时完成数据采集与存储,事后对存储器进行回收,由上位机处理和再现被测信息的一种动态测试技术。 针对具体情况,本文设计出了基于MSP430F1611单片机高精度海量数据采集与存储系统。该系统以MSP430F1611单片机为主控单元,采用16位高精度A/D转换芯片ADS1146 以及2 GB 容量的TF 存储卡实现数据的高精度采集与指定块存储;上位机与单片机之间通过并口转USB 芯片FT245 相连接,其中TF 存储卡指定块数据的读取以及块数据的擦除操作均是由采用Lab- VIEW 编写的上位机程序所完成。因此,用户可以在某些恶劣实验环境下简单方便地完成海量高精度数据的采集存储以及事后处理。同时系统具有大容量。高精度。低功耗以及体积小的特点。 1 系统设计 1.1 单片机基本系统 单片机基本系统是整个控制系统的核心,它完成整个系统的信号处理和协调控制。其结构框图如图1所示,它的主要工作是上电之后进行初始化操作,设置采样周期,启动A/D采样电路,读取采样数据,并将其临时存储在自身的RAM 存储区中,当存储的数据达到一定量时将其存入指定的TF存储卡数据块中;数据采集存储完毕后,将单片机与上位机相连接,当接收到上位机发送的TF存储卡块数据的读取指令时即将相应块数据上传至上位机并存储为指定类型的转向文件;此外上位机向单片机发送TF存储卡擦除指令时,在用户界面会弹出是否确认擦除指定块对话框以再次确定所需擦出的块从而防止误擦除。 本系统中心控制单元选择TI公司生产的16位低功耗单片机MSP430F1611[5]?该芯片工作电压范围为1.8~3.6 V,具有48 KB+256 B的FLASH MEMORY 以及10 KB 的RAM,丰富的片上外围模块,如定时器A,B(timer A,timer B),48 个可编程I/O,以及串口0,1(UART0,1),因此能较好地满足系统设计需求。 1.2 A/D采样电路 选择16 位高精度A/D 转换芯片ADS1146,其与单片机的连接电路如图2所示。 ADS1146与单片机之间选择为三线SPI通信模式,即单片机P3.1~P3.3 引脚选择为第二功能:SIMO0,SOMI0和UCLK0,通过初始化相应寄存器设置其数据传输速率以及可编程增益放大器的增益值,此时即可编程检测P3.1 引脚是否为低电平,如果为低,则向单片机U0TXBUF 寄存器写入0001 001X,启动单次读RDATA模式,接着再向单片机U0TXBUF 写入两个NOP 指令,同时将本次操作单片机所得到的U0RXBUF 高字节数据MSB放入事先定义好的整型数据的高8位,将其低字节数据LSB放入该整型数据的低8位。 1.3 TF存储卡 TF存储卡的作用主要是存储数据。具体实现过程为:读取A/D 采样数据,并将其临时存储在单片机的RAM 存储区中,当存储的数据达到一定量时将其存入指定的TF 存储卡数据块中,以此往复,直至完成TF 存储卡预定数据块的存储。本系统采用2 GB 容量的SanDisk生产的TF存储卡,它特别适用于具有大容量数据储存要求的数据采集存储系统.TF 存储卡与MSP430F1611的连接电路如图3所示。 TF存储卡体积为15 mm×11 mm×1 mm,相当于手指甲盖的大小,且包括SD 协议和SPI 协议2 种总线模式,本系统总线模式是通过COM0指令将其设置为SPI模式,同时设置单片机UART相应的控制寄存器并且选择P5.1~P5.3引脚第二功能 SIMO1,SOMI1以及UCLK1,此外TF存储卡初始化。单块读。单块写以及擦出操作分别调用COM1,COM17,COM24以及COM38指令及其相应步骤来完成。 1.4 与上位机通信 FT245是FTDI公司的一款并行FIFO双向数据传输的USB 芯片,本系统中USB 通信方式如图4所示,其中FT245 向MSP430F1611 单片机提供8 位并行数据总线D0~D7,通过在上位机上安装VCP 驱动程序将其转换为虚拟串口。 上位机软件是基于LabVIEW 的VISA(Virtual In-strument Software Architecture)接口模块开发而成,VISA是应用于仪器编程的标准I/O应用程序接口,是工业界通用的仪器驱动器标准应用程序接口(API),采用面向对象编程,具有很好的兼容性。扩展性和独立性[10-11]?使用其开发的上位机用户界面如图5所示,当数据采集存储完毕后,可选择读取数据功能,此时单片机将读取TF存储卡中相应块内所存数据,以串行方式发送到上位机,并存为转向文件。txt,以便进行数据的事后分析。 2 结语 本系统很好地解决了在某些恶劣实验环境条件下,数据的高精度采集海量存储以便事后分析的问题。此外当数据采集存储完毕后,用户可以通过上位机软件读取数据指令获取TF 存储卡中相应块内所存数据。txt文档,通过调用Matlab即可对数据做进一步的分析。同时该系统具有体积小。功耗低的优点.
|