1 引言
数据采集记录仪在工业控制领域中有着十分重要的意义。在许多工业场合。尤其是对于一些分散的、无人值守的现场.需要对数据进行定时采集以便及时了解现场的情况.并根据情况发送控制命令。以前这些系统大多采用普通的单片机来实现.其缺陷是明显的.如系统资源短缺、指令不够精简、CPU操作频率低等,大大地限制了其使用场合。现在广泛使用的是ARM和PC机通过串行口构成的多微机监测系统.但仍存在问题,比如多仪器问的精确同步。
本文提出了一种基于ARM和GPS(Global Positioning System)的数据采集记录仪,并结合uC/OS—II嵌入式实时操作系统来实现。该系统具有良好的环境适应性、多仪器间的精确同步性、人机交互性、稳定性、高效性,很适合运用于电化学实验、腐蚀测量工程等领域。
2 系统总体结构设计
本数据采集记录仪主要包括两大部分:数据采集与数据存储传输。本文主要介绍数据采集模块的设计与实现。整个系统的系统功能模块如图1所示。
该系统要求采集4路电压通路.采集时间为100ms~255h.并连续记录ON、OFF电位至少24小时(不需要记录整个波形):同时由于本数据采集记录仪是一个多仪器系统,要求所有仪器都能够精确同步。因此.该系统要求每分钟,秒钟记录一次测试时间(GPS时间)。并将此时间与其它仪器记录时间相比。其它仪器记录时间用GPS同步。同时,该系统要求支持本地数据存储和u盘数据保存功能.且u盘数据保存的可存储容量取决于u盘的整体容量:该系统支持多种数据通讯功能。如Zigbee通讯、SPI总线接口通讯、I2C总线接口通讯、UART异步串行通讯。
图1 数据采集记录仪的功能模块图
结合图1,可得整个系统的实现方案.如下:
1)与硬件平台相关的软件部分分析与实现,并编写相应的底层函数:
2)进行uC/OS—II嵌入式实时操作系统在LPC2220微处理器的移植:
3)系统各功能模块的分析与实现:
4)系统调试及改进。
该系统采用uC/OS-II嵌入式实时操作系统作为中问件,并将与硬件平台相关的部分与相应功能模块的实现隔离开来,尽可能地实现硬件与软件分开.这样方便进行系统设计。uC/OS-II嵌入式实时操作系统是一个多任务的实时内核,其允许建立多达63个用户任务.并根据程序建立和运行的情况.决定在什么时候从一个任务切换到另一个任务。同时。任务的优先级也是uC/OS-II嵌入式实时操作系统必须得到的信息之一。具体的任务划分如图2所示:
图2 系统任务划分图
3 数据采集模块原理与底层设计
3.1 采集信号分析
由于本数据采集记录仪主要应用于电化学实验及腐蚀测量工程中.其对信号采集与记录上有较高的要求.如下:
1) 3路直流0~±2.5V。14~16bit,分辨值0.1mV;
2) 1路交流0~±40v 14~16bit,分辨值0.1mV,自动档量程预选;
3) 4路通用10位AD.范围0~5v(预留)。
信号的采集过程为:首先采集并存储128个信号采样点,计算并存储此128个信号采样点中8个连续数据点的“斜率”。8个连续数据点的“斜率”计算算法为:首先每2个连续数据点计算一次斜率K1=(Y1-Y2)/(X1-X2).一次循环后得到4个斜率.对4个斜率取平均值并将此作为8个连续数据点的“斜率”。然后对前后一段时间的斜率的大小与走势进行比较.并根据相应的阈值来确定ON/OFF电位的位置。
3.2 数据采集
由于LPC2220内部提供一个8路10位A/D转换器.且转换时间低至2.44us捕足该系统对信号采集的基本要求。因此在进行数据采集的时候.就直接利用其内部提供的A/D转换器。LPC2220拥有一个10位8路A/D转换器.A/D转换器的基本时钟由VPB时钟提供.每个转换器包含一个可编程分频器,可将时钟调整至逐次逼迫转换所需的4.5MHz(最大)。完全满足精度要求的转换需要11个转换时钟。
此MD转换器的主要特性如下:
* 1个10位逐次逼近式模数转换器:
* 具有掉电模式:
* 10位转换时间小于2.44μs;
* 一个或多个输入的Burst转换模式:
启动A/D转换器的方式非常灵活.既可以单路软件启动,也可以设置为BURST模式对几路信号逐个循环采样。与其他LPC2000系列单片机相比.LPC2220增加了独立的基准电压源引脚.这对提高转换精度很有利。
由于被采集信号相对较复杂,且在ON/OFF电位处可能有较大的纹波,而实验证明最大程度的硬件滤波也无法达到非常理想的要求,因此必须使用软件滤波来减少纹波对信号采样的影响.具体滤波方法主要有中值/中值平均滤波法、限幅,限幅平均滤波法、算术/算术平均滤波法、消抖,消抖平均滤波法、加权递推,加权递推平均滤波法等。该系统主要采用中值平均滤波法与算术平均滤波法相结合的方法。
与数据采集有关的函数调用如下:
void ADInit(uint8 channel) //ADC初始化
uint32 ADRead(uint8 channel) //切换到ADC的任何一个通道并读取转换数据
void ADProcessfuint8*data) //数据处理与ON/OFF电位确定
数据采集模块基本流程图如图3所示。
图3 数据采集模块基本流秤图
3.3 数据采集模块测试
将系统数据采集模块输入端连接到现场传感器数据输出端.并结合ADSI.2中的AXD调试环境针对用户的相应操作对整个系统进行调试。测试结果如下:
1) 单通道数据采集测试结果及分析:单通道数据采集结果1如图4(a),ON电位为-0559.0mV,OFF电位为-0594.OmV,测量长度为00000000.4 S。数据采集结果2如图4(b)。上一次ON电位为-0589.0mV.OFF电位为-0584.0mv:当前ON电位为-0492.2mV.OFF电位为-0492.4mV.测量长度为00013467.8m。测试结果符合信号要求。
2) 四通道数据采集测试结果及分析:四通道数据采集如图5所示通道1数据为--0848inV.通道2数据为--0726mV,通道3数据-0023mV.通道4数据为-0152mv测量长度为147879221m。四个通道数据都正常.偏离实际信号数据在误差范围内。
图4 单通道数据采集结果
图5 四通道数据采集结果
4 结束语
本数据采集记录仪在LPC2220微控制器的硬件系统支持下.结合uC/OS一Ⅱ嵌入式实时操作系统和GPS全球定位系统实现对工业信号进行采集、记录、传输(无线与有线)、显示等功能。并具有以下创新点:
1)结合uCOS嵌入式实时操作系统进行系统设计.可以更大程度地提高系统的稳定性、高效性、智能性及降低系统开发的难度:
2)采用GPS全球定位系统技术辅助系统功能设计.可以实现各子系统间的精确同步,保证系统的稳定性;
3)提供多种形式的数据存储与转存接口;
4)提供Zigbee无线通讯,可以多系统组网,相互协调运作。
本文重点介绍的数据采集模块是整个数据记录仪的重要组成部分,具有高效性、高速性、实时性、智能性,精确同步性等特点。