Você está na página 1de 48

Rdio Modem RM2070

ZigBee 2.4 GHz Manual do Usurio

Reviso 2.2 (PRELIMINAR) 09/11/2009


Alfacomp Automao Industrial Ltda. - www.alfacomp.ind.br

Sumrio
1.
1.1 1.2

Introduo ao Transceptor RM2070 _________________________________________5


Caractersticas ............................................................................................................................................................... 5 Especificaes Tcnicas ............................................................................................................................................... 6

2.
2.1 2.1.1 2.2 2.2.1 2.3

Conexes e Sinalizao___________________________________________________6
Interface Serial RS232................................................................................................................................................... 7 Uso dos Sinais RTS e CTS ....................................................................................................................................... 8 Interface Serial RS485................................................................................................................................................... 8 Conexes Internas..................................................................................................................................................... 8 Interconexo das Interfaces Seriais.............................................................................................................................. 9

3. 4.
4.1 4.2 4.3 4.4 4.5 4.5.1 4.5.2 4.6 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5

Fixao em Trilho DIN ___________________________________________________10 Funcionamento Serial do Transceptor ______________________________________10


Buffer Serial.................................................................................................................................................................. 10 Buffer da Porta Serial................................................................................................................................................... 10 Buffer do Canal de RF ................................................................................................................................................. 11 Controle de Fluxo......................................................................................................................................................... 11 Protocolos da Interface Serial ..................................................................................................................................... 11 Operao em Modo Transparente.......................................................................................................................... 11 Operao em Modo API.......................................................................................................................................... 11 Estados de Operao .................................................................................................................................................. 12 Modo Idle.................................................................................................................................................................. 12 Modo Transmisso .................................................................................................................................................. 12 Modo Recepo....................................................................................................................................................... 12 Modo Comando........................................................................................................................................................ 12 Modo Adormecer (Sleep) ........................................................................................................................................ 13

5.
5.1 5.2 5.3 5.3.1 5.4 5.4.1 5.5 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.6 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 5.6.6 5.6.7 5.6.8 5.6.9 5.6.10 5.6.11 5.6.12 5.7

Redes ZigBee __________________________________________________________13


Introduo..................................................................................................................................................................... 13 Camadas ZigBee ......................................................................................................................................................... 13 Conceitos de Rede....................................................................................................................................................... 13 Tipos de Dispositivos............................................................................................................................................... 13 PAN ID .......................................................................................................................................................................... 14 Canal de Operao.................................................................................................................................................. 14 Camadas de Aplicao................................................................................................................................................ 14 Perfis de Aplicao .................................................................................................................................................. 15 Clusters .................................................................................................................................................................... 15 Endpoints.................................................................................................................................................................. 15 Perfil de Dispositivo ................................................................................................................................................. 15 ZigBee Device Object (ZDO)................................................................................................................................... 15 Operao do Coordenador.......................................................................................................................................... 16 Formando uma Rede............................................................................................................................................... 16 Seleo de Canal..................................................................................................................................................... 16 Seleo do PAN ID .................................................................................................................................................. 16 Poltica de Segurana.............................................................................................................................................. 16 Informaes Retentivas........................................................................................................................................... 16 Parametrizao do Coordenador............................................................................................................................ 16 Permisso para Aderir (Permit Joining).................................................................................................................. 17 Reset do Coordenador ............................................................................................................................................ 17 Deixando a Rede ..................................................................................................................................................... 17 Substituindo um Coordenador (Apenas com segurana desabilitada) ................................................................ 17 Exemplo: Ajustando um Coordenador.................................................................................................................... 18 Exemplo: Substituindo um Coordenador (segurana desabilitada)...................................................................... 18 Operao do Roteador ................................................................................................................................................ 18

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

5.7.1 Aderindo Rede ...................................................................................................................................................... 18 5.7.2 Encontrando Redes ZigBee .................................................................................................................................... 18 5.7.3 Aderindo a uma Rede.............................................................................................................................................. 18 5.7.4 Autenticao............................................................................................................................................................. 19 5.7.5 Dados Retentivos..................................................................................................................................................... 19 5.7.6 Roteador RM2070 Aderindo.................................................................................................................................... 19 5.7.7 Permit Joining (Permite Adeso) ............................................................................................................................ 19 5.7.8 Adeso Sempre Habilitada...................................................................................................................................... 19 5.7.9 Adeso Temporria Habilitada................................................................................................................................ 19 5.7.10 Resetando o Roteador............................................................................................................................................. 20 5.7.11 Abandonando a Rede.............................................................................................................................................. 20 5.7.12 Exemplo: Aderindo a Rede ..................................................................................................................................... 20 5.8 Operao de End Device (Dispositivo Terminal) ....................................................................................................... 20 5.8.1 Aderindo Rede ...................................................................................................................................................... 20 5.8.2 Descobrindo Redes ZigBee .................................................................................................................................... 20 5.8.3 Aderindo Rede ...................................................................................................................................................... 21 5.8.4 Relao Pai/Filho..................................................................................................................................................... 21 5.8.5 Capacidade do End Device ..................................................................................................................................... 21 5.8.6 Autenticao............................................................................................................................................................. 21 5.8.7 Dados Retentivos (No Volteis)............................................................................................................................ 21 5.8.8 Varredura rf (Orphan Scan)................................................................................................................................ 21 5.8.9 RM2070 como End Device aderindo Rede......................................................................................................... 21 5.8.10 Conectividade com Pais........................................................................................................................................ 22 5.8.11 Resetando o End Device ......................................................................................................................................... 22 5.8.12 Deixando a Rede ..................................................................................................................................................... 22 5.8.13 Exemplo: Aderindo a uma Rede ............................................................................................................................. 22 5.9 Varredura de Canal...................................................................................................................................................... 23 5.9.1 Gerenciando Mltiplas Redes ZigBee .................................................................................................................... 23 5.9.2 Filtro de PAN ID ....................................................................................................................................................... 23 5.9.3 Chaves de Segurana Pr-configuradas................................................................................................................ 23 5.9.4 Permisso de Adeso.............................................................................................................................................. 23 5.9.5 Estrutura de Mensagens (Application Messaging ) ................................................................................................ 23

6.
6.1 6.1.1 6.1.2 6.1.3 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.4 6.5 6.5.1 6.6 6.7 6.7.1 6.7.2 6.8 6.8.1 6.8.2 6.8.3 6.8.4

Transmisso, Endereamento e Roteamento de Dados ________________________23


Endereamento............................................................................................................................................................ 23 Endereo de 64 bits................................................................................................................................................. 24 Endereo de 16 bits................................................................................................................................................. 24 Endereamento na Camada de Aplicao............................................................................................................. 24 Transmisso de Dados................................................................................................................................................ 24 Transmisses em Broadcast................................................................................................................................... 24 Transmisses Unicast ............................................................................................................................................. 25 Tabela de Endereos............................................................................................................................................... 25 Address Discovery (Busca de Endereos)............................................................................................................. 25 Exemplos de Transmisses de Dados................................................................................................................... 25 Roteamento de Pacote em RF.................................................................................................................................... 26 Transmisso do Status de Conexo (Link Status Transmission ) ......................................................................... 27 Roteamento Mesh AODV (Ad-hoc On-Demand Distance Vector)........................................................................ 27 Roteamento Muitos-para-um................................................................................................................................... 28 Roteamento de Origem (Source Routing).............................................................................................................. 29 Transmisses Codificadas (encrypted transmissions)............................................................................................... 31 Melhorando a Eficincia do Roteamento com o API ................................................................................................. 31 Tabela de Endereamento ...................................................................................................................................... 31 Capacidade de Carga Mxima em RF........................................................................................................................ 31 Transmisses de Gerenciamento ............................................................................................................................... 31 Enviando um Comando ZDO .................................................................................................................................. 32 Recebendo Comandos e Respostas ZDO ............................................................................................................. 32 Timeouts de Transmisso ........................................................................................................................................... 33 Transmitindo para Um Roteador Remoto ou Coordenador .................................................................................. 33 Transmitindo para um End Device Filho.............................................................................................................. 34 Transmitindo para um End Device Remoto ........................................................................................................... 34 Exemplos de Transmisso ...................................................................................................................................... 34

7.
7.1 7.2

Segurana_____________________________________________________________35
Modos de Segurana................................................................................................................................................... 35 O Modelo de Segurana do ZigBee............................................................................................................................ 36

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

7.2.1 Segurana na Camada de Rede ............................................................................................................................ 36 7.2.2 Contador de Frames................................................................................................................................................ 36 7.2.3 Cdigo de Integridade da Mensagem..................................................................................................................... 36 7.2.4 Encriptao e Desencriptao na Camada de Rede............................................................................................. 36 7.2.5 Atualizaes da Chave de Rede............................................................................................................................. 37 7.2.6 Segurana na Camada APS ................................................................................................................................... 37 7.2.7 Cdigo de Integridade da Mensagem..................................................................................................................... 37 7.2.8 Chaves APS de Link................................................................................................................................................ 37 7.2.9 Encriptao e Desencriptao na Camada APS ................................................................................................... 37 7.2.10 Encriptao nas Camadas APS e de Rede ........................................................................................................... 37 7.2.11 Trust Center ............................................................................................................................................................. 38 7.2.12 Formando e Aderindo a Redes Seguras................................................................................................................ 38 7.3 Implementando Segurana no RM2070 ..................................................................................................................... 38 7.3.1 Habilitando a Segurana ......................................................................................................................................... 38 7.3.2 Ajustando a Chave de Segurana de Rede........................................................................................................... 38 7.3.3 Selecionando a Chave APS Trust Center Link ...................................................................................................... 39 7.3.4 Utilizando um Trust Center...................................................................................................................................... 39 7.4 XBee Security Examples ............................................................................................................................................. 39 7.4.1 Example 1: Forming a network with security (pre-configured link keys)............................................................... 39 7.4.2 Example 2: Forming a network with security (obtaining keys during joining)....................................................... 40

8. 9.
9.1 9.2 9.3 9.4 9.5 9.6

Managing End Devices____________________________________________________40 Teste de Comunicao __________________________________________________43


Dvidas Comuns.......................................................................................................................................................... 43 Testando Rdios Passo a Passo ................................................................................................................................ 43 Programando os Rdios para o Teste de ECO.......................................................................................................... 44 Conectando Equipamentos para o Teste de ECO..................................................................................................... 44 Teste de ECO Utilizando o Software AirTest ............................................................................................................. 45 Teste com os Equipamentos Definitivos..................................................................................................................... 47

10.

Teste de Enlace em Distncia Estendida ____________________________________48

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

1. Introduo ao Transceptor RM2070


O transceptor Alfacomp RM2070 atende a especificao IEEE 802.15.4 e, sobre a mesma, implementa o poderoso protocolo ZigBee. O produto final um rdio modem dotado de interfaces RS232 e RS485 simultaneamente. A parametrizao de fbrica permite utilizao imediata, transmitido dados seriais entre dois ou mais dispositivos dotados de portas RS232 ou RS485. Uma ferramenta de programao de fcil utilizao permite ajustar os transceptores para a composio de redes Mesh e configuraes complexas. O rdio modem Alfacomp RM2070 pode substituir milhares de metros de cabos de comunicao em ambientes industriais ruidosos. Utilizando comprovada tecnologia DSSS (Direct Sequence Spread Spectrum), que dispensa licena de operao junto a Anatel, o transceptor RM2070 estabelece comunicao entre computadores, clps e instrumentos diversos que possuem porta serial em padro RS232 e RS485 com taxas de 1200 a 115.200 bps. Este o manual de utilizao do rdio modem RM2070 e contm informaes sobre a programao e operao dos transceptores. As informaes incluem teoria de funcionamento, especificaes tcnicas, configurao da interface serial, instalao e diagnstico de falhas. Transceptor e rdio modem so as duas formas pelas quais o manual se refere ao equipamento RM2070, que tambm chamado mdulo. As duas interfaces, RS232 e RS485, so ambas interconectadas e funcionam paralelamente. O texto pode ser referenciar as mesmas como porta serial ou portas seriais, pois esto conectadas ao mesmo canal serial. O equipamento funciona como conversor serial RS232/RS485, pois quando dados so enviados porta serial RS232, os mesmos so transmitidos pela interface RS485 e vice-versa.

1.1 Caractersticas
Opera na faixa ISM 2.4 GHz; Compatvel com o protocolo ZigBee e o padro IEEE 802.15.4; Alcance de 100 metros em ambiente fechado e 1.600 metros com antenas direcionais; Excelente relao custo-benefcio; Baixo consumo de energia; Baixo tempo de latncia (15ms entre o rdio energizar e passar a comunicar); Alimentao de 10 a 30V; Interfaces seriais RS232 e RS485 simultneas; Velocidade serial de 1200 a 115.200 bps; Velocidade de dados em RF de 250 kbps; Sensibilidade de -100 dBm; Comunicao ponto a ponto, ponto multiponto, peer-to-peer e redes Mesh; DSSS Direct Sequence Spread Spectrum (Espalhamento Espectral por Saltos de Freqncia em Seqncia Direta); Dimenses pequenas e baixo consumo de energia permitem a operao por baterias; Configurao on-line atravs de comandos AT; Potncia ajustvel.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

1.2 Especificaes Tcnicas


Alfacomp RM2070 - ESPECIFICAES TCNICAS
DESEMPENHO DO TRANSCEPTOR Potncia de sada Alcance Baud rate serial Baud rate de RF Sensibilidade do receptor Software de configurao SEGURANA E REDE Faixa de operao Tecnologia Modulao Topologia de rede Nmero de canais Segurana CONEXES RF Serial RS232 Serial RS485 ALIMENTAO Tenso Consumo de energia AMBIENTAIS Temperatura de operao Umidade FSICAS Dimenses Peso Forma Altura 80 x Largura 25 x Profundidade 98 mm 230 g Gabinete em ao com fixao para trilho DIN -40 a +85 C 10% a 90% (no condensante) 10 a 30 VCC 250 mA durante transmisso e 70 mA fora de transmisso (em 12 V). 130 mA durante transmisso e 40 mA fora de transmisso (em 24 V). SMA fmea RJ12 macho Borne destacvel modelo STL(Z) Juntamente com a alimentao ISM 2.4GHz DSSS Direct Sequence Spread Spectrum (Espalhamento Espectral por Saltos de Freqncia em Seqncia Direta) OQPSK - Offset Quadrature Phase Shift Keying Ponto a ponto, ponto-multiponto, peer-to-peer e Mesh 14 Identificador ID de rede. Endereo de rede. Endereo de fonte e destino. 50 mW 100 metros dentro de edificaes At 1.600 km com visada e antenas direcionais 1200 a 115.2 Kbps 250 kbps -102 dBm tpico Baseado em Windows - fcil utilizao

2. Conexes e Sinalizao
Quatro Leds localizados no painel frontal do rdio indicam o funcionamento do equipamento conforme tabela que segue.

LED PWR LINK TX RX

Descrio Ligado indica que a unidade est alimentada. Indica dor de conexo com outros transceptores. Pulsando indica que a unidade est transmitindo dados pelo RF. Pulsando indica que a unidade est recebendo dados pelo RF.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

+V (10 a 30)

0V GND A(+) B(-)

Equipamento Serial

2.1 Interface Serial RS232


O transceptor Alfacomp RM2070 dotado de interface RS232. A pinagem do conector serial apresentada na tabela que segue.

Configurao do Conector Serial Pino 2 3 4 5 6 Descrio RXD - Dados recebidos pelo rdio TXD - Dados a serem transmitidos pelo rdio RTS - Request to send GND CTS - Clear to send Sada Sentido Sada Entrada Entrada

RS485

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

O transceptor Alfacomp RM2070 chamado DCE (Data Communication Equipment). Um DCE pode ser conectado a um DTE (Data Terminal Equipment), por exemplo, um pc, atravs de um cabo pino a pino. A figura a seguir apresenta a configurao do cabo para interligar o rdio porta serial de um pc. Rdio RJ12 2 - RXD PC - DB9 fmea 2 - RXD

3 - TXD

3 - TXD

5 - GND

5 - GND

4 - RTS

7 - RTS

6 - CTS

8 - CTS

2.1.1 Uso dos Sinais RTS e CTS


Os sinais RTS (Request To Send) e CTS (Clear To Send) tm a funo de controlar o fluxo de dados entre o rdio e o dispositivo conectado a ele. O dispositivo ligado ao rdio, um microcomputador, por exemplo, informa que vai transmitir dados acionando o RTS. O rdio responde que est disponvel para receber os dados acionando o CTS. Ao detectar o CTS ativo, o microcomputador inicia a transmisso de dados. Se rdio ficar sobrecarregado de dados em sua memria buffer, este ir desacionar o CTS o que obrigar o microcomputador a interromper a transmisso de dados at que o CTS esteja ativo novamente. Esta forma de controle de fluxo tambm chamada de handshaking por RTS/CTS. Se o RTS for desabilitado na programao do rdio, o fluxo de dados se dar por XON/XOFF, ou seja, o fluxo de dados em TXD e RXD determina o momento de transmitir.

2.2 Interface Serial RS485


A porta serial RS485 est presente no mesmo conector utilizado para alimentar o rdio. O conector do tipo STL(Z) da Phoenix Mecano. A pinagem do conector apresentada na tabela que segue.

Configurao do Conector de Alimentao e RS485 Pino +V 0V GND A B Descrio Alimentao: 10 a 30 VCC Alimentao: 0V Conectar a malha do cabo RS485 A (+) B (-) RS485 (GND) RS485 (+TX/+RX) RS485 (-TX/-RX) Sentido

2.2.1 Conexes Internas


