MTK平台camera摄像头学习教程重点讲义资料.docx

上传人:b****5 文档编号:7391468 上传时间:2023-05-11 格式:DOCX 页数:34 大小:1.27MB
下载 相关 举报
MTK平台camera摄像头学习教程重点讲义资料.docx_第1页
第1页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第2页
第2页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第3页
第3页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第4页
第4页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第5页
第5页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第6页
第6页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第7页
第7页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第8页
第8页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第9页
第9页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第10页
第10页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第11页
第11页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第12页
第12页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第13页
第13页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第14页
第14页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第15页
第15页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第16页
第16页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第17页
第17页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第18页
第18页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第19页
第19页 / 共34页
MTK平台camera摄像头学习教程重点讲义资料.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MTK平台camera摄像头学习教程重点讲义资料.docx

《MTK平台camera摄像头学习教程重点讲义资料.docx》由会员分享,可在线阅读,更多相关《MTK平台camera摄像头学习教程重点讲义资料.docx(34页珍藏版)》请在冰点文库上搜索。

MTK平台camera摄像头学习教程重点讲义资料.docx

MTK平台camera摄像头学习教程重点讲义资料

Contents

一、

手机CAMERA的物理结构:

........................................................................................

-4-

二、

CAMERA的成像原理:

.................................................................................................

-4-

三、

CAMERA常见的数据输出格式:

..................................................................................

-5-

四、

阅读CAMERA的规格书(以TRULY模组OV5647_RAW为例):

...........................

-6-

五、

CAMERA的硬件原理图及引脚.....................................................................................

-7-

1、

电源部分:

....................................................................................................................

-7-

2、

SENSORINPUT部分:

...................................................................................................

-7-

3、SENSOROUTPUT部分:

...............................................................................................

-7-

4、I2C部分:

SCL,I2C时钟信号线和SDA,I2C数据信号线。

..................................

-7-

六、

MTK平台CAMERA驱动架构:

..................................................................................

-8-

七、

MTK平台CAMERA相关代码文件(以下代码均为MTK6575平台):

....................

-9-

1、

CAMERASENSOR驱动相关文件....................................................................................

-9-

2、

SENSORID和一些枚举类型的定义.............................................................................

-9-

3、

SENSOR供电..................................................................................................................

-9-

4、

KERNELSPACE的SENSORLIST,IMGSENSOR模块注册...............................................

-9-

5、

USERSPACE的SENSORLIST,向用户空间提供支持的SENSORLIST.........................

-10-

6、

SENSOR效果调整的接口............................................................................................

-10-

八、

CAMERA模块驱动、设备与总线结构:

.....................................................................

-11-

A)

驱动的注册:

..................................................................................................................

-11-

B)

设备的注册:

..................................................................................................................

-11-

C)

总线的匹配:

..................................................................................................................

-12-

九、

CAMERA驱动工作流程:

............................................................................................

-13-

十、

CAMERA驱动添加、调试流程:

.................................................................................

-17-

 

GhongConfidential

Revision0.1-Feb.142012

-3-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

一、手机Camera的物理结构:

 

FPC:

FlexiblePrintedCircuit可挠性印刷电路板

Sensor:

图象传感器

IR:

红外滤波片

Holder:

基座

Lens:

镜头

二、Camera的成像原理:

景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模

拟的电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片

(DSP)中加工处理,再通过IO接口传输到CPU中处理,通过LCD就可以看到图像了。

 

GhongConfidential

Revision0.1-Feb.142012

-4-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极

管。

光电二极管受到光照射时,就会产生电荷。

目前的SENSOR类型有两种:

CCD(ChargeCoupleDevice),电荷耦合器件,它是目前高像素类sensor中比较成熟

的成像器件,是以一行为单位的电流信号。

CMOS(ComplementaryMetalOxideSemiconductor),互补金属氧化物半导体。

CMOS

的信号是以点为单位的电荷信号,更为敏感,速度也更快,更为省电。

ISP的性能是决定影像流畅的关键,JPEGencoder的性能也是关键指标之一。

而JPEG

encoder又分为硬件JPEG压缩方式,和软件RGB压缩方式。

DSP控制芯片的作用是:

将感光芯片获取的数据及时快速地传到baseband中并刷新感

光芯片,因此控制芯片的好坏,直接决定画面品质(比如色彩饱和度、清晰度)与流畅度。

三、Camera常见的数据输出格式:

常见的数据输出格式有:

Rawdata格式、YUV格式、RGB格式。

RGB格式:

