蓝牙开发相关概念

一.蓝牙种类。

1.蓝牙分类

完整的蓝牙4.0规范中实际上包括有经典蓝牙和低功耗蓝牙这两个部分。蓝牙实际上分为了三类:单模、双模和经典,最官方的蓝牙版本称呼就是,单模蓝牙、双模蓝牙和经典蓝牙。

  单模 双模 经典
单模 LE LE
双模 LE 经典 经典
经典 经典 经典

2.蓝牙适用场景

经典蓝牙:
蓝牙最初的设计意图,是打电话放音乐。3.0版本以下的蓝牙,都称为“经典蓝牙”。功耗高、传输数据量大、传输距离只有10米。传声音的,用经典蓝牙,如蓝牙耳机、蓝牙音箱。蓝牙设计的时候就是为了传声音的,所以是近距离的音频传输的不二选择。传大量数据:如某些工控场景,使用Android或Linux主控,外挂蓝牙遥控设备的,可以使用经典蓝牙里的SPP协议,当作一个无线串口使用。速度比BLE传输快多了。
低功耗蓝牙:
就是BLE,通常说的蓝牙4.0(及以上版本)。低功耗,数据量小,距离50米左右。电池供电、连手机APP的,用BLE:如共享单车锁、蓝牙智能锁、蓝牙防丢器、蓝牙室内定位,是目前手机和智能硬件通信的性价比最高的手段。直线距离约50米,一节5号电池能用一年,传输模组成本10块钱,远比WIFI、4G等大数据量的通信协议更实用。
双模蓝牙:
又要声音又要数据的,用双模蓝牙:双模蓝牙,就是同时支持经典蓝牙音频和低功耗蓝牙。如智能电视遥控器、降噪耳机等。很多智能电视配的遥控器带有语音识别,需要用经典蓝牙才能传输声音

3.工具

推荐你使用腾讯的AirSyncDebugger APP来确认你的蓝牙耳机是否是BLE:
AirSync协议调试工具

一.蓝牙概念。

1.central(中心设备)和peripheral(外围设备)

蓝牙在应用开发过程中,有两种角色,分别是central和peripheral,中文就是范制定了两种不同的UUID,一种是基本的UUID,一种是代替基本UUID的16位UUID。所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:
0x0000xxxx-0000-1000-8000-00805F9B34FB
为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID,以代替上面的基本UUID的‘x’部分。例如,心率测量特性使用0X2A37作为它的16位UUID,因此它完整的128位UUID为:
0x00002A37-0000-1000-8000-00805F9B34FB中心和外设。比如手机去连接智能设备,那手机就是central,智能设备就是peripheral。大多时候都是central去连接peripheral的场景,所以我们就来说他的流程。

2.广播和连接

peripheral会发出广播(advertisement),central扫描到广播后,可以对设备进行连接,发出connect请求,peripheral接收到请求并同意连接后,central和peripheral就建立了连接。
Service
一个低功耗蓝牙设备可以定义许多 Service, Service 可以理解为一个功能的集合。设备中每一个不同的 Service 都有一个 128 bit 的 UUID 作为这个 Service 的独立标志。蓝牙核心规
Characteristic
在 Service 下面,又包括了许多的独立数据项,我们把这些独立的数据项称作 Characteristic。同样的,每一个 Characteristic 也有一个唯一的 UUID 作为标识符。,建立蓝牙连接后,我们说的通过蓝牙发送数据给外围设备就是往这些 Characteristic 中的 Value 字段写入数据;外围设备发送数据给手机就是监听这些 Charateristic 中的 Value 字段有没有变化,如果发生了变化,手机的 BLE API 就会收到一个监听的回调。包含在服务下, 描述该服务下特定的功能的, 一般拥有多个characteristic, 而且characteristic有类型, 读(read), 写(write), 通知(notify)等
UUID(Universally Unique Identifier)
设备的每一个service有他相应的UUID, 同时每一个characteristic也有相应的UUID
流程概览
service and characteristic 每个设备会提供服务和特征,类似于服务端的api,但是机构不同。每个外设会有很多服务,每个服务中包含很多字段,这些字段的权限一般分为 读read,写write,通知notiy几种,就是我们连接设备后具体需要操作的内容。

三.开发流程

1. 建立中心角色

2. 扫描外设(discover)

3. 连接外设(connect)

4. 扫描外设中的服务和特征(discover)

4.1 获取外设的services

4.2 获取外设的Characteristics,获取Characteristics的值,获取Characteristics的Descriptor和Descriptor的值

5. 与外设做数据交互(explore and interact)

6. 订阅Characteristic的通知

7. 断开连接(disconnect)

你可能感兴趣的:(蓝牙开发相关概念)