找回密码
 注册
关于网站域名变更的通知
查看: 300|回复: 2
打印 上一主题 下一主题

蓝牙Mesh网络的通信原理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-3-1 09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
 节点间通信
  蓝牙Mesh使用海量消息并发传输模式在节点间传输消息。海量并发模式是一种多路径消息传递实现方案,有足够冗余来确保消息顺利抵达目的地。
  在Mesh海量消息并发传送实现方案中,每个节点会转发所收到的每一条消息,节点将所有接受的消息添加到缓存列表中,避免Mesh设备重复转发之前接收到的消息。当节点接收到消息时,将和已有消息列表进行比对,如果消息已经在列表中存在,则忽略转发该消息。此外,每条消息都包含生存时间(TTL)值,该值限制一条消息能够在网络中转发的次数。每次消息被任何设备接收然后转发(最多126次),生存时间值就减1。
  蓝牙Mesh采用基于发布和订阅的通信方式,确保不同类型的产品能共存于网络中,而不会受无关的消息干扰。发布节点只向订阅节点发送消息,然后由订阅节点对这些消息进行处理。家中不同房间里灯光的使用情况就是这种操作的。每个房间只订阅属于该房间的电灯开关发出的消息。此外,消息可以单播、多播和/或广播传输,即消息可以抵达网络中的一个、几个或所有节点。
  图1所示的是使用CYBT-213043-MESH评估套件实现的基于发布与订阅的蓝牙Mesh通信方案。CYBT-213043-MESH套件使用 CYBT-213043-02模块来实现蓝牙Mesh通信。与板载用户按钮和RGB LED结合使用,评估板能分别模拟蓝牙Mesh开关和蓝牙Mesh灯泡。
  

  图1:用于互联照明的蓝牙Mesh发布和订阅示例
  如图所示,左数第一个开关(Switch 1)发布消息给餐厅群组。左数第一个(Bulb 1)和第二个灯泡(bulb 2)只订阅餐厅群组。然而,第三个灯泡订阅的是餐厅和厨房群组发布的消息。因此在开关1发布消息时,前三个灯泡(Bulb 1-3餐厅和厨房)都能被控制。但是在开关2发布消息时,只有第三个灯泡(Bulb 3厨房)能被控制。
  Mesh节点架构
  我们已经讨论过消息在节点间的通信原理,下面我们从功能层面讨论蓝牙Mesh节点架构,了解蓝牙Mesh设备如何实现互操作。
  元素
  元素定义的是节点的功能。每个节点都至少有一个元素,称为“主元素”。例如,电灯泡一般有一个元素。这个元素提供节点的开关和亮度控制功能。另一个示例是集成了感应传感器的可调光灯泡。这个节点有两个元素。第一个元素用于照明功能,第二个元素用于传感器功能。本例中的主元素是照明功能。
  节点中每个元素都有唯一地址,即单播地址。这样可以方便地在同一个节点中,独立于其他元素为每个元素寻址。图2所示的是这两种节点类型的示例。第一个只有一个元素,第二个有两个元素。此外,图2还体现了将在后续章节中讲解的更多概念,以及它们在蓝牙Mesh实现方案中的相互关系。
  

  图2:有一个元素和两个元素的节点
  每个蓝牙Mesh节点都使用一个或多个Mesh模式来定义特定的节点功能。MESH模式的涵义类似于蓝牙设备中服务的概率。这里存在三种Mesh模式:客户端模式、服务器模式和控制模式(即在单个模式中同时实现客户端和服务器)。
  01、服务器模式
  服务器模式能够在一个或多个元素上提供一种或多种状态。服务器模式公开设备的元素状态,供客户端节点读取或控制。例如,蓝牙Mesh灯泡使用服务器模式,在这种应用中,可以使用开/关服务或灯泡亮度服务。开/关服务器公开灯泡的当前状态,并根据客户端输入改变状态,从而实现灯泡开关状态切换。如果使用灯亮度服务器,客户端可读取灯泡的当前状态、控制其亮度、开/关灯泡。服务器模式的另一应用在传感器节点,只允许客户端读取传感器状态,不允许其改变传感器状态。
  02、客户端模式
  客户端模式允许其他节点发送消息来请求和/或改变服务器节点的状态。使用客户端模式最常见的应用示例是蓝牙Mesh开关。蓝牙Mesh开关可以通过开/关客户端模式获取服务器端开关设备的当前状态,或者可以发送消息将状态改为开或关。另一个示例是使用带输出功率可调客户端功能的蓝牙Mesh调光器,它除了开关功能外,这种模式还能控制服务器端的输出功率可调,从而控制灯泡的亮度。
  03、控制模式
  在大多数应用中,服务器模式和客户端模式需要与某种控制代码结合使用。这种代码能根据接收到的消息或用户输入采取动作。服务器模式和/或客户端模式与控制逻辑相结合,就得到控制模式。
  蓝牙Mesh模式具有能够扩展其他模式的功能。该功能允许有不同功能的Mesh节点受同一条消息控制。
  还是以照明应用为例,亮度可调灯泡一般会具有灯泡亮度服务器模式,而部分灯泡是利用输出可调服务器模式来控制输出功率,进而控制灯光亮度,而基本蓝牙Mesh灯泡在多数情况下只有开/关服务器模式。然而,灯泡亮度服务器模式能够扩展开/关服务器模式和输出可调服务器模式功能,这意味着开/关客户端发出的开/关消息可以控制所有三种类型灯泡的开关状态,无论它们原本是否具有开/关服务器模式。
  元素的状态存储在服务器或者客户端模式的状态列表中。每种状态都是一个特定类型的值。除了值以外,状态还包括与之有关的行为。这些状态都由蓝牙技术联盟定义。例如,一个带有开/关功能的灯泡或洒水器控制器的开/关服务器会有一种称为通用开/关的状态。这种状态只有两个值,开和关。这适用于灯泡或洒水器控制器一类的设备。“通用”一词的意思是这种状态及其行为可适用于不同类型的Mesh设备。
  • TA的每日心情

    1643439839
  • 签到天数: 1 天

    2#
    发表于 2022-3-1 10:06 | 只看该作者
    蓝牙技术发展很快。技术也在进步
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-3-1 10:27 | 只看该作者
    蓝牙很好用
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-4 00:43 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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