ImageVerifierCode 换一换
格式:DOC , 页数:81 ,大小:3.50MB ,
资源ID:3611768      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3611768.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于安卓控制的智能无线开关-毕业设计论文.doc)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于安卓控制的智能无线开关-毕业设计论文.doc

1、仲恺农业工程学院毕 业 设 计基于安卓控制的智能无线开关姓 名 黄桂文院(系) 自动化学院专业班级 自动化 101 班学 号 201010344132指导教师 罗松江职 称 讲师论文答辩日期 2014 年 5 月 25 日仲恺农业工程学院教务处I学生毕业论文(设计)承诺书本人郑重承诺:所呈交的毕业论文(设计)是在指导老师的指导下进行的研究工作及取得的研究成果,论文中参考他人的文献资料均已明确标注出,论文中的结论和结果为本人独立完成,没有抄袭、剽窃他人研究成果。毕业论文作者:签字日期: II摘 要本课题研究的是基于安卓手机控制的智能无线开关设计。基于 android手机平台和ARM核心板,借助于

2、蓝牙技术,设计和实现了一种无线控制开关系统。实现通过手机端无线控制 ARM开发板端的 LED灯的亮灭功能。Android手机作为客户端发送蓝牙信号,蓝牙模块 HC-06作为服务器端接收信号,并向服务器端的控制器 ARM核心板传递信号。双方通过串口进行通信。ARM 控制器通过判断是否接收到信号从而控制核心板上的 LED灯的亮灭。本文详细介绍了基于安卓智能手机的无线开关控制系统的设计以及实现。从课题的背景开始讨论,接着到开发平台的搭建,再到系统整体方案的设计,最后对整个设计进行总结,分析出本系统的优势以及出现的不足。关键词:android 蓝牙 无线通信 ARMIII目 录1 绪论 .1前 言 .

3、11.1 近距离无线通信技术概述 .21.3 课题的来源背景 .51.4国内外研究状况 .61.5系统总体方案 .61.5.1 设计要求 .61.5.2 硬件的选取: .61.5.3软件的设计: .72 开发环境的搭建 .82.1 Linux开发环境搭建 .82.1.1 关于 Linux系统 .82.1.2 关于 GNU .82.1.3 利用 Vmware虚拟机搭建 Linux开发环境 82.2 安卓应用开发环境搭建 102.2.1 关于 Eclipse软件 102.2.2 android SDK开发环境搭建 102.2.3 android NDK 开发环境搭建 113系统硬件的选取 133.

4、1 关于 ARM处理器 .133.2 GEC210开发板简介 .153.3 蓝牙 HC-06模块的简介 .173.3.1 HC-06模块特征 173.3.2 AT 指令集 (对蓝牙模块进行测试) 194 系统软件的设计 224.1 相关软件编程技术 224.1.1 嵌入式 C编程 .224.2 系统底层软件的设计 22IV4.2.1 LED灯驱动程序设计 224.2.2 LED灯测试程序设计 264.2.3 UART串口配置 .284.3 系统上层软件的设计 304.3.1 android应用程序工程分析 304.3.2 智能手机端的应用程序设计 314.3.3 GEC210开发板端的应用程序

5、设计 .375 系统整体的调试 425.1 系统软硬件的测试 425.2 结论与总结 45参 考 文 献 .46Abstract47附录: 48附录一:led_drv.c .48附录二:led_test.c 50附录三:AndroidApp 工程源文件: .523.1 主界面源代码 MainActivity.java 523.2 控制界面源代码 SearchBlueTooth.java .553.3 “关闭 APP”类源代码 SysApplication.java.603.5 主界面布局文件:activity_main.xml .613.6 控制界面布局文件 searchbluetooth.x

6、ml 63附录四:ArmApp 工程源代码: 634.1 主界面源文件 MainActivity.java 634.2 主界面布局文件 activity_main.xml 654.3 Jni源代码文件: 654.3.1 C库源文件 ArmApp.cpp.654.3.2 头文件 com_jhhu-armapp_MainActivity.h 694.3.3 Android.mk704.3.4 Application.mk70致 谢 71V仲恺农业工程学院毕业论文(设计)成绩评定表 7211 绪论前 言随着移动互联网平台的发展,搭载着免费、开源的 android操作系统的 android智能手机在移

