Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado...
Transcript of Utilizando a pilha MiWi REV01 P2P · 2012. 9. 12. · chama-se MiWi P2P-v1.0.1 e pode ser baixado...
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 1 ‐ Rev01
Application Note FBee
Utilizando a pilha MiWi
Rede P2P REV01_2009
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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){
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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”.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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™
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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.
____________________________________________________________________________
____________________________________________________________________________________________________________________ ‐ 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]