基于DSP的USB数据传输系统设计
时间:10-26
来源:EDN
点击:
2.2 驱动程序
在Windows平台下,USB驱动程序由三部分组成:USB设备驱动程序、USB总线驱动程序和USB主控制器驱动程序。它们必须遵循Win32驱动程序模型(WDM)。其中,Windows操作系统已经提供了处于驱动程序栈底的USB主控制器驱动程序和USB总线驱动程序(USBD.SYS)。USB设备的驱动程序主要是通过调用USBD.SYS来实现PC机与USB总线的数据交换。USB驱动程序主要完成以下功能:
(1)发现、配置、关闭USB设备。通过一系列有关即插即用(Plug and Play)的派遣函数来完成。例如Ezusb_PnPAddDevice(),Ezusb_DispatchPnp()等函数。
(2)驱动程序与应用函数的接口。像Ezusb_Creat(),Ezusb_Close()等函数。应用程序调用Ezusb_Create()后,返回惟一的Windows句柄后,才能调用驱动程序的其他函数,完成驱动程序对CY7C68001的一系列操作和数据传送。应用程序通过调用API函数CreateFile()来实现对Ezusb_Create()的访问。
(3)控制与数据传送接口。这是驱动程序的主要部分。它是Windows的异步I/O操作。应用程序使用标准Win32API函数DeviceIoControl()来执行这样的操作。在驱动一方,这个DeviceloControl()调用被转化成一个带IRP_MJ_DEVICE_CONTROL功能码的IRP。像读取与写入FIFO数据、endpoint0的操作均是通过异步I/O的方式来完成的。
2.3 主机应用程序
USB主机应用程序是计算机中完成特定功能的程序,其关键是实现从USB外设读取或发送特定数量的数据、USB标准设备请求和特定的命令等。另外,可以、对数据做进一步的处理,如:存储、显示、快速傅里叶变换等。主机应用程序的编写使用VC编译环境中的API函数实现。应用程序的编程方法与串口编程类似。首先必须查找设备,调用Win32函数CreateFilea()打开设备的句柄;然后调用Win32函数DeviceloControl()就可以进行数据读写和控制操作;最后关闭设备句柄。在VC++6.0中用C++编写简单的上位机测试程序,得到测试结果如图3所示。
3 结 语
在CT图像重建系统中,高性能的DSP芯片具有高速的数据处理能力,利用设计的USB接口,能够快速方便地实现实时传输。经测试,该设计的USB接口传输速度可达35 Mb/s以上,具有较高的实用价值和良好的应用前景,而且对于使用其他微处理器开发基于CY7C68001的USB 2.0接口也有很好的借鉴作用。
- 实现WUSB设备控制器的设计考虑因素(09-12)
- 基于USB2.0的高速无线数传接收设备的数据接收存储方法(09-09)
- 四种短距离无线监控解决方案的性能对比(09-16)
- Wibree:一个可供选择的新无线联网技术(11-07)
- TI 单芯片手机多媒体电话解决方案(12-01)
- 蓝牙技术硬件实现模式分析(01-11)