基于LabVIEW和ARM嵌入式数据采集与远程传输控制系统

2015-09-09 11:54:33   来源:eefocus   

关键字: LabVIEW  ARM  数据采集  远程传输控制

 基于嵌入式网络的远程数据采集系统具有不受地理环境、气候、时间的影响,小型便携,使用灵活方便,交互操作性好,传输速率高,可靠性高,功耗低和移动性好等优点。目前常用的嵌入式CPU中,ARM由于性价比在同类产品中比较突出,目前用得越来越多,尤其是结合开源的嵌入式Linux操作系统以后,更是得到越来越多设计者的青睐。LabVIW作为一种功能强大,简单易用和设计灵活的图形化编程语言,已经广泛地被工业界、学术界和研究实验室所接受,越来越多地应用在虚拟仪器、测试测量、数据分析、信号处理以及远程控制中。本设计中,远程数据采集系统采用基于ARM和嵌入式Linux的方案来实现。采用高性能的ARM嵌入式微处理器Samsung S3C2440作为系统的核心,结合数据采集、下变频、存储模块,实现了数据高速实时采集。同时,利用处理器外部配备的以太网控制器CS8900完成与主机上运行的LabVIEW服务器通信,实现数据的传输与系统的远程控制。

  1 系统整体结构

  采用SamsungS3C2440作为前端数据采集系统的核心控制器件。系统的整体设计任务分为信号采集与下变频、数据存储与传输、信号显示与处理分析等。整体设计方案构架见图1。信号采集部分采用ADI公司的AD9244完成,AD9244是一款14 bit,40/65 MSPS的高性能ADC。为了满足AD9244差分输入的要求,在信号的输入端配合了AD8138低失真单端转差分ADC驱动芯片。信号采集完成后,送至ADC6620正交数字下变频器(Digital Down Conversion,DDC)处理,经过抽取和滤波后的I,Q两路正交信号在其输出的数据有效以及I/Q指示信号的配合下,由FPGA产生静态随机存取存储器(static Random Access Memory,SRAM)存储时序并存储至64 K×16 bit的SRAM中。