O circuito parcial a seguir, apresenta as conexes internas da porta RS485. Observe-se que os sinais A e B da conexo seria RS485 so protegidas contra sobre tenses por Transorbs. O Jumper J1 conecta a terminao resistiva de 120 ohms. Esta terminao deve ser utilizada nas pontas da rede RS485. Consulte as normas EIA para saber mais sobre este padro serial.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

O rdio possui um orifcio na tampa de fechamento que d acesso ao Jumper. O Jumper pode ser colocado e retirado utilizando-se um alicate de bico fino. As fotos a seguir apresentam o orifcio de acesso e a disposio interna do Jumper.

Orifcio de acesso Jumper da terminao resistiva

2.3 Interconexo das Interfaces Seriais


As interfaces RS232 e RS485 esto interligadas internamente no rdio. Isso significa que um frame serial recebido pelo rdio ser simultaneamente reproduzido na RS232 assim como na RS485. Da mesma forma, os frames recebidos na RS232 assim como na RS485 sero transmitido pelo rdio. No existe seleo de interfaces, ambas esto ativas. Isto pode ser til na composio de repetidoras, por exemplo, em que interligamos rdio pela RS485 e comunicamos com um clp local pela RS232, ou interligamos rdios pelas RS232, cruzando TX e RX, e ligamos um clp RS485. O equipamento funciona como conversor serial RS232/RS485, pois quando dados so enviados porta serial RS232, os mesmos so transmitidos pela interface RS485 e vice-versa.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

3. Fixao em Trilho DIN


O rdio pode ser fixado em trilho DIN por meio do grampo plstico localizado na face traseira. Utilize uma chave de fenda para liberar o equipamento do trilho.

4. Funcionamento Serial do Transceptor


4.1 Buffer Serial
O Transceptor possui buffers que armazenam os dados da porta serial assim como dados recebidos por RF (radio freqncia). O buffer da porta serial armazena os dados recebidos pela porta serial e os mantm at o momento de sua utilizao. O buffer do canal de RF armazena os dados recebidos pelo canal de RF que sero copiados para as portas RS232 e RS485.

4.2 Buffer da Porta Serial


Quando os dados seriais chegam ao transceptor pelas portas RS232 ou RS485, os bytes so armazenados no buffer da porta serial at que sejam processados. Conforme o momento, o transceptor pode no estar pronto para processar os dados recm chegados. Se grandes quantidades de dados so enviados porta serial do rdio, os sinais de RTS e CTS devem ser utilizados. Algumas situaes que requerem a utilizao de RTS e CTS: Se o mdulo est recebendo uma seqncia continua de dados pelo canal de RF, os dados que esto sendo armazenados no buffer da porta serial tero de aguardar at que a recepo de rdio encerre. Quando o mdulo est transmitindo um pacote pelo canal de RF, talvez seja necessrio descobri o endereo de destino e estabelecer uma rota de comunicao. Aps transmitir, a retransmisso pode ser requerida caso no haja confirmao de recepo pelo dispositivo

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

10

destino, ou se a transmisso for um broadcast. Nestes casos, o processamento dos dados armazenados no buffer da porta serial ser lento.

4.3 Buffer do Canal de RF


Os dados recebidos por rdio so armazenados pelo buffer do canal de RF. Se o buffer ultrapassar sua capacidade de armazenamento, o pacote inteiro descartado. Algumas situaes em que acontece a perda do pacote: Quando a taxa de comunicao RF mais alta que a velocidade da porta serial, o mdulo pode estar recebendo dados pelo canal de RF em uma velocidade mais alta do que os dados so entregues a porta serial. Quando o equipamento conectado ao rdio impede que os dados seriais sejam entregues por controle de fluxo.

4.4 Controle de Fluxo


O sinal de CTS fornece ao equipamento conectado ao rdio um sinal habilitando que o mesmo envie dados porta serial. O RTS o sinal enviado ao rdio para indicar que o equipamento solicita enviar dados. Se a utilizao dos sinais de RTS e CTS estiver habilitada na programao do rdio, o sinal de CTS impedir o envio de dados quando o buffer do canal serial estiver a 17 bytes do seu limite mximo de armazenamento. O sinal de CTS ir permitir o envio de dados novamente, quando o buffer possuir pelo menos 34 bytes livres. Quando o equipamento conectado ao rdio acionar o sinal de RTS, o rdio ser impedido de enviar porta serial os dados recebidos pelo canal de RF. Isso pode provocar a perda de pacotes recebidos por RF.

4.5 Protocolos da Interface Serial


O transceptor suporta funcionamento transparente e funcionamento API - Application Programming Interface ( Interface de Programao).

4.5.1 Operao em Modo Transparente


Quando operando em modo transparente, o transceptor funciona como um cabo serial. Os dados recebidos pela porta serial so transmitidos pelo canal de RF. Os dados recebidos pelo canal de RF so reproduzidos pela porta serial. O equipamento configurado por meio de comandos AT. Os dados so armazenados pelo buffer da porta serial at que uma das seguintes situaes a seguir provoca o empacotamento e transmisso via rdio: Cessa o fluxo de dados sendo recebidos na porta serial por tempo ajustado no parmetro packetization timeout. A seqncia de comandos ( GT + CC + GT ) recebida na porta serial. Os bytes recebidos, menos a seqncia de comando so empacotados e transmitidos. O nmero mximo de bytes que o pacote de RF suporta atingido.

4.5.2 Operao em Modo API


O modo API - Application Programming Interface ( Interface de Programao) baseado em frames de comunicao. Este modo de funcionamento permite operao em redes de comunicao. Quando o transceptor opera em API, todos os dados so encapsulados em frames que definem operaes ou eventos com o mdulo. Frames de transmisso incluem: Frames de transmisso de dados; Frames de comandos (equivalentes aos comandos AT). Frame de dados recebidos pelo canal de RF; Respostas a comandos; Notificao de eventos, como por exemplo, reset, associao, desassociao. etc

Frames de recepo incluem:

O modo API oferece ao equipamento conectado, formas alternativas para configurar os transceptores e rotear dados. O equipamento conectado ao transceptor pode enviar frames contendo endereo e carga de dados no lugar de utilizar comandos para modificar endereos. O transceptor devolver frames de dados contendo status dos pacotes recebidos, origem da transmisso e carga de dados. O modo API facilita operaes como as listadas abaixo: Transmitir dados a mltiplos destinos sem ter que entrar no modo de comando; Receber status de sucesso/falha para cada pacote enviado por RF; Identificar o endereo de origem de cada pacote recebido por RF.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

11

4.6 Estados de Operao


4.6.1 Modo Idle
Quando no estiver recebendo ou transmitindo, o transceptor est em modo Idle. O transceptor muda para os outros modos quando: Modo transmisso: dados so recebidos pela porta serial e o mdulo inicia o empacotamento; Modo recepo: quando uma recepo vlida acontece no canal de RF; Modo adormecer (Sleep): apenas para dispositivos ponta-de-rede; Modo comando: quando uma seqncia de comando recebida na porta serial.

4.6.2 Modo Transmisso


Quando dados so recebidos pela porta serial e esto prontos para serem empacotados, o transceptor assume o modo transmisso. O endereo de destino determina qual n da rede ir receber o pacote. Antes de a transmisso acontecer, o mdulo estabelece a conexo da rota at o destino. Se o endereo de 16 bits que identifica o equipamento destino no for conhecido, uma busca ser iniciada. Se a rota for desconhecida, uma tentativa de estabelecer a rota at o destino final ser executada. Se nenhum equipamento contendo o endereo de 16 bits for encontrado, o pacote ser descartado. Se a tentativa de estabelecer a rota falhar, o pacote ser descartado. Quando dados so transmitidos de um n para outro da rede, um reconhecimento transmitido de volta, pela rota estabelecida, at o n que originou a transmisso. Este reconhecimento indica para o n de origem que os dados foram recebidos pelo n destino. Se um reconhecimento no for recebido, o n de origem ir retransmitir o pacote. Pode acontecer de o n destino receber o pacote e o n origem no receber a confirmao. Neste caso, o pacote ser retransmitido sem necessidade. O RM2070 no filtra este tipo de situao, que dever estar prevista pelos equipamentos que utilizarem os transceptores para estabelecer comunicao.

4.6.3 Modo Recepo


Quando uma um pacote vlido recebido pelo canal de RF, os dados so transferidos para o buffer respectivo.

4.6.4 Modo Comando


Para alterar ou ler os parmetros do transceptor, o mdulo primeiramente entra em modo comando. O modo comando um estado no qual os bytes recebidos na porta serial, so interpretados pelo transceptor como comandos. O modo API oferece uma forma alternativa para configurar o RM2070. 4.6.4.1 Comandos AT Para entrar no modo comando, envie a seqncia de caracteres "+++", e observe o tempo de guarda (1 segundo) antes e aps enviar a seqncia. Depois de enviada e aceita a seqncia para entrar em modo comando, o transceptor devolve a resposta "OK\r". A resposta pode atrasar um pouco se o transceptor estiver ocupado transmitindo ou recebendo um pacote. Quando entra no modo comando, o transceptor reinicializa o temporizador de comandos e fica pronto para receber comandos AT. Observao: falha na tentativa de entrar em modo comando geralmente devido seleo errada de velocidade serial. A seqncia abaixo apresenta a sintaxe dos comandos AT.

(ASCII)

(Opcional)

(Opcional, Hexa)

Exemplo:

AT DT 1F <CR>

Para ler um parmetro interno do transceptor, omita o campo parmetro. O exemplo apresentado altera o byte menos significativo do endereo para 1F (hexa). Para armazenar o parmetro na memria no voltil do rdio, seria necessrio enviar um comando WR - Write (escrita).

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

12

Para que os parmetros enviados sejam permanentemente armazenados no transceptor, necessrio salv-los na memria no voltil utilizando o comando WR (escrita). Se isto no for feito, a parametrizao voltar ao estado anterior aps o reset. Resposta aos Comandos - Aps processar comandos AT devidamente reconhecidos, o transceptor ir responder com uma mensagem de "OK". Se houver falha na execuo do comando, o transceptor responde com uma mensagem de "ERROR". Reconhecimento das Modificaes - Qualquer mudana na parametrizao do transceptor apenas tem efeito quando as modificaes forem aplicadas. A aplicao das modificaes quando: enviado um comando AC - Apply Changes ( aplicar alteraes); O transceptor sai do modo comando. O transceptor sai do modo comando quando: 1 - enviado o comando ATCN ( sair do modo comando) seguido de carriage return. [OU] 2 - Se nenhum comando enviado e o tempo de time-out atingido e o transceptor automaticamente volta para o modo Idle.

4.6.5 Modo Adormecer (Sleep)


O modo adormecer remete o transceptor a um estado de baixo consumo de energia quando no est sendo utilizado.

5. Redes ZigBee
5.1 Introduo
O ZigBee um protocolo internacional e aberto construdo sobre o padro IEEE 802.15.4 Mac/Phy. O ZigBee define uma camada acima do 802.15.4 para suportar capacidades avanadas de roteamento Mesh. A especificao ZigBee desenvolvida por um consrcio que ganha novos membros a cada dia, a ZigBee Alliance. Com o objetivo de manter o passo com a documentao original, amplamente disponvel na Internet, muitas das expresses foram mantidas em Ingls.

5.2 Camadas ZigBee


A pilha ZigBee consiste de vrias camadas incluindo a PHY, MAC, Network, Application Sublayer (APS), e a camada ZigBee Device Objects (ZDO). Tecnicamente, a camada AF ( Application Framework) tambm existe, mas est agrupada com a camada APS para fins de conceituao. As camadas ZigBee so apresentadas pela tabela a seguir:

Camadas ZigBee PHY

Descrio Define a operao fsica do dispositivo ZigBee, incluindo sensibilidade de recepo, potncia de sada, nmero de canais, tipo de modulao e velocidades de transmisso. A maioria dos dispositivos ZigBee operam na faixa ISM de 2.4 GHz, com velocidade de 250kbps. Veja as especificaes IEEE 802.15.4 para mais detalhes. Gerencia as transaes em RF entre dispositivos vizinhos (ponto a ponto). O MAC inclui servios como as retentativas de transmisso e reconhecimentos de sucesso de comunicao e tcnicas anti-coliso (CSMA-CA). Adiciona as capacidades de roteamento que permitem os pacotes de RF transpor mltiplos dispositivos de forma a traar rotas entre a origem e o destino (peer to peer). Camada de aplicao que define endereamentos dos objetos, perfis, clusters e endpoints (ponta de rede). Camada de aplicao que define capacidades avanadas de gerncia de rede e busca de dispositivos.

MAC Network APS (AF) ZDO

5.3 Conceitos de Rede


5.3.1 Tipos de Dispositivos
O ZigBee define trs tipos de dispositivos: coordenador (coordinator) , roteador ( router) e dispositivo terminal (end device). O coordenador tem as seguintes caractersticas/capacidades: Selecionar um canal e PAN ID (Identificador de rede), com 64 e 16 bits respectivamente, para iniciar uma rede; Pode habilita roteadores e dispositivos terminais a juntar-se a rede; Pode auxiliar no roteamento de dados; No pode adormecer, tem que ser mantido sempre energizado.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

13

Um roteador tem as seguintes caractersticas/capacidades: Tem que se integrar a uma rede ZigBee antes de poder transmitir, receber ou rotear dados; Aps juntar-se a uma rede, pode repassar dados (rotear); No pode adormecer, deve ser mantido sempre energizado. Tem que se integrar a uma rede ZigBee antes de poder transmitir ou receber dados; No pode habilitar dispositivos a ingressar na rede; Deve sempre transmitir e receber dados por intermdio de seus pais; No pode rotear dados; Pode entrar em modos de baixo consumo para economizar energia.

Um dispositivo terminal tem as seguintes caractersticas/capacidades:

Roteador Coordenador Roteador

Terminal

Terminal

Terminal

Roteador Roteador

Terminal

Terminal

Roteador Terminal

Em redes ZigBee, o coordenador deve selecionar um PAN ID e um canal para iniciar uma rede. Feito isso, passa a funcionar essencialmente como um roteador. O coordenador e os roteadores podem habilitar outros dispositivos a ingressar na rede e podem rotear dados. Aps um dispositivo terminal juntar-se rede por intermdio de um roteador ou pelo coordenador, este passa a ser seu pai na rede. J que o dispositivo terminal pode adormecer, o pai deve ter a habilidade de armazenar dados destinados ao terminal filho, at que o dispositivo acorde e possa receber o pacote.

5.4 PAN ID
As redes ZigBee so chamadas PANs (Personal Area Networks). Cada rede identificada com um nico PAN ID (identificador de PAN). Este identificador comum a todos os dispositivos pertencentes rede. Os dispositivos podem ou terem sido pr-configurados com um PAN ID para juntar-se a rede, ou podem descobrir o PAN ID de uma rede a seu alcance. O padro ZigBee suporta identificadores de 16 e 64 bits. Se mltiplas redes esto operando na mesma rea, cada uma dever ter seu PAN ID. O PAN ID utilizado como o campo de endereo na camada MAC em todas as transmisses RF entre dispositivos da rede. Devido ao limite de endereos do PAN ID de 16 bits ( 65.535 endereos ), existe a chance de redes operando na mesma rea possuam o mesmo identificador. Por este motivo foi criado o PAN ID de 64 bits. O PAN ID de 64 bits, tambm chamado PAN ID entendido, tem o objetivo de ser um identificador nico e no duplicado. Quando um coordenador inicia uma rede, o mesmo pode ou utilizar um PAN ID pr-configurado, ou selecionar aleatoriamente um identificador de 64 bits. O identificador de 64 bits est presente em todos os sinalizadores (beacons) e pode ser utilizado na resoluo de conflitos de redes com PAN ID de 16 bits. Roteadores e terminais so tipicamente configurados para integrar redes com identificadores de 16 bits, desde que o PAN ID de 64 bits seja valido. Os coordenadores geralmente elegem aleatoriamente PAN ID de 16 bits para suas redes. Devido ao nmero mximo de 65.535 valores dos PAN IDs que so aleatoriamente escolhidos, o padro ZigBee tem capacidade de detectar se duas redes diferentes (com diferentes PAN IDs de 64 bits) esto operando com o mesmo PAN ID de 16 bits. Quando o conflito detectado, novos PAN IDs de 16 bits so assumidos. Resumindo, os dispositivos de uma mesma rede deveriam ter os PAN IDs pr-configurados para integrar a rede desejada. Tipicamente, os dispositivos iro adquirir o PAN ID de 16 bits da rede que integrarem.

5.4.1 Canal de Operao


O ZigBee utiliza DSSS (Direct Sequence Spread Spectrum) e opera em um canal fixo. O 802.15.4 PHY define 16 canais de operao na banda de 2.4 GHz. O transceptor RM2070 suporta 14 dos 16 canais.

5.5 Camadas de Aplicao


Esta seo fornece uma viso mais detalhada da camada de aplicao (APS, ZDO), incluindo a definio dos endpoints, clusters and profiles (perfis). Parte do material de desta seo contm detalhes desnecessrios para muitas aplicaes.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

14

Desconsidere esta seo se: O transceptor RM2070 no ir inter operar com equipamentos de outras marcas; O propsito for redes para transmitir dados entre dispositivos; No desconsidere esta seo se: O transceptor ir operar com equipamentos de outros fabricantes; A rede exigir capacidades da camada ZDO; O transceptor ir operar em aplicaes de perfil pblico (gerncia de energia, automao predial, etc.)

5.5.1 Perfis de Aplicao


Perfis de aplicao definem a descrio e funcionalidades diversas dos dispositivos. A coleo de descries dos dispositivos constitui o perfil de aplicao. Perfis de aplicao podem ser Pblicos ou Privados. Perfis Privados so definidos por fabricantes, enquanto que Perfis Pblicos so definidos pela ZigBee Alliance. Cada perfil possui um identificador nico definido pela ZigBee Alliance. Exemplos de perfis pblicos incluem: Automao residencial; Smart Energy; Automao de prdios comerciais.

