02-低功耗蓝牙学习

发布时间 2023-11-18 15:21:07作者: 一步一磕头的菜鸡

原文链接: https://learn.adafruit.com/ble-hid-keyboard-buttons-with-circuitpython/understanding-ble

一. 了解两个基本概念
1. GAP: 全称Generic Access Profile通用接口规范.

功能描述:
GAP模式下主要是处理广播和广告(广播主要是发送公共信息, 广告则是低功耗蓝牙用于宣告自己的存在, 并提供可连接信息的一种机制). 例如自己的设备名称, 也可以广告必要信息去和目标设备建立连接, 如果信息是目标设备期望的.设备还可以广告自己可用的服务.

设备角色:
Peripheral: 外设可以理解为从机, 这些设备通常是智能手表, CPB以及Magic Light等设备.
Central:    中心设备这里可以理解为主机, 这些设备通常可以是手机, 电脑, 以及移动设备等.

关系描述:
信息通过Peripheral发送, 在与目标确定建立连接前, 所有的Central设备可以接收这个广告. Periperal广播的信息可能是其设备名称, 描述其功能或者其它数据. Central可以找到发送广播的外设与其建立连接, 并且可以通过信息明确从机的功能.

2. GATT: 全称Generic ATTribute Profile 通用属性配置文件

功能描述: 
GATT模式下主要是处理连接后的通信和属性交换.

设备角色: 设备连接上后, 主机和从机会有一个角色的转变
Server: 在连接状态下, 设备可能会扮演服务器的角色, 为客户端提供可用的服务. 服务器可用根据客户端的请求发送或接收数据包.
Client: 设备也可以扮演客户端角色, 可用向一个或多个服务器的可用服务发送请求, 来发送和接收数据包.

关系描述:
Profile: 配置文件, 预定义的BLE可以提供服务的集合. 例如心率配文件, 自行车传感器配置文件. 这些由蓝牙兴趣小组SIG定义, 对于没有定义的, 则由厂商自定义.

service: 服务器提供的功能, 例如心率检测器有设备信息, 电池电量服务以及心率本身独立的服务. 每个服务都由特征信息集合组成. 例如心率服务有心率和佩戴位置特征.

Characteristic: 特征是数据值或属性的容器, 特征有着可读或者可写, 或者二者兼备的属性.