691|1

1237

帖子

66

TA的资源

纯净的硅(中级)

楼主
 

【NUCLEO-WBA52CG STM32无线产品家族新系列】+5、BLE_DataThroughput_Server [复制链接]

STM32WBA支持低功耗蓝牙(BLE)5.3应用所需的性能、效率和安全性,特性包括:

  •  高数据速率确保快速可靠的数据传输
  • 远距离能力,扩大通信距离
  • 高输出功率,输出功率+10 dBm扩大了通信距离
  • 低功耗通讯功能可延长电池寿命
  • 基于低功耗蓝牙(BLE)5.3技术打造创新型设备
  • 通过设备通信广播扩展来延长电池寿命
  • 确保快速、可靠的数据传输,空中通信速率高达2Mbps
  • CoreMark评分达到407,确保高效的应用处理

BLE_DataThroughput_Server例程演示了如何作为GATT服务器实现点对点的通信,支持一个数据传输服务和支持通知的传输特征值。基于该例程修改我们很容易开发自己的蓝牙通信程序。通过官方提供的手册,可以了解基本的蓝牙应用构成:

从图中可以看出,ST将蓝牙应用分为3层,最底层为蓝牙协议栈,中间层为GATT管理模块,提供蓝牙服务,上层为GAP管理模块,包含用户应用。

GAP(Generic Access Profile)用来控制设备连接和广播,GAP 使设备被其他设备可见,并决定了设备是否可以或者怎样与其它设备进行交互。GAP 给设备定义了若干角色,其中主要的两个是:外围设备(Peripheral)和中心设备(Central)。

外围设备:这一般就是非常小或者简单的低功耗设备,用来提供数据,并连接到一个更加相对强大的中心设备。
中心设备:中心设备相对比较强大,用来连接其他外围设备。

在 GAP 中外围设备通过两种方式向外广播数据:广播数据和扫描回复。广播数据是必需的,因为外设必需不停的向外广播,让中心设备知道它的存在。扫描回复是可选的,中心设备可以向外设请求扫描回复,这里包含一些设备额外的信息,例如设备的名字。

GATT(Generic Attribute Profile)定义两个 BLE 设备通过叫做 Service 和 Characteristic 的东西进行通信。GATT 连接是独占的。也就是一个 BLE 外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见。当设备断开,它又开始广播。

中心设备和外设需要双向通信的话,唯一的方式就是建立 GATT 连接。GATT事务是建立在嵌套的Profiles,Services和Characteristics之上的,

每个Service有一个UUID唯一标识。UUID有16bit的,或者128bit的。

Characteristic是最小的逻辑数据单元,每个Characteristic用16bit或者128bit的UUID唯一标识。

官方提供的通过STM32CubeMX生成的程序都具有下图所示的结构:用户不需要关系底层的蓝牙协议是如何实现的,只需要开发自己的特征值和服务应用即可。

 

串口打印日志,上电后开启广播,手机连接后就停止广播,并提供特征值的访问:

 

 

连接后可以看到特征值和服务:

通知开启和关闭:

 

 

 

 

此帖出自RF/无线论坛

最新回复

我们不需要关心底层的蓝牙协议是如何实现的,也是很方便的   详情 回复 发表于 2023-9-4 07:30
点赞 关注
 

回复
举报

6593

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

我们不需要关心底层的蓝牙协议是如何实现的,也是很方便的

此帖出自RF/无线论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表