Smart Energy, por exemplo, define dispositivos como o portal de servio de energia, controlador de carga, termostato, display, etc. Cada dispositivo possuir funcionalidades especficas. Por exemplo, um controlador de carga dever responder a um certo comando para ligar ou desligar a carga. Por definir protocolos de comunicao e funcionalidades de dispositivos, os perfis pblicos permitem a inter operao de diferentes solues ZigBee de diferentes fornecedores. O transceptor RM2070 opera dentro de um perfil chamado Digi Drop-In Netwroking Profile. O que no impede de o mdulo ser utilizado para comunicar com dispositivos de perfil pblico ou de outros fabricantes.

5.5.2 Clusters
Cluster um tipo de mensagem dentro de um perfil. Clusters so utilizados para definir funes, servios ou aes. Os exemplos abaixo so clusters definidos dentro do perfil de automao residencial: ON/OFF - utilizado para comutar dispositivos (luzes, termostatos, etc.); Level Control - Utilizado para controlar dispositivos que requerem um setpoint analgico; Coloro Control - Controla a cor de dispositivos que requerem este controle. Cada cluster possui um identificador (cluster ID) com 2 bytes. O cluster ID includo em todas as transmisses. Clusters normalmente definem mensagens de solicitao e resposta. Por exemplo, digamos que um gateway de smart energy deve enviar um evento de load control para um controlador de carga para agendar uma operao de liga/desliga de um equipamento. Aps executar o evento, o controlador de carga dever enviar uma mensagem de resposta para o gateway, confirmando a operao. Dispositivos operando em um perfil de aplicao (pblico ou privado) devem sempre responder corretamente a cada cluster emitido. Por exemplo, seja um comutador de iluminao operando em uma aplicao de automao residencial em um perfil pblico. O mesmo deve implementar corretamente o cluster On/Off e outros clusters necessrios de forma a poder operar com dispositivos de outros fabricantes. A ZigBee Alliance definiu a biblioteca ZCL (ZigBee Cluster Library) contendo definies de diversos cluster de uso geral que podem ser implementados em qualquer perfil.

5.5.3 Endpoints
A camada APS inclui suporte para endpoints. Um endpoint pode ser visto como um processo, semelhante a uma porta TCP/IP. Um dispositivo pode suportar um ou mais endpoints. Cada endpoint identificado por um ID de 1 byte com valores de 1 a 240. Cada endpoint definido em um dispositivo est ligado a um perfil de aplicao. Um dispositivo pode, por exemplo, implementar um endpoint que suporte o smart energy load controller e outro endpoint que suporta outras funcionalidades em um perfil privado.

5.5.4 Perfil de Dispositivo


O perfil (profile) ID 0x0000 reservado para o ZigBee Device Profile. Este perfil implementado em todos os dispositivos ZigBee. O ZigBee Device Profile define um conjunto de caractersticas de localizao de dispositivos e capacidades de gerncia de redes. O endpoint 0 reservado para o ZigBee Device Profile. Este endpoint chamado endpoint ZDO (ZigBee Device Object).

5.5.5 ZigBee Device Object (ZDO)


O endpoint ZDO suporta a capacidades de localizao de dispositivos e gerncia de redes do ZigBee Device Profile. Um alista completa de todos os servios ZDP est presente na especificao do ZigBee. Cada servio est associado a um cluster ID. O firmware do RM2070 permite as aplicaes enviar mensagens ZDO a dispositivos da rede, utilizando API.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

15

5.6 Operao do Coordenador


5.6.1 Formando uma Rede
O coordenador responsvel por selecionar um canal, o PAN ID (16 e 64 bits), a poltica de segurana e o perfil de pilha para a rede. Como o coordenador o nico dispositivo que pode iniciar uma rede, cada rede deve possuir um coordenador. Aps o coordenador ter iniciado uma rede, o mesmo pode habilitar novos dispositivos a juntar-se a mesma. O coordenador pode tambm rotear pacotes, repassando dados entre ns. Para assegurar que o coordenador comece em um canal conveniente e com um PAN ID desocupado, o coordenador executa uma srie de varreduras para avaliar as atividades de RF nos diferentes canais e detectar se existem outras PANs na mesma rea. O processo para selecionar o canal e o PAN ID apresentado em itens subseqentes.

5.6.2 Seleo de Canal


Quando o coordenador inicia uma rede, necessrio selecionar um canal de RF. Para isso, feita uma medio de intensidade de sinal em diversas freqncias dos canais para detectar as faixas menos ocupadas. Os canais com sinal mais forte so descartados da lista de possveis canais para iniciar a rede.

5.6.3 Seleo do PAN ID


Aps completar a varredura das intensidades de sinal dos canais de RF, o coordenador lista os canais potenciais para avaliar as possveis PANs prximas. Isto feito enviando um beacon (sinal sinalizador de RF) de broadcast em cada canal potencial. Todos os dispositivos que j pertencem a outras redes e estiverem ao alcance, devolvero uma resposta ao coordenador. As respostas recebidas contero informaes sobre as PANs vizinhas, identificando os PAN ID (de16 e 64 bits) j em uso. Essa varredura chamada PAN scan. Aps essa varredura, o coordenador elege aleatoriamente um canal e um PAN ID no utilizados para iniciar sua rede.

5.6.4 Poltica de Segurana


A poltica de segurana determina quais tipos de dispositivos tero permisso de aderir a rede, e quais dispositivos podem autenticar a incluso de novos elementos.

5.6.5 Informaes Retentivas


Uma vez iniciada a rede, o coordenador retm informaes mesmo no evento de reset ou desenergizao. So elas: PAN ID; Canal; Poltica de segurana; Tabela de afiliados. A reteno mantida indefinidamente, at que a rede seja desfeita.

5.6.6 Parametrizao do Coordenador


A tabela abaixo apresenta os comandos para controlar o processo de formao de redes do coordenador. Comando ID SC SD ZS EE NK KY EO Descrio Utilizado para determinar o PAN ID de 64 bits. Se deixado no default (0), um PAN ID aleatrio ser selecionado. Determina a mscara para a varredura de canais (at 16), utilizada pelo coordenador quando forma a rede. O coordenador ir executar uma varredura de intensidades de sinal em todos os canais habilitados (SC). Define o tempo da varredura. Este valor determina por quanto tempo o coordenador ir executar a varredura de intensidades de sinal e varredura de PAN ID em cada canal. Seleciona o ZigBee Stack Profile (Perfil) da rede. Habilita ou desabilita a segurana da rede. Seleciona a chave de segurana da rede. Se mantida em 0 (default), uma chave aleatria ser utilizada. Seleciona uma chave para link central de confiana. Se mantida em 0 (default), uma chave aleatria ser utilizada. Seleciona a poltica de segurana da rede.

Uma vez iniciada a rede, os dados selecionados pelo coordenador sero mantidos retentivamente pelo coordenador, assim como a tabela de ns afiliados. Quando o coordenador tem sucesso em iniciar a rede, o mesmo ir: Permitir que novos dispositivos se associem temporariamente; Sinalizar o LED de LINK ( Associate) em piscante;

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

16

Enviar um frame API de status ( "coordinator started"). Descrio Ajusta o tempo permit-join no coordenador, medido em segundos. Habilita o funcionamento do LED de LINK (Associate). Ajusta o tempo de pisca do LED de LINK. O default 1 pisca por segundo.

Estes comportamentos so ajustveis utilizando os seguintes comandos: Comando NJ D5 LT

Se qualquer dos valores da tabela de comandos de formao de rede alterar, o coordenador ir abandonar a rede e iniciar uma nova, possivelmente em um canal diferente. Observe que para as alteraes na tabela da comando serem aplicadas, necessrio que o comando de reconhecimento seja enviado.

5.6.7 Permisso para Aderir (Permit Joining)


O atributo permit joining no coordenador configurvel com o comando NJ. NJ pode ser configurado para sempre permitir adeso, ou para permitir adeso por tempo limitado. Se NJ=0xFF (default), a adeso permanente habilitada. Este modo deve ser utilizado com cautela. Uma vez configurada a rede, a aplicao deve considerar seriamente desabilitar a adeso permanente para evitar adeses indesejadas. Se NJ < 0xFF, a adeso ser permitida pelo tempo em segundos dado pelo contedo de NJ. O temporizador reinicializado no momento em que o dispositivo adere rede. A adeso no ser readmitida automaticamente se o mdulo for resetado ou desligado e religado. O temporizador de adeso ser novamente inicializado quando: O parmetro NJ for alterado e aplicado; For enviado um comando CB (comissioning buttoning) com parmetro 2;

5.6.8 Reset do Coordenador


Quando o coordenador resetado ou religado, o mesmo ir comparar o PAN ID, canal e perfil em os da rede. Se os parmetros da rede no coincidirem com os do coordenador, o mesmo ir abandonar a rede e iniciar a formao de uma nova rede. Para evitar que isso acontea, necessrio enviar um comando WR aps a definio de todos os valores de comandos de formao de rede.

5.6.9 Deixando a Rede


Certas circunstncias podem provocar o coordenador a abandonar a rede e iniciar uma rede nova baseado em seus parmetros de formao de rede. Entre eles esto: Alterao do comando ID de forma que o PAN ID de 64 bits atual seja invlido; Alterao do comando SC que define o canal para um valor no permitido pela mscara; Alterao do ZS ou de outro comando de segurana (excluindo NK); Envio do comando NR0 que causa o abandono do coordenador; Envio de comando NR1 enviando um broadcast instruindo todos os dispositivos da rede a abandon-la e a migrar para um canal diferente;

Observe que alteraes nos comandos ID, SC, ZS e de segurana apenas tomam efeito quando as alteraes so confirmadas por comandos AC ou CN.

5.6.10 Substituindo um Coordenador (Apenas com segurana desabilitada)


Em raras circunstncias, pode ser necessrio substituir o coordenador existente por um novo dispositivo. Se a segurana no estiver habilitada na rede, isso pode ser feito. Um coordenador substituto pode assumir o PAN ID (16 e 64 bits), canal e a pilha de parmetros de perfil de uma rede existente de forma a poder tomar o lugar do coordenador. OBS: Coexistindo dois coordenadores na mesma rede pode causar problemas no funcionamento da mesma e deve ser evitado. Quando for realizada a substituio, o coordenador antigo deve ser desenergizado antes de o novo assumir seu lugar. A tabela a seguir apresenta os comandos para a leitura dos parmetros de um dispositivo da rede. Comando AT OP OI CH ZS Descrio Leitura do PAN ID de 64 bits. Leitura do PAN ID de 16 bits. Leitura do nmero do canal. Leitura da pilha de perfil (stack profile).

Cada um dos comandos listados acima pode ser lido de qualquer dispositivo da rede. Estes parmetros so os mesmos para todos os dispositivos. De posse dos valores lidos, os mesmos devem ser enviados ao novo coordenador utilizando os comandos da tabela a seguir. Comando AT ID Descrio Seleciona o PAN ID de 64 bits.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

17

II SC ZS

Seleciona o PAN ID de 16 bits. Determina a mscara para a varredura de canais (at 16), utilizada para selecionar o canal. Por exemplo, se o canal da rede 0x0B, ajuste SC para 0x0001. Se o canal da rede 0x17, ajuste SC para 0x1000. Determina a pilha de perfil ( stack profile).

OBS: II define o valor inicial de PAN ID de 16 bits. Sob certas circunstncias, o coordenador precisa alterar este identificador. Por esse motivo, o comando II no deve ser salvo por comando WR.

5.6.11 Exemplo: Ajustando um Coordenador


Ajuste o SC e o ID para a varredura de canais e para o PAN ID desejados. Os valores default devem ser satisfatrios; Se os valores de SC e ID forem alterados, envie um comando WR para salvar as alteraes e os torne efetivos com o comando AC ou saindo do modo comando. O LED de Link (Associate) iniciar o pisca, j que i coordenador assumiu PAN ID; O frame de status "Coordinator Started" devolvido pelo mdulo em API; Lendo o comando AI (association status) ir retornar o valor 0, indicando um startup bem sucedido; Lendo o comando MY (endereo de 16 bits) ir retornar o valor 0, reservado para o coordenador.

Aps o startup , o coordenador ir permitir adeses rede conforme o valor em NJ.

5.6.12 Exemplo: Substituindo um Coordenador (segurana desabilitada)


Leia os comandos OP, OI, CH e ZS do coordenador atual; Ajuste os comandos ID, SC e ZS do novo coordenador, seguido de um comando WR para salvar os valores; Ajuste o parmetro II do novo coordenador para o mesmo valor lido OI do antigo; Desligue o coordenador antigo; Aguarde o novo coordenador inicializar (AI=0).

5.7 Operao do Roteador


5.7.1 Aderindo Rede
Os roteadores devem encontrar e aderir a uma rede ZigBee vlida antes de poderem efetivamente participar da rede. Aps aderir a uma rede, o roteador poder habilitar novos dispositivos a aderir rede por seu intermdio. O roteador poder repassar pacotes de dados, assim como comunicar com os outros ns da rede.

5.7.2 Encontrando Redes ZigBee


Para descobrir redes nas imediaes, o roteador executa uma varredura de rede (PAN scan), da mesma forma como um coordenador procede quando inicia uma nova rede. Durante o PAN scan, envia um beacon request (broadcast) no primeiro canal de sua lista de canais. Todos os coordenadores e roteadores ao alcance, que j fazem parte de uma rede, responde ao beacon devolvendo um beacon de volta ao roteador. Os beacons devolvidos contm informaes sobre as redes. O roteador avalia cada beacon recebido naquele canal e procura por uma rede valida. A rede considerada valida se: Possuir um PAN ID de 64 bits valido ( maior que 0); Possuir o stack profile (comando ZS) correto; Permitir adeso.

Se uma rede (PAN) no for encontrada, o roteador executa um PAN scan no prximo canal da sua lista de canais possveis e segue varrendo canais at encontrar uma rede vlida ou at que todos os canais tenham sido varridos. Se todos os canais foram varridos e nenhuma rede foi encontrada, o processo reinicia no primeiro canal. Para evitar excesso de beacons de varredura, o RM2070 executa at 9 varreduras por minuto durante os primeiros 5 minutos e 3 varreduras por minuto dali por diante. Se uma rede vlida estiver ao alcance do dispositivo, a mesma dever ser encontrada em poucos segundos.

5.7.3 Aderindo a uma Rede


Uma vez encontrada uma rede vlida, o roteador envia uma solicitao ao dispositivo que enviou o beacon vlido, solicitando aderir rede. O dispositivo devolve uma resposta que permitindo ou negando a adeso. Quando um roteador adere a uma rede, o mesmo recebe um endereo de 16 bits fornecido pelo dispositivo que permitiu a adeso. O endereo de 16 bits selecionado aleatoriamente pelo dispositivo "pai".

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

18

5.7.4 Autenticao
Em redes onde a segurana est habilitada, o roteador deve necessariamente submeter-se ao processo de autenticao. O captulo sobre segurana descreve o processo. Aps aderir rede e receber a autenticao, o novo elemento tambm poder permitir adeses.

5.7.5 Dados Retentivos


Uma vez aderido rede, o roteador armazena as seguintes informaes em memria no voltil: PAN ID; Canal; Poltica de segurana e contadores de frames; Tabela de afiliados ao coordenador;

As informaes sero retidas at que o roteador deixe a rede. Quando isso acontecer, os dados acima sero descartados.

5.7.6 Roteador RM2070 Aderindo


Quando o transceptor energizado, se o mesmo no estiver integrando uma rede ZigBee, o mesmo inicia a busca por uma rede vlida. OBS: o comando DJ pode ser ajustado para 1 para desabilitar adeses. O parmetro DJ no pode ser salvo pelo WR, de forma que o desliga/liga do transceptor ir limpar o contedo de DJ. O PAN ID, canal e tabela de afiliados so perdidos. Os comandos a seguir controlam o processo de adeso do roteador. Comando ID SC SD ZS EE KY Descrio Ajusta o PAN ID de 64 bits para a adeso. Selecionando ID=0 habilita o roteador a aderir a redes com qualquer PAN ID. Ajusta a mscara de seleo de canais. SC no roteador deve ser ajustado para combinar com o SC do coordenador. Por exemplo, ajustando SC para 0x281 permite varrer canais em 0x0B, 0x12 e 0x14, nesta ordem. Seleciona a durao de varredura que o tempo durante o qual o roteador escuta beacons em cada canal. Seleciona o stack profile. Habilita ou desabilita a segurana na rede. Deve ser ajustado para combinar com o EE do coordenador. Ajusta o trust center link key. Se ajustado para 0 (default), a chave de link dever ser obtida (no encriptada) durante o processo de adeso.

Uma vez aderido rede, os parmetros de configurao adquiridos pelo roteador e a tabela de afiliados sero guardados em memria no voltil. Se a adeso falhar, o status da ltima tentativa poder ser lido no registro de comando AI. Se qualquer dos comandos acima for alterado, quando for enviado um comando AC ou CN (para efetivao das alteraes), o roteador ir abandonar a rede e tentar encontrar uma rede vlida para a sua configurao. Quando o roteador adere a uma rede com sucesso, o mesmo ir: Habilitar outros dispositivos a aderir rede temporariamente; Ajusta AI=0; Inicia o pisca do LED de Link ( associate); Envia um frame de status API ("associated") pela porta serial.

Estes comportamentos so configurveis pelos comandos a seguir:

Comando NJ D5 LT

