首页 > 论文范文 > 电子论文

高清视频采集卡(视频采集播放卡的设计与实现方案)

2022-11-17  本文已影响 666人 
中国论文网为大家解读本文的相关内容: 摘 要 介绍了视频采集播放卡的总体设计,给出了硬件电路设计框图,重点阐述了驱动程序设计与实现。 关键词 视频采集播放卡 PCI总线 流Minidriver

1 引言 随着宽带网络技术和流媒体技术的迅猛发展,计算机用户可以从网络上获得的影音资源日益丰富,人们不但可以从网络上下载,而且能够通过在线点播方式即时收看影音文件。在电视、计算机、宽带网络日益普及的今天,利用设备整合现有资源,充分发挥各设备优势,实现资源利用的最大化显得尤为重要。通过设计视频采集播放卡,实现音视频采集和计算机(网络)影音文件后台播放输出,有利于音视频资源的整合利用,提高资源利用率。

2 总体方案 视频采集播放卡由硬件和软件两部分组成,如图1所示。硬件部分包括PCI接口模块、音频编解码模块、视频解码模块、视频编码模块以及电源模块等。软件部分包括驱动模块和应用程序模块。驱动模块属于底层的软件接口,主要为上层的应用程序提供硬件调用接口。

图1 系统软硬件框图 当前计算机支持的媒体格式多种多样,自己去为每一种媒体格式编写编解码程序不太现实。在操作系统中有着丰富的编解码资源,如何利用这些资源就显得至关重要。Direct Show为Windows平台上处理各种各样的媒体文件播放、音视频采集等高性能要求的多媒体应用提供一个完整的解决方案。为了利用操作系统中提供的编解码资源,需要编写流Minidriver,利用包装Filter对硬件设备驱动程序进行包装,实现DirectShow 应用程序对硬件设备的访问。

3 硬件实现 视频采集播放卡由多媒体控制器SAA7146A、视频编码器SAA7121H、视频解码器SAA7113H、音频编解码器TDA1309H、音频放大器TDA1308以及AT24C02等芯片组成,具体如图2所示。图2 硬件实现框图
计算机通过PCI总线与视频采集播放卡进行数据交互。通过配置SAA7146A内部寄存器,可以对芯片内部各功能模块进行控制,实现与外围芯片的数据交互。在视频采集过程中,模拟视频信号首先经过解码器SAA7113H,转换成标准的数字视频信号,SAA7146A芯片读取D1接口数据,并通过PCI总线上传给应用程序。在视频播放过程中,应用程序下传数据给SAA7146A,而后SAA7146A把视频数据传递给编码器SAA7121H,还原成模拟视频信号。音频信号采用TDA1309H实现数模和模数转换。

4 驱动设计 驱动程序是受操作系统信任的、控制硬件设备的一组函数,它的优劣不仅事关硬件设备的功能实现,而且严重的设计缺陷还将造成操作系统的安全隐患。驱动程序开发采用DriverStudio2.7+Windows DDK+Visual C++6.0实现。由于采用DriverWorks建立的驱动程序框架已包含实现设备的初始化、卸载等基本功能代码,因此在开发PCI设备驱动程序时可以把主要精力集中于处理硬件访问、中断处理和DMA传输等问题。

4.1 硬件访问 驱动程序通过读写与设备相关联的寄存器同外围设备进行通信。为了引用设备的寄存器,DriverWorks定义了类KIoRange和类KMemoryRange来分别实现I/O空间寄存器和内存映射寄存器的访问。映射的地址空间大小和类型由PCI设备配置空间的基地址寄存器值决定。 控制SAA7146A芯片实现任何一个完整的功能,都可能需要编写一组寄存器访问指令。由于芯片SAA7113H和SAA7121H使用I2C总线进行设置。为实现对I2C总线接口的访问,不但要设置状态寄存器IICSTA和传输控制寄存器IICTRF,而且要设置主控制寄存器MC1/MC2。图3所示为I2C单字节写操作的流程图。
图3 I2C单字节写

4.2 中断处理 为了方便状态查询,SAA7146A提供有两个状态寄存器来收集、存放状态信息,分别为主状态寄存器PSR(Primary Status Register)和次状态寄存器SSR(Secondary Status Register),其中主状态寄存器包含从次状态寄存器中概括的信息。中断使能寄存器IER使能中断,当某个中断条件发生时,中断状态寄存器ISR的对应位被置“1”。 在ISR主要完成如下工作:①检测SAA7146A状态寄存器,判断是否为本设备中断,“是”则阻止它产生另一中断,对中断进行简单处理,“否”则返回FALSE。②调用IoRequestDpc排队DPC请求在驱动程序的DpcForIsr例程中继续处理请求。 在每部分数据传输结束时由ISR触发DpcForIsr例程。它的工作是开始下一部分的传输和完成当前请求。

