zoukankan      html  css  js  c++  java
  • 深入了解Android蓝牙Bluetooth——《基础篇》

    什么是蓝牙?

      也能够说是蓝牙技术。所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的。利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通信,从而使这些现代通信设备与因特网之间的传输数据变得更加迅速高效,为无线通信拓宽道路。

    蓝牙版本号的介绍

      蓝牙发展至今经历了8个版本号的更新。1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2、5.0。

    当然5.0的蓝牙模块眼下Google虽已公布,可是市场上还未见到5.0的蓝牙设备。那么我们就尽请期待5.0蓝牙设备的到来。

      那么在1.x~3.0之间的我们称之为传统蓝牙,4.x開始的蓝牙我们称之为低功耗蓝牙也就是蓝牙ble。当然4.x版本号的蓝牙也是向下兼容的。android手机必须系统版本号4.3及以上才支持BLE API。

    蓝牙2.0标准:

    • 蓝牙2.0标准2.0 是 1.2 的改良提升版。传输率约在
      1.8M/s~2.1M/s,
    • 開始支持双工模式——即一面作语音通讯。同一时候亦能够传输档案/高质素图片
    • 2.0 版本号当然也支持 Stereo 运作。

    • 应用最为广泛的是Bluetooth 2.0+EDR标准,该标准在2004年已经推出,支持Bluetooth 2.0+EDR标准的产品也于2006年大量出现。
    • 尽管Bluetooth 2.0+EDR标准在技术上作了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依旧存在。
    长处:
    • 数据量能够大一些、手机不须要蓝牙4.0
    缺点:
    • 须要MFI认证,认证后能够购买苹果指定的解密芯片,方可使用蓝牙传输数据。MFI认证约9.9万美元/款产品,认证周期约半年。
    • 蓝牙2.1+MFI认证芯片,能够支持苹果iPhone4、iPhone4S、iPhone5等具有蓝牙2.1以上功能的苹果IOS设备

    蓝牙V2.1+EDR:

    相比于2.0版本号速度要更快,2.1+EDR 版本号的理论传输速率能达到2.1Mbps。而且增加了“Sniff Subrating”技术。这个技术是透过设定在2个装置之间互相确认讯号的发送间隔来节省功耗。

    对于须要持续传输数据流的硬件设备而言。比方键盘、鼠标等。该技术能够将电池续航能力延长最多5倍。

    蓝牙3.0标准:

    • 2009年4月21日。蓝牙技术联盟(Bluetooth SIG)正式颁布了新一代标准规范”Bluetooth Core Specification Version 3.0 High Speed”(蓝牙核心规范3.0版 )
    • 蓝牙3.0的核心是”Generic Alternate MAC/PHY”(AMP)。这是一种全新的交替射频技术,同意蓝牙协议栈针对任一任务动态地选择正确射频。
    • 蓝牙3.0的传输数据率提高到了大约24Mbps(就可以在须要的时候调用802.11 WI-FI用于实现快速传输数据)。
    • 在传输速度上。蓝牙3.0是蓝牙2.0的八倍。能够轻松用于录像机至高清电视、PC至PMP、UMPC至打印机之间的资料传输。可是须要两方都达到此标准才干实现功能。

    长处
    • 在应用方面相比于V2.1+EDR版本号。V3.0的传输数据速率理论已达24Mbps,能够用于高清电视、笔记本电脑、平板电脑和打印机之间的资料传输,
    • 同一时候相对于2.1+EDR。3.0又引入了增强电源控制机制。使空暇时功耗明显减少。

    蓝牙4.0标准:

    • 蓝牙4.0规范于2010年7月7日正式公布,新版本号的最大意义在于低功耗
    • 同一时候加强不同OEM厂商之间的设备兼容性,而且减少延迟,理论最高传输速度依旧为24Mbps(即3MB/s),有效覆盖范围扩大到100米(之前的版本号为10米)。
    • 该标准芯片被大量的手机、平板所採用,如苹果The New iPad平板电脑,以及苹果iPhone 5、魅族MX4、HTC One X等手机上带有蓝牙4.0功能。
    长处:
    • 不需做苹果解密芯片,不需MFI苹果认证。

    缺点:
    • 数据量不能太大、手机必须是蓝牙4.0的。(蓝牙4.0能够支持苹果
    • iPhone4S、iPhone5等具有蓝牙4.0功能的苹果IOS设备)
    长处主要体如今:
    • 1、它拥有高出3.0蓝牙版本号30%以上的续航时间。即是在同等电量下,当蓝牙3.0版本号的用电量已经到达100%时,杰克的用电仅70%。甚至不到。

    • 2、高出3.0蓝牙版本号4倍以上的降噪技术。其CVC6.0消噪技术,比3.0版本号的CVC4.0消噪技术更上一层楼,更深度的降噪,让你的每一次通话、每一首歌曲都能够近在咫尺。
    • 3、4.0以上版本号的真智能—80HZCPU,高出3.0蓝牙版本号5倍以上的无线传输速率。

      更为快捷的传输速度,让你不管听歌、通话。或者是游戏都能够拥有更加顺畅的体验。

    • 眼下4.0的蓝牙最好,传输率最大。距离也较远,待机时间最长,节约电池。

    兼容性:

    蓝牙4.0有几种模式,假设是蓝牙4.0低功耗模式单模的设备(常称为BLE模式)。是不向下兼容的。

    如今主流 4.0BLE蓝牙

    BLE(4.x)低功耗蓝牙

      1. 低功耗蓝牙比传统蓝牙。传输速度更快,覆盖范围更广。安全性更高,延迟更短,耗电极低等等长处
      1. 传统的一般通过socket方式。而低功耗蓝牙是通过Gatt协议来实现。
    • ps: 若是之前没做过传统蓝牙开发,也是能够直接上手低功耗蓝牙开发的。由于它们在通信协议上都有所改变。关联不大。当然有兴趣的能够去下载些传统蓝牙开发的demo看看

      如今我们所处在一个蓝牙4.x的时代。在此之前如我们常常使用的蓝牙耳机就已经跨越了好多的版本号 蓝牙耳机有v1.1 v1.2 v2.0 v2.1…等诸多版本号,到底有什么样的优势呢?当然是版本号越高信号越好,2.0以上支持蓝牙立体声。

    那么我们如今所处的4.x的设备大多是属于主从模式的。

    什么是主从模式

    一个主设备比方手机,一个从设备(这里也成为子设备或从机)主动搜索从机 能够发送 也能够接收, 从机也能够发送和接收 但仅仅能被搜索
    主动搜索从机 能够发送 也能够接收 从机也能够发送和接收 但仅仅能被搜索。

    常见的蓝牙模块BLE工作模式

    对于BLE单设备来讲常见的蓝牙模块的工作模有四种:
    * ##### 主设备模式
    * ##### 从设备模式
    * ##### 广播模式
    * ##### Mesh组网模式
    那么这四个模式各自是什么样的情况呢,那么我们继续开车

    1. 主设备模式

      USR-BLE100支持主设备模式,能够与一个从设备进行连接。

    在此模式下能够对周围设备进行搜索并选择须要连接的从设备进行连接。同一时候能够设置默认连接从设备的MAC地址,这样模块上电之后就能够查找此模块并进行连接。而且支持白名单功能,用户仅仅须要把须要连接的设备的MAC写入白名单中,模块搜索到符合白名单的设备时进行连接。

      用户不须要关注串口数据与无线数据包之间的数据转换过程,仅仅需通过简单的參数设置,就可以实现主设备串口与从设备串口之间的数据透明通信。

      主机连接从设备能够分为3种方式:

    第一种採用搜索的方式,使用前须要设置例如以下參数:

    • (1)设置工作模式为主设备模式 AT+MODE=M
    • (2)开启搜索模式 AT+SCAN
    • (3)假设搜索到从设备。假设序号是1,能够使用快速连接命令进行连接。

      AT+CONN=1

    • (4)完毕设置后,等待指示灯常亮就可以代表连接成功,此时两个串口能够进行数据的透明传输。

      另外一种方式

        假设你知道要连接的从设备的MAC地址也能够採用以下的方式进行连接:

    • (1)使用 MAC 绑定AT指令设置模块上电默认连接从设备MAC地址 AT+CONNADD=FFFFFFFFFF11

    • (2)设置完毕之后使用重新启动指令重新启动模块。模块重新启动之后连接设置的从设备的地址。


      AT+Z

      2. 从设备模式

        BLE支持从设备模式,在此模式下全然符合BLE4.1协议。用户能够依据协议自己开发APP。

      此模式下包括一个串口收发的Service,用户能够通过UUID找到它,里面有两个通道。各自是读和写。用户能够操作这两个通道进行数据的传输。

        假设用户使用USR-BLE100的主设备与该从设备相连接,那么就无需关注里面的协议,两个设备的串口直接就能够进行数据的透明传输,为用户建立一个简单的无线传输通道。

         在此模式下。用户须要将模块的工作模式设置为从设备模式。用户假设自己开发APP须要我们模块的UUID进行连接,UUID为:0x31,0x01,0x9b,0x5f,0x80,0x00,0x00,0x80,0x00,0x10,0x00,0x00,0xd0,0xcd,0x03,0x00我们提供连接的演示样例程序。

      • (1)设置模块工作模式为从设备,指令为 AT+MODE=S
      • (2)用户能够通过以下指令查询模块的连接情况 AT+LINK
      • (3)用户也能够使用以下指令将如今连接断开 AT+DISCONN
      • (4)用户假设不想模块被发现和连接。能够使用以下指令关闭广播数据 AT+ADP=OFF

      3. 广播模式

        比方说USR-BLE100支持广播模式,在这样的模式下模块能够一对多进行广播。用户能够通过AT指令设置模块广播的数据,模块能够在低功耗的模式下持续的进行广播,应用于极低功耗,小数据量。单向传输的应用场合。比方无线抄表,室内定位等功能。

      常见的蓝牙模块的工作模式
    在此模式下。用户能够设置模块进行小数据量广播。用户须要在APP开发时调用BLE标准的接口进行获取,数据须要使用AT指令进行设置
    - (1) 首先将模块模式设置到广播模式 AT+MODE=B
    - (2)使用AT指令设置模块要发送的数据,数据位16进制长度不超过30字节,广播格式请參考BLE 协议。 AT+ADVDATA=0201041Aff4c000215B9407F30F5F8466EAFF925556B57FE6D0001000251
    - (3)通过蓝牙监听软件能够获取到监听的数据包。例如以下
    Markdown

    4. Mesh组网模式

      USR-BLE100支持Mesh组网模式,在这样的模式下模块能够实现简单的自组网络,每一个模块仅仅须要设置同样的通讯password就能够增加到同一网络其中。每一个模块都能够发起数据,每一个模块能够收到数据而且进行回复。而且不须要网关,即使某一个设备出现问题也会跳过并选择近期的设备进行传输。

       USR-BLE100支持Mesh组网模式。能够简单的将多个模块增加到网络中来,利用星型网络和中继技术,每一个网络能够连接超过65000个节点,网络和网络还能够互连,终于可将无数蓝牙模块通过手机、平板电脑或PC进行互联或直接操控。而且不须要网关,即使某一个设备出现问题也会跳过并选择近期的设备进行传输。整个联网过程仅仅须要设备上电并设置通讯password就能够自己主动组网,真正实现简单互联。


    - (1)首先我们须要将模块模式切换到Mesh组网模式
    AT+MODE=F
    - (2)设置通讯password,模块间联网靠password进行区分 AT+PASS=123456
    - (3)重新启动模块,模块进入组网模式 AT+Z
    - (4)此时我们将多个模块依照这样的方式进行设置,当一个模块串口发送数据时。周围靠近的模块就会收到, 然后将其输出到串口,而且将数据再发送给周围未收到数据的模块,依次类推。
    - (5)当收到数据的设备须要回复时直接串口发送,终于第一次发送的模块会收到回复,完毕网络内部通讯。

    Android BLE蓝牙通讯学习 《本篇是深入了解Android蓝牙:Bluetooth》 基础篇,近期一直和医疗打交道,做些蓝牙有关的app,所以查些资料研究总结了一下,把应用的东西总结一下。

    接下来请期待——-深入了解Android蓝牙:Bluetooth《进级篇》

    假设你认为此文对您有所帮助,欢迎入群 QQ交流群 :232203809
    微信公众号:终端研发部

    Markdown

    (欢迎关注学习和交流)

  • 相关阅读:
    洛谷 P1325 雷达安装 解题报告
    洛谷 P2184 贪婪大陆 解题报告
    洛谷 P3942 将军令 解题报告
    洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
    洛谷 P1436 棋盘分割 解题报告
    C++生成dump文件,调试dump文件
    判断机器大小端的两种实现方法
    判断机器大小端的两种实现方法
    Visual Studio 代码生成 运行时库的选择
    Visual Studio 代码生成 运行时库的选择
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8435184.html
Copyright © 2011-2022 走看看