采用这种编码方法,每种颜色都可用三个变量来表示红色、绿色以及蓝色

的强度。

每一个像素有三原色R红色、G绿色、B蓝色组成。

YUV格式:

其中“Y”表示明亮度(Luminance或Luma),就是灰阶值;而“U”和“V”表示色度

(Chrominance或Chroma),是描述影像色彩及饱和度,用于指定像素的颜色。

RAWDATA格式:

是CCD或CMOS在将光信号转换为电信号时的电平高低的原始记录,单纯地将没有进行任何处理的图像数据,即摄像元件直接得到的电信号进行数字化处理

而得到的。

支持YUV/RGB格式的模组,一般会在模组上集成ISP(ImageSingleProcessor),经过

A/D转换过的原始数据经过ISP处理生成YUV标准格式传到BB。

一般来说,这种设计适用于低像素Camera的要求,会在主板上省去一个DSP,可降低成本。

在调试过程中,

YUV/RGB格式的摄像头,其所有参数都可在kernel层通过寄存器来控制。

调试一般由sensor

的原厂支持。

支持RawData格式的模组,由于感光区域的需求,不会再模组内集成ISP以最大程度的增大感光区域的面积,提高照片质量。

模组把原始的数字信号传给BB上的DSP进行处理,MTK自带的DSP一般包含ISP、JPEGencoder、和DSP控制芯片。

在调试的时候图像

的效果需要MTK在HAL层的参数进行支持。

 

GhongConfidential

Revision0.1-Feb.142012

-5-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

四、阅读Camera的规格书(以Truly模组OV5647_Raw为例):

 

GhongConfidential

Revision0.1-Feb.142012

-6-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

五、Camera的硬件原理图及引脚

(以W19S项目MainCameraOV5647为例):

 

从上面可看出,连接Camera的30根Pin脚可大致分为以下几类:

1、电源部分:

a)VCAMD就是DVDD数字供电,主要给ISP供电,由于RAWDATA格式的sensor其ISP是在BB端,所以将其引脚将其NC。

从上面的规格书上可以看出DVDD是内部BB端供电。

模组已将其NC掉了;

b)VCAM_IO就是VDDIO数字IO电源主要给I2C部分供电;

c)VCAMA就是AVDD模拟供电,主要给感光区和ADC部分供电;

d)VCAM_AF是对Camera自动对焦马达的供电。

2、SensorInput部分:

a)Reset信号,用于复位、初始化。

b)Standby/PowerDown信号,用于进入待机模式,降低功耗。

c)Mclk,即MasterClock信号,是由BB端提供。

3、SensorOutPut部分:

a)Pclk,即PixelClock信号,由MCLK分频得到,作为外部时钟控制图像传输帧率

b)HSYNC,行同步信号,其上升沿表示新一列行图像数据的开始。

c)VSYNC,帧同步信号,其下降沿表示新的一帧图片的开始。

d)D0-D9一共10根数据线(8/10根等);

4、I2C部分:

SCL,I2C时钟信号线和SDA,I2C数据信号线。

GhongConfidential

Revision0.1-Feb.142012

-7-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

六、MTK平台Camera驱动架构:

 

上图的架构相信大家都有了一定的了解,android将系统大致分为应用层、库文件和硬

件抽象层、Linux内核三层。

在底层的内核空间,Camera的driver将其驱动起来以后,将硬件驱动的接口交给硬件抽象层(hal:

HardwareAbstractionLayer),android上层的Camera应用程序在android实时系统中的虚拟机中,加载android留给Camera公用的一些库文件,调用硬件抽象层(hal)的接口来控制Camera硬件来实现功能。

当然,如果是Raw模式的Camera,还需要在硬件抽象层(hal)调用一些参数来控制Camera的效果。

 

GhongConfidential

Revision0.1-Feb.142012

-8-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

 

七、MTK平台Camera相关代码文件(以下代码均为MTK6575平台):

1、CameraSensor驱动相关文件

kernel-3.10/drivers/misc/mediatek/imgsensor/src/[platform]/

 

2、SensorID和一些枚举类型的定义

vendor/mediatek/proprietary/custom/common/kernel/imgsensor/inc/kd_imgsensor.h

 

3、Sensor供电

kernel-3.10/drivers/misc/mediatek/mach/[platform]/[project]/camera/camera/kd_camera_hw.c

 

4、KernelSpace的SensorList,imgsensor模块注册

kernel-3.10/drivers/misc/mediatek/imgsensor/src/[platform]/kd_sensorlist.h

 

GhongConfidential

Revision0.1-Feb.142012

-9-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

