S5PV210 camera驱动分析报告(android)

合集下载

三星S5PV210核心板技术资料

三星S5PV210核心板技术资料

三星S5PV210核心板技术资料一、核心板210核心板是一款低功耗、高性能、可扩展性强的高端核心模块,CPU采用三星ARM Cortex-A8芯片S5PV210,主频800M/1GHz,配套工业级外围芯片,可工作于-25~+85度。

PCB 采用8层板沉金工艺设计,具有最佳的电气特性和抗干扰特性,使系统稳定工作于各种环境之下;该款核心板在结构布局上紧凑,尺寸小45mm*45mm,接口丰富,可以广泛应用于MID、PDA、PND、车载系统、智能家居、数据终端等产品。

该款核心板具备如下特点:尺寸小、功耗低、性能稳定8层板设计,布局、布线充分考虑EMC、EMI薄,邮票孔焊接设计集成度高,包括有线网络和声卡引出接口齐全应用领域广二、核心板分类核心板分4种,分别是:种类A:不带DM9000,256M Bytes Flash,512M Bytes 镁光DDR2,工作温度-25~+85℃种类B:不带DM9000,1G Bytes Flash,512M Bytes 镁光DDR2,工作温度-25~+85℃ 种类C:带DM9000,256M Bytes Flash,512M Bytes DDR2,工作温度-0~+70℃ 种类D:带DM9000,1G Bytes Flash,512M Bytes DDR2,工作温度-0~+70℃三、软件灵活应用可以WINCE系统软件,安卓系统软件,相关系统驱动开发,和产品软硬件全定制。

五、核心板外观六、核心板结构布局八、关于质量使用专业的测试工具及软件全方位验证,测试工具如下图:1、电压电流测试2、内存测试3、测试flash4、测试网卡5、测试声卡6、测试所有IO7、大量产品成功应用应用产品,涉及军工、汽车电子和民用领域,设计过典型的军工阅读PAD、车载导航、智能家居等产品。

飞凌S5PV210开发板硬件使用手册

飞凌S5PV210开发板硬件使用手册

飞凌S5PV210开发板硬件使用手册OK210‐A 硬件手册‐v1.0?第 0 页?OK210‐A 硬件手册‐v1.0?注意事项与维护?产品使用环境?工作温度:‐10°to +60℃ 工作湿度:10% to 95%?一般注意事项?牢记以下几条会减少您的维修费用!?本产品核心板金手指严禁用手或油污物接触,这样做会造成核心板与底板接触不良!!!不能带电插拔核心板!请保持本产品干燥。

如果不慎被任何液体泼溅或浸润,请立刻断电并充分晾干。

请不要在多尘、脏乱的环境中使用或存放本产品。

使用中注意本产品的通风散热,避免温度过高造成元器件损坏。

请不要将本产品应用在冷热交替环境中,避免结露损坏元器件。

请不要尝试拆卸本产品。

请不要粗暴对待本产品,跌落、敲打或剧烈晃动都可能损坏线路及元器件。

请不要用有机溶剂或腐蚀性液体清洗本产品。

请不要用颜料涂抹本产品。

擅自修改或使用未经授权的配件可能损坏本产品,由此造成的损坏将不给于保修。

如果产品出现故障,请联系飞凌技术服务部。

?第 1 页?OK210‐A 硬件手册‐v1.0?版权声明?本手册所有权由保定市飞凌嵌入式有限公司独家持有。

未经本公司的书面许可,任何单位和个人无权以任何形式复制、传播、转载本手册的任何部分,否则一切后果由违者自负。

第 2 页?OK210‐A 硬件手册‐v1.0?版本说明?日期 2013.3.17 版本 v1.0 新文件导入更新内容鸣谢?第 3 页?OK210‐A 硬件手册‐v1.0?技术支持与更新?技术支持说明?技术支持范围:开发板软、硬件资源;判断开发板是否存在故障;如何烧写和更新系统;如何测试和运行开发板提供的程序。

?保修范围及内容说明:?1.凡飞凌出售的产品,除特殊说明外,提供一年的保修服务,(液晶屏提供三个月质保)。

2.保修期间凡产品出现质量问题,均可享受飞凌的免费维修服务,运费由双方均摊。

