Escolar Documentos
Profissional Documentos
Cultura Documentos
para Sensores
- aos meus orientadores, Prof. Jorge Gomes Barbosa e Prof. Miguel Velhote
Correia, por toda a ajuda prestada ao longo deste trabalho;
- aos Professores Jos Carlos Alves e Joo Paulo Sousa, pela disponibilidade na
cedncia de instalaes e equipamento.
Por fim, ainda um ltimo agradecimento aos meus pais e aos meus amigos,
pelo incondicional apoio em cada momento desta jornada.
In the course of the latest years one has seen an enormous increase of
devices of communication by radiofrequency, which appear in the most different
areas and this kind of technology is entering more and more in the daily life of
people and industry.
The networks devoted to industrial communication, with conveyance of
information related to sensors (of weight, temperature, humidity, etc.) have features
that are very different from personal or enterprise networks to the transmission of
voice and data.
It was in a concept of a production line that this work had its development,
trying to identify the needs of those same industrial networks, their special features
and, through investigation and development, to know which technology and
hardware would come to a suitable solution.
The protocol ZigBeeTM, launched in 27th June 2005, its a protocol aimed at a
wireless communication under the binomial: low cost / low data rate, supported by
the standard IEEE 802.15.4 and appearing under the responsibility of
ZigBeeAlliance. This alliance, on grouping different companies of this technological
area, also shows an aim of this protocol: the standardization instead of owner
protocols that existed before.
After a detailed search about this protocol, in which other different
technologies area compared, it was made an analysis of the available devices for
the development of a solution of communication.
The development of this project is based on a PICDEM ZTM of Microchip,
although at first it was selected a solution based on Maxstreams XBee transceiver.
This report aims at presenting the whole effort used during the making of this
project, showing at the same time all the face difficulties.
As there were problems caused by Microchip ZigBee stack, which gave
origin to some instability in the phasis of development of the project, some options
are suggested for the evolution of this project, as well as, just to conclude, a short
reflection about the maturing of this technology.
5 CONCLUSO ..................................................................................................... 65
7 BIBLIOGRAFIA................................................................................................... 71
A. ANEXOS ........................................................................................................... 73
A.1 Balana Mettler-Toledo Spider 1 .......................................................... 73
A.1.1 Configurao Comunicao-Srie............................................ 73
A.1.2 Parametrizao do Equipamento ............................................. 74
A.1.3 Configurao do Equipamento Interface / Comunicao ...... 76
A.2 Cdigo realizado .................................................................................. 79
A.2.1 Escrita Porta-Srie.................................................................... 79
A.2.2 Leitura Porta-Srie.................................................................... 79
A.2.3 Leitura Porta-Srie com interrupo......................................... 80
A.2.4 Comunicao entre ns ZigBee ............................................... 83
PILHA
ESPECIFICAO DBITO CONSUMO VANTAGENS PRINCIPAIS APLICAES
PROTOCOLAR
Interoperabilidade,
Bluetooth >400mA TX, Perifricos de PC e
1Mbps 250KB substituio de
(IEEE 802.15.1) standby 0.20mA Telemveis, PDAs
cabos
Consumo, Controlos Remoto,
ZigBee 30mA TX,
100kbps 32KB Latncia, N. de Sensores, Dispositivos
(IEEE 802.15.4) standby 0.20A
Ns, Fiabilidade, alimentados por bateria
1
As tecnologias Ultra Wide Band (UWB) e GSM / UMTS (2.5G / 3G), embora representadas, pelas
suas caractersticas no foram objecto de estudo.
ZigBee:
Bluetooth:
elevado QoS;
elevada fiabilidade;
ESTRELA (Star)
MALHA (Mesh)
Tipo de dispositivo
Dispositivo fsico associado Funo
(IEEE 802.15.4)
Profile
um acordo de mensagens, formatos de mensagens e procedimentos
descrevendo a funo dos dispositivos e suas interfaces de maneira a criar uma
Atributo
Cada bloco de dados passado entre dispositivos atravs de comandos. O
formato de cada atributo (tipo de dados) definido no profile. Cada atributo ter de
ter um identificador prprio definido no profile.
Cluster
Possui um grupo de atributos e pode ser Mandatory (tendo que estar
presente em todos os dispositivos) ou Opcional conforme o estabelecido no profile.
As interfaces so definidas entre clusters. Cada cluster ter de ter um identificador
prprio definido no profile. Cada cluster s poder ser de entrada ou sada,
definindo-se isto no descritor simples. Pode haver at 256 clusters cada um com
65.536 Atributos.
Endpoint
Bloco funcional de cdigo que suporta um ou mais clusters. A cada endpoint
atribudo um endereo em adio aos endereos nicos do dispositivo IEEE de
64 bits e de Rede (NWK) de 16 bits.
Descrio do dispositivo
Descreve um dispositivo dentro de um domnio e/ou segmento de aplicao.
Um conjunto destes descritores forma um profile. Possui um identificador nico
(trocado no processo de descoberta).
N
Uma coleco de Descries de Dispositivos e Aplicaes independentes
residentes numa nica unidade rdio.
Descritores
Estruturas de dados usados pelos dispositivos para se descreverem,
constitudas por 5 descritores individuais como mostra a Tabela 2.3 Descritores
ZigBee. Alguns tm que existir sempre obrigatoriamente (mandatory) e outros so
Descritor de N
Nos seus campos indica o tipo de dispositivo (coordenador, router ou end
device), as capacidades da APS, a frequncia usada, as caractersticas da MAC
(IEEE 802.15.4), o cdigo do fabricante, o tamanho mximo do buffer e o tamanho
mximo de transferncia.
Descritor de potncia do N
Especifica o modo actual de poupana de energia, as fontes de alimentao
disponveis, a fonte actual e o nvel de carga para o caso de a fonte ser uma
bateria.
Descritor Simples
Especifica informao para cada endpoint do n em questo. Para cada
endpoint definido o seu nmero, o identificador de profile, especificada a
descrio de dispositivo suportada neste endpoint em questo, a verso da
descrio de dispositivo, indicado se so usados o descritor Complexo (Complex)
ou de Utilizador (User), o nmero de clusters de entrada, a lista dos clusters de
entrada suportados por este endpoint, o nmero de clusters de sada e lista dos
clusters de sada.
Descritor Complexo
de uso opcional e possui os campos de lngua e cdigo de caracteres
usados por ele prprio, o nome do fabricante, o nome do modelo do dispositivo, o
nmero de srie, o URL para mais informaes, o cone do dispositivo e o URL do
cone.
Descritor de Utilizador
Contm apenas um campo (16 octetos) que permite ao utilizador final
identificar o dispositivo dando-lhe o nome que pretender.
Localizao de Dispositivo
Processo segundo o qual um dispositivo ZigBee pode descobrir outros
dispositivos ZigBee enviando mensagens de pedido de identificao por broadcast
ou unicast. Pode haver pedidos do endereo IEEE (j conhecido o NWK e por
unicast) ou NWK (por broadcast e transporta o endereo IEEE). No caso do
dispositivo ser um coordenador ou router, para alm do seu endereo, enviar
tambm os endereos dos dispositivos a ele associados.
Service Discovery
um processo onde os servios disponveis nos endpoints de um
dispositivo so descobertos por dispositivos externos. So rastreados todos os
endpoints (por unicast) ou usado o servio de match ( enviada uma mensagem
de difuso e s respondem os dispositivos em que os critrios coincidam), sendo
usados todos os descritores do endpoint. No caso de haver dispositivos em sleep-
mode, o seu coordenador ou router ZigBee poder responder por eles. Existem os
seguintes tipos de pedidos:
Binding
Criao de uma ligao lgica unidireccional entre um endpoint/cluster-fonte
e um endpoint de destino. executado aps ser estabelecido uma ligao de
comunicao. Estas informaes de ligao de ns armazenada na Binding Table
existente no coordenador.
Tabela de Binding
Cada entrada desta tabela constituda pelo endereo, identificador do
endpoint e identificador do cluster do dispositivo fonte e pelos endereo e endpoint
do(s) dispositivo(s) de destino desta ligao de binding. Tem tamanho mximo pr
estabelecido.
Servios de Dados
A application framework fornece aos seus objectos de aplicao dois
servios de dados:
Tipo de Comando
Indica o que a aplicao dever fazer com a informao da trama: Set;
Event; Get + ACK; Set + ACK; Event + ACK; Get Response; Event Response.
Identificao do Atributo
Indica o atributo alvo.
MSG
O servio de Message usado para compatibilizar protocolos proprietrios
que no mapeiem bem KVPs. transportada pelo mecanismo do KVP, tendo a
diferena de no assumir contedo na trama de dados APS estrutura de forma
livre.
Cada trama contm a seguinte informao:
[11] e [12]
Fig. 3.3 Data Hunter Tick RS232 Parasitically Powered Data Radio
O custo deste dispositivo situa-se abaixo dos 1,50, pelo que no se revela
um componente dispendioso.
Foi nesta fase que se comeou a verificar que, apesar de o protocolo ZigBee
ter sido j oficialmente lanado h cerca de 2 anos, ainda no se encontra
consolidado no mercado quer porque o hardware disponvel frequentemente
possui firmware ainda verso beta ou ainda se encontra em desenvolvimento, quer
interface RS-232;
4 timers;
20 fontes de interrupo;
5 portas bidireccionais;
NWK (zNWK.*)
MAC (zMAC.*)
PHY (zPHY.h)
Dado que se pretende uma interaco com os sensores aos quais se acople
os mdulos, lendo os dados provenientes dos mesmos e comunicando-os a um
mdulo central, tornou-se imperativo que a familiarizao com a programao do
PIC e com as ferramentas de desenvolvimento MPLAB fosse iniciada com a
interaco da porta-srie.
Fosc 4 10 6
baud rate = sbprg = 12
16 ( sbprg + 1) 9600 16 1
ZigBeeReady()?
False
True
Invocar ZigBeeTasks()
Algo tambm bastante til, ainda que eventualmente morosa, ser uma
anlise cuidadosa do cdigo da ltima verso da pilha protocolar e questionar at
que ponto seria possvel a sua adaptao ao transceiver Chipcon.
Por outro lado, tambm ser de interesse o desenvolvimento de software
capaz de gerir, no computador ao qual se acople o mdulo central (Coordinator),
toda a informao que este rene, provindo dos diversos dispositivos Endpoint. Ou
seja, a utilizao de uma base de dados, que permite armazenar a informao
sensorizada e, eventualmente, a sua utilizao no mbito de processos de gesto
e controlo. De referir que, numa verso eventualmente simplista, para efeitos de
registo, esto disponveis no mercado pequenos programas denominados por
loggers, os quais se encarregam da escrita num ficheiro de toda a informao
recepcionada via porta-srie a pode, por exemplo, ser posteriormente sujeita a
tratamento. Disso exemplo o programa Advanced Serial Data Logger da
AGGSoft, que permite inclusivamente a monitorizao simultnea de vrias
comunicaes, assim como uma perfeita interaco em ambiente Windows e
[13] Microchip
PIC18F2525/2620/4525/4620 Data Sheet
[14] Maxstream
XBee/XBee-PRO OEM RF Modules Data Sheet
Fabricante: Mettler-Toledo
Modelo: [Prato+Terminal] Spider 1-15/A
Boto 1
Print
Funciona como validao de opo.
Boto 2
Tara ,
Funciona como boto de rejeio da opo oferecida (efectuando
portanto a rotao de menu, ou seja, passando sucessivamente
opo seguinte).
Estrutura do Menu:
AZero
On
Off
Vibration
High
Mdium
Low
Process
Universal
Absolute
Dosing
Interface
Communication [parmetros da comunicao portasrie]
Protocol
XOnOff
No
Parity
Odd
Even
7 No Parity
8 No Parity
Baud Rate
300
List
Print1
Reset
End
Comando List:
#include <p18cxxx.h>
#include <string.h>
#include <usart.h>
void main()
{
OpenUSART(
USART_TX_INT_OFF & // interrupcao transm off
USART_RX_INT_OFF & // interrupcao recepcao off
USART_ASYNCH_MODE & //modo assincrono
USART_EIGHT_BIT & // 8-bit
USART_CONT_RX & // recepcao continua
USART_BRGH_HIGH, // baudrate elevada
12 // configuracao para 19200bps (oscilador de 4Mhz)
);
while(1)
{
while( ! PORTAbits.RA0 ); //wait for RA0 high
WriteUSART( PORTD ); //write value of PORTD
if(PORTD == 0x80) // check for termination
break; // value
}
CloseUSART();
}
void main(void)
{
char inputstr[3];
int control=0;
OpenUSART(
USART_TX_INT_OFF & // interrupcao transm off
USART_RX_INT_OFF & // interrupcao recepcao on
while (control==0){
//escrita na usart
putrsUSART((const far rom char *) "\r\nDIGITE 2
CARACTERES:\r\n ");
while(BusyUSART());
while (!DataRdyUSART());
};
Programa Genrico
#include <p18cxxx.h>
#include <stdio.h>
#include <string.h>
#include <usart.h>
void rx_handler(void);
#define BUF_SIZE 25
void main(void)
{
OpenUSART(
USART_TX_INT_OFF & // interrupcao transm off
USART_RX_INT_ON & // interrupcao recepcao on
USART_ASYNCH_MODE & //modo assincrono
USART_EIGHT_BIT & // 8-bit
USART_CONT_RX & // recepcao continua
USART_BRGH_HIGH, // baudrate elevada
12 // configuracao para 19200bps (oscilador de 4Mhz)
);
while(1);
while(BusyUSART());
CloseUSART();
#include <p18cxxx.h>
#include <stdio.h>
#include <string.h>
#include <usart.h>
/* PROGRAMA PARA LEITURA DOS DADOS ENVIADOS PELA BALANA - 9600BPS COM
INTERRUPCAO de RX */
void rx_handler(void);
void main(void)
{
OpenUSART(
USART_TX_INT_OFF & // interrupcao transm off
USART_RX_INT_ON & // interrupcao recepcao on
USART_ASYNCH_MODE & //modo assincrono
USART_EIGHT_BIT & // 8-bit
USART_CONT_RX & // recepcao continua
USART_BRGH_HIGH, // baudrate elevada
25 // configuracao para 9600bps (oscilador de 4Mhz)
);
RCONbits.IPEN=1;
IPR1bits.RCIP=1;
INTCONbits.GIEH=1;
void rx_handler(void);
if(ZigBeeReady())
{
ZigBeeBlockTx();
params.APSDE_DATA_request.DstAddrMode=APS_ADDRESS_16_BIT;
params.APSDE_DATA_request.DstEndpoint = destinationEndpoint;
params.APSDE_DATA_request.DstAddress.ShortAddr = destinationAddress;
params.APSDE_DATA_request.ProfileId.Val = MY_PROFILE_ID;
//configuracoes
params.APSDE_DATA_request.RadiusCounter = DEFAULT_RADIUS;
params.APSDE_DATA_request.DiscoverRoute = ROUTE_DISCOVERY_ENABLE;
params.APSDE_DATA_request.TxOptions.Val = 0;
// EP_SENSOR - nome do endpoint do sensor
params.APSDE_DATA_request.SrcEndpoint = EP_SENSOR;
params.APSDE_DATA_request.ClusterId = OnOffSRC_CLUSTER;
// cluster com o mm nome do atributo e que seja correspondente
currentPrimitive = APSDE_DATA_request;
}