2024年3月13日发(作者:郦运珹)
Android平台Camera及I2C总线驱动学习小结
——基于MSM8x60平台
硬件开发二部 BSP科 党潇 工号:10113151
1. MSM8x60平台简介
Ø High-performance high-level operating system(HLOS) platform(45nm)
Ø 多核处理器(Modem+Dual Apps in a single chip),支持Android
TM
Ø Dual 1.2GHz Scorpion
TM
+512kB shared L2 cache,eMMC LPDDR2内存
Ø 专属 ARM7 用于功率资源控制及传感器外设操作
Ø 1080pHD 编解码,Adreno
TM
220图形处理器,4-lane MIPI摄像头,最高
支持12M像素
Ø WCDMA,GSM,HSDPA,1x advanced,1xEV-DO Rev A/B
Ø gpsOne,BT3.0,FM Rx/Tx,WIFI WCN1314
Ø AAC,AMR-NB,EVRC,QCELP,etc
2. MSM8x60平台Camera及Graphics特性
Camera特性:
Ø VFE 3.1,MIPI接口(4-lane)
Ø 优异的3A算法(AF,AE,AWB),自动帧率AFR(Auto Frame Rate)
Ø 最高支持12MegaPixel,12bit/pixel,支持BAYER和YUV模式
Ø 1080p预览@30fps
Ø 闪光灯支持,触摸屏自动对焦支持
Ø 业界领先的图像特效集:Hand Jitter Reduction(HJR),Motion ISO,Best-Shot
mode,Anti-banding,EV control,JPEG encode & decode
Graphics特性:
Ø Adreno 220(MSM v2.0)图形处理器, 88M triangles/s
Ø OpenGL ES 1.1/ OpenGL ES 1.1/ OpenVG 1.1/SVG tiny 1.2
Ø LCD显示最高支持到WSXGA(1440×900),60Hz刷新率。
Ø MDP4.1 (去除MDDI,增加内部HDMI,MIPI接口)
1 / 11
3. Camera驱动文件结构(OV5640.c为例)
我们以TD的U960项目为例,采用倒序的方式来分析Android平台Camera
和I2C驱动程序的架构。OV5640为500w像素摄像头,采用YUV格式输出,单
从摄像头硬件来看,与我们之前使用的Sensor并没有本质区别,除了采用MIPI
接口。但是MIPI仅作为Sensor与AP的通讯协议而言,作为Camera的驱动层,
不用关心底层接口的具体传输方式,所有的驱动架构和函数都是一样的。
从最底层的操作函数来看,Camera最直接相关的函数无非以下四个:
具
Camera_init()
,
Camera_config()
,
Camera_power_control()
,
Camera_flash()
.
体含义分别表示:摄像头初始化,摄像头配置,摄像头电源控制和摄像头闪光灯
控制,具体函数名可能根据驱动设计者的命名方式而不同,也可能进一步细化为
多个子函数操作,但最终不会脱离这四个功能控制。而在Android平台,对电源
和闪光灯的控制也被整合到了
Camera_config()
函数中。
在OV5640.c驱动文件中,是按照如下的结构实现的:
包括了帧率、分辨率、MCLK等参数设置
1) ov5640_sensor_open_init()
之后会调用子函数
ov5640_probe_init_sensor()
完成Sensor的ID判断
2 / 11
2024年3月13日发(作者:郦运珹)
Android平台Camera及I2C总线驱动学习小结
——基于MSM8x60平台
硬件开发二部 BSP科 党潇 工号:10113151
1. MSM8x60平台简介
Ø High-performance high-level operating system(HLOS) platform(45nm)
Ø 多核处理器(Modem+Dual Apps in a single chip),支持Android
TM
Ø Dual 1.2GHz Scorpion
TM
+512kB shared L2 cache,eMMC LPDDR2内存
Ø 专属 ARM7 用于功率资源控制及传感器外设操作
Ø 1080pHD 编解码,Adreno
TM
220图形处理器,4-lane MIPI摄像头,最高
支持12M像素
Ø WCDMA,GSM,HSDPA,1x advanced,1xEV-DO Rev A/B
Ø gpsOne,BT3.0,FM Rx/Tx,WIFI WCN1314
Ø AAC,AMR-NB,EVRC,QCELP,etc
2. MSM8x60平台Camera及Graphics特性
Camera特性:
Ø VFE 3.1,MIPI接口(4-lane)
Ø 优异的3A算法(AF,AE,AWB),自动帧率AFR(Auto Frame Rate)
Ø 最高支持12MegaPixel,12bit/pixel,支持BAYER和YUV模式
Ø 1080p预览@30fps
Ø 闪光灯支持,触摸屏自动对焦支持
Ø 业界领先的图像特效集:Hand Jitter Reduction(HJR),Motion ISO,Best-Shot
mode,Anti-banding,EV control,JPEG encode & decode
Graphics特性:
Ø Adreno 220(MSM v2.0)图形处理器, 88M triangles/s
Ø OpenGL ES 1.1/ OpenGL ES 1.1/ OpenVG 1.1/SVG tiny 1.2
Ø LCD显示最高支持到WSXGA(1440×900),60Hz刷新率。
Ø MDP4.1 (去除MDDI,增加内部HDMI,MIPI接口)
1 / 11
3. Camera驱动文件结构(OV5640.c为例)
我们以TD的U960项目为例,采用倒序的方式来分析Android平台Camera
和I2C驱动程序的架构。OV5640为500w像素摄像头,采用YUV格式输出,单
从摄像头硬件来看,与我们之前使用的Sensor并没有本质区别,除了采用MIPI
接口。但是MIPI仅作为Sensor与AP的通讯协议而言,作为Camera的驱动层,
不用关心底层接口的具体传输方式,所有的驱动架构和函数都是一样的。
从最底层的操作函数来看,Camera最直接相关的函数无非以下四个:
具
Camera_init()
,
Camera_config()
,
Camera_power_control()
,
Camera_flash()
.
体含义分别表示:摄像头初始化,摄像头配置,摄像头电源控制和摄像头闪光灯
控制,具体函数名可能根据驱动设计者的命名方式而不同,也可能进一步细化为
多个子函数操作,但最终不会脱离这四个功能控制。而在Android平台,对电源
和闪光灯的控制也被整合到了
Camera_config()
函数中。
在OV5640.c驱动文件中,是按照如下的结构实现的:
包括了帧率、分辨率、MCLK等参数设置
1) ov5640_sensor_open_init()
之后会调用子函数
ov5640_probe_init_sensor()
完成Sensor的ID判断
2 / 11