18
____________________________________________________________________________ ____________________________________________________________________________________________________________________ 1 Rev01 Application Note FBee Utilizando a pilha MiWi Rede P2P REV01_2009

Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 1 ‐ Rev01    

Application Note FBee

Utilizando a pilha MiWi

Rede P2P REV01_2009

Page 2: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 2 ‐ Rev01    

1. Introdução Aplicações com redes sem fio vêm tornando-se bastante comum. Desde projetos específicos

de consumidores até aplicações industriais, tem-se criado enorme expectativa quanto à

capacidade dos dispositivos em se comunicarem wireless, ou seja, sem fio. O maior desafio é

conseguir atender a essa s expectativas e apresentar aos consumidores um baixo custo para o

desenvolvimento de seus projetos. Utilizando o MiWi™ Wireless Networking Protocol da

Microchip , juntamente com o FBee Kit, é possível realizar esta tão desejada aplicação. O

MiWi™ Wireless Networking Protocol é um simples e gratuito protocolo desenvolvido para

baixa taxa de dados, pequena distância, e redes de baixo custo. Baseada no IEEE 802.15.4™

para redes sem fio pessoal (WPANs), a pilha MiWi fornece um modo alternativo de

comunicação sem fio de fácil uso. É possível realizar aplicações de redes de pequeno porte,

com alguns hops (pulos) entre os dispositivos da rede, usando o transceptor MRF24J40 da

Microchip para redes que obedecem ao padrão IEEE 802.15.4.

Este documento faz a apresentação de exemplos util izando o FBee Kit, e ensina como utilizar a

pilha MiWi P2P da Microchip para determinadas aplicações da rede ZigBee e MiWi. Para fazer

um estudo e entender o funcionamento mais detalhado da pilha Miwi P2P, é necessário que o

leitor estude o documento “AN1204 Microchip MiWi P2P Wireless Protocol” que pode ser

encontrado no site da Fractum (www.fractum.com.br/FBee/download). É necessário também

que o leitor tenha um entendimento da linguagem C, e uma noção de como trabalhar com

microcontroladores.

Page 3: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 3 ‐ Rev01    

2. O FBee kit O FBee Kit é uma plataforma de desenvolvimento de aplicações com o FBee. Ela possui um

microcontrolador da Microchip da família 18F, interface de comunicação serial e conexão com

a bateria. O Kit ainda inclui um conjunto de exemplos de aplicações prontas utilizando a pilha

MiWi para implementação rápida e fácil das redes P2P, estrela e Mesh. Com o FBee Kit você

agiliza o desenvolvimento de seu produto. Todos os exemplos deste documento são baseados

no FBee Kit.

O FBee Kit é composto de duas placas de aplicação, duas placas FBee Wipe com adaptador,

um cabo de conexão serial RS232, duas baterias, dois conectores para bateria e um CD com

todas os documentos e exemplos de aplicações.

Page 4: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 4 ‐ Rev01    

3. Protocolo MiWi P2P™ Para usar o MiWi Wireless Networking Protocol Stack P2P é necessário que o usuário instale

uma versão do MPLAB da Microchip (www.microchip.com) , o compilador C18

(www.microchip.com), o arquivo do protocolo MiWi e os arquivos de definições no computador.

Este documento de aplicação foca na simplicidade da pilha MiWi™ P2P. Com menos de 30

linhas de programa na camada de aplicação para os dois dispositivos da rede, é possível criar

uma estável comunicação wireless.

Será demonstrado neste arquivo as principais características da pilha MiWi™ P2P, como:

Criar uma conexão automática entre dois dispositivos;

Enviar pacotes de dados broadcast;

Enviar pacotes de dados para um dispositivo apenas (unicast);

Aplicar código de segurança para os pacotes;

Util izar o software ZENA para configuração da rede.

O primeiro passo é instalar a pilha MiWi™ P2P em seu computador. O arquivo executável

chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum

(www.fractum.com.br\Fbee\download). Após executar o arquivo será criado todo o diretório

necessário para a pilha, que estará dentro da pasta Microchip Solutions\P2P. Para executar a

aplicação, uti lizaremos os programas Simple Example P2P para os nós 1 e 2.

Page 5: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 5 ‐ Rev01    

3..1. Conexão automática entre dois dispositiv os

Util izando o código Simple Example P2P, faremos uma aplicação básica onde criaremos uma

conexão P2P seguindo a seqüência que o fluxograma abaixo mostra:

O fluxograma pode ser executado da seguinte forma:

Inicialização da placa e da pilha Miwi:

