Camera驱动预调试 Review



             Camera驱动Review

                                                                           Copyright of土麦2014
                                                                                shuwdy@163.com
                                                                                                 2014-5-4
一:硬件相关
1. Camera 模组的组成和工作原理:
镜头(lens),传感器(Sensor),镜像信号处理器(ISP)
1.1 镜头:将对景物生成光学图像,并且投射到图像传感器的表面上
1.2 传感器
Sensor将从lens上传导过来的光线转换为电信号,并通过IC内部的AD转换器转成电信号,最后将该信号送给ISP,还原影像。表面含有几十万到几百万的光电二极管,光电二极管受到光照将产生电荷,输出Raw data:


1.3 镜像信号处理器

对Raw data进行加工处理,然后以相应的IO接口输出给主机端:



1.4 Camera 原理
景物(scene)通过镜头(lens)生成光学图像,投射到图像传感
器(sensor)表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(ISP)中加工处理,然后以相应的IO接口输出给主机端,最后手机端可以预览,拍照(Jpeg编码)和录像(video编码。

2. 高通平台端Camera模块组成




其中Microprocessor 负责对整个Camera应用的控制:

它可以从RAM获取被QDSP处理过的数据
它可以访问MDP(Mobile Display Processor)要求图像在LCD上更新。
也可以通过串行接口控制Image Sensor。
最后,它能控制QDSP处理图像的过程。

CAMIF&VFE:
        CAMIF由QDSP控制,主要实现高通芯片与camera的电气连接。
        VFE(Video Front End) 通过CAMIF接收Sensor输入的数据,转换成编码器可以接受的格式。
    
Video Core:    由QDSP控制,主要为一些应用提供复杂算法。
MDP : 显示处理器,由Microprocessor控制, 用于实现与LCD显示相关的功能。


3. 数据流

VFE接收到数据后对数据的处理流程:









4. RGB&YUV色彩空间

RGB   色彩模式使用RGB模型,为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色

YUV:    Y指亮度,U和V表示两个色度信号,它的特点是亮度和色度信号是分离的。

    YUV<->RGB:





二:驱动软件相关

1. 在Kconfig 中加入配置信息:


在Makefile中添加编译命令:


        
2. 模块加载:



3.  注册i2c设备



4.  Sensor_Probe函数的实现
第一部分:主要实现芯片的端口配置和Device ID 的确认:





4.1   其中rc = i2c_add_driver(&hi256_i2c_driver)完成i2c  driver的注册:




    

4.2  hi256_probe_init_gpio(info) 中通过调用
gpio_request()和gpio_tlmm_config完成了对通用I/O端口的初始化和配置





4.3 hi256_power_on_seq()实现了Sensor的启动





对应的启动时序图:








4.4 static void hi256_power_off_seq()实现了Sensor的关闭:




对应的关闭时序图:

  


    
4.5 hi256_read_model_id() 读取了模组的ID:










第二部分 主要完成初始化和配置:

      





4.6 hi256_sensor_open_init() 通过调用
hi256_power_on_seq() 和hi256_sensor_setting()完成了Sensor的打开和设置

4.7 hi256_sensor_config()通过不同的cfgtype分别调用了以下主要函数进行配置:

case CFG_SET_MODE:   hi256_set_sensor_mode 模式配置
case CFG_SET_EFFECT:      hi256_set_effect    效果配置
case CFG_SET_BRIGHTNESS:  hi256_set_brightness
case CFG_SET_CONTRAST:  hi256_set_contrast
case CFG_SET_EXPOSURE_MODE:  hi256_set_exposure_mode
case CFG_SET_SATURATION:  hi256_set_saturation
case CFG_SET_SHARPNESS:  hi256_set_sharpness
……
    
5.  hi256_i2c_probe 的实现:




其中hi256_init_client的实现如下:


    

hi256_sysfs_add的实现如下:














Reference:
About Camera Driver
高通Camera Driver的调试小结
503Camera实现
……

Thanks!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值