美章网 资料文库 网络数据采集测试系统设计范文

网络数据采集测试系统设计范文

本站小编为你精心准备了网络数据采集测试系统设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

网络数据采集测试系统设计

摘要:

网络化虚拟仪器是继虚拟仪器之后仪器仪表领域出现的新的发展方向,提出了将嵌入式系统、网络与虚拟仪器结合的技术路线,将信号的采集、处理、存储分布于不同的网络位置的实施方案。利用ARM嵌入式在现场采集数据,通过网络通信将信号处理和存储工作交给上位机负责,采用S3C44B0X为核心的开发环境,然后进行软件系统的搭建,包括移植μC/OSⅡ嵌入式操作系统,嵌入式图形界面系统μC/GUI,ADC及网卡的驱动程序编写以及移植LwIP实现TCP/IP协议等。测试结果表明,该系统的功能完善、操作十分方便,完全满足实际应用的需要,可以有效地组织和管理数据以及构架网络数据库。

关键词:

虚拟仪器;ARM;LabVIEW;S3C44B0X;μC/OSⅡ;LwIP

虚拟仪器(VirtualInstrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向[1]。这种结合有两种方式:一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器;另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式[2]。使用网络化虚拟仪器技术,可以不受地点、时间的约束,获取准确的测量信息或数据,与传统的仪器、测量、测试相比,带来了诸多便利[3]。在网络化虚拟仪器中,被测对象可通过测试现场的普通仪器设备,将测得的数据通过网络传输给异地的精密测量设备或高档次的微机化仪器去分析、处理,能实现测量信息的共享,可掌握网络节点处信息实时变化的趋势;此外,也可通过具有网络传输功能的仪器将数据传至原端即现场。采用自动抄表系统,可提高抄表的准确性,能减少因估计或誊写而可能出现的帐单错误(供用电、水、燃气、热能等)。管理部门因此能及时获得准确的数据信息,用户也不再需要与抄表员预约上门抄表时间,迅速查询帐单。使用网络化虚拟仪器,采用网络测量技术,可以大幅度提高测量效率,降低监测成本以及减少计量测试工作的周期[4]。

1硬件设计

本文的目的是充分发挥分布式虚拟仪器的概念,将嵌入式系统,网络,虚拟仪器联系起来,将信号的采集、处理、存储分布于不同的网络位置。结合嵌入式系统的灵活性,避免其计算能力不强的缺点,将信号处理工作交给上位机负责。系统结构如图1所示。下位机的虚拟仪器负责信号的采集,通过以太网将数据传输到上位机,利用上位机强大的计算能力和海量存储空间完成对原始数据的后期处理。

1.1以太网设备本系统采用的网络RTL8019AS是一种高度集成的以太网控制芯片,能简单地实现PlugandPlay并兼容NE2000。RTL8019AS芯片内部集成了DMA控制器,ISA总线控制器和集成16KSRAM、网络PHY收发器。用户可以通过DMA方式把需要发送的数据写入片内SRAM中,让芯片自动将数据发送出去,而芯片在接收到数据后,用户也可以通过DMA方式将其读出。RTL8019AS的详细介绍请见RTL8019AS数据手册。了解了RTL8019AS所提供的资源与硬件接口,便可以设计RTL8019AS与S3C44B0X的硬件电路。在网络通信模块电路中,RTL8019AS与处理器S3C44B0X之间的信号连接关系如图2所示。

1.2电源、时钟及复位电路在本系统中,采用的是5V和3.4V的直流稳压电源,其中,S3C44B0X核心使用2.5V电源,外围器件需3.4V电源,另外部分器件需5V电源,5V电路加了工作指示灯,并且加了二极管对电路加以保护。晶振电路用于向CPU及其他电路提供工作时钟。在该系统中,S3C44BOX使用常用的无源晶振,电路如图3所示。根据S3C44B0X的最高工作频率以及PLL电路的工作方式,系统选择了10MHz的有源晶振,10MHz的晶振频率经过S3C44B0X片内的PLL电路倍频后,最高可以达66MHz。片内的PLL电路兼有频率放大和信号提纯的功能,因此,系统可以以较低的外部时钟信号获得较高的工作频率,以降低因高速开关时钟所造成的高频噪声。同时在系统中还有频率为32.768kHz的实时时钟晶振源,在USB接口芯片处也有一个48MHz的晶振。在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由IMP811芯片完成,复位电路如图4所示。该复位电路的工作原理如下:IMP811是一个可靠性很高的复位芯片,当用户按下按钮S1时或者RST_IN送过来一个低电平时,Reset端输出为低电平,系统进入复位状态,松开S1时,系统即可进入正常工作状态。

2实时操作系统

实时操作系统,简称RTOS,具体指系统能及时响应来自外部事件的请求,在确定的时间处理该事件,统一控制实时任务一致运行。RTOS的开发工具允许用户针对不同的应用对象对RTOS的内核进行裁剪、压缩,以适应各类应用,并提供应用程序的调试环境。

2.1μC/OSⅡ的系统结构μC/OSⅡ嵌入式实时操作系统是JeanJ.Labrosse开发的一个完整的、可移植、固化、裁剪的占先式实时多任务内核,目前已经在超过40种不同架构的微处理器上运行,图5是本系统的软硬件体系结构。初始化程序是针对S3C44B0X使用汇编语言编写的。在将控制权交给操作系统前,初始化最基本的硬件设备。主要工作是配置SDRAM并将操作系统代码从FLASH拷贝到SDRAM中。

2.2小键盘驱动编写系统采用智能显示驱动芯片HD7279连接一个4×4键盘和S3C44B0X通信。HD7279A是一片具有串行可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279A内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。

3硬件设计

3.1模块总体设计整个系统的信号流程如图6所示,信号通过ADC后以DMA方式进入两个8MB的SDRAM,二者构成一对乒乓存储系统,一侧负责采集信号的缓存,同时另一侧负责向上位机发送,二者交替工作,保证信号流采集和发送的连续。对于网络通信模块,由于μC/OSⅡ只是一个实时的任务调度及通信内核,缺少对网络协议的支持,所以需要将LwIP(LightWeightIPprotocol)移植到μC/OSⅡ上,使其支持网络功能。本章后面部分将重点介绍NE2000兼容网卡RTL8019AS驱动程序在嵌入式系统中的编写。

3.2信号调理模块S3C44B0X内部具有一个逐次逼近型8路模拟信号输入的10位ADC,但是不具有保持采样保持(S/H)电路,不能用于快速变化的信号采集,因此需要在前级信号调理电路中加入采样保持功能。在此系统中,采用了MicrochipTechnology公司的模拟增益可编程运放(PGA)MCP6S28芯片,传感器采集的信号接入MCP6S28的通道输入端,输出VOUT接入处理器内部的A/D转换器的信号输入端AIN管脚。MCP6S28的增益可设置为1~32V/V,它具有多路选择输入(MUX)模块,共有8路输入。MCP6S28具有SPI接口,故将其与S3C44B0X对应的SPI管脚连接即可,用于选择增益水平和输入通道。对MCP6S28进行操作的控制字节和数据字节均从SI引脚输入,并在写入数据的串行时钟(SCK)上升沿被锁存。

3.3A/D采样器程序设计A/D转换由S3C44B0X内部模/数转换器(ADC)完成,它是一个10位、逐次逼近型的ADC,有8路模拟信号输入,其内部结构中包括模拟输入多路复用器,自动调零比较器,时钟产生器,10位逐次逼近寄存器(SAR),输出寄存器。这个ADC还提供可编程选择的睡眠模式,以节省功耗。S3C44B0X内部有3个与A/D转换有关的寄存器:控制寄存器ADCCON、预分频寄存器ADCPSR、数据寄存器ADCDAT。ADCPSR中存储预置比例因子,取值范围是0~255,完成一次A/D转换至少需要16个A/D时钟周期,有:A/D转换总时钟数=2×(预置比例因子+1)×16A/D的最高采样速率是100KS/s,即每个采样周期为10μs。ARM7运行在66MHz主频下,每个周期为15.152ns。这样每个采样周期包括660个主频周期。ARM7具有0.97MIPS/MHz的指令效率,660个主频周期可以运行约640条指令。在计数器触发A/D采样的情况下,处理器的工作是每采样周期从A/D读取一次数据并保存到RAM中,代码如下:LDRR0,[R1]:寄存器R1中保存了A/D数据寄存器的地址,需要3周期。STRR0,[R2,#4]:寄存器R2中保存了RAM中数据存储空间的起始地址;需要2周期。这个操作需要5个主频周期。利用剩余的转换时间,ARM7可以完成数据的打包发送,以及其他的任务。在进行A/D转换时,ARM要禁止一切可屏蔽中断。

4LabVIEW上位机模块设计

上位机的功能有两方面:一是负责数据的实时显示,参数测量和存储;二是对下位机的远程控制。监测人员能够直观地获得测试结果,很方便地对远程数据采集系统进行控制。本系统的上位机系统利用虚拟仪器技术和LabVIEW图形化软件开发集成环境,设计了该数据采集系统的数据分析、存储和远程控制模块。测试结果表明,该数据分析处理模块的功能比较完善,操作十分方便,完全满足实际应用的需要。

4.1网络数据通信接口程序设计上位机和下位机通信的传输内容可以分为测控命令和数据两种。其中下位机向PC机发送的数据,数据量大、对传输速度要求较高、对可靠性的要求不很严格。UDP是面向非连接的方式,提供的是不可靠的数据传输,但实现起来比较简单,速度快、实时性好,并且支持广播和组播,同时在单一、封闭局域网中可靠性也很高。因此用一般的UDP通信就可以达到很好的可靠性以满足数据传输的要求。一个简单的UDP数据接收、显示程序如图7所示。程序分为UDP打开,UDP读取和UDP关闭三个环节。首先指定本地端口号,本文为61557,这个端口必须与下位机设置的目标远程端口一致。在运行此程序前,必须先运行下位机程序。UDPRead节点设置UDP数据报最大字节数,最大值为548,此处设置为100,若超过本值,Windows将提示出错信息。

4.2控制程序设计程序界面如图8所示,观测人员可以通过示波器的波形显示及时调整远端采集设备的相应参数。这样可以充分利用A/D转换器的最大输入量程(2.5V),尽可能提高测量精度。另一个可以控制的参数是采样速率,当被测信号的频率较低时可以使用低速率采样,在保证失真度的情况下降低数据流,避免因网络拥挤产生数据丢失。设备重启控制用于使下位机的系统软件及硬件寄存器完全恢复到初始状态。控制信号的数据量较小,对传输的可靠性要求严格,故采用TCP协议。对于LabVIEW程序的设计采用事件驱动模式,当增益水平和采样速率的List控件值改变时,驱动主程序向下位机发送控制信号。向下位机发送的是增益水平或者采样速率的数值。因为网络以及系统的延时,效果通常要经过一段时间才能反映出来。

4.3下位机响应程序编写下位机的TCP/IP协议栈是通过LwIP实现的,LwIP提供一系列函数实现IP,TCP,UDP等的操作。其中tcp_input(),tcp_process(),tcp_receive()与TCP输入处理有关。函数netconnlisten()让系统进入TCP监听状态。当TCP连接建立后,tcp_receive()把接收到的数据tcp_data传给上级应用程序。再判断tcp_data数值的大小,分为以下三种情况:若为0X11111111,使程序跳转到系统初始位置,重新设置各种设备。若为1~32,调用SPI控制程序,给数据寄存器SPDR赋值,再通过MOSI发送给MCP6S28的增益寄存器。若tcp_data≤1000,则为采样速率控制量,需修改A/D转换预置比例因子寄存器ADCPSR,修改的值根据芯片手册推导。

4.4数据文件储存程序设计由于二进制文件存储速度快,冗余数据少,格式也最为紧凑,因此在进行大量数据采集时,往往采用这种文件格式。图9中是用底层函数实现的二进制文件的输入VI,可以实时存储通过UDP接收的数据,首先用Open/Creat/ReplaceFileVI新建一个文件,然后在WhileLoop中用WriteFile函数将网络通信数据写入文件,最后用CloseFile函数关闭文件。

5结论

本文基于分布式虚拟仪器概念,设计了网络化数据采集和测试系统,基于ARM的下位机和基于LabVIEW的上位机通过网络协同工作,实现了数据的实时采集、处理和存储。首先针对基于ARM微处理器S3C44B0X的嵌入式采集系统进行整体开发,将嵌入式操作系统μC/OSII移植到本系统中,开发了网卡,数据采集模块的底层驱动程序。同时,移植μC/GUI图形用户接口,编写了键盘驱动,使嵌入式系统具有更友好的人机界面,本系统将虚拟仪器技术和数据库相结合,引入LabVIEWSQL及相关模型,为有效地组织和管理数据以及构架网络数据库,打下了良好的基础。

作者:徐立艳 单位:通辽职业学院