7、动平台以其市场占有率第一的优势而大放异彩。然而在现实生活中存在着许多这样的应用情况,系统需要实时传输小量的、近距离的突发信号,这就需要近距离无线通信技术。因此,基于安卓智能手机控制的无线开关系统亦是一个值得关注的领域。安卓智能手机随处可见,开关更是司空见惯,无线开关也是不再新鲜,然而基于安卓智能手机控制的无线开关确实一个较为新鲜的事物。本系统是一个基于安卓手机的智能无线开关系统,其涉及的硬件设备由处理单元(基于 contex-A8内核的 S5PV210处理器) 、发射模块(三星智能手机) 、接收模块(蓝牙接收器) 、ARM 核心板以及其外接电路构成。软件系统则需要用 JAVA语言写两个安卓 A

8、PP,一个是安装到手机端作为蓝牙信号发送的发送端,另一个则是安装到 ARM核心板上作为蓝牙信号的接收端。除此之外,还需要用 C语言写关于 ARM板上的 LED灯的硬件驱动程序以及 uart串口的初始化程序。当发射模块发出信号时,接收模块会接收到无线信号,ARM 处理器就会作出分析使对应的 LED灯执行相应的亮灭操作,以 LED灯的亮灭来模拟开关的状态。此设计需要用到 C语言,JAVA 语言,数字电路,模拟电路,嵌入式系统设计以及安卓编程等相关知识。21.1 近距离无线通信技术概述目前使用较广泛的近距无线通信技术是蓝牙(Bluetooth),无线局域网 802.11(Wi-Fi)和红外数据传输(

9、IrDA)。同时还有一些具有发展潜力的近距无线技术标准,它们分别是:ZigBee、超宽频(Ultra WideBand)、短距通信(NFC)、WiMedia、GPS、DECT、无线 1394和专用无线系统等。它们都有其立足的特点,或基于传输速度、距离、耗电量的特殊要求;或着眼于功能的扩充性;或符合某些单一应用的特别要求;或建立竞争技术的差异化等。但是没有一种技术可以完美到足以满足所有的需求。蓝牙技术有其性价比高,普遍性(一般的智能手机都有搭载蓝牙模块)的特点,较为适合用作短距离无线通信,因此此处主要对蓝牙技术进行介绍。蓝牙技术(bluetooth)技术是近几年出现的,广受业界关注的近距无线连接

10、技术。它是一种无线数据与语音通信的开放性全球规范,它以低成本的短距离无线连接为基础,可为固定的或移动的终端设备提供廉价的接入服务。蓝牙技术是一种无线数据与语音通信的开放性全球规范,其实质内容是为固定设备或移动设备之间的通信环境建立通用的近距无线接口,将通信技术与计算机技术进一步结合起来,使各种设备在没有电线或电缆相互连接的情况下,能在近距离范围内实现相互通信或操作。其传输频段为全球公众通用的 2.4GHzISM频段,提供 1Mbps的传输速率和 10m的传输距离。蓝牙技术诞生于1994年,Ericsson 当时决定开发一种低功耗、低成本的无线接口,以建立手机及其附件间的通信。该技术还陆续获得

11、PC行业业界巨头的支持。1998 年,蓝牙技术协议由 Ericsson、IBM、Intel、NOKIA、Toshiba 等 5家公司达成一致。蓝牙协议的标准版本为802.15.1,由蓝牙小组(SIG)负责开发。802.15.1 的最初标准基于蓝牙 1.1实现,后者已构建到现行很多蓝牙设备中。新版 802.15.1a基本等同于蓝牙 1.2标准,具备一定的 QoS 特性,并完整保持后向兼容性。蓝牙行业是个突飞猛进的行业,2004 年到 2011年,蓝牙设备的综合年增长率为 40。07 年蓝牙设备的出货量达 5 亿件,市场份额增加了 71。预计到 2009,出货量将达到亿件。中国是世界最大的蓝牙生产

