想从事BLE蓝牙开发?本文先带你了解下BLE和蓝牙协议的一些知识

发布日期:2017.11.14     浏览次数:199

“BLE模块是什么?适合什么平台?”这是网友私信的问题。其实BLE只是个通用的技术术语,与平台无关的,即iosAndroid以及一些嵌入式系统或单片机都可以有BLE模块。

那对BLE相关应用的开发人员来说,有必要先去了解BLE和蓝牙协议的一些知识。

 

BLE简单介绍

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

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

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

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

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

 

关键术语

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

 

BLE交互的桥梁是CharacteristicDesciptorService

Characteristic:可以理解为一个数据类型,它包括一个value0至多个对此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)在通信实体之间,协议仅针对每一层,实体之间的通信,就像每一层之间的通信一样,这样有利于交流,理解和标准化。