4.3 DMA传输 为了传输音频和视频数据,SAA7146A芯片提供了8个DMA通道(3个视频通道,4个音频通道,1个DEBI通道)进行数据传输。为了克服大块内存获取,SAA7146A支持分散/集中列表,提供有内存管理单元MMU,用来处理不连续内存。使用MMU的关键是初始化页表。页表是一块页对齐的4K字节大小的物理内存。页表中存放每4K字节为单位的物理内存的物理起始地址。 下述代码启动视频DMA通道3,视频数据通过D1_A接口经BRS路由,输入到内存。 Height = ; Width = ; Pitch = ; //置初值 3 = PageBaseAddress/4096; //页表基地址右移12位 3 = 1; //使能MMU = 0; 3 = 0; 3 = 0; 3 = 0; useraddr = 0; //当前DMA通道使用的初始地址,多个DMA通道可以共用一个MMU页表 SetReg(MC1,0x04000400); //打开DD1接口 SetReg(DD1_INIT,0x07000000); //初始化DD1接口, SetReg(MC2,0x06000600); //upload “DD1接口初始化设置” SetReg(DD1_STREAM,0x00000000); //设置DD1接口视频数据流处理 SetReg(MC2,0x02000200); //upload SetReg(BRS_CTRL,0x00000000); //设置BRS控制寄存器 SetReg(MC2,0x01000100); //upload SetReg(PCI_BT_V,0x00170000); //设置Burst传输阀值 SetReg(NUM_LINE_BYTE3,(width16)|(Height/2); //设置视频图像大小 SetReg(BASE_ODD3, useraddr ); //设置奇场视频数据起始存放地址 SetReg(BASE_EVEN3,useraddr + Pitch); //设置偶场视频数据起始存放地址 SetReg(PROT_ADDR3,useraddr + Height*Pitch); //设定保护地址 SetReg(PITCH3,Pitch); //设定两行视频数据存放地址间隔 SetReg(BASE_PAGE3,); //设置页表基地址等信息 SetReg(MC2,0x00100010); //upload “视频DMA3寄存器” SetReg(IER,0x00000040); //设置中断使能寄存器 SetReg(MC1,0x00100010); //启动DMA3传输

4.4 流Minidriver Minidriver的整个调试工作是在DirectShow提供的GraphEdit工具中完成的,GraphEdit提供了良好可视化界面,可以方便的实现Filter的插入、删除和连接,而且可以查看和修改Filter属性。整个调试过程分为三步完成——视频预览和音频监听、视频采集并压缩存放为AVI文件、解压AVI文件并播放输出到电视设备。 图4所示为视频采集播放卡视频预览和音频监听的Filter Graph,视频输出到显示屏幕和声卡。


图4 视频采集播放卡预览Filter Graph
图5所示为视频采集播放卡播放输出上述采集的AVI格式视频文件的Filter Graph,由于SAA7146A BRS只能接收UYVY格式的视频数据,因此需要增加了一个Color Space Converter Filter来实现RGB24到UYVY格式的转换。

图5 AVI文件播放输出Filter Graph

5 总结 视频采集播放卡采用软件方法实现音视频压缩、解压缩,虽然需要占用一定的计算机系统资源,但具有硬件电路简单、成本低、升级容易等优点。设计选用专用多媒体PCI接口芯片SAA7146A,实现了与视频编码器、视频解码器和音频编解码器的连接。为利用现有音视频编解码资源,扩展视频采集播放卡应用范围,编写了流Minidriver。通过使用DirectShow提供的包装Filter,把硬件设备包装成多个Filter组件,实现了DirectShow应用程序对硬件设备的访问。

参考文献 [1] SAA7146A Data Sheet. Philips Semiconductors. 1998 SAA7113H Data Sheet. Philips Semiconductors. 1999 SAA7121H Data Sheet. Philips Semiconductors. 2002 [美]Art Baker,Jerry Lozano着,施诺 等译. Windows 2000设备驱动程序设计指南. 机械工业出版社,2001 陆其明. DirectShow开发指南. 清华大学出版社,2003.12

  中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回电子论文列表

展开剩余(
关于使用多个同种总线仪器的软件设计上一篇: 返回列表下一篇:

继续阅读

热门标签