12、研发基地,全球 80%的蓝牙企业在中国,中国 80%的蓝牙企业在深圳。国内最大的蓝牙方案公司深圳市吉联通数码科技有限公司、国内最大的蓝牙电池邦凯电子有限公司、全球著名的蓝牙键盘制造商中易腾达,国内最著名的蓝牙车载创美佳等公司都深圳,但蓝牙技术遭遇了最大的障碍是过于昂贵,这就使得许多用户不愿意花大价钱来购买这种无线设备。因此,首要解决的就是蓝牙附属地位的问题和蓝牙芯片国产化的问题。随着蓝牙芯片国产化,中国确定自己的技术标准,很快就可以解决目前中国蓝牙企业“山寨化”的问题,3让所有中国蓝牙企业生产合乎中国技术标准的产品。二是进入了蓝牙产业链的上游,形成完整的产业链条。第三,可以借此解决目前蓝牙使用

13、上由于“配对”复杂,而妨碍用户使用,造成市场推广的障碍。以上优势的形成,必将改变中国蓝牙行业的现有局面,并在深圳形成以高新技术为龙头的一体化蓝牙产业基地,更好的为全中国,全世界服务。业内专家认为,蓝牙的市场前景取决于蓝牙价格和基于蓝牙的应用是否能达到一定的规模。有了蓝牙,我们可以不再为数字家庭的布线而烦恼,移动电话、计算机、数码相机、摄像机、打印机、传真机和掌上电脑等能随心所欲无线连通。有了蓝牙,这些设备即会实现自动同步。即使用户的个人电脑放在手提箱内,用户也可以通过电话收电子邮件,通过移动电话屏幕阅读邮件标题,而不会有到处找连接线、开机、关机等待等等诸如此类的一系列烦恼。蓝牙技术拥有广阔的潜

14、力市场。1.2 android 操作系统简介Android操作系统是一款由 Google公司于 2007年 11月 5日宣布的基于 Linux平台的开源手机操作系统。2008 年 9月 22日,美国运营商 T-Mobile USA在纽约正式发布第一款 Google手机T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用 Android操作系统的手机。至最新的数据显示,搭载着安卓系统的智能手机在世界市场的占有率已达到 78.9%,远远抛开排名第二的 ios系统的 15.5%。成为目前市场占有率最高,发展最为快速的一种手机操作系统。Android系统是基于 Linux和 Jav

15、a技术,它在底层采用 Linux内核和本地库,在上层提供 Java支持框架和开发接口。它借助于 Linux强 大的稳定性、开放性和可移植性,Java语言开发的广泛性、简单性和可移植性,一经推出就受动广泛关注和欢迎,在嵌入式开发中产生比较深远的影响。Android的系统架构采用了分层架构的思想,如下图所示。从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和 Android运行时和 Linux内核。4图 1 Android 系统架构图每层功能简要介绍如下:一 应用程序层该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用 Java语

16、言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。二 应用程序框架层该层是 Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、 电话管理器、资源管理器、位置管理器、通知管理器和 XMPP服务十个部分。在 Android平台上,开发人员可以完全访问核心应用程序所使用的 API框 架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本 身的各种应用程序组件。5三 系统库和 Android运行时

17、系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL 和 libc。 Android 运行时包括核心库和 Dalvik虚拟机,前者既兼容了大多数 Java语言所需要调用的功能函数,又包括了 Android的核心库,比如 android.os、、android.media 等等。后者是一种基于寄存器的 java虚拟机,Dalvik 虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。四 Linux 内核Android核心系统服务依赖于 Linux2.6内核,如安全性、内存

18、管理、进程管理、网络协议栈和驱动模型。Linux 内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi 驱动、Audio 驱动、flash 内存驱动、Binder(IPC)驱动、电源管理等。由此可见,Android 的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作。1.3 课题的来源背景从 2007年 11月 5日谷歌公司正式向外界展示了这款名为 android的操作系统到如今(2014 年 5月),android 操作系统已从最开始的 1.0版本到如今的 4.4版本kitkat,系统性能达到质的飞跃,UI 界面更是在 2.X时代升级到 4.X时代的时候得