3.保修期满后出现性能故障和硬件问题,可与飞凌取得联系,飞凌提供有偿的维修服务,视具体情况而定。

荣品电子S5PV210开发板UBOOT移植步骤(一)

荣品电子S5PV210开发板UBOOT移植步骤(一)

荣品电子S5PV210开发板UBOOT移植步骤(一)荣品电子推出最新RP-S5PV210开发板全功能板,板子蓝牙、WiFi,外加3G上网、GPS高精度定位、500W高清自动对焦摄像头等等。

U-Boot是universal bootloader,也就是通用的bootloader。

它存在于nandflash或者SD卡中,它是在开机上点之后,操作系统起来之前用来引导的一个程序。

U-boot 的主要作用是进行内存的初始化、CPU的初始化、串口初始化等一系列的初始化工作,完成这些之后,再将操作系统加载到内存中,从而运行起来。

U-Boot 源码文件下包括一些目录文件和文本文件,这些文件可分为”与平台相关的文件”和”与平台无关的文件”,其中common文件夹下的文件就是与平台无关的文件;与平台相关的文件又分为CPU级相关的文件和与板级相关的文件:arch目录下的文件就是与CPU级相关的文件,而board、drivers、include等文件夹下的文件都是与板级相关的文件。

我们在移植的过程中,需要修改的文件也就是这些与平台相关的文件。

在荣品S5PV210开发板上移植U-Boot 的过程主要包括以下四个步骤:1.下载U-Boot源码2.修改相应的文件代码3.编译U-Boot4.烧写到开发板上,运行下面是移植2011.06版本到210处理器上时修改(或添加)的文件:以下文件均为与CPU级相关的文件uboot2011.06/arch/arm/cpu/armv7/start.suboot2011.06/arch/arm/cpu/armv7/Makefileuboot2011.06/arch/arm/include/asm/arch-s5pc1xx/hardware.huboot2011.06/arch/arm/lib/board.cuboot2011.06/arch/arm/lib/Makefileuboot2011.06/arch/arm/config.mk以下文件均为与板级相关的文件uboot2011.06/board/samsung/RP210/tools/mkv210_image.cuboot2011.06/board/samsung/ RP210/lowlevel_init.Suboot2011.06/board/samsung/ RP210/mem_setup.Suboot2011.06/board/samsung/ RP210/ RP210.cuboot2011.06/board/samsung/ RP210/ RP210_val.huboot2011.06/board/samsung/ RP210/mmc_boot.cuboot2011.06/board/samsung/ RP210/Makefileuboot2011.06/drivers/mtd/nand/s5pc1xx_nand.cuboot2011.06/drivers/mtd/nand/Makefileuboot2011.06/include/configs/ RP210.huboot2011.06/include/s5pc110.huboot2011.06/include/s5pc11x.huboot2011.06/spl/Makefileuboot2011.06/boards.cfguboot2011.06/config.mkuboot2011.06/Makefile移植过程就是在新的U-Boot代码中增加与荣品RP-S5PV210开发板CPU级和Board级代码,使之能够在210开发板上面运行。

思科德技术.Samsung S5PV210开发板说明