Descrio Define o tempo de permisso de adeso, em segundos. Se NJ=0xFF, a permisso de adeso estar sempre habilitada. Habilita o funcionamento do LED de Link ( associate). Ajusta o tempo de pisca do LED de Link quando acontece a associao. Por default o LED pulsa duas vezes por segundo.

5.7.7 Permit Joining (Permite Adeso)


O atributo permit joining no roteador, configurado no comando NJ. NJ pode ser configurado para sempre permitir adeses, ou permitir por tempo limitado.

5.7.8 Adeso Sempre Habilitada


Se NJ=0xFF (default), a adeso permanentemente habilitada. Este modo deve ser utilizado com cautela para evitar adeses no desejadas.

5.7.9 Adeso Temporria Habilitada


Se NJ < 0xFF, as adeses sero permitidas apenas pelo tempo em segundos correspondente ao valor no parmetro NJ. O temporizador iniciado quando o dispositivo adere rede. A adeso no ser reabilitada se o dispositivo for religado. A operaes seguintes podem reinicializar o temporizador:

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

19

Alterando o valor de NJ e confirmando por comandos AC ou CN; Enviando um comando CB com parmetro 2; Obrigando o roteador a abandonar a rede e reentrar.

5.7.10 Resetando o Roteador


Quando o roteador resetado, ou a energia desliga e religada, o mesmo confere o PAN ID, canal de operao e stack profile com os parmetros IS, SC e ZS, configurados na rede. O procedimento tambm compara a poltica de segurana nos parmetros EE e KY. Se algum dos parmetros no corresponder, o roteador abandona a rede e busca outra com base em seus parmetros de adeso. Para evitar que um roteador abandone a rede, necessrio enviar um comando WR logo aps os comandos de adeso terem sido configurados, para que se tornem retentivos.

5.7.11 Abandonando a Rede


Algumas situaes podem fazer com que o roteador deixe a rede e procure outra, baseado em seus parmetros de adeso. Entre eles: Alterao do comando ID, invalidando o PAN ID de 64 bits; Alterao do comando SC de forma que o canal utilizado no seja admitido pela mscara de canais; Alterao de ZS ou de qualquer comando relacionado segurana; Envio de um comando NR0 que obriga o roteador a abandonar a rede; Envio de um comando NR1 (broadcast) instruindo todos os dispositivos a migrar para um canal diferente; Envio de um comando CB com parmetro 4 (comissioning). OBS: As alteraes em ID, SC, ZS a comandos de segurana apenas tomam efeito quando efetivadas por meio de comando AC ou CN.

5.7.12 Exemplo: Aderindo a Rede