19、到质的改变,从而使得如今最新的 4.4版本是一个非常优秀的操作系统。在 ARM处理器方面,经历了经典的 ARM7、ARM9、ARM11 等系列,如今 Cortex系列更是成为了主流。而在 cortex系列中,其 cortex-A系列以其开放式操作系统的高性能处理器的特点性能更是远高于面向实时应用的卓越性能的 Cortex-R 系列 和面向具有确定性的微控制器应用的 Cortex-M 系列。Cortex-A 系列较为高端的系列亦分为A8、A9、A15 乃至字长为 64 位的 A50 系列。在如今的智能手机领域,A8 、A9 等系列被广泛应用。在短距离无线通信方面,蓝牙已经是一种非常普遍,性价比高

20、的短距离无线通信工具。只要是智能手机,都会搭载蓝牙模块,这也就意味着,本课题的短距离无线通信工具材料来源异常丰富,可谓随手可得。61.4 国内外研究状况在智能家居系统研发方面,亦即包含无线开关控制,美国及一些欧洲国家一直处于领先地位。近年来,以美国微软公司及摩托罗拉公司等为首的一批国外知名企业,先后挤身于智能家居的研发中。例如:微软公司开发的“梦幻之家”、摩托罗拉公司开发的“居所之门”、IBM 公司开发的“家庭主任”等均已日趋成稳得技术强占家居市场。此外,日韩新等国的龙头企业纷纷致力于家居智能化的开发,对家居市场更是跃跃欲试。20世纪 90年代后期,我国的智能小区日益兴起。众所周知,我国的智能

21、化住宅建设最早起于上海、广州和深圳等沿海城市,并逐渐向内陆发展。在 97香港回归之际,在建设部“97 跨世纪住宅小区案竞赛活动”中,上海中皇广场被建设部科技委员会列为全国首家“智能住宅示范工程”,揭开了全国智能小区发展的序幕。我国的智能家居相对于国外起步较晚, 尚未形成一定的国家标准。目前,主要采用国外的一些技术产品,但也有一些企业推出了自己的产品,主要有:e 家庭(海尔)、e-home数字家园(清华同方)等。国内各大软、硬件机构正在积极的研制、开发更为符合市场的智能化家居设备,以解决当前智能化产品实用性差、使用复杂及产品价格昂贵等缺点,而技术创新性也逐步向国际先进水平靠拢,这样的未来值得期待

22、。由于安卓操作系统是近几年才流行起来的,基于安卓智能手机控制的领域可谓相对以前的常规无线控制较为新鲜。1.5 系统总体方案1.5.1 设计要求本次设计要求设计出一个基于安卓智能手机控制的智能无线开关系统。通过实现从手机端发送蓝牙信号无线控制 ARM核心板上的 LED灯的亮灭来达到无线控制开关的功能。本次设计要求懂得一定的 C语言以及 JAVA语言知识,对嵌入式系统的驱动程序编程以及安卓应用程序编程有一定的了解,以及熟悉数、模电等电路知识。1.5.2 硬件的 选取:1)安卓智能手机:对此不作出太大要求,只要有足够的 ROM 空间能够安装蓝牙控制的 APP 即可。2)蓝牙接收模块:本模块分主机和从

23、机,主机能和从机配对通信,从机与从机之间或主机与主机之间不能通信,从机能和电脑、手机等的蓝牙配对通信,购买时默认为7从机。我们在做无线开关控制时,蓝牙模块主要是实现接收从手机端发送过来的指令,所以我们需要的是从机模块。 。3)ARM 开发板(附带 LED 灯):此处之所以不选择我们熟悉的传统的 51 系列 8 位单片机而选择 32 位的基于 cotex-A8 内核的 S5PV210 处理器,是为了增加课题的新颖性以及挑战 32 位的 ARM 的驱动程序编程,该开发板搭载的是 Android2.3 系统。1.5.3 软件的设计 :1)Android 的应用程序设计:需熟悉 JAVA 语言以及 a