思科德技术.Samsung S5PV210开发板说明
1/3
三星 S5PV210 技术方案提供商
可以实现 2000DMIPS(每秒 2 亿指令集)的高性能运算能力 采用 45nm 低功率制程,CPU 典型功耗 11mW
GPU 图形芯片
内建高性能 PowerVRSGX5403D 图形引擎和 2D 图形引擎 多边形生成率为 2800 万多边形/秒,像素填充率可达 2.5 亿/秒, 支持 DX9、SM3.0、OpenGL2.0 等 PC 级别显示技术 2D 图形加速,最大支持 8000*8000 分辨率图片。 JPEG 硬件编解码,最大支持 65536*65536 分辨率图片 IVA3 硬件加速器,支持全高清、多标准的视频编码,流畅播录 1080p 视频文件
PCB 规格
6 层板
2/3
三星 S5PV210 技术方案提供商
沉金工艺
软件资源
Kernel 2.6.35 源码 Android 2.3.5 源码 bootloader 源码 按键驱动 RTC 驱动 看门狗驱动 I2C 驱动 USB TP 驱动 9.7 LCD 驱动 USB HUB 驱动 HDMI 驱动 GC2015 Camera 驱动 WM8960 音频播放、录音驱动 NC024 WIFI、蓝牙驱动 PWM 背光驱动 外置 TF 卡驱动 内置 INAND 驱动 串口驱动 ADC 电池电量检测驱动 USB 转以太网芯片 DM9620 驱动 SPI 接口驱动 MMA8452 重力芯片感应驱动 2D、3D 显示驱动 JPEG 硬件编解码驱动 MFC 视频处理驱动 视频硬件编解码驱动 耳机插入检测驱动 电池充电检测驱动 背光控制驱动
硬件资源
CPU:S5PV210 内存:DDR2 512MB 内置存储:INANAD 4G 显示接口:LVDS(DS90C385A) 背光控制芯片:MP3302 复位芯片:STM6603,有延时复位功能 外置 TF 卡接口 单独可充电 RTC 锂电池 WIFI/BT 芯片: NC024 音频芯片:WM8960,3.5 标准耳机接口 内置 MIC 左右声道喇叭各一 摄像头:GC2015 200 万像素 USB-HUB 芯片:USB2514B(4 路 USB-HOST 接口) TP 接口:支持 USB 和 I2C 方式 G-Sensor:MMA8452 电池接口 电池充电控制芯片:HB6298B 系统按键:power、音量+、音量-、home、锁屏幕旋转键 HDMI 接口:A 型 调试串口 电源开关 OTA 接口:MicroUSB

s5pv210_touch驱动分析

s5pv210_touch驱动分析
struct input_dev { const char *name; const char *phys; const char *uniq; struct input_id id; //设备名称 //设备文件节点 //统一的 ID //设备 ID
unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; unsigned long keybit[BITS_TO_LONGS(KEY_CNT)]; unsigned long relbit[BITS_TO_LONGS(REL_CNT)]; unsigned long absbit[BITS_TO_LONGS(ABS_CNT)]; unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)]; unsigned long ledbit[BITS_TO_LONGS(LED_CNT)]; unsigned long sndbit[BITS_TO_LONGS(SND_CNT)];
5.. 寄存器
主要寄存器如下:
TSADCCON0,ADC 控制寄存器, TSCON0,触摸屏控制寄存器 TSDLY, ADC 开始延时寄存器 TSDATX0,转换数据寄存器 X TSDATY0,转换数据寄存器 Y TSPENSTAT0,ADC 触摸屏指针上下中断检测寄存器 CLRINTADC0,清除 ADC0 中断寄存器
2. 驱动原理
在 Linux 中,Input 设备用 input_dev 结构体描述,定义在 input.h 中。设备的驱动只 需按照如下步骤就可实现了。原理比较简单,主要是两步: 1) 设备注册及初始化: 在驱动模块加载函数中设置 Input 设备支持 input 子系统的哪些事 件;将 Input 设备注册到 input 子系统中; 2) 上报事件:在 Input 设备发生输入操作时(如:键盘被按下/抬起、触摸屏被触摸/抬起/ 移动、 鼠标被移动/单击/抬起时等), 向上层提交所发生的事件及对应的键值/坐标等状 态。 Linux 中输入设备的事件类型有(这里只列出了常用的一些,更多请看 linux/input.h 中):

camera驱动调试

camera驱动调试

最近学习了一下camera驱动,除了查看平台文档和sensor的规格书,也在网上查看了高手们到经验。

对camera还是比较陌生的,和大部分驱动的调试相差无几,还是在前人的工作基础上进行的。

下面将我的学习和大家交流一下:一.Framework层1.android.hardware.Camera:代码位置/ap-scr/frameworks/base/core/java/android/hardware/Camera.java这部分目标是framework.jar。

这是是Android 提供给app层调用的java接口。

这个类用来连接或断开一个Camera 服务,设置拍摄参数,开始、停止预览,拍照等。

2.android.hardware.Camera这个类是和JNI中定义的类是一个,有些方法通过JNI的方式调用本地代码得到,有些方法自己实现。

Camera的JAVA native调用部分(JNI):/android/frameworks/base/core/jni/android_hardware_Camera.cpp。

