基于USB2.0的MPEG视频卡的设计与实现
LAY;
FIFORESET = 0X80; // activate NAK_ALL to avoid race conditions
SYNCDELAY;
FIFORESET = 0X06; file://reset, FIFO 6
SYNCDELAY;
FIFORESET = 0X00; file://deactivate NAK_ALL
本文链接地址:http://www.oyaya.net/fanwen/view/155248.html
FIFORESET = 0X80; // activate NAK_ALL to avoid race conditions
SYNCDELAY;
FIFORESET = 0X06; file://reset, FIFO 6
SYNCDELAY;
FIFORESET = 0X00; file://deactivate NAK_ALL
SYNCDELAY;
EP6FIFOCFG = 0X0D; file://wordwide=1
SYNCDELAY;
……
}
(2) 驱动程序设计
在WINDOWS平台下,USB 驱动程序由三部分组成:USB设备驱动程序,USB总线驱动程序和USB主控制器驱动程序,它们必须遵循WIN32驱动程序模型(WDM)。其中,WIND
OWS操作系统已经提供了处于驱动程序栈底的USB总线驱动程序和USB主控制器驱动程序。而USB设备驱动程序由设备开发者编写,它通过向USB总线驱动程序发送包含URB(USB Request Block)的IRP(I/O Request Packet),来实现USB外设之间的信息交换。当主机应用程序要对USB设备进行I/O操作时,它调用Windows API函数对Win32子系统进行Win32调用,由I/O管理器将此请求构造成一个合适的IRP,并把它传递给USB设备驱动程序。USB设备驱动程序接受到这个IRP后,根据IRP中包含的具体操作代码,构造响应的URB并把它放到一个新IRP中,然后把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所包含的URB执行响应的操作,并把操作结果通过IRP返还给USB设备驱动程序。USB设备驱动程序接受到此IRP后,将操作结果通过IRP返还I/O管理器。最后,I/O管理器将此IRP中操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。
开发USB设备驱动程序,可采用Numega公司的开发包Driver Works和 Microsoft公司的2000DDK,并以VC++6.0作为辅助开发环境。Driver Works提供的驱动向导,,可根据用户的需要,自动生成代码框架。减少了开发的难度,缩短了开发的周期。
在CYPRESS公司的EZ-USB FX2开发包中,有一个通用的驱动程序,该程序可不加修改经DDK编译后直接使用。在本设计中,由于时间关系,我们采用的就是这个通用驱动程序(GPD)。
(3) 应用程序设计
USB主机应用程序是计算机中完成特定功能的程序,其关键是实现从USB 外设读取或发送特定数量的数据,USB标准设备请求和特定的命令等。另外,可以对数据做进一步的处理,如:存储、显示、快速傅立叶变换等。在WINDOWS 2000下,我们所使用的应用程序开发工具是VC++6.0。
3、 结束语
该卡是对传统的PCI接口的MPEG视频卡的改进,它支持热插拔和即插即用。由于采用USB2.0接口,其传输速率也高于后者,满足了数据高速传输的要求,解决了USB1.1存在的传输瓶颈。相信随着各大电脑主板商对USB2.0的支持,USB2.0必将在PC机应用的各个领域得到广泛的应用。
《基于USB2.0的MPEG视频卡的设计与实现(第2页)》