Rede Mesh Bluetooth: uma introdução

On 4 de outubro de 2017 by Celio Marcio

A rede Mesh Bluetooth

A rede mesh Bluetooth possibilita a criação de redes de largas escalas, capazes de suportar de forma confiável e segura comunicação entre dezenas, centenas e milhares de dispositivos. Elas criam novas oportunidades de interação inteligente em recursos como;  iluminação, aquecimento / resfriamento e sistemas de segurança de sua casa ou escritório, e nos ambientes de produção, possibilitando um melhor aproveitamento e ganho de eficiência nas formações das redes de sensores sem fio industrial (IWSN).

Neste post descreveremos alguns fundamentos desta rede.

Nós na rede mesh Bluetooth

Pense em uma rede composta de milhares de dispositivos, cada uma comunicando por conexões sem fio de baixa energia (LE) Bluetooth, esses dispositivos em uma rede mesh Bluetooth são chamados de nós. Cada nó envia e recebe mensagens, e as  informações podem ser transmitidas de nó para nó, isto possibilita uma cobertura em distâncias maiores do que o alcance dos rádios normalmente permitem. Esta teia de nós (Figura 1) pode ser espalhada em fábricas, escritórios, shopping centers, escritórios, universidade  (Figura 2) e muito mais.

 

Figura 1– Nós em uma rede mesh.

Figure 2 – Nós cruzando os ambientes de um escritório.

Os nós em uma mesh Bluetooth, podem ser de diversos tipos sendo capazes de abordar qualquer função. Aparelhos de iluminação, máquinas, câmeras de segurança, detectores de fumaça e sensores ambientais são apenas alguns exemplos de papéis que um nó pode cumprir.

Elementos da mesh Bluetooth

Nodes sensores normalmente funcionam com baterias, outros nós como dispositivos elétricos, máquinas de fabricação e câmeras de segurança, extraem energia da rede elétrica principal. Alguns nodes inclusive possui mais poder de processamento do que outros e podem assumir tarefas mais complexas dentro da rede mesh, assumindo diferentes funções e recursos:

Recurso Low-Power (baixo consumo de energia)

Os nodes com restrição de energia  podem usar o recurso de baixa potência para economizar energia. Os nodes de baixa potência (LPNs) funcionam em conjunto com friend nodes.

Recurso Friend

Nodes sem restrições de energia são ótimos candidatos para serem friend nodes. Os  friend nodes  ​​armazenam as mensagens recebidas e atualizações de segurança destinadas a LPNs. Quando o LPN solicita essas mensagens, o friend node entrega as informações armazenadas a LPN.

Recurso de Relay

Os relay nodes recebem e transmitem mensagens. Esta característica permite que uma rede maior transmita de nó para nó. Dependendo da fonte de energia e da capacidade computacional, um nó pode assumir esse recurso.

Recurso de Proxy

Os proxy nodes permitem transmitir e receber mensagens da mesh entre nodes GATT (Generic Attribute Profile) e Bluetooth. Um node com essa função precisa de uma fonte de energia sólida e bons recursos computacionais.

Elementos de um Node

Alguns tipos de nodes são mais complexos do que outros e consistem  de partes independentes chamadas elementos. Cada node possui pelo menos um elemento, conhecido como elemento primário, e pode ter elementos adicionais (Figura 3). Os elementos são compostos por entidades que definem a funcionalidade de um node e a condição do elemento. Uma lâmpada, por exemplo, tem um elemento com duas funções:

  • Node = Lâmpada
  • One Element = Primary Element
  • Funcionalidade do  node
    1. On/Off
    2. Brightness
  • Condição/Estado do Elemento
    1. On or Off
    2. 0 – 10 (Brightness Level)

Figure 3 – Nodes devem ter ao menos um elemento podendo ter muitos elementos

Cada elemento de um node, tem um único endereço conhecido, um unicast address, que permite seu acesso.

Modelos e Estados da mesh Bluetooth

Se os nodes estão conectados em rede em um chão de fábrica, hotel, escritórios ou campus, a funcionalidade básica de um nó é definida e implementada por modelos. Os modelos residem dentro de elementos, e os elementos devem ter um ou mais modelos (Figura 4A). Os modelos definem e implementam a funcionalidade e comportamento de um node, enquanto os estados definem a condição dos elementos (Figura 4B).

