搜索
查看: 2897|回复: 2

[分享] 都挺好:STM32WB+蓝牙Mesh(上)

[复制链接]

该用户从未签到

450

主题

498

帖子

3

蝴蝶豆

社区小助手

最后登录
2020-7-30
发表于 2019-6-21 12:00:45 | 显示全部楼层 |阅读模式
大家对蓝牙应该不会感到陌生,利用经典蓝牙技术的蓝牙耳机/音箱,借助BLE(低功耗蓝牙)技术的运动手环/手表在我们的生活中随处可见。而ZigBee在工业物联网上则是应用广泛。THREAD作为谷歌亲兄弟(Nest Labs)推出的物联网通讯协议,日子自然也不会难过。
在下图中(左下角格子)可以看到,BLE(低功耗蓝牙),THREAD及ZigBee这三项无线传输协议同属于短中距离(10m-100m)和低中传输数据量(bps to Kbps)的定位。这三项协议可比三国的“魏蜀吴”,家家互不相让,都想称霸中原(智能家居、智慧楼宇)。
1.jpg
常见无线传输技术

限于篇幅,我们先来聊聊“三国”中的“魏”—— 蓝牙。


为什么把蓝牙称为“魏”? 一来蓝牙技术联盟(SIG) 旗下成员众多(截止2017年底,33000家会员,好比魏国数不胜数的文将武将),二来蓝牙“挟天子以令诸侯”。这个“天子”就是跟我们形影不离的手机。有了出厂就配备蓝牙的手机这个“天子”,什么智能冰箱、智能手环,不都得向它汇报数据。自然蓝牙也成为了我们生活中最常用的协议。
“三国”最终谁能称霸还是各自偏安一隅,我们尚不得知。但是 “三国”之间相互借鉴的趋势变得越发明显。比如蓝牙Mesh就是蓝牙技术联盟(SIG)在2017年新加入的拓展BLE(低功耗蓝牙)应用场景的一项网络技术,而Mesh的应用场景又恰好是Zigbee的传统擅长领域。
Mesh简单的说就是让我们建立无线节点之间 “多对多”连接的一项技术,目的是为了让信息传递跨越非常大的物理距离。
2.jpg
制造工厂、办公楼、商业园区等的节点
(摘自蓝牙技术联盟公众号)

下表是“三国”Mesh的异同。
3.jpg
不难发现,“三国”的Mesh同属一个RF频段(2.4G),从物理层(PHY)开始有了差异。
BLE Mesh作为一项应用协议,使用并且依赖于BLE(低功耗蓝牙)作为底层协议栈(下图红框内)。
在最开始设计Mesh技术的时候,蓝牙的标准还是4.0,所以考虑到向下兼容性,到目前为止Mesh还是采用BLE 4.0来实现上层的协议栈。只要MCU基于BLE 4.0及以上,满足一定的运算能力来完成加密机制,并且有足够的RAM或Flash来运行协议,就有可能加入Mesh功能。
当然如果像STM32WB这样支持BLE 5.0,会给未来Mesh协议的扩展升级提供更多的可能性。
像其他很多协议一样,Mesh协议栈各层级各司其职。而对于初学者来说,我们只需要关注最高层的model layer(下图黑框内)。在之后文章的代码例程讲解中,我们会重点介绍这一层。
4.jpg
蓝牙Mesh网络协议栈(摘自蓝牙技术联盟公众号)

那在BLE Mesh网络里的“Node”(节点)会有哪些“Feature”(特性)呢?

还记得我们的“天子”——手机吗?
  • 要跟“天子”递奏折传递信息自然需要“太监”作为媒介,只有“太监”才能读懂“天子”的心情。我们把能够实现GATT和蓝牙mesh节点之间消息发送与接收的节点特性称为 “Proxy” (代理)。
  • 那如果“天子”要下发政令到各个州府呢?古代的“驿卒”就担负了在各个政府机关传递情报的工作。我们把这种能够接收和转发消息,通过消息在节点之间中继实现更大规模网络的节点特性称为“Relay”(中继)。
  • 州府最终要把政令实施下去吧?但又要休养生息,不能每天都把百姓叫过来训话吧。只能选个好日子,趁百姓都在场才能宣布政令。州府在这里起到的角色就是暂存信息的功能。我们把能够存储发往低功耗节点的消息和安全更新的节点特性称为“Friend”(好友)。
  • 那些经不起折腾,只能定期出门去接收消息的老百姓就是供电受限的“Low-Power”(低功耗特性)。


但与现实不同的是,BLE Mesh中不受功耗限制的节点能够扮演一个或者多个“角色”——既能当官,又能兼职做“太监”和“驿卒”。而“老百姓”因为功耗受限,一般只能做“老百姓”。
5.jpg
蓝牙Mesh网络示例(http://www.fanstel.com/bt832-1-1

另外一个重要的概念叫做“Provision”(启动配置),简单的说就是通过在手机或者电脑上的应用程序,把原本不属于Mesh网络的“Device”(设备)配置成为网络中的一个“Node”。
同时不同的“Node”还可以被分配到不同的“Group”(组群)“Node ”只能与同一个“Group”中的其他“Node”通信,而忽略其他“Group”的信息。
为了完成下面的演示,需要先从“豌豆荚”(安卓)或者“Apple Store”(苹果)搜索安装“ST BLE Mesh”App来完成“Provision”的操作。
6.jpg
之前关注STM32WB的朋友肯定熟悉下面这张图,STM32WB同时支持蓝牙5.0、ZigBee、THREAD及其他私有的2.4GHz协议栈。
7.jpg
那支持蓝牙Mesh自然不在话下。可能有些细心的老铁已经在我们的st.com官网找到了一些端倪。在st.com上搜索STM32CubeWB。
8.jpg
下载解压后,我们打开IAR的工程。
STM32Cube_FW_WB_V1.0.0\Projects\NUCLEO-WB55.Nucleo\Applications\BLE\BLE_MeshLightingDemo\EWARM
同时还是在st.com搜索AN5292找到该例程的应用手册AN5292: How to build a Bluetooth® Low Energy mesh application for STM32WBx5 microcontrollers
硬件上,我们还需要拿到P-NUCLEO-WB55套装(有2块板子)中的白色主板(下图左侧)。
STM32官方旗舰店已经有售,淘宝搜索关键字:ST WB开发板
9.jpg
P-NUCLEO-WB55 套装
等下面的材料都齐全了,我们就可以开始Mesh的演示了
  • 手机端:“ST BLE Mesh”App。
  • 硬件:P-NUCLEO-WB55中的白色主板
  • 固件:“STM32CubeWB”
  • 应用手册:AN5292

下篇,我们将重点介绍如何配置Mesh的演示和Mesh代码的讲解。大家敬请期待!

另外想现场参观我们的Mesh演示,4月26号和27号,深圳蛇口南海希尔顿,我们不见不散!

回复

使用道具 举报

该用户从未签到

35

主题

167

帖子

61

蝴蝶豆

金牌会员

最后登录
2021-1-30
发表于 2019-6-21 12:40:21 | 显示全部楼层
我要芯片或模组,开发板太贵,玩不起
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

2167

帖子

32

蝴蝶豆

论坛元老

最后登录
2023-2-9
发表于 2019-6-21 13:27:24 | 显示全部楼层
开发板叫一个贵啊   
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-27 12:17 , Processed in 1.225628 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表