0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用蓝牙网格设计蓝牙低功耗智能应用程序 - 第2部分

设计idea 来源:互联网 作者:佚名 2018-05-14 10:33 次阅读

编者按:这个由两部分组成的系列的第1部分详细介绍了蓝牙网格1.0协议的体系结构和功能。在这里,第2部分介绍了如何将蓝牙网络集成到使用芯片和开发套件的蓝牙低功耗设计中。

蓝牙网络为流行的短程协议带来了显着的网络优势。第1部分对此进行了详细讨论。但是,规范也带来了新的设计挑战,特别是在实现其模型时。

克服这些挑战的关键在于利用升级的开发工具来更好地了解蓝牙网络。本文介绍如何使用选择的蓝牙硬件和软件,开发套件(DK)和软件开发套件(SDK)来设置和构建蓝牙网格应用程序。

蓝牙网格开发工具

蓝牙网状网络堆栈包含一个全新的主机层,与BLE主机层共享一些概念,但与其不兼容。早期版本的蓝牙网格堆栈现在可用于工程开发,通常作为SDK的一部分。

由于蓝牙网络是蓝牙核心规范的补充规范,因此供应商不需要更新其蓝牙低功耗(BLE)物理层(PHY)或软件堆栈来支持它。但是,添加蓝牙网络要求供应商为他们的客户推出他们自己的堆栈实现。

例如,BLE供应商Nordic Semiconductor已经推出了MeshnRF5 SDK该套件包括一个蓝牙网络堆栈,选择驱动程序,库和网格应用程序的示例。该SDK的几个集成开发环境(IDE)和编译器,包括工作SEGGER嵌入式工作室套件含有Segger微控制器系统和CMake的。

由于蓝牙网格兼容所有版本的BLE(即:4.0,4.1,4.2和5),Nordic的网格SDK最终将与其所有BLE芯片一起工作。但是,目前的版本仅适用于该公司最新nRF52系列BLE解决方案,例如中档蓝牙5兼容nRF52832芯片。

由于BLE PHY或软件堆栈没有变化,因此可以在包含目标设备的现有DK上执行蓝牙网格开发工作。推荐用于nRF52832的DKnRF52 DK(图1)。

图1:北欧半导体的网格SDK将与包含nRF52832 SoC目标器件的nRF52 DK配合使用。(图片来源:北欧半导体)

网格开发需要至少三个(最好是更多)设备来进行通信模拟网状环境。理想情况下,可以使用几个DK来表示网格中的节点,但是这具有显着增加开发硬件成本的缺点。另一种方法是使用一个DK并购买经测试和验证的BLE模块(基于目标设备)以形成附加节点。对于使用Nordic nRF52832进行开发,Rigado的BMD-300Laird的BL652-SA-01-T / R是很好的模块选件。

赛普拉斯半导体对北欧采取了类似的方法。该公司为BCM92073XWICED Smart DK提供蓝牙网格SDK,该DKM基于赛普拉斯的BCM20736S蓝牙v4.1 PHY。基于此PHY的网格开发工作的合适BLE模块包括Inventek的ISM20736S

了解模型

北欧和赛普拉斯的硬件,软件和开发工具均附有示例和教程,以指导开发人员完成构建简单的蓝牙网格应用程序的步骤。但是在开始第一个设计之前,它有助于贯穿相关教程,以了解蓝牙网格体系结构的独特特性,因为它对设计过程有重大影响。

这些教程强调,尽管蓝牙网格节点有四种通用类型(参见这两部分系列文章的第1部分),但每种类型的功能都取决于其模型。了解模型是充分利用蓝牙网络功能的关键。

蓝牙网格提供了构建新型网格应用所需的灵活性,因为开发人员可以构建模型,使设备具有许多自定义行为。模型定义了所需的状态,作用于这些状态的消息以及相关的行为。所有通过网状网络的通信都通过消息来促进。

状态是表示元素状态的值。元素是设备或节点的可寻址实体。每个设备至少有一个(主要)元素,并可能有一个或多个次要元素。元素的数量和结构在整个节点的生命周期中都不会改变。“暴露”状态的元素称为服务器。元素“访问”状态被称为客户端。

重要的是,模型有三种类型;服务器,客户端和控制。服务器模型由跨越一个或多个元素的一个或多个状态组成。它定义了一组可发送或接收的强制性消息,发送和接收消息时的元素行为以及发送或接收消息后发生的任何其他行为。