Camera.java 承接JAVA 代码到C++ 代码的桥梁。

编译生成libandroid_runtime.so 。

libandroid_runtime.so库是公用的, 其中除了Camera 还有其他方面的功能。

3.Camera框架的client部分:代码位置:\ap-src\frameworks\av\camera下5个文件。

Camera.cppCameraParameters.cppICamera.cppICameraClient.cppICameraService.cpp它们的头文件在\ap-src\frameworks\av\include\camera目录下。

这部分的内容编译生成libcamera_client.so 。

在Camera 模块的各个库中,libcamera_client.so 位于核心的位置,作为Camera 框架的Client 客户端部分,与另外一部分内容服务端 libcameraservice.so 通过进程间通讯(即Binder 机制)的方式进行通讯。

S5PV210 Android Overlay系统(视频输出系统)分析

S5PV210 Android Overlay系统(视频输出系统)分析Overlay是Android经常看到的名字,我们可以理解为视频叠加,Overlay也可以理解为视频输出视频输出和视频叠加是密切相关的,一般来说,输出的视频背景是系统UI层,而视频输出是叠加到UI层上的。

视频输出和系统UI一般使用独立的显存区,系统UI通过framebuffer显示;而视频输出在驱动层可以有两种实现方式:1. framebuffer方式,2. V4L2的output设备实现方式,具体使用哪种,是和平台密切相关的,甚至有的平台两种方式都实现了,比如freescale imx51,应用层既可以通过/dev/fb2实现视频输出,又可以通过output设别/dev/video16实现视频输出,具体使用哪个就是overlayHAL的工作了。

三星s5PV210平台使用output设备来输出视频,设备节点/dev/video1(对应fimc1控制器),其实不一定非要使用fimc1控制器的,fimc0 fimc2也可以实现视频输出,具体是用哪个FIMC作为视频输出,是overlayHAL的实现决定的。

参看文件device/samsung/proprietary/liboverlay/v4l2_utilc.c[cpp]view plaincopy76 int v4l2_overlay_open(int id)77 {78 LOG_FUNCTION_NAME79 return open("/dev/video1", O_RDWR);80 }这里直接hardcode overlay设备节点为/dev/video1主显示区和overlay显示区的叠加是通过硬件来实现的,至于主FB和overlay的层次关系,blending方式一般是由驱动层来实现的;当然应用层可以控制层次关系,叠加层的位置,大小旋转和透明等。

Android视频输出系统结构Android视频输出系统包括:驱动层(output 驱动,framebuffer驱动),OverlayHAL,Overlay服务器SurfaceFlinger,本地框架Overlay视频输出系统结构图如下:1. Overlay驱动层:Framebuffer驱动程序,V4L2 output 驱动程序2. OverlayHAL:hardware/libhardware/include/hardware/overlay.h,三星s5pv210 overlayHAL实现在device/samsung/proprietary/liboverlay/目录下3. Overlay服务器SurfaceFlinger:SurfaceFlinger中的LayerBuffer用在Camera preview/ video playback上,LayerBuffer提供了两种实现方式:一种是post buffer,另外一种就是这里讨论的overlay方法4. Overlay的本地框架代码:头文件路径:frameworks/base/inlcude/ui源文件路径:frameworks/base/libs/uiOverlay系统框架是库libui.so的一部分,提供的方法供camera 取景器以及视频输出的render环节使用,三星平台取景器调用参见device/samsung/proprietary/libcamera/SecCameraHWInterface.cpp,视频输出render 参见samsung/proprietary/libstagefrighthw/SecHardwareRenderer.cpp。

Android平台Camera及I2C总线驱动学习小结

Android平台Camera及I2C总线驱动学习⼩结Android平台Camera及I2C总线驱动学习⼩结——基于MSM8x60平台硬件开发⼆部BSP科党潇⼯号:101131511.MSM8x60平台简介High-performance high-level operating system(HLOS) platform(45nm)多核处理器(Modem+Dual Apps in a single chip),⽀持Android TMDual 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/BgpsOne,BT3.0,FM Rx/Tx,WIFI WCN1314AAC,AMR-NB,EVRC,QCELP,etc2.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 & decodeGraphics特性:Adreno 220(MSM v2.0)图形处理器,88M triangles/sOpenGL ES 1.1/ OpenGL ES 1.1/ OpenVG 1.1/SVG tiny 1.2LCD显⽰最⾼⽀持到WSXGA(1440×900),60Hz刷新率。

