基于dm642的多路视频采集系统_第1页
基于dm642的多路视频采集系统_第2页
基于dm642的多路视频采集系统_第3页
基于dm642的多路视频采集系统_第4页
基于dm642的多路视频采集系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 DM642 的多路视频采集系统 引言 随着数字信号处理器 DPS 芯片集成度, 运算速度,数据吞吐率 等性能的不断提高,己被广泛应用于许多实时视频处理和传输领域。 一般图像处理系统由摄像机、图像采集卡、计算机构成 , 图像理解和 处理算法全部以软件方式实现。 这是因为实时数字图像处理信息量和 计算量大,而大多数图像采集卡基于成本考虑没有处理器和大容量的 存储器,绝大部分任务必须依靠计算机才能胜任。 这种计算机参与的 系统的应用场合受到很大限制, 在工业或军事等复杂环境下应用极为 不便,因此许多专用图像处理系统应运而生。 脱离计算机独立运行的 实时专用图像处理系统,由于集图像采集、处理等功

2、能于一体,并易 于满足图像处理中数据量大、 运算复杂、 实时性强等要求而受到众多 研究人员的关注。 TI 公司推出的 TMS320DM642 型数字信号处理器可实时处理 4 路模拟视频和音频输入、 1 路模拟 / 数字视频和 1 路模拟音频信号 输出1-2。适应 PAL/NTSC 标准复合视频 CVBS 或分量视频 Y/C 格 式的模拟信号输入, 可适于 PAL/NTSC 标准 S 端子或数字 RGB 模 拟/数字信号输出,也可适应标准麦克风或立体声音频模拟输入及标 准立体声音频模拟输出,并进采用 EDMA 的数字视频图像信号的实 时传输,具有对多路采集数据进行实时处理和分析的功能。 1 系统

3、设计 TMS320DM642 是 32 位定点高性能处理器,最高工作频率可 以达到 720MHz ,处理能力可以达到 5760MIPS ,因此可以实现对多 路图像的实时处理 3-5 。DM642 在 TI 的 C64x DSP 内核基础上进 一步集成了完备的视频接口、音频接口、以太网接口、 PCI-66 总线 等片上外设。 用户可以方便地对音频、 视频等各种复杂的运算进行高 速处理,因此 DM642 已经广泛的应用于数字视频服务器、 多通道数 字视频录像机、多通道数字视频监控等领域。 本系统配置了 4M 的 Flash 和 32M 的 SDRAM ,可以满足一般 应用的需要。 DM642 有三

4、个视频口,分别为 VP0 、VP1 和 VP2 。 其中 VP2 为单一功能的视频口。 VP0 和VP1 是与 McBSP 、McASP 复用引脚。 DM642 上集成了一条 I2C 总线,本系统中一共有 4 个 视频输入口,而一个 I2C 中线能只能接两个 SAA7113 视解编码器, 因此需要在 I2C 总线上做总线切换,分成 I2C0 和 I2C1 ,这样就可 以接 4 个 SAA7113 视解编码器。 I2C 总线切换电路见图 1。 整个系统是 DM642 为核心,主要包括视频模块、存储模块、通 信模块以及其他外围电路部分。 视频模块由四块编码器芯片和一块解 码器芯片组成, 采用切换方

5、式以支持四路复合视频输入和一路视频输 出显示;以存储模块通过 DM642 的 EMIF 接口扩展片外存储器 SDRAM 和FLASH ,并通过 CPLD 控制 FLASH 片内分页寄存器的 读写 ;通信模块部分利用 CPLD 控制并口传输模式,实现时序逻辑以 及数据传输,使整个系统作为从设备接受主设备控制以完成特定的图 像处理运算等。整个系统的框图。 2 软件设计 本设计的驱动程序是按照 TI 公司的 DDK 驱动模型设计的,具 有很好的复用性、移植性和借鉴性。 DDK 是 TI 公司为简化驱动开 发复杂度,而定义的一个标准的驱动模型和一套 API 函数6-7 。该 驱动模型主要分为两层: 类

