首页 MTK平台Camera驱动

MTK平台Camera驱动

举报
开通vip

MTK平台Camera驱动 基于MTK平台Camera驱动简介 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera的硬件架构 ARM Image signal processor& resizer Memory CMOS Sensor LCD Image encode 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camer...

MTK平台Camera驱动
基于MTK平台Camera驱动简介 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera的硬件架构 ARM Image signal processor& resizer Memory CMOS Sensor LCD Image encode 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera模块硬件在手机上的基本 架构有三种 (一)Baseband控制LCD+Sensor. Baseband控制LCD,在Camera模式下Backend IC控制 LCD进行各种操作。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera模块硬件在手机上的基本 架构有三种 (二) Baseband控制LCD+Backend IC,Backend IC控制Sensor。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera模块硬件在手机上的基本 架构有三种 (三) Baseband控制Backend IC,并且在非Camera模式下 Baseband控制LCD,在Camera模式下Backend IC控制LCD进 行各种操作。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera 接口信号 sensor MTK camera VCAMA, VCAMD CMDAT0~7 CMVREF CMHREF CMMCLK CMPCLK CMPDN CMRST SCLK SDA PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera 接口信号 signal description CMVREF CMOS sensor vertical reference signal input CMHREF CMOS sensor horizontal reference signal input SCLK IIC interface clock signal SDA IIC interface data signal CMMCLK CMOS sensor master clock output CMPCLK CMOS sensor pixel clock intput CMPDN CMOS sensor power down control CMRST CMOS sensor reset signal output VCAMA Camera module analog power VCAMD Camera module digital power CMDAT0~7 Camera data bus PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn IIC时序控制 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera interface时序控制 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Camera程序架构 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn MMI task Camera APP:控制应用程序逻辑,Camera的状态机, 包括了preview,capture,exit等各种状态控制。 MDI:应用程序接口层,直接操作Camera feature GDI:处理Multi-layer,实现OSD Media task 调用Camera驱动程序的接口层 Camera Drive:控制Camera IC,Sensor以及LCD硬件 LCD interface 控制LCM Camera程序架构 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 一:平台camera结构体定义: 1:抽象出的对于 sensor 操作的功能函数接口: typedef struct { kal_int8 (* sensor_init)(void); void (* get_sensor_id)(kal_uint8 *sensor_write_id, kal_uint8 *sensor_read_id); void (* get_sensor_size)(kal_uint16 *sensor_width, kal_uint16 *sensor_height); void (* get_sensor_period) (kal_uint16 *pixel_number, kal_uint16 *line_number); void (* sensor_preview_setting)(image_sensor_exposure_window_struct *image_window, image_sensor_config_struct *sensor_config_data); void (* sensor_capture_setting)(image_sensor_exposure_window_struct *image_window, image_sensor_config_struct *sensor_config_data); void (* write_sensor_reg)(kal_uint32 cmd, kal_uint32 para); kal_uint32 (* read_sensor_reg)(kal_uint32 cmd); void (* set_sensor_eshutter)(kal_uint16 eshutter); void (* set_camera_night_mode) (kal_bool enable); void (* sensor_power_off) (void); kal_uint16 (* set_sensor_gain) (kal_uint16 gain); void (* set_flashlight) (kal_bool enable); MM_ERROR_CODE_ENUM (* sensor_feature_control) (IMAGE_SENSOR_FEATURE_ENUM feature_id, void* p_feature_para_input,void* p_feature_para_output, kal_uint16 feature_para_output_length); #if (defined(YUV_SENSOR_SUPPORT)||defined(__ATV_SUPPORT__)) kal_uint32 (* yuv_sensor_setting)(kal_uint32 cmd, kal_uint32 para); #endif } image_sensor_func_struct; Camera 驱动部分 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 二:以sensorOV7670取例说明代码: 1:kal_int8 OV7670_init(void) 主要包括: (1) 上电:cis_module_power_on(KAL_TRUE); (2) 时序,数据 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 ,时钟设置: SET_CMOS_CLOCK_POLARITY_LOW;SET_VSYNC_POLARITY_LOW; SET_HSYNC_POLARITY_LOW; ENABLE_CAMERA_INDATA_FORMAT; SET_CAMERA_INPUT_TYPE(INPUT_YUV422);ENABLE_CAMERA_TG_CLK_48M; (3) 配置SCCB: OV7670_Config_HW_SCCB(); (4) 复位sensor: OV7670_write_cmos_sensor(0x12,0x80); (5) 读取sensor ID: OV7670_sensor_id=(OV7670_read_cmos_sensor(0x0A)<<8)|OV7670_read_cmos_senso r(0x0B); (6) 初始化sensor: OV7670_init_setting(); Camera 驱动部分 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 二:以sensorOV7670取例说明代码: 2:void OV7670_get_size(kal_uint16 *sensor_width, kal_uint16 *sensor_height) { *sensor_width=OV7670_IMAGE_SENSOR_VGA_WIDTH; /* pixel numbers actually used in one frame */ *sensor_height=OV7670_IMAGE_SENSOR_VGA_HEIGHT; /* line numbers actually used in one frame */ } 给出sensor的pixel的数据 3:void OV7670_get_period(kal_uint16 *pixel_number, kal_uint16 *line_number) { *pixel_number=OV7670_VGA_PERIOD_PIXEL_NUMS; /* pixel numbers in one period of HSYNC */ *line_number=OV7670_VGA_PERIOD_LINE_NUMS; /* line numbers in one period of VSYNC */ } /* get_OV7670_period */ 给出sensor的pixel的周期 Camera 驱动部分 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 二:以sensorOV7670取例说明代码: 4:void OV7670_preview(image_sensor_exposure_window_struct *image_window, image_sensor_config_struct *sensor_config_data) 主要包括: (1) set grab window: image_window->grab_start_x = OV7670_IMAGE_SENSOR_VGA_INSERTED_PIXELS; image_window->grab_start_y = OV7670_IMAGE_SENSOR_VGA_INSERTED_LINES; image_window->exposure_window_width=OV7670_IMAGE_SENSOR_VGA_WIDTH - 2; image_window->exposure_window_height = OV7670_IMAGE_SENSOR_VGA_HEIGHT; (2)Set frame_rate : sensor_config_data->sensor_frame_rate = 300; (3)Set image_mirror: switch (sensor_config_data->image_mirror) (4)Set image encode mode: OV7670_MPEG4_encode_mode = KAL_TRUE; (5) enable AE, AWB: OV7670_ae_awb_enable(OV7670_CTRL_BY_SENSOR_DRV, KAL_TRUE); Camera 驱动部分 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 二:以sensorOV7670取例说明代码: 5:void OV7670_capture(image_sensor_exposure_window_struct *image_window, image_sensor_config_struct *sensor_config_data) (1) 使能快门: shutter=sensor_config_data->capture_shutter; (2) Set grab windoe and timing: SET_TG_OUTPUT_CLK_DIVIDER(3); SET_CMOS_RISING_EDGE(0); SET_CMOS_FALLING_EDGE(2); ENABLE_CAMERA_PIXEL_CLKIN_ENABLE; SET_TG_PIXEL_CLK_DIVIDER(3); SET_CMOS_DATA_LATCH(2); image_window->grab_start_x=OV7670_IMAGE_SENSOR_VGA_INSERTED_PIXELS; image_window->grab_start_y=OV7670_IMAGE_SENSOR_VGA_INSERTED_LINES; image_window->exposure_window_width=OV7670_IMAGE_SENSOR_VGA_WIDTH - 2; image_window->exposure_window_height=OV7670_IMAGE_SENSOR_VGA_HEIGHT - 7; (3)写快门设置参数:void OV7670_write_shutter(kal_uint16 shutter) 包括:frame_rate,exposure_lines参数等。 Camera 驱动部分 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 二:以sensorOV7670取例说明代码: 6:通过SCCB读写操作sensor的两个函数: (1) void OV7670_write_reg(kal_uint32 addr, kal_uint32 para) (2) kal_uint32 OV7670_read_reg(kal_uint32 addr) 7:闪光灯控制函数: void OV7670_set_flashlight(kal_bool enable) 8:设置sensor 的效果 kal_uint32 OV7670_yuv_sensor_setting(kal_uint32 cmd, kal_uint32 para) 包括:case CAM_PARAM_CONTRAST:ret = OV7670_set_param_contrast(para);break; case CAM_PARAM_BRIGHTNESS:ret = OV7670_set_param_brightness(para);break; case CAM_PARAM_HUE:ret = OV7670_set_param_hue(para);break; case CAM_PARAM_GAMMA:ret = OV7670_set_param_gamma(para);break; case CAM_PARAM_WB:ret = OV7670_set_param_wb(para);break; case CAM_PARAM_EXPOSURE:ret = OV7670_set_param_exposure(para);break; case CAM_PARAM_EFFECT:ret = OV7670_set_param_effect(para);break; case CAM_PARAM_BANDING:ret = OV7670_set_param_banding(para);break; case CAM_PARAM_SATURATION:ret = OV7670_set_param_saturation(para);break; case CAM_PARAM_NIGHT_MODE:ret = OV7670_set_param_nightmode(para);break; Camera 驱动部分 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 二:以sensorOV7670取例说明代码: 9:添加sensor 的image_sensor_func_struct的地方: void OV7670_image_sensor_func_config(void) { image_sensor_func = &image_sensor_func_OV7670; } /* cam_module_func_config() */ Camera 驱动部分 软件开发部:John.Wang PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
本文档为【MTK平台Camera驱动】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_502063
暂无简介~
格式:pdf
大小:172KB
软件:PDF阅读器
页数:18
分类:互联网
上传时间:2011-04-22
浏览量:70