第7章 S5PV210微处理器(2013年3月27日)


共147页
11
3、S5PV210主要特性 (1)S5PV210 和 S5PC110 功能一样, S5PC110 小封装适用于智能手机。 S5PV210 封装较大,主要用于平板电脑 和上网本; (2)苹果的 iPad 和 iPhone4 上采用的 A4处理器(三星制造),使用的是 S5PV210 一样的架构(3D引擎和视频解码 部分不同),三星的Galaxy Tab平板电脑 上采用的也是 S5PV210;
共147页 20
5、S5PV210性能参数(续)
2D图形 2D图形加速,最大支 持8000*8000分辨率 图片。JPEG硬件编解 码,最大支持 65536*65536分辨率 图片 支持JPEG编解码功 能,最大尺寸为 4096x4096
视频播放
IVA3硬件加速器,支 持全高清、多标准的 视频编码,流畅播放 和录制30帧/秒的 1920*1080(1080p) 的视频
(14)4个SDIO/HS-MMC接口,支持IRDA 红外接口,支持RTC实时时钟保存;
共147页 10
2、S5PV210上实现的功能 (续) (15)支持8*8矩阵键盘接口,板载美式键 盘; (16)支持I2C、SPI、PWM、AD/DA等接口; (17)支持标准JTAG接口,支持系统总 线扩展接口。
共147页 16
3、S5PV210主要特性(续) (11)2D图形加速,最大支持 8000*8000分辨率图片。JPEG硬件编解 码,最大支持65536*65536分辨率图片;
(12)支持HDMI、TV-OUT、CAMERA*2。 HDMIv1.3可以将高清视频输出到外部显 示器上;
共147页 17
共147页 14
3、S5PV210主要特性(续) (8)支持 1G Bytes DDR2(RAM),支持 video TF 储存空间最大Multi-Format 32G(ROM),最大支持 Codec 卡扩展储存空间 32G(MFC) ; (9)S5PV210 包含很多强大的硬件编解 码功能,内建MFC,支持MPEG-1/2/4、 H.263、H.264等格式视频的编解码,支 持模拟/数字TV输出;

s5pv210显示驱动分析

S5PV210显示驱动分析与移植(android) 一、LCD控制器1.综述要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD 控制器。

在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD 控制器,如S5PV210等。

通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。

LCD控制器可以通过编程支持不同LCD屏的要求,例如行和列像素数,数据总线宽度,接口时序和刷新频率等。

LCD控制器的主要作用,是将定位在系统存储器中的显示缓冲区中的LCD图像数据传送到外部LCD驱动器,并产生必要的控制信号,例如RGB_VSYNC, RGB_HSYNC, RGB_VCLK等。

如下是S5PV210的LCD控制器内部结构框图:主要由VSFR, VDMA, VPRCS , VTIME和视频时钟产生器几个模块组成:VSFR由121个可编程控制器组,一套gamma LUT寄存器组(包括64个寄存器),一套i80命令寄存器组(包括12个寄存器)和5块256*32调色板存储器组成,主要用于对lcd控制器进行配置。

VDMA是LCD专用的DMA传输通道,可以自动从系统总线上获取视频数据传送到VPRCS,无需CPU干涉。

VPRCS收到数据后组成特定的格式(如16bpp或24bpp),然后通过数据接口(RGB_VD, VEN_VD, V656_VD or SYS_VD)传送到外部LCD屏上。

VTIME 模块由可编程逻辑组成,负责不同lcd 驱动器的接口时序控制需求。

VTIME模块产生 RGB_VSYNC, RGB_HSYNC, RGB_VCLK, RGB_VDEN, VEN_VSYNC 等信号。

