【NUCLEO-WBA52CG STM32无线产品家族新系列】+5、BLE_DataThroughput_Server
<p><span style="font-family:宋体;">STM32WBA支持低功耗蓝牙(BLE)5.3应用所需的性能、效率和安全性,特性包括:</span></p><ul>
<li> 高数据速率确保快速可靠的数据传输</li>
<li>远距离能力,扩大通信距离</li>
<li>高输出功率,输出功率+10 dBm扩大了通信距离</li>
<li>低功耗通讯功能可延长电池寿命</li>
<li>基于低功耗蓝牙(BLE)5.3技术打造创新型设备</li>
<li>通过设备通信广播扩展来延长电池寿命</li>
<li>确保快速、可靠的数据传输,空中通信速率高达2Mbps</li>
<li>CoreMark评分达到407,确保高效的应用处理</li>
</ul>
<p><span style="font-family:宋体;">BLE_DataThroughput_Server例程演示了如何作为GATT服务器实现点对点的通信,支持一个数据传输服务和支持通知的传输特征值。基于该例程修改我们很容易开发自己的蓝牙通信程序。通过官方提供的手册,可以了解基本的蓝牙应用构成:</span></p>
<div style="text-align: center;">
<ul>
</ul>
</div>
<p>从图中可以看出,ST将蓝牙应用分为3层,最底层为蓝牙协议栈,中间层为GATT管理模块,提供蓝牙服务,上层为GAP管理模块,包含用户应用。</p>
<p>GAP(Generic Access Profile)用来控制设备连接和广播,GAP 使设备被其他设备可见,并决定了设备是否可以或者怎样与其它设备进行交互。GAP 给设备定义了若干角色,其中主要的两个是:外围设备(Peripheral)和中心设备(Central)。</p>
<p>外围设备:这一般就是非常小或者简单的低功耗设备,用来提供数据,并连接到一个更加相对强大的中心设备。<br />
中心设备:中心设备相对比较强大,用来连接其他外围设备。</p>
<p>在 GAP 中外围设备通过两种方式向外广播数据:广播数据和扫描回复。广播数据是必需的,因为外设必需不停的向外广播,让中心设备知道它的存在。扫描回复是可选的,中心设备可以向外设请求扫描回复,这里包含一些设备额外的信息,例如设备的名字。</p>
<p>GATT(<em>Generic Attribute Profile</em>)定义两个 BLE 设备通过叫做 Service 和 Characteristic 的东西进行通信。<strong>GATT 连接是独占的</strong>。也就是一个 BLE 外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见。当设备断开,它又开始广播。</p>
<p>中心设备和外设需要双向通信的话,唯一的方式就是建立 GATT 连接。GATT事务是建立在嵌套的Profiles,Services和Characteristics之上的,</p>
<p>每个Service有一个UUID唯一标识。UUID有16bit的,或者128bit的。</p>
<p>Characteristic是最小的逻辑数据单元,每个Characteristic用16bit或者128bit的UUID唯一标识。</p>
<p>官方提供的通过STM32CubeMX生成的程序都具有下图所示的结构:用户不需要关系底层的蓝牙协议是如何实现的,只需要开发自己的特征值和服务应用即可。</p>
<div style="text-align: center;"></div>
<p> </p>
<p>串口打印日志,上电后开启广播,手机连接后就停止广播,并提供特征值的访问:</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p>连接后可以看到特征值和服务:</p>
<div style="text-align: center;"></div>
<p>通知开启和关闭:</p>
<p> </p>
<div style="text-align: center;"></div>
<p> </p>
<p> </p>
<p> </p>
<p>我们不需要关心底层的蓝牙协议是如何实现的,也是很方便的</p>
页:
[1]