基于安卓系统的相机的模块设计与实现.doc
《基于安卓系统的相机的模块设计与实现.doc》由会员分享,可在线阅读,更多相关《基于安卓系统的相机的模块设计与实现.doc(36页珍藏版)》请在三一办公上搜索。
1、. 436.2.3 HAL 层测试 . 446.3 CAMERA 拍摄效果测试. 45第七章 结束语.49致谢.51参考文献.53目 录第一章 绪论.11.1 选题背景及研究意义 .11.2 国内外研究现状 .11.3 主要研究内容 .21.4 论文结构安排 .3第二章 相关技术概述.52.1 ANDROID 平台框架.52.2 LINUX 内核相关概念简介 .72.2.1 Linux 用户空间和内核空间 .72.2.2 Linux 系统调用 .82.2.3 Linux 设备驱动 .8第三章 ANDROID 的开发环境搭建 .113.1 ANDROID 移植概述. 113.2 ANDROID
2、开发环境的搭建.123.2.1 开发所需软件资源.123.2.2 开发所需硬件资源.15第四章 ANDROID 下的 CAMERA 模块分析和设计 .174.1 CAMERA 应用层、运行时环境、库介绍.174.2 CAMERA HAL 层分析和设计 .174.3 LINUX 驱动层分析和设计 .194.3.1 Camera 控制器驱动 .194.3.2 Camera Sensor 驱动.204.4 整体框架.23第五章 ANDROID 下的 CAMERA 模块实现.255.1 基于 V4L2 标准的 CAMERA 模块实现.255.1.1 HAL 层实现.255.1.2 Linux 驱动层实
3、现 .275.2 CAMERA 模块的普通字符设备方式实现.385.2.1 HAL 层实现.385.2.2 Linux 驱动层实现 .39第六章 CAMERA 模块的测试.416.1 CAMERA 模块的测试环境.416.2 CAMERA 模块的功能测试.426.2.1 Camera 硬件测试 .42第一章 绪论1第一章 绪论1.1 选题背景及研究意义随着科技的发展和无线移动互联网的普及,手机的功能越来越强大,人们对手机的需求也不仅仅是基本的打电话或玩简单的小游戏了,人们更多的是希望手机能像电脑一样方便,所以智能手机渐渐成为人们选择的目标。而 Google 的Android 系统凭借其通用、开
4、源、免费的特点迅速的在短时间内占有了大量的市场,成为时下手机终端产品时下的热门。而作为 Android 智能手机的必备功能之一的拍照功能更是常成为用户选择 Android 产品的重要依据,其质量、稳定性、拍摄效果往往可以左右人们的选择。Android 是基于 Linux 内核的软件平台和操作系统,是 Google 在 2007 年 11月 5 日公布的手机系统平台,早期由 Google 开发,后由开放手机联盟(OpenHandset Alliance)开发。它采用了软件堆层(Software Stack,又名以软件叠层)的架构,主要分为三部分。低层以 Linux 内核工作为基础,只提供基本功能
5、;其他的应用软件则由各公司自行开发,以 Java 作为编写程序的一部分。Android 下的 Camera 模块同样分为三部分,应用层,HAL 层,Linux 驱动层。应用层由 Google 提供参考代码,有较完善的接口,HAL 层需要与驱动层相配合,HAL 层通常由芯片厂商提供参考代码,由于没有统一的标准,不同的芯片公司会有不同的代码结构。驱动层会涉及 Camera 控制器驱动和 Camera Sensor 驱动,Camera 控制器驱动会由芯片厂商提供参考代码,Camera Sensor 驱动是手机设计公司根据Camera控制器驱动提供的接口来对具体的Camera外设进行初始化和配置以协调
6、Camera控制器和Camera Sensor使他们能够正常工作。但在Camera HAL层到驱动层没有固定的代码编写标准,这就为代码的编写提供了各种的框架结构,不利于手机的研发。针对这些问题,本文以实现某一块开发板上的 Android Camera 模块开发为背景,研究 Camera 的在 HAL 和驱动层的工作过程和原理,帮助开发者更好的理解和尽快的解决 Android Camera 相关的问题,提升 Android 手机研发进度。1.2 国内外研究现状首款 Android 手机是由 Google 和 HTC(宏达电)联合推出的 HTC G1,它以Android 为操作系统,包含移动电话工
7、作所需的全部软件。随后,Android 平台的研发队伍阵容强大,包括 Google、HTC(宏达电)、T-Mobile、高通、摩托罗拉、AbstractWith the rapid development of mobile internet, more people start to use smartphones. In all of these operating systems for smart phone, android system, withgoogles supports and its open source characteristic, has been suppor
8、ted by variouscompanies. Camera equipment as an essential component of smart phone, has becomean important part of peoples attention. About camera, android system provides betterinterfaces for camera applications in upper layer. But in android HAL layer and linuxdriver layer, there is no standard fr
9、amework for camera module. As a result, this paper,developing and porting an android camera module in a development board as thebackground, introduces the development environment of android system and theporting of android, deeply analyzes and researches the HAL layer, camera controllerdriver and ca
10、mera sensor driver, summarizes the working principle and working flowof camera module in android system, and realizes the HAL layer and linux driver layerof the camera module in a development board based on V4L2 standard and regularcharacter device model.Keyword: android camera application HAL layer
11、 camera controller drivercame ra sensor drive rra 模块设计和实现4ra 模块设计和实现2三星、LG 以及中国移动在内的 34 家企业都有基于该平台开发手机的新型业务。在中国,台湾的联发科也在2010的北京国际通信展上展出了他们的4、5款Android手机,而台湾的 mstar、上海的展讯通讯等公司也正在积极研发基于 Android 平台的手机。关于 Android 下的 Camera 模块,在 Linux 下,存在一个 V4L(Video For Linux)标准,它由 AlanCox在 bttv驱动接口基础上改进而来,在 2006/2007
12、年发展为现在的 V4L2 标准。它为视频设备在 Linux 内核和用户层应用程序提供了一系列接口函数。由于 Android 是以 Linux为内核,所以 Android 下的 Camera 模块可以按照 V4L2 标准来写 HAL 层和内核驱动,但其中的 HAL 层必须与 Android 的一些标准接口相配合。但并不是所有的芯片设计公司都会使用这种标准,由于芯片设计不同和方便移植,一些芯片公司往往会按照自己的结构来设计 Camera 模块,由于 Camera 设备属于字符设备,所以这些芯片公司通常会在 Linux下以普通字符设备驱动的方式来设计 Camera 的驱动,在 HAL 层会根据驱动提
13、供的调用接口来设计 HAL 层。Camera 模块还包括 Camera Sensor,它通常由 Sensor 公司提供,如OmniVision、美光、格微科、比亚迪等。这些公司设计 Camera Sensor 的硬件设备,提供相关的硬件文档给手机设计公司,通常这些 Sensor 的特性都具有很多的相似性,需要根据相应的文档配合手机芯片来完成 Camera 模块。1.3 主要研究内容本文以三星 6410 芯片为平台、OV(OmniVision)系列的 Camera Sensor,辅助对比高通 7227 芯片,分析 Android 下的 Camera 模块框架和各部分特征。主要完成的工作有:1.
14、研究国内外关于 Android 的发展现状,介绍 Linux 开发环境下 Android 系统移植的相关知识;2. 分析和总结了 Android 下 Camera HAL 层相关的结构;3. 分析某芯片公司的 Camera 控制器驱动,总结其相关工作逻辑;4. 研究 Camera Sensor 的工作原理;5. 按照所总结方法设计了 Android 的 Camera 模块并在某个三星 6410 芯片的开发板上实现其功能。由于 Camera 模块涉及 Camera 应用层、HAL 层、芯片上的 Camera 控制器驱动、Camera Sensor 驱动、Camera 硬件设备的连接,这些部分存在
15、紧密的联系,某一层的问题往往会影响到整个模块的正常工作,所以在实现 Camera 模块的过程中,对问题的排查,对代码的调试也是模块实现的重要组成部分。ra 模块设计和实现62. Application Frameworks(应用框架)应用程序就是依赖应用框架层次 API 开发的。应用架构设计的初衷是:简化组件复用机制;任何应用都能发布自己的功能,这些功能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束)。和复用机制相同,框架允许组件的更换。所有应用都是一组服务和系统,一般包含: 一套丰富且可扩展的视图 组件,含有 lists, grids, text boxes, buttons
16、, 甚至嵌入的网络浏览器; Content Providers(内容提供器) 使一个应用可以访问另外一个应用的数据(如联系人),或者使一个应用内部可以共享自身数据; Resource Manager(资源管理器),提供对非编码资源例如本地化字符串、图形和布局文件的访问通道; Notification Manager(通告管理器),使应用在状态栏显示自定义的警报通知; Activity Manager(行动管理器)负责管理应用的生命周期,提供通用导航回退支持。3. Libraries(库)Android 包含一套 C/C+库,Android 系统的各式组件都在使用。这些功能通过 Android
17、应用框架暴露给开发人员。下面列举一些核心库: SystemC library - 衍生于 BSD 的标准 C 系统库(libc)实现(注:BSD:Berkeley Software Distribution,伯克利软件套件,是 Unix 的衍生系统,1970年代由伯克利加州大学开创),尤其支持嵌入式的基于 Linux的设备; Media Libraries - 媒体库基于 PacketVideos OpenCORE;媒体库支持很多流行音频和视频格式、静态图形文件(包括 MPEG4, H.264, MP3, AAC,AMR, JPG, and PNG)的播放和录制; Surface Manage
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 系统 相机 模块 设计 实现

链接地址:https://www.31ppt.com/p-2392784.html