Aps iniciado um coordenador (que permite adeses), os passos a seguir iro habilitar a adeso rede deste coordenador: Ajuste o PAN ID de 64 bits para uma rede desejada o mantenha o ID em 0 para qualquer rede; Ajuste o SC para a lista de canais permitidos para varredura; Se o SD ou o ID forem alterados para o default, efetive as alteraes pelos comandos AC ou CN; O LED de Link (associate Led ) ir pulsar no momento em que o roteador aderir rede; Se o LED de Link no estiver piscando, o comando AI pode ser lido com a informao da falha; Uma vez aderido rede, os comandos OP e CH iro indicar o PAN ID de 64 bits e canal aderidos; O comando MY contm o endereo de 16 bits que o roteador recebeu ao aderir rede; O dispositivo enviar um frame de status ( Associated") pela porta serial; O roteador pode agora, permitir a adeso de novos dispositivos pelo tempo determinado em NJ.

5.8 Operao de End Device (Dispositivo Terminal)


5.8.1 Aderindo Rede
A semelhana dos roteadores, os end devices dever descobrir e aderir a uma rede ZigBee vlida antes de poder se comunicar. J que os dispositivos terminais so destinados ao uso com baterias e baixo consumo, os mesmos pode adormecer ( sleep ). End devices no podem permitir que outros dispositivos integrem rede, tampouco podem rotear pacotes.

5.8.2 Descobrindo Redes ZigBee


Os dispositivos terminais utilizam o mesmo procedimento dos roteadores para encontrar redes, executam uma varredura (PN scan). Aps enviar o beacon de broadcast, o end device "escuta" por um tempo determinado, procurando respostas enviadas por roteadores ou coordenadores de redes ao seu alcance em cada canal. O dispositivo terminal considera ter encontrado uma PAN vlida quando a resposta possui: Um PAN ID de 64 bits vlido; Possui o stack profile correto(comando ZS); A adeso permitida; Possui capacidade para adicionar dispositivos;

Se uma rede vlida no for encontrada, o end device segue varrendo os canais possveis de sua lista de canais permitidos, at encontrar uma rede. Caso isso no acontea, o dispositivo poder adormecer e retomar a varredura posteriormente. Se o mdulo no estiver configurado para adormecer, seguir procurando uma rede vlida a semelhana do roteador. Para atender a especificao da ZigBee Alliance, o end device ir tentar at 9 varreduras por minuto, durante os primeiros 5 minutos, e 3 varreduras por minuto dali por diante. OBS: O RM2070 programado como end device no ir adormecer at que tenha completado a varredura de todos os canais SC para uma rede valida.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

20

5.8.3 Aderindo Rede


Uma vez descoberta uma rede vlida, o dispositivo adere a rede, de forma similar ao roteador, enviando uma solicitao de associao, ao dispositivo que enviou um beacon vlido. O dispositivo que permitir a adeso ento envia uma resposta contendo dados de associao que ir permitir ou negar a adeso. Quando o end device adere rede, o mesmo recebe um endereo de 16 bits enviado pelo dispositivo que permitiu a adeso. O endereo e selecionado aleatoriamente.

5.8.4 Relao Pai/Filho


J que ao end device (dispositivo terminal) permitido adormecer, e talvez no responda imediatamente a uma solicitao, o mesmo confia ao dispositivo pai, que lhe deu acesso rede, a tarefa de armazenar as mensagens destinadas ao end device, at que o mesmo acorde e possa receber a mensagem. O dispositivo que permitiu ao end device aderir rede chamado pai, e o end device chamado filho.

5.8.5 Capacidade do End Device


Roteadores e coordenadores mantm uma tabela de todos os dispositivos filhos, chamada child table. Esta tabela tem tamanho limitado e determina quantos end devices podem aderir rede. Se um roteador ou coordenador possui pelo menos uma entrada no utilizada em sua child table, o dispositivo considerado como tendo capacidade para end device. Em outras palavras, este dispositivo possui capacidade para mais um end device aderir rede. No firmware do RM207, o comando NC (nmero remanescente de end device filhos) pode ser utilizado para determinar quantos end devices adicionais podem aderir a um roteador ou coordenador. Se o comando NC retornar 0, dignifica que o roteador ou coordenador no possui capacidade para mais dispositivos end devices (a tabela de filhos est cheia). J que roteadores no podem adormecer, no se faz necessrio que roteadores e coordenadores rastreiem roteadores aderidos. Portanto, no existe limite no nmero de roteadores que podem aderir a um determinado roteador ou ao coordenador.

5.8.6 Autenticao
Em uma rede em que a segurana est habilitada, o end device deve proceder ao processo autenticao. Veja o captulo especfico.

5.8.7 Dados Retentivos (No Volteis)


Os end devices podem reter o PAN ID, canal de operao e poltica de segurana em memria no voltil. Contudo, j que os end devices confiam fortemente no dispositivo pai, o end device executa uma varredura para tentar encontrar seu pai. Se o end device no receber uma resposta (chamado comando de realinhamento com coordenador), o mesmo ir deixar a rede e procurar outra. Quando o end device deixa a rede, o PAN ID, canal de operao e outros ajustes se perdem.

5.8.8 Varredura rf (Orphan Scan)


Quando um end device acorda ou energizado, o mesmo executa orphan scan para verificar se ainda possui um pai vlido. O orphan scan enviado em broadcast e contm o endereo de 64 bits do end device. Roteadores e coordenador nas proximidades que recebem o broadcast , comparam os dados com suas child tables, procurando por um registro que contenha o endereo de 64 bits. Se o registro for encontrado, o dispositivo envia ao end device um comando de realinhamento de coordenador (coordinator realignment command), que inclui o endereo de 16 bits, o PAN ID de 16bits, o canal de operao, os endereos de 16 e 64 bits do pai. Se o end device recebe o coordinator realignment command , a re-adeso foi concluda. Se no, o dispositivo ir procurar outra rede.

5.8.9 RM2070 como End Device aderindo Rede


Quando o end device alimentado, se o mesmo no aderir a uma rede vlida, ou se um orphan scan falhar, o dispositivo imediatamente ir procurar uma rede vlida para aderir. OBS: o comando DJ pode ser ajustado em 1 (desabilita adeses). O parmetro DJ no pode ser salvo pelo comando WR, de forma que um liga/desliga ir limpar o contedo de DJ. Semelhantemente ao roteador, os comandos seguintes controlam o processo de adeso do end device.

Comando ID SC

Descrio Ajusta o PAN ID de 64 bits para aderir. Selecionando ID=0 permite o dispositivo aderir a redes com qualquer PAN ID. Seleciona a mscara de bits que determina quais canais o end device ir varrer na procura por redes vlidas. O valor de SC dever combinar com o SC no coordenador e roteadores da rede desejada. Por exemplo: ajustando o SC para 0x281 habilita a verredura nos canais 0x0B, 0x12 e 0x14, nesta ordem. Ajusta a durao do scan, que o tempo pelo qual o end device escuta os beacons em cada canal. Ajusta o scan profile no dispositivo. Habilita desabilita a segurana na rede. Este parmetro deve ser ajustado para combinar com o valor EE (poltica de segurana) do coordenador.

SD ZS EE

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

21

KY

Ajusta o trust center link key. Se deixado em 0 (default), a chave ser obtida (no encriptada) durante a adeso.

Uma vez aderido rede, a configurao de adeso do dispositivo ser mantida em memria retentiva. Se a adeso falhar, o status da ltima tentativa de adeso pode ser lido no registro de comando AI. Se qualquer dos valores de comando for alterado, quando as alteraes forem aplicadas, o end device ir abandonar a rede e tentar encontrar e aderir a uma rede que combine com sua configurao. Quando o dispositivo encontrar e aderir a uma rede, o mesmo ir: Ajusta AI=0; Inicia o pisca do LED de Link ( Associate LED); Envia um frame de status ( associated) pela porta serial em API: Tenta entrar no modo de baixo consumo;

Estes comportamentos so configurveis utilizando os seguintes comandos:

Comando D5 LT SM, SP, ST, SN, SO

Descrio Habilita o funcionamento do LED de Link ( associate). Ajusta o tempo de pisca do LED de Link. O default 2 piscas por segundo. Parmetros que configuram o modo adormecer (sleep mode). (Veja o captulo Gerenciando End Devices para detalhes).

5.8.10 Conectividade com Pais


O mdulo end device envia transmisses de pesquisa (poll transmissions) regularmente para o dispositivo pai quando est acordado. Essas transmisses de pesquisa solicitam possveis pacotes que o pai tenha recebido, endereados ao filho. O dispositivo pai envia uma mensagem de reconhecimento (acknowledgment), no nvel da camada MAC, de volta ao end device . O acknowledgment indica se o pai possui dados endereados ao end device ou no. Se aps 3 poll transmissions, o end device no receber uma resposta do pai, o dispositivo considera que foi desconectado e inicia a busca por uma rede vlida.

5.8.11 Resetando o End Device


Quando o end device resetado ou religado, se uma varredura rf obtiver sucesso em localizar o pai, o dispositivo compara o PAN ID, canal e stack profile com os parmetros ID, SC e ZS da rede, assim como a poltica de segurana em comparao com os comandos EE e KY. Se houver diferenas na configurao, o end device ir abandonar a rede e procurar outra que combine com suas configuraes. Para evitar que o dispositivo abandone a rede, necessrio salvar as configuraes com o comando WR, de forma que os parmetros sejam retidos.

5.8.12 Deixando a Rede


Algumas situaes podem provocar o end device a abandonar a rede e tentar descobrir e aderir a uma nova PAN que combine com suas configuraes. Entre outras, esto as seguintes situaes: Alterao do comando ID, de forma que o PAN ID de 64 no seja mais vlido; Alterao do comando SC, provocando com que o nmero do canal de operao no seja permitido pela mscara de canais; Alterao do comando ZS ou de qualquer parmetro que define a poltica de segurana; Recebimento de um comando NR0 que ordena o abandono da rede; Recebimento de um comando NR1 que ordena a todos os dispositivos da rede que abandonem a mesma e migrem para um canal diferente; O dispositivo pai abandona a rede ou o dispositivo filho movido para uma posio fora do alcance de rdio com o pai, ocasionando a falha no recebimento de mensagens de poll acknowledgment.

Observe que as alteraes nos valores de comando apenas tomam efeito quando aplicadas pelos comandos AC ou CN.

5.8.13 Exemplo: Aderindo a uma Rede


Aps um coordenador haver iniciado uma rede que permite adeses, os prximos passos iro permitir a adeso de uma end device: Ajuste o PAN ID de 64 bits desejado ou deixe em 0 para aderir a qualquer rede; Ajuste o SC que permitira varrer e encontrar a rede; Se SC ou ID forem alterados, aplique as alteraes com os comandos AC ou CN; O LED de Link (Associate Led) ir pulsar a partir da adeso; Se o LED no piscar, o comando AI poder apresentar o motivo da falha; Uma vez aderido rede, os comando OP e CH iro revelar o PAN ID de 64 bits e o canal de operao; O comando MY ir refletir o endereo de 16 bits que o dispositivo recebeu ao aderir; O frame de status ( Associated) ser enviado pela porta serial em API; O end device ir tentar entrar em modo de baixo consumo baseado nos comandos de configurao SM, SP, SN, ST e SO.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

22

5.9 Varredura de Canal


Como mencionado anteriormente, roteadores e end devices devem varrer um ou mais canais para descobrir uma rede vlida para aderir. Quando uma tentativa de adeso inicia, o mdulo envia um beacon pelo primeiro canal permitido pela mscara de bits do comando SC (scan channels). Se uma rede vlida for encontrada no canal, o mdulo tenta juntar-se a mesma. Se uma rede vlida no for encontrada no primeiro canal permitido, o dispositivo ir varrer o prximo, do mais baixo ao mais alto, permitidos pela mscara de bits de SC, at que uma rede vlida seja encontrada ou todos os canais tenham sido varridos. Uma vez que varridos todos os canais, a prxima tentativa de adeso ir iniciar do incio, no canal mais baixo permitido pela mscara SC. Por exemplo, se o comando SC est ajustado para 0x400F, o mdulo ir iniciar a varredura no canal 11 (0x0B) e varrer at que um beacon vlido seja encontrado, ou at que os canais 11, 12 , 13, 14 e 25 tenham sido varridos (naquela ordem). Uma vez aderindo a uma rede, em determinado canal, se o mdulo for comandado a abandonar a rede, ele iniciar a busca por outra rede no canal imediatamente superior ao que estava anteriormente, que sua mscara SC permita. Por exemplo, se o comando SC est ajustado para 0x400F, e o mdulo pertence a uma rede no canal 12 (0x0C), se o dispositivo abandonar o canal, dever iniciar a varredura no canal 13 , e em seguida no canal 14 e 25. Aps varrer todos os canais, e no encontrar uma rede vlida, o dispositivo ir retomar a varredura iniciando pelo canal de mais baixa ordem especificado pela mscara de bits de SC.

5.9.1 Gerenciando Mltiplas Redes ZigBee


Em algumas aplicaes, mltiplas redes ZigBee coexistiro nas proximidades umas das outras. A aplicao talvez precise garantir que os mdulos ZigBee adiram rede correta. Existem alguns recursos no ZigBee para gerenciar mltiplas redes. Entre eles: Filtro de PAN ID; Chaves de segurana pr-configuradas; Permisses de adeso; Mensagens da aplicao.

5.9.2 Filtro de PAN ID


O RM2070 pode ser configurado com um PAN ID fixo e diferente de 0. Se ajustado para um valor diferente de zero, mdulo somente ir aderir a redes como o mesmo PAN ID.

5.9.3 Chaves de Segurana Pr-configuradas


Semelhantemente ao Filtro de PAN ID, este mtodo exige que uma chave de segurana conhecida seja instalada em um roteador para garantir que o dispositivo apenas junte-se a redes com a mesma security key. Se a security key (comando KY) ajustada para um valor diferente de zero, e se a segurana est habilitada (comando EE), o roteador ou o end device apenas ir aderir a rede com a mesma chave de segurana.

5.9.4 Permisso de Adeso


O parmetro Permit Joining (permisso para aderir) pode ser desabilitado em uma rede para impedir que dispositivos indesejados juntem-se rede. Quando um novo dispositivo tiver que ser adicionado rede, a permisso de adeso dever ser habilitada temporariamente. No RM2070, o comando NJ de todos os roteadores e do coordenador devero ser ajustados para um valor menor que 0xFF para desabilitar a adeso. A adeso pode ser temporariamente habilitada utilizando o comando CB.

5.9.5 Estrutura de Mensagens (Application Messaging)


Se recursos anteriores no forem factveis, a aplicao pode construir uma estrutura de mensagens entre o coordenador e demais dispositivos da rede. Por exemplo, o cdigo de aplicao para adeso de dispositivos poderia enviar uma mensagem para o coordenador, aps a adeso, e aguardar uma mensagem de confirmao previamente estabelecida. Se a aplicao no receber a resposta esperada, poderia forar o dispositivo a abandonar a rede. Forando o dispositivo a deixar a rede ir fazer com que o mesmo siga varrendo no canal seguinte de sua lista de canais.

6. Transmisso, Endereamento e Roteamento de Dados


6.1 Endereamento
Cada dispositivo ZigBee possui dois diferentes endereos, um de 16 e outro de 64 bits. As caractersticas de cada um so descritas abaixo.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

23

6.1.1 Endereo de 64 bits


O endereo de 64 bits um endereo nico, definido durante a fabricao. Este endereo nico para cada dispositivo. O endereo composto por um conjunto de 3 bytes ( OUI - Organizationally Unique Identifier ) definido pela IEEE. Este endereo de 64 bits tambm chamando de endereo estendido.

6.1.2 Endereo de 16 bits


O dispositivo recebe um endereo de 16 bits quando adere a uma rede ZigBee. Por este motivo, o endereo de 16 bits chamado de endereo na rede . O endereo de 16 bits 0x0000 reservado para o coordenador. Todos os outros dispositivos recebem um endereo gerado aleatoriamente pelo roteador ou coordenador que permitiu a adeso. O endereo de 16 bits pode alterar sob certas circunstncias: Um conflito de endereo detectado onde dois dispositivos com o mesmo endereo so detectados; Um dispositivo deixa a rede e mais tarde adere novamente (ele recebe um endereo diferente do anterior);

Todas as transmisses incluem endereos de origem e destino de 16 bits. As tabelas de roteamento nos dispositivos ZigBee tambm utilizam o endereo de 16 bits para determinar como rotear pacotes atravs da rede. Contudo, j que o endereo de 16 bits dinmico, o mesmo no confivel e suficiente para identificar um dispositivo. Para resolver o problema, o endereo de 64 bits do destino freqentemente includo na transmisso para garantir que os dados sero entregues ao destino correto. A pilha ZigBee pode encontrar o endereo de 16 bits, se o mesmo for desconhecido, antes de transmitir dados para um n.

6.1.3 Endereamento na Camada de Aplicao


Dispositivos ZigBee podem suportar mltiplos perfis de aplicao, cluster IDs e endpoints. Endereamento na Camada de Aplicao permite que transmisses sejam dirigidas a perfis, cluster IDs e endpoints especficos. Endereamento na Camada de Aplicao til se a aplicao ir: Inter operar com dispositivos de perfis diferentes; Utilizar servios e recursos de rede do ZDO; Operar em um perfil pblico, ex: automao residencial e smart energy;

O firmware API oferece um meio fcil e simples de enviar dados a qualquer combinao de perfil, endpoint ou cluster ID a qualquer dispositivo da rede.

6.2 Transmisso de Dados


Os pacotes de dados na rede ZigBee podem ser transmitidos como unicast ou broadcast. Transmisses unicast traam a rota desde um dispositivo de origem at um dispositivo destino, enquanto que transmisses broadcast so enviadas para muitos ou todos os dispositivos da rede.

6.2.1 Transmisses em Broadcast


As transmisses em broadcast no protocolo ZigBee so destinadas a serem propagadas por toda a rede. Para alcanar este objetivo, todos dispositivos que recebem uma mensagem broadcast iro retransmitir o pacote trs vezes. Terminal

Terminal

Roteador

Terminal

Roteador

Roteador

Coordenador

Roteador

Roteador

Terminal

Terminal

Roteador

Terminal

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

24

Cada n que transmite um broadcast tambm ir criar uma entrada em uma na tabela local de broadcast. Esta entrada serve para rastrear cada pacote broadcast recebido. Isto feito para garantir que os pacotes no so retransmitidos indefinidamente. Cada entrada persiste por 8 segundos. A tabela de transmisses broadcast pode conter at 8 entradas. Para cada transmisso broadcast, a pilha ZigBee deve reservar espao no buffer par uma cpia do pacote de dados. Esta cpia utilizada para retransmitir o pacote como requerido. Pacotes grandes de broadcast iro requere mais espao no buffer. J que as transmisses de broadcast so retransmitidas por cada dispositivo da rede, mensagens de broadcast devem ser utilizadas esporadicamente.

6.2.2 Transmisses Unicast


Transmisses unicast so enviadas a partir de um dispositivo de origem at um dispositivo destino, O dispositivo de destino pode ser um vizinho imediato, ou pode estar a alguns ns adiante. Como mencionado previamente, cada dispositivo em uma rede ZigBee possui um endereo de 16 bits (endereo na rede) e um endereo de 64 bits (endereo estendido). Transmisses unicast so sempre endereadas e roteadas para o endereo de 16 bits do destino. Contudo, para garantir que os dados sejam entregues ao dispositivo correto, o endereo de 64 bits geralmente includo na transmisso. Se o dispositivo receptor possui o endereo de 16 bits correto, mas no o endereo de 64 bits, ele desconsidera o pacote e obtm um novo endereo de 16 bits. O firmware do RM2070 exige que os dados sejam enviados para o endereo de 64 bits. O endereo de 16 bits dever ser descoberto pelo dispositivo se o mesmo for desconhecido.

6.2.3 Tabela de Endereos


Cada dispositivo ZigBee mantm uma tabela de endereos correlacionando o endereo de 64 bits e o de 16 bits. Quando uma transmisso dirigida a um endereo de 64 bits, a pilha ZigBee procura por uma entrada na tabela com aquele endereo de 64 bits para tentar determinar o endereo de destino de 16 bits. Se o endereo de 16 bits no for encontrado, a pilha ZigBee executa uma busca de endereos para determinar o atual endereo de 16 bits do dispositivo.

Endereo de 64 bits 0013 A200 4000 0001 0013 A200 400A 3568 0013 A200 4004 1122 0013 A200 4002 1123

Endereo de 16 bits 0x4414 0x1234 0xC200 0xFFFE (unknown)

6.2.4 Address Discovery (Busca de Endereos)


A busca de endereos um servio existente no ZigBee Device Profile que pode descobrir o endereo de 16 bits de um dado dispositivo, baseado no endereo de 64 bits. Para descobrir um endereo de 16 bits de um dispositivo, o dispositivo que efetua a busca envia um broadcast address discovery transmission. O broadcast inclui o endereo de 64 bits do dispositivo remoto cujo endereo de 16 bits est sendo solicitado. Todos os ns que recebem esta transmisso comparam o endereo de 64 bits contido na mensagem com os seus prprios. Se o endereo combinar, o dispositivo devolve uma resposta de volta ao elemento que faz a busca. Esta resposta inclui o endereo de 16 bits. Quando a resposta recebida, o dispositivo que fez a busca transmite os dados.

6.2.5 Exemplos de Transmisses de Dados


6.2.5.1 Firmware AT Para enviar um pacote de dados em firmware AT, os comandos DH e DL devem ser ajustados para combinar com o endereo de 64 bits do dispositivo de destino. DH deve conter os 4 bytes altos e DL deve conter os 4 bytes baixos. J que o coordenador sempre fica com o endereo 0x0000, um endereo 0x0000000000000000 definido como o endereo do coordenador (no firmware ZB). Os valores default de DH e DL so 0x00, os quais enviam dados para o coordenador. 6.2.5.2 Exemplo 1: Envio de uma transmisso para o coordenador (Neste exemplo, um \r se refere ao caracter carriage return.) Um roteador ou end device pode enviar dados de duas formas. Primeiramente, ajusta o endereo de destino (comando DH e DL) para 0x00. 1 - Entrar em modo comando (+++). 2 - Aps receber um OK\r , envie os seguintes comandos: ATDH0\r ATDL0\r ATCN\r 3 - Verifique se cada um dos 3 comandos retornou uma resposta OK\r. 4 - Aps ajustar o valores destes comandos, todos os caracteres seriais sero em modo unicast para o coordenador. Alternativamente, se o endereo de 64 bits do coordenador for conhecido, DH e DL podem ser ajustados de acordo com o mesmo. Digamos que o endereo seja 0x0013A200404A2244.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

25

1 Entre em modo comando (+++). 2 Aps receber um OK\r, envie os seguintes comandos: ATDH13A200\r ATDL404A2244\r ATCN\r 3 Verifique se cada um dos 3 comandos retornou uma resposta OK\r. 4 Aps ajustar os valores destes comandos, todos os caracteres seriais sero enviados em modo unicast para o coordenador. 6.2.5.3 Firmware API Utilize a solicitao de transmisso ou o frame de solicitao de transmisso explicito (0x10 e 0x11 respectivamente) para enviar dados para o coordenador. O endereo de 64 bits pode ser ajustado, ou para 0x0000000000000000, ou para o endereo de 64 bits do coordenador. O endereo de 16 bits deve ser ajustado para 0xFFFE quando for utilizado o endereo de 64 bits em 0x0000000000000000. Para enviar um caracter ASCII 1 para o endereo 0x00 do coordenador, o frame API a seguir pode ser utilizado: 7E 00 0F 10 01 0000 0000 0000 0000 FFFE 00 00 31 C0 Se for utilizado o frame de transmisso explicito, o cluster ID deve ser ajustado para 0x0011, o profile ID para 0xC105, e os endpoints de origem e destino para 0xE8 (defaults recomendados para as transmisses no perfil Digi ). As mesmas transmisses poderiam ser enviadas utilizando-se o seguinte frame explicito de transmisso: 7E 00 15 11 01 0000 0000 0000 0000 FFFE E8 E8 0011 C105 00 00 31 18 Observe que o endereo de 16 bits est ajustado para 0xFFFE. isto necessrio quando se envia para endereos de 64 bits de 0x0000000000000000. Agora, digamos que o endereo de 64 bits do coordenador seja 0x0013A200404A2244. O seguinte frame de solicitao de transmisso API (0x10) ir enviar o caracter ASCII 1 ao coordenador: 7E 00 0F 10 01 0013 A200 404A 2244 0000 0000 31 18 6.2.5.4 Exemplo 2: Envio de uma transmisso broadcast

(Neste exemplo, um \r se refere ao caractere carriage return.) Execute os seguinte passos para configurar uma transmisso broadcast: 1 Entre no modo comando (+++). 2 Aps receber um OK\r, envie os seguintes comandos: ATDH0\r ATDLffff\r ATCN\r 3 Verifique se cada um dos 3 comandos retornou uma resposta OK\r. 4 Aps ajustar o valor destes comandos, todos os caracteres seriais sero enviados em broadcast. 6.2.5.5 Firmware API Este exemplo utiliza o frame API de solicitao de transmisso (0x10) para enviar um caracter ASCII 1 em broadcast. Para enviar um ASCII 1 em uma transmisso broadcast o frame API pode ser utilizado: 7E 00 0F 10 01 0000 0000 0000 FFFF FFFE 00 00 31 C2 Observe que o endereo de 16 bits est ajustado para 0xFFFE para transmisses broadcast.

6.3 Roteamento de Pacote em RF


Transmisses unicast podem exigir algum tipo de roteamento. O ZigBee possui diversas formas de rotear dados, cada qual com suas vantagens e desvantagens. Isto est resumido na prxima tabela.

Tipo de roteamento Ad hoc Sob Demanda Distance Vector (AODV) Roteamento Mesh Roteamento Muitos-para-um

Roteamento de Origem (Source Routing)

Descrio Caminhos de roteamento so criados entre a origem e o destino, possivelmente atravessando mltiplos ns. Cada dispositivo sabe para quem, mais prximo do destino final, repassar os dados. Uma transmisso broadcast resulta em mltiplas respostas direcionadas de volta ao dispositivo que originou o broadcast. Os pacotes de dados carregam a rota toda que os dados devem percorrer da origem ao destino final.

Quando utilizar Utilizar em redes onde os dados no so dirigidos a mltiplos destinos. A tabela de roteamento tem tamanho finito e cada endereo de destino ocupa uma entrada. til quando diversos dispositivos remotos devem enviar dados a um nico gateway ou dispositivo coletor. Aumenta a eficincia do roteamento em grandes redes (mais que 40 dispositivos).

OBS: End devices no podem utilizar este protocolos de roteamento. Em tempo, o end device envia uma transmisso unicast ao seu "pai" e permite a este que encaminhe o pacote em seu nome.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

26

6.3.1 Transmisso do Status de Conexo (Link Status Transmission)


Antes de discutir os vrios protocolos, importante entender o mecanismo primrio no ZigBee para estabelecer conexes bidirecionais confiveis. O mecanismo especialmente til em redes contendo diferentes tipos de dispositivos com potncias de transmisso e sensibilidades de recepo diversas. Cada coordenador ou roteador periodicamente envia um link status message (mensagem de status de conexo). Esta mensagem enviada em broadcast apenas para os dispositivos imediatamente vizinhos. A mensagem de status de conexo contm uma lista de dos dispositivos vizinhos e a medio da qualidade das conexes com cada um. Utilizando esses dados, os dispositivos podem selecionar, de acordo com a qualidade de conexo bi-direcional, qual vizinho ser utilizado para rotear dados. Por exemplo, consideremos um rede com dois dispositivos vizinhos que enviam periodicamente suas mensagens de status de conexo. Suponha que a potncia de sada do dispositivo A seja +18dBm, e que a potncia do dispositivo B seja +3dBm (consideravelmente menor que a potncia de sada do dispositivo A). A mensagem de status de conexo dever indicar o seguinte:

Qualidade da conexo B para A Sada: Muito pobre Entrada: Muito boa +3 dBm

Dispositivo A
+18 dBm Qualidade da conexo A para B Sada: Muito boa Entrada: Muito pobre

Dispositivo B

O mecanismo permite aos dispositivos A e B reconhecerem que a conexo no confivel em ambos sentidos e sugere a utilizao de outros vizinhos para estabelecer caminhos de roteamento. Este tipo de situao chamada conexo assimtrica e indica que a qualidade nos dois sentidos diferente.

6.3.2 Roteamento Mesh AODV (Ad-hoc On-Demand Distance Vector)


O ZigBee utiliza roteamento Mesh para estabelecer caminhos entre dispositivos origem e destino. O roteamento Mesh permite que pacotes de dados transponham mltiplos ns de uma rede para encaminhar dados entre dispositivos. O processo de descobrimento da rota baseado no protocolo AODV ( Ad-hoc On-Demand Distance Vector routing). Veja o exemplo abaixo.

Terminal Roteador

Roteador

Roteador

Terminal

Roteador Coordenador Roteador Terminal Roteador Roteador

O algoritmo AODV de roteamento faz uso de tabelas estabelecidas em cada n que registram o n seguinte no caminho entre origens e destinos. Se o prximo n no for conhecido, uma route discovery (descobrimento de rota) efetuado para encontrar o caminho. Visto que apenas um nmero limitado de rotas pode ser armazenado em cada roteador, route dicoveries acontecem com um com certa freqncia, principalmente em redes grandes.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

27

N R3 C R5

Endereo de destino Roteador 6 Roteador 6 Roteador 6

Endereo do prximo n Coordenador Roteador 5 Roteador 6

Quando um n de origem deve descobrir uma rota at um n destino, o primeiro envia um comando de solicitao de rota em broadcast. O comando contm o endereo de rede do dispositivo origem, o endereo de rede do destino e o path cost field (um indicador da qualidade da rota). medida que um comando de solicitao de rota propagado na rede, cada n que retransmite o broadcast, atualiza o path cost field e cria uma entrada temporria em sua tabela de descobrimento de rota. Na figura abaixo, R3 envia um broadcast de solicitao de rota para encontrar um caminho at R6.

Roteador 3

Roteador 4

Roteador 1

Coordenador

Roteador 6

Roteador 2

Roteador 5

Quando o n destino recebe a solicitao de rota, compara o path cost field com o recebido anteriormente. Se o path cost field presente no comando recm recebido melhor que qualquer um recebido anteriormente, o n destino ir transmitir uma mensagem de resposta ao n que originou a solicitao de rota. Os ns intermedirios recebem e encaminham a resposta at o n origem. A figura abaixo apresenta a mensagem de resposta de R6 at R3 em unicast .

Roteador 3

Roteador 4

Roteador 1

Coordenador

Roteador 6

Roteador 2 Primeira resposta Segunda resposta OBS: R6 poderia enviar mltiplas respostas se tiver encontrado uma rota melhor. 6.3.2.1 Retentativas e Acknowledgment (Confirmaes)

Roteador 5

O ZigBee define pacotes de acknowledgment tanto na camada MAC quanto na camada de aplicao (APS). Quando dados so transmitidos de um dispositivo ao seu vizinho, um pacote de confirmao (Ack) transmitido na direo oposta para sinalizar que a comunicao foi recebida com sucesso. Se o Ack no for recebido o dispositivo transmissor ir retransmitir por at 4 vezes. Este Ack chamado de Mac Layer Acknowledgment (confirmao na camada Mac). Adicionalmente, o dispositivo que originou a transmisso espera receber um Ack do dispositivo destino. Este Ack ir percorrer o caminho inverso, passando pelos mesmos ns que o pacote original percorreu. Se o Ack no for recebido, o dispositivo de origem ir retransmitir por 2 vezes. Este Ack chamado ZigBee APS layer acknowledgment (confirmao na camada ZigBee APS). A especificao ZigBee possui detalhes completos.

6.3.3 Roteamento Muitos-para-um


Em redes onde muitos dispositivos devem enviar dados para um coletor central ou gateway, roteamento Mesh AODV exige considervel overhead Se cada dispositivo na rede tiver que descobrir uma rota antes de poder enviar dados para um coletor, a rede provavelmente ser sobrecarregada de broadcasts contendo buscas de rotas. Roteamento muitos-para-um uma forma otimizada de roteamento para este tipo de rede. No lugar de cada dispositivo ter que executar sua busca de rota, um nico broadcast enviado do coletor para estabelecer a rota de retorno para todos os

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

28

dispositivos. Isto apresentado na figura abaixo. O lado esquerdo apresenta a situao em que muitos dispositivos iniciam buscas de rota. O lado direito apresenta as vantagens do roteamento muitos-para-um.

O brodcast muitos-para-um uma mensagem de solicitao de rota com o endereo alvo contendo o endereo do coletor central. Dispositivos que recebem esta mensagem criam a tabela de rota reversa para estabelecer o caminho at o coordenador. A pilha ZigBee em um dispositivo utiliza as informaes de qualidade de conexo previamente colecionadas para estabelecer o vizinho mais confivel para compor a rota reversa. Quando um dispositivo envia dados para um coletor central, ele encontra uma entrada na tabela de roteamento muitos-para-um e envia os dados. nenhuma busca por rota necessria. A solicitao de rota muitos-para-um deve ser periodicamente enviada para renovar os caminhos reversos na rede. Aplicaes contendo mltiplos coletores tambm podem utilizar este recurso. Nestes casos, se mais de um coletor enviar broadcasts muitospara-um, os dispositivos iro criar uma tabela de rota reversa para cada coletor. No firmware ZB, o comando AR utilizado para habilitar o broadcast muitos-para-um. O comando AR define um intervalo de tempo (medido em unidades de 10 segundos) para os envios do broadcast.

6.3.4 Roteamento de Origem (Source Routing)


Em aplicaes onde um dispositivo dever transmitir dados para muitos destinos remotos, o roteamento AODV exige executar uma busca de rota para cada dispositivo de destino. Adicionalmente, se o nmero de destinos for maior do que o nmero de entradas na tabela de roteamento, as rotas AODV j estabelecida seriam sobre escritas com novas rotas, obrigando que buscas por rotas ocorram freqentemente. Isso pode resultar em lentido comunicao e baixo desempenho da rede. O source routing ajuda a resolver estes problemas, permitido a um coletor armazenar e definir rotas para muitas remotas. 6.3.4.1 Adquirindo Source Routes Source routing deve ser utilizado em conjunto com o roteamento muitos-para-um de forma a obter resultados mais otimizados. Quando um dispositivo remoto envia uma transmisso utilizando o roteamento muitos-para-um, primeiramente envia um frame comando Route Record . Este comando transmitido por toda a rota muitos-para-um at alcanar o coletor de dados. medida que o Route Record repassado por cada n da rede, o endereo de 16 bits do n lido e adicionado ao frame. Quando o comando alcana o coletor de dados, traz consigo todos os endereos do caminho. A aplicao pode salvar essas rotas em uma tabela de source routing para uso no momento de enviar dados a um dispositivo remoto.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

29

Mantendo as source routes para todos os destinos, um dispositivo elimina a necessidade de executar broadcasts de descobrimento de rotas. Este recurso amplia significativamente a capacidade de crescimento da rede ZigBee. Para implementar os source routing no firmware ZB, o comando AR deve ser ajustado menor que 0xFF no dispositivo coletor (aquele que implementa o source routing ), de forma a enviar solicitaes de rota muitos-para-um periodicamente. Ao receber solicitaes de rota muitos-paraum, dispositivos remotos iro transmitir um comando route record antes de cada transmisso unicast para o coletor. Ao receber o comando route record, o frame API Route Record Indicator (0xA1) enviado para a porta serial do coletor, indicando que um novo source route foi recebido. Observao: O firmware API deve ser implementado para poder utilizar o source routing . Para enviar uma transmisso source routed , a aplicao deve emitir um frame API Create Source Route (0x21) porta serial do transceptor. Isso cria o source route na tabela interna do equipamento. Feito isso, a aplicao pode enviar dados ou frames de solicitao s remotas. Quando a aplicao precisar enviar dados para um destino ainda no includo na tabela, um novo frame API Create Source Route deve ser enviado para obter a rota. O RM2070 pode armazenar um source route com at 10 ns, excludos origem e destino. Por exemplo, suponha uma rede composta por um coordenador e 5 roteadores como na figura abaixo. Roteador 2 Roteador 1 Roteador 3

Coordenador

Roteador 4

Roteador 5

Para enviar um pacote source routed para o roteador 3, a aplicao dever emitir um frame API Create Source Route (0x21) para o transceptor. O frame endereado ao roteador 3, e dois pulos (roteador 1 e roteador 2). Se o endereo de 64 bits do roteador 3 for 0x0013a200404A1234 e os endereos de 16 bits dos roteadores 1 e 2 forem: Dispositivo R1 (Roteador 1) R2 (Roteador 2) R3 (Roteador 3) Endereo de 16bits 0xAABB 0xCCDD 0xEEFF

Ento, o frame API Create Source Route deveria ser: 7E 0012 21 00 0013A200 404A1234 EEFF 00 02 CCDD AABB 5C Onde: 0x0012 - comprimento 0x21 - API ID (create source route) 0x00 - frame ID (deixar sempre em 0) 0x0013A200 404A1234 endereo de 64 de R3 (destino) 0xEEFF endereo de 16 bits de R3 (destino) 0x00 Opes de rota (ajustar para 0) 0x02 Nmero de dispositivos intermedirios na source route 0xCCDD Endereo do dispositivo mais distante ( localizado a um n do alvo) 0xAABB Endereo do dispositivo seguinte (a dois ns do alvo) 0x5C - Checksum (0xFF - SOMA(todos os bytes aps o comprimento)) Aps ter enviado o frame Create Source Route, os dados podem ser enviados para R1, R2, ou R3 e a mesma source route ser utilizada. Contudo, se dados tiverem que ser enviados para R4 ou R5, um novo frame Create Source Route deve ser emitido ao transceptor antes de transmitir dados. 6.3.4.2 Retentativas e Reconhecimento (Retries and acknowledgment) O ZigBee define pacotes de reconhecimento ( acknowledgment) tanto na camada Mac quanto na camada APS ( Application Support). Quando dados so transmitidos a dispositivos remotos, a comunicao pode ter que transpor diversos ns at alcanar o destino final. A medida que os dados so repassados de um n para o seu vizinho, um pacote de reconhecimento Ack transmitido na direo oposta para indicar que a transmisso foi recebida. Se o Ack no for recebido, o dispositivo transmissor ir retransmitir os dados por at 4 vezes. Este Ack chamado reconhecimento (acknowledgment) da camada Mac. Adicionalmente, o dispositivo que originou a transmisso aguarda receber um pacote Ack do

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

30

dispositivo destino. Este Ack ir percorrer o caminho inverso da mensagem original. Se o Ack no for recebido, o dispositivo ir retransmitir o pacote por at 2 vezes. Este Ack chamado reconhecimento na camada APS. A especificao ZigBee apresenta mais detalhes sobre isto.

6.4 Transmisses Codificadas (encrypted transmissions)


Transmisses codificadas so roteadas de forma semelhantes as no codificadas. Porque os pacotes codificados so repassados de n para n, cada dispositivo tem que, decodificar, autenticar e verificar a integridade dos dados, utilizando a chave de codificao da rede (network key). Os dados so, ento, adicionados do endereo do n, contadores de frames e recodificados para serem repassados ao prximo n. Este processo aumenta o tempo de latncia para transmisses unicast. Por outro lado, ajuda a prevenir replay attacks.

6.5 Melhorando a Eficincia do Roteamento com o API


Se uma rede possui um ou mais dispositivos que precisam transmitir para mais de 10 diferentes destinos, pode-se melhorar o desempenho implementando tabelas de endereamento ou tabelas source routing como descrito abaixo.

6.5.1 Tabela de Endereamento


Dispositivos que transmitem para mais de 10 remotas podem melhorar o desempenho do roteamento utilizando um tabela de endereamento que correlaciona endereos de 64 e 16 bits, e utilizando o API para enviar dados. A utilizao da tabela reduz significativamente o nmero de procuras por endereos de 16 bits. Idealmente, a tabela deve ser dimensionada com tamanho maior que o nmero mximo de destinos com que o dispositivo dever comunicar. Cada entrada da tabela na tabela de endereos deve conter um endereo de 64 bits e o ltimo endereo de 16 bits atribudo a cada dispositivo. A cada transmisso para um destino com determinado endereo de 64, a aplicao deve procurar na posio da tabela que contm o endereo de 64 bits e obter o endereo de 16 bits. O endereo de 16 bits ser adicionado ao frame API. Se a tabela no possuir a entrada para aquele endereo, o campo correspondente ao endereo de 16 bits no frame API ser preenchido como 0xFFFE (desconhecido). O API define utilizao dos endereos de 16 bits da remota nos seguintes frames: Todos os frames de recepo de dados Rx Data (0x90) Rx Explicit Data (0x91) IO Sample Data (0x92) Node Identification Indicator (0x95) Etc. Frames de status de transmisso (0x8B) A aplicao deve atualizar os endereos de 16 bits da tabela a cada recepo de um destes frames, para garantir que a tabela possua o mais recente endereo de 16 bits conhecido. No caso de falha de comunicao, a aplicao dever preencher o endereo de 16 bits na tabela com 0xFFFE (desconhecido).

6.6 Capacidade de Carga Mxima em RF


O firmware ZB possui o comando ATNP que retorna o nmero limite de bytes que podem ser enviados em uma transmisso unicast. O comando NP, como outros, retorna valores hexadecimais. Este nmero ir mudar conforme a habilitao da segurana. Se a segurana estiver habilitada, (comando EE), o mximo nmero de bytes menor pois os cdigos de segurana ocupam espao. Transmisses broadcast possuem 8 bytes de capacidade a mais que as transmisses unicast. Se o source routing estiver sendo utilizado, os endereos no source route devero caber no espao de dados. Por exemplo, se NP retornar 84 bytes, e o source route dever transpor 3 ns intermedirios (demandando 3 endereos de 16 bits), o nmero mximo de byte do pacote de dados ser 78.

6.7 Transmisses de Gerenciamento


A camada ZDO (ZigBee Device Objects layer) desempenha funes de busca de dispositivos e de servios, e possui capacidades de gerncia de rede. Os recursos desta camada esto implementados em maior ou menor extenso em todos os dispositivos ZigBee. O ZDO um endpoint que implementa servios definidos no perfil ZigBee Device, definido pela especificao do padro ZigBee. Cada servio possui um cluster ID associado, e a maioria dos servios de solicitao define uma resposta. A tabela a seguir descreve alguns servios ZDO comuns.

Nome do Cluster
Solicitao do endereo de rede Solicitao dos endpoints ativos

Cluster ID 0x0000 0x0005

Descrio Solicita o endereo de 16 bits do rdio que possui o endereo de 64 bits requerido. Solicita a lista de endpoints de um dispositivo remoto.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

31

Solicitao LQI Solicitao da tabela de roteamento Resposta do endereo de rede Resposta LQI Resposta de tabela de roteamento

0x0031 0x0032 0x8000 0x8031 0x8032

Solicita dados da tabela de vizinhos de um dispositivo remoto. Solicita a recuperao das entradas da tabela de roteamento de um dispositivo remoto. Resposta contendo o endereo de 16 bits de um dispositivo Resposta contendo a tabela de vizinhos de um dispositivo remoto. Resposta contendo as os dados das entradas da tabela de roteamento de um dispositivo remoto.

A especificao do ZigBee apresenta detalhes completos de todos os servios do perfil de dispositivos.

6.7.1 Enviando um Comando ZDO


Para enviar um comando ZDO, necessrio formatar corretamente e transmitir um frame API explicito. Os endpoints de origem e destino devem ser preenchido com 0 e o profile ID deve ser 0. O cluster ID deve ser ajustado para corresponder ao do servio apropriado. Por exemplo, para enviar uma solicitao de endpoints ativos, o cluster ID deve ser preenchido com 0x0005. O primeiro byte do bloco no frame API um nmero de seqncia da aplicao (transaction sequence number) que pode ser preenchido com qualquer valor de 1 byte. Este mesmo valor ser copiado para o primeiro byte da resposta ZDO. Os bytes restantes da carga til de dados devem ser preenchidos conforme requerido pelo ZDO. Todos os valores compostos por mais de um byte devem ser enviados guardando a seqncia de significncia.

6.7.2 Recebendo Comandos e Respostas ZDO


No firmware ZB, os comandos ZDO podem ser facilmente enviados utilizando API. Para receber comandos ZDO, o endereamento das aplicaes deve ser habilitado pelo comando AO. Nem todos os comandos ZDO recebidos pelo dispositivo so repassados para a aplicao. Quando a mensagem ZDO recebida no endpoint 0 e profile ID 0, o cluster ID indica que tipo de mensagem ZDO foi recebida. O primeiro byte da carga geralmente um nmero seqencial que corresponde a uma solicitao. Os bytes restantes so preenchidos conforme definido pelo ZDO. A semelhana da solicitao ZDO, todos os valores compostos por mais de um byte devem ser enviados guardando a seqncia de significncia. 6.7.2.1 Exemplo 1: Enviando uma solicitao LQI ZDO para ler o contedo da tabela de vizinhos de uma remota. Observando a especificao ZigBee, o cluster ID para uma solicitao LQI 0x0031, e a carga de dados ocupa apenas um byte ( start index). Este exemplo ir enviar uma solicitao LQI para um dispositivo remoto com endereo de 64 bits de 0x0013A200 40401234. O start index ser ajustado para 0, e o nmero seqencial de transao para 0x76. Frame API: 7E 0016 11 01 0013A200 40401234 FFFE 00 00 0031 0000 00 00 76 00 CE 0x0016 - Comprimento 0x11 Solicitao explicita de transmisso 0x01 - frame ID (preenchido com valor diferente de zero para habilitar as mensagens de status de transmisso ou com zero para desabilitar). 0x0013A200 40401234 endereo de 64 bits da remota 0xFFFE - endereo de 16 bits da remota ( 0xFFFE = desconhecido). Opcionalmente preenchido com o endereo de 16 bits do destino, se conhecido. 0x00 - Endpoint de origem 0x00 Endpoint de destino 0x0031 - Cluster ID ( Solicitao LQI ou solicitao da tabela de vizinhos) 0x0000 - Profile ID (perfil do dispositivo Zigbee) 0x00 raio do broadcast 0x00 Opes de transmisso 0x76 Nmero seqencial de transao 0x00 Carga de bytes para o comando de solicitao LQI 0xCE - Checksum (0xFF - SOMA(todos os bytes aps o comprimento)) Descrio: Estes frames API enviam uma solicitao LQI ZDO (solicitao de tabela de vizinhos) a um dispositivo remoto. Lembrar que o comando AO deve ser corretamente programado em um dispositivo API para habilitar os frames API de recepo explicita e para poder receber a resposta ZDO.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

32

6.7.2.2 Exemplo 2: Enviando uma solicitao de ZDO de endereo de rede para descobrir o endereo de 16 bits de uma remota. Observando a especificao ZigBee, o cluster ID para uma solicitao de endereo de rede 0x0000, e a carga de bytes requer: [endereo de 64 bits] + [tipo de solicitao] + [Start Index] Este exemplo ir enviar uma solicitao de endereo de rede em broadcast para descobrir o endereo de 16 bits do dispositivo com endereo de 64 bits 0x0013A200 40401234. O tipo de solicitao e start index sero preenchidos com zero, e o nmero seqencial de transao ser 0x44. Frame API: 7E 001F 11 01 00000000 0000FFFF FFFE 00 00 0000 0000 00 00 44 34124040 00A21300 00 00 33 0x001F Comprimento 0x11 Solicitao explicita de transmisso 0x01 - frame ID (preenchido com valor diferente de zero para habilitar a mensagem de status de transmisso, ou com zero para desabilitar) 0x00000000 0000FFFF endereo de 64 bits para a transmisso broadcast 0xFFFE Preencher com este valor para uma transmisso broadcast 0x00 Endpoint de origem 0x00 - Endpoint de destino 0x0000 - Cluster ID (Solicitao de endereo de rede) 0x0000 - Profile ID (perfil de dispositivo ZigBee) 0x00 Raio do Broadcast 0x00 Opes de transmisso 0x44 Nmero seqencial de transao 0x34124040 00A21300 00 00 Carga de bytes necessria para o comando de solicitao de endereo de rede 0x33 - Checksum (0xFF SOMA (todos os bytes aps comprimento)) Descrio: este frame API envia um broadcast com uma solicitao de endereo de rede ZDO para obter o endereo de 16 bits de um dispositivo com endereo de 64 bits de 0x0013A200 40401234. Observe que os bytes para o endereo de 64 bits em ordem de significncia. Todos os campos de mltiplos bytes no comando API devem estar ordenados pela significncia. Lembrar tambm que o comando AO deve ser corretamente programado no dispositivo API para habilitar os frames API explcitos de recepo.

6.8 Timeouts de Transmisso


O tempo do time out de transmisso varia conforme a natureza da transmisso. Timeouts so definidos para os seguintes tipos de transmisso: Transmisso para um roteador remoto ou coordenador; Transmisso para um end device filho; Transmisso para um end device remoto.

Observao: Os timeouts nesta seo so tericos e de baixa preciso. A aplicao deve adicionar uma tolerncia no clculo do timeout mximo, de algumas centenas de milissegundos.

6.8.1 Transmitindo para Um Roteador Remoto ou Coordenador


O timeout, quando transmitindo para um roteador remoto ou coordenador, pode ser ajustado pelo comando NH. O tempo real computado como ((50 x NH) + 100). O valor default de NH 30, que equivale a 1.6 segundos de timeout. O timeout para um roteador remoto ou coordenador, no pior caso, deve considerar 3 tentativas de transmisso (1 tentativa e 2 re-tentativas). O timeout mximo total para um roteador remoto ou coordenador est em torno de: 3 * (%50 * NH) + 100) Por exemplo, se NH=3= (0x1E), o total da transmisso ser em torno de: 3 * ((50 * 30) + 100), ou 3 * (1500 + 100), ou 3 * (1600), ou 4800 ms, ou 4.8 segundos

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

