打开主菜单

谷雨文档中心 β

更改

BLE技术揭秘

添加744字节2019年8月15日 (四) 10:09
步骤一:上电初始化
=== 通信 ===
读写特征值,以及通知。低功耗蓝牙协议里,为了方便主从机通信,引用了<code>服务 Service</code> 和 <code>特征值 Characteristic</code> 的概念。每个服务和特征值都有自己的唯一标识 <code>UUID</code>。
内容待完善。一个从机设备包括一个或者多个服务;一个服务中又可以包括一条或者多条特征值,每个特征值都有自己的属性 Property,属性的取值有:<code>可读 Read</code>,<code>可写 Write</code> 以及 <code>通知 Notify</code>,可读可写的字面意思容易理解,表示该特征值可以被主机读取和写入数据,而通知则表示从机可以主动向主机发送通知数据。这便是主从机之间两个典型的通信方式。
=== 断开 ===
[[文件:BLE技术-交互流程1-初始化.png|居中|无框|750x750像素]]
* 主机设备,主机初始化时,需要设置设备类型,设置用于扫描的相关参数,初始化GATT等协议相关的参数。(下一章节详细介绍何为GATT)
* 从机设备,从机初始化时,需要设置设备名称,广播相关参数,从机Profile等。然后立即开启广播,或者等待一个事件来触发广播。从机设备,从机初始化时,需要设置设备名称,广播相关参数,从机Profile等。从机一般会立即开启广播,也可以等待一个事件来触发广播,例如按键触发。
==== '''步骤二:主机扫描从机''' ====
可以使用按键触发主机扫描从机,此时,主机显示屏打印Scanning正在扫描。此刻的从机仍然处于广播状态。按键按下,触发主机扫描从机,此时,主机显示屏打印Scanning正在扫描。此刻的从机仍然处于广播状态。[[文件:BLE技术-交互流程2-扫描.png|居中|无框|750x750像素]]
==== 步骤三:发现从机设备 ====
当主机扫描到从机时,可以返回已扫描到的从机相关信息,例如可以提取到下图中的从机设备名称,从机MAC地址,从机的RSSI信号值等数据。
可以在从机的广播包或者扫描回应包中添加自定义字段,这样就可以被主机通过扫描的方式拿到数据。因此,有些应用在从机的广播包或者扫描回应包中添加自定义字段,这样就可以被主机通过扫描的方式拿到数据。[[文件:BLE技术-交互流程3-发现设备.png|居中|无框|750x750像素]]
==== 步骤四:发送连接请求 ====
当主机扫描到从机后,通过MAC地址,向指定的从机发送连接请求。低功耗蓝牙的连接速度非常快,100ms左右就可以成功连接上。当主机扫描到从机后,通过MAC地址向从机发送连接请求。低功耗蓝牙的连接速度非常快,100ms左右即可成功连接上。如果从机的广播比较大,则会影响连接的速度。
从机在未收到连接请求之前仍然处于自由的广播状态。[[文件:BLE技术-交互流程4-发送连接请求.png|居中|无框|750x750像素]]
当从机收到连接请求后,双方成功建立连接,此时双方的状态均变为已连接状态。
此刻,主机可以调用协议栈提供的接口函数,来获取从机的服务。然后主机可以调用协议栈提供的接口函数来获取从机的服务。[[文件:BLE技术-交互流程5-完成连接.png|居中|无框|750x750像素]]
==== 步骤六:获取从机服务 ====
2,367
个编辑