新闻中心

EEPW首页 > 测试测量 > 设计应用 > USB接口多路高速数据采集系统的设计

USB接口多路高速数据采集系统的设计

作者:时间:2010-03-05来源:网络收藏


  
  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所示。


  
  系统软件设计
  
  传统的开发USB应用系统的步骤是:先用Windows DDK(设备驱动程序开发包)或第三方开发工具(如Driver Studio)开发USB驱动程序,然后用Visual C++编写DLL(动态连接库),最后再调用DLL来开发应用程序。本文介绍一种简单快速开发USB接口应用系统的方法,它直接在LABVIEW环境下通过NI-VISA开发能驱动用户USB系统的应用程序,完全避开了以前开发USB驱动程序的复杂性,大大缩短了开发周期。
  
  LABVIEW及其对VISA的调用
  
  VISA(Virtual Instrument Software Architecture)是一个用来与各种仪器总线进行通讯的高级应用编程接口(API),不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。当进行USB通信时,VISA提供了两类函数供LABVIEW调用:USB INSTR设备与USB RAW设备。USB INSTR设备是符合USBTMC协议的USB设备,可以通过使用USB INSTR类函数控制,通信时无需配置NI-VISA;而USB RAW设备是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时要配置NI-VISA。
  
  (1)配置NI-VISA的步骤
  
  ①使用Driver Development wizard(驱动程序开发向导)创建INF文档;
  
  ②安装INF文档,并安装使用INF文档的USB设备;
  
  ③使用NI-VISA Interactive Control(NI-VISA互动控制工具)对设备进行测试,以证实USB设备已正确安装,并获得USB设备的各属性值。
  
  (2)与Nl-VISA相配合的LABVIEW模板中VI子节点
  
  ViOpen,打开并指定VISA resource name的设备的连接;
  
  ViProperty,VISA设备的属性子节点,可以设置端点或传输方式;
  
  ViWrite,向VISA resource name指定的设备写入数据;
  
  ViRead,从VISA resource name指定的设备读出数据;
  
  ViClose,结束设备读写并关闭与指定设备的连接。
  
  (3)USB RAW设备读写的操作
  
  USB RAW设备的读写流程图如图5所示。



评论


相关推荐

技术专区

关闭