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)
| Comando | Direção | Função |
|---|---|---|
| LinkADRReq / Ans | DL / UL | Ajuste de DR, potência e canais |
| LinkCheckReq / Ans | UL / DL | Verificação de link |
| DevStatusReq / Ans | DL / UL | Status do dispositivo |
| RXParamSetupReq / Ans | DL / UL | Parâmetros RX1/RX2 |
| NewChannelReq / Ans | DL / UL | Configuração de canais |
| DutyCycleReq / Ans | DL / UL | Duty cycle (não usado no AU915) |
| ADRParamSetupReq | DL | Parâmetros do ADR |
| RejoinParamSetupReq | DL | Rejoin 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