Bluetooth LE AT 示例(BLE调试助手和模块连接过程)

一,简介

ESP-AT 当前仅支持 Bluetooth LE 4.2 协议规范,本文档中的描述仅适用于 Bluetooth LE protocol 4.2 协议规范。请参考 核心规范 4.2 获取更多信息。

Bluetooth LE 协议架构

Bluetooth LE 协议栈从下至上分为几个层级:Physical Layer (PHY)Link Layer (LL)Host Controller Interface (HCI)Logical Link Control and Adaptation Protocol Layer (L2CAP)Attribute Protocol (ATT)Security Manager Protocol (SMP)Generic Attribute Profile (GATT)Generic Access Profile (GAP)

  • PHY:PHY 层主要负责在物理信道上发送和接收信息包。Bluetooth LE 使用 40 个射频信道。频率范围:2402 MHz 到 2480 MHz。

  • LL:LL 层主要负责创建、修改和释放逻辑链路(以及,如果需要,它们相关的逻辑传输),以及与设备之间的物理链路相关的参数的更新。它控制链路层状态机处于 准备广播监听/扫描发起连接已连接 五种状态之一。

  • HCI:HCI 层向主机和控制器提供一个标准化的接口。该层可以由软件 API 实现或者使用硬件接口 UARTSPIUSB 来控制。

  • L2CAP:L2CAP 层负责对主机和协议栈之间交换的数据进行协议复用能力、分段和重组操作。

  • ATT:ATT 层实现了属性服务器和属性客户端之间的点对点协议。ATT 客户端向 ATT 服务端发送命令、请求和确认。ATT 服务端向客户端发送响应、通知和指示。

  • SMP:SMP 层用于生成加密密钥和身份密钥。SMP 还管理加密密钥和身份密钥的存储,并负责生成随机地址并将随机地址解析为已知设备身份。

  • GATT:GATT 层表示属性服务器和可选的属性客户端的功能。该配置文件描述了属性服务器中使用的服务、特征和属性的层次结构。该层提供用于发现、读取、写入和指示服务特性和属性的接口。

  • GAP:GAP 层代表所有蓝牙设备通用的基本功能,例如传输、协议和应用程序配置文件使用的模式和访问程序。GAP 服务包括设备发现、连接模式、安全、身份验证、关联模型和服务发现。

Bluetooth LE 角色划分

在 Bluetooth LE 协议栈中不同的层级有不同的角色划分。这些角色划分互不影响。

  • LL:设备可以划分为 主机从机,从机广播,主机可以发起连接。

  • GAP:定义了 4 种特定角色:广播者观察者外围设备中心设备

  • GATT:设备可以分为 服务端客户端

重要

  • 本文档中描述的 Bluetooth LE 服务端Bluetooth LE 客户端 都是 GATT 层角色。

  • 当前,ESP-AT 支持 Bluetooth LE 服务端Bluetooth LE 客户端 同时存在。

  • 不论 ESP-AT 初始化为 Bluetooth LE 服务端还是 Bluetooth LE 客户端,同时连接的最大设备数量为 3

GATT 其实是一种属性传输协议,简单的讲可以认为是一种属性传输的应用层协议。这个属性的结构非常简单。它由 服务 组成,每个服务由不同数量的 特征 组成,每个 特征 又由很多其它的元素组成。

GATT 服务端GATT 客户端 这两种角色存在于 Bluetooth LE 连接建立之后。GATT 服务器存储通过属性协议传输的数据,并接受来自 GATT 客户端的属性协议请求、命令和确认。简而言之,提供数据的一端称为 GATT 服务端,访问数据的一端称为 GATT 客户端

重要

  • ESP32 Bluetooth LE 服户端需烧录 ble_data.bin 文件到 flash 中,用以提供 Bluetooth LE 服务。

  • ble_data.bin 文件的烧录地址,见 at_customize.csvble_data 对应的地址,或者在文件 build/download.config 中记录的地址。

二,BLE调试助手和模块连接过程

仅作笔记

参考链接:

(11条消息) ESP32 使用BLE蓝牙透传_esp32 蓝牙透传_乐乐爱学习1的博客-CSDN博客

1,硬件准备。

模块名称ESP-WROOM-32

UART0用于日志打印输出和更新固件,UART2用来接收AT指令通信。

上位机使用串口工具,USB转串口连接蓝牙模块。

手机APP使用 "BLE蓝牙调试助手",手机应用市场可下载。

2,更换蓝牙模块bin文件。

模块默认固件可能不支持,需要更新固件。我使用了

ESP32-WROOM-32_AT_Bin_V2.4.0.0.zip

链接

发布的固件 - ESP32 - — ESP-AT 用户指南 latest 文档 (espressif.com)

3,指令准备
AT+BLEINIT=2 //将esp32设置成蓝牙服务端
AT+BLEGATTSSRVCRE //GATTS 创建服务
AT+BLEGATTSSRVSTART //GATTS 开启全部服务。
AT+BLEADDR?  //ESP32 蓝牙 LE 服务器获取其 MAC 地址。
AT+BLEADVPARAM=50,50,0,0,7,0,,  //ESP32 Bluetooth LE 服务端设置广播参数。
AT+BLENAME="AiThinker"
AT+BLEADVDATA="0201060A0941695468696E6B6572"
AT+BLEADVSTART //
4,串口工具。扩展里发送多条指令,记得勾选“加回车换行”。
5,BLE调试助手。

6,连接成功之后,串口工具提示
+BLECONN:0,"69:60:2c:27:27:14"
+BLECONNPARAM:0,0,0,6,0,500
+BLECONNPARAM:0,0,0,9,0,2000
7,app发送数据,串口接收。

三,总结。

1,发送单个字符,速度还是比较快的,但是多个字符明显慢了,不知道什么原因。

2,断开连接之后,助手不能再发现模块了,须模块发送“AT+BLEADVSTART”指令。

3,手机自带蓝牙发现不了,必须再BLE调试助手中发现设备。

4,最后想实现透传,还没实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值