voi d main( voi d) {

BoardInit();

ConsoleInit();

P2PInit(); INTCONbits.GIEH = 1;

ConsolePutROMString((ROM char*)"\r\nIniciando P2P D emo...");

LED_1 = 0;

Seleção do canal de operação, habilita e cria nova conexão:

SetChannel(myChannel);

EnableNewConnec tion();

CreateNewConnection( 2);

Aplicação para transmissão e r ecepção:

ConsolePutROMString((ROM char*)"\r\nFractum RF P2P Application\n\n");

while(1){

Page 6: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 6 ‐ Rev01    

if(ReceivedPacket( )) //se há pacote de dados a ser executado, faz:

{

if(rxFrame.PayLoad[0]==0x01)LED _1=1; //acende led caso dado = 1

if(rxFrame.PayLoad[0]==0x00)LED _1=0; //apaga led caso dado = 0 DiscardPacket(); //discarta pacote par a que novos sej am r ecebi dos

}

else //se não há pacote de dados a ser executado, faz:

{

if (!PUSH_BUTTON_1)//se a chave 1 for pressi onada, envia dado para acender led {

FlushTx(); //limpa o buffer de transmissao

WriteData(0x01); //escreve o dado 1 no buffer de transmissão

UnicastConnecti on(0, FALSE, TRUE); //envia dados unicas t

} if (!PUSH_BUTTON_2)//se a chave 2 for pressi onada, envia dado para apagar led

{

FlushTx();

WriteData(0x00);

BroadcastPacket( myPANID, FALSE, F ALSE); }

}

}

}

#endif / /fim void main ( void)

Colocando estas linhas de código no programa, foi criada uma conexão automática entre dois

dispositivos. Esta é a aplicação mais básica que podemos criar. Lembre-se que este código

substitui a parte main do programa antigo.

Outra alteração necessária é a configuração do oscilador. O registro CONFIG1H é responsável

pelo controle do tipo de oscilador que será utilizado pelo microcontrolador. Esta alteração é

necessária pois o programa foi feito para cristal de 4MHz e o FBEE Kit trabalha com cristal de

20MHz. Será necessário então mudarmos o valor do registro CONFIG1H para 0b00000010

para trabalharmos com oscilador HS. Este registro se encontra no arquivo HardwareProfile.c.

Page 7: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 7 ‐ Rev01    

Essas alterações devem ser realizadas para os dois nós da rede, nos seguintes projetos:

C:\Microchip Solutions\P2P\P2P Node 1

C:\Microchip Solutions\P2P\P2P Node 2

Após gravar os dois dispositivos da rede, inicie o nó 1 da rede, e depois o nó 2. O LED2 será

aceso das duas placas, indicando que uma conexão foi criada. Apertando a chave SW3, o

LED1 da outra placa irá acender para indicar que um pacote de dados unicast foi transmitido.

Apertando a chave SW2, o LED1 da outra placa apagará, para indicar que um pacote de dados

broadcast foi transmitido.

Page 8: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 8 ‐ Rev01    

Se a porta serial RS232 for conectada ao PC, o hyper terminal pode ser aberto para ver

informações da conexão P2P e do dispositivo peer. O hyper terminal deve ser configurado para

trabalhar com 19200bps, 8 bits de dados, sem paridade, 1 bit de stop e nenhum controle de

fluxo.

3..2. Env iando pacotes Broadcast Para enviar um pacote de dados broadcast, utilizaremos a função BroadcastPacket. Ela possui

três parâmetros de entrada. O primeiro parâmetro é o identificador PAN dos dispositivos; o

segundo é um parâmetro BOOLEAN que indica se é um frame de comando; e o terceiro é um

parâmetro BOOLEAN que indica se o pacote apresenta código de segurança ou não. Se o

código de segurança é exigido, o security level e security key são definidos no P2PDefs.h.

Ex: BroadcastPacket(myPANID, FALSE, FALSE);

Se o pacote de dados for para todos os PANs da rede, será necessário o identificador 0xFFFF,

para remover a restrição de comunicação entre PANs. É importante lembrar que todos os

dispositivos da rede apresentam um PAN ID, atribuído pelo coordenador que é responsável por

eles. Os dispositivos que apresentam um coordenador responsável em comum têm o mesmo

PAN ID.

Page 9: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 9 ‐ Rev01    

3..3. Env iando pacotes de dados para um dispositivo apenas (unicast) Para enviar um pacote de dados unicast, uti lizaremos a função UnicastConnection, assim como

é feito no programa exemplo mostrado acima. Os dados da conexão P2P que foram gravados

inicialmente contêm informações do dispositivo da conexão P2P e os usa para mandar pacotes

de dados para seu destino.

Ela possui três parâmetros de entrada. O primeiro parâmetro é o que contém as informações

