基于DM642的视频解码设备TVP5150驱动程序的设计
- 格式:pdf
- 大小:1.56 MB
- 文档页数:6
第29卷 第3期2006年9月电子器件Chinese J ournal of Elect ron DevicesVol.29 No.3Sep.2006H ardw are Design of Embedded Video Surveillance System B ased on DM642L I U Yuan ,Z H U S han 2an ,Y E X u 2dong(College of Elect rical Engineering ,Zhej iang Universit y ,Hangz hou 310027China )Abstract :This paper emp hasizes t he hardware design and realization of video encoding/decoding system.The high performance system based on TMS320DM642comp rises digital video encoder/decoders (TV P5150&SAA7105)and ot her important perip heral circuit s.The architect ure of system and f unction modules are described ,and some solutions are given for t he p roblems according to t he practice.In t he end ,t he application foregro und and imp rovement of t he system are int roduced.K ey w ords :DM642;video comp ression ;video surveillance ;circuit design EEACC :6430基于DM642的嵌入式视频监控系统硬件设计刘 源,朱善安,叶旭东(浙江大学电气工程学院,杭州310027)收稿日期:2005209226作者简介:刘 源(19832),男,工学硕士在读,从事DSP 的嵌入式应用研究,koklean0211@.摘 要:以视频编解码硬件系统及其实现技术为研究内容,以TMS320DM642为核心,结合TV P5150&SAA7105视频编解码芯片,设计了高性能的视频监控系统。
基于DM642嵌入式图像融合处理系统硬件设计王旭东;王晓卫;李明哲【摘要】本文以图像融合硬件系统及其实现技术为研究内容,以TMS320DM642为核心处理器,以SAA7121H和TVP5150PBS为视频编解码器,介绍了高性能图像融合处理系统的硬件设计过程,详细描述了系统架构、核心处理器内部配置以及视频编解码模块电路设计,并结合实际设计中碰到的问题给出了解决办法.%This paper emphasizes the hardware design and realization of video fusion processing system, introduces the procedure of high performance system based on TMS320DM642 processor and digital video encoder/decoders (SAA7121H & TVP5150PBS) hardware design, describes the architecture of system, the inner collocation of core processor and the circuit design of video encoder/decoders in detail, gives some solutions for the problems according to the practice.【期刊名称】《电子设计工程》【年(卷),期】2017(025)018【总页数】6页(P172-177)【关键词】DM642;图像融合;电路设计;编码;解码【作者】王旭东;王晓卫;李明哲【作者单位】陆军航空兵学院北京 101123;陆军航空兵学院北京 101123;陆军航空兵学院北京 101123【正文语种】中文【中图分类】TN492近20年来,随着传感器技术和计算机计算能力的提高,多传感器图像融合技术的应用越来越广,以多传感器图像融合为核心的战场感知技术已成为现代战争中最具影响力的军事高科技[1]。
基于DM642的AVS视频解码器的实现与优化的开
题报告
背景:
随着数字媒体通信技术和互联网技术的发展,人们越来越依赖高清
晰度( HD) 视频技术,但高清晰度视频数据量较大,需要高效的解码技术来支持。
基于AVS (国家视听专家组AVS工程组) 视频编码标准,本项目将研究DM642平台上的AVS视频解码器实现与性能优化。
研究内容:
1.研究AVS 视频编码标准,并在DM642平台上实现AVS视频解码器。
2.针对AVS视频解码器的性能优化,结合DM642 Sparclet8开发板,通过算法优化、指令集优化与并行处理等策略提高解码效率。
3.对解码器进行仿真测试,得到解码性能相关数据对实现和优化过
程进行评估。
研究意义:
本项目将探索基于DM642的AVS视频解码器的实现与优化,可以扩展视频解码技术的应用领域。
有助于提高视频解码的效率和质量,降低
解码器硬件成本,适应高清晰度( HD) 视频处理需要。
计划进度:
第1-2周:研读相关的论文和文献,学习AVS视频编码标准;
第3-4周:熟悉DM642平台和Sparclet8开发板,进行 codec 基础
工作的实现;
第5-6周:优化算法和指令集,提高解码效率;
第7-9周:完成解码器实现和性能评估,根据测试结果对实现和优化过程进行评价。
第10周:撰写论文及中期答辩。
第11-12周:补充完善和改进,准备最终论文和答辩。
基于DM642的视频处理系统硬件设计分析杨兴泉摘㊀要:随着现代经济的飞速发展,互联网技术㊁计算机技术也进入人们的视野,视频处理系统在人们的日常生活中的应用也逐渐多元化,并且逐渐走进军事㊁医疗㊁科研等诸多领域㊂近几年来,基于DM642的视频处理系统逐渐成为人们研究的重点㊂在视频处理系统中,编解码的硬件是实现视频处理的重要前提,只有通过该视频处理硬件,才能实现是数字视频的处理和网络传输,具有非常重要的研究意义㊂关键词:TMS320;视频处理;视频接口一㊁引言随着视频处理系统的迅速发展,视频处理系统也逐渐进入人们的视野㊂同时,随着对视频技术的研究的逐渐深入,在此基础上出现了很多的新的技术和研究方向,拓宽了它在其他领域的应用,比如医疗设备中的机器影像,交通路口㊁小区的监控装置,军事武器装备中的成像技术等㊂所以,设计一种视频处理系统对于人民和社会有着重要意义㊂二㊁基于TMS320的视频处理系统硬件设计在TI公司推出的C64系列中,TMS320DM642是专用视频接口的高性能定点DSP㊂性能方面,最大具有4800MIPS的数字处理能力;配置方面,具有二级缓存结构,3个视频接口,64位扩展内存接口(EMIF)(可扩展存储空间),64独立通道EDMA控制器,可(实现片内/外的数据传送和复制)㊂(一)系统的硬件结构视频处理系统的硬件设计的核心装置是DM642,相较于市面上普通的视频处理系统,它具有高性能和高运算速度,可以满足对于视频处理所需的大部分复杂算法的处理要求㊂在视频信号的采集方面,可以使用较为获得的CCD摄像头进行采集㊂当视频信号被采集完以后,系统利用解码芯片将模拟信号进行转换,使其变为数字信号,再传递给DSP进行运算处理㊂在DM642的3个视频接口中,VP0和VP1可以用于视频输入和音频输入,而VP2口分为两路视频输入㊂因此,这一硬件结构的工作就是,经CCD采集视频信号后,通过DM642的VP0口输入,解码芯片将模拟信号进行转换㊂此后,数字视频信号再经过DM642的软件编码器,被其编码压缩处理,并将生成的视频码流数据进行打包整理,再经过RJ-45接口利用太网传送到上位机,因此上位机就可以作为该系统的监控装置㊂此外,DM642的EMIF接口连接SDRAM和Flash存储器㊂系统内的DSP仅仅几乎不能满足系统的要求,因此当系统需要对视频进行实时处理时,必须在系统中配置高性能SDRAM㊂当它在运行程序和进行数据处理,可以减少数据流动过程中的时间消耗,在一定程度上提高了视频处理系统的所需的处理时间;Flash可以用来存放系统软件,也可以配置参数㊂(二)存储器模块设计在视频处理系统系统的数据处理模块中,存储器的核心模块电路芯片包括DSP芯片㊁SDRAM芯片和Flash芯片㊂存储器模块,顾名思义,它可以程序存储器的程序读写㊂此外,它还可以实现内部数据与外部数据存储器的数据传输㊂在仿真调试阶段,它可以与仿真器相连,与主机进行数据交换,进行仿真调试㊂(三)JTAG接口设计在进行调试时,JTAG接口也是必不可少的设计㊂它可以连接目标板,方便开发者对目标板的开发,并且开发者在修改的同时不用改变其系统结构,在一定程度上减轻了开发和测试系统的难度㊂此外,在连接调试设备时,JTAG接口将XDS510仿真器与系统板和电脑相连,方便开发者在统一的公司集成化开发环境中进行调试,极大限度的减轻了调试难度,避免了系统不匹配的问题㊂(四)电源模块的设计电源模块是给系统提供动力的模块㊂在一般的视频处理系统中,系统内的不同模块会利用不同的电压,所以在电源模块中必须设计电源管理芯片,其作用是进行电压变换,将相应的电阻和电容值进行修改,满足各部分模块所需的电压,如3.3V㊁1.8V及1.4V等不同大小的电压㊂在本系统设计中,为了减少在调试过程中的麻烦,决定采用TPS54310,它也是属于TI公司生产产品,属于电源调节芯片㊂需要说明的是,它虽然能够实现低电压输入和高电流输出,但是其调节范围是有限的,一般的调节范围为输入电压为3 6V,输出电压为0.9 3.3V之间㊂不同的电压用于不同的模块,例如3.3V的电源可以用于核心芯片如视频解码芯片㊁视频编码芯片㊁SDRAM芯片等的供给电源㊂三㊁系统调试由于系统的复杂性,为了尽量减少系统调试的难度,用到的系统模块多为TI公司的生产产品,在一定程度上提高了系统的可靠性㊂此外,为了避免单个模块出现问题的情况,决定对各个模块分别调试,后将各模块进行联调,最后整体调试系统的性能,缩短了调试时间㊂在调试中尽量选择最优的方案进行调试,方便系统工作时处于最佳状态㊂四㊁结语文章基于DM642这一核心装置,通过对系统硬件机构的选择,了解其不同的功能和用途,后文经过存储器模块㊁JTAG接口和电源模块的不同设计,最终进行系统调试,在理论和选材上完成了对DM642视频处理系统的设计㊂下一步研究的方向应该是对不同模块设计具体的程序,对其中的不同的模块设计电路图,进行组装,并对最后的系统进行进一步的完善㊂最后,可以在此系统上研究不同的算法,方便他用于不同的场景,比如通过研发新的视频压缩算法,方便它应用于军事㊁医疗㊁教育等诸多领域㊂参考文献:[1]刘丹,孙丽云,胡伟,等.基于DM642的视频处理系统设计[J].微计算机信息,2007,23(17):157-159.[2]圣冬冬.基于DM642的视频处理系统硬件设计[J].电子设计工程,2019,19(2):168-173.[3]刘琼,安涛,金钢,等.基于DM642视频采集处理系统硬件设计[J].微计算机信息,2007,23(32):180-182.作者简介:杨兴泉,南京优视互联科技有限公司㊂681。
采用TMS320DM642与VP5150芯片实现节能型视频监控系统的设计视频监控系统越来越多地走进人们的生活,系统节能也是电子系统必须考虑的一个重要参数。
对一个少有人出入的场合,采用不间断的实时监控不仅没有必要,也会浪费很多的电能。
针对这种情况,本文设计了一个无人值守的智能监控终端。
在没有人进入监控区域时,监控终端处于低能耗的休眠状态;当红外传感器检测到有人进入监控区域时,终端被唤醒并开始摄像,同时将处理后的视频信号经过网络传输到监控中心,为中心值班人员提供判断依据。
对于出入人员较少的场合,利用该监控终端可以有效减少系统能耗,减少传输、保存的数据量,而且不会错过监控对象。
1 终端工作原理及总体框图终端的总体框图如图1 所示,在没有人员进入监控区时,系统处于休眠、节能状态,当红外传感器检测到有人员进入监控区域时,产生外部中断,中央处理器TMS320DM642 在接收到外部中断时立即启动各模块进行图像的采集、处理、传输等。
图1 终端原理框图2 终端系统设计2.1 中央处理器的选择由于终端要处理的数据量大,实时性强,所以采用多媒体处理芯片TMS320DM642( 以下简称为DM642) 。
该芯片是TI 公司C6000 系列DSP 中较新的32 位定点DSP ,工作频率由内部倍频器设置,可以达500 MHz 、600 MHz 或720 MHz ,每秒可执行指令数4 000 、4 800 、5 760 MIPS 。
DM642 采用TI 公司第2 代增强型超长指令集,它的EMIFA 接口数据总线宽度为64 位,最高存取频率133 MHz ,可直接与大容量、低成本的SDRAM 芯片无缝连接。
DM642 带有3 个双通道(A,B 两通道)数字视频口,可同时处理多路数字视频流。
DM642 拥有I2C 接口,可以与外部I2C 设备通信,用来配置外部I2C 设备的寄存器,DM642 的网口(EMAC 接口) 、PCI 口和HPI 口共享引脚。
我用的是DM642+TVP5150+SAA7121,因此TI DDK提供的库就不能用了,合达提供的库不知道为什么也不能用。
因此不得不研究一下类微驱动的结构。
肤浅认识,多多指教!视频采集类微驱动程序结构分析:1、整个驱动程序分为设备相关部分(board specific part)和设备无关部分(generic part),TI提供的DDK对应的board specific part是SAA7115和SAA7105。
如果使用其它解编码器件这部分需要另外编程,主要内容是编写EDC_Fxns类型的函数表,例如对于 TVP5150需要完成三个函数供微驱动程序调用:TVP51xx_open,TVP51xx_close,TVP51xx_ctrl。
FVID_xxx 对应的是应用程序调用的函数,GIO_xxx对应的是类驱动程序调用的函数,mdxxxxx对应的微(mini)驱动程序。
2、(DSP/BIOS) 系统初始化时,mdBindDev被调用,绑定外部设备到指定的端口,包括使能视频端口,清中断等等,特别是EDC function(需要用户写)将被传到其参数devParam指针,是下面几个步骤的基础。
3、主程序中调用FVID_create创建视频通道,则:FVID_create->GIO_create->mdCreateChan->TVP51xx_open,在 vportcap.c中有如下代码:代码:if(port->chanObj[chanNum].edcFxns != INV) {/* open external device */port->chanObj[chanNum].edcHandle= port->chanObj[chanNum].edcFxns->open(name, (Arg)INV);}"edcFxns->open"是设备相关的,需要用户对特定器件写特定代码。
ICETEK-TVP5150-EM板使用说明ICETEK-DM642-PCI板是一个集视频输入输出、音频编解码、网络传输、PCI接口等功能于一身的嵌入式应用开发平台,可用于软、硬件的评估。
为了在此平台上评估更多的硬件与DM642的连接应用,板上留出了3个扩展插座,即DCP1-3(这些扩展插座的定义,请参考ICETEK-DM642-PCI板附带的说明文档“TMS320DM642评估板背板规范.pdf”),它们提供了EMIF、Vport口的接口以及电源和地等信号。
一.背板设计设计目的:由于ICETEK-DM642-PCI板上视频输入部分的组成为:视频解码芯片SAA7115(A,B)->DM642Vport(0,1),其中的视频解码芯片可供两路活动视频信号同时输入,还支持Y/C分离信号的输入。
如果在实际应用中,我们不满足此输入配置,而需要单路输入或更多路的输入,或者需要采用其他的视频解码芯片取代SAA7115,比如构造数字信号的输入模块以连接数字摄像输入设备,就可以通过设计一个插在DCP1-3上的扩展背板来实现硬件和软件的评估。
ICETEK-TVP5150-EM背板就是一个直接接到DM642的Vport0上的视频解码芯片,构成TVP5150->DM642 Vport0的视频输入通路。
通过软件设置,DM642采用此此背板上的复合视频插座输入,从而绕开了ICETEK-DM642-PCI板上提供的视频输入通路。
TI TVP5150A芯片简介:TVP5150是一款视频解码芯片,它有1个9bit的AD转换器,可进行N 制和PAL制复合视频信号及Y/C信号的解码和输出,可产生8bit4:2:2格式或ITU-R BT656格式的输出,由一个标准的I2C总线接口进行控制。
具体的控制和输出方法请参见TVP5150A芯片的数据手册。
设计思路:电源:背板的供电采用3.3V,考虑功耗因素,背板可以由ICETEK-DM642-PCI板驱动,所以从ICETEK-DM642-PCI板上的DC_P1接口直接取电。
TVP5150调试报告一、分析TVP51501、简介TVP5150系列是一颗使用简易,超低功耗,封装极小的数字视频解码器。
使用单一14.31818MHz时钟就可以实现PAL/NTSC/SECAM各种制式的解码,输出8-bit ITU-R BT.656数据,也可输出分离同步。
MCU通过标准I2C接口控制TVP5150的诸多参数,比如色调,对比度,亮度,饱和度和锐度等等。
TVP5150内部的VBI处理器可以分离解析出VBI(Vertical Blanking Interval)里面的teletext、 closed caption等等信息。
2、输出信号为了方便后续调试工作,选择PAL-N,ITU-R BT.601标准输出。
3、主要时序4、需要注意的地方①PIN11为复用管脚YOUT7/I2CSEL。
I2CSEL为I2C从地址片选位,应该加入一个上拉或者下拉。
YOUT7为输出的最高位。
为了保证不影响输出,且可以作为片选,应把该管脚加上拉,并连接到IO口上。
②根据02专案原理图设计,输出管脚所有都上拉到3.3V,因此现在的的器件从地址为BAH。
③PIN27 INTREQ/GPCL/VBLK需要拉低,才有数据输出,否则没有。
(网上经验之谈,未验证。
)④晶振的频率不能有偏差。
⑤I2C配置虽然简单,但是TVP5150的I2C要求非常高,必须严格按照上面要求才能配置,否则不成功,特别是要注意等待从机响应。
5、存在问题的地方①由于选择了PAL-N制式,因此输出为720*576@50Hz,如何扩展数据至800*600满足SVGA LCOS屏要求?如何采取数据至320*240满足QVGA LCOS要求?如何转换成1280*768 Raw data格式,满足01专案DSP板的要求?②输出为50Hz视频,能够驱动要求为60Hz~120Hz的LCOS屏能否被点亮?二、寄存器值设置从地址:BAH寄存器值设置如下表:三、 I2C配置相关数值00H 00H 03H 8FH O4H DCH 07H 60H 08H 00H 09H 80H 0AH 80H 0BH 00H 0CH 80H 0DH 40H 0EH 00H 0FH 12H 11H 00H 12H 00H 13H 00H 14H 00H 15H 01H 16H 80H 18H 00H 19H 00H 1AH 0CH 1BH 14H 28H 00H四、程序调试1、编写I2C调试程序。
TVP5150xxx 使用手册:1. 介绍TVP5150系列是一颗使用简易,超低功耗,封装极小的数字视频解码器。
使用单一14.31818MHz时钟就可以实现PAL/NTSC/SECAM各种制式的解码,输出8-bit ITU-R BT.656数据,也可输出分离同步。
MCU通过标准I2C接口控制TVP5150的诸多参数,比如色调,对比度,亮度,饱和度和锐度等等。
TVP5150内部的VBI处理器可以分离解析出VBI里面的teletext,closedcaption等等信息。
2. 硬件设计1)参考原理图:2)参考gerber file:TVP5150EVM CAM.zip3)硬件原理设计注意事项:•晶体电路:参考时钟频率如果有非常小的误差都可能导致颜色错误甚至没有颜色。
因此我们要注意:使用正确频率的晶体,14图114.31818MHz,误差在50ppm内为佳;C1,C2的选择应该根据晶体的负载电容,,其中Cstray一般取3-8pF。
•上电时序:由于TVP5150AM1内部有多种电压,为了保障系统的正常工作,我们建议1.8v电压先上,然后上3.3v电压,最后相隔100ms后给系统复位。
•视频输入管脚及增益设置:在匹配电阻为75欧姆情况下,最大的峰峰值为1.24v,如下图:图2这时候就超过了TVP5150允许的最大输入值0.75v,我们通常采用电阻分压网路来解决该问题。
图3• Anti-aliasing滤波器设计:为了防止频带外的杂讯干扰,通常在模拟前端加入低通滤波器。
如图4,是给CVBS信号、S-Video的滤波器,它们不同主要是因为TVP5150对这两种信号的采样频率不同。
图4图5.幅频特性,频响特性4)PCB layout注意事项:•地的分割:建议分模拟地和数字地,并使它们在相应的电源层下。
•不要将任何信号放在电源层或地层上。
•确保电源层等于或小于相应地层的大小。
•不要使模拟信号靠近时钟信号。
•不要将数字信号放在模拟区域。
第29卷 第3期2006年9月电子器件Ch inese Jo urnal o f El ectro n D evicesVol.29 No.3Sep.2006Driver Program Design for Video Decoder TVP5150Based on DM642XU Zhi -wei ,M A Deng -j i ,L I NG Feng ,Z HU Shan -an ,H E Zheng -jun(College o f E lectr ica l Eng ineering ,Zhejiang Un iver sity ,H angz hou 310027,Ch ina )A bstract :Aimed at embedded video surveillance sy stem co nsisted o f high -pow ered video pro cessing chip TM S320DM642and video decode r TVP5150of TI ,this paper intro duces the Class /Mini -Driver M odule of DM642,and designs the device driver prog rams for video capturing.Further mo re ,it provides the so lution of splitting -screen problem w hen DM 642is capturing video.This driver pro gram has been applied to the video surveillance sy stem and testing result indicate s that this prog ram runs stably.Key words :DM642;TVP5150;class /mini -driver m odule ;splitting -screen .EEACC :6140C基于DM642的视频解码设备TVP5150驱动程序的设计徐志伟,马登极,林 峰,朱善安,何正军(浙江大学电气学院,杭州310027)收稿日期:2005-10-13作者简介:马登极(1981-),男,河北人,工学硕士,主要从事嵌入式底层软件的研究,pony mdj @yaho o.co ;徐志伟(1978-),男,浙江富阳人工学硕士,主要从事嵌入式底层软件的研究。
摘 要:针对T I 推出的高端专用视频处理芯片T M S320D M 642和视频解码芯片T V P5150构建的嵌入式视频监控系统,介绍了DM 642的类/微型驱动模型,在此基础上设计了视频采集底层设备驱动程序,并对DM 642在图像采集时产生的分屏现象提出了解决办法。
本驱动程序已在视频监控系统中得到应用,运行稳定。
关键词:DM 642;T V P5150;类/微型驱动模型;分屏现象。
中图分类号:O432.2;TP391.41文献标识码:B 文章编号:1005-9490(2006)03-0945-06 随着现代化图像处理技术的飞速发展,人们对图像采集系统的实时性和可靠性要求越来越高。
嵌入式图像采集处理系统具有体积小、成本低、可靠性高、安装方便等优点,在交通、安防监控等领域都有广泛的应用。
TMS320DM 642[1]是TI (Texas In -strum ents )于2002年推出的一款高端专用视频处理芯片,由于它超强的单核处理性能,在视频领域将有非常广泛的应用,与之相应的外围视频设备也会越来越多。
所以,为这些外围设备编写驱动程序已经成为依赖操作系统管理硬件设备的内在要求。
1 DM642系统整体构架和功能简介如图1所示,DM 642有三个视频VPo rt 口,VP0和VP1与视频解码芯片相连作视频输入,V P2与视频编码芯片连接作视频输出。
另外还有存储模块,电源模块,网络模块等。
VP0和V P1各被分成两个8bit 的视频输入接口,连接4片视频解码芯片,实现4路的视频采集功能。
图1 DM 642系统整体架构2 视频解码芯片的选择和设计目前被广泛使用的视频解码芯片是TI 推出的SAA 7115和TVP5150。
虽然SAA7115芯片功能强大,支持水平、垂直、场同步信号控制并具有片上1/2缩放功能,但SA A7115的功耗比较大,用一个电源带4片SAA7115比较困难,而且操作也很复杂,在本嵌入式系统的设计中选择了更加适合系统低功耗功能稳定要求的TVP5150芯片。
TVP5150[2]是TI 推出的一款超低功耗的高性能混合信号视频解码芯片,可自动识别NTSC /PA L /SECAM 制式的模拟信号,按照YCbCr4:2:2的格式转化成数字信号,以8位内嵌同步信号的ITU -R BT.656格式输出。
具有价格低、体积小、操作简便的特点。
DM642对TVP5150芯片的操作是通过I2C [3]总线实现的,硬件连接如图2所示。
TV P5150和DM642的连接方式采用最简连线的I TU -R BT.656方式,不需要像视频采集芯片SAA7115所要求的水平、垂直、场同步信号线,结构简单。
图2 T V P5150与DM 642的硬件连接3 DM642视频输入端驱动程序设计DM642为设备驱动开发者提供了一种类/微型驱动模型(class /mini -driver mo del )[3]。
该模型在功能上将设备驱动程序分为依赖硬件层和不依赖硬件层两层,两层之间使用通用接口。
如图3所示,上层应用程序不直接控制底层微型驱动,而是通过一个叫做类驱动(Class Drive r )的中间层来对微型驱动(M ini Driver )执行操作。
这样的模型设计在结构上更加清晰,程序易于移植和扩展,代码复用性高,从而提高程序的开发效率。
类驱动具有承上启下的作用,对上为应用程序提供接口,向下传达指令,通常用于完成多线程I /O 请求的序列化功能和同步功能,同时对设备对象进行管理。
微型驱动为类驱动和DSP /BIOS 设备驱动管理提供标准接口,通过芯片支持库(Chip Sup -图3 类微型驱动模型结构狆狅狉狋犔犻犫狉犪狉狔)[4]控制外设的寄存器、内存和中断资源对外部设备实现控制。
微型驱动程序必须将特定的外部设备有效地表示给类驱动。
3.1 类驱动模型和选择类驱动模型中提供了三种模块:管道管理模块(PIP )、流输入输出模块(SIO )和通用输入输出模块(GIO )。
3.1.1 PIP 模块和SIO 模块。
PIP 和SIO 两个模块提供应用程序使用的A PI 接口,用于支持DSP 和外设之间的数据交互。
这两种模块都需要通过类驱动中相应的适配模块和微型驱动的IOM 连接实现数据交互。
PIP 的适配模块称为PIO ,SIO 的适配模块称为DIO 。
PIP 模块提供管理异步I /O 的数据管道。
每个管道对象都拥有一块同样大小的缓存,PIP 模块的接口函数就是通过缓存进行数据交互的。
PIO 适配模块通过PIP 模块从应用程序中获得缓存,并将获得的缓存提供给微型驱动使用。
当微型驱动使用完缓存时,PIO 模块还可以将缓存交还给应用程序。
SIO 模块为每个DSP /BIOS 线程提供一个独立的I /O 机制,执行点对点(point -to -point )数据交流。
它支持动态创建。
DIO 模块可以简化SIO 模块和IOM 之间的连接,使得通信和同步变得更简单。
3.1.2 G IO 模块GIO 模块[5]的传输模式是基于流输入输出模式的同步I /O 模式,更适合文件系统I /O 。
在编写类驱动时,可以直接调用GIO 的读写API 函数,这些函数的接口已经内置于微型驱动的IOM 中。
GIO 模块在提供必要的同步读/写API 函数及其扩展函数的同时,将代码和使用数据缓存的大小尽量简化。
如图4所示,应用程序可以调用GIO 的A PI 函数直接与微型驱动的IOM 交换数据,操作简单。
根据以上介绍可以看到,GIO 模块不需要二级接口,操作简单、稳定。
所以我们在设计DM642视946 电 子 器 件 第29卷图4 通用输入输出模块(GIO )与微型驱动接口频采集类驱动的时候采用了通用输入输出模块GIO 。
3.2 微型驱动模型为了最大可能地增加驱动代码的复用性和通用性,DM642视频采集回放的构架在图1类/微型驱动模型的基础上作了如图5所示的改进:图5 DM 642视频采集回放微型驱动架构图3中把微型驱动模型分为两部分:普通微型驱动部分和特殊微型驱动部分[6]。
普通微型驱动部分仍然保留有IOM Mini —Driver 的所有API 接口函数。
特殊微型驱动部分是面向外围芯片的,它通过一个叫作EDC (External Device Control )的专用接口提供了对外围芯片的打开、控制、关闭的接口函数:typedef str uct EDC _F xns {EDC _Handle (*o pen )(S tring name ,A rg o ptA rg );Int (*close )(P tr dev Handle );Int (*ctrl )(P tr devH andle ,U ns cmd ,A r g ar g );}EDC _F xns ;通过这三个函数完成对TVP5150的控制操作,所以,如果编写其它图像芯片(比如视频回放芯片SAA7105[7])驱动的时候,对微型驱动部分的驱动不需要作很大改动。
这样特殊微型驱动部分与普通微型驱动部分实现了无缝结合,使用简单。
4 驱动程序设计和实现根据类/微型驱动程序的模型,驱动程序的设计可以分为三个层次:类驱动程序,微型驱动程序和芯片驱动程序。
4.1 类驱动程序的设计基于使用方便和代码封装性的考虑,在GIO 模型的基础上又封装了一层模型:FVID 类驱动模型,如图6所示。
图6 F VID 类驱动封装与GIO 的关系F VID 对GIO 模型的封装代码如下:#define F VID _create (name ,mode ,status ,o ptA r gs ,at -tr s )\GIO _create (name ,mode ,sta tus ,optA rg s ,attr s )#define F V ID _allo c (gioChan ,bufp )\GIO _submit (g ioChan ,F V ID _A L LO C ,bufp ,N U L L ,N U L L )#define F V ID _co nt rol (gioChan ,cmd ,arg s )\GIO _co ntrol (g ioChan ,cmd ,arg s )当然,我们可以改变FVID 模型的名字,比如把FVID _creat 改为VIDEO _creat ,这样驱动程序提供给应用程序的接口就比较简单易读。