
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于dsp的视频采集驱动程序的实现视频终端的核心是图像的数字化处理模块。基于pc机的数字视频处理,给出了算法讨论的途径,而基于高速的应用模块才提供了实时视频处理的可能。然而,基于dsp的海量视频数据的实时处理的关键则是实时、合理的视频数据采集。本文针对自行研制的基于tms320dm642(以下简称dm642)dsp的视频处理板卡,使其在c64x系列dsp的实时操作系统dsp/bios的环境下运行,实现基于类/微驱动模型的视频采集驱动程序,并进一步描述采纳edma(增加的挺直存储器存取控制器)的数字视频图像信号的实时传输。1 类/微驱动程序模型c64x系列的dsp系统给出了类/微驱动模型的驱动程
2、序结构,采纳该模型举行驱动程序设计,应用程序可以复用绝大部分相像设备的驱动程序,从而提高驱动程序的开发效率。类/微驱动模型结构1所示,该模型在功能上将驱动程序分为依靠硬件层(微驱动)和不依靠硬件层(类驱动)两层,并在两层之间给出通用接口。上层的应用程序不挺直控制微驱动,而是通过类驱动对其举行控制。每一个类驱动在应用程序代码中表现为一个api函数,并通过标准微驱动的接口iom与微驱动举行通信。在类/微驱动模型中,类驱动通常用于完成多线程i/o哀求的序列化功能和同步功能,同时对设备实例举行管理。类驱动通过每个外部设备独有的微驱动对设备举行操作。微驱动采纳芯片支持库控制外设的寄存器、内存和中断资源。
3、微驱动程序必需将特定的外部设备有效地表示给类驱动。类驱动用法dsp/bios中的api函数实现诸犹如步等的系统服务,dsp/bios定义了三种类驱动模块:管道管理模块(pip)、流输入输出管理模块(sio)和通用输入输出模块(gio)。在pip和sio类驱动中,调用的api函数已经存在于dsp/bios的pip和sio模块中了,这些api函数需将参数传给相应的适配模块,才干与微驱动交换数据。而在gio类驱动中,调用的api函数则挺直与微驱动通信。2 基于dm642的视频采集驱动2.1 硬件结构笔者利用ti公司的多媒体处理芯片dm642自行研制了嵌入式视频处理板卡。卡上的主要组成模块有视频采集模
4、块、视频处理模块以及网络发送模块,其中视频采集模块主要由dsp芯片dm642、视频a/d 转换芯片saa7115和同步动态存储器芯片sdram等组成,2所示。来自摄像头的视频信号通过saa7115举行数字化处理,输出的数字视频信号经过视频端口的内部fifo缓冲后,由dm642通过edma将数据传送到片外sdram中,以便供视频应用程序用法。主芯片dm642的处理能力达到4800,它的最大特点是芯片内部集成了三个可配置的视频端口5,这些视频端口提供了与通用视频a/d转换芯片的无缝接口,因而无需外加(复杂可编程规律器件)和fifo就可以满足系统设计的要求。saa7115支持六路cvbs(复合模拟视
5、频输入)或三路svideo (s端子信号)输入,支持多种格式的数字rgb和yuv视频信号输出。dm642通过iic控制saa7115的内部寄存器。采纳类/微驱动模型编写dm642芯片视频端口的视频采集驱动程序,驱动必需满足如下几个基本功能:· 可同时处理dm642的三个视频端口;· 支持应用程序配置视频采集的参数,支持猎取图像数据;· 支持场图像的采集,支持对cvbs和svideo两种模拟信号的采集。在视频采集过程中,最重要的是对视频数据举行实时控制和有效的传输,因此需要用法硬件中断,并在中断服务程序中,按照视频端口内部fifo的状态通过edma完成视频数据的读入
6、。2.2 视频采集驱动程序的框架构建视频采集驱动程序包括类驱动和微驱动两个模块,视频采集驱动程序的结构框架3所示。类驱动用法gio模块,gio模块的传输模式是基于流输入输出模块的同步i/o模式的,更适合文件系统i/o,如视频采集的应用。该模块的主要api函数的描述如表1所示。在图3中,应用程序用法gio_create函数创建gio通道,并通过调用gio_submit函数挺直与微驱动的iom交换数据,完成视频数据的采集。应用程序通过gio类驱动调用微驱动的标准api函数,这些标准api函数的描述如表2所示。这些规定的函数将放入微驱动的函数接口表(iom_fxns)中,以供给用程序通过gio类驱动
7、调用。在图3中,微驱动的iom接口将应用程序猎取图像的指令打包生成数据包,并向微驱动发送。数据包的格式如下: typedef struct iom_packet que_elem link; /* 数据包队列 */ptr addr; /* 数据地址 */uns size; /* 数据长度 */arg misc; /* 保留用法 */arg arg; /* 应用程序 */uns cmd; /* 指令字段 */int status; /* 指令完成状态 */ iom_packet;数据包中数据长度与数据地址两字段由应用程序提供,分离表示猎取图像的大小及图像存储目的地址。微驱动依据数据包中的指令字段
8、,调用mdsubmitchan函数将数据包放入数据包队列,等待中断服务函数的处理。视频采集中的硬件中断由视频端口内部fifo的状态触发,中断服务程序按照数据包中的数据地址字段,通过edma将视频端口内部fifo中的视频数据读入sdram中的图像存储目的地址。依据数据包中的数据长度字段,在完成相应大小图像的采集后,中断服务程序还将完成以下功能:出列数据包;设置下一次传送或服务哀求;设置数据包中的指令完成状态,并向应用程序返回。3 视频采集驱动中的视频数据传输视频端口内部fifo与sdram之间的视频数据传输通常有以下几种办法:软件查询、中断和edma办法。软件查询消耗cpu的资源太大,是不行取的
9、,中断数据传输虽可节约无数cpu时光,但没有发挥dm642的edma资源。edma6是在dma基础上进展起来的,用于在没有cpu参加的状况下完成不同存储空间之间的数据搬移。dm642提供了64个自立的edma通道,通道的优先级可编程设置,在没有cpu参加的状况下实现片内存储器、片内外设以及外部存储空间之间的数据高速搬移。因此,为减轻cpu的负担,发挥dm642的强大的外部数据传输能力,视频采集驱动用法edma完成视频数据从fifo到sdram的传输。3.1 基于双edma通道的视频数据传输利用edma将fifo中的数据传输到sdram中有两种办法,但是它们的性能却差别很大。一种办法是利用edm
10、a将fifo中的数据挺直传送到sdram中。这种办法虽然容易且易于操作,但它没有充分发挥sdram的页读写的优越性,缘由在于edma读取fifo和写入sdram时分为两个不同过程来实现,因此emif(外部存储器接口)的时序不断地在两者之间切换,造成很大的时光铺张,所以这种传输效率不高。因为dm642视频端口的内部fifo提供“满”、“半满”、“空”三种状态,另一办法用法两个edma通道举行数据传输。以亮度信号的传输为例,当用于存储亮度重量的内部fifo半满(640字节)时,触发dm642的硬件中断,在中断服务程序中启用一个edma通道将数据从fifo中读出,存放到缓冲区buf中。传输完毕后,启
11、动另一个edma通道将数据从buf中传输到sdram中。这样,两个edma通道分离举行读取fifo和写入sdram的操作,避开了emif时序的切换,可以保证edma的有效传输。3.2 edma链表在场合成中的用法在隔行扫描模式下,每帧分为两场,两场在时域上是分开的,但在数据处理时需要将两场合成一帧举行处理,因此要举行大量的数据搬移,占用了大量的cpu时光。通过edma链表可自动实现场合成,不需占用额外的cpu时光。edma的参数ram存放了有关的传输参数,这些参数用于产生edma读写操作所需要的地址。4所示,在用法edma通道传输奇数场与偶数场时,分离用法不同的edma参数ram。两组参数ra
12、m的目的地址分离指向存储图像的第一行与其次行象素的首地址,并且两组参数ram通过链接地址循环相连。在edma通道的传输中,奇数场传输任务的结束会自动地按照当前参数ram的链接地址装载传输偶数场的参数ram,又由两组参数ram的目的地址可知,奇数场与偶数场分离经edma通道传输至帧缓冲区后被隔行存储,这样在无需占用额外cpu时光的前提下就实现了场合成。4 视频采集驱动程序的调用实例dsp/bios应用程序通过gio类驱动调用微驱动之前,需用法dsp/bios配置工具注册微驱动,将其命名为vp_capture,并启动gio模块。在应用程序中,gio_create函数用法已注册的微驱动vp_capt
13、ure创建gio通道,通过调用gio_submit函数完成应用程序对视频数据的采集操作。部分源代码如下:(1) 创建通道gio_handle capchan;int status;capchan = gio_create('vp_capture'),iom_input, &status, (ptr)&dm642_vcapparams, null);(2) 发送猎取图像的数据包gio_submit(capchan, iom_read, bufp, null, null);其中,dm642_vcapparams包含了视频采集的初始化参数,像大小、同步方式等;bufp用于指出采集图像的存储地址。不同的视频应用程序在用法类驱动时,可以通过转变这两个变量复用视频设备。这样,极大地提高了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于本地差分隐私的流调数据聚合方案研究
- 高效学习方法分享班会
- 卖家店铺转让合同范本
- 合同收购合同范本
- 合同范本外墙施工
- 咖啡杯采购合同范本
- 吊顶单包工合同范例
- 器械招商合同范例
- 幼儿园年终总结会园长报告
- 职场着装培训
- 新苏教版小学科学三年级下册全册教案(2022年春修订)
- 弗洛姆异化理论
- AQL抽样标准表xls2
- 碳纳米管_ppt课件
- 【课件】第2课如何鉴赏美术作品课件-高中美术人教版(2019)美术鉴赏
- 人力资源部经理岗位说明书
- [康熙字典9画五行属金的字加解释] 康熙字典五行属金的字
- 液化气罐定期检验方案
- 关于老年痴呆症及其智能陪护设备的调查报告
- 美国药典--优良仓储运输规范(GOODSTORAGEANDSHIPPINGPRACTICES)原稿+中文
- 淡色花纹背景简历封面Word模板下载
评论
0/150
提交评论