




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ANDROID手机的六旋翼飞行器状态实时监测系统摘要随着ANDROID技术的日趋成熟,以ANDROID为操作系统的手机的使用也越来越广泛。基于ANDROID手机的蓝牙传输技术的使用也引起了软件开发人员的关注,这种短距离通信技术被广泛的应用到移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。在深入理解ANDROID编程技术和蓝牙技术后,构建了一个小型的数据采集系统。该系统中,以六旋翼飞行器上的多种传感器数据为原始数据,在单片机端将多种传感器数据基于自定义协议组合成数据包的形式,单片机将以数据包的形式定时转发给无线数传模块,数据包经过远距离无线传输后,通过蓝牙模块将数据传输到手机端。手机端接收到数据后,对数据进行处理,以曲线图的形式显示当前的六旋翼的多种飞行参数。本毕业设计实现了温度采集部分,其他数据采集部分未完全完成。本设计未在六旋翼实体上进行。关键字ANDROID;蓝牙;单片机BASEDONTHEANDROIDMOBILEPHONESIXROTORAIRCRAFTSTATEREALTIMEMONITORINGSYSTEMABSTRACTWITHTHEMATURINGOFTHEANDROIDTECHNOLOGY,WITHANDROIDFORTHEUSEOFTHEOPERATINGSYSTEMISBECOMINGMOREANDMOREWIDELYBASEDONTHEUSEOFTHEANDROIDMOBILEPHONEBLUETOOTHTRANSMISSIONTECHNOLOGYALSOCAUSEDTHEATTENTIONOFSOFTWAREDEVELOPERS,THESHORTDISTANCECOMMUNICATIONTECHNOLOGYHASBEENWIDELYAPPLIEDTOTHEMOBILEPHONE,PDA,WIRELESSHEADSET,NOTEBOOKCOMPUTERSANDRELATEDPERIPHERALS,ANDMANYOTHERDEVICESBETWEENWIRELESSINFORMATIONEXCHANGEAFTERUNDERSTANDINGTHEANDROIDPROGRAMMINGTECHNOLOGYANDBLUETOOTHTECHNOLOGY,BUILTASMALLDATAACQUISITIONSYSTEMWITHSIXFORTHESYSTEM,THEROTORAIRCRAFTONAVARIETYOFSENSORDATAASTHEORIGINALDATA,THESCMCLIENTTOAVARIETYOFSENSORDATABASEDONACUSTOMPROTOCOLCOMBINEDINTOPACKETS,INTHEFORMOFSINGLECHIPTIMINGINTHEFORMOFPACKETISFORWARDEDTOWIRELESSDATATRANSMISSIONMODULE,DATAPACKETAFTERLONGDISTANCEWIRELESSTRANSMISSIONMODULETOTRANSMITDATATOMOBILEPHONEVIABLUETOOTHMOBILETERMINALRECEIVESTHEDATA,THEDATAPROCESSING,INTHEFORMOFAGRAPHDISPLAYSTHECURRENTSIXROTOROFAVARIETYOFFLIGHTPARAMETERSTHEDESIGNANDIMPLEMENTATIONOFATEMPERATUREGRADUATIONACQUISITIONPART,THEOTHERPARTOFTHEDATACOLLECTIONISNOTCOMPLETELYFINISHEDTHISDESIGNISNOTCARRIEDOUTONSIXROTORENTITYKEYWORDSANDROIDBLUETOOTHDEVELOPMENTBOARD目录摘要IABSTRACTII1绪论111研究的相关背景1111六旋翼飞行器的发展1112飞行器的状态参数212设计目的213论文的构成概要22ANDROID、ARMTINYM0开发板与无线数传模块421系统概述422ANDROID软硬件平台介绍4221ANDROID软件平台架构4222ANDROID基本组件7223ANDROID硬件平台7224ANDROID开发环境搭建823ARMTINYM0开发板介绍9231ARMTINYM0开发板9232ARMTINYM0开发环境搭建1024无线系统12241蓝牙技术及HC06蓝牙模块12242485MHZ无线传输技术及FT52D数传模块143系统各功能模块的设计与实现1631系统构成16311系统模块构成16312系统功能概述1632数据采集模块17321温度数据采集17322气压数据采集19323高度数据采集19324航线数据采集2133485MHZ远距离无线数传模块22331485MHZ无线子系统的构成22332模块收发功能实现2234蓝牙无线数传模块2335ANDROID数据处理显示模块24351ANDROID蓝牙控制功能的实现24352ANDROID数据动态曲线显示功能的实现294系统集成3141系统集成3142TINYM0端数据采集软件设计与实现3243ANDROID端监测软件设计与实现365结论4151本设计所做的主要工作4152本设计实现的功能4153本设计的不足之处41参考文献42致谢43外文原文44中文翻译541绪论11研究的相关背景111六旋翼飞行器的发展六旋翼飞行器,是一种具有六个旋翼的旋翼航空器。由每个轴末端的电动机转动,带动旋翼从而产生上升动力。旋翼的角度固定而不像直升飞机那样可变。通过改变不同旋翼之间的相对速度可以改变推进力的扭矩,从而控制飞行器的运行轨迹。六旋翼飞行器以其独特的结构和简洁的系统构架与传统飞行器相比有明显的优势。(1)以高能电池作为能量与油动力飞行器相比噪音更低,可实现低空飞行不易察觉。(2)垂直起降可在较狭小的空间就可以稳定飞行,与定翼飞行器相比有不受场地限制的优势。(3)简单的机械部件组成仅电机轴承为机械部件与传统直升机(有较复杂的机械部件与传动结构)相比,维护相当简单。(4)体积小、重量轻、载重量大是六旋翼飞行器的一个明显优势。(5)整机全电子增稳,操作简单。自主导航可实现全自动飞行。性能优异的动力系统提供了机动灵活的飞行姿态,抗风能力强。六旋翼飞行器在各个行业的应用有一下几点(1)公安系统的应用六旋翼飞行器具有便携、质轻、飞行稳定、噪音低等特点,携带影像设备与侦测设备可以为秘密侦查提供强有力的手段,尤其是人不易接近的区域,可以提供空中第一手影像资料。同样在群体性事件中也可以发挥巨大的作用,除侦查外甚至可以携带小型催泪瓦斯进行空中投掷。(2)消防行业的应用现场火灾的蔓延、林区火势的详情、高层起火的救生等方面都是消防工作部署的关键,多轴飞行器可以到现场迅速升空,有了高度就能把详细情况实时传送到地面指挥车,可以为消防部署提供真实有效地参考。(3)电力系统的应用高压线路的巡视,高压线塔的检修维护是一个长期而艰巨的工作,有了六旋翼飞行器这一有力的工具,让线路巡视、线塔检修成为简单易行的工作。尤其是在多山地区的传输线路,更能发挥飞行器的优势。同样在交通巡查、油田管路巡查、高铁高架巡查等都比较类似。(4)农业行业的应用我国作为农业大国,农作物病虫害的防止任重而道远。往往像水稻田等类似的农药喷洒一直都是人力有所不及。多轴飞行器以稳定飞行和操作简单的特性,携带药液进行低空喷洒,可以实现喷洒均匀,药效好,极大的节约了人力,实现高效率作业。飞行器携带病虫色谱摄影设备还可以对大面积植被进行病虫害监测和预警,做到及早发现,及时治理。(5)影视行业的应用小型飞行器飞行相对不稳定。公司多年来致力于飞行器功力系统与影像稳定方面,现在的六旋翼飞行器可以携带高清摄像机、高画质单反相机进行稳定飞行,可完成空中的视频航拍和摄影航拍。而且六旋翼飞行器可以尽可能的低空飞行达到动感的视频效果,这也是载人直升机不能完成的超低空飞行,填补了在超低空领域航拍的空白。112飞行器的状态参数飞行器状态参数可归结为以下几类(1)飞行参数飞行高度、速度、加速度、姿态角和姿态角速度等;(2)动力系统参数飞行器转速、温度、燃油量、进气压力、燃油压力等;(3)导航参数位置、航向、高度、速度、距离等;(4)武器瞄准系统参数目标的熟读、温度、高度、雷达警告、攻击警告等;(5)生命保障系统参数座舱温度、湿度、气压、氧气含量、氧气储备量等;(6)飞行员生理参数飞行员脉搏、血压、睡醒状态等;(7)其他系统参数电源系统参数、设备完好程度、结构损坏程度等。本毕业设计所涉及的状态参数有温度,气压,高度,航线。MS5534B气压传感器来获得气压值和温度值,并利用已得气压值和温度值来估测六旋翼的高度值,利用GPS_MSP430F149_V1模块来测得六旋翼的位置。12设计目的本设计的目的是基于ANDROID技术和蓝牙技术设计并实现一个六旋翼飞行器姿态控制系统。该系统由ANDROID手机、TINYM0开发板、HC06S蓝牙模块、FT52D数传模块、六旋翼飞行器及多种传感器组成。一方面,通过ANDROID手机的蓝牙串口与六旋翼飞行器建立连接。另一方面,通过ANDROID手机的蓝牙串口采集六旋翼飞行状态参数信息并以图像的方式对信息进行显示。在设计实现的过程中,主要工作包括ANDROID软件编程,单片机开发技术,蓝牙协议分析,HC06S蓝牙模块、FT52D数传模块和多种传感器分析。通过一个完整的系统分析、设计和实现的过程,我掌握了硬件分析和软件设计的流程,学会了如何分析问题,如何通过一些测试方法找到问题的根源,并且解决问题。通过本次设计,我在对专业知识的理解、掌握上都有了提高,对嵌入式领域也有了一定的认识和收获。13论文的构成概要本论文共分为5章。第一章绪论。介绍本设计涉及的六旋翼飞行器的的发展及飞行器的状态参数,同时对设计的目的和要求进行概要说明。第二章ANDROID开发平台以及ARM开发板TINYM0的介绍。首先介绍了软件开发采用的软硬件平台,以及关于ANDROID的一些基本知识。然后介绍了ARM开发板,即TINYM0开发板以及其开发环境。第三章系统各模块的设计及其功能的实现。介绍了数据采集模块,433MHZ远距离无线数传模块,数据转发模块,蓝牙无线数传模块及ANDROID数据处理显示。第四章系统整体功能的实现及测试。介绍系统的构成,对系统中重要模块的实现工程进行了介绍,包括ANDROID端监测软件的实现,TINYM0端数据采集软件的实现,数据转发软件的设计和实现并对系统的整体性能进行测试。第五章结论。总结毕业设计所做的主要工作、实现的功能和存在的不足,并介绍了自己在设计和实验过程中掌握的设计方法和心得体会。2ANDROID、ARMTINYM0开发板与无线数传模块21系统概述本系统组成如图21所示。主要的的功能有(1)ANDROID蓝牙控制功能。(2)ANDROID数据动态曲线显示功能。图21系统构成22ANDROID软硬件平台介绍221ANDROID软件平台架构对操作系统而言,必须做到设计合理、层次分明,同时还需考虑整个系统的结构要聚耦适当,ANDROID系统是基于LINUX内核的,因此还必须具备开源的特性,以符合开源人员共同工作。从系统的组成要件来讲,ANDROID平台架构包括硬件设备、板级支持包、驱动程序、操作系统内核、程序运行库,运行框架,应用程序等,它们的有机结合和协同工作共同完成了整个系统的正常运行和对事务的处理。依据GOOGLE开源资料可知,整个系统由LINUX内核、程序库、ANDROIDRUNTIME、应用程序框架和应用程序等5部分组成,系统架构如图22所示。图22ANDROID系统平台架构参照图22,由上而下对组成系统各部分的主要组件作以下描述。(1)LINUX内核ANDROID基于LINUX26内核,但并非完全照搬内核,而是对内核作了部分增删和修改,在LINUX26内核的基础上,ANDROID核心系统实现了安全性、内存管理、进程管理、网络协议栈和驱动模型等功能,LINUX内核也同时作为硬件和软件栈之间的抽象层。硬件驱动程序完成与各种硬件的通信,LINUX内核提供了大部分设备的驱动程序,如显示屏,摄像头,内存,键盘,,无线网络,音频设备,电源等组件。系统内存管理对所有可用的内存进行统一编码管理,定义一整套内存定位,使用与回收的策略。系统进程管理内核管理进程的创建与销毁,管理进程间的通信,以及采取必要的措施避免死锁等内容。网络管理系统无线网络设备工作原理,内核掌控如何读取网络设备中的缓存数据。(2)程序库程序库是指可供使用的各种标准程序、子程序、文件以及它们的目录等信息的有序集合,ANDROID包含一些C/C库,,ANDROID系统中不同的组件通过应用程序框架可以使用这些库,以下是一些核心库SURFACEMANAGER管理显示子系统,并且为多个应用程序提供2D和3D图层的无缝融合;MEDIAFRAMEWORK基于OPENCORE的多媒体框架,支持多种常用的音频、视频格式文件的回放和录制,同时支持静态图像文件。SQLITE一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。OPENGLES3D图形库,用于3D图形渲染,该库可以使用3D硬件加速。FREETYPE位图BITMAP和矢量VECTOR字体显示。WEBKIT支持ANDROID浏览器和一个可嵌入的WEB视图。SGL2D图形库,用于2D图形渲染。LIBC一个从BSD继承的标准C系统函数库,它是专门为基于嵌入式LINUX设备定制的。(3)ANDROIDRUNTIMEANDROID运行库包括两部分一是核心库,二是自身的虚拟机。核心库提供JAVA编程语言核心库的大多数功能。DALVIK虚拟机是GOOGLE专为ANDROID开发的,比SUNJAVA虚拟机的效率更高,功能也更为复杂,以更好的支撑ANDROID平台,并拥有独立的版权。每一个ANDROID应用程序都在自己的进程中运行,都拥有一个独立的DALVIK虚拟机实例,DALVIK虚拟机执行DEX的可执行文件,该格式文件针对小内存的使用进行了优化,同时虚拟机是基于寄存器实现的,所有的类由JAVA编译器编译,然后通过SDK中的相应工具转化成DEX格式,最后由虚拟机执行。(4)应用程序框架应用程序框架是指定义了一个应用程序运行所必须的全部功能组件,开发者也可以访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,并且任何其他的应用程序都可以使用其所发布的功能块应该遵循框架的安全性限制。同样,该应用程序的重用机制也使用户可以方便地替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括活动管理器ACTIVITYMANAGER用来管理应用程序生命周期,并且提供常用的导航回退功能。丰富而又可扩展的视图VIEWS可以用来构建应用程序,它包括列表LISTS、网格GRIDS、文本框TEXTBOXES、按钮BUTTONS,甚至包括可嵌入的WEB浏览器。内容提供器CONTENTPROVIDERS使得应用程序可以访问另一个应用程序的数据,或者可以共享它们自己的数据。资源管理器RESOURCEMANAGER提供非代码资源的访问,如本地字符串、图形和布局文件LAYOUTFILES。通知管理器NOTIFICATIONMANAGER使得应用程序可以在状态栏中显示自定义的提示信息。ANDROID程序框架体显了“统一”与“兼容”的原则,其优势归纳为任何一个应用程序都可以发布它的功能块;所有的应用程序在ANDROID平台上都是平等的;所有的应用程序与资源都被按类别进行分别管理;所有程序各司其职。(5)应用程序ANDROID系统发布时,会同一系列核心应用程序和常用程序一起发布,如常用的手机功能程序,包括语音电话、通讯录、短信收发、照相、话机设置等;数据应用程序,包括邮件工具,日程表,浏览器,地图导航等,以及ANDROIDMARKET上的各种应用程序;所有的应用程序都是使用JAVA语言编写。222ANDROID基本组件应用程序组件是一个ANDROID应用程序的基本构造块。每个组件都是系统可以进入你的应用程序的切入点。不是所有的组件都是实际的切入点,它们之间一些是互相依赖的,但每一个的存在都作为自己的实体,扮演着特定的角色,每个组件都是一个独特的建筑块,它可以帮助确定您的应用程序的整体行为。有四种不同类型的应用程序组件。每种类型提供不同的目的,并具有明显的生命周期定义组件如何被创建和销毁。(1)ACTIVITY一个ACTIVITY代表与用户交互的单个界面。例如,电子邮件应用程序可能有一个ACTIVITY用来显示新的电子邮件列表,一个ACTIVITY用来撰写电子邮件,另一个ACTIVITY用来阅读电子邮件。虽然每个ACTIVITY一起形成在电子邮件应用程序中有凝聚力的用户体验,但每一个ACTIVITY都是相互独立的。因此,不同的应用程序可以启动这些活动中的任何一个(如电子邮件应用程序允许的话)。例如,照相机的应用程序可以启动撰写电子邮件的ACTIVITY,构成新的邮件,为了共享一个图像的用户。(2)SERVICESERVICE是运行在后台执行长时间运行的操作或执行远程工作进程的组件。SERVICE不提供用户界面。例如,一个服务可能会在不同的应用程序中播放音乐,也可以获取在网络上的数据而不会阻塞用户交互的活动。另一个组件,如一个ACTIVITY,可以启动该服务,并让其绑定到它,使得与它进行交互。(3)CONTENTPROVIDERCONTENTPROVIDER管理着应用程序数据的共享集。你可以将数据存储在文件系统中,SQLITE数据库,网络上,或任何其他您的应用程序可以访问的持久性存储方式。通过CONTENTPROVIDER,其他应用程序可以查询,甚至修改数据(如果这个CONTENT允许的话)。例如,ANDROID系统提供了管理用户的联系人信息的CONTENTPROVIDER。因此,具有适当权限的任何应用程序都可以通过CONTENTPROVIDER(如CONTACTSCONTRACTDATA)来读取和写入有关某一个人的信息的一部分。CONTENTPROVIDER也可用于在你的应用程序中读取和写入私有的数据,而不是共享的。例如,记事本应用程序使用一个CONTENTPROVIDER,以保存笔记。(4)BROADCASTRECEIVEBROADCASTRECEIVE是响应系统范围的广播公告的组件。许多广播由系统发出,例如,广播宣布,该显示屏已经关闭,电池电量低或图片被捕获。应用程序也可以发起广播,例如,让其他应用程序知道某些数据已经被下载到设备上,可供他们使用。虽然广播接收机不显示用户界面,它们可以创建一个状态栏来通知用户广播事件发生。更常见的是,对于其他组件而言,广播接收器仅仅是一个“网关”,承担非常小的一个工作量。例如,它可能会启动一个服务来执行基于事件的一些工作。223ANDROID硬件平台目前可供程序开发的ANDROID平台版本从15至44,市场上的ANDROID手机或平板所安装的ANDROID版本主要为22、23和40。本毕业设计中相关实验硬件平台为华为公司生产的智能手机,型号为C8813Q,搭载操作系统为ANDROID41,支持多点触控,内置蓝牙。华为C8813Q外观如图23所示。图23华为C8813Q外观224ANDROID开发环境搭建(1)登陆HTTP/DEVELOPERANDROIDCOM/SDK/INDEXHTMLDOWNLOAD站点,即可看到下载界面,如图24所示。图24ANDROID下载界面点击图中蓝色按钮,开始现在下载ADT套件。在ADT套件包括需要开始开发应用程序的一切ECLIPSEADT插件;ANDROIDSDK工具;ANDROID的平台工具;最新的ANDROID平台;用于ANDROID模拟器。ANDROIDSDKS文件夹下包含,如图25所示。图25SDK文件夹内容(2)启动SDKMANAGEREXE,即可看到安装界面,如图26所示。图26SDKMANAGER选择需要安装的工具,点击INSTALLPACKAGES即可安装开发所需要的工具。这时开发环境搭建成功。23ARMTINYM0开发板介绍231ARMTINYM0开发板TINYM0是广州致远电子股份有限公司为广大企业用户、电子工程师和高校师生精心设计的CORTEXM0开发平台,核心控制器是基于NXP公司LPC1100系列芯片,应用简单灵活。LPC1100系列微控制器采用ARM公司最新发布的CORTEXM0内核,工作频率高达50MHZ,功耗低至110A/MHZ,性能卓越、应用简单,更突出的是,它能够显著降低所有8/16位应用的代码长度,并且是目前市场定价最低的32位MCU,其价值和易用性比现有的8/16位微控制器更胜一筹,为追求ARM架构的8/16位用户提供了一种全新的32位解决方案。此外,CORTEXM0内核指令向上兼容CORTEXM3内核,LPC111X系列LQFP48引脚封装的芯片和LPC1300系列LQFP48引脚封装的芯片完全兼容。TINYM0开发板实物图如图27所示。图27TINYM0开发套件232ARMTINYM0开发环境搭建TKSTUDIO集成开发环境(又称TKSTUDIOIDE)是广州致远电子有限公司开发的一个微处理器软件开发平台,是一款具有强大内置编辑器的多内核编译调试环境,支持8051、ARM、AVR等多种微控制器,可以完成从工程建立和管理,编译,链接,目标代码的生成,到软件仿真,硬件仿真挂接TKS系列仿真器等硬件等完整的开发流程。TKSTUDIOIDE主界面如图28所示。图28TKSTUDIOIDE主界面TKSTUDIO集成开发环境包括工程管理器、代码编辑器、编译工具链、源码级调试器和外部工具等。(1)TKSTUDIO工程管理器可以管理工程中用到的所有源文件、库文件和其它输入文件。在工程窗口中分为工程、文件组、源文件三级结构,并且根据文件类型显示为不同的图标,直观而又醒目,更方便用户管理工程。TKSTUDIO工程窗口如图29所示。图29TKSTUDIO工程窗口(2)TKSTUDIO代码编辑器以最大化用户编码体验为目标,功能强大,能非常有效地提高编码效率,并提高整体开发效率。(3)TKSTUDIO具备丰富的编译器选项配置信息,对各种工具链的编译、链接、调试提供了灵活的配置参数,对MCS51、ARM、AVR等芯片都提供了支持,主要有C51、SDCC51、GCCARM、ADSARM、REALVIEWMDK、GCCAVR等编译工具链。如图210所示。图210编译工具链LPC1100系列微控制器开发需要用到的编译工具链是REALVIEWMDK4X,如果用户在安装TKSTUDIO前已经安装了该编译器,安装程序会自动将编译器的路径设置到TKSTUDIO中。但如果用户之前没有安装REALVIEWMDK编译器,则需在TKSTUDIO安装过程中根据提示到相关网站下载安装。在安装好REALVIEWMDK编译器后,用户需要将该编译器的路径设置到TKSTUDIO中。(4)TKSTUDIO调试器与广州致远电子推出的K系列仿真器完美结合,支持8051、ARM、AVR等主流芯片的系统级调试,配备大量调试窗口、性能分析器、数据代码覆盖分析器、运行轨迹回溯工具,内置了完备的软件仿真系统。能帮助您快速定位无用代码、无用变量,更好地优化完善整个系统。TKSTUDIO调试器如图211所示。图211TKSTUDIO调试器(5)主界面上的【工具】菜单下包含了一些实用的外部工具,包括烧写工具,调试工具,文件工具,计算器等等,可以根据自己的需要灵活使用这些工具。如图212所示。图212外部工具24无线系统241蓝牙技术及HC06蓝牙模块(1)蓝牙技术蓝牙,是一种支持设备短距离通信(一般10M内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网INTERNET之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的24GHZISM(即工业、科学、医学)频段。其数据速率为1MBPS。采用时分双工传输方案实现全双工传输。蓝牙技术是一种短距离无线通信技术,目的是在保证高安全性的前提下,取代设备间的线缆连接。关于蓝牙的特点,给出以下结论。工作于ISM24GHZ频段,带宽1MBPS;蓝牙版本有11、12、20、21、30、40。目前使用最广泛的是V20;蓝牙根据功率可划分为3种距离等级,CLASS1为100M,CLASS2为10M,CLASS3为23M;蓝牙V40之前的版本支持两种网络拓扑结构,即PICONET(微微网)和SCATTERNET(散射网)。V40支持的拓扑结构为STARBUS(星型网);蓝牙采用电路交换和分组交换技术,支持数据、语音和视频信息同时传输;蓝牙在通信连接状态下,有四种工作模式ACTIVE(激活)、呼吸(SNIFF)、保持(HOLD)、休眠(PARK);每个蓝牙设备拥有一个48位的地址;蓝牙设备可同时与7个蓝牙设备进行通信,并和超过200个蓝牙设备保持连接但不通信;蓝牙协议栈结构如图213所示。图213蓝牙协议栈蓝牙协议栈根据协议的目的可以分为4层,如表21所示。表21蓝牙协议栈层次结构序号协议层包含协议1核心协议BASEBAND、LMP、L2CAP、SDP2电缆替代协议RFCOMM3电话控制协议TCSBINARY,ATCOMMANDS4可选协议PPP、UDP/TCP/IP、OBEX、WAP、VCARD、VCAL、IRMC、WAE(2)HC06蓝牙模块HC06蓝牙模块的特点采用CSR主流蓝牙芯片,蓝牙V20协议标准;串口模块工作电压33V;波特率为1200,2400,4800,9600,19200,38400,57600,115200用户可设置;核心模块尺寸大小为28MMX15MMX235MM;工作电流配对中3040MA,配对完毕未通信28MA,通信中8MA;休眠电流无休眠;用于GPS导航系统,水电煤气抄表系统,工业现场采控系统;可以与蓝牙笔记本电脑、电脑加蓝牙适配器、PDA等设备进行无缝连接。出厂默认参数从机波特率9600,N,8,1;配对密码1234242485MHZ无线传输技术及FT52D数传模块(1)485MHZ无线传输无线485MHZ频段的传输特点是485MHZ是我们国家的免申请段发射接收频率,可直接使用不需要管理,485频段抗干扰强,并支持各种点对点,一点对多点的无线数据通讯方式,具有收发一体、安全隔离、安装隔离、使用简单、性价比高、稳定可靠等特点,只要发射功率足够大,长距离传输时没有问题的。(2)FT52D数传模块实物图如图214所示。图214FT52D数传模块实物图FT52D无线串口通信模块特点最大发射功率20DBM;符合全球IFT频段通信标准,无需申请频点;多信道,可以动态修改通信信道参数;完善的通讯协议,数据实时通信;透明的数据传输;高抗干扰能力和低误码率;休眠功能。支持休眠功能,休眠以后,将整个系统功耗降到最低;高速无线通讯和大的数据缓冲区。可1次传输无限长度的数据,支持8位,9位数据位,8N1/8E1等多种数据格式,用户编程更加灵活;智能数据控制,用户无需编制多余的程序即使是半双工通信,用户也无需编制多余的程序,只要从接口收/发数据即可,其它如空中收发转换,网络连接,控制等操作,FT52D型无线串口通信模块能够自动完成;高可靠性,体积小、重量轻。采用单片射频集成电路及高性能单片处理器,外围电路少,可靠性高,故障率低,适合于嵌入式装配;看门狗实时监控。FT52D可以自行监控运行状况,即使射频芯片被干扰(如雷电干扰)也可重新启动。改变了目前无线通讯行业的致命问题,使该产品永不死机;FT52D可以同时支持多种通信速率。FT52D可以通过跳线方式由用户选择1200BPS,2400BPS,4800BPS,9600BPS四种通信速率;FT52D是采用真正的窄带高速率通信技术,信号带宽125/25KHZ,频谱使用效率高,抗干扰能力强,最高有效速率高达19200BPS;灵敏度高。1200BPS的灵敏度为120DBM,9600BPS的灵敏度为120DBM;工作寿命长,稳定性好,工作温度范围宽。(3)FT52D型的技术指标表22FT52D型的技术指标序号技术指标参数备注1调制方式GFSK2工作频率430MHZ,470793MHZ3频率稳定度/02PPM4最大发射功率20DBM(55VDC工作电压)5最大接受灵敏度120DBM6发射电流130MA7接受电流37MA8通信速率12009600BPS速率用户可选9接口类型UARTTTL/RS232/RS48510工作电压355VDC11工作温度408512年老化率BLUETOOTHADAPTER提供了用于读取并设置本地蓝牙硬件的属性的方法。使用ISENABLE方法确认设备已经启用,然后可以使用GETNAME和GETADDRESS方法分别访问BLUETOOTHADAPTER的“友好的”名称。IFBLUETOOTHISENABLEDSTRINGADDRESSBLUETOOTHGETADDRESSSTRINGNAMEBLUETOOTHGETNAME找到一个更详细的描述了当前蓝牙适配器的状态,使用GETSTATE方法,它将返回下列其中一个BLUETOOTHADAPTER常数。STATE_TURNING_ONSTATE_ONSTATE_TURNING_OFFSTATE_OFF为了节省电池寿命和优化安全,大多数用户将蓝牙禁用,直到PLANTOUSEIT计划使用它们。TOENABLETHEBLUETOOTHADAPTER,YOUCANSTARTASYSTEMPREFERENCEACTIVITYUSINGTHE为了启动蓝牙适配器,可以使用STARTACTIVITYFORRESULT启动一个系统PREFERENCEACTIVITY并将静态常量BLUETOOTHADAPTERACTION_REQUEST_ENABLESTATICCONSTANTASASTARTACTIVITYFORRESULTBLUETOOTHADAPTERACTION_REQUEST_ENABLE作为ACTIONSTRING动作字符串STARTACTIVITYFORRESULTNEWINTENTBLUETOOTHADAPTERACTION_REQUEST_ENABLE,0;得到的PREFERENCEACTIVITY。它会提示用户打开蓝牙并要求配置信息。如果用户同意,子ACTIVITY将关闭并返回到调用的活动时,并且一旦BLUETOOTHADAPTER打开(或遇到一个错误)。如果用户选择NO,那么该子活动将关闭并立即返回。可以使用ONACTIVITYRESULT处理程序中返回的结果代码参数来确定这一操作是否成功,如程序清单所示。PRIVATESTATICFINALINTENABLE_BLUETOOTH1PRIVATEVOIDINITBLUETOOTHIFBLUETOOTHISENABLEDINTENTINTENTNEWINTENTBLUETOOTHADAPTERACTION_REQUEST_ENABLESTARTACTIVITYFORRESULTINTENT,ENABLE_BLUETOOTHELSEINITBLUETOOTHUIPROTECTEDVOIDONACTIVITYRESULTINTREQUESTCODE,INTRESULTCODE,INTENTDATAIFREQUESTCODEENABLE_BLUETOOTHIFRESULTCODERESULT_OKINITBLUETOOTHUI(2)管理设备的可发现性为了找到你本地的蓝牙适配器在发现扫描一个ANDROID设备,你需要确保它是可发现的。蓝牙适配器的发现是由它的扫描方式显示,使用GETSCANMODE方法对你找到的对象。它将返回下列其中一个BLUETOOTHADAPTER常数SCAN_MODE_CONNECTABLE_DISCOVERABLE查询扫描和页面扫描都启用,意味着设备是可发现的任何蓝牙设备进行发现扫描。SCAN_MODE_CONNECTABLE页面扫描启用,但查询扫描禁止。这意味着先前连接并绑定到本地设备的设备可以在发现过程中找到,但找不到新设备。SCAN_MODE_NONE可发现是关闭的。在发现过程中没有远程设备可以找到本地蓝牙适配器。由于隐私原因,ANDROID设备在默认情况下将禁止可发现机制。为了打开可发现机制,需要获得用户的明确许可;可以通过使用ACTION_REQUEST_DISCOVERABLE行动启动一个新ACTIVITY来获得该权限,如程序清单所示。STARTACTIVITYFORRESULTNEWINTENTBLUETOOTHADAPTERACTION_REQUEST_DISCOVERABLE,DISCOVERY_REQUEST默认情况下,可发现机制将被启用2分钟。可以通过将EXTRA_DISCOVERABLE_DURATION添加到启动INTENT中来修改这一设置,从而指定想让可发现机制持续的秒数。当广播了INTENT时,将显示如图所示的对话框,提示用户将在指定的持续时间内打开可发现机制。为了了解用户是允许还是拒绝我们的发现请求,需要重写ONACTIVITYRESULT处理程序,如程序清单所示。所返回的RESULTCODE参数指示了可发现机制的持续时间,如果用户拒绝了该请求,则指示一个负数。PROTECTEDVOIDONACTIVITYRESULTINTREQUESTCODE,INTRESULTCODE,INTENTDATAIFREQUESTCODEDISCOVERY_REQUESTIFRESULTCODERESULT_CANCELEDLOGDTAG,“DISCOVERYCANCELEDBYUSER”(3)发现远程设备通过使用ISDISCOVERY方法可以检查本地BLUETOOTHADAPTER是否正在执行一次扫描。为了启动发现过程,可以调用BLUETOOTHADAPTER的STARTDISCOVERY。IFBLUETOOTHISENABLEDBLUETOOTHSTARTDISCOVERY要取消正在进行中的发现过程,可以调用CANCELDISCOVERY。发现过程是异步进行的。ANDROID使用BROADCASTINTENT来通知发现过程的启动和结束以及在扫描过程中发现的远程设备。通过创建BROADCASTRECEIVER来监视ACTION_DISCOVERY_STARTED和ACTION_DISCOVERY_FINISHEDBROADCASTINTENT,可以监视发现过程中的变化。BROADCASTRECEIVERDISCOVERYMONITORNEWBROADCASTRECEIVERSTRINGDSTARTEDBLUETOOTHADAPTERACTION_DISCOVERY_STARTEDSTRINGDFINISHEDBLUETOOTHADAPTERACTION_DISCOVERY_FINISHEDPUBLICVOIDONRECEIVECONTEXTCONTEXT,INTENTINTENTIFDSTARTEDEQUALSINTENTGETACTIONLOGDTAG,“DISCOVERYSTARTED”ELSEIFDFINISHEDEQUALSINTENTGETACTIONLOGDTAG,“DISCOVERYCOMPLETE”REGISTERRECEIVERDISCOVERYMONITOR,NEWINTENTFILTERDSTARTEDREGISTERRECEIVERDISCOVERYMONITOR,NEWINTENTFILTERDFINISHED已发现的蓝牙设备由BROADCASTINTENT通过ACTION_FOUND广播动作返回。(3)蓝牙通信ANDROID蓝牙通信API是对蓝牙无线频率通信协议RFCOMM进行的封装。RFCOMM支持逻辑链路控制和适配协议层上进行RS232串行通信。可以使用下面的类建立一个RFCOMM通信信道用于双向通信。BLUETOOTHSERVERSOCKET用于建立一个监听套接字以启动设备之间的链路。BLUETOOTHSOCKET用于创建一个新的客户端来连接到正在监听的BLUETOOTHSERVERSOCKET。在建立连接后BLUETOOTHSERVERSOCKET也会返回它。一旦连接建立之后,就在服务器和客户端上使用BLUETOOTHSOCKET来传输数据流。一个BLUETOOTHSERVERSOCKET用于监听来自远程蓝牙设备的传入BLUETOOTHSOCKET连接请求。为了使连个蓝牙设备互相连接,其中一台设备必须充当服务器(监听并接受传入的请求),而另一台设备作为客户端(发出连接到服务器的请求)。一旦两个设备连接之后,那么服务器和客户端设备之间的通信将会通过服务器端和客户端的BLUETOOTHSOCKET进行处理。为使BLUETOOTHADAPTER作为服务器,需调用其LISTENUSINGRFCOMMWITHSERVICERECORD方法来监听传来的连接请求,并传入用于标识服务器的名称和一个UUID。该方法将会返回一个BLUETOOTHSERVERSOCKET对象。为了开始监听连接,需要调用该SERVERSOCKET的ACCEPT的方法,并可以选择传入一个超时时间。SERVERSOCKET将会保持阻塞,直到具有匹配的UUID的远程BLUETOOTHSOCKET客户端尝试进行连接。蓝牙配对如图313所示。图313蓝牙配对示意图BLUETOOTHADAPTER对于连接它的远程蓝牙设备来说必须是可发现的。程序清单表明了监听BLUETOOTHSOCKET连接请求。PRIVATEBLUETOOTHSOCKETTRANSFERSOCKETPRIVATEUUIDSTARTSERVERSOCKETBLUETOOTHADAPTERBLUETOOTHUUIDUUIDUUIDFROMSTRING“A60F35F0B93A11DE8A3908002009C666”STRINGNAME“BLUETOOTHSERVER”TRYFINALBLUETOOTHSERVERSOCKETBTSERVERBLUETOOTHLISTENUSINGRFCOMMWITHSERVICERECORDNAME,UUIDTHREADACCEPTTHREADNEWTHREADNEWRUNNABLEPUBLICVOIDRUNTRYBLUETOOTHSOCKETSERVERSOCKETBTSERVERACCEPTLISTENFORMESSAGESSERVERSOCKETTRANSFERSOCKETSERVERSOCKETCATCHIOEXCEPTIONELOGE“BLUETOOTH”,“SERVERCONNECTIONIOEXCEPTION”,EACCEPTTHREADSTARTCATCHIOEXCEPTIONELOGE“BLUETOOTH”,“SOCKETLISTENERIOEXCEPTION”,ERETURNUUID选择远程蓝牙设备进行通信,通过调用代表目标远程服务器设备的BLUETOOTHDEVICE对象的CREATRFCOMMSOCKETTOSERVICERECORD创建客户端BLUETOOTHSOCKET。为了使BLUETOOTHSOCKET建立一个远程蓝牙设备的连接,下列条件必须满足远程设备必须是可发现的。远程设备必须使用一个BLUETOOTHSERVERSOCKET接受连接。本地和远程设备必须经过配对。如果设备没有配对,那么当启动连接请求时将提示用户进行配对。查找要连接到的蓝牙设备,蓝牙设备对象用于表示一个远程设备。可以查询它们来获得每个远程设备的属性,或者启动BLUETOOTHSOCKET连接。可通过使用STARTDISCOVERY方法并监视ACTION_FOUND广播。也可以使用本地BLUETOOTHADAPTER的GETREMOTEDEVICE方法,并指定你想要连接到的远程蓝牙设备的硬件地址。打开一个客户端BLUETOOTHSOCKET连接,为了启动到远程设备的通信信道,使用代表套接字的BLUETOOTHDEVICE对象创建一个BLUETOOTHSOCKET。为了创建一个新连接,调用代表目标设备的BLUETOOTHDEVICE对象的CREATRFCOMMSOCKETTOSERVICERECORD方法,并传入其已打开的BLUETOOTHSERVICESOCKET监视器的UUID。然后调用CONNECT,使用所返回的BLUETOOTHSOCKET来启动连接,如程序清单所示。PRIVATEVOIDCONNECTTOSERVERSOCKETBLUETOOTHDEVICEDEVICE,UUIDUUIDTRYBLUETOOTHSOCKETCLIENTSOCKETDEVICECREATERFCOMMSOCKETTOSERVICERECORDUUIDCLIENTSOCKETCONNECT/STARTLISTENINGFORMESSAGESLISTENFORMESSAGESCLIENTSOCKET/ADDAREFERENCETOTHESOCKETUSEDTOSENDMESSAGESTRANSFERSOCKETCLIENTSOCKETCATCHIOEXCEPTIONELOGE“BLUETOOTH”,“BLUETOOTHCLIENTI/OEXCEPTION”,E使用BLUETOOTHSOCKET传输数据,一旦连接建立之后,客户端和服务器设备上都会有BLUETOOTHSOCKET。自此之后,两者之间没有显著区别可以使用这两种设备上的BLUETOOTHSOCKET来发送和接收数据。BLUETOOTHSOCKET中的数据传输是通过标准的INPUTSTREAM和OUTPUTSTREAM对象来处理的,可以分别使用GETINPUTSTREAM和GETOUTPUTSTREAM方法从BLUETOOTHSOCKET中获得这两个对象。程序清单展示了两种简单的框架方法,第一种方法用于将字符串发送到使用了OUTPUTSTREAM的远程设备;第二种方法使用INPUTSTREAM以监听传入的字符串。PRIVATEVOIDLISTENFORMESSAGESBLUETOOTHSOCKETSOCKET,STRINGBUILDERINCOMINGLISTENINGTRUEINTBUFFERSIZE1024BYTEBUFFERNEWBYTEBUFFERSIZETRYINPUTSTREAMINSTREAMSOCKETGETINPUTSTREAMINTBYTESREAD1WHILELISTENINGBYTESREADINST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政服务相关法律安全卫生常识2
- 公司低档白酒操作营销攻略( 20)
- 自动控制理论二教学大纲 (一)
- 施工现场综合管理考核评分细则
- 广东省佛山市2024-2025学年下学期七年级英语期末模拟测试卷(一)(无答案)
- 2025年湖南省长沙市九年级全真模拟英语试题(保温卷)(无答案)
- 2025年Android应届毕业生“过五关斩六将”怒刷千题让你面试一路畅通
- 2025年Android事件分发机制及设计思路面试建议-android事件分发机制面试
- 部编版三年级下册第二单元《陶罐和铁罐》教案
- 建筑施工特种作业-建筑起重机械安装拆卸工(塔式起重机)真题库-6
- 围栏网片采购安装投标方案(技术标)
- 2024年中考语文满分作文6篇(含题目)
- 浙江省2024年高中化学1月学业水平考试试题
- 四星级酒店规划设计方案
- DL∕T 1362-2014 输变电工程项目质量管理规程
- 台球杆头产品项目运营指导方案
- 家电清洗技术手册
- 《排列组合的综合运用》练习试题(含答案)
- 2022-2023学年河南省郑州市高一下学期期末考试数学试题(解析版)
- 霍尼韦尔空气净化器说明书kj550
- 在线网课知慧《流行病学与循证医学(山盟-山东第一医科大学)》单元测试考核答案
评论
0/150
提交评论