【Android论文栏目提醒】:网学会员--在 Android论文编辑为广大网友搜集整理了:基于Android平台Wi-Fi模块 - 硕士论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
华中科技大学 硕士学位
论文基于
Android平台Wi-Fi模块 别:硕士 专业:计算机应用技术 指导教师:涂刚 2011-01-17 华 中 科 技 大 学 硕 士 学 位 论 文 摘要 近年来,随着国际互联网的飞速发展,网络已经走入了千家万户,成为人们生产和生活中不可缺少的重要信息来源。
人们已经不满足于坐在电脑桌前浏览网页,而是希望随时随地都能上网获取信息。
在这种背景下,移动互联网设备逐渐成为各大互联网公司新一轮竞争的主战场。
武汉精伦电子股份有限公司推出的 P760 车载导航终端设备,以三星公司的S3C6410 为硬件平台,采用了谷歌公司的
Android 操作系统。
为了满足用户日益增长的网络需求,该产品实现了 Wi-Fi 等移动互联网接入功能。
根据
Android 系统的层次结构,Wi-Fi 实现工作被划分为设备驱动层,中间层和应用层三个部分。
设备驱动层,
Android 系统基于 Linux 内核,使用 Linux 的设备驱动。
该部分的 Wi-Fi 驱动可以进一步细分为两层,分别为 I/O 通信层和 Wi-Fi 功能层。
Wi-Fi模块使用 SPI 总线与 CPU 通信,因此 I/O 通信层相当于 SPI 总线驱动。
Wi-Fi 功能层驱动则由硬件生产商提供。
中间层起到连接驱动层和应用层的作用,包括
Android 系统的硬件抽象层(HAL)接口,Wi-Fi 连接程序等,它们分别以动态链接库和守护进程的形式为系统提供支持,此外还添加了启动脚本以正常启动 Wi-Fi 服务。
应用层包括了大部分的系统服务和全部的用户界面,它负责 Wi-Fi 模块状态转换的控制以及与用户的交互。
该层的电源管理,IP 设置等功能将被改进,以进一步提升用户体验。
关键词: 移动互联网设备 无线保真 设备驱动 I 华 中 科 技 大 学 硕 士 学 位 论 文 Abstract In recent years with the rapid development of the Internet the network hasentered the household production and life and become an indispensable source ofinformation. People are not satisfied with sitting at a computer desk browsing the webbut to get online anytime anywhere they want to access to information. In this contextMobile Internet Devices MID become the new main battlefield of competition ofmajor Internet companies. Routon Electronic Co. Ltd. Wuhan launched P760 car navigation terminaldevice is based on Samsung S3C6410 processor using Googles
Android operatingsystem. In order to meet growing customer demand for Network the productimplemented Wi-Fi and other mobile Internet access. According to
Android systemhierarchy Wi-Fi implementation work is divided into three parts the device driverlayer middle layer and application layer. Device driver layer.
Android system is based on Linux kernel thus it uses Linuxdevice drivers. Wi-Fi driver can be further subdivided into two layers namely I / Ocommunication layer and the Wi-Fi functionality layer. Wi-Fi module uses the SPIbus so I / O communication layer is equivalent to SPI bus driver. The driver of Wi-Fifunctionality layer is provided by hardware manufacturer Middle layer connects the device driver layer and the application layer. It includesAndroid hardware abstraction layer HAL interface and Wi-Fi supplicant programwhich were provided in the form of a dynamic link library and a daemon programrespectively. In addition the startup script must be modified to start the Wi-Fi service. Application layer including most of the system services and all of the userinterface is responsible for controlling the state transitions of Wi-Fi module andinteraction with the user. The power management IP settings and other functions willbe improved to further enhance the user experience.Keywords: Mobile Internet Device Wi-Fi Device Driver II 独创性声明 本人声明所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到,本声明的法律结果由本人承担。
学位
论文作者签名: 日期: 年 月 日 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权华中科技大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
保密□ ,在_____年解密后适用本授权书。
本
论文属于 不保密□。
(请在以上方框内打“√”)学位
论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 华 中 科 技 大 学 硕 士 学 位 论 文 1 绪 论1.1 课题背景 近年来,信息技术飞速发展,国际互联网迅速走入千家万户。
人们已经开始不满足于传统的坐在电脑前上网的方式,而是希望随时随地都能访问互联网1,获取最新信息,于是,移动互联网开始崛起,移动互联网终端也呈迅速发展的趋势2。
由于这个原因,各大厂商纷纷推出自己的智能手机操作系统,希望能在移动互联网终端领域占领先机。
现在市场上常见的智能手机操作系统主要包括 Windows CESymbian iOS RIM 以及各种 Linux3,作为互联网领域巨头的谷歌也推出了自己的手机操作系统
Android4。
Android 与其它智能系统最大不同之处在于它是一个开源而且免费的系统,任何人和组织都可以无偿将其用于自己的设备,于是包括 HTC,摩托罗拉,索尼爱立信,LG,三星等在内的手机厂商纷纷推出自己的
Android 手机,使得
Android 手机的市场份额迅速上升。
2009 年第三季度到 2010 年第三季度, 从 仅仅一年时间,
Android 手机在美国市场的占用率已经从 5以下上升至 25左右。
在移动互联网领域,网络接入方式也呈现出迅速发展的趋势5 6。
过去的 GPRS,EDGE 等 2G 的联网方式已经完全无法满足人们的需要,于是 3G,Wi-Fi 等高速的接入方式开始普及。
Wi-Fi(Wireless Fidelity,无线保真)技术是一种近距离无线传输技术7,与目前的 3G 相比,它速度更快,价格更便宜,连接更稳定8 9,因此受到了厂商和用户的青睐。
目前,笔记本和智能手机一般都会配备 Wi-Fi 硬件。
本课题基于武汉精伦电子股份有限公司的 P7 项目。
该项目以三星公司的S3C6410 作为硬件平台,移植了完整的
Android 系统,但是部分硬件还不能正常工作。
本
论文的目的就是研究
Android 系统 Wi-Fi 模块的工作机制,并且完成 Wi-Fi 的移植工作,从而实现系统与硬件的完美结合。
1.2 国内外概况1.2.1 Wi-Fi 概况 1997 年 美国电子与电气工程师工程师协会IEEE为无线局域网制定了第一个 1 华 中 科 技 大 学 硕 士 学 位 论 文版本标准——IEEE 802.1110,该标准定义了媒体存取控制(MAC)层和物理层11,它使用了 2.4GHz 频段,数据传输速率设计为 2Mbps,数据传输可以通过 Ad-hoc 方式进行,也可以通过 Infrastructure 方式进行。
然而,该标准由于速度慢以及价格昂贵等原因,并没有得到广泛应用。
1999 年,IEEE 为 802.11 物理层添加了两个补充标准,802.11a12和 802.11b13。
前者改为使用 5GHz 频段,并将数据传输速率大幅提高到了 54Mbps。
由于 5GHz 频段相对于 2.4GHz 频段应用更少,因此可以减少冲突概率,但是高频率也使得无线传输几乎只能在直线范围内进行,并且有效距离也大打折扣。
而 802.11b 仍然使用2.4GHz 频段,传输速率最高可达 11Mbps,而且不存在 802.11a 高频带来的副作用。
2003 年,802.11g 标准通过,该标准与 802.11b 完全兼容,仍然使用 2.4GHz 频段,并将数据传输速度提高到与 802.11a 相同的 54Mbps。
2009 年,IEEE 正式批准 802.11n 标准,它引入了多重输入输出MIMO技术14,又一次将传输速率大幅提升,达到了 300Mbps,同时也提升了传输距离。
为了保证各版本 802.11 协议之间的互通性,Wi-Fi 联盟于 1999 年成立15,Wi-Fi是指无线保真Wireless Fidelity技术,它基于 802.11 标准,同时保证了其认证产品的无线互通性。
Wi-Fi 成立之初使用 802.11a 和 802.11b 协议,后来又添加了 802.11g 和802.11n。
目前,使用最广泛的 Wi-Fi 标准为 802.11b。
然而,在安全性方面,Wi-Fi 却面临着严峻的考验16。
在 802.11 标准中,IEEE采用了 WEPWired Equivalent Privacy作为其加密方式,此加密方式拥有很多缺陷,非常容易被攻破17-19,国内市场上常见的“蹭网卡”即是利用 WEP 漏洞强行连接他人 AP 的工具。
因此,它在 2003 年被 WPAWi-Fi Protected Access所取代20。
2004年,IEEE 完善了 WPA,提出了完整的 WPA2 加密方式,进一步提高了安全性。
问题在于,目前大多数的 AP 仍然使用 WEP 加密方式或者甚至不加密21,留下了许多安全隐患。
虽然 Wi-Fi 仍然有着种种不足,但是作为一种速度快,范围较广,价格低廉的移动互联网接入方式,它正在迅速占领无线互联网市场。
我们有理由相信,Wi-Fi 将成为未来一种主要的无线互联网接入方式。
1.2.2 Wi-Fi 的各种实现 目前,几乎所有的移动设备都提供了对 Wi-Fi 的支持,因此 Wi-Fi 的实现也是各式各样,常见的移动设备操作系统包括 iOS RIM Windows CE Symbian
Android 等, 2 华 中 科 技 大 学 硕 士 学 位 论 文其中 iOS 和 RIM 没有开源,也不提供其他厂商使用,因此我们无法深入了解其 Wi-Fi模块的架构。
下面我们将对另外三种系统的 Wi-Fi 实现进行分析。
1. Windows CE Windows CE 是微软公司专门为移动设备开发的嵌入式操作系统22,它的内核由微软公司完全重新开发,与桌面版 Windows 没有任何关系。
Windows CE 将 Wi-Fi 划分为应用层,操作系统层和 OEM 硬件适配层23。
应用层既包括向用户提供的编程 API 比如 Windows Socket,也包括 Wi-Fi 设置界面,状态显示等,它是唯一与用户交互的部分。
而真正的 Wi-Fi 管理则放在操作系统层,这一层包括了 Windows CE 内核,TCP/IP 协议栈,Wi-Fi 服务管理等。
所有对 Wi-Fi 的状态跟踪以及操作命令都在这一层发出。
最后是 OEM 硬件适配层,该层是微软为了使得 Windows CE 与硬件驱动无关而抽象出来的一组函数接口24。
在移植过程中,用户必须实现这一层中的所有接口,才能使驱动正常工作。
而驱动实际上又可以分为 NDIS25Network Driver Interface Specification接口层和 Miniport 驱动层,NDIS 层实际上也是一套接口,无线和有线网络接口卡NIC驱动都必须实现这套标准的接口才能被 Windows CE 的内核所调用,而 Miniport 驱动层才是真正的驱动代码,完成硬件操作的工作。
2. Symbian Symbian(塞班)操作系统是塞班公司研发的手机操作系统,该公司后来被诺基亚收购,后者建立了塞班基金会,并将塞班开源。
目前,塞班是全球智能手机市场上中使用最为广泛的操作系统。
塞班系统采用了微内核结构26,这个内核只实现了一些必须的最小功能,例如进程调度和内存管理等,而网络等都不包括在内核中。
在塞班系统中,只有网络驱动属于内核部分,而 Wi-Fi 服务则是属于 Connectivity 服务的一部分,运行于系统服务层,它负责控制 Wi-Fi 的状态,通过调用 Wi-Fi 驱动程序完成扫描,认证,连接等工作。
应用层则负责为应用程序提供 API27,而 Wi-Fi 设置等用户界面则位于顶端的UI 框架层。
可以看到,Symbian 系统中将 Wi-Fi 除了驱动之外的部分放在用户态实现,这种松耦合的思想可以使软件层次更为清晰,但是却不可避免的引入效率低下的问题,对于专用的移动互联网设备,这是无法接受的。
3.
Android 目前市场上已经出现了很多
Android 设备,这些设备一般都提供了对 Wi-Fi 的支持,它们对 Wi-Fi 也都使用了标准的实现。
3 华 中 科 技 大 学 硕 士 学 位 论 文
Android 系统基于 Linux 内核,因此 Wi-Fi 的驱动也就是 Linux 下的 Wi-Fi 设备驱动,在内核接口上,它与普通的有线网卡驱动区别不大,而将许多的无线设备特有操作放在 ioctl 系统调用中完成28。
在驱动之上是 Wi-Fi 连接程序,它作为守护进程运行,负责直接操作 Wi-Fi 驱动。
对 Wi-Fi 连接程序的操作是应用层通过硬件抽象层接口完成的,硬件抽象层接口将各种 Wi-Fi 驱动的不同点屏蔽,抽象出一套统一的接口以供 Wi-Fi 服务所使用,而应用层框架则是 Wi-Fi 服务的所在之处。
该服务负责维护 Wi-Fi 的状态,并对 Wi-Fi 发出各种操作命令。
应用框架层之上就是 UI 层,用户通过 UI 操作 Wi-Fi 服务,从而实现对 Wi-Fi 硬件的控制。
这种标准实现虽然能够提供完整的 Wi-Fi 功能,但是尚有改进之处。
例如 Wi-Fi电源管理模块不够完善,IP 设置比较繁琐等等,因此,我们将抛弃
Android 系统的部分标准实现,而对其进行重新设计,以实现我们自己的 Wi-Fi 模块。
1.3 课题主要研究工作 通过对以上几种 Wi-Fi 实现的分析,我们首先放弃了 Symbian,它对于网络的支持并不好,而且日益衰落,并不适合用于新产品。
其次是 Windows CE,它的用户群并不广,而且硬件要求很高,操作比较繁琐。
最后来看
Android 系统,它拥有出色的网络支持,友好的 UI 设计以及大量的应用软件,发展势头也非常迅猛,更重要的是它是完全开源且免费的,因此我们选择它作为我们的操作系统。
本课题的工作就是在
Android 系统上完成 Wi-Fi 的移植,具体来说包括以下几个方面: 1. Linux 内核,Wi-Fi 驱动的移植。
硬件提供商提供了 Wi-Fi 硬件的驱动,但是连接 Wi-Fi 模块的 SPI 总线驱动需要我们自己完成。
2. 中间层,硬件抽象接口等的实现。
中间层是连接 Linux 内核和
Android 应用框架的通道。
为了实现系统的硬件无关性,
Android 开发者对于每一种硬件都设计了一套硬件抽象层接口,它是对硬件功能的抽象,我们必须实现这套接口才能使得
Android 系统与硬件协同工作。
3. 应用层,用户体验及功能的改进。
在使用过程中,我们发现了
Android 系统Wi-Fi 模块的一些不足之处,比如静态 IP 设置,电源管理等。
我们将针对这些不足之处进行改进,以提高 Wi-Fi 的用户体验,同时也能更好的减少设备电量消耗。
通过以上几个方面的工作,我们将会实现
Android 平台 Wi-Fi 模块的移植,使其能够正常实现 Wi-Fi 的所有功能,其次改进 Wi-Fi 的使用体验以及功能,让用户能够更加方便快捷的使用 Wi-Fi。
4 华 中 科 技 大 学 硕 士 学 位 论 文 2 系统整体结构设计 在一个成熟的操作系统中,一个硬件的功能要完整发挥,往往需要有从底层的硬件驱动到顶层用户界面一整套软件栈,通常情况下包括设备驱动,系统服务,用户界面等层次。
本章首先对
Android 系统的整体架构进行分析,然后具体到 Wi-Fi 子系统的分析,最后将需求按层次划分模块并将我们的工作做一个概要的介绍。
2.1
Android 系统概述
Android 是一个基于 Linux 的移动设备操作系统。
它在 Linux 内核之上建立了一套完整的软件栈,包括中间件和一些核心的应用程序。
Android 中,应用程序完全使用 Java 开发,这样可以大大降低软件开发的难度,缩短开发周期。
但是 Java 程序毕竟要运行在虚拟机中,不能直接操作真实的硬件设备,另外它的运行效率也一直是一个问题。
因此,
Android 设计者把那些 Java 不能完成的操作用 c 或者 c完成,再通过 JNI 供 Java 程序调用,这样就解决了上述难题。
Android 系统整体架构如图 2.1所示。
应用程序层Applications 桌面程序,拨号程序,相册程序,时钟程序等等 应用框架层Application Framework 连接管理器,窗口管理器,位置管理器,图形系统等等 系统库Libraries Dalvik 虚拟机 c 标准库,OpenGL ES 库,SQLite 库,网络工具库等等 Linux 内核 设备驱动,Binder 驱动,电源管理,进程调度等等 图 2.1
Android 系统整体架构 其中应用程序层和应用框架层可以合称为应用层,它们均使用 Java 编写,运行于 Dalvik 虚拟机之中。
因此,我们在后面将工作划分为三个层次:应用层,中间层和设备驱动层。
2.2 Wi-Fi 子系统需求分析 本课题的目标是在
Android 平台上实现完整稳定的 Wi-Fi 功能,并且为用户提供 5 华 中 科 技 大 学 硕 士 学 位 论 文友好的界面。
为了实现这个目的,我们首先必须了解 Wi-Fi 子系统的整体架构。
如图2.2 所示。
应用程序 无线设置,Wi-Fi 设置
Android API 应用框架 连接管理器,Wi-Fi 服务 应用层 JNI 本地库 libwifi.so libwpa_client.so 中间层 系统调用 Wi-Fi 硬件抽象层 系统调用 Wi-Fi 设备驱动 Linux 内核 SPI 总线驱动 Wi-Fi 硬件 图 2.2 Wi-Fi 子系统整体架构 我们根据
Android 系统的层次结构将工作从下到上划分为以下几个部分: 1. 设备驱动的编写。
任何硬件要正常工作都必须有配套的驱动程序,它为操作系统和上层应用程序操作硬件提供基本的接口。
我们使用的 Wi-Fi 设备已经由制造商提供了驱动的源码,我们所需要做的是完成芯片与 CPU 之间的接口,即 SPI 驱动。
2. 硬件抽象层的实现。
硬件抽象层是
Android 开发者为了使系统与具体硬件无关而将硬件的功能抽象出来设计的一组接口,可以认为它的每一个函数是
Android系统对硬件的一个最小操作。
它其实是中间层的一部分。
为了让我们的 Wi-Fi 硬件驱动与
Android 系统正常结合,必须实现硬件抽象层。
3. 系统库。
硬件抽象层提供了最基础的硬件操作接口,系统库利用这些接口实现一些较为高级和复杂的硬件功能。
它也是中间层的一部分,在这一层我们需要选择合适的 Wi-Fi 连接程序,并且完成系统端与连接程序交互的代码,作为本地库提供 6 华 中 科 技 大 学 硕 士 学 位 论 文给应用层使用。
4. 应用层。
Wi-Fi 的服务进程运行于这一层,它利用系统库的接口来管理硬件,为应用程序提供一套完整的硬件服务,应用程序要使用硬件的功能都必须通过应用框架层提供的 API 来实现。
同时 Wi-Fi 的功能设置也是在这一层,为了提供最好的用户体验,我们需要重新设计 Wi-Fi 的应用层功能,并且修改应用框架的代码以配合这些改进。
2.3 硬件平台简介 本课题基于精伦电子股份有限公司 P7 车载导航终端产品。
该产品采用
Android操作系统,要求有较好的便携性,较低的功耗同时还必须有足够的性能流畅运行
Android 系统,为了实现以上目标,我们选用了 ARM 架构的处理器 S3C641.
上一篇:
基于Android平台的无线点菜系统
下一篇:
猪疥癣病的防治