美文网首页Android 蓝牙iOS蓝牙开发Android开发
Android BLE介绍和蓝牙协议的一些知识,很值得收藏

Android BLE介绍和蓝牙协议的一些知识,很值得收藏

作者: ff75cdf4bdf3 | 来源:发表于2017-11-09 15:51 被阅读342次

    其实BLE是个通用的技术术语,与平台无关的,即ios和Android以及一些嵌入式系统或单片机都可以有BLE模块。

    那今天先对Android BLE相关的应用开发的进行讲解,不过在了解之前,我们有必要去了解BLE简单介绍和蓝牙协议的一些知识。

    BLE简单介绍

    BLE:Bluetooth Low Energy,即蓝牙低功耗,它是一种技术,从蓝牙4.0开始支持。

    低功耗蓝牙芯片有两种模式:单模和双模。

    *单模:只能执行低功耗协议栈,也就是只支持BLE;

    *双模:即支持传统蓝牙又支持BLE的使用。

    BLE较传统蓝牙具有传输速度更快,覆盖范围更广,安全性更高,延迟更短,耗电低等优点。

    关键术语

    Gatt(Generic Attribute Profile)即通用属性协议,用于在BLE链路上发送和接收的数据块。目前所有的BLE应用都是基于GATT的。一个设备可以实现多个配置文件。

    BLE交互的桥梁是Characteristic、Desciptor、Service。

    Characteristic:可以理解为一个数据类型,它包括一个value和0至多个对此characteristic的描述(Descriptor);

    Descriptor:对Characterisctic的描述,如范围、单位等;

    Service:是Characteristic的集合,它可以包含多个Characteristic。

    重点:一个BLE终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个value和多个Descriptor,一个Descriptor包含一个value(其中Characteristic比较重要,用的比较多)。

    BLE中有四个角色

    广播者(Braodcaster):广播发送者,是不可连接的设备;观察者(Observer):扫描广播,不能够启动连接。

    注:广播者和观察者不能建立连接。

    一般应用:传感器和显示器等。

    中央(central):扫描广播,启动连接,在单一或多链路层作为主机;外围(periphery):广播发送者,可连接的设备,在单一链路层作为从机。

    注:中央和外围可以进行配对、连接、数据通信。值得注意的是一个中央可以同时连接多个周边,但是一个周边只能连接一个中央。

    一般应用:手机和手表等。

    -------------------------------------------------------------------------------------------------------

    蓝牙协议基础概念

    蓝牙协议包括两种技术:一种是Basic

    Rate(简称BR),另一种是Low Energy(简称LE)。

    Basic Rate是正宗的蓝牙技术,可以包括可选的EDR(Enhanced Data Rate)技术,以及交替使用的MAC(Media Access Control)层和PHY层扩展(简称AMP)。

    知识点:BR的发展方向是传输速率越快越好,但随之的是功耗也会越来越大,而在某些场景下,功耗是用户比较关注的,于是BLE就产生了,即Bluetooth LE。

    协议层次

    蓝牙协议分为四个层次:

    (1)物理层:负责提供数据传输的物理通道(通常称为信道);

    (2)逻辑层:在物理层的基础上,提供两个或多个设备之间,和物理无关的逻辑传输通道;

    (3)L2CAP:L2CAP是逻辑链路控制和适配协议的缩写,负责管理逻辑层提供的逻辑链路;

    (4)应用层:基于L2CAP提供的channel,实现各种各样的应用功能。

    蓝牙协议是通信协议的一种,为了把复杂问题简单化,任何通信协议都具有层次性,特点如下:

    (1)从下到上分层,通过层层封装,每一层只需要关心特定,独立的功能,易于实现和维护;

    (2)在通信实体内部,下层向上层提供服务,上层是下层的用户;

    (3)在通信实体之间,协议仅针对每一层,实体之间的通信,就像每一层之间的通信一样,这样有利于交流,理解和标准化。

    Android蓝牙简介

    Android提供默认的蓝牙协议栈是BlueDroid,分为两层:蓝牙嵌入式系统(BTE)和蓝牙应用层(BTA),BTE层主要实现蓝牙的核心功能,BTA层则主要负责和Android框架通信。

    通过这两幅图我们可以看到,Android 8.0的蓝牙架构和Android7.x以及之前版本还是有差别的。主要差别在供应商的扩展方式上,Android 8.0和以前版本之间的本地蓝牙堆栈的最大变化是使用高音。Android 8.0中的供应商实现必须使用HIDL而不是libbt-vendor。

    另外Android 8.0还增强了平台对蓝牙的以下三点支持:

    支持AVRCP 1.4标准,该标准支持音乐库浏览;

    支持蓝牙低功耗(BLE) 5.0标准;

    将Sony LDAC编解码器集成到蓝牙堆叠中。

    相关文章

      网友评论

        本文标题:Android BLE介绍和蓝牙协议的一些知识,很值得收藏

        本文链接:https://www.haomeiwen.com/subject/xjfmmxtx.html