das conexões P2P para um dos dispositivos; o segundo é um parâmetro BOOLEAN que indica

se é um pacote de comando; e o terceiro é um parâmetro BOOLEAN que indica se o pacote

apresenta código de segurança ou não. Se o código de segurança é exigido, o security level e

security key são definidos no P2PDefs.h.

Ex: UnicastConnection (0, FALSE, TRUE);

Outra forma de enviar mensagens Unicast é pela função UnicastLongAddress. Ao invés de

forncer o indicador da conexão P2P do dispositivo, esta função requer o identificar PAN da

rede e o long address (endereço MAC) do dispositivo de destino.

3..4. Código de segurança Comunicações wireless exigem que as informações que trafegam no ar possam ser

encaminhadas com segurança. A pilha MiWi P2P provê sete modos de segurança de acordo

com a norma IEE 802.15.4. Os modos de segurança podem ser classificados em três grupos:

AES-CTR, AES_CBC_MAC e AES-CCM. Para maiores informações sobre estes modos de

segurança consulte o arquivo “AN1204 Microchip MiWi P2P Wireless Protocol” que pode ser

encontrado no site da Fractum (WWW.fractumrf.com/download). Para ativar o modo de

segurança, “ENABLE_SECURITY” deve ser definido no arquivo P2PDefs.h. Este arquivo é

gerado automaticamente pela ferramenta ZENA ou pode ser feito manualmente.

Page 10: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 10 ‐ Rev01    

4. Usando o analisador ZENA como ferramenta de configuração Como suporte ao desenvolvimento de aplicações com o protocolo MiWi, a Microchip fornece

um analisador de rede de baixo custo chamado ZENA. O software ZENA também contém uma

ferramenta para criação de arquivos para configuração específica da aplicação do usuário. O

software ZENA é fornecido sem nenhum custo para a instalação

(www.fractum.com.br/FBee/download). Para maiores informações em como util izar esta

importante ferramenta, consulte o documento AN965 “ZENA™ Wireless Network Analyzer

User’s Guide” (www.fractum.com.br/FBee/download).

O primeiro passo é realizar o donwload do Zena em seu computador. O arquivo executável

chama-se Zena v3.0 e pode ser baixado gratuitamente no site da Fractum

(www.fractum.com.br\Fbee\download). Após descompactar a pasta execute o arquivo Zena

v3.0.

O analisador ZENA é uma ferramenta que auxilia a configuração da pilha P2P gerando

automaticamente o arquivo cabeçalho necessário para a sua aplicação. Para começar a

configuração da pilha pelo analisador ZENA, selecione MiWi P2P Tools>StackConfiguration na

janela principal. A janela de configuração da pilha para o protocolo MiWi P2P será mostrada, e

por meio das opções disponíveis no menu principal, é possível fazer essa configuração. O

ZENA irá habilitar/desabilitar certas opções dependendo das seleções feitas. Além disso, todas

as opções habilitadas irão conter valores padrões já definidos. Para entender todas as opções

e suas funções, é recomendado fazer um estudo detalhado do documento AN1204 “Microchip

MiWi P2P Wireless Protocol”. Depois de entender a funcionalidade das opções, a ferramenta

de configuração da pilha P2P ZENA pode gerar o arquivo que será util izado pela pilha.

Page 11: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 11 ‐ Rev01    

4..1. Especificando as informações do dispositivo da rede P2P Selecione a janela P2P Device.

Configurações

MAC Address: cada dispositivo da rede MiWi P2P deve possuir seu próprio endereço MAC.

IEEE Device Type: seleciona se sua aplicação é um Full Function Device (FFD) ou um

Reduced Function Device (RFD). A diferença entre um RFD e um FFD no protocolo MiWi é que

um RFD entra em modo sleep periodicamente e então pode ser alimentado por uma bateria.

Data Polling: esta opção habilita o RFD a requisitar dados do seu respectivo dispositivo FFD.

Esta opção precisa ser verificada se o RFD pode receber mensagens de outros dispositivos.

Para maiores informações, ver AN1204, “MiWi P2P Wireless Protocol”.

Page 12: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 12 ‐ Rev01    

4..2. Especificando as informações do Transceptor Selecione a janela Transceiver.

Configurações:

Transceiver: seleciona um dos transceptores que a pilha suporta.

Frequency Band: esta janela mostra as bandas de freqüência disponíveis para o transceptor

selecionado. Se o transceptor suporta apenas uma única banda de freqüência, esta freqüência

será mostrada na janela de opções.

Pin Assignments: a pilha exige certos pinos de E/S para a interface com o transceptor.

Os pinos já definidos são compatíveis com o FBee Kit, por isso, não é necessário que

