基于DM642的视频解码设备TVP5150驱动程序的设计
基于DM642的嵌入式视频监控系统硬件设计

第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嵌入式图像融合处理系统硬件设计

基于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]。
基于TVP5150的低功耗视频解码模块

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.
第 34卷第 4期
蒋陈铭 ,等 :基于 TVP5150的低功耗视频解码模块
·信号处理与显示技术 ·
3 主要视频信号
3. 1 输出信号 模块将模拟视频信号解码成符合 ITU 2R B T. 656
标准的数字视频信号 ,输出 8 位 Y∶Cb∶Cr = 4 ∶2 ∶2 的 数字信号 。同步信号内嵌于数据流中串行输出 ,也可 以单独引脚与数据流并行输出 。
图 5所示为完整一帧数据 ,分奇偶两场 , 23 ~311 行是偶数场数据 , 366 ~624 行是奇数场数据 ,其余为 场控制信号或者无效数据 [ 6 ] 。 F ID 为奇偶场指示信 号 ,在场同步信号 (VSYNC)下降沿跳变 。VBLK为场 消隐信号 ,高电平有效 ,可以通过设置 TVP5150 寄存 器来改变 其 长 短 , 控 制 有 效 图 像 数 据 输 出 , 因 为 在 VBLK信号低电平期间对应输出视频有效数据 。
a) 开始信号 ( Start) 。 SCL为高电平时 , SDA 由高 电平向低电平跳变 ,开始传送数据 。
b) 结束信号 ( Stop ) 。 SCL 为高电平时 , SDA 由低 电平向高电平跳变 ,结束传送数据 。
c ) 应 答 信 号 ( AcK ) 。接 收 数 据 的 IC在 接 收 到 8 bit数据后 ,向发送数据的 IC 发出特定的低电平脉 冲 ,表示已收到数据 。
本程序流程如图 3所示 。
图 3 PC串口通信程序流程
2. 2 单片机程序 单片机程序完成串口通信和 I2 C总线控制两个功
基于DM642的AVS视频解码器的实现与优化的开题报告

基于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的视频处理系统硬件设计分析杨兴泉摘㊀要:随着现代经济的飞速发展,互联网技术㊁计算机技术也进入人们的视野,视频处理系统在人们的日常生活中的应用也逐渐多元化,并且逐渐走进军事㊁医疗㊁科研等诸多领域㊂近几年来,基于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芯片实现节能型视频监控系统的设计

采用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使用说明书v1

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接口直接取电。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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 ,这样驱动程序提供给应用程序的接口就比较简单易读。