24、ndroid 应用程序设计。2)UART 串口初始化程序:鉴于我们的蓝牙模块是通过串口与 ARM 核心板进行通信,故需要我们对 arm 板上的 uart 口进行一系列的初始化。3)LED 灯的驱动程序设计:由于 arm 开发板上的 android 系统是基于 linux 内核的,故此处需要充分了解 linux 系统的驱动程序设计,从而才能熟练写出 LED 灯的驱动程序。图 2 整体结构方案图82 开发环境的搭建2.1 Linux 开发环境搭建2.1.1 关于 Linux 系统Linux操作系统诞生于 1991 年的 10 月 5 日(这是第一次正式向外公布的时间),其是一套免费使用和自由传播的

25、类 Unix操作系统,是一个基于 POSIX和 UNIX的多用户、多任务、支持多线程和多 CPU的操作系统。它能运行主要的 UNIX工具软件、应用程序和网络协议。它支持 32位和 64位硬件。Linux 继承了 Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux用途广泛,可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux 这个词本身只表示 Linux内核,但实际上人们已经习惯了用 Linux来形容整个基于 Linux内核,并且使用 GNU 工程各种工具和数据库的操作系统。Linux存在着许多

26、不同的 Linux版本,有我们熟悉的Ubuntu、RedHat、Debian、SUSE 等等,虽然各家公司的 Linux系统略有不同,但它们都使用了 Linux内核。在本次设计中我们选择市场上较为普遍的 Ubuntu系统。2.1.2 关于 GNUGNU计划,又称革奴计划,是由 Richard Stallman在 1983年 9月 27日公开发起的。它的目标是创建一套完全自由的操作系统。Richard Stallman最早是在 net.unix-wizards新闻组上公布该消息,并附带一份GNU 宣言等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证 GN

27、U软件可以自由地“使用、复制、修改和发布”,所有 GNU软件都有一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU 通用公共许可证(GNU General Public License,GPL)。即“反版权”(或称 Copyleft)概念。GNU计划最终并没有如 Richard Stallman所愿,创建出一套完全自由的操作系统,但是却创造出了 vi编辑器、gcc 编译器、gdb 调试器等一大堆自由软件。最终 GNU工程各种工具和数据库和我们熟悉的 Linux内核组建成我们熟悉的 Linux操作系统。本次设计中就是使用 vi编辑器、gcc 编译器、gdb 调试器等工具在

28、 Linux平台下编辑 LED灯的9驱动程序和 UART的初始化程序。2.1.3 利用 Vmware 虚拟机搭建 Linux 开发环境1)安装虚拟机直接双击打开 VMware-workstation-9.0.1.exe,输入相应序列号即可成功安装虚拟机。2)安装 Ubuntu 系统根据百度经验逐步进行安装:http:/ X86环境下的 ubuntu系统编译出能在 ARM环境下运行的可执行程序,所以我们必须要通过交叉编译。则需要安装交叉编译器(cross compiler)。此处我们选择交叉编译工具:arm-linux- 4.2.2搭建步骤1) 在/usr/local/下建立交叉编译器的安装目录

29、 arm:sudo mkdir /usr/local/arm2)将下载的交叉编译器包解压到/usr/local/arm 目录下:sudo tar jxvf cross-4.2.2-eabi.tar.bz2 -C /usr/local/arm/ 3)解压成功后,修改 PATH环境变量:sudo vim /etc/profile在文件为加入交叉编译器 arm-linux-所在的路径:export PATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin然后退出 vim。4) 更新一下配置文件/etc/profile:source /etc/profile5)工具安装

30、成功:以上工具只是用来编译驱动程序,由于我们的 arm开发板跑的是 android系统,若要编译出能在其上运行的可执行 C文件,普通的 arm-linux-gcc编译器并无此能力,此时则需要 android的 mk文件,也就是需要 android系统的源代码。具体下载过程见:10http:/ pc机通信,则需要在 windows下安装 SecureCRT 5.2。安装完毕后二者通过串口进行通信。2.2 安卓应用开发环境搭建2.2.1 关于 Eclipse 软件Eclipse 是一个开放源代码的、基于 Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境

