基于Quick Capture技术的摄像头驱动方案.docx
-
资源ID:17780292
资源大小:19.04KB
全文页数:8页
- 资源格式: DOCX
下载积分:15.18金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于Quick Capture技术的摄像头驱动方案.docx
基于QuickCapture技术的摄像头驱动方案caojing导语:随着嵌入式设备不断的开展更新,将会有更多、更先进、更高速的数据传输技术被应用到嵌入式开发的各个领域。摘要:介绍一种高速高质量的嵌入式摄像头传输技术QuickCapture技术;具体表达其设计思想和工作流程,并用可编程逻辑器件Bulverde板卡予以实现。关键词:嵌入式系统驱动程序快速捕捉摄像头随着嵌入式处理器的普及和硬件本钱的不断降低,具有拍照和摄像功能的手机逐步走进了人们的生活。但由于嵌入式处理器的速度有限,在处理图形和多媒体数据方面显得力不从心,导致嵌入式系统的摄像头分辨率低、色深低、数据传送速度慢,无法知足人们即时捕捉高质量图片和视频的需求。QuickCapture技术是一种专为手持设备设计,用来改良图像质量和传输速度的技术。本文基于QuickCapture技术,就摄像头驱动程序和图片信息传输问题,提供一种解决方案。1硬件介绍本人选择的嵌入式微处理器是2003年底Intel公司刚刚推出的一款专门面向挪动和掌上电脑的专用途理器,PXA27x系列,代号为Bulverde。该处理器采用了QuickCapture技术。QuickCapture为成像设备与无线设备提供接口,有助于改良图像质量以及降低产品整体本钱。该项技术包括快速阅读、快速拍照和快速视频拍摄三种操纵形式。该技术使得Bulverde可以支持400万像素数码镜头,并能提供最大416Mbps的数据传输速率。集成在该开发板上的是Agilent公司的型号为ADCM-2650-0001的摄像头感应器。在VGA480×640分辨率下,每秒传输的图片能到达15帧,具备自动曝光和白平衡功能,并且针对嵌入式应用做了很多优化处理,所以非常合适嵌入式领域的应用。ADCM-2650-0001内含3个独立的FIFO条目,存储从感应器捕捉到的视频或图片数据信息。连接处理器和摄像头感应器的是QuickCaptureInterface快速捕捉接口,它提供了以下几种类型的存放器:QCIQuickCaptureInterface控制存放器04;QCI时间间隔存放器;QCI状态存放器;QCIFIFO控制存放器;QCI接收缓冲区存放器。通过这些存放器,可以控制整个处理器与感应器之间的工作流程。摄像头感应器与IntelXScale处理器之间的连接,如图1所示。2接口的实现本人采用的是ElaME1.0“和欣手机操纵系统作为嵌入式操纵系统。这是一款由我国自主开发的智能手机操纵系统,基于微内核,具有多进程、多线程、抢占式、基于线程的多优先级任务调度等特性。和欣操纵系统体积小,速度快,合适网络时代的绝大局部嵌入式信息设备;除了支持摄像头感应器外,还支持彩色LCD、触摸屏、USB等多种嵌入式设备。2.1ElaME下的摄像头驱动模型ElaME的驱动模块如图2所示。ElaME的驱动模型与Unix、Windows操纵系统的不一样。它把驱动程序构件化了,使得驱动程序具备了构件的灵敏等多种特性。例如:当操纵系统启动时并不用加载所有的驱动程序,而是当用户需要用到该设备时才加载。这样的设计使得在手机硬件资源比拟紧张的环境中比传统的嵌入式操纵性系统具有更强的竞争力。设备治理器devicemanager是一个内核对象,治理系统中所有的设备与驱动对象,负责设备信息的搜集、驱动构件对象的创立和删除、设备硬件资源的冲突检测等。摄像头感应器驱动就是一个构件对象,它的主要工作有以下几点:负责通过I2C总线查询摄像头感应器信息,调节摄像头感应器的设置;建立和控制DMA传输通道,通过DMA方式将3个FIFO里的数据信息传送到的内存中;提供可以给用户态程序使用的接口。22摄像头感应器驱动的关键技术实现下面从驱动设计上,详细讲明怎样基于QuickCapture技术,通过DMA方式在感应器的FIFO与内存之间建立最快速最高质量的数据传送。在PXA27x型号的处理器中,有两种内部外围器件:外部总线的外围器件PBP和内部总线的外围器件IBP。快速捕捉接口QuickCaptureInterface属于IBP。内部总线的外围器件通过外围总线连接至DMAC,使用流数据传送。DMAC有两种工作方式:描绘器取入方式和非描绘器取入方式。由于当前手机上捕捉到的图片大小分别是从QQVGA160×120、QCIF176×144、QVGA320×240、VGA480×640不等,最小QQVGA的每张图片大小也有37.5KB,而每个描绘器一次最大能传送8K-1B,所以选择多描绘器链的方式。描绘器链就是将该描绘器的特定存放器内存放的是下一个描绘器的地址,当该描绘器传送完自身的数据后,能获得下一描绘器的地址,读取描绘器内的信息,然后继续下一轮的数据传送。每个FIFO都有自己的一串描绘器链。假如是捕捉图片,采用一个FIFO即可,假如捕捉视频,要用到三个FIFO。以下是建立多描绘器链的步骤。根据图片的格式来确定每帧的大小,如为RGB565格式。frame_size=camera_info>capture_widthcamera_context->capture_height2;camera_info->fifo0_transfer_size=frame_size;/以下为捕捉视频/camera_info->fifo1_transfer_size=0;/camera_info->fifo2_transfer_size=0;根据每帧的大小和描绘器一次能传送的大小确定描绘器的个数。camera_info->fifo0_num_descriptors=camera_info->fifo0_transfer_size+SINGLE_DESCRIPTOR_TRANSFER_MAX-1/SINGLE_DESCRIPTOR_TRANSFER_MAX;camera_info->fifo1_num_descriptors=;camera_info->fifo1_num_descriptors=;判定是否超过DMA规定的描绘器的大小限制。分配DMA描绘器的地址,并赋给FIFO0。camera_context->fifo0_descriptors_physical=unsignedcamera_context->dma_descriptors_physical;cur_des_physical=DMAC_DESCRIPTOR_Tcamera_context->fifo0_descriptors_physical将每个描绘器与1帧图片的每个数据块建立逐一对应的关系。forj=0;jfifo0_num_descriptors;j+/建立描绘符cur_des_virtual->DDADR=unsignedcur_des_physical+sizeofDMAC_DESCRIPTOR_T;/FIFO0物理地址zcur_des_virtual->DSADR=CI_REGBASE_PHY+CIBR0;cur_des_virtual->DTADR=darget_physical;cur_des_virtual->DCMD=des_rtansfer_size|DMAC_DCMD_FLOW_SRC|DMAC_DCMD_INC_TRG_ADDR|DMAC_BURSTSIZE_16DDADR=unsignedcamera_context->fifo0_descriptors_physical;将每个描绘器的DDADRDMA描绘器地址存放器指向下一个描绘器的地址,将最后一个DDADR指向第一个描绘器的地址,这样形成一个环路的描绘器链。另外,还要设置DSADRDMA源地址存放器。由于是从摄像头感应器到内存,所以FIFO的地址是源地址,DTADRDMA目的地址存放器为内存,DCMDDMA命令存放器设置传输大小和源流控制。以上都建立好以后,DMA就可以传送数据了。传送数据的流程如图3所示。目前的嵌入式开发板对于摄像头感应器的数据传送方式各不一样。如NeoMagic公司开发的Mimagic5传送图片采用的是独立的DMA功能,而传送视频采用的是特定的内存访问通道,VideoCaptureInterface不通过DMA方式;而Intel公司的PXA27x采用QuickCaptre技术,从官方发布数据说明,明显地进步了视频信息的传送速度。随着嵌入式设备不断的开展更新,将会有更多、更先进、更高速的数据传输技术被应用到嵌入式开发的各个领域。0