视频采集播放卡的设的计与实现.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
视频采集播放卡的设的计与实现

视频采集播放卡的设计与实现 摘 要 介绍了视频采集播放卡的总体设计,给出了硬件电路设计框图,重点阐述了驱动程序设计与实现。 关键词 视频采集播放卡 PCI总线 流Minidriver1 引言 随着宽带网络技术和流媒体技术的迅猛发展,计算机用户可以从网络上获得的影音资源日益丰富,人们不但可以从网络上下载,而且能够通过在线点播方式即时收看影音文件。在电视、计算机、宽带网络日益普及的今天,利用设备整合现有资源,充分发挥各设备优势,实现资源利用的最大化显得尤为重要。通过设计视频采集播放卡,实现音视频采集和计算机(网络)影音文件后台播放输出,有利于音视频资源的整合利用,提高资源利用率。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通道)进行数据传输。为了克服大块内存获取,SAA714

文档评论(0)

ayangjiayu3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档