33

6.8.2 Transmitindo para um End Device Filho


Ao transmitir dados para um end device filho, um roteador ou coordenador armazena os dados por um tempo definido, baseado no ajuste de SP. Os dispositivos com firmware ZB armazenam dados por (1,2 * SP) para garantir o armazenamento por um perodo um pouco maior que o tempo definido pelo SP no end device. O tempo mnimo de armazenamento de pacotes 1,2 segundos. O pior caso de timeout deve ocorrer se o pai entender que o end device um filho, e o end device est desligado ou no se encontra mais ao alcance do pai. Neste caso, o pior caso de time out aproximadamente o mesmo de quando se transmite para um roteador remoto. Vale notar que um conjunto de recursos existe para ajudar o roteador pai ou coordenador a remover filhos desligados de suas tabelas de afiliados. No firmware ZB, o pai utiliza um poll timeout que ir remover o end device filho de sua tabela de afiliados se no obtiver resposta ao poll request dentro de determinado tempo. Alternativamente, se o end device aderir a outro pai, o mesmo envia um broadcast para alertar todos os dispositivos que est afiliado a um novo pai. Este recurso tambm conduz o pai antigo a remover aquele filho de sua tabela de afiliados.

6.8.3 Transmitindo para um End Device Remoto


O pior caso de transmisso para a um end device remoto ocorre quando um end device previamente conhecido abandona a rede ou muda para outro pai, sem que o originador da transmisso saiba sobre isso. Neste caso, o timeout de transmisso definido como abaixo. Uma transmisso para um end device remoto baseado no parmetro SP. O SP define o sleep period dos end devices. Um dispositivo enviando dados para um end device remoto aguarda o timeout do unicast, adicionado do perodo de adormecimento (sleep period ), antes de considerar que a tentativa de transmisso falhou. Isto calculado como (50 * BH) + SP. A semelhana do caso do roteador remoto ou coordenador, duas retentativas ocorrem. Levando as retentativas em conta, o timeout de transmisso, no pior caso, 3 * ((50 * NHB) + (1,2 * SP)). Por exemplo, suponha um roteador configurado com NH=30 (0x1E) e SP=1000 (0x3E8), tentando se comunicar com um end device remoto que dorme por 10 segundos. (J que SP medido em unidades de 10ms, o valor 1000 corresponde a 10 segundos). O tempo total de timeout de transmisso para o end device remoto seria: 3 * ((50 * NH) + (1,2 * SP)), ou 3 * (1500 + (1,2 * SP)), ou 3 * (1500 + 12.000), ou 3 * (13500), ou 40.500 ms, ou 40,5 segundos

