DIY编程器网

标题: 基于DSP和ADS8364的高速数据采集处理系统 [打印本页]

作者: liyf    时间: 2012-1-16 14:27
标题: 基于DSP和ADS8364的高速数据采集处理系统
??? 随着现代科学技术的发展和计算机技术的普及,高速数据采集系统已应用于越来越多的场合,如通信、雷达、生物医学、机器人、语音和图像处理等领域。本文介绍的数据采集处理系统采用CPLD控制ADS8364完成数据的A/D转换,转换后的数据预先存储到FIFO中,再经DSP进行前端的数字信号处理后,通过USb总线传给上位机,并在上位机上进行存储、显示和分析等。该系统完全可以满足信号采集处理对高精度及实时性的要求。
1 系统原理
??? 数据采集处理系统主要由前端信号调理电路、ADC芯片ADS8364、CPLD芯片EPM3128A、DSP芯片TMS320F2812、USb芯片CY7C68013及其外围电路组成。系统原理框图如图l所示。



??? 从而使放大输出电压在O~5V之间。信号调理模块原理图如图2所示。




??? 在F2812的程序存储器中存储常用的数字信号处理算法,F2812在收到上位机通过USb总线发送的控制信息后,在中断函数中选择某种处理算法,同时向CPLD发出动作命令,控制A/D转换模块完成信号的采集并将采集到的数据存入FIFO中。当FIFO中数据达到半满时,向F2812提出中断申请,F2812响应此中断,在中断函数中实现对部分采样数据的读取,在主循环程序中根据上位机选定的处理算法完成数据的前端处理,然后将数据打包,通过USb总线传输给上位机。对于常用的数字信号处理算法在DSP上的实现,这里不再赘述。
3.2 USb固件程序设计
??? 固件负责辅助硬件让设备双向交换数据,其主要功能是:接收并处理USb驱动程序的请求及应用程序的控制指令。CYPRESS公司针对EZ-USb FX2系列芯片给出了一个Firmware库和Firmware框架(Frame Works),均采用Kei C5l开发。Firmware库提供了一些常量、数据结构、宏定义、函数来简化用户对芯片的使用。用户只需要在源程序中包含进fx2.h、fx2regs.h和fx2sdly.h,并且把Ezusb.1ib和UsbJmpTb.obj添加进项目即可。Firmware框架实现了初始化芯片、处理USb标准设备请求以及挂起状态下的电源管理等功能。该框架无需添加任何代码,将编译后产生的*.hex文件载入芯片就能与主机进行基本的USb通信,只是不能完成特定的任务。在本系统中,需要选择适当的传输方式,添加需要使用的端点(Endpoint),在框架预留的地方(如TD_Init()、TD_Poll()等函数中)添加初始化代码和完成特定功能的代码。
??? USb共有四种数据传输方式:控制传输、中断传输、块传输及同步传输,本系统中使用了控制传输和块传输。控制传输主要用来完成主机对设备的各种控制操作,即用来实现位于主机上的USb总线驱动程序以及编写的功能驱动程序对设备的各种控制操作;块传输主要用来完成主机和设备间的大批量数据传输以及对传输的数据进行错误检测(支持“错误重传”功能)。
3.3 USb驱动程序设计
??? CYPRESS FX2开发包中提供了一个通用的设备驱动程序Ezusb.sys,可用于基于EZ-USb FX2系列的芯片,能够完成基本的USb通信任务。本系统设计中,利用DDK对上述驱动程序进行了修改,将不常用的函数删除,同时添加了自己定义的函数。
3.4 上位机应用程序设计
??? 上位机应用程序主要实现与数据采集处理系统间的USb通信、向系统发送控制命令以及接收系统传送过来的数据并进行存储、处理与显示。在Win32系统中,各个设备被抽象为文件,应用程序通过文件操作API函数实现与驱动程序中某个设备的通信。USb通信常用的API函数有;CreateFile(),WriteFile(),ReadFile(),DeviceloControl(),CloseFile()等。在应用程序中,只需将上述函数添加到相应的功能模块中便可完成应用程序对USb设备的打开、读、写等操作,从而实现两者的通信。采用LabVIEW语言实现USb通信及仪器界面,而对于后端的信号处理算法则在VC++环境下实现并生成动态链接库文件(*.d11),方便LabVIEW的调用。图5为上位机上层应用程序的流程图。





??? 本文将TMS320F2812与ADS8364相结合,设计了一套数据采集处理系统。该系统采用uSb总线与上位机通信,充分发挥了USb2.O方便、快捷的优点;考虑到对实时性的要求,将某些特定的数字信号处理算法(如FIR滤波、快速FFT等)放到数据采集处理卡上由DSP快速完成。该系统采集精度高,速度快,并可同时采集多路信号。实践证明,该数据采集处理系统可适用于高精度、实时性信号的数据采集和处理,具有广泛的实用价值。
                          
                       
                          
                               




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2