用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

基于USB2.0的MPEG视频卡的设计与实现

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:59:45
【本文由PB创新网为您整理】
摘  要: 本文介绍了一种基于USB2.0接口的MPEG视频卡的设计方案及其软硬件设计方法。

    关键词 :USB; 视频卡; MPEG; WDM

    通用串行总线(Universal Serial Bus,即USB)以其方便的即插即用和热插拔特性,以及较高的传输速率,成为PC领域广为应用的外设连接规范。目前,国内外普遍采用的是USB1.1规范,它支持两种传输速率:1.5Mbps和12Mbps,主要应用在低速传输要求的场合。2000年发布的USB2.0规范提供了480Mbs的传输速率,以满足更快的数据传输要求。

    为了使MPEG视频卡快速地向PC机传送大量的数据,我们在设计MPEG视频卡与PC机的接口时采用USB2.0技术。对USB的设计与开发,我们是基于CYPRESS公司的EZ-USB FX2系列的CY7C68013芯片及其FX2开发包。

    1、 硬件设计

    传统的采用PCI接口的MPEG视频卡, 不但占用了有限的PCI插槽,安装不方便,而且不支持热插拔和即插即用。所以,在本设计中,我们选用USB2.0接口芯片对传统的MPEG视频卡进行了改进。

    改进后的USB2.0接口的方案如图1所示。

    javascript:window.open(this.src);" style="cursor:pointer;"/>

    该USB2.0接口的MPEG视频卡的工作原理为:音视频信号经AK4550音频处理芯片及AA7113视频处理芯片进行A/D转换,将模拟信号转换成8bit的PCM格式的数字信号,传入SZ1510音视频压缩采集芯片进行处理,将编码调制PCM格式的数据转化为符合格式MPEG-1的混合影视文件,最后MPEG-1数据经USB接口芯片送给PC机作进一步的处理,如存储、显示等。

    设计中,我们选用的USB接口芯片是EZ-USB FX2 系列的CY7C68013芯片。该芯片是针对USB2.0的,而且和USB1.1兼容,它支持两种传输速率:全速(Full_speed)12Mbps和高速(High_speed)480Mbps,它不支持低速(Low_speed)1.5Mbps。该芯片的内部结构如图2所示。

javascript:window.open(this.src);" style="cursor:pointer;"/>

    CY7C68013-128AC内部集成了一个增强的8051内核,它既与标准的8051兼容,又有诸多的改进:最高工作频率48MHZ,一个指令周期只需4个时钟周期,比标准的8051平均提高了2.5倍;2个UARTS端口;3个定时/记数器;扩展的中断系统及其更多I/O口等。CY7C68013内部集成的USB2.0的SIE能完成大部分USB2.0协议的处理工作,减少了用户对繁杂的USB协议的处理。另外,用户在开发时,可以利用GPIF和FIFO方式实现与高速外围设备之间的逻辑连接,并进行高速数据的传输。在该改进方案中,我们选用的是GPIF方式,实现和Z1510之间的通信。

    2、 软件设计

    USB 软件设计包括三方面的工作:固件(Fireware)设计,驱动程序设计和主机端应用程序的设计。

    (1) 固件设计

    设计中,我们考虑到MPEG视频卡要求快速地持续地传送大量数据,并对数据的完整性要求不太高,我们采用ISO传输方式。另外,我们让CY7C68013工作在GPIF模式下的FIFO Read方式,最多可以传输4G byte(WORDWIDE=0)或word(WORDWIDE=1)。外设的数据由于不需8051的处理,我们采用自动打包的方式(AUTOIN=1),直接从FIFO到SIE,这样有利于提高传输速率。其主要实现代码如下:

void  TD_Init( )
{
CPUCS = 0X01;       file://CLKSPD[1:0]=10; for 48MHz operation.
GpifInit( );
   ……
SYNCDELAY;
EP6CFG = 0XDA;     file://端点配置: 同步IN方式、缓冲大小1024字节
SYNCDELAY;
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)。其中,WINDOWS操作系统已经提供了处于驱动程序栈底的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编译后直接

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:22,265.63000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号