6.8.4 Exemplos de Transmisso


6.8.4.1 Exemplo 1: Envio de uma transmisso de dados em API unicast para o coordenador utilizando o endereo de 64 bits = 0 com carga de dados TxData

Frame API: 7E 0014 10 01 00000000 00000000 FFFE 00 00 54 78 44 61 74 61 AB Composio dos campos: 0x0014 - comprimento 0x10 - API ID (tx data) 0x01 - frame ID (preenchido com valor maior que zero para habilitar a resposta de status de tranmisso) 0x00000000 00000000 endereo de 64 bits do coordenador (especificao ZB) 0xFFFE endereo de 16 bits, necessrio quando enviando dados para o endereo de 64 bits = 0 0x00 Raio do Broadcast (0 = mximo e pulos) 0x00 Opes de transmisso 0x54 78 44 61 74 61 Representao ASCII do string "TxData" 0xAB - Checksum (0xFF SOMA (todos os bytes aps o comprimento) Descrio: Esta transmisso envia o string TxData ao coordenador, sem saber o endereo de 64 bits do coordenador. Um endereo de 64 bits = zero definido como o do coordenador no firmware ZB. Se o endereo de 64 bits do coordenador fosse conhecido, o valor tomaria o lugar dos zeros, e o endereo de 16 bits poderia ser preenchido com zeros.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

34

6.8.4.2 Exemplo 2 Envio de uma transmisso de dados em broadcast API que todos os dispositivos pode receber (incluindo os adormecidos), com a carga de bytes TxData. Frame API: 7E 0014 10 01 00000000 0000FFFF FFFE 00 00 54 78 44 61 74 61 AD Composio dos campos: 0x0014 - comprimento 0x10 - API ID (tx data) 0x01 - frame ID (preenchido com valor diferente de zero para habilitar a resposta com status de transmisso) 0x00000000 0000FFFF Definio do Broadcast (incluindo os end devices adormecidos) 0xFFFE Endereo de 16 bits para o envio do broadcast 0x00 Raio do broadcast (0 = mximo de saltos) 0x00 Opes de transmisso 0x54 78 44 61 74 61 Representao ASCII do string "TxData" 0xAD - Checksum (0xFF - SOMA(todos os bytes aps comprimento)) Descrio: Esta transmisso envia o string TxData em broadcast. J que o endereo de destino 0xFFFF, todos os dispositivos iro receber transmisso, incluindo os end devices adormecidos. Se o receiver application addressing estiver habilitado, o transceptor ir reportar todos os frames de dados no formato explicito (0x91) para indicar os endpoints de origem e destino, cluster ID, e profile ID em que cada pacote foi recebido. (Mensagens de status, como status do modem e registros indicadores de rota, no so afetados.) Para habilitar o receiver application addressing, ajuste o comando AO com 1 utilizando o frame de comando AT (0x08). Frame API: 7E 0005 08 01 414F 01 65 Composio dos Campos: 0x0005 - comprimento 0x08 - API ID (comando AT) 0x01 - frame ID (preenchido com valor diferente de zero para habilitar os frames de resposta a comando AT) 0x414F Representao ASCII de 'A','O' (emisso do comando) 0x01 - Parmetro 0x65 - Checksum (0xFF - SOMA(todos os bytes aps comprimento)) Descrio: Ajustar AO = 1 necessrio para que o mdulo utilize o frame API explicito de recepo (0x91) quando pacotes de dados RF so recebidos. Isso necessrio quando a aplicao necessita indicao do endpoint de origem ou destino, cluster ID, e/ou profile ID utilizados em pacotes de dados recebidos. Mensagens ZDO somente podem se recebidas se AO = 1.

7. Segurana
O ZigBee suporta vrios nveis de segurana, que podem ser configurados conforme as necessidades da aplicao. Os recursos de segurana incluem: Encriptao AES de 128 bits; Duas chaves de segurana que podem ser pr-configuradas ou obtidas durante a adeso; Suporte a trust center; Recursos para garantir a integridade, confidencialidade e autenticao de mensagens.

A primeira metade deste captulo descreve vrios recursos de segurana definidos na especificao ZigBee-PRO, enquanto que a segunda metade ilustra como os mdulos podem ser configurados para utilizar estes recursos.

7.1 Modos de Segurana


O padro ZigBee suporta trs modos de segurana residente, padro e alta segurana. A segurana residente foi inicialmente suportada na especificao de 2006. Este nvel de segurana utiliza uma chave de segurana compartilhada entre os dispositivos da rede. A segurana padro adicionou um conjunto de melhorias sobre a segurana residente , incluindo uma chave de link na camada APS. A alta segurana adicionou autenticao de entidades, e uma srie de outros recursos ainda no suportados por todos os dispositivos de mercado. Os transceptores RM2070 primariamente suportam o nvel de segurana padro, contudo, os end devices que suportam o nvel de segurana residente podem aderir e operar com os dispositivos com segurana padro. O restante deste captulo versa sobre assuntos relevantes ao nvel de segurana padro.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

35

7.2 O Modelo de Segurana do ZigBee


A segurana ZigBee aplicada s camadas Rede (Network) e APS. Os pacotes so codificados com a encriptao AES de 128 bits. Uma chave de rede opcional chave de link podem ser utilizadas para encriptar dados. Apenas dispositivos com as mesmas chaves esto aptas a se intercomunicar na rede. Roteadores e end devices que iro se comunicar em uma rede segura devem obter as chaves de segurana corretas.

7.2.1 Segurana na Camada de Rede


A chave de rede utilizada para encriptar a camada de APS e os dados da aplicao. Alm de encriptar as mensagens da aplicao, a segurana de rede tambm aplicada s mensagens de solicitao de rota e respostas, comandos APS, e comandos ZDO. A encriptao de rede no aplicada s transmisses na camada MAC, tais como beacons, etc. Se a segurana est habilitada em uma rede, todos os pacotes de dados sero encriptados com a chave de rede. Os pacotes so encriptados e autenticados utilizando AES de 128 bits. Isto mostrado na figura abaixo.

Autenticao de Rede
Cabealho MAC Cabealho de Rede Cabealho APS Dados da Aplicao
Cdigo de Integridade da Mensagem de Rede

Encriptao de Rede
7.2.2 Contador de Frames
O cabealho de rede de pacotes encriptados inclui um contador de frames de 32 bits. Cada dispositivo da rede mantm um contador de frames de 32 bits que incrementado a cada transmisso. Adicionalmente, os dispositivos rastreiam o ltimo valor dos contadores de frames de cada um de seus vizinhos. Se um dispositivo recebe um pacote de um vizinho com uma contagem menor do que a previamente registrada, o pacote e descartado. O contador de frames utilizado para evitar replay attacks (ataques de reenvio). Se o contador alcanar seu limite mximo (0xFFFFFFFF), ele no passa para zero e, ento, nenhuma nova transmisso pode ser enviada. Devido capacidade do contador, alcanar o valor mximo muito improvvel. A tabela a seguir apresenta o tempo requerido, em diferentes situaes, para o contador de frames alcanar seu limite mximo. Taxa Mdia de Transmisso 1 / segundo 10 / segundo Tempo at que o contador de frames de 32 bits alcance o limite 136 anos 13,6 anos

Para zera o contador, sem comprometer a segurana, a chave de rede pode ser alterada. Quando a chave de rede atualizada, o contador de frames em todos os dispositivos zerado.

7.2.3 Cdigo de Integridade da Mensagem


O cabealho de rede, o cabealho APS, e os dados da aplicao so todos autenticados com o AES 128 bits. Uma clculo realizado neste campos e anexado ao final da mensagem como um cdigo de integridade de 4 bytes (MIC message integrity code). O MIC permite aos dispositivos receptores conferir se a mensagem foi alterada ou no. Se um dispositivo recebe um pacote e o MIC no combina com o calculado pelo receptor, o pacote descartado.

7.2.4 Encriptao e Desencriptao na Camada de Rede


Pacotes codificados na camada de rede so encriptados e desencriptados por cada n de uma rota. Quando um dispositivo recebe um pacote encriptado, o pacote desencriptado e autenticado. Se o dispositivo no o destinatrio, ele encripta e autentica o pacote utilizando seu prprio contador de frames e endereo de origem contido no cabealho de rede. J que a encriptao desempenhada por cada n, a latncia de pacotes um pouco maior em redes encriptadas do que nas no encriptadas. Adicionalmente, a segurana exige 18 bytes de overhead para incluir o contador de frames de 32 bits, um endereo de origem de 8 bytes, MIC de 4 bytes e outros 2 bytes. Isto reduz o tamanho da carga de byte do pacote de dados.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

36

7.2.5 Atualizaes da Chave de Rede


O ZigBee possui um recurso para a troca da chave de rede. Quando a chave de rede alterada, os contadores de frames de todos os dispositivos so zerados.

7.2.6 Segurana na Camada APS


A segurana na camada APS pode ser utilizada para encriptar os dados da aplicao utilizando uma chave que compartilhada entre dispositivos de origem e destino. Enquanto que segurana na camada de rede aplicada a todos os dispositivos, e encriptada e desencriptada a cada salto de n para n, a segurana APS opcional e fornece segurana entre origem e destino, com a utilizao da chave de link que apenas a origem e o destino conhecem. Se a segurana APS est habilitada, os pacotes so encriptados e autenticados usando o AES de 128 bits. Isto apresentado na figura abaixo.

Autenticao APS
Cabealho MAC Cabealho de Rede Cabealho APS Dados da Aplicao
Cdigo de Integridade da Mensagem de Rede

Encriptao APS
7.2.7 Cdigo de Integridade da Mensagem
Se a segurana APS est habilitada, o cabealho APS e a carga de dados so autenticados com o AES-128. Um clculo realizado sobre os campos e anexado ao final da mensagem como um cdigo de integridade de 4 bytes (MIC). O MIC (message integrity code) diferente do MIC anexado pela camada de rede. O MIC permite ao dispositivo destino testar se a mensagem foi alterada. Se o dispositivo destino recebe um pacote e o MIC no for igual ao calculado pelo mesmo, o pacote descartado.

7.2.8 Chaves APS de Link


Existem dois tipos de chaves APS de link chave trust center link e chave application link. Uma chave trust center link estabelecida entre um dispositivo e um trust center enquanto um chave application link estabelecida entre dois dispositivos da rede, sendo que nenhum deles um trust center.

7.2.9 Encriptao e Desencriptao na Camada APS


Pacotes com encriptao APS so codificados na origem e apenas desencriptados pelo destino. J que a encriptao APS anexa 4 bytes MIC, a mxima carga de dados reduzida de 4 bytes.

7.2.10 Encriptao nas Camadas APS e de Rede


As encriptaes nas camadas de rede e APS podem ser ambas aplicadas aos dados. A prxima figura demonstra a autenticao e encriptao executadas no pacote final quando so ambas aplicadas.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

37

Autenticao de Rede Carga de Dados Autenticao APS


Cabealho MAC Cabealho de Rede Cabealho APS Dados da Aplicao
Cdigo de Integridade da Mensagem APS Cdigo de Integridade da Mensagem de Rede

Encriptao APS Encriptao de Rede


7.2.11 Trust Center
O ZigBee define um dispositivo trust center que responsvel por autenticar dispositivos que aderem a rede. O trust center tambm gerencia a distribuio de chaves link na rede.

7.2.12 Formando e Aderindo a Redes Seguras


O coordenador responsvel por selecionar a chave de encriptao de rede. Esta chave pode ser pr-configurada ou selecionada aleatoriamente. Adicionalmente, o coordenador opera, genericamente, como um trust center, e deve, portanto, selecionar a chave trust center link. A chave trust center link tambm pode ser pr-configurada ou selecionada aleatoriamente. Dispositivos que aderem rede devem obter a chave de rede quando passam a integrar a rede. Quando um dispositivo adere a uma rede segura, a chave de rede e a chave link podem ser enviadas ao dispositivo. Se o dispositivo possui uma chave pr-configurada de trust center link, a chave de rede ser enviada a ele encriptada pela chave link. Por outro lado, se o dispositivo no est pr-configurado com a chave link, o dispositivo apenas poder aderir rede se a chave de rede for enviada desencriptada (in the clear). O trust center dever decidir se ir enviar, ou no, a chave de rede desencriptada para dispositivos que aderem e que no possuem a chave link pr-configuradas. Enviar a chave de rede no encriptada no recomendvel, pois isso cria uma falha na segurana da rede. Para garantir a segurana da rede, todos os dispositivos devem possuir a chave de link corretamente pr-configurada.

7.3 Implementando Segurana no RM2070


Se a segurana est habilitada no firmware ZB, dispositivos adquirem a chave de rede quando aderem rede. As transmisses de dados so sempre encriptadas com a chave de rede, a podem, opcionalmente, ser encriptadas na origem e destino pela chave APS link. A seo a seguir apresenta a parametrizao de segurana no RM2070 com firmware ZB.

7.3.1 Habilitando a Segurana


Para habilitar a segurana em um dispositivo, o comando EE deve ser preenchido com 1. Se o valor do comando EE alterado e as alteraes so aplicadas (pelo comando AC, por exemplo), o mdulo ir abandonar a rede, identificador de rede e canal, nos quais operava, e tentar aderir a uma nova rede. OBS: O comando EE deve ser o mesmo em todos os dispositivos. Alteraes do comando EE devem ser salvas em memria no voltil pelo comando WR.

7.3.2 Ajustando a Chave de Segurana de Rede


O coordenador deve selecionar a chave de segurana da rede. O comando NK (apenas de escrita) utilizado para ajustar a chave de rede. Se NK=0 (default), uma chave aleatria ser selecionada. Isto pode deve ser suficiente para a maioria das aplicaes. Por outro lado, se NK preenchido com um valor diferente de zero, a chave de rede utiliza o valor especificado em NK. O NK apenas suportado pelo coordenador. Roteadores e end devices com segurana habilitada (ATEE=1), adquirem a chave de rede quando aderem rede. Os dispositivos iro receber a

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

38

chave encriptada pela chave link se eles compartilham com o coordenador uma chave link pr-configurada. A prxima seo apresenta detalhes sobre isto.

7.3.3 Selecionando a Chave APS Trust Center Link


O coordenador tambm deve selecionar a chave trust center link utilizando o comando KY. Se KY=0 (default), o coordenador ir selecionar aleatoriamente a chave trust center link (no recomendvel). Por outro lado, se o KY preenchido com um valor diferente de zero, este valor ser utilizado como chave trust center link. O parmetro KY apenas de escrita e no pode ser lido. OBS: Chaves link de aplicao (enviadas entre dois dispositivos em que nenhum o coordenador) no so suportadas pela verso atual do firmware ZB. 7.3.3.1 Chaves Trust Center Link Aleatrias Se o coordenador seleciona aleatoriamente a uma chave trust center link (KY=0), os dispositivos podero aderir rede sem possuir uma chave link pr-configurada. Isso obriga a rede a enviar a chave de rede no encriptada via RF para os dispositivos, e isso no recomendvel. 7.3.3.2 Chaves Trust Center Link Pr-configuradas Se o coordenador utiliza uma chave link pr-configurada (KY>0), ento o coordenador no envia a chave de rede no encriptada para dispositivos que aderem rede. Apenas os dispositivos com a chave link corretamente pr-configurada estaro habilitados a integrar e comunicar com a rede.

7.3.4 Utilizando um Trust Center


O comando EO pode ser utilizado para definir o coordenador como um trust center. Se o coordenador um trust center, ele ser alertado a cada nova tentativa de adeso rede. O trust center tambm possui a habilidade de alterar a chave de rede. No firmware ZB, uma rede segura pode ser estabelecida sem um trust center. Encriptaes nas camadas de rede e APS so suportadas mesmo que o trust center no exista. 7.3.4.1 Atualizando a Chave de Rede com o Trust Center Se o trust center iniciou uma rede e o valor de NY alterado, o coordenador ir atualizar a chave de rede em todos os dispositivos. (Alteraes em KY obrigam a que todos os dispositivos abandonem a rede). A rede ir continuar a operar no mesmo canal e identificador de rede (PAN ID), mas os dispositivos da rede iro atualizar suas chaves de rede, incrementar seus nmeros seqenciais de chave de rede, e zerar seus contadores de frames. 7.3.4.2 Atualizando a Chave de Rede sem um Trust Center Se o coordenador no estiver operando como um trust center o comando de reset de rede (NR1) pode ser utilizado para forar todos os dispositivos a abandonar a rede atual e aderir rede em outro canal. Quando os dispositivos abandonam e reorganizam a rede, os contadores de frames so zerados. Este procedimento far o coordenador organizar uma nova rede qual os dispositivos remanescentes devero aderir. Resetando a rede dessa forma, ir desativar o coordenador e roteadores por aproximadamente 10 segundos, e provavelmente, ir alterar o identificador de rede de 16 bits e os endereos de 16 bits dos dispositivos.

7.4 Exemplos de Segurana no RM2070


Esta seo cobre algumas amostras de configurao do RM2070 para suportar diferentes modos de segurana. Several AT commands are listed with suggested parameter values. The notation in this section includes an '=' sign to indicate what each command register should be set to - for example, EE=1. This is not the correct notation for setting command values in the XBee. In AT command mode, each command is issued with a leading 'AT' and no '=' sign - for example ATEE1. In the API, the two byte command is used in the command field, and parameters are populated as binary values in the parameter field.

7.4.1 Example 1: Forming a network with security (pre-configured link keys)


1. Start a coordinator with the following settings: a. ID=2234 (arbitrarily selected) b. EE=1 c. NK=0 d. KY=4455 e. WR (save networking parameters to preserve them through power cycle) 2. Configure one or more routers or end devices with the following settings: a. ID=2234 b. EE=1 c. KY=4455 d. WR (save networking parameters to preserve them through power cycle) 3. Read the AI setting on the coordinator and joining devices until they return 0 (formed or joined a network). In this example, EE, ID, and KY are set the same on all devices. After successfully joining the secure network, all application data transmissions will be encrypted by the network key. Since NK was set to 0 on the coordinator, a random network key was selected. And since the link key (KY) was configured the same on all devices, to a non-zero value, the network key was sent encrypted by the preconfigured link key (KY) when the devices joined.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

39

7.4.2 Example 2: Forming a network with security (obtaining keys during joining)
1. Start a coordinator with the following settings: a. ID=2235 b. EE=1 c. NK=0 d. KY=0 e. WR (save networking parameters to preserve them through power cycle) 2. Configure one or more routers or end devices with the following settings: a. ID=2235 b. EE=1 c. KY=0 d. WR (save networking parameters to preserve them through power cycle) 3. Read the AI setting on the coordinator and joining devices until they return 0 (formed or joined a network). In this example, EE, ID, and KY are set the same on all devices. Since NK was set to 0 on the coordinator, a random network key was selected. And since KY was set to 0 on all devices, the network key was sent unencrypted ("in the clear") when the devices joined. This approach introduces a security vulnerability into the network and is not recommended

8. Managing End Devices


ZigBee end devices are intended to be battery-powered devices capable of sleeping for extended periods of time. Since end devices may not be awake to receive RF data at a given time, routers and coordinators are equipped with additional capabilities (including packet buffering and extended transmission timeouts) to ensure reliable data delivery to end devices.

End Device Operation


When an end device joins a ZigBee network, it must find a router or coordinator device that is allowing end devices to join. Once the end device joins a network, a parent-child relationship is formed between the end device and the router or coordinator that allowed it to join. See chapter 4 for details. When the end device is awake, it sends poll request messages to its parent. When the parent receives a poll request, it checks a packet queue to see if it has any buffered messages for the end device. It then sends a MAC layer acknowledgment back to the end device that indicates if it has data to send to the end device or not.

If the end device receives the acknowledgment and finds that the parent has no data for it, the end device can return to idle mode or sleep. Otherwise, it will remain awake to receive the data. This polling mechanism allows the end device to enter idle mode and turn its receiver off when RF data is not expected in order to reduce current consumption and conserve battery life. The end device can only send data directly to its parent. If an end device must send a broadcast or a unicast transmission to other devices in the network, it sends the message directly to its parent and the parent performs any necessary route or address discoveries to route the packet to the final destination.

Parent Operation

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

40

Each router or coordinator maintains a child table that contains the addresses of its end device children. A router or coordinator that has unused entries in its child table is said to have end device capacity, or the ability to allow new end devices to join. If the child table is completely filled (such that the number of its end device children matches the number of child table entries), the device cannot allow any more end devices to join to it. Since the end device children are not guaranteed to be awake at a given time, the parent is responsible to manage incoming data packets in behalf of its end device children. If a parent receives an RF data transmission destined for one of its end device children, and if the parent has enough unused buffer space, it will buffer the packet. The data packet will remain buffered until a timeout expires, or until the end device sends a poll request to retrieve the data. The parent can buffer one broadcast transmission for all of its end device children. When a broadcast transmission is received and buffered, the parent sets a flag in its child table when each child polls and retrieves the packet. Once all children have received the broadcast packet, the buffered broadcast packet is discarded. If all children have not received a buffered broadcast packet and a new broadcast is received, the old broadcast packet is discarded, the child table flags are cleared, and the new broadcast packet is buffered for the end device children. This is demonstrated in the figure below.

When an end device sends data to its parent that is destined for a remote device in the network, the parent buffers the data packet until it can establish a route to the destination. The parent may perform a route or 16-bit address discovery in behalf of its end device children. Once a route is established, the parent sends the data transmission to the remote device.

End Device Poll Timeouts


To better support mobile end devices (end devices that can move around in a network), parent router and coordinator devices have a poll timeout for each end device child. If an end device does not send a poll request to its parent within the poll timeout, the parent will remove the end device from its child table. This allows the child table on a router or coordinator to better accommodate mobile end devices in the network.

Packet Buffer Usage


Packet buffer usage on a router or coordinator varies depending on the application. The following activities can require use of packet buffers for up to several seconds: Route and address discoveries Application broadcast transmissions Stack broadcasts (i.e. ZDO "Device Announce" messages when devices join a network) Unicast transmissions (buffered until acknowledgment is received from destination or retries exhausted) Unicast messages waiting for end device to wake. Applications that use regular broadcasting or that require regular address or route discoveries will use up a significant number of buffers, reducing the buffer availability for managing packets for end device children. Applications should reduce the number of required application broadcasts, and consider implementing an external address table or many-to-one and source routing if necessary to improve routing efficiency.

Non-Parent Device Operation


Devices in the ZigBee network treat data transmissions to end devices differently than transmissions to other routers and coordinators. Recall that when a unicast transmission is sent, if a network acknowledgment is not received within a timeout, the device resends the transmission. When transmitting data to remote coordinator or router devices, the transmission timeout is relatively short since these devices are powered and responsive. However, since end devices may sleep for some time, unicast transmissions to end devices use an extended timeout mechanism in order to allow enough time for the end device to wake and receive the data transmission from its parent. If a non-parent device does not know the destination is an end device, it will use the standard unicast timeout for the transmission. However, provisions exist in the Ember ZigBee stack for the parent to inform the message sender that the destination is an end device. Once the sender discovers the destination device is an end device, future transmissions will use the extended timeout. See the XBee Router / Coordinator Configuration section in this chapter for details.

XBee End Device Configuration


XBee end devices support two different sleep modes: Pin Sleep Cyclic Sleep. Pin sleep allows an external microcontroller to determine when the XBee should sleep and when it should wake by controlling the Sleep_RQ pin. In contrast, cyclic sleep allows the sleep period and wake times to be configured through the use of AT commands. The sleep mode is configurable with the SM command. In both pin and cyclic sleep modes, XBee end devices poll their parent every 100ms while they are awake to retrieve buffered data. When a poll request has been sent, the end device enables

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

41

the receiver until an acknowledgment is received from the parent. (It generally takes about 10ms from the time the poll request is sent until the acknowledgment is received.) The acknowledgment indicates if the parent has buffered data for the end device child or not. If the acknowledgment indicates the parent has pending data, the end device will leave the receiver on to receive the data. Otherwise, the end device will turn off the receiver and enter idle mode (until the next poll request is sent) to reduce current consumption (and improve battery life). Once the module enters sleep mode, the On/Sleep pin (pin 13) is de-asserted (low) to indicate the module is entering sleep mode. If CTS hardware flow control is enabled (D7 command), the CTS pin (pin 12) is de-asserted (high) when entering sleep to indicate that serial data should not be sent to the module. The module will not respond to serial or RF data when it is sleeping. Applications that must communicate serially to sleeping end devices are encouraged to observe CTS flow control. When the XBee wakes from sleep, the On/Sleep pin is asserted (high), and if flow control is enabled, the CTS pin is also asserted (low). If the module has not joined a network, it will scan all SC channels after waking to try and find a valid network to join.

Pin Sleep
Pin sleep allows the module to sleep and wake according to the state of the Sleep_RQ pin (pin 9). Pin sleep mode is enabled by setting the SM command to 1. When Sleep_RQ is asserted (high), the module will finish any transmit or receive operations and enter a low power state. For example, if the module has not joined a network and Sleep_RQ is asserted (high), the module will sleep once the current join attempt completes (i.e. when scanning for a valid network completes). The module will wake from pin sleep when the Sleep_RQ pin is de-asserted (low).

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

42

9. Teste de Comunicao
A elaborao deste item foi motivada pelas perguntas e dvidas mais freqentes dos usurios que pela primeira vez tem contato com nossos rdios modem. Quando se faz a primeira tentativa de comunicar equipamentos dotados de portas seriais via rdio e a comunicao no funciona, a pergunta : ONDE EST O PROBLEMA? A resposta pode ser, entre outras: Baud rate; Paridade; Time-out de comunicao; Pinagem de cabos; Endereamento de rdios; Endereamento dos equipamentos. Nossa sugesto separar os sistemas e testar os rdios isoladamente. Este documento descreve formas de testar a comunicao entre rdios modem Alfacomp. Os procedimentos aqui descritos permitem testar os rdios em bancada assim como a distncia.

9.1

Dvidas Comuns
Quais protocolos o 2070 suporta? RESPOSTA: O 2070, assim como a maioria dos rdios modem de sua categoria, no interpreta protocolos quando operando no modo transparente. Os rdios se limitam a receber bytes e transmiti-los para serem recebidos por outro rdio que ir emitir os mesmos bytes por sua porta serial. Como funciona a paridade? RESPOSTA: O rdio no interpreta a paridade do byte transmitido. Quando ajustamos o rdio para trabalhar com paridade, este se prepara para transmitir bytes de 11 bits (start + 8 bits + paridade + stop). Quando ajustamos o rdio para trabalhar sem paridade, este transmite bytes de 10 bits (start + 8 bits + stop). Se a paridade transmitida corresponde aos 8 bits, no faz diferena para o rdio. Qual o comprimento mximo do cabo entre o rdio e a antena? RESPOSTA: Quem determinar isto ser a intensidade de sinal. O cabo RGC 213 tem uma perda aproximada de 15 dB a cada 100 metros. Se o sinal forte, podemos admitir cabos mais longos. Apenas o projeto de rdio pode determinar o comprimento mximo. Uma resposta simplista seria: TENTAR MANTER O COMPRIMENTO ABAIXO DE 10 METROS.

9.2

Testando Rdios Passo a Passo

Sugerimos a seguinte seqncia para testar e configurar uma rede de rdios. 1 Programar os rdios, um como SERVIDOR e os demais como CLIENTES. 2 Executar o teste serial com ECO em bancada que ser descrito a seguir. Afaste os rdios de pelo menos 2 metros. 3 Executar o teste de comunicao entre os equipamentos definitivos, em bancada, exemplo: software supervisrio e clp. 4 Instalar os rdios no campo e testar os enlaces utilizando o software de teste de enlaces. 5 Executar novamente o teste de ECO, agora utilizando antenas distncia. 6 Por fim, testar a comunicao entre os equipamentos definitivos como foi feito em bancada.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

43

9.3

Programando os Rdios para o Teste de ECO

Os rdios programados iro comunicar a 9600 bps e sem paridade.

9.4

Conectando Equipamentos para o Teste de ECO

Conecte o rdio SERVIDOR COM1 do PC utilizando o cabo de programao descrito abaixo. Rdio RJ12 2 - RXD PC - DB9 fmea 2 - RXD

3 - TXD

3 - TXD

5 - GND

5 - GND

4 - RTS

7 - RTS

6 - CTS

8 - CTS

Prepare um conector RJ12 com os pinos 2 (RXD) e 3 (TXD) interligados e encaixe no rdio CLIENTE. O objetivo retransmitir todos os bytes recebidos. Rdio RJ12 2 - RXD

3 - TXD

5 - GND

4 - RTS

6 - CTS Servidor Cliente

COM1 RJ12

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

44

Ligue os rdios s suas fontes de alimentao, instale as antenas de teste e afaste os mesmo de pelo menos 2 metros, pois o excesso de sinal causa falhas de comunicao.

9.5

Teste de ECO Utilizando o Software AirTest

Para realizar o teste de ECO, pode ser utilizado qualquer programa de comunicao serial, como por exemplo o Hyper Terminal do Windows. Nosso teste baseado no programa AirTest que a Teledesign disponibiliza em seu site www.teledesignsystems.com e que pode ser baixado sem custos. Depois de instalado o AirTest, a tela inicial aparece assim.

Na barra de menus clique em Setup para ter acesso a janela ao lado. Marque o Repeated Message: Digite uma mensagem a ser transmitida como a do exemplo. Marque a caixa Send and Receive Packet Number para que cada mensagem seja transmitida com um nmero seqencial. Clique na aba Port para ativar a prxima tela.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

45

Esta janela permite ajustar os parmetros seriais. Ajuste como na figura para 9600 bps, sem paridade, 1 stop bit e 8 bits de dados. Clique na aba Control Line.

A aba Control Line permite ajustar as linhas de controle. Desmarque a caixa Active transmit with RTS. Clique no boto OK para efetivar os ajustes e voltar para a tela de monitorao.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

46

Na tela de monitorao, clique no boto Start transmission para iniciar o teste. Na janela Tx Data, ir aparecer a mensagem digitada sendo transmitida com um contador incremental para cada transmisso. Se estiver tudo correto, a mensagem transmitida ser repetida na janela Rx Data como na figura abaixo. Com este teste, foi verificado o funcionamento dos rdios passando pelas portas seriais em 9600 bps, sem paridade. O teste pode ser repetido para outros ajustes seriais. Procure testar dentro das condies que os equipamentos definitivos iro utilizar.

Outros softwares para teste de comunicao serial podem ser encontrados em: COMPort TEST - RS232 - Serial Com Port Test Freeware - http://interface.centraltreasure.com/free_comport_software.html#download ComSerialTest - http://www.microridge.com/comtestserial.htm

9.6

Teste com os Equipamentos Definitivos

Vamos supor que os rdios se destinem a interligar um micro rodando um software supervisrio e um clp. Sugerimos testar diretamente, via cabo, a comunicao entre o micro e o clp para ter certeza de que o supervisrio se comunica com o clp. Tendo funcionado isto, substitua a conexo via cabos pelos rdios. Se a comunicao no ocorrer, revise primeiramente o time-out de comunicao ajustado no supervisrio. Depois, revise os cabos. Na comunicao por rdio, existe um tempo entre o dado sair do equipamento origem e chegar ao equipamento destino. A resposta enviada pelo clp tambm sofre atraso. Por isso, em comunicaes via rdio necessrio ajustar o time-out de comunicao. Experimente inicialmente ajustar o time-out em 100ms e depois ajuste para o melhor desempenho. Otimize a comunicao via rdio, agrupando os TAGS em blocos de comunicao quando utilizar comunicao via rdio. Comunicao por TAGS individuais pode resultar muito lenta.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

47

10. Teste de Enlace em Distncia Estendida


O teste descrito abaixo relata uma situao real utilizando antenas facilmente encontradas no mercado. O teste foi realizado em Porto Alegre / RS, em uma situao com visada direta entre os pontos. No Morro Santa Tereza foi utilizada uma antena omni Aqurio modelo MM-2415 com 15 dBi de ganho. No ponto de teste foi utilizada uma antena Aqurio modelo MM-2425 com 25 dBi de ganho. Utilizando o software X-CTU foi medido um sinal de recepo de -65 dBm. A intensidade do sinal suficiente para estabelecer comunicao mas a margem pequena. Este teste serve to somente para avaliar a capacidade de comunicao em distncia maiores do que aquelas para as quais o transceptor foi projetado. A utilizao de rdio RM2070, assim como de todo equipamento de radio comunicao, deve obedecer as normas locais que definem as antenas apropriadas e permitidas. No Brasil, a Anatel a agncia que normatiza e regula a utilizao de equipamentos de radio comunicao.

Alfacomp RM2070 - Transceptor ZigBee 2.4GHz - Manual do Usurio

48