客户端模型定义了一组客户端用于请求,更改或“消耗”相应服务器状态的消息,如服务器模型所定义的。客户端模型没有状态。

控制模型可以结合客户端模型功能(与其他服务器模型进行通信)和服务器模型功能(与其他客户端模型进行通信)。控制模型还可能包含控制逻辑 - 一组规则和行为,用于协调控制模型与控制模型连接的其他模型之间的交互作用(图2)。

蓝牙网状装置的元件模型结构图

图2:所示为实现控制模型的蓝牙网状设备的元件模型结构。设备C可以作为客户端(分别为消息X,Y和Z以及消息R,S和T)与客户端模型(在设备D内)作为服务器与服务器模型(设备A和B内)进行通信(支持消息A,B和C)。(图片来源:蓝牙SIG)

为了说明模型在实际应用中的用途,考虑一个电源板,它包括两个独立的电源插座,每个电源插座都能够控制功率输出,并集成一个BLE收音机,从而允许连接蓝牙网络。

该设备(电源板)具有两个代表两个电源插座的元件。每个元素的功能由通用功率级别服务器模型定义,该模型定义服务器上的一组状态,以及一组对这些状态进行操作的消息。通用功率电平设置消息可以被发送到设备以控制输出功率。该消息被发送到一个套接字的元素。

套接字也可以由实现通用级客户端模型的通用设备(如调光器)控制。该模型将期望水平设置为零,最大值或两者之间的值。通过状态绑定来控制插座的电源。在每个电源插座中,通用电源实际状态都绑定到通用电平状态。通用级客户端将通用级消息发送到通用级服务器。通用级别状态发生改变,反过来(通过已定义的绑定)改变控制功率输出的通用功率实际状态。

因为元素可以报告状态,所以每个套接字可以报告功率水平以及插入插座的设备的能量消耗。使用Sensor Server模型定义的消息报告能耗。

构建蓝牙网状网络

假设开发人员已经对蓝牙网格体系结构和BLE开发有所了解(请参阅Digi-Key文章:“蓝牙4.1,4.2和5兼容的蓝牙低功耗SoC和工具满足IoT挑战”以了解关于通用BLE设计的更多信息),并配备蓝牙网格SDK,主机SDK,DK和附加模块或DK来建立网络,开发人员可以相对轻松地配置蓝牙网格实现。

第一步是构建网格堆栈。在北欧的情况下,堆栈是使用选定的IDE构建的。例如,使用SEGGER Embedded Studio,通过使用Bluetooth mesh SDK中包含的一个示例(例如“light switch”示例)和使用IDE进行编译来构建堆栈。

然后,DK上的目标PHY被擦除,并用编译的蓝牙网格堆栈和BLE堆栈重新编程一旦堆栈被编程和验证,SDK就可以用来设置和建立网状网络。

配置:Nordic的开发工具包括配置应用程序编程接口(API),用于将新设备添加到网状网络。供应由供应商(已经连接到网络并且先前为供应任务配置的设备)处理,用于向新设备提供他们需要加入网状网络所需的信息。最初,设备提供了一个网络密钥,一个地址和一个设备密钥,用于在配置之后建立用于配置的安全通道。

API允许开发人员开始监听在BLE的三个广告频道中的一个上发送的未提供(或供应商 - 要添加到网络的设备)节点的广播信标。蓝牙网格使用BLE的广告通道而不是37个全带宽数据通道传输和接收消息。通道上的入局链接请求将被自动接受。

链接建立后,使用带外(OOB)方法对其进行身份验证,以确保加入网络的设备是预期的目标。使用OOB方法可以减少设备监听BLE频谱分配的“中间人”攻击机会。API事件然后为设备提供配置数据和设备密钥。

配置:Nordic的“灯开关”应用程序(包含在SDK中)显示了如何开发具有供应者和供应者角色的应用程序。在演示中,一个灯开关客户端模型(开关)是供应商,灯开关服务器模型(灯泡)是供应商。

Nordic的例子充分利用了蓝牙网络规范中最简单的服务器是Generic OnOff服务器的事实,表示服务器处于开启或关闭状态。例如,最简单的客户端是通用OnOff客户端,它能够通过通用OnOff模型定义的消息来控制通用OnOff服务器。