Figure 4A – Node, Elemento, Modelo

Figure 4B – Node, Elemento, Modelo, Estado

Usando o exemplo da lâmpada, a funcionalidade do modelo é On / Off e Brightness. Os estados associados são On / Off e 0-10 respectivamente:

  • Modelo (funcionalidade do node)
    • 1. On/Off
      • Estado -> On ou Off
    • 2. Brightness (0-10)
      • 2. Estado -> 0-10

A rede Mesh Bluetooth, suporta estados compostos por dois ou mais valores, como por exemplo uma mudança de cor, em que a tonalidade muda independentemente da saturação ou brilho da cor.

Os estados vinculados são definidos quando uma mudança causa uma alteração em outro estado. Por exemplo, quando existe uma ligação entre estados de nível e estados On/Off, se o nível muda de 0 para 1, o estado On/Off também passará de off para on.

Todo modelo tem um identificador, o Bluetooth SIG possui 16 bits, enquanto os modelos de fornecedores são de 32 bits (identificador da empresa atribuído para o Bluetooth de 16 bits e um identificador de modelo atribuído pelo fabricante de 16 bits), garantindo a unicidade de um endereço.

Uma rede mesh Bluetooth comunica em uma arquitetura cliente-servidor, cuja função de um servidor é expor os estados de um elemento, sendo um o estado mais simples, um interruptor binário de estado ligado ou desligado. Um modelo de servidor simples é o Generic On / Off Server Model, que contém o estado que representa o interruptor sendo ativado ou desativado.

As requisições de acesso dos usuários, mudam ou consomem os estados. Um exemplo de um modelo de cliente simples é um modelo genérico de Cliente On / Off  (binário). Este modelo genérico de cliente liga / desliga controla o modelo de servidor genérico on / off enviando mensagens. Por exemplo, o cliente usa este mecanismo para ligar ou desligar uma luz.

Arquitetura da Mesh Bluetooth

Essa arquitetura cliente-servidor dá origem a três tipos de modelos:

  • Modelo Servidor
    • Composto de um ou mais estados abrangendo um ou mais elementos
    • Define mensagens que o modelo pode transmitir / receber e define o comportamento do elemento dado essas mensagens.
    • Exemplos:
      • chave On/Off  – expõe o estado de troca
      • Sensores – expõe o estado dos sensores(Potencialmente um valor para a temperatura,  cheio / recarregável / vazio para a medição do sensor)
      • Nível de Energia – Expõem o estado da bateria  (Nível de  1-10)
  • Modelo Cliente
    • Define o conjunto de mensagens usadas pelo cliente para solicitar, alterar ou consumir estados correspondentes de um servidor.
    • Exemplos:
      • chave On/Off – Cliente manda a mensagem de On ou Off
      • Nível de Energia – Mensagens que definem o estado da bateria (0-10)
  • Modelo de Controle
    • Modelos de controle têm múltiplas funcionalidades e podem conter um ou mais dos seguintes itens:
      • Modelos Cliente
      • Modelos Servidor
      • Lógica de Controle (regras e ambientes) coordenando interações entre os modelos com os quais se conecta.
      • Exemplo: Podemos usar um Modelo de Controle para uma bomba que circula refrigerante líquido em torno de uma máquina.
      • Coordenar as  interações entre os modelos com os quais se conecta.

Bomba Refrigerante

Podemos usar um Modelo de Controle para uma bomba que circula um líquido refrigerante em torno de uma máquina.

      • Cenário – Um sensor de temperatura registra a temperatura de uma máquina. Se a máquina chegar acima de uma temperatura definida, a bomba de resfriamento acende-se.
      • Módulo de controle para bomba de refrigeração
        • Um cliente para o sensor de temperatura (aceita o valor da temperatura).
        • Um servidor para a chave On/Off  (liga e desliga a bomba).
        • Lógica de controle (regras e comportamentos) – define que se o sensor de temperatura estiver acima de um valor definido, ligue a bomba.

As definições de modelo permitem que você configure os nodes e suas funcionalidades dentro da Mesh.

A Arquitetura Mesh Bluetooth

Redes mesh Bluetooth executam no topo da camada Bluetooth Low Energy (LE). A Figura 5 descreve a pilha da mesh Bluetooth e define a funcionalidade de cada camada.     

