微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > USB2.0接口和DSP构成的高速数据采集系统

USB2.0接口和DSP构成的高速数据采集系统

时间:09-01 来源:互联网 点击:


本方案中的固件设计思路如下


①使CY7C68013工作于异步从FIFO(Asynchronous Slave FIFO)模式。相应的寄存器操作为:IFCONFIG=0xCB。

CY7C68013具有多种工作方式,除了可以作为能够产生任意控制波形的主控芯片外,即使作为从设备,也可选择异步还是同步方式。由于DSP的关系,本方案选择异步从方式。

②将4KB的FIFO对应两个端点(EndPoint),即EndPoint2和EndPoint6。相应的寄存器操作为:EP2CFG=0xA0,EP6CFG=0xF2。

EndPoint2与EndPoint6分别对应2KB的内装中FIFO(下文分别称为 FIFO2、FIFO6),存放USB需要上传与接收的数据。其中EndPoint2为OUT型,负责从主机接收数据;EndPoint6为IN型,负责向主机发送数据。另外,EndPoint2与EndPoint6均采用批量(BULK)传输方式,这种方式相对于其它USB2.0定义的传输方式具有数据可靠、传输速率高等特点,是最常用的传输方式。

③对FIFO进行配置。相应的寄存器操作为:EP2FIFOCFG=0x11,EP6FIFOCFG=0x0D。

本方案将FIFO2、FIFO6设置成自动方式。这里所谓“自动”,是指在数据的传输过程中,不需要CY7C68013的8051内核参与。如有特殊需要可以设成手动方式,这样8051就可以对数据进行修改,如图6所示。另外还将FIFO配置成16位接口。

④其它操作。为了完善整个USB传输功能,提高固件的健壮性,还必须配以其它设计,这包括FIFO的自动清空复位,个性化命令等功能,在此就不进行详细讨论了。



3.2 驱动程序设计

USB系统驱动程序采用分层结构模型,分别为较高级的USB设备驱动程序和较低级的USB 函数层。其中USB函数层由两部分组成:较高级的通用串行总线驱动程序模块(USBD)和较低级的主控制器驱动程序模块(HCD)。在上述USB分层模块中,USB函数层(USBD及HCD)由Windows提供,负责管理USB设备驱动程序和USB控制器之间的通信;加载及卸载USB驱动程序;与USB 设备通用端点(EndPoint)建立通信并执行设备配置、数据与USB协议框架和打包格式的双向转换任务。目前Windows提供有多种USB设备驱动程序,但并不针对实时数据采集设备,因此USB设备驱动程序需由开发者自己编写。

开发USB设备驱动程序,可采用Numega公司的开发包Driver Works和Microsoft公司的2000DDK,并以VC++6.0作为辅助开发环境。Driver Works提供的驱动向导,可根据用户的需要,自动生成代码框架,减少了开发的难度,缩短了开发的周期。但是,Cypress公司为了方便用户开发USB 接口,在CY7C68013的开发包中提供了一个通用驱动程序,该程序可不加修改,经DDK编译后直接使用。在本设计方案中,采用的就是这个通用驱动程序。

3.3 应用程序设计

主机应用程序是主要实现从高速数据采集处理板该取处理后的数据、存储、显示处理结构以及向数据采集处理板发送控制命令。在Windows 2000下,我们使用的应用程序开发工具是VC++6.0。

4 系统工作原理

上电后,ADS5422一直工作,采样产生的数据是否存储到IDT72V2113中,由 C6203B的DX0引脚状态来决定。C6203B进行初始化,外部扩展总线的XCE3设置为同步FIFO读操作模式。DMA通道0配置为每次传输1帧,每帧 1024个半字,同步事件设置为外部中断4,触发极性为高电平,初始化定时器0,定时间隔为22ms。当外部同步信号到来时,启动定时器0,手动启动 DMA通道0,同时设置DX0为低电平。

ADS5422采样产生的数据开始写入IDT72V2113,当定时器0中断到来时,设置DX0为高电平,关闭 IDT72V2113的写使能,采样数据不再存储到IDT72V2113内。随着数据不断写入IDT72V2113,当其内部的数据量大于1023个半字时,IDT72V2113的将空标志信号(PAE)由低电平变为高电平,使得C6203B的外部中断信号有效,从而触发DMA传输,C6203B的DMA 通道0通过外部扩展总线(XB)读取1024个半字的数据,存储于内部RAM中,传输结束后向C6203B发送中断,通知C6203B处理数据。 C6203B处理完数据后,通过USB2.0接口发送处理结果,然后重新启动DMA通道0,进行下一次DMA传输。如此循环,直到处理完所有数据。当下一个外部同步信号到来时,进行下一轮数据采集处理过程。

5 总结

本文详细介绍了基于USB2.0接口和DSP的高速数据采集处理系统的系统构成、硬件连接以及USB2.0驱动程序和固件程序的开发。经实际验证,系统运行可靠,是一种比较好的高速数据采集与处理的解决方案。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top