当此服务器模型从客户端模型接收到GET或(可靠)SET消息时,它将发送OnOff状态的当前值作为响应。这可以使客户端了解服务器状态(图3)。

Name定义操作码描述参数参数大小组SIMPLE_ON_OFF_OPCODE_SET0xc1设置当前的开/关状态新的状态1个字节得到SIMPLE_ON_OFF_OPCODE_GET为0xC2获取当前的开/关状态N / A没有参数SET不可靠SIMPLE_ON_OFF_OPCODE_SET_UNRELIABLE0xc3设置当前的开/关状态新的状态1个字节状态SIMPLE_ON_OFF_OPCODE_STATUS0xc4包含当前状态当前状态1个字节

图3:通用OnOff模型支持的消息和ATT操作码。(图片来源:北欧半导体)

配置服务器用于表示设备的网状网络配置,并且是蓝牙网状节点的强制要求。配置服务器处理与配置客户端(由配置器控制)的通信以及来自配置客户端的指令。

配置完成后开始配置。供应商读取供应商的组成数据以识别设备的元数据以及哪些模型绑定到设备中的元素。接下来,将应用程序和/或网络密钥添加并绑定到不同的模型(图4)。

用于Mesh的nRF5 SDK的配置流程图

图4:nRF5 SDK for Mesh的配置和配置流程图。“nrf_mesh ...”标注是API函数。(图片来源:北欧半导体)

向网络添加更多设备仅仅是为每个新节点重复供应和配置过程的情况。

发布和订阅:设置和构建初始应用程序的最后阶段是配置模型的发布状态。例如,用于发布状态事件的地址,使用什么密钥,使用什么“生存时间”(TTL)值,以及设置订阅。

消息在从每个模型的发布地址发布时发送。例如,通过传感器节点定期报告数据来使用发布。消息只能发布一次或重复发送,并发送到单播,组或虚拟地址(请参阅本文的第1部分)。客户机模型也使用发布向服务器模型发送消息。

发布相关状态的配置通常由配置者通过配置模型来控制。

使用Nordic SDK时,使用“access_model_publish()”API函数发布消息,该函数将根据发布模型的发布设置(间隔,目标)发布消息。

订阅允许模型监听来自特定地址的传入消息。例如,这可用于侦听从传感器节点发布的周期性消息。Nordic SDK允许模型通过使用“access_model_subscription_list_alloc()”API函数分配预订列表来预订地址。

请注意,使用客户端模型时,不需要订阅发送消息的地址以接收对这些消息的回复。订阅仅用于接收来自节点的未经请求的消息。

在开发过程中,将非蓝牙网格功能的设备连接到蓝牙网格可能会有所帮助。一个例子可能是开发人员希望用来控制原型智能照明网格应用的智能手机手机和网状网络之间的互动是通过蓝牙堆栈中的智能电话和节点设备的通用属性配置文件(GATT)接口实现的,而不是蓝牙网状网络堆栈。

结论

蓝牙网格为BLE应用程序增加了新功能。然而,由于它不是原始核心规范的一部分,网格的采用已经引入了一些折衷并增加了设计过程的一些复杂性。熟悉使用蓝牙协议栈进行设计的开发人员对那些没有知识的人来说是一个优势,但即使对于经验丰富的工程师来说,实现蓝牙网络也需要学习一种新的体系结构并了解它的细微差别,例如状态,元素和模型。

通过与Nordic半导体或赛普拉斯半导体等供应商合作,可以缓解设计挑战。这些供应商现在已经发布了蓝牙网格堆栈,以补充他们成熟的BLE解决方案。该堆栈附带有专门设计的软件开发工具包,可让开发人员使用他们熟悉的芯片,固件和设计工具加速设计蓝牙网格应用程序的学习过程。

参考

  1. Mesh Profile”,蓝牙规范v1.0,蓝牙SIG,2017年7月。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    112

    文章

    5420

    浏览量

    165573
  • 低功耗
    +关注

    关注

    9

    文章

    2221

    浏览量

    102572