31、。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java开发工具(Java Development Kit,JDK)。由于android应用程序是用 java语言编写的,所以我们的 android应用自然也是用 Eclipse工具编写。2.2.2 android SDK 开发环境搭建1)java JDK 安装进入 oracle官网 http:/ 下载最新 jdk-6u22-windows-i586.exe,双击开始安装 JDK,路径选择 c盘(也可以是其他路径),安装完设置 java环境变量。设置方法如下:我的电脑点右键属性高级进入环境变量设置(1) 设置 path变量在系统变量里找

32、到 path变量,选择编辑在变量值的最后追加;C: jdk1.6.0_22bin(2) 设置 classpath环境变量在系统环境变量那一栏中点新建变量名:classpath,变量值:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;(3) 设置 JAVA_HOME在系统环境变量那一栏中点新建变量名:JAVA_HOME变量值:C: jdk1.6.0_22检验 JAVA环境:打开 cmd命令行,输入 javac:如显示如下界面11图 3 检验 JAVA 环境则表示安装成功,否则则应仔细检查以上配置是否正确操作,至此 java环境安装完成。2)adt-b

33、undle-windows 安装进入 android官网:http:/ adt-bundle-windows.zip,此工具集合了 Eclipse软件、android SDK、ADT 等插件,下载后直接解压打开即可使用。至此,常规的 android SDK开发环境已成功搭建,也就是可以直接开发一般的android应用程序了。2.2.3 android NDK 开发环境搭建由于我们的接收端 ARM核心板上需要运行一个 android应用程序,用来读取 UART串12口的蓝牙模块发送来的信息,以及对 LED灯等硬件进行操作,但是我们用常规的 SDK开发出来的 android应用程序时用纯 java

34、语言写出来的。众所周知,我们的 java语言对uart串口、led 灯等硬件的操控无能为力,此时我们自然会想到以操作硬件闻名的 C语言了。此时也就是需要一种从 java语言里调用 C语言的机制,那就是 JNI了。因此,为了实现 java语言调用 C语言的功能,我们还得再搭建一个 android NDK开发的环境。进入 android官网:http:/ android-ndk-r9d-windows-x86.zip解压都任意目录,然后打开 Eclipse,点Window-Preferences-Android-NDK,设置 NDK路径,如下图所示:图 4 android NDK 开发环境搭建设置

35、完成点击 OK便完成 android NDK开发环境的搭建了。133 系统硬件的选取3.1 关于 ARM 处理器ARM处理器是由英国 ARM公司设计,由其众多合作伙伴生产的一系列的 RISC处理器的集合。它的发展由经典的 ARM7系列、ARM9 系列、ARM11 系列到现在流行的 Cortex-A系列、Cortex-R 系列和 Cortex-M 系列。ARM处理器的应用领域十分广阔:1 )工业控制领域:作为 32 的 RISC 架构,基于 ARM 核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展, ARM 微控制器的低功耗、高性价比,向传统的 8

36、 位 /16 位微控制器提出了挑战。 2 )无线通讯领域:目前已有超过 85% 的无线通讯设备采用了 ARM 技术, ARM 以其高性能和低成本,在该领域的地位日益巩固。 3 )消费类电子产品: ARM 技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 4)成像和安全产品:现在流行的数码相机和打印机中绝大部分采用 ARM 技术。手机中的 32 位 SIM 智能卡也采用了 ARM 技术。 除此以外, ARM 微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用 ARM处理器应用如此广泛,是因为其拥有如下一系列的特点:1)体积小、低功耗、低成本、高性能;2)支持 T

37、humb(16 位)/ARM(32 位)双指令集,能很好的兼容 8位/16 位器件;3)大量使用寄存器,指令执行速度更快;4)大多数数据操作都在寄存器中完成;5)寻址方式灵活简单,执行效率高;6)指令长度固定;7)众多合作伙伴。14本次设计中,在信号接收端我们使用三星公司设计的 s5pv210处理器(又名“蜂鸟” ),其采用了 Cortex-A8内核,ARM V7 指令集,主频可达 1GHZ,64/32 位内部总线结构,32/32KB的数据/指令一级缓存,512KB 的二级缓存,可以实现 2000DMIPS(每秒运算 2亿条指令集)的高性能运算能力。图 5 S5PV210153.2 GEC21