Figure 5 – Arquitetura Mesh Bluetooth.

Os nodes – como as lâmpadas, equipamentos de regulação de temperatura, equipamentos de fabricação e portões eletrônicos – são dispositivos capazes de enviar, receber e / ou retransmitir informações dentro da rede de malha Bluetooth. As mensagens são usadas para transferir dados entre nós e os endereços são usados para definir de onde as mensagens vêm (fonte) e ir para (destino).

Endereços

Existem quatro tipos de endereços; Três desses tipos são usados em mensagens dos tipos: unicast, virtual e endereços de grupo. O quarto é conhecido como um endereço não atribuído. Os endereços têm 16 bits de comprimento e são codificados conforme definido abaixo (Figura 6).

Figure 6 – Codificação de endereço de malha.

  • Unassigned Address – Elementos não configurados ou elementos sem endereços designados, têm um endereço não atribuído. Dado que esses elementos não possuem um endereço exclusivo, eles não podem ser usados em mensagens.   
  • Unicast Address – Durante o provisionamento, um provisionador atribui um endereço unicast a cada elemento a um nó durante toda sua vida na rede. Os endereços de Unicast podem aparecer no campo de endereço de origem e / ou no campo de endereço de destino de uma mensagem. As mensagens enviadas para endereços de unicast são processadas somente por um elemento.
  • Virtual Address – Os endereços virtuais são um conjunto de elementos associados a um label UUID  específico; Esses endereços podem ser publicados ou subscritos. O Label UUID é um valor de 128 bits associado a vários elementos que podem vir de um ou mais nós.

Para endereços virtuais, os bits 15 e 14 são definidos para 1 e 0, respectivamente (Figura 6); Os bits 13 – 0 são definidos para um valor de hash (fornecendo 16.384 valores de hash). O hash é derivado do Label UUID. O UUID  de 128 bits com um elemento assinante é ineficiente, especialmente porque o UUID pode abranger mais de um segmento da mensagem, por isso os valores de hash fornecem uma maneira mais eficiente de determinar quais as mensagens são destinadas a quais elementos.

  • Group Address –Os endereços de grupo são outro tipo de endereço multicast encontrado nas redes de malha Bluetooth. Representando vários elementos de um ou mais nós, existem dois tipos de endereços de grupo:
    • Dinamicamente atribuído -> 0xC000-0xFEFF
    • Endereços Fixos – Atribuído pelo Bluetooth SIG e dividido em cinco segmentos:
      • Reservado para uso futuro (RFU) -> 0xFF00-0xFFFB
      • All-proxies -> 0xFFFC
        • Enviado para todos os nós com a funcionalidade proxy ativada.
        • All-friends -> 0xFFFD
          • Enviado para todos os nós com a funcionalidade de friend habilitada.
        • All-relays -> 0xFFFE
          • Enviado para todos os nós com a funcionalidade de relay habilitada.
        • All-nodes -> 0xFFFF
          • Envia para todos os  nodes.
        • Todas as mensagens enviadas para nodes fixos são processadas pelo elemento primário do node.  

Mensagens na mesh Bluetooth

As redes de mesh Bluetooth se comunicam através de mensagens. Uma mensagem pode ser denominada uma mensagem de controle ou uma mensagem de acesso.

  • Mensagens de controle – Mensagens relacionadas com o funcionamento da rede mesh Bluetooth. Os exemplos incluem mensagens de heartbeat e de solicitação de amizade.
  • Mensagens de acesso – Permitir que os modelos de clientes recuperem ou definam o valor dos valores de estado em modelos de servidor, ou são usados para relatar valores de estado pelo servidor.

Os modelos implementam e definem a funcionalidade dos nodes. Os elementos são entidades endereçáveis exclusivamente em nós que contenham um ou mais modelos e os estados definem o status dos elementos. Para cada estado, há um conjunto de mensagens que um modelo de servidor suporta. Os exemplos incluem um modelo de cliente que solicita o valor de um estado, solicita a alteração de um estado em um servidor que retorna informação sobre estados e / ou uma mudança de estado.

