USB2.0在视频压缩存储系统中的应用.doc_第1页
USB2.0在视频压缩存储系统中的应用.doc_第2页
USB2.0在视频压缩存储系统中的应用.doc_第3页
USB2.0在视频压缩存储系统中的应用.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

USB2.0在视频压缩存储系统中的应用时间:2006-08-23 来源: 作者:王天晓 苏凯雄 点击:962 字体大小:【大 中 小】 -摘要:介绍基于USB 2.0技术的高清晰视频存储系统的软件、硬件实 现。采用MPEG2视频压缩处理芯片MB86391和USB 2.0芯片CY7C68013,给出应用实 例、固件编程框图。1引言在组建流媒体服务器时,为了能容纳更多的在线并发用户,要求在前端的视频流需经过压 缩且传输到PC的接口速度不应成为瓶颈。在家庭DVR(数字视频存储)应用中,家用电脑的普及使人们希望通过简单的接口在PC上观看电视节目,并存储、回放精彩片断。对于拥有DV的人们,希望能把自拍的视频存储到PC中并加以剪辑。MPEG2压缩技术 和USB接口正好满足这样的要求。本文设计的系统相当于一个视频采集卡,带有压缩功能,并且采用USB接口。目前大多数的采集卡是基于PCI接口,他的缺点是置于机箱内部,容易受到干扰;而且PCI插槽数目 有限;虽然PCI的传输速度理论上达到133 MB/s,但是PCI插槽要分享此带宽。现 在支持USB 2.0的主机板越来越多,他的传输速度理论上达到480 Mb/s,在实际测试中也可达到200 Mb/s,完全满足流媒体传输对带宽的要求,再加上USB接口即插即用,置于PC外部,工作电流为500mA,因此把USB技术引入到采集系统是合适的。2系统硬件结构系统的硬件框架如图1所示,主要由2个主芯片构成,一个是视频压缩部分的MB86391,他 完成MPEG的硬件压缩;另一个是USB 2.0芯片,他完成数据的传输和USB协议的实现,并且 利用集成的51内核作为其他芯片的控制端。模拟视频信号先经过SAA7113视频A/D转换形成8 b的YUV422数字信号输入到MB86391 的视频输入接口DVIDEO70。模拟音频信号则通过PCM1800进行A/D转换,形成串行数字信号,输入到GO7007SB的SDATA引脚。音频A/D转换需要PCM1723提供与压缩芯片的时钟相位 锁相的时钟信号。音视频数字信号经MB86391的压缩处理后,输出符合MPEG 1/2标准的混合影音码流。该码流通过8位并行接口与68013的FD7.0相连,USB芯片采用Sla ve FIFO方式接收数据,一个FIFO写满后就向USB核心发中断,核心收到中断后把FIFO中的数据 发往PC,完成一次的数据传送,同时第二个FIFO区也在继续接收MB86391的码流,4个FIFO轮流接收。MB8 6391作为该电路的主芯片,由1个E2PROM进行编程和初始化。另外,压缩处理过程中需要 很大的缓存,所以外接1块8 MB的SDRAM。2.1视频压缩视频压缩是当今许多图像、多媒体应用中的尖端技术,也是最重要的一部分。高清晰电视 图像 数字化后一般都达到了1 Gb/s,以目前的传输网络和存储容量,一定要先进行压缩。本文采 用的是MB86391视频压缩芯片,208脚、HQFP封装、0.18 m工艺、工作频率27/54 MHz。其 主要特性如下:(1)编码符合ISO/IEC138182(MPEG1 video)MPML或ISO/IEC111722(MPEG1 video)。(2)25 Hz隔行扫描时,最大的屏幕尺寸:720576。(3)D1格式和YUV输入。(4)8 b并行同步方式输出。(5)复合音频视频输出,最大的码流速率20 Mb/s。86391外接1片4 Mb的FLASHROM,上电直接加ROM并且用串口进行参数配置,所 以必须加 1块RS 232电平转换芯片MAX3222,通过串口向MB86391相应的寄存器地址写入数值,来控制 压缩过程。2.2数据传输赛普拉斯公司提供的CY68013芯片是世界上第一款集成USB 2.0的微处理器,集成了USB 2.0 收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。GPIF(Genera l Programmable Interface)和主/从端点FIFO(8位或16位数据总线),为ATA,UTOPIA,E PP,PCMCIA和DSP等提供了简单和无缝连接接口。68013片内集成了4 kB的内部FIFO,可以分成4个端点双缓冲区,即1个端点包括1个 输入缓冲区和1个输出缓冲区,1个缓冲区的大小是512 B,4个缓冲区的选择由FIFOADR 1:0的4个状态决定,例如初始化后FIFOADR1:0=00,此时选中ENPOINT2,当MB 86391有 数据要传输时,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 设置为Indexed Mode,并且FLAGB表示当前FIFO满状态,而FLAGC表示当前FIFO空状态,CPLD 只有检测到FLAGC的有效状态时,才会往MB86391发请求STREQ,告诉MB86391已准备好接收。 E2USB FX2 Slave FIFO工作模式下数据接口如图2所示。3软件结构开发USB接口的应用系统最重要的就是USB驱动程序和固件程序的编制。本文采 用赛普拉斯公司提供的CY7C68013芯片及其开发板,我们可以从复杂的USB驱动程序中解 脱出来,而把主要精力放在芯片的固件程序的编写上。软件结构如图3所示。3.1应用程序应用程序把USB设备看成一个文件,对设备的操作相当于读写文件一样的简单,应 用程序与驱动程序的通信主要是通过以下几个函数来实现的:(1) 打开设备句柄函数(3)写设备函数在实际编写应用程序时只需将上述3个函数加入到相应的功能模块中便可完成Win 32应用 程序对USB设备进行打开、读、写操作,实现二者之间的通信。3.2固件程序固件程序的编译采用Keil C,他具有C的编程风格,可以方便的设置断点,查看各个寄存器的值,编程效率高。Cypress公司提供固件框架,需要根据具体应用,选择相应的函数逐一填写函数体。固件程序框架如图4所示,图4(a)所示是主程序, 完成USB的枚举和初 始化,循环等待时,当SIE发现Setup Packet,就分析执行设备请求,进入到图4( b)中的USB中断处理程序。USB中断处理程序完成对设备请求的响应,包括接收/发送事件处理,状态转换处理和握 手事件处理。其中当主机发出IN请求时,就会触发接收事件处理程序,主程序调用TD_Pol l函数,完成一次的数据传送。4结语USB 2.0在理论上满负荷传输速率是480 Mb/s,在Bulk批量传输方式下,传输极

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论