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

其实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编解码器集成到蓝牙堆叠中。

作者:昇润科技
來源: 简书

--电子创新网--
粤ICP备12070055号