6、驱动和微型驱动。 其中类驱动通过每个外 部设备独有的微型驱动对设备进行操作。 微型驱动通过控制外设的寄 存器、内存和中断资源对外部设备实现控制。 微型驱动程序必须将特 定的外部设备有效地表示给类驱动。 根据 DDK 驱动模型, 本驱动程序设计主要包括三个部分: I2C 总线控制部分, 就是 I2C 总线读写操作的实现部分; 类驱动部分, 主 要是为应用程序提供 API 接口,它的设计在 DDK 模型里是通用的, 可以不修改地直接采用, 所以这里就不作具体介绍了; 微型驱动部分 是与硬件有关的,是驱动程序设计的重点。 2.1 I2C 总线控制驱动程序设计 该部分 是实 现 DM642 通过 I2

7、C 总 线 对 SAA7113H 和 SAA7121H 的控制,使用了底层函数。在 TI 的 CSL(Ship Support Library) 中都有,只要包含相应的头文件即可直接调用。如 I2C 配置 结构体 (I2C_config) 、 I2C 写数据函数 (I2C_writeByte) 、I2C 配置操 作函数(I2C_RSETH) 等。 要是实现对 SAA7113H 和 SAA7121H 的控制,就要先对其进 行配置。 对 SAA7113H 进行配置: SA7113H_ConfParams sa7113hPAL28 = 0 x01,0 x08,0 x02,0 xC3,0 x03,0

8、x33,0 x04,0 x00,0 x05,0 x00,0 x06,0 xE9,0 x07,0 x0D,0 x08,0 x00,0 x09,0 x01,0 x0A,0 x80,0 x0 B,0 x47,0 x0C,0 x40,0 x0D,0 x00,0 x0E,0 x01,0 x0F,0 x24,0 x10, 0 x08,0 x11,0 x0C,0 x12,0 x7E,0 x13,0 x02,0 x15,0 x17,0 x16,0 x 35,0 x17,0 x02,0 x40,0 x02,0 x58,0 x00,0 x59,0 x54,0 x5A,0 x07, 0 x5B,0 x80,0 x5

9、E,0 x00 ;对 SAA7121H 进行配置: SA7121H_ConfParams sa7121hPAL45 = 0 x26,0 x00,0 x27,0 x00,0 x28,0 x21,0 x29,0 x1d,0 x3A,0 x13,0 x 5A,0 x0c,0 x5B,0 x21,0 x5c,0 xAF,0 x5d,0 x23,0 x5e,0 x35,0 x5f, 0 x35,0 x60,0 x00,0 x61,0 x06,0 x62,0 x2F,0 x63,0 xcb,0 x64,0 x8 a,0 x65,0 x09,0 x66,0 x2a,0 x67,0 x55,0 x68,0 x

10、56,0 x69,0 x67, 0 x6a,0 x58,0 x6b,0 x20,0 x6c,0 x05,0 x6d,0 x20,0 x6e,0 xA0,0 x6 f,0 x14,0 x70,0 x80,0 x71,0 xe8,0 x72,0 x10,0 x73,0 x42,0 x74,0 x 03,0 x75,0 x03,0 x76,0 x05,0 x77,0 x16,0 x78,0 x04,0 x79,0 x16, 0 x7a,0 x18,0 x7b,0 x38,0 x7c,0 x40,0 x7d,0 x00,0 x7e,0 x00,0 x 7F,0 x00 ; 2.2 多路视频采集的驱动程

11、序设计 本驱动程序是基于 DDK 驱动模型设计的, 通过 DSP/BIOS 配 置工具在 DSP/BIOS 应用程序中注册并使用一个微型驱动,配置应 用程序使用该微型驱动。 创建一个新的设备对象后, 对其属性主要设 置设备号、设备参数指针、 设备实例的驱动函数表以及该驱动函数表 的类型。 FVID 模型是建立在 GIO 模型之上的, 并对 GIO 模型进行了改 进。典型的有 FVID_create ()、 FVID_control ()、 FVID_alloc() 、 FVID_exchange() 、FVID_free() 函数。 FVID 函数会在设备表中查找 已注册的微型驱动, 并调用微

