基于ARM的平板电脑的底层硬件驱动设计15334.pdf
《基于ARM的平板电脑的底层硬件驱动设计15334.pdf》由会员分享,可在线阅读,更多相关《基于ARM的平板电脑的底层硬件驱动设计15334.pdf(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要推出平板的目的是为了弥补手机和笔记本电脑之间的这块空白区域,就是为人们提供一款和手机一样携带方便、操作简单,但比手机视觉效果更好,并能像笔记本电脑一样可以快速流畅的上网、观看视频和玩游戏的产品。软件方面,除苹果自己有自己的 IOS 外,不管是国内还是国外厂商,由于 google 的开源,基本都选择了 andriod 操作系统作为开发平台。Android 是一个基于 linux 内核的操作系统,在一款产品的开发过程中,硬件驱动程序的开发和调试是一项艰巨的任务,驱动程序的质量直接影响产品的性能和稳定性,所以对平板上驱动程序的研究和设计具有实际工程意义。此次设计针对平板电脑中常用的几个硬件驱动进
2、行了研究和设计,如 LCD 驱动,PWM 背光驱动,按键驱动等。旨在熟悉驱动设计流程,掌握驱动设计的一般方法。关键字:平板电脑,Android,linux,硬件驱动 ABSTRACT The purposeof the launch of the tablet is in order tomake upthepiece ofblank areabetweenmobile phones and laptopputersfor people tooffer adevice as easy as mobile phoneto carry,simpletooperate,butbetterthanth
3、emobilephonevisual effects,andthesameas the laptopcan quickly accesstotheInternet,watching videos and playing games.On the software side,in addition to Apples ownIOS,whether domestic orforeign manufacturers,because of googleopened the android source code,basicallychoosetheandriodoperating systemas t
4、hedevelopment platform.Android isaLinuxkernel-based operating system,in the processof a productdevelopment,developing and debugginghardware driversisanarduous task,thequalityofthedriverdirectly impact on productperformance and stability,So theresearch and designofthedriverontheTablet PChasapractical
5、engineeringsignificance.This paper will research and design a fewhardware driversthat monly used in theTablet PC,suchasLCD drivers,PWMbacklight driver,key drivers and so on.The purposeofthisdesignis tofamiliarto the driverdesign process and graspthegeneral approachtodriverdesign.Keywords:tablet pc,a
6、ndroid,linux,hardware drivers目录 第一章引言 5 1.1 ARM处理器介绍 5 1.2 android 操作系统介绍 6 1.3 平板电脑驱动开发概述7 第二章软硬件平台介绍和启动过程分析9 2.1 硬件平台介绍 9 2.2 软件平台介绍 9 2.3 启动过程分析 10 第三章 LCD 驱动设计及实现13 3.1 显示控制器及显示器硬件配置13 3.1.1 S5PV210 显示控制器 13 3.1.2 三星 9.7 寸 IPS 屏 LTN097XL0213 3.1.3 显示模块硬件连接方式14 3.2 android下的 LCD 驱动 15 3.2.1 LCD 硬
7、件时序参数设置15 3.2.2 LCD硬件设备注册 16 3.2.3 frambuffer驱动注册 18 第四章 PWM 背光驱动设计及实现19 4.1 PWM背光控制器硬件连接19 4.2 linux内核 PWM 驱动 19 4.2.1 PWM背光设备注册 19 4.2.2 PWM背光驱动注册 20 4.3 PWM 背光在 android HAL 层移植 22 4.3.1 什么是硬件抽象层22 4.3.2 HAL的实现机制 23 4.3.3 pwm 背光的 HAL 层实现 24 第五章接键驱动设计及实现 27 5.1 接键硬件以及功能要求 27 5.2 内核空间按键驱动设计和实现 27 5.
8、2 android 对按键的重映射 32 第六章振动电机驱动设计及实现 35 6.1 功能要求以及硬件连接 35 6.2 内核空间振动电机驱动设计及实现 35 6.2.1 什么是 timed GPIO35 6.2.2 振动电机的 Timed GPIO 驱动实现 36 6.3 振动电机驱动 HAL 层的实现 40 第七章 WM8976 声道自动切换设计及实现 43 7.1 功能要求以及硬件 43 7.2 内核空间声道自动切换设计及实现 44 7.2.1 什么是 switch IO44 7.2.1switch IO 耳机插拔检测驱动设计及实现 44 7.2.2wm8976 声道切换控制实现 48
9、总结 51 参考文献 52 致谢 53 外文资料原文 54 译文 58 第一章 引言 2010 年 1 月份苹果公司发布了 iPad 平板电脑,从此为 IT 行业带来了一个全新的产业。iPad 定位是介于智能手机和笔记本电脑之间的产品,提供浏览互联网、收发电子、观看电子书、播放音频或视频等功能。从产品定位我们可以看出,苹果公司推出 iPad 的目的是为了弥补手机和笔记本电脑之间的这块空白区域,就是为人们提供一款和手机一样携带方便、操作简单,但比手机视觉效果更好,并能像笔记本电脑一样可以快速流畅的上网、观看视频和玩游戏的产品。iPad的推出,可以说开启了后 PC 时代,其火爆的销量让以前其他众多
10、处于观望的厂商也迅速杀入的这块市场。得益于集成电路的高速发展,以前需要很多电路才可以完成的功能现在都被高度整合到了 SOC 之中(片上系统)。所以和 PC 相比,平板电脑可以把体积做得更小。功耗做得更底。从硬件和软件的角度来讲,最关键的分别是 SOC 和操作系统。在 SOC 这一块,国外主要被高通、三星、TI、NVIDIA 这些厂商所占据。这些厂商做出来的 SOC 集成度高,功能强劲,CPU 主频现一般在 1G-1.5G 左右。基本已经过渡到双核时代。终端制造厂商做出来的平板终端主要面向高端消费市场。在国内,几家面向移动多媒体终端的IC 设计公司也推出了性能优异的SOC芯片。如:XX 全志,X
11、X 瑞芯微,君正,晶晨半导体等。这些厂商的推出的SOC集成度也较高。主频从 800MHZ-1.2GHZ,均为单核处理器。整体上比国外大厂要低一个档次。但是,用这些厂商做出来的平板方案成本很低,更复合中国消费者的消费习惯。所以市场也非常的广阔。在软件方面。除苹果自己有自己的 IOS 外,不管是国内还是国外厂商,由于 google 的开源,基本都选择了 andriod 操作系统作为开发平台。所以在这个平台上的软件资源非常丰富。对于方案设计商和终端制造商,只要具备一定的开发实力,都可以以这个平台做出差异化地方案。1.1 ARM 处理器介绍 ARM 是 Advanced RISC Machines 的
12、缩写,即可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是种技术的名字。目前,ARM 公司专门从事基于 RISC 技术芯片的设计开发,作为知识产权供应商,ARM 的商业模式主要涉及 IP 的设计和许可,而非生产和销售实际的半导体芯片。他们向合作伙伴(包括世界领先的半导体公司和系统公司)授予 IP 许可证。这些合作伙伴可利用 ARM 的 IP 设计创造和生产片上系统设计,但需要向 ARM 支付原始 IP 的许可费用并为每块生产的芯片或晶片交纳版税。除了处理器 IP 外,他们还提供了一系列工具、物理和系统 IP 来优化片上系统设计.图 1-1 ARM 产品线:提供领先的设计、
13、实现和应用 正因为 ARM 的 IP 多种多样以及支持基于 ARM 的解决方案的芯片和软件体系十分庞大,全球领先的原始设备制造商 (OEM)都在广泛使用 ARM 技术,应用领域涉及手机、数字机顶盒以及汽车制动系统和网络路由器。当今,全球 95%以上的手机以及超过四分之一的电子设备都在使用 ARM 技术。在平板领域,国外厂商基本青一色的使用了 ARM 的内核或者具有 ARM ISA 的处理器。在国内,除群正自主研发基于 MIPS ISA 的 xburst 架构 CPU 以外。其他厂商都采用了 ARM cortex A8 或 cortex A9 内核,在此基础上再加入厂商自己的外设如USB,LCD
14、C,HDMI,audio codec,video codec 等,形成具有自主特色的 SOC。1.2 android 操作系统介绍 Android 最早是由 google 在 2007 年发布的一款操作系统,Android 是一种以 Linux 为基础的开放源代码操作系统,主要使用于便携设备。Android 操作系统最初由 Andy Rubin 开发,最初主要支持手机。2005 年由 Google 收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。自 2007 年发布以来,Android 已经经历了数个版本的更新,市面上采用该系统的移动设备数量也在飞速增长。目前市面上实用的
15、比较多的版本为 android2.3,代号为姜饼。Google 最新的版本为 4.0,代号为冰欺凌 XX 治。根据 google 的官方统计,就目前的市场占有率来看,2.3 版本为市场占有市场份额最多的 anroid 版本。约占了整个 android 的 63.9%。在该平台上软件资源也是最丰富的。图 1-2 Anroid 设备中各版本占有率 1.3 平板电脑驱动开发概述 驱动程序是一种实现硬件具体功能的软件。做驱动程序开发不仅仅要明白操作系统为我们提供的驱动模型,常用的数据结构。而且要理解我们所操作的硬件。明白硬件的工作原理。所以驱动程序的开发工作非常具有挑战性。在现在市长上销售的平板中,大
16、多数在硬件平台上,选用 ARM 处理器,软件平台上选用 android(苹果有自家的IOS),所以,平板电脑上的驱动开发可以说是在ARM 平台上的android驱动开发,由于android是 linux内核,所以android下有很多为标准的linux 驱动,如串口驱动,framebuffer 驱动,touch panel 驱动等。但 android 也有自己的专有驱动。具体如下:1.Android Binder:基于 OpenBinder 框架的一个驱动,用于提供 Android平台的进程间通信功能。2.Android 电源管理(PM):一个基于标准 liunx 电源管理系统的轻量级Andr
17、oid电源管理驱动,针对嵌入式设备做了很多优化。3.低内存管理器(Low Memory Killer):根据系统运行的需要杀死进程以释放需要的内存。4.匿名共享内存(Asheme):为进程间提供大量共享内存,同时为内核提供回收和管理这个内存的机制。5.Android PMEM(physical):PMEME 用于向用户空间提供连续的物理内存区域。6.Android Logger:一个轻量级的日志设备,用于抓取 Android 系统的各种日志。7.Android Alarm:提供了一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。8.USB Gadget
18、:驱动 一个基于标准 liunx usb gadget 驱动框架的设备驱动,Android 的 USB 驱动是基于 gadget 框架。9.Android ram Console:为了提供调试功能,Android 允许将调试日志信息写入一个被称为 RAM Console的设备里,它是一个基于RAM 的 Buffer.10.Android timed deivce:提供了对设备进行定时控制功能,目前支持vibrator 和 LED设备.11.Yaffs2文件系统:Android 采用 Yaffs2 作为 MTD nand flash 文件系统。同时,同标准的 linux 相比,android 驱
19、动开发中,为我们提出了一个新的概念 HAL(Hardware Abstract Layer 硬件抽象层).是 Google 因应厂商希望不公开源码的要求下,所推出的新观念。HAL 运行在用户空间,这样,驱动程序就可以不受 GPL 的限制,不用公开源代码。他们的硬件规格和驱动代码就可以很好的保护驱动。这对很多设备制造商来说,是一种良好的自我保护。在 android 移植中,HAL 也是需要驱动人员去开发的一部分。针对我们的自己搭建的硬件平台,在本文中将重点阐述如下驱动的移植和开发:1.三星 9.7 英寸 IPS 显示面板显示驱动设计。2.显示面板 PWM 背光驱动程序设计。3.平板电脑上按键驱动
20、设计。4.振动电机驱动设计。5.WM8976 codec 研究,配合硬件实现耳机插入检测,着重解决外放喇叭和耳机声道自动切换问题。第二章软硬件平台介绍和启动过程分析 2.1 硬件平台介绍 在硬件平台上选用三星蜂鸟 ARM 处理器 s5pv210.其具有如下特性:CortexTM-A8架构 32KB I/D缓存,512KB二级缓存 64位多总线架构 支持MPEG4,H.263,H.264 1080P30fps编解码以及MPEG4 1080P30fps解码 JPEG解码高达80Mpixels/s 2D,3D高性能加速 HDMI,TV OUT 根据应用需求,我们板载如下硬件:1.三星K4T1G084
21、QE 512MB DDR2.2.9.7寸IPS显示屏,分辨率为1024*768.3.9.7寸10点电容触摸屏。采用XXgoodix GT8105芯片组.4.HDMI高清输出接口.5.OV2655 200W像素前置摄像头.6.WM8976 audio codec,自带AB类功放.7.Kionix KXTF9-2050 加速度传感器.8.Atheros AR6102 WIFI.9.7400MA 锂电池,并设计了充电电路.10.振动电机.2.2 软件平台介绍 在软件开发上选用 xboot 作为启动引导 bootloader。xboot 是由 XX 九鼎展创科技 XX 自主开发的开源 bootload
22、er。具有如下特性:支持多操作系统选择启动,默认系统可自定义;支持开机LOGO;支持shell命令行脚本解析;源码架构清晰易懂,无需繁琐的宏定义;添加程序简单,类似linux驱动加载;完全免费开源工程,无须license;支持打包内核,调试更加出色;支持打包文件系统,boot,kernel,ramdisk只需一个文件;Android 采用目前兼容性最好的 android2.3。内核采用 linux2.6.37.整个开发过程在 ubuntu10.10 下完成.2.3 启动过程分析 系统启动过程是一个代码从闪存到内存,初始化必须的硬件并为操作系统的运行做好前期准备的过程。本系统中启动代码由三部分组
23、成:IROM,一级bootloader,二级 bootloader。其中 IROM 由 CPU 自身硬件实现,一级和二级bootloader由 xboot 实现.每一个阶段的特点为:iROM代码:包含小而简单的代码,是独立于平台和存储在内部存储器 一级引导装载程序:包含小而简单的代码,这是独立于平台和存储在外部存储设备。二级引导装载程序:包含复杂的代码,这是特定于平台和存储在外部存储设备。S5PV210 内带 64K ROM 和 96K SRAM。内部的 64KB ROM 和内部 96KB SRAM 的地区都可以用于引导。可通过外部引脚设置选择从不同的设备启动.图 2-1 启动引导过程 具体启
24、动过程如下:IROM 代码被放置在内部的 64KB ROM。它初始化基本系统功能,如时钟,堆栈和堆。该 IROM 从一个特定的外部引导设备复制一级 bootloader 到内部 96KB的 SRAM。引导设备的选择由工作模式(OM)引脚确定。在一级 bootloader 中主要完成如下功能:1.关闭看门狗 2.设置CPU到管理模式 3.关MMU 4.初始化系统时钟 5.初始化DRAM控制器 6.锁定系统电源状态 7.跳转到二级bootloader 其中在锁定系统电源这个步骤是为了用户开机的实现。在硬件上系统有如下开机电路:图2-2 硬件开机电路 整个供电电路中,首先按住 SW12,即 POWE
25、R 键,MOS 管 Q5 的栅级由高电平变为低电平,MOS 管导通,DCDC 芯片 MP1482 的使能脚被拉高,5V 电压产生。随后,3.3V 的 DC-DC 电源芯片由于 5V 电源已近输入也会开始工作,产生 3.3V 电压,给整个板卡供电,程序开始运行。在 bootloader 中将网络标号为 PWR_LOCK的 GPIO 口拉高,注意这时 5V 供电部分的三极管 Q6 导通,MOS 管 Q5 维持导通,至此,可以松开 POWER 按键整个电源已经置锁。在二级bootloader中主要完成如下功能:1.初始化本阶段用到的外设 2.拷贝内核镜像和根文件系统到DRAM中 3.设置启动参数 4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 平板 电脑 底层 硬件 驱动 设计 15334
限制150内