38、0 开发板简介GEC210是一款高性能的 CortexA8开发板,其采用三星 S5PV210作为主处理器,运行主频可高 1GHz。S5PV210 内部集成了 PowerVRSGX540高性能图形引擎,支持 3D图形流畅运行,并可流畅播放 1080P大尺寸视频。GEC210板载 512MDDR2内存,可流畅运行 Android,Linux和 WinCE6等高级操作系统。它非常适合开发高端物联网终端,广告多媒体终端,智能家居,高端监控系统,游戏机控制板等设备。本次设计其运行的是 Android2.3操作系统。图 6 GEC210 开发板硬件配置CPU处理器SamsungS5PV210,基于 Cor

39、texTM-A8,运行主频 1GHz内置 PowerVRSGX540高性能图形引擎,支持流畅的 2D/3D图形加速最高可支持 1080p30fps硬件解码视频流畅播放,格式可为 MPEG4,H.263,H.264等最高可支持 1080p30fps硬件编码(Mpeg-2/VC1)视频输出16DDR2RAM内存Size:512MB32bit数据总线,单通道运行频率:200MHzFLASH存储SLCNANDFlash:256MB(标配)/1GB软件支持gecboot-210Android2.3+Linux-2.6.35Android4.0(暂提供预览版映像文件)Linux-2.6.35+Qtopia

40、-2.2.0/Qt-4.4.3/Qt-4.7WindowsCE6主要功能特性:1. 集成 USB 2.0 Hub: 扩展出 2个 USB Host口2. 串口: 4 路,其中 1路已经转换为 RS232,并通过 DB9座引出(COM0),同时通过 4pin的排针将其他 3路引出, 3. 中断式按键: 8 个,分别定义不同的功能 4. RJ45网口: 网卡采用 DM9000AEP,10/100M 自适应 5. 音频输入与输出: 采用 WM8960专业音频芯片,在板麦克风,内含 Class D功放,并支持 HDMI音频和视频同步输出 (1080P)6.VGA输出, 1600x1200 100HZ7

41、. USB Slave: 1路,符合 USB 2.0规范 8. 红外接收头:1 个 9. ADC输入:其中 AIN0连接了在板可掉电阻,用于测试 10. 蜂鸣器:1 路,由 PWM0控制 11. EEPROM: AT24C08(256 Byte),用于 I2C测试 12. LCD接口:2 个 LCD接口,均为 40 Pin 0.5mm间距贴片座, 13. SDIO接口:用于连接 SD WiFi模块等 14. CMOS Camera: 用于连接 CMOS摄像头 15. RTC时钟:带备份电池 1716. PCB层数:2 17. PCB尺寸:180 x 130mm,可方便固定各种 LCD模块,尤其

42、是 7寸 LCD模块 18. 供电:DC-5V3.3 蓝牙 HC-06 模块的简介本次设计采用民用级蓝牙模块 HC-06,它通过 UART连接到 GEC210底板上与 S5PV210进行通信。图 7 蓝牙 HC-06图 8 模块原理图183.3.1 HC-06 模块特征1、无线收发 灵敏度( 误码率 )达到 80dBm -4 - 6dBm 功率可调输出2、性能概要 完整的蓝牙解决方案 蓝牙2.0 带EDR, 2Mbps-3Mbps 调制度 内置 2.4GHz 天线, 用户无需调试天线 外置 8Mbit FLASH 低电压3.3V 工作(3.1V4.2V)配对时3040MA 波动,配对完毕通信8

43、MA 可选PIO 控制 标准HCI 端口(UART or USB) USB 协议: Full Speed USB1.1, Compliant With 2.0 模块可以作为SMD 贴片工艺 RoHS 制程 引脚半孔工艺 数字2.4GHz 无线收发射 CSR BC04 蓝牙芯片技术 自适应跳频技术 体积小,(27mm13mm2mm) 简单的外围设计电路 蓝牙Class 2 功率级别 存储温度:-40 至+85 度,工作温度:-25 至+75 度 协波干扰:2.4MHz,发射功率 3 dBm 误码率:0,但会在传输链路产生信号衰变,才有误码,如RS232 和TTL 线路处理线路中3、低功耗4、高性

