中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

基于Quick Capture技术的摄像头驱动方案

时间:2007/5/18 10:21:00  作者:  来源:ic72  浏览人数:1373
 
 

      摘要:介绍一种高速高质量的嵌入式摄像头传输技术——Quick Capture技术;详细叙述其设计思想和工作流程,并用可编程逻辑器件Bulverde板卡予以实现。

      关键词:嵌入式系统 驱动程序 快速捕捉 摄像头

      随着嵌入式处理器的普及和硬件成本的不断降低,具有拍照和摄像功能的手机逐步走进了人们的生活。但由于嵌入式处理器的速度有限,在处理图形和多媒体数据方面显得力不从心,导致嵌入式系统的摄像头分辨率低、色深低、数据传送速度慢,无法满足人们即时捕捉高质量图片和视频的需求。Quick Capture技术是一种专为手持设备设计,用来改进图像质量和传输速度的技术。本文基于Quick Capture技术,就摄像头驱动程序和图片信息传输问题,提供一种解决方案。

      1 硬件介绍

      本人选择的嵌入式微处理器是2003年底Intel公司刚刚推出的一款专门面向移动电话和掌上电脑的专用处理器,PXA27x系列,代号为Bulverde。该处理器采用了Quick Capture技术。Quick Capture为成像设备与无线设备提供接口,有助于改进图像质量以及降低产品整体成本。该项技术包括快速浏览、快速拍照和快速视频拍摄三种操作模式。该技术使得Bulverde可以支持400万像素数码镜头,并能提供最大416Mbps的数据传输速率。

      集成在该开发板上的是Agilent公司的型号为ADCM-2650-0001的摄像头感应器。在VGA(480×640)分辨率下,每秒传输的图片能达到15帧,具备自动曝光和白平衡功能,并且针对嵌入式应用做了很多优化处理,所以非常适合嵌入式领域的应用。ADCM-2650-0001内含3个独立的FIFO条目,存储从感应器捕捉到的视频或者图片数据信息。连接处理器和摄像头感应器的是Quick Capture Interface(快速捕捉接口),它提供了以下几种类型的寄存器:

      ①QCI(Quick Capture Interface)控制寄存器0~4;

      ②QCI时间间隔寄存器;

      ③QCI状态寄存器;

      ④QCI FIFO控制寄存器;

      ⑤QCI接收缓冲区寄存器。

      通过这些寄存器,可以控制整个处理器与感应器之间的工作流程。

      摄像头感应器与Intel XScale处理器之间的连接,如图1所示。

ic72新闻中心

      2 接口的实现

      本人采用的是ElaME1.0(“和欣”手机操作系统)作为嵌入式操作系统。这是一款由我国自主开发的智能手机操作系统,基于微内核,具有多进程、多线程、抢占式、基于线程的多优先级任务调度等特性。和欣操作系统体积小,速度快,适合网络时代的绝大部分嵌入式信息设备;除了支持摄像头感应器外,还支持彩色LCD、触摸屏、USB等多种嵌入式设备。

      2.1 ElaME下的摄像头驱动模型

      ElaME的驱动模块如图2所示。