收藏 人收藏

    评论

    相关推荐

    超小蓝牙模组,远距离,低功耗#蓝牙芯片 #低功耗蓝牙 #物联网 #硬声创作季

    物联网蓝牙芯片模组低功耗蓝牙
    fly
    发布于 :2022年08月23日 20:52:27

    蓝牙4.0和低功耗蓝牙是一回事吗?

    双模的标准,它包含传统蓝牙部分(也有称之为经典蓝牙Classic Bluetooth)和低功耗蓝牙部分
    发表于 11-15 19:35

    兼容蓝牙 4.1、4.2 和 5 的低功耗蓝牙 SoC 和工具可应对物联网挑战

    了基于低功耗蓝牙的专有网格技术,特别是现已成为 Qualcomm 一部分的 CSR。由于网格很可能是物联网应用的一个关键要求,
    发表于 05-02 15:45

    蓝牙低功耗在工业应用

    (云端读取)。在这种巨大的变革下,产品中新增了固件升级,智能手机开始用于控制玩具直升机,而无线附件也逐渐取代了有线电缆在部分领域中的应用。2015年,制造商突然开始将耳熟能详的蓝牙低功耗
    发表于 08-30 14:33

    低功耗蓝牙无线传感器应用

      如今,科技发展迅猛,各种设备让世界变得更加智能。新技术的不断出现,不仅改进了现有技术,还创造了新的细分市场。蓝牙技术的进步使得智能蓝牙低功耗
    发表于 11-12 10:45

    为什么说经典蓝牙做不到低功耗

    低功耗蓝牙能做到,经典蓝牙不行?随着蓝牙模块厂家昇润科技一起看低功耗蓝牙的特性:一:最
    发表于 11-13 17:22

    低功耗蓝牙的应用领域

    Energy)技术,是蓝牙V4.0核心规范的一部分,主要针对蓝牙功耗方面进行了深层优化,可以满足设备进行低功耗、常期的无线连接要求。最初由
    发表于 03-18 02:25

    蓝牙4.0和低功耗蓝牙是一回事吗?

    的标准,它包含传统蓝牙部分(也有称之为经典蓝牙Classic Bluetooth)和低功耗蓝牙部分
    发表于 05-30 00:06

    基于BlueNRG-MS低功耗蓝牙智能IC

    STEVAL-IDB006V1,评估板,基于BlueNRG-MS低功耗蓝牙智能IC,符合蓝牙4.1规范,能够支持主从角色。 STEVAL-IDB006V1具有板载
    发表于 05-29 11:47

    智能蓝牙手环5.0蓝牙芯片低功耗PHY6202/PHY6212智能手环应用方案提供参考

    的超低功耗芯片。同时支持低功耗蓝牙蓝牙4.0、ZigBee、谷歌Thread、Mist等多种通信协议,面向智能终端周边设备、
    发表于 06-23 17:40

    针对低功耗蓝牙的测试方法有哪些

    :  直接测试模式    直接测试模式(DTM-Direct Test Mode)是一种用于低功耗蓝牙射频性能测试的模式,也是蓝牙核心规范的一部分,任何符合
    发表于 11-27 17:07

    低功耗蓝牙透传模块_蓝牙智能门锁方案pdf下载

    低功耗蓝牙透传模块_蓝牙智能门锁方案。当下智能家居比较火,智能门锁便是
    发表于 12-29 16:57 51次下载

    第2部分:了解低功耗蓝牙(BLE)的布局

    在本视频中,我们将深入了解低功耗蓝牙(BLE)器件的物理层和射频通道布局,并考察蓝牙BR/EDR、低功耗蓝牙4.2和较新的
    的头像 发表于 10-08 03:46 4241次阅读

    芯科科技升级EFR Connect 2.3低功耗蓝牙移动应用程序

    Silicon Labs(亦称“芯科科技”)近期宣布升级EFR Connect 2.3低功耗蓝牙(Bluetooth LE)移动应用程序,提供业界领先具有吞吐量和移动互操作性测试的解决方案。EFR
    的头像 发表于 06-25 15:23 2081次阅读

    一文读懂低功耗蓝牙的应用

    蓝牙技术联盟于2010年推出了蓝牙4.0规范,其中低功耗蓝牙的出现满足了小型电池供电设备进行低功耗无线连接的需求,因此得到广泛应用。本文章将
    的头像 发表于 12-28 08:24 401次阅读
    一文读懂<b class='flag-5'>低功耗</b><b class='flag-5'>蓝牙</b>的应用