44、能无线收发系统5、低成本196、应用领域 蓝牙车载免提 蓝牙GPS 蓝牙PCMCIA , USB Dongle 蓝牙数据传送7、软件 CSR3.3.2 AT 指令集 (对蓝牙模块进行测试)进入AT 指令的方法:给模块上电,不配对的情况下,就是AT 模式了。指令间隔1S 左右。出厂参数:波特率9600N81,名字linvor,密码12341、测试通讯发送:AT(返回OK,一秒左右发一次)返回:OK2、改蓝牙串口通讯波特率发送:AT+BAUD1返回:OK1200发送:AT+BAUD2返回:OK24001-12002-24003-48004-9600(默认就是这个设置)5-192006-384007

45、-576008-1152009-23040020A-460800B-921600C-1382400 设置超过115200 后用电脑无法使用,要用单片机编程于高于115200 才能使用此波特率和重新发AT 命令设低波特率 用AT 命令设好波特率后,下次上电使用不需再设,可以掉电保存波特率。3、改蓝牙名称发送:AT+NAMEname返回:OKname参数name:所要设置的当前名称,即蓝牙被搜索到的名称。20 个字符以内。例:发送AT+NAMEbill_gates返回OKname这时蓝牙名称改为bill_gates参数可以掉电保存,只需修改一次。PDA 端刷新服务可以看到更改后的蓝牙名称,名字不可

46、超过20 个字符。4、改蓝牙配对密码发送:AT+PINxxxx返回:OKsetpin参数xxxx:所要设置的配对密码,4 个数字,此命令可用于从机或主机。从机是适配器或手机弹出要求输入配对密码窗口时,手工输入此参数就可以连接从机。主蓝牙模块搜索从机后,如果密码正确,则会自动配对,主模块除了可以连接配对从模块外,其他产品包含从模块的时候也可以连接配对,比如含蓝牙的数码相机,蓝牙GPS,蓝牙串口打印机,等等,特别地,蓝牙GPS 为典型例子例:发送:AT+PIN8888返回:OKsetpin这时蓝牙配对密码改为8888,模块在出厂时的默认配对密码是1234。21参数可以掉电保存,只需修改一次。5、无

47、校验设置指令:(V1.5 版后支持)AT+PN(默认就是这个设置)6、偶校验设置指令:(V1.5 版后支持)AT+PE7、奇校验设置指令:(V1.5 版后支持)AT+PO8、获取AT 指令版本命令:AT+VERSION返回 LinvorV1.n 则为正品224 系统软件的设计4.1 相关软件编程技术4.1.1 嵌入式 C 编程Windows平台下的普通 C语言编程跟 Linux平台下的嵌入式 C语言编程几乎没什么不同。主要差别只是在于编译器、API 等开发工具的不同。但是,在嵌入式 C编程的世界里,如果要编写出嵌入式驱动程序,仅仅是熟悉 C语言是远远不够的,还得精通嵌入式芯片工作原理(寄存器设

48、定等) ,操作系统原理(存储空间分配等) ,除此之外,还需要了解基本的数模电的电路知识等硬件知识。可见,嵌入式 C编程比普通的 C编程难度大多了。4.1.2 安卓 JAVA 编程JAVA语言是典型的面向对象的语言。面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。本次设计我们的 android应用程序用的是java语言,因此必须得对面向对象思想有个深刻的认识。4.2 系统底层软件的设计本系统的底层软件指 LED灯的驱动程序,测试程序以及 UART串口的初始化程序,这些程序的编写都是在 ubuntu环境下用 vi编辑器编写的。4.2.1 LED 灯驱动程序设计我们知道,要写出硬件的驱动程序,除了拥有必要的软件编程能力之外,必须得熟悉硬件的工作原理。此驱动程序的源文件名为:

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报