ic72新闻中心

      ElaME的驱动模型与Unix、Windows操作系统的不一样。它把驱动程序构件化了,使得驱动程序具备了构件的灵活等多种特性。例如:当操作系统启动时并不用加载所有的驱动程序,而是当用户需要用到该设备时才加载。这样的设计使得在手机硬件资源比较紧张的环境中比传统的嵌入式操作性系统具有更强的竞争力。设备管理器(device manager)是一个内核对象,管理系统中所有的设备与驱动对象,负责设备信息的搜集、驱动构件对象的创建和删除、设备硬件资源的冲突检测等。

      摄像头感应器驱动就是一个构件对象,它的主要工作有以下几点:

      ①负责通过I2C总线查询摄像头感应器信息,调节摄像头感应器的设置;

      ②建立和控制DMA传输通道,通过DMA方式将3个FIFO里的数据信息传送到的内存中;

      ③提供可以给用户态程序使用的接口。

      2.2 摄像头感应器驱动的关键技术实现

      下面从驱动设计上,具体说明如何基于Quick Capture技术,通过DMA方式在感应器的FIFO与内存之间建立最快速最高质量的数据传送。

      在PXA27x型号的处理器中,有两种内部外围器件:外部总线的外围器件(PBP)和内部总线的外围器件(IBP)。快速捕捉接口(Quick Capture Interface)属于IBP。内部总线的外围器件通过外围总线连接至DMAC,使用流数据传送。DMAC有两种工作方式:描述器取入方式和非描述器取入方式。因为当前手机上捕捉到的图片大小分别是从QQVGA(160×120)、QCIF(176×144)、QVGA(320×240)、VGA(480×640)不等,最小QQVGA的每张图片大小也有37.5KB,而每个描述器一次最大能传送(8K-1)B,所以选择多描述器链的方式。描述器链就是将该描述器的特定寄存器内存放的是下一个描述器的地址,当该描述器传送完自身的数据后,能获得下一描述器的地址,读取描述器内的信息,然后继续下一轮的数据传送。每个FIFO都有自己的一串描述器链。如果是捕捉图片,采用一个FIFO即可,如果捕捉视频,要用到三个FIFO。

      以下是建立多描述器链的步骤。

      ①根据图片的格式来确定每帧的大小,如为RGB565格式。

frame_size=camera_info>capture_width*

camera_context->capture_height*2;

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=

(unsigned)camera_context->dma_descriptors_physical;

cur_des_physical=(DMAC_DESCRIPTOR_T*)

camera_context->fifo0_descriptors_physical

      ⑤将每个描述器与1帧图片的每个数据块建立一一对应的关系。

for(j=0;jfifo0_num_descriptors;j++){

//建立描述符

cur_des_virtual->DDADR=

(unsigned)cur_des_physical+sizeof(DMAC_DESCRIPTOR_T);

//FIFO0物理地址z

cur_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_16<<16);

//向前移动指针

remain_size-=des_transfer_size;

cur_des_virtual++;

cur_des_physical++;

target_physical+=des_transfer_size;

}

//停止DMA传送捕捉的帧

last_des_virtual=cur_des_virtual-1;

last_des_virtual->DDADR=(unsigned)camera_context->fifo0_descriptors_physical;

      将每个描述器的DDADR(DMA描述器地址寄存器)指向下一个描述器的地址,将最后一个DDADR指向第一个描述器的地址,这样形成一个环路的描述器链。另外,还要设置DSADR(DMA源地址寄存器)。由于是从摄像头感应器到内存,所以FIFO的地址是源地址,DTADR(DMA目标地址寄存器)为内存,DCMD(DMA命令寄存器)设置传输大小和源流控制。

      以上都建立好以后,DMA就可以传送数据了。传送数据的流程如图3所示。

ic72新闻中心

      结语

      目前的嵌入式开发板对于摄像头感应器的数据传送方式各不相同。如NeoMagic公司开发的Mimagic5传送图片采用的是独立的DMA功能,而传送视频采用的是特定的内存访问通道,Video Capture Interface不通过DMA方式;而Intel公司的PXA27x采用Quick Captre技术,从官方发布数据表明,明显地提高了视频信息的传送速度。

      随着嵌入式设备不断的发展更新,将会有更多、更先进、更高速的数据传输技术被应用到嵌入式开发的各个领域。

 
【相关文章】
·用UML建模开发嵌入式软件
·基于DSP的蓄电池充放电装置研究
·嵌入式Linux系统的动态电源管理技术
·EDA技术在微机接口技术实验教学中的应用
·嵌入式移动数据库的应用研究
·嵌入式系统的低功耗软件方案
·嵌入式系统的软硬件协同设计
·一种基于UML的嵌入式实时应用软件开发环境
·嵌入式实时系统中的优先级反转问题
·嵌入式操作系统的新动向
·分布式对象中间件技术
·嵌入式MPEG—4解码系统的设计与实现
·连续脉冲信号延迟线的实现
·基于Quick Capture技术的摄像头驱动方案
·基于模块化设计的嵌入式软件测试方法
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9