主要特性:支持4种接口类型:RGB/i80/ITU 601(656)/YTU444 支持单色、4级灰度、16级灰度、256色的调色板显示模式 支持64K 和16M 色非调色板显示模式 支持多种规格和分辨率的LCD 虚拟屏幕最大可达16MB 5个256*32位调色板内存 支持透明叠加2. 接口信号FIMD 显示控制器全部信号定义如下所示Signal I/O DescriptionLCD TypeLCD_HSYNC O水平同步信号RGB I/FLCD_VSYNC O 垂直同步信号 LCD_VDEN O 数据使能 LCD_VCLK O视频时钟 LCD_VD[23:0] O LCD 像素数据输出 SYS_OE O输出使能 VSYNC_LDI OIndirect i80接口,垂直同步信号i80 I/FSYS_CS0 OIndirect i80接口,片选LCD0 SYS_CS1 OIndirect i80接口,片选LCD1 SYS_RS OIndirect i80接口,寄存器选择信号 SYS_WE OIndirect i80接口,写使能信号 SYS_VD[23:0] IOIndirect i80接口,视频数据输入输出 SYS_OE OIndirect i80接口,输出使能信号 VEN_HSYNC O601接口水平同步信号VEN_VSYNC O601接口垂直同步信号 VEN_HREF O601接口数据使能601接口数据时钟ITU 601/656 I/F V601_CLK OVEN_DATA[7:0] O 601接口YUV422格式数据输出V656_DATA[7:0] O 656接口YUV422格式数据输出656接口数据时钟V656_CLK O601接口域信号VEN_FIELD O其中主要的RGB接口信号:LCD_HSYNC:行同步信号,表示一行数据的开始,LCD控制器在整个水平线(整行)数据移入LCD驱动器后,插入一个LCD_HSYNC信号;LCD_VSYNC:帧同步信号,表示一帧数据的开始,LCD控制器在一个完整帧显示完成后立即插入一个LCD_VSYNC信号,开始新一帧的显示;VSYNC信号出现的频率表示一秒钟内能显示多少帧图像,称为“显示器的频率”LCD_VCLK:像素时钟信号,表示正在传输一个像素的数据;LCD_VDEN: 数据使能信号;LCD_VD[23:0]: LCD像素数据输出端口3.工作时序下图是LCD RGB接口工作时序图:的数(1上面时序图数据手册) VBPD(vert VFBD(vertiVSPW(vert HBPD(hori VCLK 的个HFPD(horiz 间的VCLK HSPW(hor)帧的传输1)VSYNC 信号周期,图上各时钟延ical back po ical front por tical sync pu zontal back 个数 zontal front K 的个数 rizontal sync 过程信号有效时即(VSPW 延时参数的含orch):表示在rch):表示在ulse width):porch):表示porth):表示c pulse width ,表示一帧数+ 1)个无效含义如下:(这在一帧图像开在一帧图像结表示垂直同示从水平同步示一行的有效h):表示水平数据的开始,效行;这些参数的值开始时,垂直结束后,垂直同步脉冲的宽步信号开始到效数据结束到平同步信号的 信号宽度值,LCD 产生直同步信号以直同步信号以宽度,用行数到一行的有效到下一个水平的宽度,用V 为 (VSPW 生厂商会提供以后的无效的以前的无效的计算效数据开始之平同步信号开VCLK 计算W + 1)个HSY供相应行数 行数 之间的始之YNC2)VSYNC信号脉冲之后,总共还要经过(VBPD + 1)个HSYNC信号周期,有效的行数据才出现;所以,在VSYNC信号有效之后,还要经过(VSPW + 1 + VBPD + 1)个无效的行;3)随即发出(LINEVAL + 1)行的有效数据;4)最后是(VFPD + 1)个无效的行;(2)行中像素数据的传输过程1)HSYNC信号有效时,表示一行数据的开始,信号宽度为(HSPW + 1)个VCLK 信号周期,即(HSPW + 1)个无效像素;2)HSYNC信号脉冲之后,还要经过(HBPD + 1)个VCLK信号周期,有效的像素数据才出现;3)随后发出(HOZVAL + 1)个像素的有效数据;4)最后是(HFPD + 1)个无效的像素;(3)将VSYNC、HSYNC、VCLK等信号的时间参数设置好之后,并将帧内存的地址告诉LCD控制器,它即可自动地发起DMA传输从帧内存中得到图像数据,最终在上述信号的控制下出现在数据总线VD[23:0]上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S5PV210 camera驱动分析(android)一、Camera工作原理介绍1.结构一般来说,camera主要是由lens和sensor IC两部分组成,其中有的sensor IC集成了DSP,有的没有集成,但也需要外部DSP处理。

