打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
USB2.0在视频压缩存储系统中的应用
类别:电子综合  
 

  摘 要:介绍基于USB2.0技术的高清晰视频存储系统的软件、硬件实现。采用MPEG2视频压缩处理芯片MB86391USB2.0芯片CY7C68013,给出应用实例、固件编程框图。

  关键词:MPEG;USB;WDM(Windows驱动模型);MB86391CY7C68013

ApplicationofUSB2.0inVideoCompactandStoreSystem

WANGTianxiao,SUKaixiong

(ElectronicTechnologyInstitute,CollegeofPhysicsandInformation,

FuzhouUniversity,Fuzhou,350002,China)

  Abstract:ThispaperintroducestherealizationofhighdefinitionvideocompactandstoresystembasedonUSB2.0technologyincludingthesoftwareandhardwareUsingMPEG2videocompactchipMB86391andUSB2.0chipCY7C68013Providesapplicationexampleandfirmwarestructure

  Keywords:MPEG;USB;WDM(WindowsDriverModel);MB86391CY7C68013

1引言

  在组建流媒体服务器时,为了能容纳更多的在线并发用户,要求在前端的视频流需经过压缩且传输到PC的接口速度不应成为瓶颈。在家庭DVR(数字视频存储)应用中,家用电脑的普及使人们希望通过简单的接口在PC上观看电视节目,并存储、回放精彩片断。对于拥有DV的人们,希望能把自拍的视频存储到PC中并加以剪辑。MPEG2压缩技术和USB接口正好满足这样的要求。

  本文设计的系统相当于一个视频采集卡,带有压缩功能,并且采用USB接口。目前大多数的采集卡是基于PCI接口,他的缺点是置于机箱内部,容易受到干扰;而且PCI插槽数目有限;虽然PCI的传输速度理论上达到133MB/s,但是PCI插槽要分享此带宽。现在支持USB2.0的主机板越来越多,他的传输速度理论上达到480Mb/s,在实际测试中也可达到200Mb/s,完全满足流媒体传输对带宽的要求,再加上USB接口即插即用,置于PC外部,工作电流为500mA,因此把USB技术引入到采集系统是合适的。

2系统硬件结构

  系统的硬件框架如图1所示,主要由2个主芯片构成,一个是视频压缩部分的MB86391,他完成MPEG的硬件压缩;另一个是USB2.0芯片,他完成数据的传输和USB协议的实现,并且利用集成的51内核作为其他芯片的控制端。

  模拟视频信号先经过SAA7113视频A/D转换形成8b的YUV4∶2∶2数字信号输入到MB86391的视频输入接口DVIDEO[70]。模拟音频信号则通过PCM1800进行A/D转换,形成串行数字信号,输入到GO7007SB的SDATA引脚。音频A/D转换需要PCM1723提供与压缩芯片的时钟相位锁相的时钟信号。音视频数字信号经MB86391的压缩处理后,输出符合MPEG1/2标准的混合影音码流。该码流通过8位并行接口与68013的FD[7..0]相连,USB芯片采用SlaveFIFO方式接收数据,一个FIFO写满后就向USB核心发中断,核心收到中断后把FIFO中的数据发往PC,完成一次的数据传送,同时第二个FIFO区也在继续接收MB86391的码流,4个FIFO轮流接收。MB86391作为该电路的主芯片,由1个E2PROM进行编程和初始化。另外,压缩处理过程中需要很大的缓存,所以外接1块8MB的SDRAM。

2.1视频压缩

  视频压缩是当今许多图像、多媒体应用中的尖端技术,也是最重要的一部分。高清晰电视图像数字化后一般都达到了1Gb/s,以目前的传输网络和存储容量,一定要先进行压缩。本文采用的是MB86391视频压缩芯片,208脚、HQFP封装、0.18μm工艺、工作频率27/54MHz。其主要特性如下:

  (1)编码符合ISO/IEC138182(MPEG1video)MP@ML或ISO/IEC111722(MPEG1video)。

  (2)25Hz隔行扫描时,最大的屏幕尺寸:720×576。

  (3)D1格式和YUV输入。

  (4)8b并行同步方式输出。

  (5)复合音频视频输出,最大的码流速率20Mb/s。

  86391外接1片4Mb的FLASHROM,上电直接加ROM并且用串口进行参数配置,所以必须加1块RS232电平转换芯片MAX3222,通过串口向MB86391相应的寄存器地址写入数值,来控制压缩过程。

