Capítulo 10 — Comandos MAC (MAC Commands)

 

10. Introdução aos comandos MAC

Os Comandos MAC (Medium Access Control Commands) são mensagens de controle definidas pelo LoRaWAN para permitir a gestão da rede sem depender do payload da aplicação.

Eles são usados para:

  • Ajustar parâmetros de transmissão

  • Gerenciar canais e data rates

  • Controlar potência

  • Monitorar qualidade do link

  • Garantir interoperabilidade

📌 Ponto-chave
Comandos MAC não são dados de aplicação. Eles fazem parte do protocolo LoRaWAN.


10.1 Onde os comandos MAC são transportados

Os comandos MAC podem ser enviados de duas formas:

1️⃣ No campo FOpts

  • Até 15 bytes

  • Não consome payload da aplicação

  • Preferencial quando possível

2️⃣ No campo FRMPayload

  • Usa porta FPort = 0

  • Consome payload

  • Usado quando há muitos comandos

🔎 Boa prática
Sempre que possível, usar FOpts.


10.2 Direção dos comandos MAC

Os comandos podem ser enviados:

  • Uplink (dispositivo → rede)

  • Downlink (rede → dispositivo)

Cada comando possui:

  • Um CID (Command Identifier)

  • Um formato específico

  • Uma resposta associada (quando aplicável)


10.3 Principais comandos MAC (visão geral)

ComandoDireçãoFunção
LinkADRReq / AnsDL / ULAjuste de DR, potência e canais
LinkCheckReq / AnsUL / DLVerificação de link
DevStatusReq / AnsDL / ULStatus do dispositivo
RXParamSetupReq / AnsDL / ULParâmetros RX1/RX2
NewChannelReq / AnsDL / ULConfiguração de canais
DutyCycleReq / AnsDL / ULDuty cycle (não usado no AU915)
ADRParamSetupReqDLParâmetros do ADR
RejoinParamSetupReqDLRejoin automático

10.4 LinkADRReq / LinkADRAns (mais importante)

Função

  • Ajustar:

    • Data Rate (DR)

    • Potência

    • Máscara de canais

Uso típico no AU915

  • Selecionar sub-banda correta

  • Reduzir SF

  • Reduzir potência em dispositivos próximos

Erro comum

⚠️ Dispositivo não responde corretamente → parâmetros não aplicados


10.5 LinkCheckReq / LinkCheckAns

Função

  • Medir a qualidade do link

Métricas retornadas

  • Margin (dB)

  • Gateway count

🔎 Uso prático

  • Diagnóstico

  • Testes de cobertura

  • Validação de instalação


10.6 DevStatusReq / DevStatusAns

Função

  • Consultar:

    • Nível de bateria

    • Margem de link

🔎 Nota prática

  • Valor de bateria é estimado

  • Útil para monitoramento básico


10.7 RXParamSetupReq / RXParamSetupAns

Função

  • Configurar:

    • Frequência RX2

    • Data rate RX2

    • Offset RX1

AU915 padrão

  • RX2 frequência: 923,3 MHz

  • RX2 DR: DR8

⚠️ Erro comum:

  • Configuração inconsistente → perda de downlink


10.8 NewChannelReq / NewChannelAns

Função

  • Criar ou modificar canais

🔎 AU915

  • Pouco usado

  • Canais já são definidos regionalmente

  • Uso mais comum em EU868


10.9 DutyCycleReq / DutyCycleAns

Função

  • Limitar duty cycle

Não aplicável no AU915

  • AU915 usa dwell time

  • Este comando geralmente é ignorado


10.10 ADRParamSetupReq

Função

  • Ajustar parâmetros do ADR

  • Define:

    • Limites de data rate

    • Comportamento do algoritmo

📌 Uso avançado

  • Operadores de rede

  • Redes privadas de grande porte


10.11 RejoinParamSetupReq

Função

  • Controlar:

    • Intervalos de rejoin

    • Tipos de rejoin permitidos

🔎 Importante

  • Ajuda a manter segurança

  • Útil para dispositivos long-lived


10.12 Prioridade e impacto dos comandos MAC

⚠️ Comandos MAC:

  • Consomem downlink

  • Afetam escalabilidade

  • Devem ser usados com moderação

🔎 Boas práticas

  • Evitar excesso de comandos

  • Agrupar comandos

  • Priorizar LinkADRReq


10.13 Debug de comandos MAC (mundo real)

Sintomas comuns

  • ADR não funciona

  • SF nunca muda

  • Downlinks perdidos

  • Join instável

Checklist rápido

✔️ FPort correto
✔️ Frame counters ok
✔️ Sub-banda correta
✔️ RX2 configurado
✔️ Gateway com 500 kHz ativo


Encerramento do Capítulo 10

Neste capítulo você aprendeu:

  • O que são comandos MAC

  • Onde são transportados

  • Principais comandos LoRaWAN

  • Uso prático no AU915

  • Erros comuns

  • Boas práticas operacionais

Comentários