整体设计方案构架

  在FPGA中主要完成SRAM读写时序产生、SRAM读写地址生成、数据通道选择等工作,FPGA中的逻辑在一个16 bit的控制字寄存器的控制下有序地工作。当SRAM中存储一定量的数据后产生中断信号,提示ARM将数据取走。为了提高系统的速度,ARM采用直接数据存储(Direct Memory Address,DMA)方式读取数据。之后运行在ARM上的客户端程序将数据通过网络发送给远程主机。远程主机上的LabVIEW服务器程序对收到的数据进行显示、频谱分析、存储回放等处理,同时远程主机的控制信号以及为下变频器ADC6620设计的滤波器文件也可以通过网络发送给客户端,实现远程控制。

  2 现场数据采集系统的硬件设计

  2.1 ADC设计

  外部模拟信号从SMA(Sub Miniature-A)接口输入,隔离直流后进入AD8138 ADC驱动芯片,AD8138将单路输入信号变成两路差分信号,送至AD9244转换。AD9244中几个重要引脚的含义及接法:

  a)CML(Common Mode Reference):串联一个0.1μF的电容后接地。

  b)DCS(Duty Cycle Stabilizer):接+5 V电源时表示转换时钟为50%占空比,接地表示转换时钟的上升沿与下降沿均由外界控制。本设计中DCS接+5 V电源。

  c)SENSE(Internal Reference Control):接地时将输入信号峰峰值的范围限制为1 V,接VREF时将输入信号峰峰值的范围限制为2 V。本设计中SENSE接VREF。

  d)DFS(Data Format Select):接+5 V电源时输出数据格式为补码,接地时为直接二进制码输出。由于ADC6620将其输入数据解释成补码,本设计中DFS接+5 V电源。

  2.2 ADC6620设计

  AD6620的任务是将高速数据流变成当前可实时处理的中低速数据流。在本设计中,AD6620数据输入端代表指数含义的3位(EXP0~EXP2)接地,且工作在单输入通道模式下(A/B=3.3 V),以模式0接收来自于ARM的配置信息(MODE=GND),采用并行方式输出数据(PAR/SER=3.3 V)。

  2.3 其它设计

  本设计所采用的ARM开发板是由广州友善之臂公司所生产的QQ2440V3,其上有一个44针的系统总线接口,它与FPGA连接起来完成数据与控制信息的传输。FPGA与SRAM的设计比较简单,这里不再赘述。

  3 数据采集系统的软件设计

  为完成系统任务,需要实现几个方面的软件设计:

  a)正交数字下变频器AD6620滤波器以及控制寄存器设计。

  b)在FPGA上实现系统控制、SRAM读写地址生成、数据通道选择等功能的Verilog HDL程序。

  c)ARM上基于嵌入式Linux操作系统的数据采集硬件驱动程序。

  d)ARM上客户端应用程序。

  e)远程主机上基于LabVIEW的服务器以及显示、频谱分析、存储与回放程序。

  3.1 AD6620滤波器及控制寄存器设计

  AD公司专门针对AD6620芯片推出了滤波器设计软件fltrdsn以及监视控制软件AD6620,但该软件是基于计算机并口与AD6620芯片连接的,不适应设计中远程数据传输与控制、多客户端的任务要求。可以利用该软件将设计成功的滤波器以及配置文件保存下来,利用LabVIEW的文件处理功能自动将信息提取出来,通过网络远程配置AD6620。

  3.2 FPGA逻辑设计

  FPGA内部逻辑电路结构见图2。考虑到后续设计的需要,FPGA内部使用ARM地址总线的低3位来选择当前操作的模块,具体的地址与内部模块对应关系见表1。

具体的地址与内部模块对应关系

FPGA内部逻辑电路结构

  图2中各模块功能进一步说明如下:

  a)Input_db_part:双向数据总线分离。配合由Control_register送来的控制信号,在Conf_6620有效时将数据总线上的数据送至Config_6620模块,完成AD6620配置,在Fetch_sram信号有效时将读SRAM得到的数据传送至ARM数据总线。

  b)Control_register:控制寄存器。内部模块有序工作的核心,具体的控制定义见表2。

具体的控制定义

  c)Config_6620:配置AD6620。此模块在Conf 6620位有效时接收由ARM传来的AD6620配置信息,完成DDC滤波器和控制寄存器配置。它除了本身使用ARM地址总线的3位ARM ADD[3:1]作为FPGA内部模块选择之外,还用了ARM ADD[6:4]作为AD6620的外部接口寄存器地址。Rdy in信号用于指示写入操作成功,ARM检测到此信号有效后,进行下一次的写操作。

  d)PII:锁相环。Cyclone EP1C6Q240中有2个锁相环模块,设计中使用了其中的一个将20 MHz的时钟倍频至50 MHz,供AD9244,AD6620以及FPGA内部使用。

  e)Ad_to_sram:AD6620输出数据写入SRAM时序产生模块。AD6620工作在单通道模式时典型输出时序见图。

  此模块主要完成的功能有:用2个数据锁存器在DV与IQ信号的控制下锁存I路和Q路数据,产生写SRAM所需的地址。由于AD6620抽取率较高的缘故,输出数据率一般较低,在模块中使用了状态机在2次有效数据期间产生写SRAM的时序。此外,当写地址到达设定值时,模块产生写溢出中断,提示ARM改变控制寄存器内容,读取数据。

  a)Read_add_gen:读地址产生。在Fetch_sram位的控制下,产生读SRAM时的地址,当读地址到达设定值时,产生读溢出中断,提示ARM改变控制寄存器内容,进行下一步操作。

[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0909/article_13061.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文