基于DM642的多路视频采集系统(第2页)
本文共计5590个字,预计阅读时长19分钟。【 字体:大 中 小 】
};对SAA7121H 进行配置:
SA7121H_ConfParams sa7121hPAL[45] = {{0x26,0x00},{0x27,0x00},{0x28,0x21},{0x29,0x1d},{0x3A,0x13},{0x5A,0x0c},{0x5B,0x21},{0x5c,0xAF},{0x5d,0x23},{0x5e,0x35},{0x5f,0x35},{0x60,0x00},{0x61,0x06},{0x62,0x2F},{0x63,0xcb},{0x64,0x8a},{0x65,0x09},{0x66,0x2a},{0x67,0x55},{0x68,0x56},{0x69,0x67},{0x6a,0x58},{0x6b,0x20},{0x6c,0x05},{0x6d,0x20},{0x6e,0xA0},{0x6f,0x14},{0x70,0x80},{0x71,0xe8},{0x72,0x10},{0x73,0x42},{0x74,0x03},{0x75,0x03},{0x76,0x05},{0x77,0x16},{0x78,0x04},{0x79,0x16},{0x7a,0x18},{0x7b,0x38},{0x7c,0x40},{0x7d,0x00},{0x7e,0x00},{0x7F,0x00}
};
2.2 多路视频采集的驱动程序设计
本驱动程序是基于 DDK 驱动模型设计的,通过 DSP/BIOS 配置工具在DSP/BIOS 应用程序中注册并使用一个微型驱动,配置应用程序使用该微型驱动。创建一个新的设备对象后,对其属性主要设置设备号、设备参数指针、设备实例的驱动函数表以及该驱动函数表的类型。
FVID 模型是建立在GIO 模型之上的,并对GIO 模型进行了改进。典型的有FVID_create()、FVID_control()、FVID_alloc()、FVID_exchange()、FVID_free()函数。FVID 函数会在设备表中查找已注册的微型驱动,并调用微型驱动函数完成对外部设备的操作。然后创建FVID 采集、显示通道,配置 SAA7121, SAA7113,分配相应的缓冲区,对得到的视频帧进行处理等操作。
本设计是对两路视频信号同时采集,通过三个任务来完成:两个视频采集任务任务、一个视频输出任务。任务间是通过SCOM 模块进行通信的,SCOM 模块管理SCOM 队列对象。
每一个SCOM 队列内部使用一个队列对象(QUE)和一个旗语对象(SEM)。在SCOM 队列的结构在SCOM 模块中是私有的。应用程序不应该涉及到SCOM 队列的对象。
视频采集任务的程序:
void tskVideoCaptureVp1(){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_getMsg(fromDIStoInput1, SYS_FOREVER); //重队列中读消息FVID_exchange(capChan, &capFrameBuf);}
}
这是其中的一路视频采集程序,通过同样的方法可以写出第二路的采集程序。视频输出的任务中完成了两路视频的输出,主要在循环中完成,程序如下:
while(1){capFrameBuf=(FVID_Frame*)SCOM_getMsg(fromInput1toDIS,SYS_FOREVER);for(i = 0; i < numLines; i ++){DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch,disFrameBuf->frame.iFrm.y1 + i * disLinePitch, numPixels);}
capFrameBuf = (FVID_Frame *)SCOM_getMsg(fromInput1btoDIS, SYS_FOREVER);for(i = 0; i < numLines; i ++){DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch,disFrameBuf->frame.iFrm.y1 + i * disLinePitch+352, numPixels);}
DAT_wait(DAT_XFRID_WAITALL);CACHE_clean(CACHE_L2ALL,NULL,NULL);FVID_exchange(disChan, &disFrameBuf);SCOM_putMsg(fromDIStoInput1, NULL);/* loop forever */SCOM_putMsg(fromDIStoInput1b, NULL);/* loop forever */}
整个软件设计的流程图见:
3 系统调试
本系统是一个多路视频采集系统,通过巧妙的硬件设计和精简的软件设计,可以实时输出各路图像。以两路为例,通过两个CCD 摄像头,分别接到四个视频采集口中的两个,然后通过把视频输出端口接到VGA 显示器上。显示器分左半边显示摄像头A 的图像,右半边显示摄像头B 的图像。实际效果图见。
4 结论
本系统通过 I2C 总线上切换的方法完成了多路视频采集系统的硬件设计,以 DDK 驱动模型做视频驱动开发,可提高驱动程序的可重用性和可移植性,简化视频驱动程序的开发,从而极大地提高驱动程序的开发效率。实践证明:基于 DDK 的视频驱动程序运行稳定,与应用程序实现了无缝连接,是一种高效可靠的开发方法。多路视频采集系统成功研制为多路视频实时处理系统的实现提供了软硬件支持。
中国
[参考文献] (References)
[1] Texas Instruments Incorporated.The DSP/BIOS Driver Developer’s Guide[Z].2002.
[2] Texas Instruments Incorporated.TMS320DM64x DSP Video Port/VCXO Interpolated Control(VIC) Portreference Guide[Z].2003.
[3] 刘琼,安涛,金钢等.基于 DM642 视频采集处理系统硬件设计[J].微计算机信息,2007,11—2.
[4] 徐婉莹,刘建军,黄新生.基于CPLD 和DSP 的高速图像采集技术研究[J].电子工程师,2004,30(6):48-50.


农田水利建设项目资金的申请报告
小型农田水利建设新机制完善策略论文
加强农田水利建设的对策的理工论文
农田水利建设策略论文(通用6篇)
基层农田水利建设论文
通信工程建设监理模式创新
通信工程专业建设体系建设
论LTE无线通信若干关键技术论文
移动通信网络信号楼宇的高层覆盖技术论文
地铁降级备用无线通信系统设计论文
4G非信令功能无线通信论文
Matlab仿真在无线通信原理与系统中的运用与研究论文
通信工程项目风险管理的分析论文
电力通信工程项目管理优化探讨的论文
通信工程项目集成化管理探讨论文
通信工程项目质量管理特点论文
通信工程项目管理系统的应用论文
通信工程项目管理探析的论文
移动通信工程项目管理研究论文
通信仓库管理制度(精选14篇)