12、型驱动函数完成对外部设备的操作。 然 后创建 FVID 采集、显示通道,配置 SAA7121, SAA7113 ,分配相 应的缓冲区,对得到的视频帧进行处理等操作。 本设计是对两路视频信号同时采集, 通过三个任务来完成: 两个 视频采集任务任务、一个视频输出任务。任务间是通过 SCOM 模块 进行通信的, SCOM 模块管理 SCOM 队列对象。 每一个 SCOM 队列内部使用一个队列对象 (QUE )和一个旗语 对象( SEM)。在 SCOM 队列的结构在 SCOM 模块中是私有的。 应用程序不应该涉及到 SCOM 队列的对象。 视频采集任务的程序: void tskVideoCapture

13、Vp1()FVID_Frame *capFrameBuf;SCOM_Handle fromInput1toDIS,fromDIStoInput1;fromInput1toDIS = SCOM_open(IN1TODIS); /*打开 SCOM 模块 */fromDIStoInput1 = SCOM_open(DISTOIN1);FVID_alloc(capChan, capFrameBuf); /*申 请 一 个 空 间 */while(1)SCOM_putMsg(fromInput1toDIS, (FVID_Frame *)capFrameBuf);/ 向 队 列 中 写 消 息 SCOM_

14、getMsg(fromDIStoInput1, SYS_FOREVER); / 重队列中读 消息 FVID_exchange(capChan, capFrameBuf); 这是其中的一路视频采集程序, 通过同样的方法可以写出第二路 的采集程序。 视频输出的任务中完成了两路视频的输出, 主要在循环 中完成,程序如下: while(1)capFrameBuf=(FVID_Frame*)SCOM_getMsg(fromInput1t oDIS,SYS_FOREVER);for(i 0; i numLines; i disLinePitch, (FVID_Frame +)DAT_copy(capFra

15、meBuf-frame.iFrm.y1 + i capLinePitch,disFrameBuf-frame.iFrm.y1 + i numPixels); capFrameBuf = *)SCOM_getMsg(fromInput1btoDIS, SYS_FOREVER);for(i = 0; i numLines; i +)DAT_copy(capFrameBuf-frame.iFrm.y1 capLinePitch,disFrameBuf-frame.iFrm.y1 + i * disLinePitch+352, numPixels); DAT_wait(DAT_XFRID_WAITAL

16、L);CACHE_clean(CACHE_L2ALL, NULL,NULL);FVID_exchange(disChan, disFrameBuf);SCOM_putMsg(fromDIStoInput1, NULL);/* loop forever */SCOM_putMsg(fromDIStoInput1b, NULL);/* loop forever */ 整个软件设计的流程图见: 3 系统调试 本系统是一个多路视频采集系统, 通过巧妙的硬件设计和精简的 软件设计,可以实时输出各路图像。以两路为例,通过两个 CCD 摄 像头,分别接到四个视频采集口中的两个, 然后通过把视频输出端口 接到

17、 VGA 显示器上。显示器分左半边显示摄像头 A 的图像,右半 边显示摄像头 B 的图像。实际效果图见。 4 结论 本系统通过 I2C 总线上切换的方法完成了多路视频采集系统的 硬件设计, 以 DDK 驱动模型做视频驱动开发, 可提高驱动程序的可 重用性和可移植性, 简化视频驱动程序的开发, 从而极大地提高驱动 程序的开发效率。实践证明:基于 DDK 的视频驱动程序运行稳定, 与应用程序实现了无缝连接, 是一种高效可靠的开发方法。 多路视频 采集系统成功研制为多路视频实时处理系统的实现提供了软硬件支 持。中国硕士论文网提供大量免费硕士毕业论文 ,如有业务需求请咨 询网站客服人员! 参考文献 (References) 1 Texas Instruments Incorporated The DSP/BIOS Driver Developer s GuideZ 2002 2 Texas Instruments Incorporated TMS320DM64x DSP Video Port/VCXO Interpolated Control(VIC) Portreference GuideZ 2003 3 刘琼,安涛,金钢等基于 DM642 视频

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论