你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

都挺好:STM32WB+蓝牙Mesh(上)

[复制链接]
eefishing 发布时间:2019-6-21 12:00
大家对蓝牙应该不会感到陌生,利用经典蓝牙技术的蓝牙耳机/音箱,借助BLE(低功耗蓝牙)技术的运动手环/手表在我们的生活中随处可见。而ZigBee在工业物联网上则是应用广泛。THREAD作为谷歌亲兄弟(Nest Labs)推出的物联网通讯协议,日子自然也不会难过。
在下图中(左下角格子)可以看到,BLE(低功耗蓝牙),THREAD及ZigBee这三项无线传输协议同属于短中距离(10m-100m)和低中传输数据量(bps to Kbps)的定位。这三项协议可比三国的“魏蜀吴”,家家互不相让,都想称霸中原(智能家居、智慧楼宇)。
1.jpg
常见无线传输技术
$ p' `5 E* z; T; b( Q
限于篇幅,我们先来聊聊“三国”中的“魏”—— 蓝牙。

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

$ V5 }+ B9 `( n8 R( j; F* `, Q
下表是“三国”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网络协议栈(摘自蓝牙技术联盟公众号)

& O6 C9 w4 i6 Q+ u$ O; R
那在BLE Mesh网络里的“Node”(节点)会有哪些“Feature”(特性)呢?

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

7 ^6 ]/ d- r8 X: ]4 |
但与现实不同的是,BLE Mesh中不受功耗限制的节点能够扮演一个或者多个“角色”——既能当官,又能兼职做“太监”和“驿卒”。而“老百姓”因为功耗受限,一般只能做“老百姓”。
5.jpg
蓝牙Mesh网络示例(http://www.fanstel.com/bt832-1-1
% t  m; F6 a' M% {& O1 d
另外一个重要的概念叫做“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 套装
. a  a) F9 F5 {5 D
等下面的材料都齐全了,我们就可以开始Mesh的演示了
  • 手机端:“ST BLE Mesh”App。
  • 硬件:P-NUCLEO-WB55中的白色主板
  • 固件:“STM32CubeWB”
  • 应用手册:AN5292

    ( Y: n3 i1 n& ]0 @8 y# H4 U/ K- W" p
下篇,我们将重点介绍如何配置Mesh的演示和Mesh代码的讲解。大家敬请期待!

4 w8 @5 s/ u& H  d. N" ^% Q
另外想现场参观我们的Mesh演示,4月26号和27号,深圳蛇口南海希尔顿,我们不见不散!
, N, c% k# y+ f; X7 G* P+ i
收藏 评论2 发布时间:2019-6-21 12:00

举报

2个回答
wujique 回答时间:2019-6-21 12:40:21
我要芯片或模组,开发板太贵,玩不起
andey 回答时间:2019-6-21 13:27:24
提示: 作者被禁止或删除 内容自动屏蔽
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版