____________________________________________________________________________
Application Note FBee
Utilizando
a
pilha
MiWi
Rede P2P
____________________________________________________________________________
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 utilizando 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.
____________________________________________________________________________
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.
____________________________________________________________________________
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;
Utilizar 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, utilizaremos os programas Simple Example P2P para os nós 1 e 2.
____________________________________________________________________________
3..1. Conexão automática entre dois dispositiv os
Utilizando 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(); P2PI nit(); INTCONbits.GIEH = 1;
ConsolePutROMString((ROM char*)"\r\nIniciando P2P D emo..."); LED_1 = 0;
Seleção do c anal de operaç ão, habilita e cria nova c onexão: SetChannel(myChannel);
EnableNewConnec tion(); CreateNewConnection( 2);
Aplicação para trans missão e r ecepç ão:
ConsolePutROMString((ROM char*)"\r\nFractum RF P2P Application\n\n"); while(1){
____________________________________________________________________________
if(ReceivedPac ket( )) //se há pac ote de dados a s er execut ado, f az: {
if(rxFrame.PayLoad[ 0]==0x01)LED _1=1; //acende led cas o dado = 1 if(rxFrame.PayLoad[ 0]==0x00)LED _1=0; // apaga led cas o dado = 0 DiscardPac ket(); //disc arta pac ote par a que novos sej am r ecebi dos }
else //se não há pacot e de dados a ser exec utado, faz: {
if (! PUSH_BUTTON_1)//se a chave 1 f or pressi onada, envia dado para acender led {
FlushTx(); //limpa o buff er de trans missao
WriteDat a(0x01); // escreve o dado 1 no buff er de trans missão UnicastConnecti on(0, FALSE, TRUE); //envia dados unicas t }
if (! PUSH_BUTTON_2)//se a chave 2 f or pressi onada, envia dado para apagar led {
FlushTx(); WriteDat a(0x00);
Broadc astPac ket( 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.
____________________________________________________________________________
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.
____________________________________________________________________________
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.
____________________________________________________________________________
3..3. Env iando pacotes de dados para um dispositivo apenas (unicast)
Para enviar um pacote de dados unicast, utilizaremos 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.
____________________________________________________________________________
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 utilizar 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á utilizado pela pilha.
____________________________________________________________________________
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.
____________________________________________________________________________
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.
____________________________________________________________________________
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.
____________________________________________________________________________
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.
____________________________________________________________________________
Additional Connection Payload (bytes): esta é uma informação adicional a ser tran smitida enquanto a conexão se estabiliza para identificar o dispositivo. Esta é uma opção específica da aplicação do usuário, e a pilha MiWi P2P não irá utilizá-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 agility.
____________________________________________________________________________
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.
____________________________________________________________________________
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.
____________________________________________________________________________
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]