细分的来讲,camera设备由下边几部分构成:1)lens(镜头)一般camera的镜头结构是有几片透镜组成,分有塑胶透镜(Plastic)和玻璃透镜(Glass) ,通常镜头结构有:1P,2P,1G1P,1G3P,2G2P,4G等。

2)sensor(图像传感器)Senor是一种半导体芯片,有两种类型:CCD和CMOS。

Sensor将从lens上传导过来的光线转换为电信号,再通过内部的AD转换为数字信号。

由于Sensor的每个pixel只能感光R光或者B光或者G光,因此每个像素此时存贮的是单色的,我们称之为RAW DATA数据。

要想将每个像素的RAW DATA数据还原成三基色,就需要ISP来处理。

3)ISP(图像信号处理)主要完成数字图像的处理工作,把sensor采集到的原始数据转换为显示支持的格式。

4)CAMIF(camera控制器)芯片上的camera接口电路,对设备进行控制,接收sensor采集的数据交给CPU,并送入LCD进行显示。

2.工作原理外部光线穿过lens后,经过color filter滤波后照射到Sensor面上,Sensor将从lens上传导过来的光线转换为电信号,再通过内部的AD转换为数字信号。

如果Sensor 没有集成DSP,则通过DVP的方式传输到baseband,此时的数据格式是RAW DATA。

如果集成了DSP,则RAW DATA 数据经过AWB、color matrix、lens shading、gamma、sharpness、AE和de-noise处理,后输出YUV或者RGB 格式的数据。

最后会由CPU送到framebuffer中进行显示,这样我们就看到camera拍摄到的景象了。

3.YUV与YCbCrYUV和RGB一样,是色彩空间中常用的色彩模型之一,两者可以相互转换。

YUV中得Y表示亮度,U和V表示色度。

与RGB相比,它的优点在于占用更少的空间。

YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT601 建议的一部分, 其实是YUV经过缩放和偏移的翻版。

其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。

在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG均采用此格式。

一般人们所讲的YUV大多是指YCbCr。

YCbCr 有许多取样格式, 如4∶4∶4 , 4∶2∶2 , 4∶1∶1 和4∶2∶0。

二、Camera硬件1.CAMIF如下是S5PV210的camera系统的结构图:S5PV210的camera接口控制器叫FIMC4.3,它支持ITU R BT-601/656、AXI和MIPI(CSI)三种接口方式,最大输入像素是8192*8192。

S5PV210有三组camera接口。

主要特性:➢支持多种输入接口类型:✧ITU-R BT 601/656模式✧DMA(AXI 64位)模式✧MIPI(CSI)模式✧Direct FIFO模式➢支持多种输出接口:DMA模式/Direct FIFO模式➢支持数码调焦(DZI)➢最大输入像素8192*8192➢支持图像翻转、旋转等处理效果➢生成多种图片格式➢支持采集帧控制通过CAM_MCLK给摄像头提供时钟,RST是复位线,PWDN在摄像头工作时应该始终为低。

HREF是行参考信号,PCLK是像素时钟,VSYNC是场同步信号。

一旦给摄像头提供了时钟,并且复位摄像头,摄像头就开始工作了,通过HREF,PCLK和VSYNC同步传输数字图像信号。

数据是通过DATA0~DATA7这八根数据线并行送出的。

3.工作时序FIMC43支持如下两种视频数据:ITU-R BT 601输入时序图这种方式下行和帧同步信号独立于视频数据,因此需要同步信号。

ITU-R BT 656输入时序图这种方式下同步信号已经内嵌到视频数据中了,因此不需要额外的行和帧同步信号。