5、UserSpace的SensorList,向用户空间提供支持的SensorList

vendor/mediatek/proprietary/custom/[platform]/hal/D1(D2)/imgsensor_src/sensorlist.cpp

 

6、Sensor效果调整的接口

 

GhongConfidential

Revision0.1-Feb.142012

-10-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

八、Camera模块驱动、设备与总线结构:

一般在Linux设备驱动模型中,我们只需要关心总线、设备、驱动这三个实体。

总线会

充当红娘对加载于其上的设备与驱动进行配对,对于Camera模块也不例外,下面从总线、

设备、驱动的角度来分析Camera模块驱动的注册、匹配与加载过程。

a)驱动的注册:

在(\custom\common\kernel\imgsensor\src\Kd_sensorlist.c)CAMERA_HW_i2C_init这个

函数里通过Platform_driver_register(&g_stCAMERA_HW_Driver)把Camera模块驱动注册到Platform总线上。

而g_stCAMERA_HW_Driver是对结构体Platform_driver这个结构体的

填充。

 

(Kernel\include\linux\Platform_device.h)

 

Platform_driver这个结构体包含Probe()、Remove()等函数来完成驱动的填充。

b)设备的注册:

对platform_device的定义通常在BSP的板级文件:

(kernel\arch\sh\boards\mach-ap325rxa\Setup.c)中实现,在板级文件中,将platform_device

归纳为一个数组,最终通过platform_add_device()函数统一注册:

 

GhongConfidential

Revision0.1-Feb.142012

-11-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

 

c)总线的匹配:

既然是驱动Platform_device那对应的设备必然是挂载Platform总线上的

Platform_device,Platform总线是Linux系统提供的一种机制,不同于I2C、I2S等总线,它是一种虚拟的总线。

Linux系统为Platform总线定义了一个bus_type的实例Platform_bus_type:

(Kernel\drivers\base\platform.c)

 

Platform总线通过platform_match这个成员函数来确定platform_device与platform_driver如

何进行匹配:

 

GhongConfidential

Revision0.1-Feb.142012

-12-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

九、Camera驱动工作流程:

下载Capture下载Preview

PowerOn参数为拍照

参数为预做准备览做准备

 

Power

Off

IIC

INIT

Reset

软件Reset

PDN

 

读ID

判断是否连

接到需要的

Sensor

 

从上图可以清晰的了解到Camera的一个工作流程主要分为这么七步:

1.打开CameraPowerLDO,让Camera有能量保证。

2.打开IIC,设置PDN引脚,使Camera退出出Standby模式,按照要求让Reset脚

做一个复位动作。

3.读一下sensor的版本ID,这样可以让你确认是否连接上你想要的sensor。

4.对Sensor进行初始化下载最基本的参数让Sensor工作起来,可能包括软复位。

5.下载preview的参数,为预览动作准备。

6.下载Capture的参数,为拍照动作准备。

7.设置PDN引脚,使Sensor进入Standby模式,或者关掉LDO等动作,退出Camera。

我们都知道,Linux内核是通过模块的机制来加载设备驱动的,那么接下来我们就从设

备模块加载的角度来看下Camera工作流程的驱动代码是如何工作的。

在-alps\mediatek\custom\common\kernel\imgsensor\src\kd_sensorlist.c中可以看到:

module_init(CAMERA_HW_i2C_init);

module_exit(CAMERA_HW_i2C_exit);

在这里Linux内核加载和卸载Camera模块。

 

GhongConfidential

Revision0.1-Feb.142012

-13-

Ⓒ2012Ghonginc.

CameraDriveranalysisintheplatformofMTK

PreliminaryInformation

staticstructplatform_driverg_stCAMERA_HW_Driver={

.probe=CAMERA_HW_probe,

.remove=CAMERA_HW_remove,

.suspend=CAMERA_HW_suspend,

.resume=CAMERA_HW_resume,

.driver={

.name="image_sensor",

.owner=THIS_MODULE,

}

};

Camera模块初始化开始向总线注册驱动,在Platform_driver的成员函数.probe()中,通

过i2c_add_driver(&CAMERA_HW_i2c_driver)向I2C申请,而CAMERA_HW_i2c_driver这

个结构体里填充的是将Camera作为一个字符设备在I2C上进行注册:

 

在RegisterCAMERA_HWCharDrv()中

cdev_init(g_pCAMERA_HW_CharDrv,&g_stCAMERA_HW_fops);对设备进行初始化,并将

g_stCAMERA_HW_fops这个文件操作函数作为上层对C

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2