随着现代科学技术的发展和计算机技术的普及,高速数据采集系统已应用于越来越多的场合,如通信、雷达、生物医学、机器人、语音和图像处理等领域。本文介绍的数据采集处理系统采用cpld控制ads8364完成数据的a/d转换,转换后的数据预先存储到fifo中,再经dsp进行前端的数字信号处理后,通过usb总线传给上位机,并在上位机上进行存储、显示和分析等。该系统完全可以满足信号采集处理对高精度及实时性的要求。
1 系统原理
数据采集处理系统主要由前端信号调理电路、adc芯片ads8364、cpld芯片epm3128a、dsp芯片tms320f2812、usb芯片cy7c68013及其外围电路组成。系统原理框图如图l所示。
系统主要完成的任务为:dsp接收上位机通过usb总线发送的命令,完成系统工作参数的设置,并通过模拟地址/数据总线与cpld进行通信,向cpld发送控制命令;对外部的多路模拟量输入进行信号调理,在cpld控制下进行单通道或多通道a/d转换,将采集到的数据存储在一片fifo芯片中;当fifo中存储的数据半满时,对dsp产生一个中断信号,dsp收到此中断信号后,取出fifo中的部分数据,进行前端数字信号处理,将处理完毕的数据通过usb总线传给上位机;上位机实现各种图形界面操作和后端信号处理,对所采集的信号进行分析。系统可对输入的多路模拟信号进行同步采样,这就使得采集到的数据不仅含有模拟信号的幅度特性,同时还保持不同模拟信号之间的相位差异;采样频率可以预置,以适应不同速率的采样要求。
2 系统硬件
系统硬件包括信号调理模块、a/d转换模块、dsp处理器模块、cpld逻辑控制模块以及usb通信模块。
2.1 信号调理模块的设计
外部的多路模拟量输入信号往往是微弱的传感器信号,信号的幅值较小,为了方便且不失一般性,假定其幅值范围为o~25mv。ads8364待转换的模拟输入电压范围应保持在agnd-0.3v和avdd+o.3v之间。这里选用低功率变增益仪表放大器inal29对模拟量输入信号进行调理放大,将其放大为0~5v之间。
inal29是burr-browm公司的一种小功率通用仪表放大器,具有优异的精度和很宽的带宽,在增益高达100时,带宽达200khz。它可用单一外部电阻器调节其增益,调节范围为l~10000,其放大倍数计算公式为:
从而使放大输出电压在o~5v之间。信号调理模块原理图如图2所示。
2.2 a/d转换模块的设计
该模块采用了ti公司的高速、低功耗、六通道同步采样模/教转换器ads8364,它采用+5v工作电压,其6个模拟输入通道分为三组(a,b和c),每组都有一个adcs保持信号(holda,holdb和holdc),用来启动各组的aid转换,6个通道可以进行同步并行采样和转换。ads8364采用具有80db共模抑制能力的全差分输入通道,将其refin和refout引脚接到一起,为差分电路提供2.5v的参考电压。这里模拟量采用单端输入,将-in端接共模电压2.5v,+in端接前端信号调理模块的输出。
ads8364的时钟信号由外部提供,最高频率为5mhz,对应的采样频率是250khz。这里由cpld提供时钟信号,主要是考虑到cpld可以灵活地改变时钟频率,进而改变系统的采样频率。a/d转换完成后产生转换结束信号eoc。将ads8364的。byte引脚接低电平,使转换结果以16位的方式输出。地址/模式信号(a0,al,a2)决定ads8364的数据读取方式,可以选择的方式包括单通道、周期或fifo模式。将add引脚置为高电平,使得读出的数据中包含转换通道信息。考虑到数据采集处理系统的采样频率一般较高,如果用dsp直接控制ads8364的访问,将占用dsp较多的资源,同时对dsp的实时性要求也较高。因此在本系统设计中,用cpld实现ads8364的接口控制电路,并将转换结果存储在fifo芯片中,用dsp实现fifo芯片的输出接口。
dsp、cpld、ads8364及fifo之间的接口设计如图3所示。
2.3 dsp处理器模块的设计
dsp主要负责与usb通信模块交换数据、以模拟地址/数据总线的方式与cpld通信,实现对数据采集的控制,完成与fifo芯片的输出接口以及对采样后的数据进行前端数字信号处理(fir低通滤波)。这里选用ti公司的32位定点dsp tms320f2812 (以下简称f2812),它采用1.8v的内核电压,具有3.3v的外围接口电压,最高频率150mhz,片内有18k字的ram,128k字的高速flash。 2.4 cpld逻辑控制模块的设计
在该数据采集处理系统中,cpld是一个重要的组成部分。由cpld组成的逻辑控制模块接收dsp传送过来的动作命令,控制a/d转换模块进行数据采集,并提供对fifo的接口时序,实现转换数据的存储。这里选用altem公司的epm3128a芯片,它共有128个宏单元,2500个可用门。
cpld作为一个单独的控制执行结构.通过编写相应的verilog hdl代码,即可生成相应的操作电路,