打印

基于CY7C68001的USB多路高速数据采集系统

[复制链接]
2456|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shibalihuandao|  楼主 | 2014-8-31 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
系统总体设计方案
      本文提出了一种基于LABVIEW的USB接口高速数据采集系统的设计,充分利用DSP丰富的片上外设以及高性能的数字信号处理能力,将采集的数据经DSP处理后通过高速USB接口传输到PC机上,通过LABVIEW软件按照用户的特定要求来处理并显示。
      TMS320F2812型DSP芯片是TI公司推出的具有高速处理能力的高精度32位定点数字信号控制器,指令速度高达150MIPS,片内集成了模数转换器(A/D转换器)、脉宽调制电路、捕获单元、光电编码器、串行外设接口等模块,为进一步拓展DSP的应用领域提供了丰富的资源。本设计采用TMS320F2812芯片(DSP)作为数据采集与控制单元,以CYPRESS公司的高速USB接口芯片CY7C68001为基础,利用DSP片上A/D转换器采集数据,经处理后把数据通过USB总线传输至PC机,PC机接收到数据后按照用户的要求通过LABVIEW处理并显示数据。该系统主要有三部分组成:4通道被测信号调理部分、数据采集控制处理部分和上位机控制面板部分,系统总体框图如图1所示。
系统硬件设计
1、信号调理模块
      由于被测输入信号范围为-15V~+15V,而DSP片上高速A/D转换器要求输入信号必须为0~3V,所以需要对被测信号进行调理。
      信号调理模块主要由高速运算放大器AD8028组成。很多运放都有这样一个特点:当输入信号接近门槛电压时,输出从一个差分对到另一个差分对变换时会产生失真,再加上信号调理模块对输入信号衰减的比例很大,如果设计不当误差会更大,因此运放的选择非常关键。AD8028是AnalogDevices公司的轨到轨输入输出的高速运算放大器,工作电压2.7V-12V,共模抑制比110dB,带宽190MHz,压摆率100V/μS,它有一个突出的优点:即允许用户通过片上特定的引脚选择门槛电压,这无疑大大减小了失真,因此AD8028是一个理想的选择,其单通道信号调理模块电路图如图2所示。
2、数据采集模块
      DSP片上ADC模块是可配置为2个独立的8通道模块、也可以级联构成一个16通道的带流水线的12位ADC,最高采样速率12.5MHz,流水线转换时间是80ns,单次转换时间是200ns。该模块主要由前向模拟多路复用开关、采样/保持电路、变换内核、结果寄存器、排序器、电压参考等部分组成,ADC模块的功能框图如图3所示。
USB从接口CY7C68001模块
      CY7C68001集成有USB2.0收发器(物理层)、USB2.0串行接口引擎SIE(链路层)、4kB的FIFO和电压调节器、锁相环,支持高速(480Mb/s)或全速(12Mb/s)传输,3.3V操作电压,具有同步与异步的FIFO接口,支持USB2.0协议要求的全部4种传输方式(控制传输、中断传输、批量传输和同步传输),可以满足用户对各种数据传输方式的需求。片上的串行接口处理器(SIE)能完成大部分的USB协议操作,使用户可以摆脱复杂的协议细节,简化用户配置代码,加快程序开发过程。但是由于不带MCU内核,所以USB应用层协议应该由DSP编程实现,USB固件的加载必须靠DSP控制来完成。
      本设计将CY7C68001映射为DSP的外设,占用DSP的外扩区域XINTF0空间,地址分配如下:FIFO2,FIFO4,FIFO6,FIFO8和命令口的地址分别为000,001,010,011,100,采用并行异步读写方式完成二者之间数据和命令的交换。当CY7C68001的地址线FIFOADR[2:0]为100时,选中CY7C68001的命令口,通过CY7C68001的命令口,可以访问其内部37个寄存器、Endpoint0缓冲器(64个字节FIFO)和描述表(500个字节FIFO)等。CY7C68001中断信号INT#和4个状态信号READY、FLAGA、FLAGB、FLAGC分别与DSP的外部中断1(XINT1),GPIOA0,GPIOA1,GPIOA2,GPIOA3相连。在实际应用中,由于通信速度达480Mb/s,所以要对电源进行退耦处理,另外CY7C68001最好使用24MHz有源晶振以增强系统的抗干扰能力,硬件电路图如图4所示。

沙发
shibalihuandao|  楼主 | 2014-8-31 11:02 | 只看该作者
系统软件设计
      传统的开发USB应用系统的步骤是:先用WindowsDDK(设备驱动程序开发包)或第三方开发工具(如DriverStudio)开发USB驱动程序,然后用VisualC++编写DLL(动态连接库),最后再调用DLL来开发应用程序。本文介绍一种简单快速开发USB接口应用系统的方法,它直接在LABVIEW环境下通过NI-VISA开发能驱动用户USB系统的应用程序,完全避开了以前开发USB驱动程序的复杂性,大大缩短了开发周期。
1、LABVIEW及其对VISA的调用 
      VISA(VirtualInstrumentSoftwareArchitecture)是一个用来与各种仪器总线进行通讯的高级应用编程接口(API),不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。当进行USB通信时,VISA提供了两类函数供LABVIEW调用:USBINSTR设备与USBRAW设备。USBINSTR设备是符合USBTMC协议的USB设备,可以通过使用USBINSTR类函数控制,通信时无需配置NI-VISA;而USBRAW设备是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时要配置NI-VISA。
(1)配置NI-VISA的步骤 
①使用DriverDevelopmentwizard(驱动程序开发向导)创建INF文档;
②安装INF文档,并安装使用INF文档的USB设备;
③使用NI-VISAInteractiveControl(NI-VISA互动控制工具)对设备进行测试,以证实USB设备已正确安装,并获得USB设备的各属性值。
(2)与Nl-VISA相配合的LABVIEW模板中VI子节点 
ViOpen,打开并指定VISAresourcename的设备的连接;
ViProperty,VISA设备的属性子节点,可以设置端点或传输方式;
ViWrite,向VISAresourcename指定的设备写入数据;
ViRead,从VISAresourcename指定的设备读出数据;
ViClose,结束设备读写并关闭与指定设备的连接。 
(3)USBRAW设备读写的操作
USBRAW设备的读写流程图如图5所示。
2、前面板部分
      LABVIEW是NI公司开发的一种基于图形程序的编程语言,用户利用创建和调用子程序的方法编写程序,使创建的程序模块化且编制简单直观。一个LABVIEW程序分为3部分;前面板、框图程序和图标/接线端口。前面板提供与用户交互的图形化界面,通过面板上的各种按钮、开关等控件可以实现对整个系统的操作或控制;实时波形显示窗口能对产生的信号波形进行预览和监视。还可以通过LABVIEW波形显示器自带的功能对波形进行观察和测量,对稳定的周期信号可以直接准确地读出幅值和频率,采集的正弦波波形如图6所示
结束语
      随着电子计算机的广泛应用,社会的数字化程度越来越高,数据采集也越来越重要,本系统是一种通用的高速数据采集系统,可用于生物电波、电子学频谱、声波分析等瞬态信号的实时采集和观察等场合。其中基于USB总线的高速数据采集系统具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,因而具有良好的应用前景和实用价值。





使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

1165

帖子

4

粉丝