alterações sejam feitas.

Page 13: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 13 ‐ Rev01    

4..3. Especificando as informações de segurança Selecione a janela Security.

Configurações:

Security Capable: selecione esta opção para habilitar a segurança dos pacotes na pilha MiWi

P2P.

Security Key: este é a “chave de segurança” de 16 bits para o mecanismo de segurança AES,

juntamente com a seqüência de números de segurança.

Security Level: seleciona o nível de segurança IEEE definido na norma IEEE 802.14.4™

Page 14: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 14 ‐ Rev01    

4..4. Especificando as informações das camadas MAC e NWK Selecione a janela NWK/MAC.

Esta janela é usada para configurar as camadas da pilha NWK (Network) e MAC (Medium

Access Controller). Muitas das opões desta janela são habilitadas ou desabilitas baseadas no

“IEEE Device Type” especificada na janela P2P Device.

Esta janela é usada para configurar as seguintes opções:

Transmit Buffer Size (bytes): determine o número de bytes para a mensagem transmitida de

maior tamanho. O maior número de bytes possível é 127.

Receive Buffer Size(bytes): determine o número de bytes para a mensagem recebida de maior

tamanho.

Indirect Buffer Management: esta opção é disponível para FFDs definidas na janela P2P

Device. Se o dispositivo é capaz de trabalhar com mensagens indiretas, as opções Buffered

Indirect Messages e Indirect Buffer Timeout devem ser definidas.

PAN Identifier: define o PAN ID da rede (Personal Area Network identifier) usado na pilha

MiWi™ P2P.

Connections Table Size: define o número máximo de conexões P2P que o dispositivo pode

manter.

Page 15: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 15 ‐ Rev01    

Additional Connection Payload (bytes): esta é uma informação adicional a ser tran smitida

enquanto a conexão se estabil iza para identificar o dispositivo. Esta é uma opção específica da

aplicação do usuário, e a pilha MiWi P2P não irá util izá-la.

Support Active Scan Checking: esta opção permitirá que a pilha MiWi P2P faça o active scan

para adquirir todos os MiWi P2P PANs da vizinhança.

Smallest Program Size Checking: esta opção irá habilitar a pilha MiWi P2P para encolher ao

máximo o tamanho de memória que será utilizado por ela. Certas funcionalidades nste modo

serão desabilitadas, assim como a comunicação inter PAN.

Support Energy Scan: esta janela sera habilitada somente se o dispositivo for um FFD.

Selecionando esta opção, a pilha MiWi P2P irá executar o sacn de detecção de energia

(energy detection scan) para pesquisar o nível de ruído em diferentes freqüências. Esta função

ajudará a determinar o melhor canal a ser utilizado.

Support Frequency Agility: habilita o dispositivo para mudar de canal enquanto estiver

operando para se adaptar as mudanças de nível de ruído no meio ambiente. Se o dispositivo

for um FFD, e se o Support Energy Scan estiver habilitado, a opção Frequency Agility Initiator

poderá ser habilitada para permitir a função de frequency agil ity.

Page 16: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 16 ‐ Rev01    

4..5. Especificando as informações do Microcontrolador PIC Selecione a janela PIC.

Target Device Family: seleciona a família do processador da aplicação.

Clock Frequency (Hz): especifica a frequência de clock de entrada. Para o FBee Kit, este valor

é de 20MHz.

Output Stack Messages to UART: esta opção habilia mensagens a serem enviadas pela UART

caso uma comunicação com o portal RS232 steja sendo usada. Para isso, determine a taxa de

bits de comunicação desejada.

Page 17: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 17 ‐ Rev01    

4..6. Gerando o arquiv o de configuração: Quando todas as opções forem configuradas corretamente, gere o arquivo de configuração

clicando em Generate Files.

Selecione a janela NWK/MAC. O analisador ZENA irá validar suas configurações verificando se

todos os campos foram preenchidos corretamente. Caso validado, o analisador ZENA irá criar

o arquivo de configuração da pilha P2PDefs.h. O arquivo contém a hora e a data estampados

no arquivo e deve ser incluído no projeto.

Page 18: Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado gratuitamente no site da Fractum (\Fbee\download). Após executar o arquivo será

____________________________________________________________________________

 

____________________________________________________________________________________________________________________                                          ‐ 18 ‐ Rev01    

SUPORTE DE ATENDIMENTO:

Fractum Indústria e Comércio de Equipamentos Eletrônicos LTDA

Av. João de Camargo 510 Pr. 5 Sl. 3

Santa Rita do Sapucaí-MG

CEP 37540-000

TEL: 55 35 3471 9365

Site: www.fractum.com.br

Email: [email protected]