蓝牙Mesh设计讲座(二):节点通信

发布时间:2019-12-30  

本系列讲座的第一篇概述了蓝牙Mesh及其支持的基本节点和特性类型。本篇讲解蓝牙Mesh网络的通信原理以及在使用蓝牙Mesh开展设计时应掌握的各种重要概念。

英文原文链接:

节点间通信

蓝牙Mesh使用海量消息并发传输模式在节点间传输消息。海量并发模式是一种多路径消息传递实现方案,有足够冗余来确保消息顺利抵达目的地。

本系列讲座的第一篇概述了蓝牙Mesh及其支持的基本节点和特性类型。本篇讲解蓝牙Mesh网络的通信原理以及在使用蓝牙Mesh开展设计时应掌握的各种重要概念。

英文原文链接:

节点间通信

蓝牙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模式:客户端模式、服务器模式和控制模式(即在单个模式中同时实现客户端和服务器)。

服务器模式能够在一个或多个元素上提供一种或多种状态。服务器模式公开设备的元素状态,供客户端节点读取或控制。例如,蓝牙Mesh灯泡使用服务器模式,在这种应用中,可以使用开/关服务或灯泡亮度服务。开/关服务器公开灯泡的当前状态,并根据客户端输入改变状态,从而实现灯泡开关状态切换。如果使用灯亮度服务器,客户端可读取灯泡的当前状态、控制其亮度、开/关灯泡。服务器模式的另一应用在传感器节点,只允许客户端读取传感器状态,不允许其改变传感器状态。

客户端模式允许其他节点发送消息来请求和/或改变服务器节点的状态。使用客户端模式最常见的应用示例是蓝牙Mesh开关。蓝牙Mesh开关可以通过开/关客户端模式获取服务器端开关设备的当前状态,或者可以发送消息将状态改为开或关。另一个示例是使用带输出功率可调客户端功能的蓝牙Mesh调光器,它除了开关功能外,这种模式还能控制服务器端的输出功率可调,从而控制灯泡的亮度。

在大多数应用中,服务器模式和客户端模式需要与某种控制代码结合使用。这种代码能根据接收到的消息或用户输入采取动作。服务器模式和/或客户端模式与控制逻辑相结合,就得到控制模式。

蓝牙Mesh模式具有能够扩展其他模式的功能。该功能允许有不同功能的Mesh节点受同一条消息控制。

还是以照明应用为例,亮度可调灯泡一般会具有灯泡亮度服务器模式,而部分灯泡是利用输出可调服务器模式来控制输出功率,进而控制灯光亮度,而基本蓝牙Mesh灯泡在多数情况下只有开/关服务器模式。然而,灯泡亮度服务器模式能够扩展开/关服务器模式和输出可调服务器模式功能,这意味着开/关客户端发出的开/关消息可以控制所有三种类型灯泡的开关状态,无论它们原本是否具有开/关服务器模式。

元素的状态存储在服务器或者客户端模式的状态列表中。每种状态都是一个特定类型的值。除了值以外,状态还包括与之有关的行为。这些状态都由蓝牙技术联盟定义。例如,一个带有开/关功能的灯泡或洒水器控制器的开/关服务器会有一种称为通用开/关的状态。这种状态只有两个值,开和关。这适用于灯泡或洒水器控制器一类的设备。“通用”一词的意思是这种状态及其行为可适用于不同类型的Mesh设备。

您也可以观看深入了解蓝牙Mesh视频,进一步了解蓝牙Mesh通信以及如何着手进行蓝牙Mesh设计。

在本系列的下一篇文章中,我们将探讨蓝牙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模式:客户端模式、服务器模式和控制模式(即在单个模式中同时实现客户端和服务器)。

服务器模式能够在一个或多个元素上提供一种或多种状态。服务器模式公开设备的元素状态,供客户端节点读取或控制。例如,蓝牙Mesh灯泡使用服务器模式,在这种应用中,可以使用开/关服务或灯泡亮度服务。开/关服务器公开灯泡的当前状态,并根据客户端输入改变状态,从而实现灯泡开关状态切换。如果使用灯亮度服务器,客户端可读取灯泡的当前状态、控制其亮度、开/关灯泡。服务器模式的另一应用在传感器节点,只允许客户端读取传感器状态,不允许其改变传感器状态。

客户端模式允许其他节点发送消息来请求和/或改变服务器节点的状态。使用客户端模式最常见的应用示例是蓝牙Mesh开关。蓝牙Mesh开关可以通过开/关客户端模式获取服务器端开关设备的当前状态,或者可以发送消息将状态改为开或关。另一个示例是使用带输出功率可调客户端功能的蓝牙Mesh调光器,它除了开关功能外,这种模式还能控制服务器端的输出功率可调,从而控制灯泡的亮度。

在大多数应用中,服务器模式和客户端模式需要与某种控制代码结合使用。这种代码能根据接收到的消息或用户输入采取动作。服务器模式和/或客户端模式与控制逻辑相结合,就得到控制模式。

蓝牙Mesh模式具有能够扩展其他模式的功能。该功能允许有不同功能的Mesh节点受同一条消息控制。

还是以照明应用为例,亮度可调灯泡一般会具有灯泡亮度服务器模式,而部分灯泡是利用输出可调服务器模式来控制输出功率,进而控制灯光亮度,而基本蓝牙Mesh灯泡在多数情况下只有开/关服务器模式。然而,灯泡亮度服务器模式能够扩展开/关服务器模式和输出可调服务器模式功能,这意味着开/关客户端发出的开/关消息可以控制所有三种类型灯泡的开关状态,无论它们原本是否具有开/关服务器模式。

元素的状态存储在服务器或者客户端模式的状态列表中。每种状态都是一个特定类型的值。除了值以外,状态还包括与之有关的行为。这些状态都由蓝牙技术联盟定义。例如,一个带有开/关功能的灯泡或洒水器控制器的开/关服务器会有一种称为通用开/关的状态。这种状态只有两个值,开和关。这适用于灯泡或洒水器控制器一类的设备。“通用”一词的意思是这种状态及其行为可适用于不同类型的Mesh设备。

您也可以观看深入了解蓝牙Mesh视频,进一步了解蓝牙Mesh通信以及如何着手进行蓝牙Mesh设计。

在本系列的下一篇文章中,我们将探讨蓝牙Mesh的隐私和安全特性。

系列讲座的其它内容,可以访问以下链接

 

文章来源于:电子工程专辑    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>