2.2数据传输

  赛普拉斯公司提供的CY68013芯片是世界上第一款集成USB2.0的微处理器,集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。GPIF(GeneralProgrammableInterface)和主/从端点FIFO(8位或16位数据总线),为ATA,UTOPIA,EPP,PCMCIA和DSP等提供了简单和无缝连接接口。

  68013片内集成了4kB的内部FIFO,可以分成4个端点双缓冲区,即1个端点包括1个输入缓冲区和1个输出缓冲区,1个缓冲区的大小是512B,4个缓冲区的选择由FIFOADR[1:0]的4个状态决定,例如初始化后FIFOADR[1:0]=00,此时选中ENPOINT2,当MB86391有数据要传输时,STEN出现高电平,CPLD把STDATA的8位数据送往FD总线,在IFCLK同步时钟的控制下,向端点2的输入缓冲区FIFO写入数据,CPLD同时对时钟进行计数,当达到188时,送出PKTEN,表示1帧的数据传输完毕,USB核心收到这个帧结束的标志后读端点2的输入FIFO,响应IN请求把数据送出;CPLD除了设定N=188的计数器外,还设定了一个N=4的计数器,每当一个帧满后,以00,01,10,11的状态翻转,并把这状态当作FIFOADR[1:0]的输入,使得CPLD能持续接受数据并轮流向68013的4个输入缓冲区写入。FLAG设置为IndexedMode,并且FLAGB表示当前FIFO满状态,而FLAGC表示当前FIFO空状态,CPLD只有检测到FLAGC的有效状态时,才会往MB86391发请求STREQ,告诉MB86391已准备好接收。E2USBFX2SlaveFIFO工作模式下数据接口如图2所示。

3软件结构

  开发USB接口的应用系统最重要的就是USB驱动程序和固件程序的编制。本文采用赛普拉斯公司提供的CY7C68013芯片及其开发板,我们可以从复杂的USB驱动程序中解脱出来,而把主要精力放在芯片的固件程序的编写上。软件结构如图3所示.

3.1应用程序

  应用程序把USB设备看成一个文件,对设备的操作相当于读写文件一样的简单,应用程序与驱动程序的通信主要是通过以下几个函数来实现的:

  (1)打开设备句柄函数

  

  (3)写设备函数

  

  在实际编写应用程序时只需将上述3个函数加入到相应的功能模块中便可完成Win32应用程序对USB设备进行打开、读、写操作,实现二者之间的通信。

3.2固件程序

  固件程序的编译采用KeilC,他具有C的编程风格,可以方便的设置断点,查看各个寄存器的值,编程效率高。Cypress公司提供固件框架,需要根据具体应用,选择相应的函数逐一填写函数体。固件程序框架如图4所示,图4(a)所示是主程序,完成USB的枚举和初始化,循环等待时,当SIE发现SetupPacket,就分析执行设备请求,进入到图4(b)中的USB中断处理程序。

  USB中断处理程序完成对设备请求的响应,包括接收/发送事件处理,状态转换处理和握手事件处理。其中当主机发出IN请求时,就会触发接收事件处理程序,主程序调用TD_Poll函数,完成一次的数据传送。

4结语

  USB2.0在理论上满负荷传输速率是480Mb/s,在Bulk批量传输方式下,传输极限是53.248Mb/s,即在1ms时间片断内再细分为8个微帧,每个微帧可以插入13个512B的数据包,实践证明,这种方式能提供稳健的无错传输,适合传输高质量的图像。

  MB86391输出的平均码流最大为20Mb/s,所以在实际传输测试中,不会出现速度瓶颈,完全满足大容量高质量图像传输系统的要求。

参考文献

[1]许永和.EZUSBFX系列单片机USB外围设备设计与应用[M].北京:北京航空航天大学出版社,2002.

[2]曹 晨,杨作梅.高清晰度数字视频原理与应用[M].北京:电子工业出版社,2002.

[3]萧世文.USB2.0硬件设计[M].北京:清华大学出版社,2002.

[4]ChrisCant.WritingWindowsWDMDeviceDrivers[M].孙义,马莉波,国雪飞,等译.北京:机械工业出版社,2000.