(ITU-R BT 601: 16位数据传输;21芯;Y、U、V信号同时传输。

ITU-R BT 656: 9芯,不需要同步信号;8位数据传输;串行视频传输;传输速率是601的2倍;先传Y,后传UV。

)同步信号的时延参数➢t1:表示VSYNC前、后插入周期➢t2:表示HREF前插入周期➢t3:表示HREF宽度➢t4:表示HREF后插入周期4.外部接口硬件原理图的CAM A部分:CAM B部分5.Camera内部结构图下图是camera内部结构框图,以OV sensor为例:三、Camera驱动1.V4L21)简介在Linux中,摄像头方面的标准化程度比较高,这个标准就是V4L2驱动程序,这也是业界比较公认的方式。

V4L全称是Video for Linux,是Linux内核中标准的关于视频驱动程序,目前使用比较多的版本是Video for Linux 2,简称V4L2。

它为Linux下的视频驱动提供了统一的接口,使得应用程序可以使用统一的API操作不同的视频设备。

从内核空间到用户空间,主要的数据流和控制类均由V4L2驱动程序的框架来定义。

V4L2驱动程序一般只提供Video数据的获得,而如何实现视频预览,如何向上层发送数据,如何把纯视频流和取景器、视频录制等实际业务组织起来,都是camera的硬件抽象层需要负责的工作。

V4L2驱动核心实现为如下文件:drivers/media/video/v4l2-dev.c。

V4l2-dev.h中定义的video_device是V4L2驱动程序的核心数据结构,它为具体的摄像头sensor驱动提供了接口调用。

V4l2的采集过程(应用程序):1) 打开设备,获得文件描述符;2) 设置图片格式;3) 分配缓冲区;4) 启动采集过程,读取数据;5) 停止采集,关闭设备。

2)数据结构V4L2的主要数据结构是video_device,定义在v4l2_dev.h中:主要接口函数有:int video_register_device(struct video_device *vdev, int type, int nr);static int v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);2. FIMC1)简介FIMC这个模块不仅仅是一个摄像头的控制接口,它还承担着V4L2的output功能和overlay的功能。

FIMC的驱动在内核中的位置:drivers/media/video/samsung/fimc它包含下边的文件:fimc_regs.cfimc_capture.cfimc_dev.cfimc_output.cfimc_overlay.cfimc_v4l2.c它们的组织关系如下:可以看到,FIMC的驱动实现了v4l2所有的接口,可以分为v4l2-input设备接口,v4l2-output设备接口以及v4l2-overlay设备接口。

这里我们主要关注v4l2-input设备接口,因为摄像头属于视频输入设备。

fimc_v4l2.c里面注册了很多的回调函数,都是用于实现v4l2的标准接口的,但是这些回调函数基本上都不是在fimc_v4l2.c里面实现的,而是有相应的.c分别去实现。

比如:v4l2-input设备的操作实现:fimc_capture.cv4l2-output设备的操作实现:fimc_output.cv4l2-overlay设备的操作实现:fimc_overlay.c这些代码其实都是和具体硬件操作无关的,这个驱动把所有操作硬件寄存器的代码都写到一个文件里面了,就是fimc40_regs.c。

这样把硬件相关的代码和硬件无关的代码分开来实现是非常好的方式,可以最大限度的实现代码复用。

2)数据结构FIMC的主要数据结构fimc_control,定义在fimc.h中:因为FIMC一共有三套一样的控制器(fimc0, fimc1, fimc2),所以驱动里使用了一个数组来描述::fb_ops结构体是针对v4l2设备的基本操作,定义如下:3)FIMC初始设置在S5PV210中,FIMC初始设置代码在/drivers/arch/arm/mach-s5pv210/mach-t34h.c中:对于GPIO的配置代码在/drivers/ arch/arm/mach-s5pv210/setup-fimc0.c中:4)接口函数FIMC的主要回调函数如下,实现在fimc_v4l2.c中:5)寄存器操作(fimc_regs.c)对于寄存器的操作,实现都在fimc_regs.c文件中,如3. Sensor驱动1)简介,本方案中使用了两个摄像头模组:MT9P111和S5K6AAFX。

其中MT9P111是APTINA公司推出的1/4英寸光学格式5M单芯片传感器,用作后摄像头;S5K6AAFX 是三星出的1.3M CMOS高清图像传感器,用作前摄像头。

2)参数设置MT9P111的参数设置S5K6AAFX的参数设置3)数据结构(未注释)4)接口函数(未注释)。

相关文档
最新文档