打开主菜单

谷雨文档中心 β

更改

BLE技术揭秘

添加1,655字节2019年8月15日 (四) 15:14
通信
=== 通信 ===
低功耗蓝牙协议里,引用了<code>服务 Service</code> 和 <code>特征值 Characteristic</code> 的概念。每个服务和特征值都有自己的唯一标识 <code>UUID</code>,芯片中采用两个字节的UUID。
一个从机设备包括一个或者多个服务;一个服务中又可以包括一条或者多条特征值,每个特征值都有自己的属性 Property,属性的取值有:一个从机设备包括一个或者多个服务;一个服务中又可以包括一条或者多条特征值,每个特征值都有自己的<code>属性 Property</code>,属性的取值有:<code>可读 Read</code>,<code>可写 Write</code> 以及 <code>通知 Notify</code>,可读可写的字面意思容易理解,表示该特征值可以被主机读取和写入数据,而通知则表示从机可以主动向主机发送通知数据。这便是主从机之间两个典型的通信方式。 可读可写的字面意思容易理解,表示该特征值可以被主机读取和写入数据,而通知则表示从机可以主动向主机发送通知数据。这便是主从机之间两个典型的通信方式。 下图是一个典型的从机设备,该从机包含有一个Profile,两个个Service和五个Characteristic。我们先来介绍这些特征值的作用,然后介绍如何通过特征值通信。[[文件:BLE技术-Profile与Service.png|居中|无框|600x600像素]]'''服务0x180A''' 180A是蓝牙协议里标准的服务UUID,用来描述<code>设备信息 Device Information</code>,可以通过该服务,来提供从机设备的相关说明,例如硬件版本,软件版本,序列号等信息。这样,主机就可以获取从机的设备信息。上图中我们添加了三个提供具体设备信息的特征值,他们分别是:* 特征值0x2A24,描述产品型号 <code>Model Number String</code>,例如某智能锁的产品型号为:“DSL-C07”。* 特征值0x2A25,描述产品序列号 <code>Serial Number String</code>,例如某智能锁的产品序列号为:“lkjl0016190502552269”* 特征值0x2A26,描述产品固件版本号 Firmaware Revision String,例如某智能锁的固件号为:“2.7.2.0”上述特征值仅有Read属性,因此主机只能读,不能执行写操作。 '''服务0xFFF0''' FFF0是我们自定义的服务UUID,它包含两个特征值,用来发送和接收数据。* 特征值0xFFF1,自定义的数据发送通道,具有Read和Write属性,主机可以通过该特征值,向从机发送数据,至于发送的数据最大长度,可以在Profile中配置。* 特征值0xFFF2,自定义的数据接收通道,具有Notify属性,从机可以通过该特征值,主动向主机发送数据。
=== 断开 ===
2,367
个编辑