As mensagens são identificadas por opcodes e possuem parâmetros associados. Um opcode identifica a operação da mensagem. Exemplos incluem:

  • Genérico OnOff Get – Usado para identificar o estado; Estado OnOff para um modelo genérico.
    • Não há parâmetros para Generic OnOff Get.
  • O OnOff Set genérico é usado para definir o estado OnOff de um modelo genérico.
    • Parametros:
      • OnOff – Valor alvo (on or off).
      • TID – Identificador de transação – è uma nova mensagem ou uma retransmissão
      • Transition Time – Quanto tempo um elemento deve levar para transição de um estado para outro.
      • Delay – Delay de execução da Mensagem.

Existem duas categorias de mensagens de acesso, reconhecidas e não reconhecidas. As mensagens reconhecidas são transmitidas e reconhecidas por cada elemento receptor. A resposta normalmente é uma mensagem de status, sendo que nenhuma resposta é enviada para uma mensagem não aceita. As mensagens de status da rede de malha Bluetooth são um exemplo de mensagens não reconhecidas.

Segurança da Mensagem da Mesh Bluetooth

Toda mensagem de rede de mesh Bluetooth é protegida usando NetKeys e AppKeys para criptografar e autenticar mensagens. NetKeys são usados ​​para a comunicação da camada de rede. Em uma  rede mesh Bluetooth que não possui sub-redes, todas as comunicações dentro dessa rede usam a mesma chave.

AppKeys são usados ​​para dados das aplicações. Alguns nós da rede podem ter aplicações específicas e, nessas aplicações, dados potencialmente sensíveis que requerem acesso limitado. Esses nodes possuem um AppKey específico e estão associados a aplicativos específicos. Exemplos de áreas que podem usar AppKeys diferentes incluem segurança (controle de acesso ao edifício, acesso à sala de equipamentos e acesso ao escritório), iluminação (piso de fabricação, luzes de construção exterior e passarelas) e sistemas de HVAC.

Os nodes de retransmissão, como lâmpadas ou interruptores de parede, normalmente possuem NetKey válido e podem retransmitir mensagens sensíveis dentro da rede. No entanto, eles não teriam acesso ao AppKeys específico para as várias áreas restritas, como controle de construção ou Sistemas de HVAC, e não podiam descriptografar os dados do aplicativo.

Troca de Mensagens

A rede de mesh Bluetooth usa um modelo de publish/subscribe para o transporte de mensagens. Os node que geram mensagens são chamados para publicar mensagens. Os nodes interessados ​​em receber mensagens se inscrevem nos endereços em que estão interessados. As mensagens podem ser publicadas em unicast, grupo ou endereços virtuais.

As mensagens podem ser enviadas como respostas a outras mensagens ou podem ser mensagens não solicitadas. Quando um modelo envia uma mensagem de resposta, ele usa o endereço de origem do originador da mensagem como o endereço de destino. Ao enviar uma mensagem não solicitada, ele usa o endereço de publicação do modelo como o endereço de destino. Todo modelo em um node possui um único endereço de publicação.

Ao receber mensagens, cada instância de um modelo dentro de um node (pode haver vários modelos em um node) pode se inscrever para receber mensagens de um ou mais grupos ou endereços virtuais.

Os modelos que se inscrevem em mensagens usam listas de assinaturas de um modelo para definir endereços válidos dos quais eles podem receber mensagens. Quando as mensagens são recebidas por um modelo, o modelo verifica sua lista de assinaturas, e é considerada uma correspondência, quando o endereço na lista de inscrição é definido como o endereço unicast do elemento do modelo ou um endereço de grupo fixo que pertence ao nó. A Figura 7 mostra os endereços de origem e destino válidos para as mensagens de acesso.

Figure 7 – Endereço de origem e destino válido para mensagens de acesso.

À medida que as entidades da mesh Bluetooth publicam o status de vários nodes, os sistemas em toda a rede  podem se inscrever para esses dados, independentemente da proximidade da localização do node transmissor. Isso permite que equipamentos de um lado da rede, conversem com administradores em outros lugares da instalação, ṕor meio de mensagens sem fio de baixa potência, independentemente da distância.

Referência e traduções de :

https://blog.bluetooth.com/the-fundamental-concepts-of-bluetooth-mesh-networking-part-1

https://blog.bluetooth.com/the-fundamental-concepts-of-bluetooth-mesh-networking-part-2

Deixe um comentário

O seu endereço de e-mail não será publicado.