Joel Nuno Silva Alves BIOSWIM - Implementação de rede de ...
Joel Nuno Silva Alves BIOSWIM - Implementação de rede de ...
Joel Nuno Silva Alves BIOSWIM - Implementação de rede de ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>BIOSWIM</strong> - <strong>Implementação</strong> <strong>de</strong> re<strong>de</strong><br />
<strong>de</strong> sensores (BAN) em fato <strong>de</strong> natação<br />
<strong>Joel</strong> <strong>Nuno</strong> <strong>Silva</strong> <strong>Alves</strong><br />
UMinho | 2010<br />
Universida<strong>de</strong> do Minho<br />
Escola <strong>de</strong> Engenharia<br />
<strong>Joel</strong> <strong>Nuno</strong> <strong>Silva</strong> <strong>Alves</strong><br />
<strong>BIOSWIM</strong> - <strong>Implementação</strong> <strong>de</strong> re<strong>de</strong><br />
<strong>de</strong> sensores (BAN) em fato <strong>de</strong> natação<br />
Outubro <strong>de</strong> 2010
Universida<strong>de</strong> do Minho<br />
Escola <strong>de</strong> Engenharia<br />
<strong>Joel</strong> <strong>Nuno</strong> <strong>Silva</strong> <strong>Alves</strong><br />
<strong>BIOSWIM</strong> - <strong>Implementação</strong> <strong>de</strong> re<strong>de</strong><br />
<strong>de</strong> sensores (BAN) em fato <strong>de</strong> natação<br />
Dissertação <strong>de</strong> Mestrado<br />
Ciclo <strong>de</strong> Estudos Integrados Conducentes ao<br />
Grau <strong>de</strong> Mestre em Engenharia Electrónica Industrial e Computadores<br />
Trabalho efectuado sob a orientação <strong>de</strong><br />
Professor Doutor André Paulo <strong>de</strong> Almeida Whiteman<br />
Catarino<br />
Co-Orientador:<br />
Professor Doutor João Monteiro<br />
Outubro <strong>de</strong> 2010
Albert Einstein<br />
"A mente que se abre a uma nova i<strong>de</strong>ia jamais volta ao seu tamanho original."
Agra<strong>de</strong>cimentos<br />
Durante o <strong>de</strong>senvolvimento <strong>de</strong>ste projecto, várias foram as pessoas que ajudaram e<br />
colaboraram na realização <strong>de</strong>sta dissertação. A todos gostaria <strong>de</strong> expressar os mais sinceros<br />
agra<strong>de</strong>cimentos, no entanto gostaria <strong>de</strong> <strong>de</strong>stacar algumas pessoas.<br />
Em primeiro lugar agra<strong>de</strong>ço ao meu orientador, Professor Doutor André Paulo <strong>de</strong> Almeida<br />
Whiteman Catarino, toda a colaboração, <strong>de</strong>dicação e competência <strong>de</strong>monstrada ao longo <strong>de</strong>ste<br />
projecto.<br />
Em segundo lugar agra<strong>de</strong>ço ao Professor Doutor Hél<strong>de</strong>r Manuel Teixeira Carvalho, a<br />
<strong>de</strong>dicação singular a este projecto, sendo todas as sugestões, esclarecimentos e ensinamentos<br />
que me <strong>de</strong>dicou bastante úteis para o <strong>de</strong>senvolvimento <strong>de</strong>sta dissertação.<br />
Agra<strong>de</strong>ço à Universida<strong>de</strong> do Minho em geral, todas as condições que me foram<br />
proporcionadas ao longo do curso, em especial ao <strong>de</strong>partamento <strong>de</strong> Electrónica e ao<br />
<strong>de</strong>partamento <strong>de</strong> Têxtil, o apoio e as facilida<strong>de</strong>s que conce<strong>de</strong>ram para a realização <strong>de</strong>sta<br />
dissertação.<br />
Agra<strong>de</strong>ço também aos meus colegas <strong>de</strong> curso que me acompanharam ao longo <strong>de</strong>stes<br />
últimos anos, pela amiza<strong>de</strong>, companheirismo e cumplicida<strong>de</strong> que <strong>de</strong>monstraram.<br />
Agra<strong>de</strong>ço ainda à minha família e amigos, todo o apoio não só nos últimos anos, como ao<br />
longo <strong>de</strong> toda a minha vida.<br />
Por último, mas não menos importante gostaria <strong>de</strong> agra<strong>de</strong>cer a atenção, força e<br />
compreensão <strong>de</strong>dicada ao longo <strong>de</strong>ste projecto, especialmente quando tudo parecia correr mal, à<br />
minha companheira Cláudia Carneiro.<br />
III
Resumo<br />
Esta dissertação <strong>de</strong>screve o trabalho <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> uma re<strong>de</strong> <strong>de</strong> sensores sem<br />
fios, a utilizar por um sistema <strong>de</strong> monitorização <strong>de</strong> sinais biomédicos, a ser integrado num fato<br />
<strong>de</strong> natação. O sistema <strong>de</strong>verá medir vários parâmetros <strong>de</strong> <strong>de</strong>sempenho, biomecânicos,<br />
fisiológicos e químicos, para posteriormente ser feita uma análise global do comportamento do<br />
indivíduo testado, bem como sinalizar comportamentos anormais.<br />
Para a comunicação <strong>de</strong> dados foi implementada uma re<strong>de</strong> <strong>de</strong> área corporal (Body Area<br />
Network - BAN). O sistema é composto por uma re<strong>de</strong> sem fios em duas versões, uma baseada<br />
na especificação 802.15.4, e outra no protocolo <strong>de</strong> mais alto nível Zigbee, <strong>de</strong>senvolvidos com<br />
base no microcontrolador JN5148, a ZBPro stack da Jennic e o kernell RT JenOs da Jennic. O<br />
sistema adquire, processa e envia os sinais dos sensores que serão ligados à re<strong>de</strong><br />
posteriormente. É composto também por uma aplicação gráfica em computador que representa<br />
os sinais graficamente, faz o controlo dos nós sensores em termos <strong>de</strong> taxa <strong>de</strong> amostragem e faz<br />
o registo e apresentação dos erros que possam surgir na comunicação.<br />
Para efeitos <strong>de</strong> <strong>de</strong>monstração, foi utilizado um sensor específico <strong>de</strong> temperatura<br />
timpânica, do tipo termistor, para medir a temperatura timpânica do atleta ao longo da<br />
activida<strong>de</strong> <strong>de</strong>sportiva, tendo sido <strong>de</strong>senvolvido o respectivo circuito condicionador para o sensor<br />
<strong>de</strong> temperatura, ligado ao dispositivo nó sensor na re<strong>de</strong> sem fios.<br />
O sistema final foi testado com os dispositivos em diferentes posições, bem como com<br />
vários nós sensores a comunicar em simultâneo. Para cada uma das posições relativas entre<br />
dispositivos foi medido a qualida<strong>de</strong> do sinal e registado a frequência <strong>de</strong> erros <strong>de</strong> comunicação.<br />
A implementação com o protocolo Zigbee mostrou-se capaz <strong>de</strong> adquirir e enviar sinais<br />
dos sensores a uma frequência <strong>de</strong> 7 kAmostras/s (correspon<strong>de</strong>ndo a uma taxa final líquida <strong>de</strong><br />
84 kbps) com uma percentagem <strong>de</strong> perdas <strong>de</strong> tramas abaixo dos 4%. Este sistema <strong>de</strong>monstrou<br />
também que suporta a comunicação simultânea <strong>de</strong> pelo menos três nós sensores, a 3000<br />
amostras por segundo (36 kbps), com uma percentagem <strong>de</strong> perdas inferior a 4%.<br />
Palavras-chave:<br />
Re<strong>de</strong> <strong>de</strong> área corporal, BAN, Zigbee, 802.15.4, E-têxteis, Temperatura Timpânica.<br />
IV
Abstract<br />
This dissertation <strong>de</strong>scribes the <strong>de</strong>velopment of a wireless sensor network used by a<br />
biomedical signal monitoring system to be integrated in a swimsuit. The system will measure<br />
various biochemical, physiological and chemical performance parameters, to allow a global<br />
analysis of the behavior of the subject, as well as to signal abnormal behavior.<br />
Data communication consists of a body area network (BAN) materialized as a wireless<br />
network in two versions, one based on the 802.15.4 specification and another on the higher-level<br />
Zigbee protocol, <strong>de</strong>veloped using the Jennic JN5148 microcontroller, Jennics ZBPro stack and<br />
JenOs RT kernell. The system acquires, processes and sends signals from the sensors that will<br />
be connected. It is also composed of a graphical application on a computer that graphically<br />
represents the signals, controls the sensor no<strong>de</strong>s in terms of sampling rate and makes the<br />
recording and presentation of the errors that arise in communication.<br />
For <strong>de</strong>monstration purposes, a specific sensor for tympanic temperature measurement,<br />
of the thermistor type, was used, to measure this variable during sports activity. A specific<br />
conditioning circuit was <strong>de</strong>veloped and connected to a <strong>de</strong>vice no<strong>de</strong> in the wireless sensor<br />
network.<br />
The final system was tested with the <strong>de</strong>vices in different positions, as well as several<br />
sensor no<strong>de</strong>s communicating simultaneously. For each of the relative positions of the <strong>de</strong>vices the<br />
signal quality and frequency of communication errors were recor<strong>de</strong>d.<br />
The version implemented on basis of the Zigbee protocol was able to acquire and send<br />
sensor signals at a frequency of 7 kSamples/s (corresponding to a final net rate of 84 kbps) with<br />
a percentage of lost frames below 4%. It was also shown that the system supports simultaneous<br />
communication of three sensor no<strong>de</strong>s at 3 kS/s (36 kbps) each, with a percentage of losses of<br />
less than 4%.<br />
Keywords:<br />
Body Area Networks, BAN, Zigbee, 802.15.4, Electronic Textiles, Tympanic Temperature.<br />
V
Conteúdo<br />
1 Introdução e Objectivos .................................................................................... 1<br />
1.1 O projecto <strong>BIOSWIM</strong> ....................................................................................................... 2<br />
1.2 Objectivos do trabalho .................................................................................................... 4<br />
1.3 Cronologia ...................................................................................................................... 5<br />
1.4 Organização da Tese ...................................................................................................... 6<br />
2 Estado da Arte e Fundamentos Teóricos .......................................................... 8<br />
2.1 Monitorização <strong>de</strong> pessoas com e-têxteis .......................................................................... 8<br />
2.2 Sinais biométricos ........................................................................................................ 12<br />
2.2.1 Sensores <strong>de</strong> temperatura timpânica .................................................................. 12<br />
2.3 Re<strong>de</strong>s <strong>de</strong> área corporais (BAN) ..................................................................................... 13<br />
2.4 Protocolos <strong>de</strong> comunicação sem fios <strong>de</strong> curto alcance .................................................. 17<br />
2.4.1 802.15.4 ....................................................................................................... 19<br />
2.4.2 Zigbee ........................................................................................................... 21<br />
2.4.3 Bluetooth ....................................................................................................... 27<br />
3 Desenvolvimento .............................................................................................. 34<br />
3.1 Especificação <strong>de</strong> requisitos ........................................................................................... 34<br />
3.2 Estruturação geral do sistema e hardware ..................................................................... 35<br />
3.2.1 Estrutura geral ............................................................................................... 35<br />
3.2.2 Hardware <strong>de</strong> comunicação .............................................................................. 38<br />
3.3 <strong>Implementação</strong> com protocolo Zigbee ........................................................................... 41<br />
3.3.1 Arquitectura da re<strong>de</strong> <strong>de</strong> sensores sem fios ......................................................... 42<br />
3.3.2 Estrutura do Firmware ..................................................................................... 45<br />
3.3.3 Aquisição <strong>de</strong> sinal e preparação para a transmissão............................................ 61<br />
3.3.4 Processamento no Coor<strong>de</strong>nador e envio para a UART .......................................... 63<br />
3.4 <strong>Implementação</strong> com protocolo 802.15.4 ....................................................................... 67<br />
3.4.1 Arquitectura da re<strong>de</strong> <strong>de</strong> sensores sem fios ......................................................... 68<br />
3.4.2 Estrutura do firmware...................................................................................... 68<br />
3.4.3 Aquisição <strong>de</strong> sinal e preparação para a transmissão............................................ 73<br />
3.4.4 Processamento no Coor<strong>de</strong>nador e envio para a UART ......................................... 74<br />
VI
3.5 Estrutura do software em computador........................................................................... 74<br />
3.5.1 Aplicação Gráfica ............................................................................................ 75<br />
3.5.2 Recepção <strong>de</strong> dados ......................................................................................... 76<br />
3.5.3 Extracção <strong>de</strong> tramas ....................................................................................... 77<br />
3.5.4 Contagem <strong>de</strong> erros ......................................................................................... 78<br />
3.5.5 Visualização <strong>de</strong> dados ..................................................................................... 79<br />
3.5.6 Envio <strong>de</strong> comandos......................................................................................... 80<br />
3.6 Hardware analógico ...................................................................................................... 81<br />
3.6.1 Sensor <strong>de</strong> Temperatura Timpânica ................................................................... 81<br />
3.6.2 Circuito electrónico ......................................................................................... 82<br />
4 Resultados ........................................................................................................ 88<br />
4.1 Protótipos implementados ............................................................................................ 88<br />
4.2 Testes .......................................................................................................................... 89<br />
4.2.1 Testes do sistema ........................................................................................... 89<br />
4.3 Plano experimental ....................................................................................................... 91<br />
4.4 Resultados e Análise ..................................................................................................... 93<br />
4.5 Resultados Gerais ....................................................................................................... 102<br />
4.6 Problemas e Soluções ................................................................................................ 102<br />
5 Conclusões ...................................................................................................... 104<br />
5.1 Trabalho Futuro .......................................................................................................... 106<br />
Anexos:<br />
Anexo 1 ........................................................................................................................ 1<br />
Anexo 2 ........................................................................................................................ 2<br />
Anexo 3 ........................................................................................................................ 4<br />
Anexo 4 ........................................................................................................................ 5<br />
Anexo 5 ........................................................................................................................ 6<br />
VII
Lista <strong>de</strong> Figuras<br />
FIGURA 1: CRONOGRAMA DO PROJECTO. .............................................................................................................. 5<br />
FIGURA 2: WEARABLE MOTHERBOARD - GEORGIA TECH INSTITUTE. ............................................................................... 9<br />
FIGURA 3: ROUPA INTERACTIVA [3]. .................................................................................................................. 10<br />
FIGURA 4: PELE PARA ROBÔS FEITA DE SENSORES ORGÂNICOS [5] [6]. ........................................................................ 11<br />
FIGURA 5: CORTE VERTICO-TRANSVERSAL DO OUVIDO DIREITO [11]. ............................................................................ 13<br />
FIGURA 6: SENSORES DE TEMPERATURA TIMPÂNICA. .............................................................................................. 13<br />
FIGURA 7: VELOCIDADE DE TRANSMISSÃO VS CONSUMO DE ENERGIA [14] DATA: 23/04/2008. ......................................... 14<br />
FIGURA 8: PROJECTO HUMAN++ DESENVOLVIDO NA BÉLGICA [14]. ............................................................................ 16<br />
FIGURA 9: ÁUDIO SEM FIOS. ........................................................................................................................... 16<br />
FIGURA 10: SAPATILHAS GERADORAS DE ENERGIA. PROJECTO SHOES GENERATORS ......................................................... 17<br />
FIGURA 11: POSICIONAMENTO DAS TECNOLOGIAS DE COMUNICAÇÃO SEM FIOS, ADAPTADO DE [18]. ..................................... 18<br />
FIGURA 12: ARQUITECTURA PROTOCOLAR DO PROTOCOLO 802.15.4, ADAPTADO DE [22]. ................................................ 20<br />
FIGURA 13: TOPOLOGIAS DE REDE. A: MALHA, B: ESTRELA, C: ÁRVORE, ADAPTADO DE [43]. ..................................... 22<br />
FIGURA 14: PILHA PROTOCOLAR ZIGBEE, ADAPTADO DE [25]. ................................................................................... 23<br />
FIGURA 15: ESTRUTURA SUPERFRAME [24]. ....................................................................................................... 24<br />
FIGURA 16: MODOS DE TRANSMISSÃO DE DADOS. ................................................................................................. 25<br />
FIGURA 17: FORMATO DA MENSAGEM ZIGBEE [26]. ......................................................................................... 26<br />
FIGURA 18: (A): PICONETS PONTO A PONTO, (B): PONTO A MULTIPONTO, ADAPTADO DE [30]. ............................................. 29<br />
FIGURA 19: DOIS EXEMPLOS DE SCATTERNET, ADAPTADO DE [30]. ............................................................................ 30<br />
FIGURA 20: ESTADOS OPERACIONAIS PARA DISPOSITIVOS BLUETOOTH. ........................................................................ 32<br />
FIGURA 21: SISTEMA AQUISIÇÃO DE SINAL/REDE/APLICAÇÃO GRÁFICA. ....................................................................... 35<br />
FIGURA 22: ESTRUTURA GERAL DO SISTEMA CONCEBIDO. ........................................................................................ 36<br />
FIGURA 23: LOCALIZAÇÃO DO TRABALHO NO PROJECTO <strong>BIOSWIM</strong>. ............................................................................ 36<br />
FIGURA 24: KIT DE DESENVOLVIMENTO DE REDES DE COMUNICAÇÃO SEM FIOS DA JENNIC. ................................................. 38<br />
FIGURA 25: ARQUITECTURA DO MICROCONTROLADOR JN5148 DA JENNIC. ................................................................... 39<br />
FIGURA 26: MÓDULOS DE DESENVOLVIMENTO DA JENNIC. ....................................................................................... 39<br />
FIGURA 27: DEBUG POR SOFTWARE ATRAVÉS DO HYPERTERMINAL DO WINDOWS.............................................................. 40<br />
FIGURA 28: ARQUITECTURA DO SOFTWARE ZIGBEE PRO DA JENNIC, ADAPTADO DE [36].................................................... 42<br />
FIGURA 29: DINÂMICA DO SOFTWARE ZIGBEE PRO DA JENNIC. ................................................................................. 42<br />
FIGURA 30: TOPOLOGIA DE REDE EM ESTRELA. ..................................................................................................... 43<br />
FIGURA 31: FUNCIONAMENTO GERAL DA APLICAÇÃO IMPLEMENTADA COM O PROTOCOLO ZIGBEE. ......................................... 46<br />
FIGURA 32: TRAMA DE DADOS E TRAMA DE COMANDOS. .......................................................................................... 47<br />
FIGURA 33: ESTADOS DO NÓ CONTROLADOR E NÓ SENSOR NA GESTÃO DA REDE ZIGBEE. ................................................... 48<br />
VIII
FIGURA 34: ARQUITECTURA DA APLICAÇÃO DO COORDENADOR. ................................................................................. 49<br />
FIGURA 35: CONFIGURAÇÃO PORMENORIZADA DO RTOS DO SISTEMA OPERATIVO JENOS DO COORDENADOR. ................ 51<br />
FIGURA 36: FLUXOGRAMA DO PROGRAMA PRINCIPAL DO FIRMWARE DO COORDENADOR (FORMAÇÃO DA REDE ZIGBEE). ................. 52<br />
FIGURA 37: FLUXOGRAMAS DO PROGRAMA PRINCIPAL DO FIRMWARE DO COORDENADOR (RECEPÇÃO DE DADOS). ....................... 54<br />
FIGURA 38: ARQUITECTURA DA APLICAÇÃO DO DISPOSITIVO FINAL. ............................................................................. 56<br />
FIGURA 39: CONFIGURAÇÃO PORMENORIZADA DO RTOS DO SISTEMA OPERATIVO JENOS DO DISPOSITIVO FINAL. ............. 58<br />
FIGURA 40: FLUXOGRAMA DO PROGRAMA PRINCIPAL DO FIRMWARE DO DISPOSITIVO FINAL (PROCURA DE REDE ZIGBEE). ............... 59<br />
FIGURA 41: FLUXOGRAMAS DO PROGRAMA PRINCIPAL DO FIRMWARE DO DISPOSITIVO FINAL (AQUISIÇÃO E ENVIO DE DADOS). ......... 60<br />
FIGURA 42: CONSTRUÇÃO DAS TRAMAS NO NÓ SENSOR (PROTOCOLO ZIGBEE)................................................................ 62<br />
FIGURA 43: TRAMA DE DADOS COMPLETA (ZIGBEE)................................................................................................ 62<br />
FIGURA 44: TRAMA DE COMANDOS COMPLETA (ZIGBEE). ......................................................................................... 63<br />
FIGURA 45: ENCAIXE DO ARRAY DE AMOSTRAS DE 12 BITS NUM ARRAY DE 8 BITS. ........................................................... 64<br />
FIGURA 46: IMPLEMENTAÇÃO DO BIT STUFFING NUMA SEQUÊNCIA DE BITS A ENVIAR. ....................................................... 66<br />
FIGURA 47: ALGORITMO DO MECANISMO DE CONTAGEM DE TRAMAS PERDIDAS E REPETIDAS. ............................................... 67<br />
FIGURA 48: ARQUITECTURA DO SOFTWARE 802.15.4 STACK DA JENNIC. ..................................................................... 68<br />
FIGURA 49: FLUXOGRAMA DO PROGRAMA PRINCIPAL DO FIRMWARE DO COORDENADOR (802.15.4). ..................................... 70<br />
FIGURA 50: MÁQUINA DE ESTADOS DO DISPOSITIVO FINAL. ....................................................................................... 71<br />
FIGURA 51: FLUXOGRAMA DO PROGRAMA PRINCIPAL DO FIRMWARE DO DISPOSITIVO FINAL (802.15.4). ................................. 72<br />
FIGURA 52: CONSTRUÇÃO DAS TRAMAS NO NÓ SENSOR (PROTOCOLO 802.15.4). .......................................................... 73<br />
FIGURA 53: TRAMA DE DADOS COMPLETA (802.15.4). .......................................................................................... 74<br />
FIGURA 54: APLICAÇÃO GRÁFICA. .................................................................................................................... 75<br />
FIGURA 55: DIAGRAMA DE BLOCOS DA APLICAÇÃO GRÁFICA. ..................................................................................... 76<br />
FIGURA 56: RECEPÇÃO DE DADOS DA APLICAÇÃO GRÁFICA (EXTRACTO DO BLOCK DIAGRAM DO LABVIEW). ............................... 77<br />
FIGURA 57: DIAGRAMA DE BLOCOS DA SUBVI EXTRACT FRAMES (EXTRACÇÃO DE TRAMAS). ................................................ 78<br />
FIGURA 58: ATRIBUIÇÃO DO CLUSTER DE ERROS (NODE LIST) AO INDICADOR. ................................................................ 79<br />
FIGURA 59: VISUALIZAÇÃO DE DADOS. ............................................................................................................... 80<br />
FIGURA 60: ENVIO DE COMANDOS (EXTRACTO DO BLOCK DIAGRAM DO LABVIEW). ........................................................... 81<br />
FIGURA 61: SENSOR DE TEMPERATURA TIMPÂNICA. ............................................................................................... 82<br />
FIGURA 62: CURVA CARACTERÍSTICA DE UM TERMISTOR NTC, ADAPTADO DE [37]. .......................................................... 83<br />
FIGURA 63: AMPLIFICADOR INVERSOR COM SENSOR NA MALHA DE REALIMENTAÇÃO. ......................................................... 83<br />
FIGURA 64: CIRCUITO CONDICIONADOR PARA SENSOR DE TEMPERATURA TIMPÂNICA. ........................................................ 84<br />
FIGURA 65: TENSÃO DE SAÍDA (VOUT) EM FUNÇÃO DA TEMPERATURA. ............................................................................ 86<br />
FIGURA 66: CIRCUITO CONDICIONADOR DE SENSOR DE TEMPERATURA TIMPÂNICA. ........................................................... 88<br />
FIGURA 67: PROTÓTIPOS IMPLEMENTADOS. ........................................................................................................ 89<br />
FIGURA 68: TESTE DA AQUISIÇÃO E TRANSMISSÃO DE DADOS. ................................................................................... 90<br />
FIGURA 69: PLANO EXPERIMENTAL PARA TESTAR O PROTÓTIPO IMPLEMENTADO............................................................... 91<br />
FIGURA 70: PERDAS DE TRAMAS NA CONFIGURAÇÃO DISPOSITIVOS JUNTOS. ................................................................... 94<br />
IX
FIGURA 71: PERDAS DE TRAMAS NA CONFIGURAÇÃO DISTÂNCIA DE 10 METROS............................................................... 95<br />
FIGURA 72: PERDAS DE TRAMAS NA CONFIGURAÇÃO DISTÂNCIA DE 10 METROS SEPARADOS POR UMA PAREDE. ......................... 95<br />
FIGURA 73: PERDAS DE TRAMAS NA CONFIGURAÇÃO FRENTE E ATRÁS DO CORPO. ............................................................ 96<br />
FIGURA 74: PERDAS DE TRAMAS NA CONFIGURAÇÃO FRENTE E ATRÁS DOS PÉS. .............................................................. 96<br />
FIGURA 75: PERDAS DE TRAMAS COM 2 NÓS EM COMUNICAÇÃO. ............................................................................... 97<br />
FIGURA 76: PERDAS DE TRAMAS COM 3 NÓS EM COMUNICAÇÃO. ............................................................................... 98<br />
FIGURA 77: PERDAS DE TRAMAS COM 2 NÓS EM COMUNICAÇÃO COM CONECTOR SMA. .................................................... 98<br />
FIGURA 78: QUALIDADE DO SINAL (LQI)............................................................................................................. 99<br />
FIGURA 79: PERDAS DE TRAMAS EM TODAS AS CONFIGURAÇÕES NO MODO LOW POWER. ................................................. 100<br />
FIGURA 80: PERDAS DE TRAMAS EM TODAS AS CONFIGURAÇÕES NO MODO HIGH POWER. ................................................ 100<br />
FIGURA 81: PERDAS DE TRAMAS COM VÁRIOS NÓS SENSORES NA REDE. ..................................................................... 101<br />
Anexos:<br />
FIGURA 82: MODELO PROTOCOLAR DA PILHA ZIGBEE................................................................................................ 1<br />
FIGURA 83: PILHA DE PROTOCOLOS BLUETOOTH E PRINCIPAIS FUNÇÕES DE CADA CAMADA, ADAPTADO DE [29]. ................ 2<br />
FIGURA 84: GRUPOS DA PILHA DE PROTOCOLOS BLUETOOTH. ..................................................................................... 3<br />
FIGURA 85: CONFIGURAÇÃO PORMENORIZADA DO ZPS (PARÂMETROS DE REDE). ............................................................... 4<br />
FIGURA 86: BLOCK DIAGRAM DA SUBVI EXTRACT FRAME. .......................................................................................... 5<br />
FIGURA 87: PROTÓTIPO IMPLEMENTADO COMPLETO. ................................................................................................ 6<br />
X
Lista <strong>de</strong> Tabelas<br />
TABELA 1: PARÂMETROS A AVALIAR NO PROJECTO <strong>BIOSWIM</strong>...................................................................................... 4<br />
TABELA 2: COMPARAÇÃO DOS PROTOCOLOS ZIGBEE E BLUETOOTH, ADAPTADO DE [20]. ................................................... 19<br />
TABELA 3: BANDAS DE RADIOFREQUÊNCIA DO PROTOCOLO 802.15.4 E PROTOCOLO ZIGBEE, ADAPTADO DE [22]. ..................... 21<br />
TABELA 4: TIPO DE DISPOSITIVOS LÓGICOS NUMA REDE ZIGBEE.................................................................................. 22<br />
TABELA 5: NÍVEIS DE POTÊNCIA DE TRANSMISSÃO. ................................................................................................ 29<br />
TABELA 6: TAXAS DE TRANSMISSÃO PARA OS PACOTES USADOS EM CONEXÕES ASSÍNCRONAS (ACL), ADAPTADO DE [32].............. 31<br />
TABELA 7: CARACTERÍSTICAS PRINCIPAIS DO MICROCONTROLADOR JN5148 DA JENNIC. ................................................... 41<br />
TABELA 8: CONFIGURAÇÃO DO RTOS DO SISTEMA OPERATIVO JENOS ......................................................................... 45<br />
TABELA 9: DESCRIÇÃO DAS FUNÇÕES DO FIRMWARE DO NÓ CONTROLADOR NO PROTOCOLO ZIGBEE ...................................... 54<br />
TABELA 10: DESCRIÇÃO DAS FUNÇÕES DO FIRMWARE DO NÓ SENSOR NO PROTOCOLO ZIGBEE. ........................................... 60<br />
TABELA 11: COMANDOS E SUAS FUNÇÕES. ......................................................................................................... 63<br />
TABELA 12: DESCRIÇÃO DAS FUNÇÕES DO FIRMWARE DO NÓ CONTROLADOR NO PROTOCOLO 802.15.4. ............................... 70<br />
TABELA 13: DESCRIÇÃO DAS FUNÇÕES DO FIRMWARE DO NÓ SENSOR NO PROTOCOLO 802.15.4. ....................................... 73<br />
TABELA 14: VALORES DA RESISTÊNCIA DO SENSOR NTC SENSÍVEL À TEMPERATURA.......................................................... 82<br />
TABELA 15: VALORES DA SAÍDA (VOUT) DO CIRCUITO CONDICIONADOR EM FUNÇÃO DA TEMPERATURA. ...................................... 86<br />
TABELA 16: POSIÇÃO RELATIVA DOS DISPOSITIVOS. ................................................................................................ 92<br />
XI
Lista <strong>de</strong> Funções<br />
FUNÇÃO 1 : NÚMERO DE AMOSTRAS ZIGBEE ........................................................................................................ 62<br />
FUNÇÃO 2: DIVISOR PARA A FREQUÊNCIA DE AMOSTRAGEM DO ADC ............................................................................ 63<br />
FUNÇÃO 3: NÚMERO DE AMOSTRAS 802.15.4 .................................................................................................... 64<br />
FUNÇÃO 4: NÚMERO DE POSIÇÕES DO ARRAY PAYLOAD NO PROTOCOLO ZIGBEE ............................................................. 73<br />
FUNÇÃO 5: POTÊNCIA DISSIPADA PELO TERMISTOR ................................................................................................ 85<br />
FUNÇÃO 6: CORRENTE ELÉCTRICA QUE ATRAVESSA O TERMISTOR ............................................................................... 85<br />
FUNÇÃO 7: TENSÃO NO PONTO INTERMEDIÁRIO V3 DO CIRCUITO CONDICIONADOR ........................................................... 85<br />
FUNÇÃO 8: GANHO 1 DO CIRCUITO CONDICIONADOR .............................................................................................. 85<br />
FUNÇÃO 9: GANHO 2 DO CIRCUITO CONDICIONADOR .............................................................................................. 85<br />
FUNÇÃO 10: TENSÃO DE SAÍDA DO CIRCUITO CONDICIONADOR ................................................................................. 85<br />
FUNÇÃO 11: SENSIBILIDADE DO CIRCUITO CONDICIONADOR .............................................................................................. 87<br />
FUNÇÃO 12: RESOLUÇÃO GERAL DO SISTEMA ................................................................................................................. 87<br />
XII
Lista <strong>de</strong> Acrónimos<br />
ACL Asynchronous Connection-Less<br />
Conexão assíncrona no protocolo Bluetooth.<br />
ADC Analog to Digital Converter (Conversor Analógico - Digital)<br />
Converte um sinal analógico numa palavra binária. A resolução do conversor<br />
ditará o número <strong>de</strong> bits da palavra binária resultante.<br />
AIB APS Information Base<br />
Grupo <strong>de</strong> elementos <strong>de</strong> configuração do ZPS da Jennic.<br />
APDU Application protocol data unit<br />
Pacote <strong>de</strong> dados da camada <strong>de</strong> aplicação do protocolo Zigbee.<br />
API Application Programming Interface<br />
Conjunto <strong>de</strong> rotinas e padrões estabelecidos por um software para a utilização<br />
das suas funcionalida<strong>de</strong>s.<br />
APS Application Support Sub-Layer<br />
Sub-camada da camada <strong>de</strong> aplicação da pilha protocolar Zigbee.<br />
ASK Amplitu<strong>de</strong> Shift Keying<br />
Tipo <strong>de</strong> modulação <strong>de</strong> sinal que consiste em alterar o nível <strong>de</strong> amplitu<strong>de</strong> da<br />
onda portadora.<br />
BAN Body Area Network (Re<strong>de</strong>s <strong>de</strong> área corporal)<br />
Sistema composto por dispositivos distribuído pelo corpo humano que<br />
comunicam entre si.<br />
<strong>BIOSWIM</strong> Body Interface System based on Wearable Integrated Monitorization<br />
Sistema <strong>de</strong> Interface Corporal Integrada em Vestuário para Monitorização <strong>de</strong><br />
Sinais.<br />
BPSK Binary Phase Shift Keying<br />
Tipo <strong>de</strong> modulação <strong>de</strong> sinal on<strong>de</strong> a informação do sinal digital é transmitida na<br />
fase da onda portadora.<br />
BSN Body Sensor Network (Re<strong>de</strong> corporal <strong>de</strong> sensores)<br />
Sistema composto por dispositivos conectados com sensores distribuído pelo<br />
corpo humano que comunicam entre si.<br />
CAP Contention access period<br />
Intervalo <strong>de</strong> tempo inicial no processo <strong>de</strong> Superframe.<br />
CRC Cyclic Redundancy Check<br />
Técnica <strong>de</strong> protecção <strong>de</strong> dados.<br />
DAC Digital-to-Analog Converter<br />
Converte uma palavra binária num sinal analógico. O resultado po<strong>de</strong> ser em<br />
corrente como em tensão.<br />
XIII
DBG Debug (Depuração)<br />
Processo <strong>de</strong> encontrar e reduzir <strong>de</strong>feitos numa aplicação <strong>de</strong> software ou<br />
hardware.<br />
DH Data High rate<br />
Pacotes <strong>de</strong> transporte <strong>de</strong> gran<strong>de</strong>s quantida<strong>de</strong>s <strong>de</strong> dados no protocolo Bluetooth.<br />
DM<br />
Data Medium rate<br />
Pacotes <strong>de</strong> transporte <strong>de</strong> médias quantida<strong>de</strong>s <strong>de</strong> dados no protocolo Bluetooth.<br />
DSSS Direct-Sequence Spread Spectrum<br />
Tipo <strong>de</strong> modulação <strong>de</strong> sinal on<strong>de</strong> os bits <strong>de</strong> informação são multiplicados por<br />
uma sequência <strong>de</strong> espalhamento espectral.<br />
EMG Electromyography<br />
Técnica para avaliar e guardar a activida<strong>de</strong> eléctrica produzida nos músculos do<br />
corpo humano.<br />
FA Frequência <strong>de</strong> Amostragem<br />
FFD Full Function Device<br />
Tipo <strong>de</strong> dispositivo físico nas re<strong>de</strong>s sem fios <strong>de</strong> construção complexa.<br />
FHSS Frequency Hopping Spread Spectrum<br />
Tipo <strong>de</strong> modulação <strong>de</strong> sinal on<strong>de</strong> a informação do sinal digital é transmitida na<br />
frequência da onda portadora num padrão pseudo-aleatório.<br />
GFSK Gaussian Frequency Shift Keying<br />
Tipo <strong>de</strong> modulação <strong>de</strong> sinal on<strong>de</strong> a informação do sinal digital <strong>de</strong>pois <strong>de</strong> passar<br />
por um filtro Gaussiano é enviada na frequência da onda portadora.<br />
GTS Guaranteed Time Slots<br />
Intervalo <strong>de</strong> tempo final no processo <strong>de</strong> Superframe.<br />
IDE Integrated Development Environment<br />
Ambiente integrado para <strong>de</strong>senvolvimento <strong>de</strong> software.<br />
IEEE Institute of Electric and Electronic Engineers<br />
Grupo <strong>de</strong> <strong>de</strong>senvolvimento que actua sobre a tecnologia das re<strong>de</strong>s sem fios.<br />
ISM Industrial, Scientific, Medicine<br />
Bandas <strong>de</strong> rádio frequência reservadas internacionalmente para aplicações<br />
industriais, científicas e Médicas.<br />
JTAG Join Test Action Group<br />
Protocolo usado para testes e <strong>de</strong>bug <strong>de</strong> hardware.<br />
LabVIEW Laboratory Virtual Instrument Engineering Workbench<br />
Plataforma e ambiente <strong>de</strong> <strong>de</strong>senvolvimento para linguagem <strong>de</strong> programação<br />
gráfica da National Instruments.<br />
LQI Link Quality Indicator<br />
Valor <strong>de</strong> 8 bits que indica a qualida<strong>de</strong> do sinal entre dois dispositivos emissor e<br />
receptor.<br />
MCPS MAC Common Part Sublayer<br />
Interface responsável pelo envio e recepção <strong>de</strong> dados no protocolo 802.15.4.<br />
XIV
MISC Minimal Instruction Set Computer<br />
Grupo <strong>de</strong> elementos <strong>de</strong> configuração do ZPS da Jennic.<br />
MLME MAC Layer Management Entity<br />
Interface <strong>de</strong> gestão da re<strong>de</strong> usado para todos os comandos da camada MAC do<br />
protocolo 802.15.4.<br />
NPDU Network Protocol Data Unit.<br />
Pacote <strong>de</strong> dados da camada <strong>de</strong> re<strong>de</strong> do protocolo Zigbee.<br />
NTC Negative Temperature Coefficient<br />
Termístores cujo coeficiente <strong>de</strong> variação <strong>de</strong> resistência com a temperatura é<br />
negativo: a resistência diminui com o aumento da temperatura.<br />
O-QPSK Quadrature Phase Shift Keying<br />
Tipo <strong>de</strong> modulação <strong>de</strong> sinal on<strong>de</strong> dois bits são codificados como um só símbolo<br />
na onda portadora.<br />
PC Personal Computer<br />
Máquina capaz <strong>de</strong> variados tipos <strong>de</strong> tratamento automático <strong>de</strong> informação ou<br />
processamento <strong>de</strong> dados.<br />
PCB Printed Circuit Board<br />
Placa <strong>de</strong> circuito impresso<br />
PDA Personal Digital Assistant<br />
PDM Persistent Data Manager<br />
Módulo que trata do armazenamento dados da aplicação Zigbee em memória<br />
não-volátil.<br />
PDUM Protocol Data Unit Manager<br />
Módulo que faz a gestão dos pacotes <strong>de</strong> mensagens.<br />
PHP Hypertext Preprocessor<br />
Linguagem <strong>de</strong> programação para gerar conteúdo dinâmico na World Wi<strong>de</strong> Web<br />
(WWW).<br />
PWRM Power Manager<br />
Módulo que faz a gestão energética <strong>de</strong> dispositivos.<br />
RF Rádio-Frequência<br />
Radiações eletromagnéticas com frequência das ondas <strong>de</strong> rádio.<br />
RFD Reduced Function Device<br />
Tipo <strong>de</strong> dispositivo físico nas re<strong>de</strong>s sem fios <strong>de</strong> construção simples.<br />
RSSF Re<strong>de</strong>s <strong>de</strong> Sensores Sem Fios<br />
SCO<br />
Synchronous Connection-Oriented<br />
Conexão síncrona no protocolo Bluetooth.<br />
SI Sistema Internacional<br />
Conjunto <strong>de</strong> <strong>de</strong>finições, ou sistema <strong>de</strong> unida<strong>de</strong>s, que tem como objectivo<br />
uniformizar as medições.<br />
XV
SMA SubMiniature version A<br />
Conector coaxial <strong>de</strong> rádio frequência.<br />
UART Universal Asynchronous ReceiverTtransmitter<br />
Dispositivo <strong>de</strong> hardware utilizado para comunicação série a maiores distâncias e<br />
com sincronização feita por software.<br />
USB Universal Serial Bus<br />
Protocolo criado com o objectivo <strong>de</strong> interligar <strong>de</strong> uma forma simples e<br />
normalizada os dispositivos periféricos ao computador.<br />
VI Virtual Instrument<br />
Subrotina na linguagem gráfica do Labview.<br />
WiFi Wireless Fi<strong>de</strong>lity<br />
Marca registada da Wi-Fi Alliance, que é utilizada por produtos certificados que<br />
pertencem à classe <strong>de</strong> dispositivos <strong>de</strong> re<strong>de</strong> local sem fios.<br />
WiMax Worldwi<strong>de</strong> Interoperability for Microwave Access<br />
Protocolo <strong>de</strong> re<strong>de</strong>s sem fios para WMANs.<br />
WLAN Wireless Local Area Network<br />
Re<strong>de</strong> local sem fios.<br />
WMAN Wireless Metropolitan Area Network<br />
Re<strong>de</strong> metropolitana sem fios.<br />
WPAN Wireless Personal Area Network<br />
Re<strong>de</strong> pessoal sem fios.<br />
WWAN Wireless Wi<strong>de</strong> Area Network<br />
Re<strong>de</strong> sem fios <strong>de</strong> longo alcance.<br />
ZPS ZigBee PRO Stack<br />
Pilha protocolar Zigbee.<br />
XVI
Lista <strong>de</strong> Símbolos<br />
Ω Ohm<br />
A Ampere<br />
bps Bits por segundo<br />
dB Decibéis<br />
G Giga<br />
Hz Hertz<br />
K Kilo<br />
m Metro<br />
M Mega<br />
V Volts<br />
W Watt<br />
XVII
1 Introdução e<br />
1<br />
Objectivos<br />
A área da monitorização do corpo humano surgiu há muito tempo e têm sido objecto <strong>de</strong><br />
estudo ao longo <strong>de</strong> muitos anos. Existem vários métodos e formas <strong>de</strong> efectuar a monitorização<br />
<strong>de</strong> sinais importantes para <strong>de</strong>terminado <strong>de</strong>sempenho ou comportamento <strong>de</strong> um indivíduo. No<br />
caso das aplicações <strong>de</strong> monitorização, on<strong>de</strong> os sinais são adquiridos automaticamente por<br />
sistemas electrónicos, existem igualmente diversas formas <strong>de</strong> processar e transferir os dados.<br />
Uma <strong>de</strong>las é efectivamente as re<strong>de</strong>s <strong>de</strong> dados, on<strong>de</strong> há troca <strong>de</strong> informação entre dois ou mais<br />
dispositivos, e a informação principal flui pelos vários nós (dispositivos na re<strong>de</strong>) até um terminal<br />
<strong>de</strong>stino. O meio <strong>de</strong> comunicação po<strong>de</strong> ser, fio condutor, ou o próprio ar envolvente entre os<br />
dispositivos emissores e receptores, no caso das re<strong>de</strong>s sem fios. Em ambos os casos das re<strong>de</strong>s<br />
com e sem fios, têm-se verificado uma gran<strong>de</strong> evolução nos últimos anos, com várias aplicações<br />
em diferentes áreas. O trabalho efectuado nesta dissertação, insere-se na área da monitorização<br />
do corpo humano e usa re<strong>de</strong>s sem fios para transmitir informação.<br />
A dissertação é <strong>de</strong>senvolvida no âmbito do projecto <strong>BIOSWIM</strong> (Body Interface System<br />
based on Wearable Integrated Monitorization) o qual tem como propósito medir vários sinais do<br />
corpo humano durante a prática <strong>de</strong> um exercício físico pré-<strong>de</strong>terminado. Para fazer essa<br />
monitorização é necessário um sistema que engloba uma re<strong>de</strong> <strong>de</strong> área corporal para fazer a<br />
transmissão dos vários sinais. A dissertação em concreto tem como objectivo a criação <strong>de</strong>ssa<br />
re<strong>de</strong> sem fios para ser integrada no fato <strong>de</strong> natação, no <strong>de</strong>senvolvimento <strong>de</strong> uma aplicação<br />
gráfica para controlar a re<strong>de</strong> e visualizar os sinais dos sensores e no <strong>de</strong>senvolvimento <strong>de</strong> um<br />
sensor <strong>de</strong> temperatura timpânica para teste da re<strong>de</strong>.
2<br />
Introdução e Objectivos<br />
De seguida será apresentado o projecto <strong>BIOSWIM</strong>, os seus principais objectivos e<br />
requisitos, as principais metas <strong>de</strong>sta dissertação e a estrutura <strong>de</strong>ste documento.<br />
1.1 O projecto <strong>BIOSWIM</strong><br />
O <strong>BIOSWIM</strong> é um projecto proposto pela Universida<strong>de</strong> do Minho, na qual participam<br />
outras instituições como a Faculda<strong>de</strong> <strong>de</strong> Ciências do Desporto e <strong>de</strong> Educação Física, o INESC-<br />
Norte e o Centro <strong>de</strong> Ciência e Tecnologia Têxtil. O principal objectivo <strong>de</strong>ste projecto é a<br />
incorporação <strong>de</strong> um sistema <strong>de</strong> monitorização num fato <strong>de</strong> natação. Este sistema preten<strong>de</strong><br />
monitorizar vários parâmetros <strong>de</strong> <strong>de</strong>sempenho, biomecânicos, fisiológicos e químicos para<br />
diferentes fins. Uma vez concebido um protótipo, este po<strong>de</strong>rá ser utilizado na área da saú<strong>de</strong> e<br />
bem-estar, em particular no <strong>de</strong>sporto <strong>de</strong> alto rendimento, no <strong>de</strong>sporto <strong>de</strong> reabilitação e no<br />
<strong>de</strong>sporto <strong>de</strong> lazer. Será composto por sensores <strong>de</strong> diversas naturezas e com objectivos distintos<br />
que permitirão obter <strong>de</strong> uma vez só a informação que é obtida separadamente. Preten<strong>de</strong>-se que<br />
essa informação seja visualizada em tempo real, po<strong>de</strong>ndo ser posteriormente analisada para<br />
quantificar os parâmetros monitorizados e caracterizar comportamentos do indivíduo.<br />
Requisitos<br />
Neste projecto preten<strong>de</strong>-se também estudar a possibilida<strong>de</strong> <strong>de</strong> uma verda<strong>de</strong>ira<br />
integração <strong>de</strong> sensores em materiais têxteis, usando as suas proprieda<strong>de</strong>s para fins como a<br />
transmissão <strong>de</strong> dados ou a alimentação dos sistemas <strong>de</strong> medida. A integração dos sensores nas<br />
peças <strong>de</strong> vestuário influencia a forma como estas são fabricadas, o que leva a uma importante<br />
investigação sobre estes processos <strong>de</strong> integração <strong>de</strong> sensores nos têxteis. Aten<strong>de</strong>ndo às<br />
características têxteis, preten<strong>de</strong>-se que o fato seja completamente integral, revestindo o corpo do<br />
nadador <strong>de</strong>s<strong>de</strong> o pescoço até às extremida<strong>de</strong>s distais dos antebraços e pernas. Deve apresentar<br />
características elásticas <strong>de</strong> forma a torná-lo a<strong>de</strong>rente ao corpo do atleta e exercer uma pequena<br />
compressão do seu volume. Deve oferecer duas características térmicas: uma que facilite as<br />
trocas térmicas não constrangidas com a água e outra que preserve o calor interior.
Capítulo - 1<br />
Ao nível da re<strong>de</strong> <strong>de</strong> comunicação sem fios, o principal requisito é ter uma boa relação<br />
taxa <strong>de</strong> transmissão <strong>de</strong> dados/consumo <strong>de</strong> energia, combinado simultaneamente a uma boa<br />
capacida<strong>de</strong> <strong>de</strong> adaptação a diferentes configurações <strong>de</strong> re<strong>de</strong>.<br />
A taxa <strong>de</strong> transmissão <strong>de</strong> dados <strong>de</strong>verá ser suficiente para o fluxo <strong>de</strong> dados <strong>de</strong> todos os<br />
sensores que me<strong>de</strong>m os diferentes parâmetros, sem que ocorram atrasos na recepção <strong>de</strong><br />
dados. Existem sensores que necessitam <strong>de</strong> frequências <strong>de</strong> amostragem na or<strong>de</strong>m dos 1KHz<br />
como é o caso dos sensores EMG (Electromiografia) os quais me<strong>de</strong>m a activida<strong>de</strong> eléctrica nos<br />
músculos. Outros sensores, como o <strong>de</strong> medição <strong>de</strong> temperatura timpânica, exigem frequências<br />
<strong>de</strong> amostragem mais baixas, pois o valor da gran<strong>de</strong>za física tem uma variação mais lenta.<br />
Quanto ao consumo <strong>de</strong> energia, o sistema <strong>de</strong>verá funcionar, no mínimo, durante uma sessão <strong>de</strong><br />
treino <strong>de</strong> natação, tendo autonomia para fazer a monitorização <strong>de</strong> todos os sinais durante esse<br />
período. A capacida<strong>de</strong> <strong>de</strong> adaptação também é importante para este sistema, porque existe<br />
sempre o problema do terminal central da re<strong>de</strong> que recebe todos os dados, não ter capacida<strong>de</strong><br />
suficiente para aten<strong>de</strong>r todos os sinais provenientes dos dispositivos que fazem aquisição <strong>de</strong><br />
sinal. Neste caso, era necessário pon<strong>de</strong>rar a implementação <strong>de</strong> outras soluções, como a<br />
implementação <strong>de</strong> uma re<strong>de</strong> com fios ou adição <strong>de</strong> mais terminais receptores <strong>de</strong> dados na re<strong>de</strong><br />
sem fios.<br />
Parâmetros a avaliar pelo <strong>BIOSWIM</strong><br />
O projecto <strong>BIOSWIM</strong> compromete-se a avaliar vários parâmetros importantes para o<br />
estudo do comportamento humano no <strong>de</strong>sporto (Tabela 1). Entre eles estão parâmetros <strong>de</strong><br />
<strong>de</strong>sempenho relacionados com a performance <strong>de</strong>sportiva do atleta como o tempo, distância e<br />
velocida<strong>de</strong> <strong>de</strong> nado; parâmetros biomecânicos, ou seja, informação relacionada com os<br />
movimentos mecânicos dos membros do corpo e da cabeça; parâmetros fisiológicos, como a<br />
activida<strong>de</strong> eléctrica dos músculos (electromiografia) ou a frequência cardíaca<br />
(electrocardiografia), que são parâmetros bastante influentes no <strong>de</strong>sempenho do atleta, e por<br />
último, o <strong>BIOSWIM</strong> preconiza ainda a avaliação <strong>de</strong> três parâmetros bioquímicos com base no<br />
suor do corpo do atleta.<br />
3
Parâmetros <strong>de</strong><br />
<strong>de</strong>sempenho<br />
Tempo <strong>de</strong> nado<br />
Número <strong>de</strong> piscinas<br />
/ distância <strong>de</strong> nado<br />
Velocida<strong>de</strong> média<br />
<strong>de</strong> nado (entre<br />
partida e chegada)<br />
Tabela 1: Parâmetros a avaliar no projecto <strong>BIOSWIM</strong><br />
4<br />
Introdução e Objectivos<br />
Parâmetros biomecânicos Parâmetros fisiológicos Parâmetros<br />
Número <strong>de</strong> ciclos<br />
Frequência gestual<br />
Velocida<strong>de</strong> instantânea <strong>de</strong><br />
<strong>de</strong>slocamento<br />
Pressão palmar na mão<br />
Pressão dorsal na mão<br />
Diferencial <strong>de</strong> pressão<br />
Posição angular do cotovelo<br />
Posição angular do pulso<br />
Posição angular da cabeça<br />
Electromiografia (em<br />
diferentes músculos)<br />
Electrocardiograma<br />
Frequência cardíaca<br />
Frequência ventilatória<br />
Volume <strong>de</strong> ar corrente<br />
Ventilação pulmonar<br />
Temperatura timpânica<br />
Gasimetria capilar<br />
bioquímicos<br />
Iões<br />
Lactato<br />
Amónia<br />
Muitos <strong>de</strong>stes parâmetros são <strong>de</strong> difícil medição, e têm o problema acrescido <strong>de</strong> serem<br />
medidos num ambiente hostil como a água juntamente com o cloro das piscinas, que influencia<br />
os valores adquiridos pelo sistema. Por todas estas razões é necessário estudar vários tipos <strong>de</strong><br />
soluções e utilizar os mais diversos tipos <strong>de</strong> sensores <strong>de</strong> modo a se obter um protótipo eficiente.<br />
1.2 Objectivos do trabalho<br />
Os objectivos <strong>de</strong>ste trabalho são a concepção <strong>de</strong> um sistema <strong>de</strong> recolha <strong>de</strong> dados/sinais<br />
analógicos <strong>de</strong>ntro do fato <strong>de</strong> natação, com o condicionamento, aquisição e transmissão dos<br />
dados para um controlador central e/ou uma estação <strong>de</strong> processamento remota. Este sistema<br />
<strong>de</strong>verá integrar a alimentação eléctrica para os sensores, e interligar sensores <strong>de</strong> natureza<br />
distinta. A solução <strong>de</strong>verá ser capaz <strong>de</strong> funcionar <strong>de</strong> modo autónomo durante um <strong>de</strong>terminado<br />
período <strong>de</strong> tempo. No trabalho <strong>de</strong>verão ser consi<strong>de</strong>rados os diferentes tipos <strong>de</strong> sensores a<br />
utilizar, energia consumida, e sua interligação ao sistema <strong>de</strong> aquisição, bem como re<strong>de</strong>s <strong>de</strong><br />
comunicação sem fios com protocolos e especificações diferentes.
Capítulo - 1<br />
Finalmente, <strong>de</strong>verá ser concebido, montado e testado um protótipo. O protótipo começará<br />
pelo <strong>de</strong>senvolvimento e miniaturização das funções mais básicas do sistema, ou seja,<br />
condicionamento, aquisição <strong>de</strong> sinal e alimentação eléctrica, para posteriormente integrar esse<br />
hardware com os módulos <strong>de</strong> comunicação. Este trabalho resultará em módulos genéricos<br />
multifuncionais para implementação <strong>de</strong> sensores sem fios e numa aplicação gráfica para<br />
apresentar os dados recolhidos pelos nós sensores. Como <strong>de</strong>monstração, será <strong>de</strong>senvolvido <strong>de</strong><br />
raiz o condicionamento <strong>de</strong> sinal para um sistema <strong>de</strong> medição <strong>de</strong> temperatura timpânica.<br />
1.3 Cronologia<br />
No <strong>de</strong>correr do trabalho foram cumpridos prazos, estabelecidos anteriormente para o<br />
bom funcionamento do projecto. O projecto foi iniciado no mês <strong>de</strong> Outubro <strong>de</strong> 2009, quando<br />
foram <strong>de</strong>finidos os objectivos e principais contornos do trabalho. Para se ter um pouco da noção<br />
do trabalho efectuado ao longo do tempo, po<strong>de</strong> ser observado o cronograma da Figura 1.<br />
Figura 1: Cronograma do projecto.<br />
No inicio do trabalho foi feita uma pesquisa nas áreas <strong>de</strong> monitorização do corpo<br />
humano, e-têxteis e Body Area Networks, para se fixarem as primeiras i<strong>de</strong>ias <strong>de</strong> como se iria<br />
<strong>de</strong>senvolver um sistema integrado num fato <strong>de</strong> natação para monitorizar os diferentes sinais<br />
provenientes do corpo humano.<br />
5
6<br />
Introdução e Objectivos<br />
Depois <strong>de</strong> <strong>de</strong>finidos todos os requisitos do sistema, foram escolhidos os módulos <strong>de</strong><br />
comunicação, bem como o protocolo <strong>de</strong> re<strong>de</strong> sem fios com o qual se iria trabalhar. Ainda no<br />
mês <strong>de</strong> Outubro foi encomendado o kit <strong>de</strong> <strong>de</strong>senvolvimento para a re<strong>de</strong> <strong>de</strong> comunicação,<br />
momento em que se iniciou o estudo do ambiente <strong>de</strong> <strong>de</strong>senvolvimento, da estrutura do software<br />
e das API’s (Application Programming Interface) da Jennic.<br />
Em Novembro foi recebido o kit <strong>de</strong> <strong>de</strong>senvolvimento, momento em que foi iniciada a<br />
programação e implementação da re<strong>de</strong> sem fios com o protocolo Zigbee.<br />
Depois da primeira versão do firmware da re<strong>de</strong> sem fios, no final <strong>de</strong> Fevereiro, foi<br />
iniciado o <strong>de</strong>senvolvimento da aplicação gráfica no computador, e da interface entre o dispositivo<br />
coor<strong>de</strong>nador e a recepção <strong>de</strong> dados da aplicação gráfica.<br />
Uma vez terminada a primeira versão da aplicação gráfica e re<strong>de</strong> sem fios com o<br />
protocolo Zigbee, e com o intuito <strong>de</strong> melhorar os resultados, foi iniciado o <strong>de</strong>senvolvimento <strong>de</strong><br />
uma re<strong>de</strong> sem fios com o protocolo <strong>de</strong> mais baixo nível 802.15.4. No início <strong>de</strong> Junho, terminado<br />
este <strong>de</strong>senvolvimento, foi realizado o circuito condicionador para o sensor <strong>de</strong> temperatura<br />
timpânica.<br />
No final <strong>de</strong> todo o trabalho realizado foram testados todos os elementos que compõem o<br />
sistema <strong>de</strong> monitorização, e proce<strong>de</strong>ram-se a algumas alterações para optimização e correcção.<br />
1.4 Organização da Tese<br />
Este documento <strong>de</strong>screve todo o trabalho <strong>de</strong>senvolvido na pesquisa e projecto <strong>de</strong> um<br />
sistema protótipo capaz <strong>de</strong> monitorizar e controlar sensores integrados num fato <strong>de</strong> natação.<br />
Após a introdução segue-se a fundamentação teórica, no segundo capítulo, on<strong>de</strong> são<br />
apresentados sistemas e-têxteis, sensores <strong>de</strong> temperatura timpânica e re<strong>de</strong>s <strong>de</strong> comunicação<br />
sem fios <strong>de</strong> curto alcance. São <strong>de</strong>scritas as características que interessam a este projecto, bem<br />
como os requisitos na utilização <strong>de</strong>stas tecnologias.<br />
No terceiro capítulo é apresentado o <strong>de</strong>senvolvimento, on<strong>de</strong> é mostrado todo o trabalho<br />
efectuado neste projecto. Começa-se por <strong>de</strong>screver a arquitectura do firmware da aplicação da<br />
re<strong>de</strong> sem fios implementada com o protocolo Zigbee e posteriormente com a especificação<br />
802.15.4. Seguidamente é apresentado o software da aplicação gráfica, implementado no
Capítulo - 1<br />
ambiente <strong>de</strong> <strong>de</strong>senvolvimento LabView. Por fim, e para completar o projecto é <strong>de</strong>scrito o<br />
<strong>de</strong>senvolvimento ao nível do hardware para o sensor <strong>de</strong> temperatura timpânica.<br />
No quarto capítulo são mostrados os testes e resultados em termos do <strong>de</strong>senvolvimento<br />
e performance do sistema. É feita uma análise dos mesmos e da relação entre eles, bem como<br />
uma discussão dos problemas e soluções implementadas ao longo do projecto.<br />
Finalmente, no quinto capítulo são apresentadas todas as conclusões <strong>de</strong>ste trabalho.<br />
Foram ainda adicionadas algumas informações importantes associadas ao projecto, que seguem<br />
em anexo a esta dissertação.<br />
7
2 Estado da Arte e<br />
Fundamentos Teóricos<br />
2.1 Monitorização <strong>de</strong> pessoas com e-têxteis<br />
Os e-têxteis surgem da fusão entre as tecnologias dos materiais têxteis e sistemas<br />
electrónicos. São também conhecidos como têxteis electrónicos ou frequentemente chamados<br />
<strong>de</strong> roupa inteligente e permitem a incorporação <strong>de</strong> sistemas computacionais, electrónica digital<br />
ou analógica, nas fibras têxteis [1].<br />
Esta tecnologia tem sido objecto <strong>de</strong> estudo, <strong>de</strong>vido à recente evolução da tecnologia <strong>de</strong><br />
informação, à miniaturização dos sistemas electrónicos e à exigência do público consumidor.<br />
Existem alguns sistemas electrónicos inseridos na roupa que po<strong>de</strong>m ser confundidos com e-<br />
têxteis, mas neste caso terão que ser projectados para se a<strong>de</strong>quar às características dos tecidos<br />
como estiramentos ou rasgos [2].<br />
A tecnologia dos e-têxteis <strong>de</strong>verá ser constituída por materiais <strong>de</strong> baixo custo e<br />
<strong>de</strong>scartáveis para serem compatíveis com as roupas comuns. No entanto, a diferença das<br />
proprieda<strong>de</strong>s físicas dos e-têxteis e os componentes electrónicos, acrescida ainda da<br />
necessida<strong>de</strong> <strong>de</strong> ter baixos consumos <strong>de</strong> energia, reduzem um pouco a capacida<strong>de</strong> <strong>de</strong><br />
processamento e armazenamento <strong>de</strong>stes sistemas [2].<br />
8
Capítulo - 2<br />
Aplicações<br />
Actualmente, os e-têxteis estão aplicados nas mais diversas áreas como a saú<strong>de</strong> e a<br />
segurança. Nestas áreas os e-têxteis aumentam a autonomia dos pacientes com sistemas <strong>de</strong><br />
auxílio miniaturizados e permanentes, previnem situações <strong>de</strong> alto risco, visto os pacientes<br />
estarem, constantemente e em tempo real, conectados com hospitais, ajudam no dia-a-dia, na<br />
prevenção contra hábitos incorrectos (posturas, prevenção contra aci<strong>de</strong>ntes caseiros).<br />
Existem também aplicações militares para monitorizar sinais vitais (batimento cardíaco,<br />
frequência respiratória), comunicar com base central em caso <strong>de</strong> emergência, monitorizar o<br />
território e condições climáticas, fazer i<strong>de</strong>ntificação em combate, camuflar com adaptação da cor<br />
do fato ao meio envolvente. Veja-se o protótipo Wearable Motherboard, apresentado na Figura 2,<br />
<strong>de</strong>senvolvido pelo Georgia Tech Institute que para além <strong>de</strong> monitorizar vários sinais vitais, ainda<br />
i<strong>de</strong>ntifica se o militar foi atingido por alguma arma <strong>de</strong> fogo [1].<br />
Figura 2: Wearable Motherboard - Georgia Tech Institute.<br />
A área <strong>de</strong> jogos e multimédia adoptou também esta tecnologia, com a utilização dos e-<br />
têxteis para aumentar o realismo da interacção dos jogos com o ser humano (interacção<br />
sensorial, visual e auditiva com o mundo virtual). Existem roupas interactivas com fins práticos<br />
ou <strong>de</strong> entretenimento com displays, leitores <strong>de</strong> mp3 ou interacção com PDAs (Figura 3).<br />
9
Figura 3: Roupa interactiva [3].<br />
10<br />
Estado da arte e Fundamentos teóricos<br />
O <strong>de</strong>sporto sempre esteve associado às inovações tecnológicas. A monitorização<br />
constante para os <strong>de</strong>sportos consi<strong>de</strong>rados <strong>de</strong> alto risco revela-se muito importante, uma vez que<br />
a activida<strong>de</strong> muscular do corpo humano é levada ao extremo. É aqui que se insere o projecto<br />
<strong>BIOSWIM</strong>, na monitorização <strong>de</strong> sinais biométricos na prática <strong>de</strong> natação.<br />
Os e-têxteis têm vários problemas relacionados com as suas características que diferem<br />
bastante das características dos sistemas electrónicos. Em geral, o gran<strong>de</strong> problema dos e-<br />
têxteis é a integração <strong>de</strong> componentes electrónicos, fios e fibras condutoras nos produtos têxteis,<br />
como os tecidos ou malhas. Esta integração <strong>de</strong>verá manter as características condutoras dos<br />
fios ou do conjunto <strong>de</strong> fibras e manter a flexibilida<strong>de</strong> do tecido <strong>de</strong> modo a po<strong>de</strong>r ser vestido e<br />
garantir o funcionamento dos sistemas. Um outro problema igualmente importante é a<br />
manutenção do e-têxtil. Fazendo parte <strong>de</strong> uma peça <strong>de</strong> vestuário, será sujeito a procedimentos<br />
<strong>de</strong> limpeza tradicionais como lavagem, secagem, procedimentos esses nada amigáveis para os<br />
sistemas electrónicos.<br />
Nos e-têxteis on<strong>de</strong> sensores são integrados sensores no tecido, po<strong>de</strong>m ser utilizados<br />
dispositivos emissores e receptores para estabelecerem as comunicações entre eles. Nestes<br />
sistemas são usadas re<strong>de</strong>s <strong>de</strong> sensores sem fios (RSSF), que permitem a não utilização <strong>de</strong> fibras<br />
condutoras para a comunicação entre dispositivos, o que se revela uma vantagem. Esta solução<br />
tem consumos <strong>de</strong> energia maiores do que as re<strong>de</strong>s com fios, o que leva a outras investigações<br />
sobre a obtenção <strong>de</strong> energia através do corpo humano, para o sistema se tornar autónomo.<br />
Perspectivas Futuras<br />
Existe a necessida<strong>de</strong> <strong>de</strong> novas tecnologias como novos equipamentos electrónicos que<br />
se adaptem às necessida<strong>de</strong>s dos e-têxteis como o baixo consumo <strong>de</strong> energia, e que tenham
Capítulo - 2<br />
baixo custo <strong>de</strong> fabricação. Existe a necessida<strong>de</strong> <strong>de</strong> novos tipos <strong>de</strong> fibras condutoras com<br />
proprieda<strong>de</strong>s físicas adaptadas e novas antenas, facilmente integráveis aos tecidos. A ausência<br />
<strong>de</strong> fios é altamente atractiva para os e-têxteis, porém estes sistemas ainda possuem um<br />
consumo <strong>de</strong> energia consi<strong>de</strong>rável.<br />
Actualmente, estão a ser estudadas algumas soluções que minimizam alguns dos<br />
problemas actuais dos e-têxteis. São eles os transístores orgânicos que possuem alta<br />
flexibilida<strong>de</strong> e resistência física compatíveis com os e-têxteis, fabricados com técnicas <strong>de</strong><br />
sputtering 1 . Sensores orgânicos são também uma nova solução. São construídos sobre uma<br />
material flexível que constitui um tecido sensível à pressão e temperatura. Veja-se o exemplo da<br />
Figura 4, em que foi construída uma mão robótica com revestimento a sensores orgânicos na<br />
tentativa <strong>de</strong> imitar a pele humana. No entanto tem ainda poucos sensores quando comparados<br />
com o <strong>de</strong>do humano (16/cm 2 ), enquanto que a pele humana tem 1500/cm 2 [4].<br />
Figura 4: Pele para robôs feita <strong>de</strong> sensores orgânicos [5] [6].<br />
Estão ainda a ser consi<strong>de</strong>rados nanotubos <strong>de</strong> carbono com moléculas cilíndricas <strong>de</strong><br />
carbono formadas quando “folhas” <strong>de</strong> carbono se fecham. Po<strong>de</strong>m ter proprieda<strong>de</strong>s metálicas ou<br />
semi-condutoras, são leves, flexíveis, têm estabilida<strong>de</strong> térmica e são quimicamente inertes [7].<br />
Os e-têxteis estão cada vez mais próximos do nosso quotidiano, têm uma velocida<strong>de</strong> <strong>de</strong><br />
crescimento surpreen<strong>de</strong>nte, num mercado extremamente promissor (<strong>de</strong>s<strong>de</strong> recém-nascidos a<br />
idosos). Induz o surgimento <strong>de</strong> novas técnicas e tecnologias e um enorme avanço na interacção<br />
homem/máquina.<br />
1 Técnica <strong>de</strong> injecção contínua <strong>de</strong> átomos num material alvo por bombar<strong>de</strong>amento <strong>de</strong> partículas<br />
energéticas.<br />
11
2.2 Sinais biométricos<br />
12<br />
Estado da arte e Fundamentos teóricos<br />
A biometria é a ciência que estuda as características físicas ou comportamentais dos<br />
seres vivos. Este termo é recentemente associado à medida <strong>de</strong> características físicas ou<br />
comportamentais das pessoas como forma <strong>de</strong> i<strong>de</strong>ntificá-las individualmente [8]. Um dos sinais<br />
biométricos, que será medido pelo projecto <strong>BIOSWIM</strong> é a temperatura timpânica.<br />
2.2.1 Sensores <strong>de</strong> temperatura timpânica<br />
A temperatura corporal é um sinal vital e po<strong>de</strong> ser indicador do estado <strong>de</strong> saú<strong>de</strong> <strong>de</strong> um<br />
paciente. O corpo consegue manter a temperatura <strong>de</strong>ntro <strong>de</strong> uma gama <strong>de</strong> segurança, apesar<br />
das gran<strong>de</strong>s variações que se fazem sentir fora do corpo.<br />
Durante um exercício físico, parte do calor que é gerado a nível muscular, é transportado<br />
para os tecidos mais profundos, o que aumenta a temperatura corporal central [9]. Num<br />
exercício <strong>de</strong> elevada intensida<strong>de</strong>, a produção <strong>de</strong> calor corporal (energia) po<strong>de</strong> exce<strong>de</strong>r os<br />
1000W, o que po<strong>de</strong>rá promover o aumento <strong>de</strong> um grau por cada cinco a oito minutos, caso não<br />
se registem mudanças nos mecanismos <strong>de</strong> dissipação <strong>de</strong> calor [10]. Assim na prática <strong>de</strong><br />
exercício intenso, o aumento da temperatura corporal provoca fadiga muscular, o que influencia<br />
a performance do atleta. Por estes motivos é <strong>de</strong>terminante acompanhar a temperatura corporal<br />
dos atletas na prática <strong>de</strong>sportiva.<br />
Esta medição po<strong>de</strong> ser efectuada em várias partes do corpo, sendo a medição no<br />
tímpano uma forma bastante rápida e eficaz quando medida correctamente [11]. Outra gran<strong>de</strong><br />
vantagem da medição da temperatura no tímpano é a sua proximida<strong>de</strong> ao hipotálamo, o órgão<br />
que controla a temperatura corporal, o que torna as medições mais precisas (Figura 5).
Capítulo - 2<br />
Figura 5: Corte vertico-transversal do ouvido direito [11].<br />
Existem vários tipos <strong>de</strong> sensores <strong>de</strong> temperatura timpânica com princípios <strong>de</strong><br />
funcionamento, grau <strong>de</strong> precisão e exactidão diferentes (Figura 6).<br />
Figura 6: Sensores <strong>de</strong> temperatura timpânica.<br />
Um tipo <strong>de</strong> sensores comum são os que me<strong>de</strong>m a temperatura directamente em<br />
contacto com o tímpano, este tipo <strong>de</strong> sensores são classificados <strong>de</strong> invasivos. Outro tipo <strong>de</strong><br />
sensores bastante usado actualmente em termómetros digitais é o dos sensores infra-vermelhos.<br />
O princípio <strong>de</strong> funcionamento <strong>de</strong>ste sensor consiste na medição da energia da radiação infra-<br />
vermelha emitida pela membrana timpânica e <strong>de</strong> tecidos vizinhos [11]. Ambos os sensores têm<br />
um grau <strong>de</strong> eficácia superior a outros sensores <strong>de</strong> temperatura corporal.<br />
2.3 Re<strong>de</strong>s <strong>de</strong> área corporais (BAN)<br />
Uma re<strong>de</strong> <strong>de</strong> área corporal (em inglês Body Area Networks) é um sistema distribuído<br />
composto por dispositivos, conectados por um meio <strong>de</strong> comunicação e alimentados por baterias,<br />
localizado no corpo humano [12]. Um tipo <strong>de</strong> re<strong>de</strong>s <strong>de</strong> área corporais é as re<strong>de</strong>s <strong>de</strong> sensores<br />
corporais (Body Sensor Networks – BSN), on<strong>de</strong> as re<strong>de</strong>s são constituídas por sensores junto dos<br />
dispositivos que englobam a re<strong>de</strong>. Nestas re<strong>de</strong>s, o nó sensor é geralmente composto por uma<br />
13
14<br />
Estado da arte e Fundamentos teóricos<br />
unida<strong>de</strong> <strong>de</strong> processamento, memória, interfaces, sensores, rádio transmissor e receptor, e fonte<br />
<strong>de</strong> alimentação [13].<br />
Desenvolvimento das re<strong>de</strong>s corporais <strong>de</strong> sensores<br />
A tecnologia BAN é uma tecnologia emergente, que surge como um produto natural da<br />
combinação entre as re<strong>de</strong>s corporais existentes e a engenharia biomédica. Existem muitas<br />
aplicações para as BANs, sendo os casos mais comuns a monitorização médica, monitorização<br />
<strong>de</strong>sportiva, áudio sem fios, integração em dispositivos móveis e ví<strong>de</strong>o pessoal. Cada uma <strong>de</strong>stas<br />
aplicações tem requisitos específicos em termos <strong>de</strong> largura <strong>de</strong> banda, velocida<strong>de</strong> <strong>de</strong><br />
transmissão, potência ou distância <strong>de</strong> sinal. O IEEE (Institute of Electric and Electronic<br />
Engineers) 802.15 é o grupo <strong>de</strong> <strong>de</strong>senvolvimento para Wireless Personal Area Networks (WPAN),<br />
on<strong>de</strong> se situam as BANs e tem <strong>de</strong>senvolvido aplicações com boa relação consumo <strong>de</strong> energia e<br />
taxa <strong>de</strong> transmissão <strong>de</strong> dados. A Figura 7 <strong>de</strong>screve a posição i<strong>de</strong>al das BANs no espectro da<br />
relação consumo <strong>de</strong> energia/taxa <strong>de</strong> transmissão <strong>de</strong> dados (adaptado <strong>de</strong> [14]).<br />
Figura 7: Velocida<strong>de</strong> <strong>de</strong> transmissão vs Consumo <strong>de</strong> energia [14] data: 23/04/2008.<br />
Como se po<strong>de</strong> verificar, a gama <strong>de</strong> dispositivos BAN po<strong>de</strong> variar muito em termos <strong>de</strong><br />
largura <strong>de</strong> banda e consumo <strong>de</strong> energia, no entanto tem maioritariamente consumos <strong>de</strong> energia<br />
bastante baixos e uma taxa <strong>de</strong> transmissão <strong>de</strong> dados média/baixa, quando comparados com<br />
outros sistemas <strong>de</strong> comunicação sem fios.
Capítulo - 2<br />
Características e funcionamento<br />
As re<strong>de</strong>s corporais <strong>de</strong> sensores (BSN) têm algumas características que são comuns a<br />
várias aplicações. Uma das características é a tolerância a alguns tipos <strong>de</strong> falhas, <strong>de</strong>vido à<br />
gran<strong>de</strong> probabilida<strong>de</strong> <strong>de</strong> ocorrerem problemas na re<strong>de</strong>. Outra característica é o consumo <strong>de</strong><br />
energia que muitas vezes é um problema, geralmente nas aplicações em que é necessário o<br />
funcionamento por longos períodos <strong>de</strong> tempo. Nestes casos, os sensores po<strong>de</strong>m esgotar a<br />
energia da fonte <strong>de</strong> alimentação e <strong>de</strong>ixar <strong>de</strong> funcionar correctamente. Po<strong>de</strong> acontecer também<br />
que os dispositivos <strong>de</strong>ixem <strong>de</strong> funcionar, por causa <strong>de</strong> falhas <strong>de</strong> comunicação entre dois ou mais<br />
nós, e neste caso é necessário utilizar mecanismos <strong>de</strong> redundância que tratem estes problemas<br />
[15].<br />
Uma re<strong>de</strong> <strong>de</strong> sensores sem fios tem o seu tempo <strong>de</strong> vida <strong>de</strong>pen<strong>de</strong>nte da qualida<strong>de</strong> <strong>de</strong><br />
serviço e energia disponível. Para aumentar esse tempo <strong>de</strong> vida po<strong>de</strong>m-se seguir vários<br />
caminhos, um <strong>de</strong>les é precisamente utilizar sensores que usam energias renováveis para se<br />
alimentarem, como por exemplo a energia solar, embora estas fontes sejam limitadas. Outra<br />
solução é a obtenção <strong>de</strong> energia através do próprio corpo humano on<strong>de</strong> é aplicada a re<strong>de</strong> sem<br />
fios [15].<br />
Projectos actuais<br />
As re<strong>de</strong>s <strong>de</strong> sensores no corpo humano têm diversas aplicações e existem actualmente<br />
vários projectos que estão em <strong>de</strong>senvolvimento ou que foram implementados actualmente.<br />
Existem aplicações na área da monitorização médica, on<strong>de</strong> os pacientes po<strong>de</strong>m ser<br />
monitorizados 24 horas por dia pelo sistema. É o caso do projecto Human++ <strong>de</strong>senvolvido na<br />
Bélgica, on<strong>de</strong> um dispositivo na re<strong>de</strong> tem a capacida<strong>de</strong> <strong>de</strong> comunicar com qualquer outro<br />
dispositivo [14]. Um dispositivo central pré-<strong>de</strong>finido é <strong>de</strong>signado para todas as comunicações, e<br />
publica informações sobre todos os serviços (Figura 8). Po<strong>de</strong>m ser avaliados parâmetros como a<br />
temperatura corporal, oximetria, pressão sanguínea, níveis <strong>de</strong> glicose ou funções respiratórias.<br />
15
Figura 8: Projecto Human++ <strong>de</strong>senvolvido na Bélgica [14].<br />
16<br />
Estado da arte e Fundamentos teóricos<br />
Outro projecto sobre as re<strong>de</strong>s <strong>de</strong> monitorização do corpo humano é uma investigação<br />
levada a cabo na universida<strong>de</strong> do Dallas nos Estados Unidos da América recorrendo à utilização<br />
das BANs para avaliar o equilíbrio do corpo humano. Este sistema interpreta as activida<strong>de</strong>s<br />
musculares baseado em sensores <strong>de</strong> inércia e <strong>de</strong> electromiografia, enquanto se executam<br />
movimentos [16].<br />
Existem outras aplicações, nomeadamente em áudio sem fios, on<strong>de</strong> um dispositivo<br />
áudio po<strong>de</strong> comunicar com outros dispositivos na re<strong>de</strong> como PDA’s (Personal Digital Assistant),<br />
telemóveis ou computadores (Figura 9).<br />
Limitações das Re<strong>de</strong>s <strong>de</strong> Área Corporais<br />
Figura 9: Áudio sem fios.<br />
Um dos maiores problemas das re<strong>de</strong>s <strong>de</strong> sensores para monitorização do corpo humano<br />
continua a ser o tempo <strong>de</strong> funcionamento dos dispositivos, que é <strong>de</strong>terminado principalmente<br />
pelo consumo da energia armazenada pelas baterias. Isto <strong>de</strong>ve-se ao facto da evolução da<br />
capacida<strong>de</strong> <strong>de</strong> armazenamento <strong>de</strong> energia das baterias não ter acompanhado a evolução dos
Capítulo - 2<br />
<strong>de</strong>mais dispositivos computacionais. Para lidar com a limitação imposta pelas baterias,<br />
actualmente existem duas principais abordagens: a a<strong>de</strong>quação do software e do hardware para o<br />
uso racional da energia eléctrica e a extracção da energia necessária do meio no qual o nó<br />
sensor é utilizado. A primeira abordagem é a mais utilizada, no entanto a segunda abordagem<br />
tem evoluído <strong>de</strong> forma significativa. Em alguns sistemas e-têxteis a energia po<strong>de</strong> ser obtida pelo<br />
uso <strong>de</strong> transdutores que convertem energia mecânica, por exemplo, obtida dos movimentos do<br />
corpo humano, em energia eléctrica, necessária para a alimentação dos circuitos electrónicos.<br />
Um exemplo disso é o sistema shoes generators apresentado na Figura 10, on<strong>de</strong> é gerada<br />
energia eléctrica até 60 mW (miliwatts) <strong>de</strong> potência [17].<br />
Figura 10: Sapatilhas geradoras <strong>de</strong> energia. Projecto Shoes Generators, <strong>de</strong>senvolvido por MIT Media Laboratory [17].<br />
Na próxima secção serão abordados os protocolos <strong>de</strong> comunicação sem fios <strong>de</strong> curto<br />
alcance, visto estes estarem na base <strong>de</strong> todas as re<strong>de</strong>s corporais <strong>de</strong> sensores e constituírem um<br />
elemento fundamental no funcionamento dos mesmos.<br />
2.4 Protocolos <strong>de</strong> comunicação sem fios <strong>de</strong> curto<br />
alcance<br />
As várias alternativas e protocolos para a comunicação sem fios, têm-se revelado<br />
bastante importantes no <strong>de</strong>senvolvimento tecnológico, mais concretamente no ramo das<br />
telecomunicações. No início <strong>de</strong>ste projecto foram consi<strong>de</strong>rados dois protocolos distintos, Zigbee<br />
e Bluetooth, que têm ambos características importantes para a aplicação, no entanto têm<br />
também alguns pontos menos favoráveis para este caso.<br />
17
18<br />
Estado da arte e Fundamentos teóricos<br />
Foram ainda consi<strong>de</strong>rados outros protocolos <strong>de</strong> comunicação <strong>de</strong> curto alcance como<br />
<strong>de</strong>monstrado na Figura 11, em que se compara a relação entre o alcance (range) e a taxa <strong>de</strong><br />
transmissão <strong>de</strong> dados (data rate) dos diferentes protocolos.<br />
Figura 11: Posicionamento das tecnologias <strong>de</strong> comunicação sem fios, adaptado <strong>de</strong> [18].<br />
Para este tipo <strong>de</strong> aplicações, os protocolos que mais se a<strong>de</strong>quam são o Zigbee e o<br />
Bluetooth visto terem consumos <strong>de</strong> energia mais baixos que os restantes. O ZigBee foi<br />
<strong>de</strong>senvolvido para monitorização <strong>de</strong> sistemas, enquanto o Bluetooth é mais apropriado em<br />
aplicações que requerem uma maior taxa <strong>de</strong> transmissão <strong>de</strong> dados, como por exemplo as re<strong>de</strong>s<br />
Ad-hoc ou sistemas para transmissão <strong>de</strong> áudio ou <strong>de</strong> dados ponto a ponto.<br />
Na Tabela 2 são comparados estes dois protocolos segundo algumas características<br />
importantes para a aplicação como o alcance, a taxa <strong>de</strong> transmissão <strong>de</strong> dados, consumo <strong>de</strong><br />
energia, ou número <strong>de</strong> dispositivos por re<strong>de</strong>. Verifica-se, por exemplo, que o Zigbee tem um<br />
menor consumo <strong>de</strong> energia, alta flexibilida<strong>de</strong> e a possibilida<strong>de</strong> <strong>de</strong> junção <strong>de</strong> 65000 nós na re<strong>de</strong>,<br />
por outro lado o Bluetooth tem taxas <strong>de</strong> transmissão <strong>de</strong> dados mais elevadas [19], o que é<br />
importante para o sistema suportar vários nós sensores na re<strong>de</strong> a comunicarem sem per<strong>de</strong>rem<br />
dados.
Capítulo - 2<br />
Tabela 2: Comparação dos protocolos Zigbee e Bluetooth, adaptado <strong>de</strong> [20].<br />
Característica Zigbee<br />
(IEEE 802.15.4)<br />
Frequência <strong>de</strong> Operação 868 MHz, 902-928 MHz,<br />
Alcance<br />
Projectado<br />
Kits especiais ou ambiente externo<br />
2,4GHz ISM<br />
10-100 m<br />
Até 400 m<br />
19<br />
Bluetooth<br />
(IEEE 802.15.1)<br />
2,4 GHz ISM<br />
10 m<br />
Acima <strong>de</strong> 100 m<br />
Potência Nominal <strong>de</strong> Transmissão (-25) - 0 dBm 0 - 10 dBm<br />
Taxa <strong>de</strong> transmissão máxima 250 Kbps 1 Mbps<br />
Número <strong>de</strong> canais RF 1/10; 16 79<br />
Tipo <strong>de</strong> Modulação BPSK (+ ASK), O-QPSK GFSK<br />
Propagação DSSS FHSS<br />
Latência (típica)<br />
Junção <strong>de</strong> novo slave<br />
Acesso ao canal<br />
30 ms<br />
5 ms<br />
Perfil <strong>de</strong> Alimentação Anos<br />
Requer alimentação do slave<br />
optimizada<br />
Segurança 128 bits AES e <strong>de</strong>finível na<br />
camada <strong>de</strong> aplicação<br />
20 s<br />
2 ms<br />
Dias<br />
Funcionalida<strong>de</strong>s adhoc<br />
maximizadas<br />
64 bits, 128 bits<br />
Complexida<strong>de</strong> Simples Complexo<br />
Topologias <strong>de</strong> Re<strong>de</strong> Malha, Estrela e Árvore Adhoc piconets<br />
Número <strong>de</strong> dispositivos por re<strong>de</strong> 2-65000 8<br />
Protecção <strong>de</strong> dados 32-bit CRC 16-bit CRC<br />
Flexibilida<strong>de</strong> Muito alta Média, <strong>de</strong>pen<strong>de</strong>nte do perfil<br />
De seguida irá ser abordado cada um <strong>de</strong>stes protocolos <strong>de</strong> forma mais pormenorizada,<br />
<strong>de</strong> modo a se perceber melhor o seu funcionamento.<br />
2.4.1 802.15.4<br />
A especificação 802.15.4, normalizada pelo IEEE, foi introduzida para preencher um<br />
nicho <strong>de</strong> mercado que os protocolos Bluetooth e 802.15.3 não satisfaziam. Na sua forma mais
20<br />
Estado da arte e Fundamentos teóricos<br />
básica, este protocolo permite uma comunicação <strong>de</strong> 10 metros com taxas <strong>de</strong> transmissão <strong>de</strong><br />
dados <strong>de</strong> 250 kbps.<br />
Este protocolo <strong>de</strong>fine uma estrutura baseada em camadas, que distribuem entre si<br />
diferentes tarefas. Essa estrutura é baseada no mo<strong>de</strong>lo <strong>de</strong> referência <strong>de</strong> comunicação em re<strong>de</strong><br />
OSI (Open Systems Interconnection) estabelecido pela ISO (International Standard Organization),<br />
on<strong>de</strong> foram <strong>de</strong>finidas, primeiramente, duas camadas (Figura 12). A camada física − Physical<br />
Layer (PHY) − é a camada mais baixa da pilha protocolar e é implementada em hardware. Tem<br />
como função codificar os bits que são enviados, <strong>de</strong>scodificar os que são recebidos e receber<br />
informação fornecida pela camada MAC, como por exemplo informação sobre o tráfego do canal,<br />
qualida<strong>de</strong> da conexão ou potência do sinal recebido. A camada <strong>de</strong> acesso ao meio − Medium<br />
Access Control (MAC) – controla o acesso ao canal <strong>de</strong> rádio. Nesta camada são gerados e<br />
reconhecidos os en<strong>de</strong>reços dos outros dispositivos da re<strong>de</strong>, é feita a verificação das sequências<br />
das tramas controlo (frame check), e sincronização <strong>de</strong> tramas no modo <strong>de</strong> transmissão non-<br />
beacon (explicado na secção seguinte) [21].<br />
Figura 12: Arquitectura protocolar do protocolo 802.15.4, adaptado <strong>de</strong> [22].<br />
Este protocolo especifica uma re<strong>de</strong> <strong>de</strong> comunicação sem fios caracterizada pela baixa<br />
taxa <strong>de</strong> transmissão <strong>de</strong> dados, curto alcance, baixo consumo <strong>de</strong> energia, custo reduzido e<br />
simplicida<strong>de</strong>. É com base neste protocolo, que foi criado o Zigbee.<br />
Como muitas das características e processos <strong>de</strong> funcionamento do 802.15.4 são iguais<br />
ao protocolo Zigbee, estas serão explicadas na secção seguinte, juntamente com o que o Zigbee<br />
acrescenta.
Capítulo - 2<br />
2.4.2 Zigbee<br />
O protocolo Zigbee nasceu da necessida<strong>de</strong> <strong>de</strong> uniformizar os protocolos para garantir a<br />
interoperabilida<strong>de</strong> entre os sistemas e foi criado pelo grupo Zigbee Alliance.<br />
Consi<strong>de</strong>rações técnicas<br />
O protocolo base do Zigbee, o 802.15.4 foi <strong>de</strong>signado para operar em bandas <strong>de</strong><br />
radiofrequência isentas <strong>de</strong> licenciamento, internacionalmente conhecidas como bandas ISM<br />
(Industrial, Scientific, Medicine), que variam <strong>de</strong> acordo com o local geográfico (Tabela 3).<br />
Bandas RF<br />
Tabela 3: Bandas <strong>de</strong> radiofrequência do protocolo 802.15.4 e protocolo Zigbee, adaptado <strong>de</strong> [22].<br />
Gama <strong>de</strong> Frequência<br />
(MHz)<br />
Taxa <strong>de</strong> transferência <strong>de</strong><br />
dados (Kbps)<br />
21<br />
Número <strong>de</strong> canais Área geográfica<br />
868 MHz 868.3 20 0 (1 canal) Europa<br />
925 MHz 902-928 40 1-10 (10 canais) América, Austrália<br />
2400 MHz 2405-2480 250 11-26 (16 canais) Global<br />
A principal característica do Zigbee é o baixo consumo <strong>de</strong> energia permitindo aos<br />
dispositivos entrar em modo “sleep” quando não têm tarefas a efectuar.<br />
Os dispositivos físicos po<strong>de</strong>m ser:<br />
FFD (Full Function Device) – po<strong>de</strong>m funcionar em qualquer topologia da re<strong>de</strong>,<br />
<strong>de</strong>sempenhando a função <strong>de</strong> coor<strong>de</strong>nador da re<strong>de</strong> e consequentemente ter acesso a<br />
todos os outros dispositivos. São dispositivos <strong>de</strong> construção mais complexa;<br />
RFD (Reduced Function Device) – são limitados a uma configuração com topologia em<br />
estrela, não po<strong>de</strong>ndo actuar como coor<strong>de</strong>nador da re<strong>de</strong>, apenas comunicar com este.<br />
São dispositivos <strong>de</strong> construção mais simples.<br />
Às duas classes anteriores <strong>de</strong> dispositivos físicos correspon<strong>de</strong>m três tipos <strong>de</strong> dispositivos<br />
lógicos: Coor<strong>de</strong>nador (Coordinator), Router e Dispositivo final (End Device), e têm as funções<br />
<strong>de</strong>scritas na Tabela 4.
Dispositivo<br />
Coor<strong>de</strong>nador<br />
Tabela 4: Tipo <strong>de</strong> dispositivos lógicos numa re<strong>de</strong> Zigbee.<br />
Tipo <strong>de</strong> dispositivo físico<br />
associado<br />
(IEEE)<br />
FFD<br />
Router FFD<br />
Dispositivo final RFD ou FFD<br />
22<br />
Estado da arte e Fundamentos teóricos<br />
Função<br />
Forma a re<strong>de</strong>, atribui en<strong>de</strong>reços.<br />
Existe apenas um por re<strong>de</strong>.<br />
Permite que mais nós se juntem à re<strong>de</strong>, ao aumentar o<br />
seu alcance físico. Po<strong>de</strong> também efectuar funções <strong>de</strong><br />
controlo ou monitorização. A sua existência é opcional.<br />
Efectua acção <strong>de</strong> controlo ou monitorização através do<br />
dispositivo que lhe esteja associado (sensor, controlador,<br />
actuador…).<br />
O protocolo Zigbee permite três topologias <strong>de</strong> re<strong>de</strong> distintas, a configuração em estrela<br />
(Star), árvore (Tree) e em malha (Mesh) (ver Figura 13).<br />
Na topologia em estrela um dispositivo actua como coor<strong>de</strong>nador <strong>de</strong> re<strong>de</strong>, assumindo um<br />
papel central e <strong>de</strong> comunicação directa com todos os nós sensores. Toda a informação da re<strong>de</strong><br />
passa pelo nó coor<strong>de</strong>nador (ver Figura 13b). Na topologia em malha os dispositivos tipo FFD<br />
(Coor<strong>de</strong>nador/Routers) são livres <strong>de</strong> comunicar com outro dispositivo FFD. Isto permite a expansão da<br />
re<strong>de</strong> física da re<strong>de</strong>, ficando assim com maior alcance. O coor<strong>de</strong>nador regista toda a entrada e saída <strong>de</strong><br />
dispositivos, mas não tem um papel tão prepon<strong>de</strong>rante em termos <strong>de</strong> fluxo <strong>de</strong> informação como na<br />
configuração em estrela (ver Figura 13 a). Por último, na topologia em árvore, em semelhança com a<br />
configuração em malha também são usados dispositivos Router. No entanto, nesta topologia efectua-se a<br />
distribuição <strong>de</strong> dados e mensagens <strong>de</strong> controlo numa estrutura hierárquica, on<strong>de</strong> o Coor<strong>de</strong>nador assume<br />
o papel <strong>de</strong> nó “nuclear” da re<strong>de</strong> (ver Figura 13 c)[23].<br />
Figura 13: Topologias <strong>de</strong> re<strong>de</strong>. A: Malha, B: Estrela, C: Árvore, adaptado <strong>de</strong> [43].
Capítulo - 2<br />
Todos estes nós que constituem a re<strong>de</strong>, possuem uma arquitectura protocolar composta<br />
por camadas que comunicam entre si através <strong>de</strong> Pontos <strong>de</strong> Acesso ao Serviço (SAP). A pilha<br />
protocolar ZigBee é formada pela camada física (PHY) e camada <strong>de</strong> controlo <strong>de</strong> acesso ao meio<br />
(MAC), especificadas conforme o protocolo 802.15.4. É constituída ainda pela camada <strong>de</strong> re<strong>de</strong><br />
(NWK) e pela camada <strong>de</strong> aplicação (APL), que contém as sub-camadas Aplication Suport Sub-<br />
Layer (APS), ZigBee Device Object (ZDO) e Aplication Framework (AF). Na estrutura também são<br />
adicionados os objectos <strong>de</strong> aplicação <strong>de</strong>finidos pelo utilizador (ver Figura 14) [24]. A seguir<br />
consta uma breve <strong>de</strong>scrição das funções <strong>de</strong> cada camada.<br />
Figura 14: Pilha protocolar Zigbee, adaptado <strong>de</strong> [25].<br />
As duas camadas mais baixas da pilha protocolar são a camada física, e a camada MAC.<br />
Estas camadas foram <strong>de</strong>finidas pelo protocolo 802.15.4 e já foram explicadas na secção<br />
referente a este protocolo.<br />
A camada <strong>de</strong> re<strong>de</strong> (NWK) é, hierarquicamente, a primeira camada que é <strong>de</strong>finida no<br />
protocolo ZigBee, e tem a responsabilida<strong>de</strong> <strong>de</strong> iniciar ou terminar uma ligação <strong>de</strong> um dispositivo<br />
à re<strong>de</strong>, <strong>de</strong>scobrir novos dispositivos na vizinhança (e o armazenamento <strong>de</strong> informação relativa<br />
aos mesmos) e atribuir en<strong>de</strong>reços. É ainda nesta camada que estão presentes os mecanismos<br />
<strong>de</strong> <strong>de</strong>scoberta <strong>de</strong> caminhos e encaminhamento <strong>de</strong> informação assim como <strong>de</strong> configuração <strong>de</strong><br />
novos dispositivos.<br />
Quanto à camada <strong>de</strong> aplicação (APL), contém as sub-camadas APS, ZDO e a AF. Esta<br />
camada preten<strong>de</strong> assegurar uma correcta gestão e suporte para as diversas aplicações[25].<br />
23
Características operacionais<br />
24<br />
Estado da arte e Fundamentos teóricos<br />
O protocolo Zigbee <strong>de</strong>fine mecanismos <strong>de</strong> acesso e <strong>de</strong> gestão <strong>de</strong> canal. O mecanismo<br />
que utiliza é o CSMA-CA, on<strong>de</strong> um nó verifica a ausência <strong>de</strong> tráfego no canal antes <strong>de</strong> iniciar<br />
uma transmissão, com o objectivo <strong>de</strong> diminuir a possibilida<strong>de</strong> <strong>de</strong> colisões. Quando um canal é<br />
encontrado e <strong>de</strong>terminado como livre, o nó inicia a transmissão; sempre que ele suspeitar <strong>de</strong><br />
ocorrência <strong>de</strong> colisão, então pára imediatamente <strong>de</strong> transmitir e espera um tempo aleatório<br />
antes <strong>de</strong> tentar novamente.<br />
Existem dois modos operação da re<strong>de</strong>, modo beacon (sinalizado) e modo non-beacon<br />
(não sinalizado). No modo beacon os Routers transmitem periodicamente uma sinalização<br />
(beacons) a confirmar a sua presença aos outros nós da mesma re<strong>de</strong>, sendo que os restantes<br />
nós só necessitam <strong>de</strong> estar activos no momento da sinalização. Tal permite mantê-los no modo<br />
sleep entre sinalizações, com evi<strong>de</strong>nte vantagem em termos <strong>de</strong> consumo energético. Neste<br />
modo existe uma estrutura <strong>de</strong> superframe (ver Figura 15), que é utilizada quando é necessária<br />
ter uma garantia que o dispositivo ace<strong>de</strong>u ao canal. O superframe inicia com um beacon e é<br />
seguido por 16 intervalos <strong>de</strong> tempo iguais. Os primeiros nove intervalos (CAP - Contention<br />
access period) po<strong>de</strong>m ser usados por qualquer dispositivo, e os sete intervalos seguintes<br />
(<strong>de</strong>notados como GTS - Guaranteed Time Slots) são reservados e po<strong>de</strong>m ser alocados por um<br />
dispositivo através <strong>de</strong> um pedido [23].<br />
Figura 15: Estrutura Superframe [24].<br />
No modo non-beacon, a maioria dos dispositivos mantém os seus receptores<br />
permanentemente activos, sendo o consumo energético mais significativo, po<strong>de</strong>ndo tornar<br />
necessárias fontes <strong>de</strong> alimentação mais robustas.<br />
Ao nível do en<strong>de</strong>reçamento, o protocolo 802.15.4 especifica dois tipos <strong>de</strong> en<strong>de</strong>reço:
Capítulo - 2<br />
En<strong>de</strong>reços <strong>de</strong> re<strong>de</strong> <strong>de</strong> 16 bits: é atribuído a um nó quando se integra na re<strong>de</strong> e<br />
é único para cada nó na re<strong>de</strong>.<br />
En<strong>de</strong>reços <strong>de</strong> 64 bits: Cada nó contém um en<strong>de</strong>reço único permanente <strong>de</strong> 64<br />
bits que o i<strong>de</strong>ntifica na re<strong>de</strong>.<br />
Quanto ao modo <strong>de</strong> transmissão <strong>de</strong> dados, existem dois tipos <strong>de</strong> transmissão: directa<br />
em que a transferência <strong>de</strong> dados é feita do dispositivo <strong>de</strong> re<strong>de</strong> para o coor<strong>de</strong>nador e indirecta<br />
em que a transferência <strong>de</strong> dados é no sentido inverso, ou seja do coor<strong>de</strong>nador para o dispositivo<br />
<strong>de</strong> re<strong>de</strong>. Como já foi referido a transmissão po<strong>de</strong> ser feita no modo beacon ou non-beacon e o<br />
envio <strong>de</strong> acknowledgements é opcional, sendo importante para garantir a entrega das tramas no<br />
dispositivo <strong>de</strong> <strong>de</strong>stino (ver Figura 16)[25].<br />
Figura 16: Modos <strong>de</strong> Transmissão <strong>de</strong> dados. A-Directa com beacon activo, B: Directa com beacon inactivo, C:Indirecta.<br />
A transmissão <strong>de</strong> dados é efectuada no envio da mensagem Zigbee, que é constituída<br />
pelos dados a transmitir pelo dispositivo emissor, e pelo overhead acumulado das camadas que<br />
compõem a pilha protocolar. Na Figura 17 está <strong>de</strong>monstrado o formato e como são construídas<br />
as tramas ao longo das camadas, <strong>de</strong>s<strong>de</strong> a camada <strong>de</strong> aplicação do utilizador até à camada<br />
física.<br />
25
Figura 17: Formato da mensagem Zigbee [26].<br />
26<br />
Estado da arte e Fundamentos teóricos
Capítulo - 2<br />
O protocolo Zigbee é utilizado nas mais variadíssimas aplicações em diferentes áreas,<br />
como por exemplo a domótica - para ligar/<strong>de</strong>sligar lâmpadas ou outros dispositivos, abrir/fechar<br />
portas, janelas; a saú<strong>de</strong>, na monitorização <strong>de</strong> sinais vitais do corpo humano para prevenção <strong>de</strong><br />
doenças ou fazer diagnósticos; monitorização <strong>de</strong> veículos, como a aquisição <strong>de</strong> dados dos vários<br />
sensores hoje presentes nos automóveis ou outros meios <strong>de</strong> transporte; Na agricultura é<br />
também uma área on<strong>de</strong> o Zigbee é utilizado para medir por exemplo a humida<strong>de</strong> dos terrenos<br />
<strong>de</strong> áreas elevadas [22].<br />
2.4.3 Bluetooth<br />
A tecnologia Bluetooth surgiu em 1994, como uma das tecnologias <strong>de</strong> comunicação<br />
sem fios para substituir os tradicionais fios <strong>de</strong> conexão entre dispositivos electrónicos. Baseado<br />
no padrão 802.11 do IEEE, utiliza para transmissão <strong>de</strong> dados, ondas <strong>de</strong> rádio frequência e<br />
busca promover uma solução <strong>de</strong> baixo custo e <strong>de</strong> consumo <strong>de</strong> energia para transmissão <strong>de</strong><br />
dados e voz. A tecnologia Bluetooth reúne soluções para as Wireless Personal Area Network<br />
(WPANs), para alcances até 10 metros, mas po<strong>de</strong> atingir os 100 metros se utilizar circuitos<br />
electrónicos com maior potência [27].<br />
Características principais<br />
O protocolo Bluetooth preten<strong>de</strong> estabelecer um padrão mundial na operativida<strong>de</strong> entre<br />
diferentes dispositivos electrónicos. Para sustentar este objectivo a tecnologia assenta nalguns<br />
pontos-chave essenciais:<br />
Curto alcance: existe uma enorme varieda<strong>de</strong> <strong>de</strong> dispositivos electrónicos que necessitam<br />
<strong>de</strong> comunicação <strong>de</strong> curto alcance, como por exemplo computadores, telemóveis,<br />
impressoras, PDAs, e outros;<br />
Baixo consumo: como está implementado para curtos alcances não são necessárias<br />
gran<strong>de</strong>s potências <strong>de</strong> transmissão (0 a 10 dBm).<br />
Baixo custo: A Bluetooth Special Interest Group (SIG) estabeleceu um limite máximo <strong>de</strong> 5<br />
dólares para o custo final <strong>de</strong> um terminal Bluetooth;<br />
Taxa <strong>de</strong> transmissão <strong>de</strong> dados elevada: Tem uma taxa <strong>de</strong> transmissão <strong>de</strong> dados elevada<br />
quando comparada com outras tecnologias <strong>de</strong> comunicações <strong>de</strong> curto alcance (1 Mbps);<br />
27
28<br />
Estado da arte e Fundamentos teóricos<br />
Especificação livre: A especificação para comunicações Bluetooth <strong>de</strong>senvolvida pelo<br />
grupo SIG está disponível publicamente e com o intuito <strong>de</strong> estimular a sua utilização e<br />
aceitação mundial.<br />
Consi<strong>de</strong>rações técnicas<br />
Os dispositivos Bluetooth operam na banda ISM <strong>de</strong> 2,4 GHz, que está disponível<br />
mundialmente, sendo <strong>de</strong>stinada para usos gerais em aplicações industriais, científicas e<br />
médicas (ISM), tal como o Zigbee. Existem ainda outras fontes <strong>de</strong> RF que ocupam esta banda <strong>de</strong><br />
ISM como por exemplo alarmes <strong>de</strong> carro, telefones sem fios e até fontes <strong>de</strong> ruído aleatório como<br />
microondas ou lâmpadas <strong>de</strong> vapor <strong>de</strong> sódio. Esta partilha <strong>de</strong> banda contribui significativamente<br />
para a presença <strong>de</strong> sinais que interferem no sinal Bluetooth, tornando a banda ISM num meio<br />
pouco estável ou confiável. Para enfrentar este meio hostil, esta tecnologia emprega algumas<br />
técnicas como o Frequency Hopping Spread Spectrum (FHSS), que divi<strong>de</strong> o espectro total <strong>de</strong><br />
operação em pequenas bandas ou canais [28].<br />
No processo <strong>de</strong> transmissão <strong>de</strong> dados por FHSS, os dados são divididos em pequenos<br />
pacotes, e são transmitidos sequencialmente. Após a transmissão <strong>de</strong> um pacote, o dispositivo<br />
Bluetooth selecciona um outro canal para a transmissão do próximo pacote, efectuando o<br />
chamado hopping <strong>de</strong> frequência. A sequência <strong>de</strong> hopping usada pela tecnologia Bluetooth é<br />
aleatória e realiza 1600 hops (saltos) por segundo. Assim dispositivos que compartilham a<br />
mesma banda reduzem a possibilida<strong>de</strong> <strong>de</strong> colisões, pois têm sequências <strong>de</strong> hopping diferentes.<br />
Esta sequência <strong>de</strong> hopping torna também as conexões mais seguras, uma vez que os receptores<br />
têm que conhecer a sequência para receber os pacotes e reconstruir a mensagem. Em termos<br />
<strong>de</strong> modulação é utilizada a técnica Gaussian Frequency Shift Keying (GFSK), que consiste em<br />
atribuir frequências diferentes para a onda portadora, em função do bit que é transmitido,<br />
passando os pulsos correspon<strong>de</strong>ntes aos bits transmitidos por um filtro Gaussiano [29].<br />
O protocolo Bluetooth especifica três níveis diferentes <strong>de</strong> potência <strong>de</strong> transmissão como<br />
se po<strong>de</strong> verificar na Tabela 5.
Capítulo - 2<br />
Classe<br />
Tabela 5: Níveis <strong>de</strong> potência <strong>de</strong> transmissão.<br />
Potência<br />
29<br />
Alcance<br />
1 100 mW (+20dBm) 100 m<br />
2 2,5 mW (+4 dBm) 25 m<br />
3 1 mW (0 dBm) 10 m<br />
Estas classes <strong>de</strong> potência possibilitam diferentes alcances para os dispositivos<br />
Bluetooth. A classe 3 tem alcances até 10 metros, enquanto a classe 1 atinge os 100 metros.<br />
Os dispositivos Bluetooth po<strong>de</strong>m operar como Master (mestre) ou como Slave (escravo).<br />
Um dispositivo Master po<strong>de</strong> comunicar simultaneamente com sete dispositivos Slaves no<br />
máximo, sendo que estes dispositivos só po<strong>de</strong>m comunicar directamente com o Master. O<br />
conjunto formado pelo Master-Slave é <strong>de</strong>nominado piconet. Todos os dispositivos, numa piconet<br />
obe<strong>de</strong>cem a uma mesma sequência <strong>de</strong> hopping <strong>de</strong> frequência, <strong>de</strong>finida pelo Master da piconet.<br />
A Figura 18 ilustra as duas situações <strong>de</strong> conexão possíveis <strong>de</strong>ntro <strong>de</strong> uma piconet: conexões<br />
ponto a ponto e conexões ponto a multiponto.<br />
Figura 18: (a): Piconets ponto a ponto, (b): ponto a multiponto, adaptado <strong>de</strong> [30].<br />
A área <strong>de</strong> cobertura <strong>de</strong> uma piconet é <strong>de</strong>finida pelo raio <strong>de</strong> alcance do dispositivo<br />
mestre. Áreas <strong>de</strong> cobertura maiores ou re<strong>de</strong>s com maior número <strong>de</strong> dispositivos po<strong>de</strong>m ser<br />
obtidos através da união <strong>de</strong> piconets, o que se <strong>de</strong>signa scatternet (Figura 19).
Figura 19: Dois exemplos <strong>de</strong> Scatternet, adaptado <strong>de</strong> [30].<br />
30<br />
Estado da arte e Fundamentos teóricos<br />
Na scatternet da Figura 19 (a), o dispositivo em comum actua como Master numa<br />
piconet e como Slave na outra. Na scatternet da Figura 19 (b), o dispositivo em comum opera<br />
como Slave nas duas piconets. A conexão <strong>de</strong> duas piconets numa scatternet é feita através <strong>de</strong><br />
um dispositivo que pertence simultaneamente às duas piconets, dividindo o seu tempo <strong>de</strong><br />
operação entre elas. O dispositivo em comum não po<strong>de</strong> operar como Master nas duas piconets<br />
uma vez que os Slaves são sincronizados à sequência <strong>de</strong> hopping do dispositivo Master da<br />
piconet. Por <strong>de</strong>finição, todos os dispositivos com um mesmo Master precisam pertencer a uma<br />
mesma piconet [31].<br />
Entre dispositivos Bluetooth existem dois tipos <strong>de</strong> conexões que po<strong>de</strong>m ser estabelecidas<br />
entre um Master e um Slave: conexões síncronas e assíncronas. Nas conexões assíncronas ou<br />
Asynchronous Connection-Less (ACL), a transmissão é feita a uma cadência não regular,<br />
baseando-se na troca <strong>de</strong> pacotes, e são as primeiras a serem estabelecidas entre dois<br />
dispositivos. A transmissão <strong>de</strong> dados é feita por pacotes DH (Data High rate) ou por pacotes DM<br />
(Data Medium rate) que transportam menor quantida<strong>de</strong> <strong>de</strong> dados como o próprio nome indica.<br />
A Conexão síncrona ou Synchronous Connection-Oriented (SCO), só po<strong>de</strong> ser criada a<br />
partir <strong>de</strong> uma conexão ACL estabelecida anteriormente. Um dispositivo Master po<strong>de</strong> estabelecer<br />
até 3 conexões SCO para um mesmo Slave, ou diferentes dispositivos Slaves. As Conexões SCO<br />
realizam uma transmissão regular <strong>de</strong> dados a uma taxa constante e igual para ambos os<br />
sentidos. As conexões SCO foram projectadas para a transmissão <strong>de</strong> áudio e estabelece um<br />
canal bidireccional e simétrico <strong>de</strong> 64 kbps. Isto correspon<strong>de</strong> a um canal <strong>de</strong> áudio digital com<br />
taxa <strong>de</strong> amostragem fixa em 8 kHz e resolução <strong>de</strong> 8 bits. O protocolo Bluetooth permite até 3<br />
conexões síncronas simultâneas por dispositivo, atingindo uma taxa máxima para transmissão<br />
<strong>de</strong> voz <strong>de</strong> 384 kbps.<br />
A tecnologia Bluetooth permite uma taxa máxima <strong>de</strong> transmissão <strong>de</strong> 1 Mbps. No<br />
entanto, por causa do overhead gerado pelos diversos protocolos do Bluetooth, a taxa efectiva
Capítulo - 2<br />
máxima <strong>de</strong> transmissão é <strong>de</strong> 723,2 kbps. Para conexões Bluetooth assíncronas, as taxas<br />
máximas <strong>de</strong> transmissão po<strong>de</strong>m ser diferentes para cada sentido do tráfego dos dados,<br />
<strong>de</strong>pen<strong>de</strong>ndo do tipo <strong>de</strong> pacote que utilizam (ver Tabela 6).<br />
Tabela 6: Taxas <strong>de</strong> transmissão para os pacotes usados em conexões assíncronas (ACL), adaptado <strong>de</strong> [32].<br />
Tipo do<br />
Pacote<br />
utilizado<br />
Taxa máxima com<br />
Transmissão simétrica<br />
(kbps)<br />
Taxa <strong>de</strong> transmissão<br />
assimétrica directa<br />
(kbps)<br />
31<br />
Taxa <strong>de</strong> transmissão<br />
assimétrica inversa<br />
(kbps)<br />
DM1<br />
108,8<br />
108,8<br />
108,8<br />
DH1 172,8 172,8 172,8<br />
DM3 258,1 387,2 54,4<br />
DH3 390,4 585,6 86,4<br />
DM5 286,7 477,8 36,3<br />
DH5 433,9 723,2 57,6<br />
Visando garantir a interoperabilida<strong>de</strong> <strong>de</strong> dispositivos Bluetooth <strong>de</strong> diferentes fabricantes,<br />
o Special Interest Group (SIG) <strong>de</strong>finiu uma pilha (stack) <strong>de</strong> protocolos para a tecnologia<br />
Bluetooth. A pilha <strong>de</strong> protocolos provê regras <strong>de</strong> como os softwares aplicativos <strong>de</strong>vem proce<strong>de</strong>r<br />
para encontrar dispositivos Bluetooth, como <strong>de</strong>vem <strong>de</strong>scobrir os serviços disponíveis e como<br />
utilizar esses serviços. A pilha <strong>de</strong> protocolos Bluetooth é organizada em diversas camadas, com<br />
níveis crescentes <strong>de</strong> abstracção. O número <strong>de</strong> camadas utilizadas em cada aplicação é variável,<br />
e <strong>de</strong>pen<strong>de</strong> do nível lógico <strong>de</strong> software que se <strong>de</strong>seja para o dispositivo Bluetooth. Inclusive,<br />
algumas das camadas mais altas da pilha <strong>de</strong> protocolos são específicas para <strong>de</strong>terminadas<br />
aplicações, como aplicações <strong>de</strong> telefonia. A pilha <strong>de</strong> protocolos <strong>de</strong>finida pela especificação<br />
Bluetooth [33], po<strong>de</strong> ser consultada no anexo 2, juntamente com a <strong>de</strong>scrição da função <strong>de</strong> cada<br />
camada da pilha.<br />
Consi<strong>de</strong>rações operacionais<br />
Nesta Secção, são <strong>de</strong>scritos os aspectos funcionais da tecnologia Bluetooth incorporados<br />
pelo grupo <strong>de</strong> protocolos <strong>de</strong> transporte da pilha <strong>de</strong> protocolos. Todos esses aspectos são<br />
configurados via software, uma vez que os módulos mais recentes já incorporam todo o grupo <strong>de</strong><br />
protocolos <strong>de</strong> transporte nos circuitos integrados. No texto, os termos em inglês observados com
32<br />
Estado da arte e Fundamentos teóricos<br />
maior frequência na especificação Bluetooth serão mantidos, pois ainda não existe padronização<br />
na tradução para português.<br />
A Figura 20 mostra os principais estados operacionais <strong>de</strong> conexão para dispositivos<br />
Bluetooth. Quando o dispositivo já pertence a uma piconet, o seu estado correspon<strong>de</strong> a<br />
“conectado”. No estado Stand-By (espera), o dispositivo não pertence a nenhuma piconet, nem<br />
se encontra em processo <strong>de</strong> formação <strong>de</strong> uma piconet ou união com uma já existente. O estado<br />
Stand-By é o estado operacional padrão para um dispositivo Bluetooth.<br />
Figura 20: Estados operacionais para dispositivos Bluetooth.<br />
Para dois dispositivos Bluetooth se conectarem, é necessário que estejam <strong>de</strong>ntro da<br />
distância <strong>de</strong> alcance. Este estabelecimento <strong>de</strong> conexão passa por duas fases. Primeiramente, o<br />
dispositivo Master entra no modo Inquiry (investigação), on<strong>de</strong> procura dispositivos visíveis <strong>de</strong><br />
uma <strong>de</strong>terminada classe. Para um dispositivo Slave estar visível, é necessário habilitar o modo<br />
Inquiry Scan (procura <strong>de</strong> dispositivos). Através do Inquiry, o dispositivo mestre obtém uma lista<br />
dos dispositivos da classe especificada <strong>de</strong> interesse que estão <strong>de</strong>ntro do seu alcance e seus<br />
respectivos en<strong>de</strong>reços. Cada dispositivo Bluetooth possui um en<strong>de</strong>reço <strong>de</strong> 48 bits único no<br />
mundo. Após escolher com qual dispositivo fará a conexão, o dispositivo Master entra em modo<br />
Paging (convocação). Neste modo, o dispositivo mestre requisita a conexão ao dispositivo<br />
escravo, utilizando para isso o en<strong>de</strong>reço <strong>de</strong> 48 bits <strong>de</strong>ste dispositivo Slave obtido no modo<br />
Inquiry. O dispositivo Slave po<strong>de</strong> ser configurado para respon<strong>de</strong>r ou não às convocações do<br />
dispositivo Master. Para respon<strong>de</strong>r, precisa estar com o modo Page Scan (procura por<br />
convocações) habilitado [34].<br />
Os estados intermediários Inquiry e Page implementam conceitos <strong>de</strong> “i<strong>de</strong>ntificabilida<strong>de</strong>”<br />
e “conectabilida<strong>de</strong>” para dispositivos Bluetooth. Os dispositivos escravos po<strong>de</strong>m ser<br />
configurados <strong>de</strong> modo a não respon<strong>de</strong>rem às procuras <strong>de</strong> i<strong>de</strong>ntificação vindos <strong>de</strong> dispositivos<br />
em modo Inquiry, tornando-se invisíveis. Os dispositivos Bluetooth também po<strong>de</strong>m ser<br />
configurados <strong>de</strong> modo a não respon<strong>de</strong>rem às solicitações <strong>de</strong> conexão provenientes <strong>de</strong>
Capítulo - 2<br />
dispositivos em modo Page. Nestes casos, tais dispositivos não po<strong>de</strong>m receber conexões,<br />
somente iniciá-las. Ainda mais, em ambas as situações <strong>de</strong> Inquiry e Page, os dispositivos<br />
Bluetooth po<strong>de</strong>m ser configurados para respon<strong>de</strong>rem somente aos dispositivos <strong>de</strong> <strong>de</strong>terminada<br />
classe. Nestas condições, uma conexão não po<strong>de</strong> ser criada à força por um dispositivo estranho,<br />
nem por um <strong>de</strong> classe distinta daquela na qual se encontra configurado.<br />
Os dispositivos Bluetooth têm mecanismos para reduzir ao máximo o consumo <strong>de</strong><br />
energia, <strong>de</strong> forma a maximizar a autonomia <strong>de</strong>stes sistemas. Estes mecanismos consistem<br />
basicamente na <strong>de</strong>sactivação do circuito <strong>de</strong> transmissão <strong>de</strong> radiofrequência, quando os<br />
dispositivos não estão a transmitir.<br />
Este sistema <strong>de</strong> aquisição <strong>de</strong>verá funcionar num ambiente pouco favorável aos sistemas<br />
electrónicos e que po<strong>de</strong> ser um obstáculo para a comunicação sem fios. Deverá ter-se em conta<br />
o meio <strong>de</strong> comunicação físico que po<strong>de</strong> impor adaptações ou novas abordagens relativamente<br />
aos protocolos utilizados, ainda que seja uma questão que está fora do âmbito <strong>de</strong>ste trabalho.<br />
Na próxima secção será <strong>de</strong>scrito todo o <strong>de</strong>senvolvimento do trabalho realizado ao longo<br />
<strong>de</strong>sta dissertação.<br />
33
3 Desenvolvimento<br />
3.1 Especificação <strong>de</strong> requisitos<br />
Como já foi referido anteriormente, esta dissertação tem como objectivo monitorizar o<br />
corpo <strong>de</strong> um atleta na prática <strong>de</strong> natação, através <strong>de</strong> vários sensores integrados num fato <strong>de</strong><br />
natação. Para fazer a aquisição dos sinais provenientes dos sensores, foi implementada uma<br />
re<strong>de</strong> Zigbee com módulos da Jennic, equipados com o microcontrolador JN5148. Para fazer<br />
testes relacionados com o <strong>de</strong>sempenho da re<strong>de</strong> foi ainda <strong>de</strong>senvolvido um sensor para medir<br />
temperatura timpânica.<br />
Os principais requisitos para este trabalho são os seguintes:<br />
Possibilida<strong>de</strong> <strong>de</strong> integração num fato <strong>de</strong> natação;<br />
Consumo reduzido <strong>de</strong> energia;<br />
Possibilida<strong>de</strong> <strong>de</strong> ligação <strong>de</strong> vários dispositivos à re<strong>de</strong> com sensores acoplados;<br />
Miniaturização dos módulos <strong>de</strong> aquisição <strong>de</strong> sinal;<br />
Alcance baixo entre os dispositivos <strong>de</strong> aquisição e o nó central (low power);<br />
Taxas <strong>de</strong> transmissão <strong>de</strong> dados <strong>de</strong> 64 kbps, correspon<strong>de</strong>nte a frequências <strong>de</strong><br />
amostragem na or<strong>de</strong>m dos 5 kHz (necessário para sinal <strong>de</strong> EMG).<br />
Medição dos parâmetros sem prejudicar o <strong>de</strong>sempenho do atleta.<br />
Quanto aos sensores, inicialmente foi pensado um circuito <strong>de</strong> condicionamento <strong>de</strong> sinal<br />
para o sensor <strong>de</strong> temperatura timpânica, com o conjunto sensor/circuito a obter resoluções na<br />
or<strong>de</strong>m dos 0.2 ºC com medições <strong>de</strong> temperatura na gama <strong>de</strong> 35 ºC a 43 ºC.<br />
34
Capítulo - 3<br />
3.2 Estruturação geral do sistema e hardware<br />
3.2.1 Estrutura geral<br />
O sistema geral é constituído por um dispositivo coor<strong>de</strong>nador (nó controlador) e vários<br />
dispositivo finais (nós sensores) que constituem a re<strong>de</strong> Zigbee, à qual está ligado o sistema <strong>de</strong><br />
aquisição <strong>de</strong> sinal e a aplicação gráfica. O sistema <strong>de</strong> aquisição <strong>de</strong> sinal é composto por um<br />
sensor <strong>de</strong> temperatura timpânica acoplado do circuito <strong>de</strong> condicionamento <strong>de</strong> sinal que por sua<br />
vez se liga ao respectivo dispositivo final da re<strong>de</strong> Zigbee/802.15.4. A aplicação gráfica que é<br />
executada num computador está ligada via UART-USB ao coor<strong>de</strong>nador da re<strong>de</strong>. Este sistema<br />
po<strong>de</strong> ser mais facilmente entendido com a visualização da<br />
Figura 21.<br />
Figura 21: Sistema Aquisição <strong>de</strong> sinal/Re<strong>de</strong>/Aplicação gráfica.<br />
A medição das gran<strong>de</strong>zas físicas, como é o caso da temperatura, é feita pelo sensor que<br />
transmite o sinal ao circuito <strong>de</strong> condicionamento <strong>de</strong> sinal para fazer o processamento analógico<br />
on<strong>de</strong> posteriormente é adquirido pelo ADC (Analog to Digital Converter) do microcontrolador que<br />
constitui o dispositivo final. Os valores analógicos medidos são convertidos para valores digitais e<br />
são processados para serem enviados ao nó central da re<strong>de</strong>, o coor<strong>de</strong>nador, que por sua vez<br />
envia os dados para o computador para serem vizualizados na aplicação gráfica (Figura 22).<br />
35
Integração no projecto <strong>BIOSWIM</strong><br />
Figura 22: Estrutura geral do sistema concebido.<br />
36<br />
Desenvolvimento<br />
O trabalho realizado é apenas uma parte do projecto <strong>BIOSWIM</strong>, como se po<strong>de</strong> verificar<br />
na Figura 23. Como foi dito anteriormente neste projecto foram estabelecidos os objectivos <strong>de</strong><br />
avaliação <strong>de</strong> vários parâmetros que serão medidos todos em simultâneo e em tempo real, num<br />
protótipo final do sistema. O número <strong>de</strong> nós estará <strong>de</strong>pen<strong>de</strong>nte do volume <strong>de</strong> dados adquiridos<br />
por unida<strong>de</strong> <strong>de</strong> tempo que exige a gran<strong>de</strong>za medida. Existem parâmetros que necessitam <strong>de</strong><br />
frequências <strong>de</strong> amostragem baixas e que po<strong>de</strong>m ser adquiridos e processados pelo mesmo<br />
dispositivo final, enquanto parâmetros <strong>de</strong> gran<strong>de</strong>zas que têm variações mais rápidas no tempo<br />
exigem um dispositivo final exclusivo, para processar e enviar toda a informação adquirida.<br />
Figura 23: Localização do trabalho no projecto <strong>BIOSWIM</strong>.
Capítulo - 3<br />
Proprieda<strong>de</strong>s do sistema <strong>de</strong> re<strong>de</strong><br />
Cada nó sensor terá acoplado um ou mais sensores, que po<strong>de</strong>m ser <strong>de</strong> tipos diferentes<br />
necessitando <strong>de</strong> taxas <strong>de</strong> amostragem que po<strong>de</strong>m ser igualmente diferentes. Por esta razão é<br />
necessária uma gestão equilibrada dos sensores a ligar a cada nó para que sensores <strong>de</strong><br />
natureza distinta possam ser adquiridos pelo mesmo nó sensor e enviados ao coor<strong>de</strong>nador e por<br />
sua vez à aplicação gráfica. A seguir será feito um resumo das principais características e<br />
funcionalida<strong>de</strong>s <strong>de</strong>ste sistema <strong>de</strong> re<strong>de</strong>.<br />
Funcionalida<strong>de</strong>s do coor<strong>de</strong>nador:<br />
Controlo do número <strong>de</strong> nós sensores que ace<strong>de</strong>m à re<strong>de</strong>;<br />
Modos <strong>de</strong> transmissão High power e Low power;<br />
Fixação das frequências <strong>de</strong> amostragem dos nós sensores (até um máximo <strong>de</strong> 10<br />
kAmostras/s);<br />
Comunicação bidireccional com o computador;<br />
Visualização da qualida<strong>de</strong> do sinal <strong>de</strong> cada nó sensor;<br />
Funcionalida<strong>de</strong> <strong>de</strong> contagem <strong>de</strong> tramas perdidas/repetidas.<br />
Funcionalida<strong>de</strong>s do nó sensor:<br />
Modos <strong>de</strong> conversão do ADC: Single shot e Contínuo;<br />
Modos <strong>de</strong> transmissão High power e Low power;<br />
Dois modos <strong>de</strong> operação: Modo Sleep e Modo activo.<br />
As proprieda<strong>de</strong>s do sistema <strong>de</strong> re<strong>de</strong> Zigbee e 802.15.4 são semelhantes, pois as duas<br />
aplicações foram construídas para funcionarem com a mesma aplicação gráfica, e para terem as<br />
mesmas características. No entanto diferem no tamanho das tramas <strong>de</strong> dados, on<strong>de</strong> na<br />
aplicação Zigbee são constituídas por 82 bytes e na aplicação 802.15.4 por 98 bytes.<br />
Logicamente que o processamento difere um pouco entre as duas aplicações, pois o modo <strong>de</strong><br />
disposição das amostras nas tramas é diferente. Estes temas serão abordados nos próximos<br />
subcapítulos.<br />
37
3.2.2 Hardware <strong>de</strong> comunicação<br />
38<br />
Desenvolvimento<br />
Para fazer a selecção do hardware <strong>de</strong> comunicação foram consi<strong>de</strong>rados alguns<br />
requisitos importantes para o projecto <strong>BIOSWIM</strong>. O requisito mais importante é o tamanho dos<br />
módulos <strong>de</strong> comunicação, visto que serão integrados no fato <strong>de</strong> natação. Outro requisito é o<br />
consumo <strong>de</strong> energia, pois como o sistema é alimentado por baterias, e terá que ser autónomo,<br />
não po<strong>de</strong> ter consumos <strong>de</strong> energia elevados pois esgotariam rapidamente a energia acumulada<br />
nas baterias. Os módulos <strong>de</strong> comunicação sem fios <strong>de</strong>verão ser flexíveis ao nível da<br />
programação, <strong>de</strong> modo ao sistema po<strong>de</strong>r-se adaptar a várias configurações e aplicações<br />
específicas. Por último, mas não menos importante é o custo dos módulos. Os terminais <strong>de</strong> re<strong>de</strong><br />
sem fios com os protocolos Bluetooth, Zigbee ou 802.15.4 têm preços relativamente baixos. Por<br />
todas estas razões foram escolhidos os módulos <strong>de</strong> <strong>de</strong>senvolvimento da Jennic (Figura 24).<br />
Figura 24: Kit <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> re<strong>de</strong>s <strong>de</strong> comunicação sem fios da Jennic.<br />
Este kit <strong>de</strong> <strong>de</strong>senvolvimento tem algumas vantagens para este tipo <strong>de</strong> aplicações. Foi<br />
<strong>de</strong>senvolvido para iniciantes à programação <strong>de</strong> re<strong>de</strong>s sem fios, e admitem diferentes protocolos,<br />
tendo algumas application notes <strong>de</strong>senvolvidas. Os módulos <strong>de</strong> <strong>de</strong>senvolvimento têm o<br />
microcontrolador JN5148 da Jennic, que possui algumas características essenciais para o<br />
<strong>de</strong>senvolvimento <strong>de</strong>ste projecto. Na Figura 25 está representada a arquitectura do<br />
microcontrolador <strong>de</strong>stes módulos <strong>de</strong> <strong>de</strong>senvolvimento, em diagrama <strong>de</strong> blocos.
Capítulo - 3<br />
Figura 25: Arquitectura do microcontrolador JN5148 da Jennic.<br />
O kit <strong>de</strong> <strong>de</strong>senvolvimento é composto por cinco placas construídas pela Jennic que<br />
possibilitam várias funções como a alimentação do microcontrolador, carregamento <strong>de</strong> firmware<br />
ou teste das aplications notes. Nessas placas po<strong>de</strong>m-se conectar os módulos <strong>de</strong><br />
<strong>de</strong>senvolvimento que são constituídos pelo módulo <strong>de</strong> comunicação transmissor/receptor rádio<br />
e pelo microcontrolador JN5148 que está integrado na placa PCB (Printed Circuit Board) e tem<br />
um cristal externo. Existem dois tipos <strong>de</strong> módulos: High Power e Low Power. Os módulos Low<br />
Power po<strong>de</strong>m ter uma antena com conector SMA (SubMiniature version A), ou ter a antena<br />
integrada directamente na placa PCB. Na Figura 26 po<strong>de</strong> ver-se os dois tipos <strong>de</strong> módulos, e a<br />
diferença entre os módulos Low Power com e sem conector SMA.<br />
Figura 26: Módulos <strong>de</strong> <strong>de</strong>senvolvimento da Jennic.<br />
39
Ambiente <strong>de</strong> <strong>de</strong>senvolvimento e Debugger<br />
40<br />
Desenvolvimento<br />
Os módulos <strong>de</strong> <strong>de</strong>senvolvimento da Jennic utilizam o ambiente <strong>de</strong> <strong>de</strong>senvolvimento<br />
Eclipse. Esta plataforma multi-linguagem <strong>de</strong> programação inclui um ambiente <strong>de</strong><br />
<strong>de</strong>senvolvimento integrado (IDE) e um sistema extensível plug-in. Foi <strong>de</strong>senvolvido<br />
principalmente em Java e permite <strong>de</strong>senvolver aplicações em diversas linguagens <strong>de</strong><br />
programação: Java, C/C++, COBOL ou PHP [35].<br />
O <strong>de</strong>bug <strong>de</strong>stes módulos <strong>de</strong> <strong>de</strong>senvolvimento po<strong>de</strong> ser feito por hardware, através <strong>de</strong><br />
uma interface <strong>de</strong> hardware JTAG (Join Test Action Group), ou pelo hyperterminal do Windows. O<br />
<strong>de</strong>bug por hardware consiste em conectar a interface JTAG ao computador através da porta série<br />
e ao dispositivo da Jennic. É <strong>de</strong>scarregado um pequeno programa <strong>de</strong> comunicação para o<br />
dispositivo que <strong>de</strong>pois envia a informação <strong>de</strong> <strong>de</strong>bug (variáveis/referências temporais na<br />
execução do algoritmo) para o computador. O <strong>de</strong>bug por software consiste em enviar a<br />
informação <strong>de</strong> <strong>de</strong>bug pela porta UART do dispositivo, para serem visualizados no hyperterminal<br />
do sistema operativo Windows (Figura 27).<br />
Características gerais<br />
Figura 27: Debug por software através do hyperterminal do Windows.<br />
As características principais dos módulos <strong>de</strong> <strong>de</strong>senvolvimento da Jennic são<br />
enumeradas na Tabela 7.
Capítulo - 3<br />
Tabela 7: Características principais do microcontrolador JN5148 da Jennic.<br />
Transmissor<br />
• 2.4GHz IEEE802.15.4 compliant<br />
• Time of Flight ranging engine<br />
• 128-bit AES security processor<br />
• MAC accelerator with packet formatting,<br />
CRCs, address check, auto-acks, timers<br />
• 500 & 667kbps data rate mo<strong>de</strong>s<br />
• Integrated sleep oscillator for low power<br />
• On chip power regulation for 2.0V<br />
to 3.6V battery operation<br />
• Deep sleep current 100nA<br />
• Sleep current with active sleep timer<br />
1.25μA<br />
• Rx current 17.5mA<br />
• Tx current 15.0mA<br />
• Receiver sensitivity -95dBm<br />
• Transmit power 2.5dBm<br />
Para <strong>de</strong>senvolver a re<strong>de</strong> <strong>de</strong> comunicação sem fios, foram consi<strong>de</strong>rados dois protocolos<br />
diferentes <strong>de</strong> modo a po<strong>de</strong>rem comparar-se as performances <strong>de</strong> comunicação: o Bluetooth e o<br />
Zigbee. O protocolo Zigbee tem uma excelente relação taxa <strong>de</strong> transmissão <strong>de</strong> dados, consumo<br />
<strong>de</strong> energia, o que levou em conjunto com as características dos módulos <strong>de</strong> <strong>de</strong>senvolvimento, à<br />
escolha <strong>de</strong>ste protocolo para a aplicação. Mais tar<strong>de</strong>, com o objectivo <strong>de</strong> melhorar o<br />
<strong>de</strong>sempenho da re<strong>de</strong> criada com este protocolo, foi implementada outra solução com o<br />
protocolo 802.15.4. Como já foi referido anteriormente neste documento, o 802.15.4 é a base<br />
do Zigbee, diferindo basicamente nas últimas camadas do mo<strong>de</strong>lo OSI, on<strong>de</strong> o Zigbee<br />
acrescenta camadas <strong>de</strong> re<strong>de</strong> e <strong>de</strong> aplicação. Em termos práticos, na comunicação com o<br />
protocolo 802.15.4 as tramas têm um overhead menor que no Zigbee e o tamanho máximo do<br />
Payload é maior. Na próxima secção será <strong>de</strong>scrito o conteúdo <strong>de</strong>ste <strong>de</strong>senvolvimento.<br />
3.3 <strong>Implementação</strong> com protocolo Zigbee<br />
Os módulos <strong>de</strong> <strong>de</strong>senvolvimento da Jennic foram construídos para aplicações com o<br />
protocolo Zigbee. Para dar suporte às aplicações o software foi construído para que se possam<br />
interligar os vários módulos especificados no mo<strong>de</strong>lo OSI e os módulos próprios da Jennic. No<br />
41<br />
Microcontrolador<br />
• Low power 32-bit RISC CPU, 4 to 32MHz clock speed<br />
• Variable instruction width for high coding efficiency<br />
• Multi-stage instruction pipeline<br />
• 128kB ROM and 128kB RAM for bootloa<strong>de</strong>d program<br />
co<strong>de</strong> & data<br />
• JTAG <strong>de</strong>bug interface<br />
• 4-input 12-bit ADC, 2 12-bit DACs, 2 comparators<br />
• 3 application timer/counters,<br />
• 2 UARTs<br />
• SPI port with 5 selects<br />
• 2-wire serial interface<br />
• 4-wire digital audio interface<br />
• Watchdog timer<br />
• Low power pulse counters<br />
• Up to 21 DIO
42<br />
Desenvolvimento<br />
próximo subcapítulo é apresentada a arquitectura da re<strong>de</strong> <strong>de</strong> sensores sem fios, com uma breve<br />
explicação sobre toda a dinâmica da construção da re<strong>de</strong> Zigbee.<br />
3.3.1 Arquitectura da re<strong>de</strong> <strong>de</strong> sensores sem fios<br />
A aplicação feita pelo programador encontra-se na camada <strong>de</strong> aplicação do software<br />
Zigbee PRO da Jennic. Essa aplicação inicia outros módulos como o Jennic Operating System<br />
(JenOS), o Zigbee PRO Stack (ZPS) ou os periféricos integrados, através das Aplication Program<br />
Interfaces (APIs) disponibilizadas pela Jennic (Figura 28).<br />
Figura 28: Arquitectura do software Zigbee PRO da Jennic, adaptado <strong>de</strong> [36].<br />
O software Zigbee PRO da Jennic permite a construção <strong>de</strong> um sistema dinâmico multi-<br />
tarefa, on<strong>de</strong> várias funções são executadas em “simultâneo”, por via <strong>de</strong> eventos que vão<br />
surgindo ao longo do processo e comandam a maioria das funções e tarefas. Todo este processo<br />
tem início quando o sistema JenOS inicia o módulo Real-Time Operating System (RTOS) on<strong>de</strong> se<br />
criam as tarefas, eventos, interrupções ou timers (Figura 29).<br />
Figura 29: Dinâmica do software Zigbee PRO da Jennic.
Capítulo - 3<br />
O RTOS quando é executado inicia um processo <strong>de</strong> ocorrência <strong>de</strong> eventos, que po<strong>de</strong>m<br />
invocar as tarefas, interrupções ou comunicações entre tarefas criadas. Como se po<strong>de</strong> verificar<br />
no exemplo da Figura 29, as mensagens 1 e 2 vindas do Zigbee PRO Stack (ZPS) activam as<br />
tarefas 1 e 3 respectivamente. A tarefa 3 po<strong>de</strong> também ser activada pelo timer 2, enquanto o<br />
timer 1 é iniciado na tarefa 1. A tarefa 2 é activada por software na tarefa 3. As funções envio,<br />
recepção e tratamento <strong>de</strong> dados po<strong>de</strong>m ser construídas <strong>de</strong>ntro <strong>de</strong>stas tarefas, ou po<strong>de</strong>m ser<br />
in<strong>de</strong>pen<strong>de</strong>ntes, tendo neste caso que serem executadas por software.<br />
O JenOS inicia também outros módulos relacionados com a comunicação Zigbee que<br />
estão representados na Figura 28, como o Protocol Data Unit Manager (PDUM) que faz a gestão<br />
dos pacotes <strong>de</strong> mensagens, ou o Persistent Data Manager (PDM) que trata do armazenamento<br />
<strong>de</strong> dados da aplicação Zigbee em memória não-volátil. Os periféricos integrados como ADCs,<br />
DACs, UARTS ou Timers são também acedidos pela camada <strong>de</strong> aplicação através das<br />
respectivas aplicações <strong>de</strong> interface (API’s).<br />
O algoritmo que relaciona os vários módulos representados na Figura 28 po<strong>de</strong> ser<br />
construído no editor JenOS Configuration Editor, enquanto os parâmetros <strong>de</strong> re<strong>de</strong>, como tempos<br />
relacionados com a transmissão e outros parâmetros importantes para a comunicação, são<br />
configurados no ZPSconfig.<br />
Perfil da Re<strong>de</strong> Zigbee e características<br />
A re<strong>de</strong> Zigbee implementada tem uma topologia <strong>de</strong> re<strong>de</strong> em estrela, com o coor<strong>de</strong>nador<br />
<strong>de</strong> re<strong>de</strong> a assumir um papel central e <strong>de</strong> comunicação directa com todos os dispositivos finais.<br />
Toda a informação em circulação na re<strong>de</strong> passa pelo nó coor<strong>de</strong>nador.<br />
Figura 30: Topologia <strong>de</strong> re<strong>de</strong> em estrela.<br />
43
44<br />
Desenvolvimento<br />
Algumas das escolhas seguintes foram tomadas, com o objectivo <strong>de</strong> aumentar a taxa <strong>de</strong><br />
transmissão <strong>de</strong> dados entre os nós sensores e o nó controlador, como manter os nós sensores<br />
sempre em modo activo, estando esta característica directamente ligada ao modo <strong>de</strong> operação<br />
<strong>de</strong> re<strong>de</strong>, non-beacon, que não permite que o nó sensor entre em modo sleep. O envio <strong>de</strong><br />
acknowledgements é opcional, e pelo mesmo motivo citado em cima, optou-se por não enviar<br />
acknowledgements, pois o seu envio atrasa um pouco as velocida<strong>de</strong>s <strong>de</strong> transmissão <strong>de</strong> dados.<br />
Todas as outras características, como o método <strong>de</strong> acesso à re<strong>de</strong>, procura <strong>de</strong> re<strong>de</strong> ou método<br />
<strong>de</strong> retransmissão <strong>de</strong> trama, são comuns a todas as aplicações Zigbee.<br />
Estruturação Geral<br />
Como foi dito anteriormente, o software Zigbee PRO stack da Jennic permite a<br />
configuração <strong>de</strong> parâmetros <strong>de</strong> re<strong>de</strong> no ZPSconfig e a configuração do sistema operativo no<br />
JenOS configuration editor. A seguir é feito um resumo dos parâmetros configurados no<br />
ZPSconfig e os principais blocos do algoritmo construído para o JenOS, para se obter uma<br />
melhor compreensão do funcionamento da re<strong>de</strong> Zigbee.<br />
A configuração do ZPS, permite ajustar os parâmetros <strong>de</strong> re<strong>de</strong> <strong>de</strong> acordo com a<br />
aplicação que se quer construir. Neste caso optou-se por um tamanho do pacote <strong>de</strong> dados da<br />
camada <strong>de</strong> aplicação (APDU - application protocol data unit) <strong>de</strong> 82 bytes para as tramas <strong>de</strong><br />
dados dos sensores e 10 bytes para as tramas <strong>de</strong> comandos. Foram activados os canais <strong>de</strong> 11<br />
a 26 para o dispositivo final e o canal 13 para o coor<strong>de</strong>nador. O número <strong>de</strong> pacotes <strong>de</strong> dados<br />
da camada <strong>de</strong> re<strong>de</strong> do protocolo Zigbee (NPDUs - Network Protocol Data Unit) é também<br />
importante, uma vez que a trama <strong>de</strong> dados construída na aplicação vai ser dividida nesta<br />
quantida<strong>de</strong> <strong>de</strong> pacotes para ser enviada ao coor<strong>de</strong>nador, o que influencia a velocida<strong>de</strong> <strong>de</strong><br />
transmissão. São também configurados alguns tempos, como o tempo entre o envio das frames<br />
(3 ms), e parâmetros relacionados com a gestão da re<strong>de</strong>, como o número <strong>de</strong> falhas antes <strong>de</strong><br />
um dispositivo final se juntar novamente à re<strong>de</strong> (5 falhas). Estas configurações po<strong>de</strong>m ser vistas<br />
em maior pormenor no anexo 3.<br />
Na Tabela 8 estão os principais elementos da configuração do RTOS do sistema<br />
operativo Jennic. Nas Figuras 35 e 39 po<strong>de</strong>-se encontrar o diagrama <strong>de</strong>sta configuração para<br />
cada um dos dispositivos.
Capítulo - 3<br />
Tarefas (Tasks):<br />
Timers:<br />
Tabela 8: Configuração do RTOS do sistema operativo JenOS<br />
Coor<strong>de</strong>nador Dispositivo final<br />
o APP_taskControllerNo<strong>de</strong>;<br />
o APP_taskLogData;<br />
o APP_taskComandControl;<br />
o APP_tmrLogData;<br />
Mensagens entre tarefas:<br />
o APP_msgSensorEvent;<br />
o APP_msgComandEvent;<br />
o APP_msgZPSEvent;<br />
Interrupções;<br />
Callbacks;<br />
45<br />
Tarefas (Tasks):<br />
Timers:<br />
o APP_taskSensorNo<strong>de</strong>;<br />
o APP_taskSampleSensors;<br />
o APP_taskAmostragem;<br />
o APP_taskFreqAmostControl;<br />
o APP_tmrAmostragem;<br />
o APP_tmrRestart;<br />
Mensagens entre tarefas:<br />
o APP_msgComandEvent;<br />
o APP_msgZPSEvent;<br />
Interrupções;<br />
Callbacks;<br />
Foram implementadas todas estas funções no sistema operativo JenOS que serão<br />
explicadas em pormenor na secção seguinte. O diagrama <strong>de</strong> blocos <strong>de</strong> todas estas funções<br />
encontra-se no Anexo 3 e 4 para o coor<strong>de</strong>nador e dispositivo final respectivamente. É importante<br />
referir que as interrupções, callbacks e mensagens inter-tarefas provenientes <strong>de</strong> eventos da pilha<br />
Zigbee, estão previamente implementadas no Template fornecido pelo fabricante dos módulos<br />
<strong>de</strong> experimentação, em ambos os dispositivos <strong>de</strong> re<strong>de</strong> coor<strong>de</strong>nador e dispositivo final, e são<br />
comuns à maioria das aplicações Zigbee, pelo que já se encontravam <strong>de</strong>senvolvidas.<br />
3.3.2 Estrutura do Firmware<br />
Antes <strong>de</strong> ser explicada a estrutura do firmware, e como os eventos, tarefas e funções se<br />
relacionam entre si, será feita uma breve explicação sobre o funcionamento geral <strong>de</strong> todo o<br />
sistema da re<strong>de</strong> Zigbee <strong>de</strong>senvolvida, em termos mais práticos.
Geral<br />
Figura 31: Funcionamento geral da aplicação implementada com o protocolo Zigbee.<br />
46<br />
Desenvolvimento<br />
O sistema contém como já foi citado anteriormente, dois dispositivos <strong>de</strong> re<strong>de</strong>, o<br />
coor<strong>de</strong>nador e o dispositivo final, sendo a re<strong>de</strong> sem fios constituída por um só coor<strong>de</strong>nador (nó<br />
controlador) e vários dispositivos finais (nós sensores). Nestes dispositivos finais, preten<strong>de</strong>-se<br />
que o firmware seja geral e igual para todos, sem prejuízo <strong>de</strong> po<strong>de</strong>rem posteriormente ser<br />
introduzidas alterações <strong>de</strong> acordo com as necessida<strong>de</strong>s e características dos sensores a eles<br />
ligados.<br />
Uma vez iniciados os dispositivos, estes executam processos <strong>de</strong> re<strong>de</strong> para criação da<br />
re<strong>de</strong> Zigbee e estabelecimento da conexão, e que serão explicados na próxima secção. Depois<br />
da criação da ligação entre os dispositivos começa a transferência <strong>de</strong> dados, que flui<br />
principalmente dos dispositivos finais para o coor<strong>de</strong>nador. O coor<strong>de</strong>nador apenas envia<br />
comandos aos dispositivos finais.<br />
Nos dispositivos finais, o sinal do sensor é convertido pelo ADC num sinal digital à<br />
frequência <strong>de</strong>sejada pelo utilizador. A frequência é <strong>de</strong>terminada por um timer que activa a tarefa<br />
<strong>de</strong> aquisição <strong>de</strong> amostras “APP_taskAmostragem”. As amostras vão sendo adquiridas<br />
sucessivamente e guardadas num array enquanto o sistema está no modo “Monitorização”.<br />
Quando o array é totalmente preenchido é construída a trama e enviada ao coor<strong>de</strong>nador. As<br />
tramas contêm o No<strong>de</strong> ID, que i<strong>de</strong>ntifica o dispositivo final que enviou, e o número <strong>de</strong> trama<br />
para controlar as tramas perdidas e repetidas.
Capítulo - 3<br />
O coor<strong>de</strong>nador recebe as tramas e a zigbee stack activa automaticamente a tarefa<br />
“APP_taskLogData” que processa a trama recebida. A trama recebida é processada,<br />
implementando-se funções relacionadas com a disposição das amostras na trama, que serão<br />
explicadas mais tar<strong>de</strong>. Depois <strong>de</strong>ste processamento é implementada a técnica <strong>de</strong> sincronização<br />
<strong>de</strong> dados Bit stuffing que também será explicada na secção seguinte. Uma vez terminado todo o<br />
processamento, o array que contém os dados da trama recebida é enviado pela UART ao<br />
computador para <strong>de</strong>pois serem também processados e apresentados os sinais através da<br />
aplicação gráfica.<br />
Depois <strong>de</strong> enviar os dados ao computador, o coor<strong>de</strong>nador verifica se recebeu algum<br />
comando da aplicação gráfica. Em caso afirmativo, irá processá-lo e enviá-lo ao dispositivo final a<br />
que se <strong>de</strong>stina. Terminado o envio do comando, ou <strong>de</strong> imediato, caso não haja comandos a<br />
enviar, o coor<strong>de</strong>nador fica a aguardar por mais dados em modo “E_Network_Screen”. O<br />
coor<strong>de</strong>nador repete este ciclo <strong>de</strong> cada vez que recebe uma trama <strong>de</strong> dados, verificando se<br />
recebeu comandos mesmo que não tenha recebido tramas dos nós sensores.<br />
Os comandos enviados pelo PC ao coor<strong>de</strong>nador po<strong>de</strong>m ser:<br />
Start : para iniciar a aquisição <strong>de</strong> dados num dispositivo final;<br />
Stop : para parar a aquisição e envio <strong>de</strong> sinais do dispositivo final;<br />
Set Frequency : para mudar a frequência <strong>de</strong> aquisição do ADC.<br />
As tramas enviadas entre os dispositivos têm tamanhos pré-<strong>de</strong>finidos e estão<br />
representadas na Figura 32. A trama <strong>de</strong> dados é constituída pelo No<strong>de</strong> ID, número <strong>de</strong> trama e<br />
pelos dados dos sensores. A trama <strong>de</strong> comandos é composta pelo tipo <strong>de</strong> comando, No<strong>de</strong> ID e o<br />
divisor para frequência <strong>de</strong> amostragem.<br />
Figura 32: Trama <strong>de</strong> dados e trama <strong>de</strong> comandos.<br />
Este No<strong>de</strong> ID serve para i<strong>de</strong>ntificar o nó sensor que envia a trama, tanto no coor<strong>de</strong>nador<br />
como na aplicação gráfica. O número <strong>de</strong> trama serve para i<strong>de</strong>ntificar a trama na sequência <strong>de</strong><br />
47
48<br />
Desenvolvimento<br />
tramas transmitidas. Na trama <strong>de</strong> comandos o tipo <strong>de</strong> comando i<strong>de</strong>ntifica o comando que foi<br />
recebido e o divisor indica ao dispositivo final o valor da frequência <strong>de</strong> amostragem. Estes<br />
parâmetros serão novamente abordados na secção seguinte.<br />
Registo dos nós sensores<br />
Os nós sensores são registados no coor<strong>de</strong>nador da primeira vez que enviam uma trama<br />
<strong>de</strong> dados. Quando o coor<strong>de</strong>nador recebe uma trama, este lê o en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> do nó sensor e<br />
verifica na estrutura que guarda o No<strong>de</strong> ID e respectivo en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> se este já está<br />
registado (função APP_u8EnviaSensorNo<strong>de</strong>ID). Se não estiver regista-o prosseguindo com a<br />
transmissão, se já tiver sido registado então continua a transmissão <strong>de</strong> tramas normalmente.<br />
Este No<strong>de</strong> ID é fixo e é <strong>de</strong>finido no firmware dos nós sensores<br />
Esta aplicação implementada com o protocolo Zigbee é bastante dinâmica e minuciosa,<br />
pelo que será mais aprofundada nos capítulos seguintes.<br />
Pilha Zigbee<br />
Até o nó controlador estar preparado para receber dados dos nós sensores, passa por<br />
alguns estados necessários para criar a re<strong>de</strong> Zigbee. O mesmo acontece com o nó sensor que<br />
procura a re<strong>de</strong> formada para iniciar a comunicação. Na Figura 33 estão representados esses<br />
estados, que todos os nós sensores executam, <strong>de</strong>pen<strong>de</strong>ndo do dispositivo <strong>de</strong> re<strong>de</strong>.<br />
Figura 33: Estados do Nó controlador e Nó sensor na gestão da re<strong>de</strong> Zigbee.<br />
O nó controlador inicia a criação da re<strong>de</strong>, passando a configurar os parâmetros <strong>de</strong> re<strong>de</strong>.<br />
Depois disso a re<strong>de</strong> é formada e fica em modo <strong>de</strong> espera até que algum nó sensor lhe envie um<br />
request para se juntar à re<strong>de</strong>. O nó sensor inicia o processo <strong>de</strong> procura <strong>de</strong> re<strong>de</strong>s existentes.
Capítulo - 3<br />
Depois <strong>de</strong> encontrada a re<strong>de</strong>, estabelece contacto para se juntar e começar a monitorizar os<br />
sensores e a enviar dados ao coor<strong>de</strong>nador.<br />
Arquitectura da aplicação do Nó Controlador (coor<strong>de</strong>nador)<br />
Como foi explicado anteriormente, para construir o firmware é necessário criar o<br />
algoritmo para o RTOS do sistema operativo JenOS. Neste algoritmo é preciso <strong>de</strong>finir os eventos<br />
que irão <strong>de</strong>senca<strong>de</strong>ar mensagens, que por sua vez irão activar as tarefas <strong>de</strong> leitura, envio e<br />
processamento <strong>de</strong> dados. Na Figura 34 po<strong>de</strong>-se visualizar a dinâmica dos eventos<br />
implementados e as tarefas que activam, para o dispositivo coor<strong>de</strong>nador.<br />
Figura 34: Arquitectura da aplicação do Coor<strong>de</strong>nador.<br />
Como se po<strong>de</strong> verificar na Figura 34, a arquitectura do firmware do coor<strong>de</strong>nador é<br />
constituída apenas por tarefas e mensagens. Na camada ZPS, quando ocorre um evento, este dá<br />
origem a uma mensagem que activa a tarefa correspon<strong>de</strong>nte. Nessa tarefa é lido o evento que<br />
surgiu e processada a função correspon<strong>de</strong>nte.<br />
No caso do coor<strong>de</strong>nador tem-se a mensagem “APP_msgZPSEvent” que activa a tarefa<br />
“APP_taskControllerNo<strong>de</strong>” e indica que a Zigbee Stack recebeu eventos relacionados com a<br />
gestão da re<strong>de</strong> como por exemplo a indicação que se juntou um novo dispositivo final à re<strong>de</strong> ou<br />
que a mensagem Zigbee foi enviada com sucesso. A mensagem “APP_msgSensorEvent” activa<br />
a tarefa “APP_taskLogData”, e surge quando o coor<strong>de</strong>nador recebe uma trama <strong>de</strong> um<br />
dispositivo final.<br />
Na Figura 35 encontra-se a configuração no JenOS Configuration Editor do sistema<br />
operativo JenOS do coor<strong>de</strong>nador. Nesta imagem po<strong>de</strong>-se visualizar a duas tarefas (azul)<br />
<strong>de</strong>scritas no parágrafo anterior e as respectivas mensagens (ver<strong>de</strong>) que as activam. Os restantes<br />
blocos da área cinzenta <strong>de</strong>nominada <strong>de</strong> ZBPro e as callbacks têm funções <strong>de</strong> gestão da re<strong>de</strong> e<br />
49
50<br />
Desenvolvimento<br />
como já foi dito em cima, estão previamente implementadas no Template fornecido pelo<br />
fabricante dos módulos <strong>de</strong> comunicação e são usadas para construir as aplicações.
Figura 35: Configuração pormenorizada do RTOS do sistema operativo JenOS do coor<strong>de</strong>nador.<br />
51
52<br />
Desenvolvimento<br />
De seguida serão explicados os algoritmos do firmware do coor<strong>de</strong>nador e posteriormente será<br />
feita uma <strong>de</strong>scrição das funções e tarefas que integram o firmware.<br />
Na Figura 36 e Figura 37 po<strong>de</strong>-se ver o algoritmo geral do firmware. Este algoritmo divi<strong>de</strong>-se em<br />
diferentes fluxogramas sem ligação entre si porque como foi explicado em cima, quando o<br />
sistema inicia o módulo <strong>de</strong> RTOS, este executa um sistema multitarefa, em que algumas tarefas<br />
são activadas automaticamente pelos eventos recebidos pelo dispositivo, ou por software, e<br />
enquanto o sistema executa uma <strong>de</strong>terminada função po<strong>de</strong> ser executada uma outra enquanto a<br />
primeira permanece em stand-by.<br />
Algoritmia<br />
O algoritmo do sistema começa no fluxograma A da Figura 36, o coor<strong>de</strong>nador inicia o<br />
módulo <strong>de</strong> RTOS, sistema multitarefa em que po<strong>de</strong>m ser executadas várias tarefas em<br />
“simultâneo”. Depois <strong>de</strong> iniciar o RTOS, executa um ciclo infinito até ocorrerem eventos. Quando<br />
o se inicia o RTOS, este activa a tarefa “APP_taskControllerNo<strong>de</strong>” que cria a re<strong>de</strong>, <strong>de</strong>pois é<br />
configurada a UART para enviar dados ao PC e o dispositivo permanece em modo<br />
“E_Network_Screen” para a recepção dos dados.<br />
Figura 36: Fluxograma do programa principal do firmware do coor<strong>de</strong>nador (formação da re<strong>de</strong> Zigbee).<br />
Depois da re<strong>de</strong> criada, quando o dispositivo recebe tramas, estas activam a tarefa<br />
“APP_taskLogData” (Figura 37). Esta tarefa implementa o coor<strong>de</strong>nador da re<strong>de</strong> que recebe<br />
tramas <strong>de</strong> dados contendo os dados das medidas dos sensores provenientes dos dispositivos
Capítulo - 3<br />
finais. Quando um dispositivo final envia a primeira trama <strong>de</strong> dados ao controlador, é registado o<br />
seu en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> (MAC adress) e o seu No<strong>de</strong> ID, que é um valor <strong>de</strong> 0 a 255 para i<strong>de</strong>ntificar<br />
o nó sensor nesta aplicação. Depois do registo efectuado os nós sensores po<strong>de</strong>m começar a<br />
enviar mais tramas <strong>de</strong> dados, que serão guardadas num array no nó controlador. Ocorrem<br />
<strong>de</strong>pois dois processos:<br />
um para disposição das amostras dos sensores na trama <strong>de</strong> envio ao computador;<br />
(função “Enc2_3”, ver explicação na Tabela 9);<br />
um segundo para efeitos <strong>de</strong> sincronização da transferência <strong>de</strong> dados entre o<br />
coor<strong>de</strong>nador e o computador (função “Bitstuffing”, ver explicação na pág. 65).<br />
A trama resultante é então enviada ao computador e verifica-se se foi recebida alguma<br />
trama <strong>de</strong> comandos na UART, por parte do computador. A função <strong>de</strong> leitura da porta UART<br />
contém uma flag que indica se o coor<strong>de</strong>nador recebeu tramas <strong>de</strong> comandos, mesmo que os nós<br />
sensores não estejam a transmitir dados, o coor<strong>de</strong>nador po<strong>de</strong> receber comandos e enviá-los aos<br />
nós sensores. Caso o nó controlador tenha recebido uma trama <strong>de</strong> comandos, esta é<br />
processada, verificando-se o No<strong>de</strong> ID que ela contém e enviando-a ao dispositivo final<br />
correspon<strong>de</strong>nte.<br />
53
Figura 37: Fluxogramas do programa principal do firmware do coor<strong>de</strong>nador (recepção <strong>de</strong> dados).<br />
54<br />
Desenvolvimento<br />
Para executar os blocos representados no algoritmo, o firmware é constituído por tarefas<br />
e funções. Algumas <strong>de</strong>stas funções fazem parte <strong>de</strong> uma tarefa e só são executadas quando a<br />
tarefa é activada. A seguir são explicadas <strong>de</strong> uma forma geral, as funcionalida<strong>de</strong>s principais <strong>de</strong><br />
cada tarefa e cada função.<br />
Tabela 9: Descrição das funções do firmware do Nó Controlador no protocolo Zigbee (continua na página seguinte).<br />
Tipo <strong>de</strong> função Funções<br />
Configuração e<br />
iniciação<br />
Processamento <strong>de</strong><br />
tramas<br />
APP_vLogInitialise<br />
uart_config(*)<br />
Desm4_3<br />
Descrição<br />
Inicializa o contador <strong>de</strong> dispositivos finais na<br />
re<strong>de</strong> e invoca a função uart_config.<br />
Configura a UART com um baudrate <strong>de</strong><br />
115200 bps, sem parida<strong>de</strong> e com 1 stop bit<br />
para o envio <strong>de</strong> dados ao computador.<br />
Faz a extracção das amostras do sinal do<br />
sensor. As amostras são <strong>de</strong> 12 bits, no entanto<br />
a trama recebida é um array <strong>de</strong> 16 bits em<br />
cada posição. As amostras são enviadas na<br />
trama justapostas <strong>de</strong> forma a que, cada 3<br />
posições transporta 4 amostras <strong>de</strong> 12 bits.<br />
(4 amostras x12 = 48 bits)<br />
(3 posições x16 = 48 bits)
Capítulo - 3<br />
Sincronização<br />
Comunicação<br />
UART<br />
Registo<br />
Comandos<br />
Enc2_3<br />
Bitstuffing(*)<br />
55<br />
Coloca as amostras <strong>de</strong> 12 bits num array <strong>de</strong> 8<br />
bits em cada posição (ao contrário da função<br />
anterior em que o array tinha 16 bits em cada<br />
posição). Sendo assim cada 3 posições do<br />
array transporta 2 amostras <strong>de</strong> 12 bits.<br />
(2 amostras x 12 = 24 bits)<br />
(3 posições x 8 = 24 bits)<br />
Implementa a técnica <strong>de</strong> sincronização <strong>de</strong><br />
dados Bit stuffing (ver pág. 65).<br />
BytetobitArray(*) Converte um array <strong>de</strong> bytes num array <strong>de</strong> bits.<br />
bittoByteArray(*) Converte um array <strong>de</strong> bits num array <strong>de</strong> bytes.<br />
envia_uart(*)<br />
recebe_uart(*)<br />
ZipComand<br />
APP_u8EnviaSensorNo<strong>de</strong>ID<br />
APP_u8SensorNo<strong>de</strong>Position<br />
APP_u8EnviaSensorNo<strong>de</strong>ADDR<br />
EnviaFreqAmost<br />
(*) Funções que são utilizadas também na aplicação com protocolo 802.15.4.<br />
Arquitectura da aplicação do Nó Sensor (dispositivo final)<br />
Envia o array <strong>de</strong> dados ao computador via<br />
porta UART. O número <strong>de</strong> envios é igual ao<br />
número <strong>de</strong> bytes constituintes do array.<br />
Recebe uma trama-comando do computador<br />
na porta UART e extrai os dados <strong>de</strong>ssa trama.<br />
Extrai o tipo <strong>de</strong> comando, o No<strong>de</strong> ID e se for<br />
uma trama do tipo “SetFrequency” extrai o<br />
divisor para implementar a frequência <strong>de</strong><br />
amostragem do ADC do nó sensor (a ser<br />
explicado mais tar<strong>de</strong>).<br />
Constrói o valor do en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> do nó<br />
sensor <strong>de</strong>stino e o divisor. Compacta os dados<br />
num array para enviar a trama-comando ao nó<br />
sensor.<br />
Retorna o No<strong>de</strong> ID <strong>de</strong> um <strong>de</strong>terminado<br />
en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> <strong>de</strong> um nó sensor registado.<br />
Retorna a posição do array <strong>de</strong> registo dos nós<br />
sensores na qual está registado <strong>de</strong>terminado<br />
nó sensor.<br />
Retorna o en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> <strong>de</strong> um<br />
<strong>de</strong>terminado No<strong>de</strong> ID <strong>de</strong> um nó sensor. Se o<br />
nó sensor não estiver registado retorna<br />
“NOT_FOUND”.<br />
Envia a trama <strong>de</strong> comandos ao nó sensor<br />
correspon<strong>de</strong>nte.<br />
Tal como o coor<strong>de</strong>nador, o dispositivo final também implementa no seu firmware um<br />
sistema operativo em tempo real em que surgem tarefas, eventos e mensagens, mas acrescenta<br />
um novo elemento, os timers (Figura 38). Um timer po<strong>de</strong> tal como um evento, activar uma<br />
<strong>de</strong>terminada tarefa, bastando para isso ser configurado no RTOS do sistema operativo da Jennic.
Figura 38: Arquitectura da aplicação do Dispositivo Final.<br />
56<br />
Desenvolvimento<br />
Neste dispositivo a mensagem “APP_msgZPSEvent” que activa a tarefa<br />
“APP_taskSensorNo<strong>de</strong>” tem exactamente a mesma função que no dispositivo coor<strong>de</strong>nador, ou<br />
seja transmitir eventos relacionados com a gestão da re<strong>de</strong>. Esta tarefa po<strong>de</strong> ser activada pelo<br />
timer “APP_tmrRestart” quando o dispositivo final inicia a procura <strong>de</strong> re<strong>de</strong> e não a encontra.<br />
Nesse caso então este timer reinicia a procura <strong>de</strong> re<strong>de</strong> passados 20 segundos após o início da<br />
procura.<br />
A tarefa “APP_taskSensorNo<strong>de</strong>” inicia também o timer “APP_tmrAmostragem”, que por<br />
sua vez activa a tarefa “APP_taskAmostragem”. Esta proce<strong>de</strong> a uma conversão A/D, sendo<br />
então a frequência <strong>de</strong> amostragem do nó sensor <strong>de</strong>terminada pela cadência <strong>de</strong> activação <strong>de</strong><br />
“APP_taskAmostragem” por parte do timer “APP_tmrAmostragem”. O timer é configurado para<br />
a frequência <strong>de</strong>sejada pelo utilizador da aplicação gráfica no computador para fazer a aquisição<br />
<strong>de</strong> amostras do sensor.<br />
A tarefa “APP_taskSampleSensors” é activada pela “APP_taskSensorNo<strong>de</strong>” quando o<br />
dispositivo entra em modo “E_MONITOR_SENSORS” ou seja quando se inicia o processo <strong>de</strong><br />
aquisição <strong>de</strong> sinal do sensor. A mensagem “APP_msgComandEvent” activa a tarefa<br />
“APP_taskFreqAmostControl” quando o nó sensor recebe uma trama <strong>de</strong> comandos do nó<br />
controlador.<br />
Na Figura 39 encontra-se a configuração feita no JenOS Configuration Editor do sistema<br />
operativo JenOS do dispositivo final. Nesta imagem po<strong>de</strong>-se visualizar as quatro tarefas (azul)<br />
<strong>de</strong>scritas no parágrafo anterior e as respectivas mensagens (ver<strong>de</strong>) que as activam. Tem<br />
também os timers que po<strong>de</strong>m activar as tarefas “APP_taskSensorNo<strong>de</strong>” e<br />
“APP_taskAmostragem”. Tal como no coor<strong>de</strong>nador, os restantes blocos da área cinzenta
Capítulo - 3<br />
<strong>de</strong>nominada <strong>de</strong> ZBPro e as callbacks têm funções <strong>de</strong> gestão da re<strong>de</strong> e estão já estão<br />
previamente implementadas.<br />
57
Figura 39: Configuração pormenorizada do RTOS do sistema operativo JenOS do dispositivo final.<br />
58
Capítulo - 3<br />
Algoritmo<br />
Quando o se inicia o RTOS, este activa a tarefa “APP_taskSensorNo<strong>de</strong>” que inicia a<br />
procura <strong>de</strong> re<strong>de</strong>, configura o ADC para a aquisição <strong>de</strong> amostras dos sensores e inicia o timer<br />
“App_tmrAmostragem” para iniciar a aquisição. Neste momento o dispositivo encontra-se no<br />
modo “E_MONITOR_SENSORS”. Neste modo é activada a tarefa “APP_taskSampleSensors”<br />
sempre que se iniciar a construção <strong>de</strong> uma trama <strong>de</strong> amostras para enviar ao nó controlador.<br />
Figura 40: Fluxograma do programa principal do firmware do dispositivo final (procura <strong>de</strong> re<strong>de</strong> Zigbee).<br />
Depois <strong>de</strong> activada a tarefa “APP_taskSampleSensors” esta executa o algoritmo do<br />
fluxograma A da Figura 41, on<strong>de</strong> se verifica se o array que contém as amostras adquiridas pelo<br />
ADC contém 52 amostras. Se ainda não tiver as 52 amostras continua a aquisição, se já tiver<br />
inicia a construção da trama e envia ao nó controlador.<br />
Aquando do inicio do modo <strong>de</strong> monitorização <strong>de</strong> sensores é activado o timer que controla a<br />
amostragem. O “App_tmrAmostragem” activa a tarefa “App_taskAmostragem”, que faz a<br />
aquisição da amostra, guarda no array mencionado acima e incrementa a variável <strong>de</strong> controlo <strong>de</strong><br />
posição no array (Figura 41-B). Esta tarefa é repetida sempre que o timer expira, pois tem<br />
priorida<strong>de</strong> sobre qualquer uma das outras tarefas, para se garantir a frequência <strong>de</strong> amostragem<br />
<strong>de</strong>sejada. A qualquer momento <strong>de</strong>ste processo todo, a tarefa “APP_taskFreqAmostControl” po<strong>de</strong><br />
ser activada automaticamente, bastando para isso o nó sensor receber uma trama <strong>de</strong> comando<br />
do nó controlador. Neste caso o dispositivo extrai os dados da trama <strong>de</strong> comandos, calcula o<br />
59
60<br />
Desenvolvimento<br />
novo valor da frequência <strong>de</strong> amostragem pedida e actualiza o timer para esse valor (Figura 41-<br />
C).<br />
Figura 41: Fluxogramas do programa principal do firmware do dispositivo final (Aquisição e envio <strong>de</strong> dados).<br />
Algumas das funções que constituem este sistema da aplicação do nó sensor pertencem<br />
a tarefas, outras são in<strong>de</strong>pen<strong>de</strong>ntes e são executadas por si só. Na Tabela 10 está feita uma<br />
<strong>de</strong>scrição geral <strong>de</strong> cada função, po<strong>de</strong>ndo ficar-se com uma melhor noção do como foram<br />
organizadas todas as funcionalida<strong>de</strong>s pretendidas para este sistema.<br />
Tabela 10: Descrição das funções do firmware do Nó Sensor no protocolo Zigbee.<br />
Tipo <strong>de</strong> função Funções<br />
Configuração e<br />
iniciação<br />
Processamento<br />
<strong>de</strong> tramas<br />
Sincronização<br />
adc_config<br />
vSendSensorData<br />
stop<br />
Descrição<br />
Configura o ADC para o ADC1 em modo<br />
<strong>de</strong> amostragem contínua e com uma<br />
tensão <strong>de</strong> referência interna.<br />
(2xVRef = 2.2v)<br />
Envia a trama <strong>de</strong> dados ao Nó<br />
Controlador.<br />
Implementa o comando “Stop” no Nó<br />
Sensor. Pára o ADC e envia uma trama <strong>de</strong><br />
controlo <strong>de</strong> 4 em 4s para po<strong>de</strong>r<br />
posteriormente ser ligado pelo comando<br />
“Start”.
Capítulo - 3<br />
3.3.3 Aquisição <strong>de</strong> sinal e preparação para a transmissão<br />
Para fazer a aquisição <strong>de</strong> amostras, o timer é configurado inicialmente no RTOS do<br />
JenOS. O valor estipulado para o timer para o início da aquisição é <strong>de</strong> 20 ms que correspon<strong>de</strong> a<br />
uma frequência <strong>de</strong> amostragem <strong>de</strong> 50 Hz. O ADC é também configurado, e po<strong>de</strong> operar em<br />
diferentes modos.<br />
Modo single shot: De cada vez que é pedida uma amostra é iniciado o ADC, este faz<br />
uma só conversão e pára.<br />
Modo contínuo: Quando é activado o ADC, este faz conversões sucessivas à frequência<br />
configurada na função “adc_config”, quando o timer que controla a frequência à qual se<br />
lêem as amostras, expira é recolhida e guardada a amostra do ADC. Note-se que existe a<br />
frequência <strong>de</strong> conversão configurada directamente no ADC, e a frequência <strong>de</strong><br />
amostragem <strong>de</strong>sejada pelo utilizador, e que é controlado pelo timer. Neste modo o ADC<br />
está a sobreamostrar e a <strong>de</strong>itar fora as amostras que não são recolhidas. Desta forma a<br />
frequência <strong>de</strong> conversão do ADC terá que ser sempre superior à frequência <strong>de</strong><br />
amostragem <strong>de</strong>sejada pelo utilizador, caso contrário haverá repetição <strong>de</strong> amostras.<br />
O firmware permite estes dois modos <strong>de</strong> operação do ADC. O modo utilizado foi o modo<br />
contínuo porque foi o que apresentou melhor <strong>de</strong>sempenho nos testes efectuados à velocida<strong>de</strong> <strong>de</strong><br />
aquisição <strong>de</strong> amostras.<br />
Depois do array <strong>de</strong> amostras estar totalmente preenchido (52 amostras <strong>de</strong> 12 bits), é<br />
tempo <strong>de</strong> construir a trama a enviar ao nó controlador. O software Zigbee PRO da Jennic<br />
permitem enviar um array <strong>de</strong> cada vez, mas este <strong>de</strong>verá ter 16 bits em cada posição e no<br />
máximo 41 posições, ou seja 82 bytes. Como a resolução do ADC são 12 bits, optou-se por fazer<br />
algum processamento para “aproveitar” toda a trama. Este processamento consiste em colocar<br />
amostras <strong>de</strong> 12 bits num array com 16 bits em cada posição. Como se po<strong>de</strong> ver na Figura 42,<br />
existe o array on<strong>de</strong> são guardadas as amostras adquiridas pelo ADC e o array Payload que é<br />
enviado ao nó controlador. Cada 4 amostras <strong>de</strong> 12 bits são colocadas em 3 posições do array<br />
Payload da forma que se po<strong>de</strong> ver na figura. Assim um total <strong>de</strong> 52 amostras cabe em 39<br />
posições do array Payload (função 1).<br />
61
Figura 42: Construção das tramas no Nó sensor (protocolo Zigbee).<br />
62<br />
Desenvolvimento<br />
Depois <strong>de</strong>ste processamento, à trama a enviar são acrescentados mais 2 dados <strong>de</strong> 16<br />
bits cada que completam a trama <strong>de</strong> 41 posições correspon<strong>de</strong>ndo a 82 bytes. Os dados são o<br />
No<strong>de</strong> ID e o número <strong>de</strong> trama (Figura 43). O No<strong>de</strong> ID é um valor <strong>de</strong> 0 a 255 previamente<br />
registado e associado ao tipo <strong>de</strong> sensor e tipo <strong>de</strong> sinal. Neste caso, ao No<strong>de</strong> ID <strong>de</strong> valor 1 está<br />
associado o sensor <strong>de</strong> temperatura timpânica, e esta correspondência é conhecida por todos os<br />
elementos que compõem o sistema (nó sensor, nó controlador e aplicação gráfica). O número <strong>de</strong><br />
trama é um valor também entre 0 e 255.<br />
Figura 43: Trama <strong>de</strong> dados completa (Zigbee).<br />
Para além das tramas <strong>de</strong> dados existem também as tramas <strong>de</strong> comando que, tal como<br />
explicado anteriormente, servem para se enviar comandos entre o nó controlador e os nós<br />
sensores (Figura 44). Estas tramas são compostas por 6 bytes, on<strong>de</strong> 1 byte contém o código <strong>de</strong><br />
comando, outro byte contém o No<strong>de</strong> ID e 4 bytes são reservados para o divisor para mudar a<br />
Frequência <strong>de</strong> amostragem do ADC.
Capítulo - 3<br />
Figura 44: Trama <strong>de</strong> comandos completa (Zigbee).<br />
O divisor é calculado na aplicação gráfica, segundo a função 2, sabendo o valor da<br />
frequência do clock do timer (32 kHz) utilizado para controlar a frequência <strong>de</strong> amostragem.<br />
Os comandos implementados actualmente estão representados na Tabela 11, on<strong>de</strong> se<br />
po<strong>de</strong> verificar as suas funcionalida<strong>de</strong>s, tipo e código <strong>de</strong> comando. De <strong>de</strong>stacar que futuramente<br />
mais comandos po<strong>de</strong>m ser implementados, bastando para isso seguir a mesma estrutura que<br />
os anteriores.<br />
Código <strong>de</strong><br />
comando<br />
1<br />
2<br />
3<br />
Tabela 11: Comandos e suas funções.<br />
Tipo <strong>de</strong> comando Função<br />
Start Inicia o nó sensor para fazer aquisição e envio <strong>de</strong> dados<br />
Stop Pára o nó sensor.<br />
Set_Freq Envia o divisor para mudar a frequência <strong>de</strong> amostragem do ADC.<br />
(<strong>de</strong>terminação dos divisores explicada no próximo capítulo)<br />
3.3.4 Processamento no Coor<strong>de</strong>nador e envio para a UART<br />
O coor<strong>de</strong>nador recebe as tramas no formato da trama <strong>de</strong> dados da Figura 43 e<br />
processa-as para <strong>de</strong>pois implementar a técnica <strong>de</strong> sincronização <strong>de</strong> dados Bit stuffing. Este<br />
processamento é necessário porque a aplicação gráfica foi inicialmente implementada para a<br />
63
64<br />
Desenvolvimento<br />
aplicação com o protocolo 802.15.4 e posteriormente o firmware do coor<strong>de</strong>nador da aplicação<br />
com o protocolo Zigbee foi alterado para ser compatível com a mesma aplicação. Esta alteração<br />
consiste em dispor as amostras na trama da forma como a aplicação gráfica está implementada<br />
para as receber, e será <strong>de</strong>scrita no próximo parágrafo.<br />
A extracção dos dados da trama recebida no coor<strong>de</strong>nador, é feita exactamente no<br />
processo inverso ao <strong>de</strong>scrito anteriormente e representado na Figura 42 (função Desm4_3).<br />
Depois <strong>de</strong>ste processo é necessário fazer um processo <strong>de</strong> disposição <strong>de</strong> amostras no array em<br />
tudo semelhante ao da secção anterior, mas neste caso tem-se que colocar as amostras <strong>de</strong> 12<br />
bits num array <strong>de</strong> 8 bits cada posição (função Enc2_3). Cada 2 amostras <strong>de</strong> 12 bits são<br />
colocadas em 3 posições do array <strong>de</strong> dados da forma que se po<strong>de</strong> verificar na Figura 45. Assim<br />
um total <strong>de</strong> 52 amostras mais 2 bytes <strong>de</strong> overhead cabem em 80 posições do array <strong>de</strong> dados<br />
(função 2).<br />
Figura 45: Encaixe do array <strong>de</strong> amostras <strong>de</strong> 12 bits num array <strong>de</strong> 8 bits.<br />
A técnica Bit stuffing é necessária para haver sincronização <strong>de</strong> dados entre o<br />
coor<strong>de</strong>nador e a aplicação gráfica, pois quando o coor<strong>de</strong>nador envia as tramas para a porta<br />
série do computador estas ficam guardadas numa pilha, e quando a aplicação gráfica lê os<br />
dados tem que <strong>de</strong>scriminar as tramas pelo início e fim para saber exactamente o seu tamanho.<br />
Se durante a comunicação as tramas não forem totalmente enviadas, sem esta técnica a<br />
aplicação nunca encontraria o início das tramas e ia processá-las <strong>de</strong> uma forma errada.<br />
No teste da primeira versão do firmware, observou-se que havia perda <strong>de</strong> sincronização<br />
entre a aplicação gráfica do computador e o coor<strong>de</strong>nador da re<strong>de</strong>. Isto <strong>de</strong>veu-se ao facto do
Capítulo - 3<br />
coor<strong>de</strong>nador enviar dados para a porta série do computador, e este ainda não estar disponível<br />
para receber dados. Assim que a aplicação gráfica começava a fazer a aquisição dos dados,<br />
podia não recolher a trama completa e assim não saber qual era o início e fim da trama,<br />
per<strong>de</strong>ndo a sincronização para sempre. Para resolver este problema, foi necessário implementar<br />
uma técnica <strong>de</strong> sincronização <strong>de</strong> dados com um caractere que i<strong>de</strong>ntificasse o início <strong>de</strong> trama.<br />
Este carácter, para além <strong>de</strong> ter funções <strong>de</strong> sincronização, também permite que o software da<br />
aplicação gráfica seja construído para receber tramas <strong>de</strong> diferentes tamanhos, não necessitando<br />
<strong>de</strong> terem um tamanho pré-<strong>de</strong>finido. Assim a aplicação só necessita <strong>de</strong> i<strong>de</strong>ntificar os inícios das<br />
tramas, e automaticamente calcula o seu tamanho. A técnica implementada foi o Bit stuffing que<br />
permite que as tramas contenham um número arbitrário <strong>de</strong> bits e permite o envio <strong>de</strong> tramas por<br />
parte do coor<strong>de</strong>nador, em qualquer fase da comunicação, sem que a aplicação gráfica perca<br />
dados. Para além <strong>de</strong>sta solução outras surgiram, mas que foram abandonadas por motivos <strong>de</strong><br />
complexida<strong>de</strong> ou <strong>de</strong> <strong>de</strong>sempenho, como o flow control ou o envio <strong>de</strong> requests ao computador<br />
para começar a comunicação.<br />
Bit Stuffing<br />
Na técnica <strong>de</strong> Bit stuffing cada trama inicia e termina com um padrão especial,<br />
01111110, <strong>de</strong>signado por flag byte. O receptor é assim capaz <strong>de</strong> <strong>de</strong>tectar o início da trama. No<br />
entanto, há sempre o perigo <strong>de</strong> nos dados ocorrer uma sequência <strong>de</strong> bits igual à do flag byte. É<br />
aqui que entra a técnica <strong>de</strong> Bit stuffing. Nos dados transmitidos pelo emissor, sempre que se<br />
<strong>de</strong>tecta cinco bits consecutivos a 1, automaticamente se insere (stuffs) um bit 0, mesmo que o<br />
bit seguinte seja um 0. Assim, apenas no início da trama é transmitido o flag byte. O receptor<br />
reconhece assim o início da trama pelo flag byte. No processamento subsequente dos bits<br />
recebidos, quando forem encontrados nos dados cinco bits consecutivos a 1, é retirado<br />
(<strong>de</strong>stuffs) o bit 0 que se segue.<br />
Se os dados a transmitidas contiverem uma sequência correspon<strong>de</strong>nte ao flag padrão,<br />
01111110, ela é transmitida como 011111010 mas após <strong>de</strong>stuffing no receptor é guardada<br />
correctamente como 01111110. A técnica <strong>de</strong> Bit stuffing é completamente transparente para o<br />
nível <strong>de</strong> re<strong>de</strong> em ambos os dispositivos (coor<strong>de</strong>nador e computador). Como exemplo, para enviar<br />
a sequência 00101111111011111100000111, ela será transmitida como<br />
0010111110110111110100000111 e recebida como 00101111111011111100000111<br />
65
66<br />
Desenvolvimento<br />
(Figura 46). Com a técnica Bit stuffing, os limites entre duas tramas são conhecidos sem<br />
ambiguida<strong>de</strong> através da flag padrão.<br />
Figura 46: <strong>Implementação</strong> do Bit Stuffing numa sequência <strong>de</strong> bits a enviar.<br />
Assim a trama <strong>de</strong> dados enviada ao coor<strong>de</strong>nador tem um tamanho <strong>de</strong>pen<strong>de</strong>nte do<br />
número <strong>de</strong> sequências <strong>de</strong> 5 bits a 1, pois neste caso são acrescentados mais bits. Depois dos<br />
dados passarem por esta técnica são enviados então ao computador pela porta UART do<br />
dispositivo e para a porta USB do computador a um Baudrate <strong>de</strong> 115,2 kbps. Esta comunicação<br />
entre o nó controlador e o computador é uma comunicação do tipo half-duplex, ou seja há<br />
transferência <strong>de</strong> dados nos dois sentidos mas não em simultâneo.<br />
Contagem <strong>de</strong> erros e qualida<strong>de</strong> do sinal<br />
O dispositivo coor<strong>de</strong>nador da re<strong>de</strong> tem ainda um mecanismo para contagem <strong>de</strong> tramas<br />
perdidas e repetidas que po<strong>de</strong> ser activado directamente no firmware. Este sistema é bastante<br />
útil quando é necessário fazer <strong>de</strong>bug do sistema excluindo a ligação com o PC. Assim po<strong>de</strong>-se<br />
ter uma percepção do <strong>de</strong>sempenho da re<strong>de</strong>, ao longo <strong>de</strong> diferentes taxas <strong>de</strong> amostragem. O<br />
algoritmo para este sistema encontra-se na Figura 47.
Capítulo - 3<br />
Figura 47: Algoritmo do mecanismo <strong>de</strong> contagem <strong>de</strong> tramas perdidas e repetidas.<br />
O firmware tem ainda a possibilida<strong>de</strong> <strong>de</strong> guardar os valores <strong>de</strong> LQI (Link Quality) <strong>de</strong> cada<br />
trama, que são valores entre 0 e 255 e indicam a qualida<strong>de</strong> da conexão numa dada<br />
transmissão. Estes valores po<strong>de</strong>m ser analisados posteriormente, po<strong>de</strong>ndo tirar-se conclusões<br />
acerca do melhor <strong>de</strong>sempenho da re<strong>de</strong>.<br />
3.4 <strong>Implementação</strong> com protocolo 802.15.4<br />
Inicialmente os resultados do <strong>de</strong>sempenho da re<strong>de</strong> implementada com o protocolo Zigbee<br />
não foram os <strong>de</strong>sejados, tendo-se então optado por implementar uma nova re<strong>de</strong> com um<br />
protocolo <strong>de</strong> mais baixo nível, <strong>de</strong> modo a tentar aumentar as velocida<strong>de</strong>s <strong>de</strong> transmissão <strong>de</strong><br />
dados e diminuir as perdas <strong>de</strong> tramas. Optou-se por utilizar o protocolo 802.15.4 que é a base<br />
do Zigbee e aproveitar o facto <strong>de</strong> as tramas po<strong>de</strong>rem ser maiores e da mensagem transmitida<br />
entre os nós, terem um overhead menor.<br />
Esta aplicação para o coor<strong>de</strong>nador e dispositivo final, pelo facto <strong>de</strong> ter sido construída<br />
<strong>de</strong>pois da implementação da re<strong>de</strong> Zigbee, apresenta alguns algoritmos e funções iguais ou<br />
semelhantes à anterior, pelo que serão explicadas apenas as diferenças entre as duas<br />
implementações.<br />
67
3.4.1 Arquitectura da re<strong>de</strong> <strong>de</strong> sensores sem fios<br />
68<br />
Desenvolvimento<br />
Como o protocolo 802.15.4 é a base do Zigbee, a arquitectura <strong>de</strong> ambos é semelhante.<br />
Como se po<strong>de</strong> ver na Figura 48, a camada <strong>de</strong> aplicação está ligada aos módulos da pilha do<br />
802.15.4, aplication queue, periféricos integrados e elementos da placa <strong>de</strong> <strong>de</strong>senvolvimento<br />
através das APIs <strong>de</strong> cada módulo.<br />
Figura 48: Arquitectura do software 802.15.4 stack da Jennic.<br />
Para esta aplicação, é útil <strong>de</strong>stacar as interfaces MCPS e o MLME da camada MAC da<br />
pilha protocolar 802.15.4. O MLME (MAC Layer Management Entity) é o órgão <strong>de</strong> gestão da<br />
re<strong>de</strong> e é usado para todos os comandos da camada MAC. É responsável por tarefas como<br />
autenticação ou associação <strong>de</strong> nós sensores. A interface MCPS (MAC Common Part Sublayer) é<br />
responsável pelo envio e recepção <strong>de</strong> dados. Estas duas interfaces têm um papel activo no<br />
funcionamento das aplicações do dispositivo final e coor<strong>de</strong>nador. Nas secções abaixo será<br />
mostrada a estrutura do firmware com os algoritmos e fluxogramas para estes dois dispositivos<br />
<strong>de</strong> re<strong>de</strong>.<br />
3.4.2 Estrutura do firmware<br />
O firmware da aplicação com o protocolo 802.15.4 é um pouco diferente da aplicação<br />
do Zigbee, no entanto muitas das funções anteriormente implementadas para essa aplicação<br />
foram utilizadas com o 802.15.4, tendo-se efectuado apenas alguns ajustes. Como
Capítulo - 3<br />
anteriormente, existem duas aplicações distintas para os dois dispositivos: coor<strong>de</strong>nador e<br />
dispositivo final, apesar <strong>de</strong> terem várias semelhanças.<br />
Coor<strong>de</strong>nador<br />
Depois <strong>de</strong> iniciado o sistema e o nó controlador, o algoritmo executa um ciclo infinito<br />
para processar as interrupções/eventos que possam ocorrer. Po<strong>de</strong>m ocorrer três tipos <strong>de</strong><br />
eventos:<br />
os eventos <strong>de</strong> re<strong>de</strong> que são tratados na interface MLME;<br />
os eventos <strong>de</strong> transmissão <strong>de</strong> dados que são tratados no MCPS;<br />
as interrupções dos periféricos integrados que são encaminhados para a rotina<br />
<strong>de</strong> interrupção respectiva (Figura 49). No caso da aplicação do coor<strong>de</strong>nador,<br />
esta não tem periféricos integrados activos.<br />
No início do sistema vão surgir eventos para criar a re<strong>de</strong> 802.15.4 e associar nós<br />
sensores no MLME. Depois da re<strong>de</strong> criada, o nó controlador recebe as tramas <strong>de</strong> dados no<br />
MCPS on<strong>de</strong> vai processá-las aplicando o Bit Stuffing, e envia o array final para a porta UART,<br />
verificando então se recebeu comandos da aplicação gráfica. Se recebeu comandos então envia<br />
uma Beacon Payload com os dados do comando recebido, ao nó sensor correspon<strong>de</strong>nte. A<br />
Beacon Payload serve para o coor<strong>de</strong>nador enviar comandos aos nós sensores e enviar também<br />
outro tipo <strong>de</strong> informação que possa ser útil no futuro.<br />
69
Figura 49: Fluxograma do programa principal do firmware do Coor<strong>de</strong>nador (802.15.4).<br />
70<br />
Desenvolvimento<br />
As funções utilizadas foram maioritariamente implementadas na aplicação anterior e<br />
estão representadas na Tabela 12.<br />
Tabela 12: Descrição das funções do firmware do Nó Controlador no protocolo 802.15.4.<br />
Tipo <strong>de</strong> função Funções Descrição<br />
(Vários)<br />
Processamento <strong>de</strong><br />
tramas<br />
Comandos<br />
bittoByteArray<br />
BytetobitArray<br />
Bitstuffing<br />
envia_uart<br />
recebe_uart<br />
uart_config<br />
vProcessIncomingData<br />
(Funções implementadas na aplicação Zigbee e<br />
explicadas na Tabela 9)<br />
Função principal da aplicação. Recebe e processa as<br />
tramas recebidas, enviando <strong>de</strong>pois para a UART e<br />
verifica se recebeu comandos da aplicação gráfica.<br />
vStartBeacon Configura e inicia a Beacon Payload.<br />
vUpdateBeaconPayload<br />
Actualiza a Beacon Payload a enviar ao respectivo nó<br />
sensor <strong>de</strong>pois <strong>de</strong> receber um comando da aplicação<br />
gráfica.
Capítulo - 3<br />
Dispositivo Final<br />
O dispositivo final tem um funcionamento um pouco diferente do coor<strong>de</strong>nador, pois<br />
contém uma máquina <strong>de</strong> estados por trás que coor<strong>de</strong>na toda a aplicação (Figura 50). Esta<br />
começa no estado “E_STATE_OFF” e quando o dispositivo é iniciado vai progressivamente<br />
transitando entre os outros estados.<br />
Figura 50: Máquina <strong>de</strong> estados do dispositivo final.<br />
O dispositivo inicia a procura <strong>de</strong> re<strong>de</strong> que <strong>de</strong>pois <strong>de</strong> encontrada, tal como o nó<br />
controlador, executa um ciclo infinito para processar as interrupções/eventos. Inicialmente<br />
executa as funções <strong>de</strong> re<strong>de</strong> no MLME para estabelecer conexão com nó sensores. Para a<br />
aquisição <strong>de</strong> dados é configurado um timer e o ADC aquando da inicialização do sistema. O<br />
timer, tal como na aplicação Zigbee, controla a frequência <strong>de</strong> amostragem para a aquisição do<br />
ADC. Quando expira gera uma interrupção que é imediatamente atendida e executada numa ISR<br />
on<strong>de</strong> se faz a aquisição e armazenamento da amostra num array. Este ciclo é repetido até que o<br />
array esteja completo, com um número <strong>de</strong> amostras estabelecido previamente, instante em que<br />
é processado e enviado ao nó controlador (Figura 51). Neste ciclo o dispositivo transita entre os<br />
estados “E_STATE_RUNNING”, “E_STATE_TX_DATA” e “E_STATE_READ_SENSORS” e<br />
“E_STATE_RUNNING”.<br />
71
Figura 51: Fluxograma do programa principal do firmware do dispositivo final (802.15.4).<br />
72<br />
Desenvolvimento<br />
Quando o nó sensor recebe um comando do coor<strong>de</strong>nador, processa-o <strong>de</strong> forma muito<br />
semelhante à aplicação Zigbee. O resto das funções implementadas on<strong>de</strong> o processamento é<br />
um pouco diferente da aplicação Zigbee está <strong>de</strong>scrito na Tabela 13.
Capítulo - 3<br />
Tabela 13: Descrição das funções do firmware do Nó sensor no protocolo 802.15.4.<br />
Tipo <strong>de</strong> função Funções Descrição<br />
(Vários)<br />
Configuração<br />
Processamento <strong>de</strong><br />
tramas<br />
adc_config<br />
stop<br />
tmr_config<br />
TimerAmostADC<br />
vProcessTxBlock<br />
Comandos vProcessRxBeacon<br />
73<br />
(Funções implementadas na aplicação Zigbee e<br />
explicadas na Tabela 10).<br />
Configura o timer para controlar a frequência <strong>de</strong><br />
amostragem.<br />
Faz a aquisição <strong>de</strong> amostras do ADC e processa o<br />
array quando este estiver completo.<br />
Envia a trama <strong>de</strong> dados ao Nó Controlador.<br />
Lê os dados do comando recebido e executa-o.<br />
3.4.3 Aquisição <strong>de</strong> sinal e preparação para a transmissão<br />
As tramas são construídas <strong>de</strong> forma muito semelhante à aplicação Zigbee. Com o<br />
protocolo 802.15.4 o array a enviar ao coor<strong>de</strong>nador tem 8 bits em cada posição, ou seja um<br />
byte, logo é necessário colocar as amostras do ADC <strong>de</strong> 12 bits no array. Cada 2 amostras <strong>de</strong> 12<br />
bits são colocadas em 3 posições do array Payload da forma que se po<strong>de</strong> ver na Figura 52.<br />
Assim um total <strong>de</strong> 64 amostras cabem em 96 posições do array Payload (função 3).<br />
Figura 52: Construção das tramas no Nó sensor (protocolo 802.15.4).
74<br />
Desenvolvimento<br />
Depois <strong>de</strong>ste processamento, à trama a enviar são acrescentados mais 2 bytes <strong>de</strong> 8 bits<br />
cada que completam a trama <strong>de</strong> 98 posições correspon<strong>de</strong>ndo a 98 bytes. Os dados são o No<strong>de</strong><br />
ID e o número <strong>de</strong> trama tal como na aplicação anterior (Figura 53).<br />
Figura 53: Trama <strong>de</strong> dados completa (802.15.4).<br />
As tramas <strong>de</strong> comando na aplicação do protocolo 802.15.4 são iguais às da aplicação<br />
do protocolo Zigbee.<br />
3.4.4 Processamento no Coor<strong>de</strong>nador e envio para a UART<br />
No coor<strong>de</strong>nador o processamento é essencialmente o mesmo que na aplicação Zigbee,<br />
apesar <strong>de</strong> nesta aplicação não haver tarefas e ser tudo constituído por funções. A parte que<br />
difere um pouco é o processamento das tramas recebidas. Neste caso a trama recebida é<br />
encaminhada imediatamente para a subrotina <strong>de</strong> Bit Stuffing. Tudo o resto, apesar <strong>de</strong> ter ligeiras<br />
diferenças adaptadas à dinâmica da aplicação 802.15.4 é muito semelhante à aplicação<br />
<strong>de</strong>senvolvida anteriormente.<br />
3.5 Estrutura do software em computador<br />
O software no computador foi <strong>de</strong>senvolvido no ambiente <strong>de</strong> <strong>de</strong>senvolvimento LabView da<br />
National Instruments. Esta ferramenta está optimizada para aplicações <strong>de</strong> engenharia, mais<br />
especificamente para sistemas <strong>de</strong> teste, controlo e monitorização. Através do LabView é possível<br />
fazer-se a aquisição <strong>de</strong> sinais, análise dos dados e a comunicação ou armazenamento dos<br />
resultados <strong>de</strong> forma rápida e simples. O LabView utiliza um ambiente gráfico <strong>de</strong> programação<br />
por fluxo <strong>de</strong> dados, em substituição às linguagens convencionais baseadas em texto.
Capítulo - 3<br />
Neste caso, construiu-se uma aplicação gráfica para várias funções on<strong>de</strong> se <strong>de</strong>staca a<br />
visualização dos sinais dos sensores. O sistema <strong>de</strong> re<strong>de</strong> comunica os sinais provenientes dos<br />
sensores que serão mostrados, a priori, em forma <strong>de</strong> gráfico, para o utilizador ter a noção, em<br />
tempo real, dos valores que está a receber.<br />
3.5.1 Aplicação Gráfica<br />
O FrontEnd da aplicação gráfica, on<strong>de</strong> são representados os sinais <strong>de</strong> quatro sensores,<br />
encontra-se representado na Figura 54. O primeiro gráfico correspon<strong>de</strong> ao sensor <strong>de</strong><br />
temperatura timpânica, que foi <strong>de</strong>senvolvido como exemplo para os vários sensores que<br />
compõem o sistema, os restantes três são sinais simulados que serão substituídos por sinais<br />
reais <strong>de</strong>sses sensores.<br />
Figura 54: Aplicação Gráfica.<br />
Esta aplicação tem vários controlos e indicadores, ou <strong>de</strong> outra perspectiva elementos <strong>de</strong><br />
entrada e <strong>de</strong> saída. Os elementos indicadores são os gráficos e as caixas <strong>de</strong> fundo a cinzento, os<br />
controladores são os botões e as caixas <strong>de</strong> fundo branco. Os gráficos estão configurados no<br />
modo “autoscale”, logo adaptam-se ao sinal do sensor automaticamente. No eixo das abcissas<br />
está representado o tempo, enquanto no eixo das or<strong>de</strong>nadas representa-se o valor da gran<strong>de</strong>za<br />
física a medir, no caso da temperatura timpânica a medida é em graus celsius (ºC). Por baixo<br />
dos gráficos, na caixa command po<strong>de</strong>-se escolher o tipo <strong>de</strong> comando (Start, Stop ou SetFreq) e<br />
75
76<br />
Desenvolvimento<br />
no botão Send Command po<strong>de</strong>-se enviar o comando ao nó sensor. No caso do comando SetFreq<br />
po<strong>de</strong>-se digitar o valor da frequência <strong>de</strong>sejada e aparece a correspon<strong>de</strong>nte frequência real na<br />
caixa Real Frequency. Para funções <strong>de</strong> <strong>de</strong>bug, foi adicionado um indicador para cada sensor<br />
com os valores do número <strong>de</strong> trama, o total <strong>de</strong> tramas perdidas, o total <strong>de</strong> tramas transmitidas e<br />
o total <strong>de</strong> tramas repetidas. Para terminar a aplicação e todos os processos <strong>de</strong>sta, basta<br />
seleccionar o botão Finish Aplication.<br />
Ao nível da programação, o algoritmo da aplicação gráfica po<strong>de</strong> ser dividido como<br />
<strong>de</strong>monstra o diagrama <strong>de</strong> blocos da Figura 55. Existe um ciclo que é repetido sempre que se<br />
inicia a aplicação, e um bloco isolado, o envio <strong>de</strong> comandos que só é executado quando for<br />
activado o botão Send Command.<br />
diagrama.<br />
Figura 55: Diagrama <strong>de</strong> blocos da aplicação gráfica.<br />
Nos próximos subcapítulos será abordado em particular, cada bloco representado no<br />
3.5.2 Recepção <strong>de</strong> dados<br />
Para ace<strong>de</strong>r aos dados recebidos na porta série do computador utilizou-se uma VI pré-<br />
<strong>de</strong>finida fornecida pelo LabView. A porta série do computador contém um buffer on<strong>de</strong> ficam<br />
guardados os dados recebidos até que a aplicação faça a leitura. Para este processo, a aplicação<br />
utiliza a função VISA Configure Serial Port VI para escolher, configurar e inicializar a porta série.<br />
A função VISA Set I/O Buffer Size Function <strong>de</strong>fine o tamanho do buffer <strong>de</strong> entrada e saída <strong>de</strong><br />
dados. Por último, a função VISA Read Function que lê um número específico <strong>de</strong> dados que<br />
estão guardados no buffer da porta série (Figura 56).
Capítulo - 3<br />
Figura 56: Recepção <strong>de</strong> dados da aplicação gráfica (Extracto do Block Diagram do Labview).<br />
O tamanho do buffer <strong>de</strong> entrada/saída é significativamente elevado, porque quando a<br />
aplicação está inactiva, o buffer da porta série acumula dados, e estes terão que ser lidos em<br />
gran<strong>de</strong> número por cada ciclo, <strong>de</strong> modo a que a aplicação acompanhe a taxa <strong>de</strong> transferência<br />
<strong>de</strong> dados do coor<strong>de</strong>nador da re<strong>de</strong> sem fios.<br />
3.5.3 Extracção <strong>de</strong> tramas<br />
Quando a aplicação lê os dados no buffer da porta série, através da função explicada<br />
acima, esta adquire um número aleatório <strong>de</strong> dados que <strong>de</strong>pen<strong>de</strong> da quantida<strong>de</strong> <strong>de</strong> dados do<br />
buffer. Logo é necessário i<strong>de</strong>ntificar o início <strong>de</strong> cada trama para as processar. As tramas são<br />
recebidas com a técnica Bit suffing implementada e com o processamento <strong>de</strong> encaixe <strong>de</strong><br />
amostras <strong>de</strong> 12 bits num array <strong>de</strong> 8 bits em cada posição, por isso é necessário fazer o <strong>de</strong>stuff e<br />
extrair as tramas dos dados recebidos em bruto. Também é necessário extrair em cada trama, o<br />
No<strong>de</strong> ID e o número <strong>de</strong> trama para as encaminhar para o sensor correspon<strong>de</strong>nte. Depois disto é<br />
necessário criar um cluster com uma correspondência entre o No<strong>de</strong> ID, número <strong>de</strong> trama e<br />
dados <strong>de</strong>ssa trama para que sejam processados posteriormente. Na Figura 57 po<strong>de</strong>-se verificar<br />
o diagrama <strong>de</strong> blocos com a sucessão das tarefas principais da extracção <strong>de</strong> tramas.<br />
77
Figura 57: Diagrama <strong>de</strong> blocos da subVI Extract Frames (Extracção <strong>de</strong> tramas).<br />
78<br />
Desenvolvimento<br />
A separação das tramas é feita, percorrendo o array <strong>de</strong> dados adquiridos da porta série<br />
procurando o caractere <strong>de</strong> início <strong>de</strong> trama 126 (01111110). Uma vez encontrado, é procurado o<br />
seguinte para <strong>de</strong>finir a trama e seu tamanho. Repete-se o ciclo até ao fim do array <strong>de</strong> dados.<br />
De cada vez que é <strong>de</strong>finida uma trama, esta é logo processada pelo bloco Destuff, que<br />
faz exactamente o processo inverso do stuff implementado no dispositivo coor<strong>de</strong>nador da re<strong>de</strong><br />
sem fios e explicado no subcapítulo anterior.<br />
Depois do Destuff, há a extracção do no<strong>de</strong> ID e número <strong>de</strong> trama, que consiste em<br />
separar na trama <strong>de</strong> dados os dois primeiros bytes dos restantes. Os dados daqui resultantes<br />
passam por um processo <strong>de</strong> extracção das amostras <strong>de</strong> 12 bits, visto que no coor<strong>de</strong>nador da<br />
re<strong>de</strong>, sofreram um processamento para encaixe das amostras <strong>de</strong> 12 bits no array recebido. Este<br />
processo <strong>de</strong> extracção <strong>de</strong> amostras é exactamente o inverso do processo explicado na Figura 52.<br />
Neste caso em cada 3 posições do array recebido, estão 2 amostras <strong>de</strong> 12 bits e é necessário<br />
extraí-las, para guardar num array <strong>de</strong> 12 bits por posição. No fim <strong>de</strong>sta extracção, é criado um<br />
cluster com os elementos no<strong>de</strong> ID, nº <strong>de</strong> trama e dados para serem processados nos blocos<br />
seguintes. No anexo 4 po<strong>de</strong>-se ver o block diagram da sub-VI <strong>de</strong> extracção <strong>de</strong> tramas.<br />
3.5.4 Contagem <strong>de</strong> erros<br />
Depois <strong>de</strong> adquiridos os dados e extraídas as tramas é necessário fazer a contagem <strong>de</strong><br />
erros, visto que a comunicação entre os dispositivos <strong>de</strong> re<strong>de</strong> não é totalmente eficiente em<br />
nenhum dos protocolos implementados, verificando-se em alguns casos tramas perdidas ou<br />
repetidas. Para fazer esta contagem foi criado um cluster com 5 elementos: No<strong>de</strong> ID, nº <strong>de</strong>
Capítulo - 3<br />
trama, total <strong>de</strong> tramas perdidas, total <strong>de</strong> tramas transmitidas e total <strong>de</strong> tramas repetidas. Este<br />
cluster é actualizado <strong>de</strong> cada vez que o bloco contagem <strong>de</strong> erros recebe uma trama <strong>de</strong> dados e<br />
é visualizado no painel <strong>de</strong> erros <strong>de</strong> cada sensor (Figura 58). Por cada sensor é registado o seu<br />
No<strong>de</strong> ID, para posteriormente serem calculados os erros e guardados no cluster do sensor<br />
correspon<strong>de</strong>nte. O cálculo das tramas perdidas e repetidas são feitos individualmente, ainda que<br />
o das tramas repetidas <strong>de</strong>penda do cálculo das tramas perdidas.<br />
Figura 58: Atribuição do cluster <strong>de</strong> erros (No<strong>de</strong> List) ao indicador.<br />
3.5.5 Visualização <strong>de</strong> dados<br />
Para a visualização dos dados foi feito um switch que, através da leitura do no<strong>de</strong> ID <strong>de</strong><br />
cada cluster que recebe, encaminha os dados <strong>de</strong> cada sensor para o gráfico e painel <strong>de</strong> erros<br />
correcto. Os dados do sensor po<strong>de</strong>m ser verificados no gráfico correspon<strong>de</strong>nte, enquanto os<br />
dados sobre tramas perdidas e repetidas po<strong>de</strong>m ser observados no painel (Figura 59). Os<br />
gráficos são do tipo chart, ou seja acumulam dados actuais com os dados anteriores e estão<br />
<strong>de</strong>finidos com escalas que se adaptam automaticamente ao sinal recebido.<br />
79
Figura 59: Visualização <strong>de</strong> dados.<br />
80<br />
Desenvolvimento<br />
Com este ajuste automático das escalas, os gráficos po<strong>de</strong>m receber sinais <strong>de</strong> sensores<br />
<strong>de</strong> diferentes tipos, pois são visualizados da melhor forma. Os dados são recebidos em arrays,<br />
com um tamanho pré-<strong>de</strong>finido no nó sensor remetente. Po<strong>de</strong> ainda ser consultada a frequência<br />
real a que o sensor está a transmitir, que po<strong>de</strong>, em alguns casos, divergir um pouco da<br />
frequência <strong>de</strong>sejada.<br />
3.5.6 Envio <strong>de</strong> comandos<br />
Os comandos po<strong>de</strong>m ser do tipo Start, Stop ou SetFreq, estando as suas funcionalida<strong>de</strong>s<br />
explicadas na Tabela 11. Para o envio <strong>de</strong> comandos para a porta série foi construído um switch<br />
on<strong>de</strong> é seleccionado pelo botão Send Comand o case correspon<strong>de</strong>nte ao sensor para on<strong>de</strong> se<br />
<strong>de</strong>seja enviar um comando. Na caixa Command po<strong>de</strong>-se escolher o tipo <strong>de</strong> comando <strong>de</strong>sejado,<br />
que selecciona um novo case <strong>de</strong>ntro <strong>de</strong> um segundo switch. Depois disto é construída uma<br />
string com o tipo <strong>de</strong> comando (A, B ou F), o no<strong>de</strong> ID e o divisor da frequência <strong>de</strong> amostragem<br />
(Figura 60). Esta string é enviada para a porta série quando o botão Send Command é activado.
Capítulo - 3<br />
Figura 60: Envio <strong>de</strong> comandos (Extracto do Block Diagram do Labview).<br />
Os comandos têm o tamanho <strong>de</strong> 6 bytes, e por cada caractere é enviado o seu código<br />
ASCII ao coor<strong>de</strong>nador. Depois <strong>de</strong> receber os comandos o coor<strong>de</strong>nador interpreta-os e envia ao<br />
nó sensor correspon<strong>de</strong>nte.<br />
3.6 Hardware analógico<br />
Para completar o sistema <strong>de</strong> monitorização do corpo humano e para servir como mo<strong>de</strong>lo,<br />
foi construído um circuito condicionador para um sensor <strong>de</strong> temperatura timpânica. Para<br />
implementar este circuito, foi necessário ter em conta que o valor máximo <strong>de</strong> tensão admitido<br />
pelo ADC é <strong>de</strong> 2.4 V, então os circuitos condicionadores <strong>de</strong>verão ter o valor <strong>de</strong> Vouto <strong>de</strong> 0 a 2.4V.<br />
3.6.1 Sensor <strong>de</strong> Temperatura Timpânica<br />
Para a medição da temperatura timpânica, é necessário um sensor específico, visto que<br />
o interior do ouvido é uma zona do corpo humano bastante sensível, e na prática <strong>de</strong> natação<br />
com o sensor, po<strong>de</strong> sofrer alguma lesão. É também importante um sensor com boa precisão e<br />
sensibilida<strong>de</strong> <strong>de</strong> dimensões reduzidas, pois não <strong>de</strong>verá incomodar a activida<strong>de</strong> e bem-estar do<br />
utilizador. Assim sendo optou-se pelo sensor <strong>de</strong> temperatura timpânica da Smiths Medical<br />
(Figura 61).<br />
81
Figura 61: Sensor <strong>de</strong> temperatura timpânica.<br />
82<br />
Desenvolvimento<br />
Este sensor é protegido por uma mini esponja que é inserida no ouvido, reduzindo o<br />
risco <strong>de</strong> lesão, e uma parte exterior, também no mesmo material que faz barreira à passagem<br />
do ar, e ajuda na inserção do sensor no ouvido. O fio condutor do sinal eléctrico fornece leituras<br />
precisas, reduzindo a influência do ar ambiente na temperatura.<br />
O sensor propriamente dito, é um termistor NTC (Negative Temperature Coefficient) com<br />
precisão <strong>de</strong> 0.2 ºC, variando a sua resistência numa gama <strong>de</strong> 850Ω a 2KΩ, para uma gama <strong>de</strong><br />
temperaturas entre os 30 e 45 ºC (Tabela 14).<br />
Tabela 14: Valores da resistência do sensor NTC sensível à temperatura.<br />
3.6.2 Circuito electrónico<br />
Temperatura (ºC) RT (Ω)<br />
45 ºC 850Ω<br />
43 ºC 930Ω<br />
40 ºC 1100Ω<br />
37 ºC 1350Ω<br />
34 ºC 1640Ω<br />
32 ºC 1850Ω<br />
Antes <strong>de</strong> qualquer <strong>de</strong>scrição da implementação do circuito condicionador, é importante<br />
referir que este sensor, pela sua aplicabilida<strong>de</strong> na área da medicina e saú<strong>de</strong>, tem as suas<br />
características reservadas aos seus fabricantes, portanto não foi tomado conhecimento do seu<br />
datasheet, sendo a maioria das características verificadas na prática e teste efectuados ao<br />
sensor. Por exemplo, os valores <strong>de</strong> saída do sensor <strong>de</strong> temperatura (resistência) da Tabela 14<br />
foram obtidos experimentalmente.<br />
Uma das condicionantes <strong>de</strong>ste circuito é sem dúvida a sua fonte <strong>de</strong> alimentação. Uma<br />
vez que o sistema tem necessida<strong>de</strong> <strong>de</strong> ser portátil, esta <strong>de</strong>verá ser feita através <strong>de</strong> pilhas<br />
capazes <strong>de</strong> alimentar o microcontrolador dos nós da re<strong>de</strong> e simultaneamente o circuito
Capítulo - 3<br />
implementado. Para alimentação do circuito e do microcontrolador foram utilizadas duas pilhas<br />
<strong>de</strong> lítio do tipo AAA <strong>de</strong> 3 V cada.<br />
Os sensores <strong>de</strong> temperatura do tipo termistor NTC têm um coeficiente <strong>de</strong> variação <strong>de</strong><br />
resistência com a temperatura negativo, ou seja a resistência diminui com o aumento da<br />
temperatura, sendo esta variação não-linear. Na Figura 62 po<strong>de</strong>-se ver a curva característica<br />
típica <strong>de</strong> um termistor NTC.<br />
Figura 62: curva característica <strong>de</strong> um termistor NTC, adaptado <strong>de</strong> [37].<br />
Em muitos casos os circuitos utilizados para medição <strong>de</strong>ste tipo <strong>de</strong> sensores são as<br />
pontes <strong>de</strong> Wheatstone, i<strong>de</strong>ais para sensores com reduzidas variações da sua gran<strong>de</strong>za, mas<br />
neste caso utilizou-se um circuito alternativo com base no circuito da Figura 63.<br />
Figura 63: Amplificador inversor com sensor na malha <strong>de</strong> realimentação.<br />
Estando o sensor inserido na malha <strong>de</strong> realimentação, po<strong>de</strong> ver-se, pela equação que<br />
<strong>de</strong>termina a tensão <strong>de</strong> saída, que a tensão na saída do sensor é <strong>de</strong>pen<strong>de</strong>nte da resistência do<br />
sensor, que por sua vez varia com a temperatura.<br />
83
84<br />
Desenvolvimento<br />
Este circuito foi utilizado <strong>de</strong>vido ao seu maior grau <strong>de</strong> exactidão comparativamente com<br />
as pontes <strong>de</strong> Wheatstone, e por ter uma corrente pequena e constante no NTC, in<strong>de</strong>pen<strong>de</strong>nte da<br />
resistência do mesmo. Esta última característica é importante para que a situação <strong>de</strong> aumento<br />
<strong>de</strong> temperatura, e consequentemente diminuição da resistência do termistor, não provoque um<br />
aumento da corrente que atravessa o termistor que por sua vez produziria um maior<br />
aquecimento e po<strong>de</strong>ria influenciar os resultados. No circuito representado na Figura 63 a<br />
corrente que passa em RS é igual à corrente que passa no termistor, e mantém-se constante<br />
<strong>de</strong>s<strong>de</strong> que não haja variação da tensão <strong>de</strong> referência.<br />
O OpAmp escolhido foi o LM308 que tem baixa tensão <strong>de</strong> alimentação e elevada<br />
precisão [38]. A baixa tensão <strong>de</strong> alimentação é um dos requisitos <strong>de</strong>vido à fonte <strong>de</strong> alimentação<br />
serem pilhas <strong>de</strong> 3V. Para fazer o condicionamento do sinal do termistor, implementou-se o<br />
circuito da Figura 64, baseado no circuito anterior, acrescido <strong>de</strong> um andar amplificador e um<br />
divisor <strong>de</strong> tensão. O primeiro andar amplificador assegura uma corrente pequena e constante no<br />
termistor, o segundo andar serve para ajustar o ganho para obter a gama <strong>de</strong> tensões <strong>de</strong> saída<br />
<strong>de</strong>sejada e o divisor <strong>de</strong> tensão ajusta o offset para que a tensão <strong>de</strong> saída seja nula quando o<br />
valor <strong>de</strong> temperatura é máximo.<br />
Figura 64: Circuito condicionador para sensor <strong>de</strong> temperatura timpânica.<br />
A gama <strong>de</strong> medição <strong>de</strong> temperatura pretendida é <strong>de</strong> 32 a 45 ºC, visto que o organismo<br />
humano não suporta temperaturas acima <strong>de</strong> 45ºC, e que abaixo dos 32 ºC po<strong>de</strong> entrar em<br />
hipotermia e sofrer arritmias cardíacas fatais. A primeira tarefa para implementar o circuito era<br />
encontrar o valor da corrente no sensor que não influenciasse os resultados. Como não era<br />
conhecido o valor da potência máxima dissipada pelo termistor, optou-se por consi<strong>de</strong>rar outros<br />
termistores NTC e admitir um valor <strong>de</strong>ntro dos mesmos níveis. Admitiu-se assim o valor <strong>de</strong> 0,5
Capítulo - 3<br />
mW para a potência <strong>de</strong> dissipação máxima no termistor, calculando-se assim o valor <strong>de</strong> corrente<br />
no termistor segundo a equação 5.<br />
A corrente será constante e <strong>de</strong> valor 767 µA. Analisando o circuito po<strong>de</strong>-se verificar a<br />
tensão no ponto intermediário V3 po<strong>de</strong> ser calculado segundo a função 7.<br />
A resistência R1 (3kΩ) foi escolhida <strong>de</strong> modo a que o primeiro andar não tivesse um<br />
ganho muito elevado, para que o ganho seja <strong>de</strong>terminado praticamente só pelo segundo andar,<br />
<strong>de</strong> modo a ser mais fácil <strong>de</strong> controlar. Assim o ganho máximo do primeiro andar para o caso da<br />
resistência do termistor ser máxima é <strong>de</strong> 0,617.<br />
Para se obter uma tensão <strong>de</strong> saída <strong>de</strong> 2,4v para um valor <strong>de</strong> 32 ºC correspon<strong>de</strong>ndo a<br />
1850Ω, verificou-se na prática que o valor do ganho para o segundo andar <strong>de</strong>veria ser igual a 3.<br />
Assim admitindo que R3 com um valor <strong>de</strong> 6.6 kΩ, po<strong>de</strong> ser calculada a R2 para obter-se este<br />
ganho.<br />
A tensão <strong>de</strong> saída (Vout) <strong>de</strong>ste circuito po<strong>de</strong> ser calculada pela função 10.<br />
85<br />
(5)<br />
(6)<br />
(7)
86<br />
Desenvolvimento<br />
Para ajustar o offset, foi implementado um divisor <strong>de</strong> tensão, que coloca uma tensão na<br />
entrada não inversora do OpAmp, para precisamente compensar a diferença entre as suas duas<br />
entradas, e consequentemente colocar a saída a 0v quando a resistência do termistor for <strong>de</strong><br />
850Ω. Na Tabela 15 po<strong>de</strong>-se verificar a correspondência entre os valores <strong>de</strong> temperatura,<br />
resistência do termistor, tensão intermédia V3, ganho total e saída do circuito condicionador (Vout).<br />
Tabela 15: Valores da saída (Vout) do circuito condicionador em função da temperatura.<br />
Temperatura (ºC) RT (Ω) V3 (mV) Vout (V)<br />
45 ºC 850Ω 3.3mV 0V<br />
43 ºC 930Ω -61,8mV 0,2V<br />
40 ºC 1100Ω -191mV 0,6V<br />
37 ºC 1350Ω -332mV 1,2V<br />
34 ºC 1640Ω -612mV 1.8V<br />
32 ºC 1850Ω -775mV 2.4V<br />
Devido ao sensor <strong>de</strong> temperatura timpânica ser não linear, será necessário corrigir essa<br />
não linearida<strong>de</strong> digitalmente no nó sensor que fizer a aquisição <strong>de</strong>ste sinal. Devido ao facto da<br />
alimentação ser feita por pilhas <strong>de</strong> 3V este circuito satura a uma tensão <strong>de</strong> 2.13V, o que é<br />
próximo da tensão máxima <strong>de</strong> saída <strong>de</strong>sejada. Por experimentação foi obtido o gráfico da Figura<br />
1, on<strong>de</strong> po<strong>de</strong> ser observado o sinal <strong>de</strong> saída do circuito condicionador em função da<br />
temperatura,<br />
Figura 65: Tensão <strong>de</strong> saída (Vout) em função da temperatura.<br />
Este circuito tem uma sensibilida<strong>de</strong> que po<strong>de</strong> ser calculada pela função:
Capítulo - 3<br />
Com a implementação <strong>de</strong>ste circuito condicionador, o sistema <strong>de</strong> monitorização <strong>de</strong> sinais<br />
vitais do corpo humano fica completo, funcionando este sensor juntamente com o sistema <strong>de</strong><br />
aquisição, como mo<strong>de</strong>lo para os outros sensores que completam o sistema <strong>BIOSWIM</strong>.<br />
O sistema do circuito condicionador <strong>de</strong> sensor temperatura mais o sistema <strong>de</strong> aquisição<br />
têm a resolução <strong>de</strong> 0.00319 ºC, como po<strong>de</strong> ser confirmado na expressão 12.<br />
A resolução do sistema <strong>de</strong> condicionamento está duas or<strong>de</strong>ns <strong>de</strong> gran<strong>de</strong>za abaixo da<br />
resolução do sensor, pelo que é suficiente.<br />
87
4.1 Protótipos implementados<br />
4 Resultados<br />
Ao longo do projecto foi implementada uma re<strong>de</strong> <strong>de</strong> comunicação sem fios com o<br />
protocolo Zigbee com a programação do nó sensor e do nó controlador, uma outra re<strong>de</strong> <strong>de</strong><br />
comunicação sem fios com o protocolo 802.15.4, e uma aplicação gráfica para o computador<br />
em LabView para comunicar com ambas as re<strong>de</strong>s. Foi ainda construído um circuito<br />
condicionador para um sensor <strong>de</strong> temperatura timpânica para servir como mo<strong>de</strong>lo para outros<br />
sensores do projecto Bioswim.<br />
O circuito condicionador para o sensor <strong>de</strong> temperatura timpânica foi implementado em<br />
breadboard (Figura 66).<br />
Figura 66: Circuito condicionador <strong>de</strong> sensor <strong>de</strong> temperatura timpânica.<br />
Na Figura 67 po<strong>de</strong> ver-se os protótipos <strong>de</strong> cada elemento que constitui o sistema<br />
<strong>de</strong>senvolvido. No anexo 5 está uma imagem que apresenta o sistema protótipo <strong>de</strong>senvolvido<br />
numa só figura.<br />
88
Capítulo - 4<br />
4.2 Testes<br />
Figura 67: Protótipos implementados.<br />
Terminado o <strong>de</strong>senvolvimento foi necessário proce<strong>de</strong>r a um conjunto <strong>de</strong> testes e<br />
medições para comprovar o funcionamento do sistema criado. Para isso foram efectuados<br />
diversos testes, tanto para o funcionamento geral <strong>de</strong> todo o sistema, como para o <strong>de</strong>sempenho<br />
do mesmo.<br />
Um dos aspectos interessantes a testar neste sistema é a capacida<strong>de</strong> máxima <strong>de</strong><br />
comunicação, ou seja até que velocida<strong>de</strong>s <strong>de</strong> transmissão o sistema comunica sem falhar,<br />
<strong>de</strong>s<strong>de</strong> a aquisição do sinal do sensor até à representação do sinal na aplicação gráfica. Outro<br />
dos aspectos curiosos e relevantes é a comunicação em ambientes adversos, por exemplo em<br />
ambientes ruidosos ou com os módulos <strong>de</strong> comunicação separados por obstáculos à<br />
transferência <strong>de</strong> dados.<br />
Para visualizar os resultados dos testes do <strong>de</strong>sempenho foram essencialmente utilizados o<br />
sistema <strong>de</strong> registo das variáveis do painel <strong>de</strong> erros da aplicação gráfica. Para testes relacionados<br />
com o funcionamento, foi usado o sistema <strong>de</strong> <strong>de</strong>bug dos microcontroladores da Jennic. Todos<br />
estes testes foram feitos e serão <strong>de</strong>scritos nos subcapítulos seguintes.<br />
4.2.1 Testes do sistema<br />
Para testar a parte <strong>de</strong> comunicação entre os dispositivos <strong>de</strong> re<strong>de</strong> foram geradas e<br />
enviadas tramas controladas com dados conhecidos e visualizadas pelo sistema <strong>de</strong> <strong>de</strong>bug. Na<br />
aquisição <strong>de</strong> amostras pelo ADC foi utilizada uma fonte <strong>de</strong> sinal on<strong>de</strong> primeiramente se emitia<br />
89
90<br />
Resultados<br />
valores <strong>de</strong> tensão contínua, <strong>de</strong> modo a verificar as mudanças do valor digital adquirido <strong>de</strong> acordo<br />
com a resolução do ADC. Numa segunda fase era emitida uma sinusói<strong>de</strong> pela fonte e verificada<br />
na aplicação gráfica.<br />
Figura 68: Teste da Aquisição e transmissão <strong>de</strong> dados.<br />
Os testes relacionados com processamento <strong>de</strong> dados foram também efectuados pelo<br />
sistema <strong>de</strong> <strong>de</strong>bug pelo hyperterminal do Windows. Para o teste da implementação da técnica Bit<br />
stuffing foi gerada e emitida no nó sensor uma onda triangular para enviar à aplicação no<br />
computador, o que obrigava a que as amostras tivessem sequências <strong>de</strong> 5 bits a 1 para<br />
obrigatoriamente serem adicionados stuffs no nó controlador.<br />
Para testar a transmissão <strong>de</strong> dados correctos entre os dispositivos <strong>de</strong> re<strong>de</strong> e a aplicação<br />
gráfica, foi gerada uma trama <strong>de</strong> dados igual no nó sensor e na aplicação, verificando-se a<br />
coincidência. A trama enviada foi um “<strong>de</strong>nte <strong>de</strong> serra”, <strong>de</strong> modo a que as amostras tomassem<br />
valores, <strong>de</strong>ntro da gama <strong>de</strong> valores possível, <strong>de</strong>s<strong>de</strong> o menor até ao maior, testando-se assim se<br />
os dados que chegam à aplicação gráfica são os mesmos que foram gerados no nó sensor.<br />
Para testar as perdas e repetição <strong>de</strong> tramas <strong>de</strong> tramas, foi colocado o sistema a<br />
funcionar por completo, <strong>de</strong>s<strong>de</strong> a aquisição até à recepção <strong>de</strong> dados por parte da aplicação<br />
gráfica. Os erros na comunicação foram visualizados no painel <strong>de</strong> erros da aplicação gráfica e<br />
foram registados em ficheiro.<br />
De seguida é apresentado o plano experimental para os testes efectuados ao<br />
<strong>de</strong>sempenho do sistema.
Capítulo - 4<br />
4.3 Plano experimental<br />
Para testar o <strong>de</strong>sempenho do sistema implementado <strong>de</strong> uma forma rigorosa, foi<br />
elaborado um plano experimental, <strong>de</strong> modo a se perceber as condições em que os testes foram<br />
realizados (Figura 69).<br />
Figura 69: Plano experimental para testar o protótipo implementado.<br />
Foram feitos dois tipos <strong>de</strong> testes: um para contabilizar o número <strong>de</strong> tramas perdidas e<br />
outro para avaliar a qualida<strong>de</strong> do sinal entre os dispositivos <strong>de</strong> re<strong>de</strong> (Etapa A).<br />
Para o teste das tramas perdidas foram usadas as duas implementações: Zigbee e<br />
802.15.4 (Etapa B), on<strong>de</strong> foi utilizado o modo <strong>de</strong> energia, Low Power (Etapa C). Foi ainda<br />
testado o modo <strong>de</strong> energia High Power na aplicação com o protocolo 802.15.4, para verificar a<br />
diferença no <strong>de</strong>sempenho entre os dois modos <strong>de</strong> energia. Para estas duas implementações<br />
91
92<br />
Resultados<br />
foram colocados os dispositivos em diferentes configurações (Etapa D), para se verificar se<br />
influenciava o resultado final. As diferentes configurações estão representadas na Tabela 16.<br />
Nome da configuração<br />
(Diagrama)<br />
D1-Dispositivos juntos<br />
D2-10 metros<br />
D3-10 metros com pare<strong>de</strong><br />
D4-Frente e atrás do corpo<br />
D5-Cabeça atrás e pés à<br />
frente<br />
Tabela 16: Posição relativa dos dispositivos.<br />
Descrição da configuração Motivo do teste<br />
Dispositivos juntos. Testar a comunicação nas<br />
melhores condições.<br />
Dispositivos separados a<br />
uma distância 10 metros.<br />
Dispositivos separados a<br />
uma distância <strong>de</strong> 10 metros<br />
separados por uma pare<strong>de</strong>.<br />
Um dispositivo à frente do<br />
corpo e outro atrás.<br />
Um dispositivo atrás da<br />
cabeça e outro à frente dos<br />
pés.<br />
Testar a influência da distância na<br />
comunicação.<br />
Testar a influência <strong>de</strong> um<br />
obstáculo como uma pare<strong>de</strong> na<br />
comunicação.<br />
Testar a influência do corpo<br />
humano na comunicação.<br />
Testar a influência do corpo<br />
humano com os dispositivos à<br />
distância máxima no projecto<br />
<strong>BIOSWIM</strong>.<br />
No caso da configuração dos dispositivos juntos, foi feito o teste para 1, 2 e 3 nós<br />
sensores na re<strong>de</strong>, enquanto para as restantes configurações apenas foi testado para um nó<br />
sensor na re<strong>de</strong> (Etapa E). Para todas estas condições, foi contabilizado o número <strong>de</strong> tramas<br />
perdidas em frequências <strong>de</strong> amostragem <strong>de</strong>s<strong>de</strong> 10 Hz até 10 kHz.<br />
O teste da qualida<strong>de</strong> do sinal foi feito para o protocolo 802.15.4, porque a Jennic dispôs<br />
funções para medir o LQI (Link Quality Indicator) apenas para aplicações que usam o protocolo<br />
802.15.4 (Etapa B). O LQI é um valor <strong>de</strong> 8 bits (0 a 255) e indica a qualida<strong>de</strong> da ligação (sinal)<br />
entre dois dispositivos: emissor e receptor. Este teste foi feito para os dois modos <strong>de</strong> energia<br />
High Power e Low Power (Etapa C) e também para as diferentes configurações citadas em cima<br />
(Etapa D). Para cada uma <strong>de</strong>stas configurações foi medido o LQI para um só nó sensor na re<strong>de</strong><br />
(Etapa E).<br />
De <strong>de</strong>stacar que os testes foram realizados com os módulos com a antena exterior<br />
ligada ao conector SMA. Para o caso <strong>de</strong> vários dispositivos na re<strong>de</strong>, foram usados os módulos<br />
sem conector SMA, com a antena integrada em PCB. No final foi ainda testada a comunicação<br />
com dois nós sensores sem antena exterior, apenas com o conector SMA.
Capítulo - 4<br />
O critério <strong>de</strong> paragem foi a estabilização da percentagem <strong>de</strong> perdas <strong>de</strong> tramas perdidas.<br />
Verificou-se que para as frequências mais elevadas, ao fim <strong>de</strong> 10000 tramas transmitidas, a<br />
percentagem <strong>de</strong> perdas já não sofria nenhuma alteração. Nas frequências mais baixas a<br />
percentagem <strong>de</strong> perdas estabilizava, com um número <strong>de</strong> transmissão <strong>de</strong> tramas mais baixo (por<br />
volta das 4000 tramas).<br />
No caso da aplicação Zigbee, é importante <strong>de</strong>stacar que esta foi construída com as<br />
bibliotecas SDK- Libraries versão 1.1 da Jennic, visto que a nova actualização (SDK- Libraries<br />
versão 1.2) po<strong>de</strong> obter <strong>de</strong>sempenhos diferentes, mas por motivos <strong>de</strong> incompatibilida<strong>de</strong> com a<br />
aplicação construída não foi testada.<br />
4.4 Resultados e Análise<br />
Na transmissão <strong>de</strong> dados, existem perdas <strong>de</strong> tramas na comunicação entre o nó<br />
controlador e o nó sensor, em ambos os protocolos implementados, Verificou-se que para taxas<br />
<strong>de</strong> transmissão baixas não há perdas, mas à medida que se aumenta a frequência <strong>de</strong><br />
amostragem, o número <strong>de</strong> tramas perdidas é também maior. Estas perdas ocorrem <strong>de</strong>vido a<br />
dois factores: o tempo <strong>de</strong> processamento das amostras para envio, que apesar <strong>de</strong> ter sido<br />
optimizado, tem ainda uma margem para optimização, e que po<strong>de</strong> ser melhorado<br />
minuciosamente <strong>de</strong> modo a minimizar ainda mais as perdas; a largura <strong>de</strong> banda do canal <strong>de</strong><br />
transmissão, que tem um limite máximo imposto pela Jennic (taxa <strong>de</strong> transmissão efectiva <strong>de</strong><br />
101 kbps) e pelos protocolos 802.15.4 e Zigbee (teoricamente 250 kbps), e que não <strong>de</strong>pen<strong>de</strong><br />
do <strong>de</strong>sempenho das implementações dos utilizadores. Por esta razão é necessário fazer a<br />
contagem <strong>de</strong>stas perdas para perceber as variáveis que influenciam a comunicação e<br />
<strong>de</strong>sempenho do sistema. Por esta razão é necessário fazer a contagem <strong>de</strong>stas perdas para<br />
perceber as variáveis que influenciam a comunicação e <strong>de</strong>sempenho do sistema.<br />
A seguir serão mostrados e analisados os resultados obtidos, bem como a sua relação e<br />
factores que possam influenciar positiva ou negativamente o <strong>de</strong>sempenho. Por questões <strong>de</strong><br />
simplificação, nos próximos subcapítulos, as aplicações implementadas com os dois protocolos<br />
<strong>de</strong> comunicação sem fios serão chamadas pelo próprio nome do protocolo implementado,<br />
respectivamente Zigbee e 802.15.4.<br />
93
1) Perdas <strong>de</strong> tramas (Low Power e High Power)<br />
94<br />
Resultados<br />
O primeiro teste efectuado foi a contabilização <strong>de</strong> tramas perdidas e repetidas no modo<br />
Low Power à medida que se aumenta a frequência <strong>de</strong> amostragem e consequentemente<br />
velocida<strong>de</strong> <strong>de</strong> transmissão <strong>de</strong> dados. Foram registadas as perdas e repetição <strong>de</strong> tramas para os<br />
dois protocolos, e no caso do 802.15.4 foi também testado nos modos Low Power e High Power.<br />
I) Dispositivos juntos:<br />
Figura 70: Perdas <strong>de</strong> tramas na configuração dispositivos juntos.<br />
Em todas as configurações dos dispositivos, verifica-se uma diferença significativa entre<br />
a aplicação implementada com o protocolo 802.15.4 e o Zigbee. O caso mais importante para<br />
esta aplicação é a configuração dos dispositivos juntos, visto que no fato <strong>de</strong> natação os nós<br />
sensores estarão relativamente próximos do nó controlador. Nesta configuração a percentagem<br />
<strong>de</strong> perdas no 802.15.4 é bastante maior, ao contrário do que se esperava inicialmente. Na<br />
aplicação Zigbee a percentagem <strong>de</strong> tramas perdidas atinge 3,68% à frequência <strong>de</strong> amostragem<br />
<strong>de</strong> 7 kHz, enquanto na aplicação 802.15.4, a esta frequência atinge 31,2%. Na aplicação do<br />
802.15.4 verifica-se que no modo High Power as perdas são menores que no modo Low Power,<br />
o que é facilmente compreendido, pois a qualida<strong>de</strong> do sinal em High Power é maior e por isso<br />
se per<strong>de</strong>m menos tramas. Po<strong>de</strong>-se concluir que o sistema, no melhor caso, com a<br />
implementação Zigbee tem a capacida<strong>de</strong> <strong>de</strong> adquirir amostras a 7 kHz e transmitir os sinais<br />
adquiridos a uma taxa <strong>de</strong> 84 kbps (10,5 kiloBytes por segundo), contendo no entanto uma<br />
percentagem <strong>de</strong> perdas <strong>de</strong> tramas <strong>de</strong> aproximadamente 3,7%. No caso da implementação<br />
802.15.4 a frequência <strong>de</strong> amostragem po<strong>de</strong> alcançar 10 kHz mas neste caso <strong>de</strong>monstra perdas<br />
bastante significativas, atingindo os 45%.
Capítulo - 4<br />
II) Dispositivos a distância <strong>de</strong> 10 metros<br />
Figura 71: Perdas <strong>de</strong> tramas na configuração distância <strong>de</strong> 10 metros.<br />
Na configuração dos dispositivos a uma distância <strong>de</strong> 10 metros, no protocolo Zigbee<br />
verifica-se um aumento das perdas com o aumento da FA (frequência <strong>de</strong> amostragem), mas<br />
entre os 3 kHz e 7 kHz a percentagem <strong>de</strong> perdas oscila um pouco. Neste caso, a partir <strong>de</strong> 3 kHz<br />
a percentagem <strong>de</strong> tramas perdidas não aumenta <strong>de</strong> forma significativa, tendo mesmo diminuído<br />
em algumas frequências superiores. De <strong>de</strong>stacar que no 802.15.4, as perdas são semelhantes<br />
nos dois modos <strong>de</strong> energia.<br />
III) Dispositivos a distância <strong>de</strong> 10 metros separados por uma pare<strong>de</strong><br />
Figura 72: Perdas <strong>de</strong> tramas na configuração distância <strong>de</strong> 10 metros separados por uma pare<strong>de</strong>.<br />
Nesta configuração a percentagem <strong>de</strong> perdas começa a aumentar <strong>de</strong> forma significativa<br />
por volta dos 3 kHz. A percentagem <strong>de</strong> perdas no 802.15.4 é semelhante nos dois modos <strong>de</strong><br />
95
96<br />
Resultados<br />
energia, um aspecto curioso, visto que no modo High Power a qualida<strong>de</strong> do sinal é superior,<br />
como po<strong>de</strong>rá ser confirmado nos resultados da qualida<strong>de</strong> do sinal no subcapítulo seguinte.<br />
IV) Frente e atrás do corpo<br />
Figura 73: Perdas <strong>de</strong> tramas na configuração frente e atrás do corpo.<br />
Outro dado relevante é que tanto nesta configuração <strong>de</strong> um dispositivo à frente e outro<br />
atrás do corpo humano, como na configuração seguinte (V), a percentagem <strong>de</strong> perdas é maior<br />
no modo High Power do que no Low Power.<br />
V) Frente da cabeça e atrás dos pés<br />
Figura 74: Perdas <strong>de</strong> tramas na configuração frente e atrás dos pés.<br />
Esta configuração <strong>de</strong> um dispositivo à frente da cabeça e o outro atrás dos pés foi<br />
testada para simular a distância máxima entre os nós na aplicação <strong>BIOSWIM</strong>, pois os módulos
Capítulo - 4<br />
integrados no fato <strong>de</strong> natação não po<strong>de</strong>rão ter distâncias superiores. Neste caso foi verificado o<br />
dado <strong>de</strong>scrito na configuração IV.<br />
VI) Vários dispositivos na re<strong>de</strong><br />
Um dos testes mais importantes para o <strong>de</strong>sempenho <strong>de</strong>ste sistema é a comunicação<br />
simultânea <strong>de</strong> vários nós sensores. O sistema <strong>de</strong>verá suportar vários módulos <strong>de</strong> comunicação<br />
em simultâneo, e ter um <strong>de</strong>sempenho razoável, suficiente para monitorizar os sinais dos<br />
sensores.<br />
Dois Nós sensores:<br />
Figura 75: Perdas <strong>de</strong> tramas com 2 nós em comunicação.<br />
Neste teste verificou-se a mesma linha <strong>de</strong> resultados que se tinha vindo a obter. A<br />
aplicação 802.15.4 continua a ter perdas bastante significativas enquanto na aplicação Zigbee,<br />
verifica-se um ligeiro aumento das perdas nos dois nós <strong>de</strong> comunicação. Verificou-se que o nó<br />
sensor 2 tinha uma percentagem <strong>de</strong> perdas maior que o nó sensor 1 apesar <strong>de</strong> se encontrarem<br />
os dois à mesma distância do nó controlador e estarem nas mesmas condições. No Zigbee, as<br />
perdas atingem, a 7 kHz, uma média nos dois nós, <strong>de</strong> 6%, enquanto no 802.15.4 alcança os<br />
30% <strong>de</strong> tramas perdidas.<br />
97
Três Nós sensores:<br />
Figura 76: Perdas <strong>de</strong> tramas com 3 nós em comunicação.<br />
98<br />
Resultados<br />
No caso da comunicação <strong>de</strong> três nós sensores em simultâneo, a situação não difere<br />
muito da anterior. Nas duas aplicações os nós sensores que iniciam com maior percentagem <strong>de</strong><br />
tramas perdidas, mantêm esse estatuto basicamente ao longo das diferentes frequências <strong>de</strong><br />
amostragem, sendo a diferença das perdas entre os diferentes nós pouco significativa e<br />
constante. Neste caso po<strong>de</strong>-se concluir que o sistema é capaz <strong>de</strong> suportar três nós sensores a<br />
comunicar simultaneamente a 3000 amostras por segundo (36 kbps), com uma percentagem<br />
<strong>de</strong> perdas inferior a 4%.<br />
Dois Nós sensores com conector SMA (sem antena):<br />
Figura 77: Perdas <strong>de</strong> tramas com 2 nós em comunicação com conector SMA.<br />
Foi ainda efectuado um teste com os módulos <strong>de</strong> comunicação com conector SMA e<br />
sem antena. Neste caso verificou-se que a percentagem <strong>de</strong> perdas é bastante maior que nos
Capítulo - 4<br />
módulos <strong>de</strong> comunicação com a antena integrada em PCB. No início da comunicação, a taxas<br />
<strong>de</strong> transferência baixas, as perdas eram já elevadas (cerca <strong>de</strong> 20%), mas aumentaram a taxas<br />
superiores, per<strong>de</strong>ndo-se mesmo quase a totalida<strong>de</strong> das tramas enviadas.<br />
2) Qualida<strong>de</strong> do sinal (LQI)<br />
Este parâmetro foi medido para avaliar a qualida<strong>de</strong> <strong>de</strong> sinal nas diferentes configurações<br />
dos dispositivos. Este parâmetro influencia a quantida<strong>de</strong> <strong>de</strong> erros na transmissão <strong>de</strong> dados, uma<br />
vez que, teoricamente, quanto melhor for a qualida<strong>de</strong> <strong>de</strong> sinal, melhor é a performance da<br />
comunicação em termos <strong>de</strong> erros <strong>de</strong> transmissão.<br />
Figura 78: Qualida<strong>de</strong> do sinal (LQI).<br />
No modo High Power, a qualida<strong>de</strong> é superior para todas as configurações dos<br />
dispositivos, sendo máxima nos dispositivos juntos com antena. Neste caso refere-se a antena, à<br />
antena conector, que tem a função <strong>de</strong> comunicação a longas distâncias.<br />
3) Dados Gerais<br />
Nesta secção encontram-se os resultados anteriores, ilustrados no mesmo gráfico, para<br />
se comparar a quantida<strong>de</strong> <strong>de</strong> erros nas diferentes configurações. Po<strong>de</strong>-se também verificar a<br />
diferença entre os modos High e Low Power.<br />
99
Perda <strong>de</strong> tramas em Low Power<br />
Figura 79: Perdas <strong>de</strong> tramas em todas as configurações no modo Low Power.<br />
100<br />
Resultados<br />
Nos gráficos da Figura 79, po<strong>de</strong>m-se comparar as perdas <strong>de</strong> tramas em todas as<br />
configurações, para as duas aplicações.<br />
No caso do Zigbee as configurações dos dispositivos juntos e a 10 metros obtêm<br />
melhores <strong>de</strong>sempenhos que as restantes, no entanto na aplicação 802.15.4, são as<br />
configurações que têm maiores perdas. Este dado é interessante do ponto <strong>de</strong> vista da<br />
comunicação com obstáculos para dois protocolos diferentes. Na aplicação 802.15.4, as<br />
configurações dos dispositivos no corpo humano obtêm performances mais aceitáveis, apesar <strong>de</strong><br />
terem perdas bastantes significativas para uma comunicação fiável.<br />
Perda <strong>de</strong> tramas em High Power<br />
Figura 80: Perdas <strong>de</strong> tramas em todas as configurações no modo High Power.<br />
Em High Power a configuração dos dispositivos juntos obtém o menor número <strong>de</strong><br />
perdas, por outro lado a configuração dos dispositivos a 10 metros tem as piores performances.
Capítulo - 4<br />
As duas configurações com os dispositivos no corpo humano continuam a revelar resultados<br />
bastante semelhantes.<br />
Comparando estes resultados com os da comunicação no modo <strong>de</strong> energia Low Power,<br />
em geral, não se verificam melhorias.<br />
Perda <strong>de</strong> tramas numa re<strong>de</strong> com vários dispositivos<br />
Figura 81: Perdas <strong>de</strong> tramas com vários nós sensores na re<strong>de</strong>.<br />
A Figura 81 mostra a comparação entre os resultados do teste das perdas <strong>de</strong> tramas<br />
para um nó sensor em comunicação, dois nós sensores a comunicar em simultâneo e por<br />
último três nós sensores na re<strong>de</strong>. No caso em que havia mais do que um nó sensor a<br />
comunicar, foi feita a média das perdas <strong>de</strong>sses nós sensores, para se fazer a comparação. O<br />
teste foi feito para as duas aplicações, e em ambos os casos verifica-se, obviamente que as<br />
perdas aumentam à medida que o número <strong>de</strong> nós comunicantes na re<strong>de</strong> aumenta. No Zigbee as<br />
perdas em cada nó duplicam quando comunicam dois nós sensores ao mesmo tempo, ou seja o<br />
correspon<strong>de</strong>nte a um só nó sensor na re<strong>de</strong> per<strong>de</strong>r o quádruplo das tramas. Quando se<br />
acrescenta mais um nó sensor (três nós sensores), a percentagem <strong>de</strong> perdas em cada nó<br />
aumenta <strong>de</strong> cinco a seis vezes o valor <strong>de</strong> um só nó sensor na re<strong>de</strong>. No 802.15.4 as perdas não<br />
sofrem aumentos tão significativos como no Zigbee, apresentando aumentos <strong>de</strong> 1,2 e 1,5 para a<br />
comunicação <strong>de</strong> dois e três nós sensores respectivamente. No entanto, é necessário tomar em<br />
conta que a percentagem <strong>de</strong> perdas original é já muito superior, ou seja, mesmo com o maior<br />
aumento <strong>de</strong> perdas, o Zigbee continua a ter menores perdas a taxas <strong>de</strong> amostragem mais<br />
elevadas.<br />
101
4.5 Resultados Gerais<br />
102<br />
Resultados<br />
Fazendo uma análise geral dos resultados obtidos, po<strong>de</strong>-se concluir que a aplicação<br />
<strong>de</strong>senvolvida com o protocolo Zigbee obtém melhores <strong>de</strong>sempenhos que o 802.15.4. Neste<br />
protocolo as velocida<strong>de</strong>s <strong>de</strong> transmissão alcançadas são bastante interessantes para este<br />
projecto, especialmente na implementação do protocolo Zigbee. Taxas <strong>de</strong> amostragem na or<strong>de</strong>m<br />
dos 7 kHz com uma percentagem <strong>de</strong> perdas <strong>de</strong> 3,7%, é um bom resultado para fazer a<br />
aquisição <strong>de</strong> sensores com necessida<strong>de</strong> <strong>de</strong> frequências <strong>de</strong> amostragem elevadas como os<br />
sensores EMG. Este é o principal requisito <strong>de</strong>ste projecto, e todo o seu <strong>de</strong>senvolvimento foi<br />
efectuado em torno <strong>de</strong>ste objectivo.<br />
Nesta aplicação os erros na transmissão <strong>de</strong> tramas são pouco significativos, ainda que se<br />
<strong>de</strong>vam ter em conta, pois para vários sinais vitais, a perda <strong>de</strong> algumas amostras po<strong>de</strong> significar<br />
a inviabilida<strong>de</strong> da amostragem. Este problema po<strong>de</strong>rá ser solucionado futuramente, quando as<br />
funções <strong>de</strong> ackowledgement estiverem disponíveis para a primeira versão <strong>de</strong> bibliotecas utilizada<br />
nesta aplicação. No entanto esta solução po<strong>de</strong>rá eventualmente diminuir a taxa <strong>de</strong> transmissão,<br />
uma vez que por cada trama, ou conjunto <strong>de</strong> tramas o coor<strong>de</strong>nador terá que enviar um<br />
ackowledgement a confirmar a recepção <strong>de</strong> dados.<br />
O facto <strong>de</strong> os dispositivos finais po<strong>de</strong>rem alternar entre o modo sleep e o modo activo é<br />
também uma mais-valia para este projecto, pois <strong>de</strong>ssa forma po<strong>de</strong>-se diminuir o consumo <strong>de</strong><br />
energia e aumentar a autonomia da re<strong>de</strong> sem fios.<br />
4.6 Problemas e Soluções<br />
Ao longo do <strong>de</strong>senvolvimento <strong>de</strong>ste projecto, foram vários os entraves e problemas que<br />
surgiram, o que enriqueceu o conhecimento prático e incentivou ao <strong>de</strong>senvolvimento <strong>de</strong> novas<br />
capacida<strong>de</strong>s.<br />
Um dos gran<strong>de</strong>s problemas iniciais foi a limitada função <strong>de</strong> <strong>de</strong>bug <strong>de</strong>ste microcontrolador,<br />
pois ainda não está disponível a <strong>de</strong>puração <strong>de</strong> erros por software. Para contornar este problema,<br />
o <strong>de</strong>bug foi sempre efectuado pelo hyperterminal do windows usando funções que enviam para o<br />
computador o valor das variáveis e o estado da execução. No entanto esta solução tem um nível
Capítulo - 4<br />
organizacional da informação muito inferior quando comparada com o <strong>de</strong>bug por software.<br />
Algumas outras funcionalida<strong>de</strong>s <strong>de</strong>ste microcontrolador também ainda não estão disponíveis,<br />
como por exemplo as interrupções do ADC para esta versão do software Zigbee PRO, pois não<br />
funcionam simultaneamente com o RTOS.<br />
Outro problema, foi o facto do microcontrolador JN5148 não possuir um software <strong>de</strong><br />
<strong>de</strong>senvolvimento específico para as suas funções. Em vez disso utiliza um software (Eclipse) <strong>de</strong><br />
carácter geral que suporta vários níveis <strong>de</strong> programação, o que faz com que a função <strong>de</strong><br />
simulação por software esteja indisponível, sendo feito todos os testes online. Isto significa que<br />
cada vez que se preten<strong>de</strong> fazer uma alteração no firmware e testá-la, o programa tem que ser<br />
compilado e <strong>de</strong>scarregado para os vários microcontroladores (<strong>de</strong>pen<strong>de</strong>ndo do número <strong>de</strong> nós<br />
sensores que se está a utilizar na re<strong>de</strong>) que <strong>de</strong>pois terá que ser executado, visualizando-se todo<br />
os dados <strong>de</strong> <strong>de</strong>bug no computador. Este problema limita o <strong>de</strong>senvolvimento do projecto em<br />
termos <strong>de</strong> tempo, visto que o download do firmware para a memória flash do microcontrolador<br />
<strong>de</strong>mora um tempo consi<strong>de</strong>rável.<br />
As várias actualizações das bibliotecas que contêm as API’s <strong>de</strong> <strong>de</strong>senvolvimento e a<br />
correcção <strong>de</strong> alguns erros dos fabricantes, verificados em versões anteriores, foram também um<br />
importante entrave no <strong>de</strong>senvolvimento <strong>de</strong>sta aplicação. Com a actualização, algumas das<br />
funções implementadas anteriormente, ficaram obsoletas, o que levou a que tivessem que ser<br />
<strong>de</strong>senvolvidas novas funções. Este microcontrolador também carece <strong>de</strong> aplications notes, visto<br />
ser relativamente recente, o que motivou um estudo intensivo das API’s <strong>de</strong> <strong>de</strong>senvolvimento para<br />
solucionar alguns problemas.<br />
Um outro problema na comunicação, foi a recepção <strong>de</strong> dados por parte do controlador<br />
quando o nó sensor ainda não estava registado. Nesta situação o controlador recebia tramas<br />
com valores aparentemente aleatórios enquanto não se procedia ao registo e i<strong>de</strong>ntificação do nó<br />
sensor. Foi implementado um sistema <strong>de</strong> registo dos nós sensores que se juntam à re<strong>de</strong>, com a<br />
memorização do seu en<strong>de</strong>reço <strong>de</strong> re<strong>de</strong> e No<strong>de</strong> ID.<br />
103
5 Conclusões<br />
Este projecto teve como objectivo final criar um protótipo completo <strong>de</strong>stinado fazer a<br />
monitorização <strong>de</strong> sensores biométricos integrados num fato <strong>de</strong> natação.<br />
O projecto foi iniciado com o estudo <strong>de</strong> formas <strong>de</strong> monitorizar o corpo humano em<br />
exercício extremo no meio aquático. Terminado este estudo foi possível perceber as<br />
necessida<strong>de</strong>s do sistema a <strong>de</strong>senvolver, começando a pesquisa <strong>de</strong> módulos <strong>de</strong> comunicação<br />
sem fios que integrassem os requisitos necessários à realização <strong>de</strong>ste projecto. Uma vez<br />
encontrados os módulos <strong>de</strong> <strong>de</strong>senvolvimento, foi realizado um estudo intensivo da pilha<br />
protocolar Zigbee, das aplications notes, das API’s e ambiente <strong>de</strong> <strong>de</strong>senvolvimento usado pelo<br />
microcontrolador.<br />
Findo o processo <strong>de</strong> estudo, proce<strong>de</strong>u-se à implementação do sistema <strong>de</strong> monitorização.<br />
Este foi o ponto <strong>de</strong> viragem no projecto, uma vez que <strong>de</strong>pois <strong>de</strong> muito estudo teórico, e uma<br />
gran<strong>de</strong> varieda<strong>de</strong> <strong>de</strong> testes na tentativa <strong>de</strong> funcionamento <strong>de</strong> algumas funcionalida<strong>de</strong>s dos<br />
módulos <strong>de</strong> <strong>de</strong>senvolvimento, passou-se à prática e à obtenção <strong>de</strong> resultados mais específicos.<br />
Com o Zigbee a servir como base protocolar para a comunicação, começou-se por implementar<br />
as funções <strong>de</strong> envio <strong>de</strong> dados entre os dispositivos, passando para as funções <strong>de</strong> aquisição <strong>de</strong><br />
dados, terminando com a comunicação entre o coor<strong>de</strong>nador e o computador. Depois <strong>de</strong> uma<br />
obtenção <strong>de</strong> resultados não satisfatória, foi implementada uma nova re<strong>de</strong>, <strong>de</strong>sta vez com o<br />
protocolo 802.15.4, com o objectivo <strong>de</strong> melhorar as performances da re<strong>de</strong> já implementada.<br />
Para a visualização dos dados e controlo dos dispositivos da re<strong>de</strong> foi construída uma<br />
aplicação gráfica no ambiente <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> programação gráfica LabView. Esta<br />
aplicação permite a comunicação <strong>de</strong> quatro sensores em simultâneo, e a visualização dos sinais<br />
correspon<strong>de</strong>ntes e erros associados. Os sensores po<strong>de</strong>m ser controlados individualmente,<br />
através <strong>de</strong> tramas <strong>de</strong> comandos.<br />
Depois da implementação do software, e para completar o sistema, foi estudado e<br />
construído o hardware para o condicionamento <strong>de</strong> sinal <strong>de</strong> um sensor <strong>de</strong> temperatura do tipo<br />
104
Capítulo - 5<br />
termístor NTC. Este módulo serve como mo<strong>de</strong>lo para outros circuitos condicionadores para<br />
outros sensores que irão integrar o fato <strong>de</strong> natação, visto que tem os parâmetros necessários<br />
para a interface com o dispositivo nó sensor.<br />
Os testes efectuados ao sistema, foram feitos <strong>de</strong> forma progressiva, à medida que se<br />
iam terminando módulos e etapas. A programação do firmware e software foi, sempre que<br />
possível, implementado por módulos, <strong>de</strong> modo a serem vistos como uma “caixa negra” com<br />
entradas e saídas e po<strong>de</strong>rem ser utilizados noutros programas e aplicações. Uma vez<br />
terminados os testes em termos <strong>de</strong> funcionamento, chegou o momento para testar o<br />
<strong>de</strong>sempenho do sistema <strong>de</strong> diferentes formas e com condições <strong>de</strong> funcionamento diferentes.<br />
De entre os vários resultados obtidos, po<strong>de</strong>-se <strong>de</strong>stacar a implementação com o<br />
protocolo Zigbee que tem a capacida<strong>de</strong> <strong>de</strong> adquirir a uma frequência <strong>de</strong> 7 kAmostras/s. A essa<br />
frequência <strong>de</strong> amostragem a taxa <strong>de</strong> transferência <strong>de</strong> dados correspon<strong>de</strong>nte é <strong>de</strong> 84 kbps,<br />
obtendo-se uma percentagem <strong>de</strong> perdas <strong>de</strong> tramas abaixo dos 4%. Na comunicação com vários<br />
dispositivos na re<strong>de</strong> a mesma implementação suporta a comunicação simultânea <strong>de</strong> pelo menos<br />
três nós sensores, a 3000 amostras por segundo (36 kbps), com uma percentagem <strong>de</strong> perdas<br />
inferior a 4%.<br />
As perdas ocorrem maioritariamente em tramas individuais e casualmente em blocos <strong>de</strong><br />
tramas na comunicação entre o dispositivo final e o coor<strong>de</strong>nador. À medida que se vai<br />
aumentando a frequência <strong>de</strong> amostragem, a percentagem <strong>de</strong> perdas vai sendo maior até uma<br />
frequência máxima <strong>de</strong> 10 kHz (implementação 802.15.4). Este limite <strong>de</strong>ve-se ao facto <strong>de</strong> a 10<br />
kHz, o tempo disponível entre as amostragens (0,1 ms) não ser suficiente para adquirir,<br />
processar e enviar os dados ao coor<strong>de</strong>nador.<br />
Os resultados obtidos foram interessantes do ponto <strong>de</strong> vista da utilização <strong>de</strong>ste sistema<br />
para monitorizar vários sensores em simultâneo, e para sensores com necessida<strong>de</strong> <strong>de</strong> elevadas<br />
taxas <strong>de</strong> amostragem.<br />
Para a realização <strong>de</strong>ste projecto foram consultados vários artigos e trabalhos<br />
relacionados com re<strong>de</strong>s corporais <strong>de</strong> sensores, e-têxteis, e re<strong>de</strong>s sem fios <strong>de</strong> curto alcance, bem<br />
como exemplos <strong>de</strong> circuitos condicionadores. Esta pesquisa revelou-se bastante importante visto<br />
oferecer vários pontos <strong>de</strong> vista diferentes, e várias abordagens aos problemas a solucionar.<br />
O trabalho efectuado foi realizado sensivelmente em <strong>de</strong>z meses, sendo o tempo restante<br />
para testes e optimização. Os resultados atingiram os resultados previstos e nalguns casos<br />
exce<strong>de</strong>ram algumas das expectativas criadas inicialmente.<br />
105
5.1 Trabalho Futuro<br />
106<br />
Conclusões<br />
Este projecto, apesar <strong>de</strong> importante, é apenas uma parte do projecto <strong>BIOSWIM</strong>. Para ser<br />
utilizado neste projecto terá que ser ajustado e adaptado para outros tipos <strong>de</strong> sensores e outros<br />
requisitos que o projecto exija. Por este motivo este projecto ainda tem alguns aspectos passíveis<br />
<strong>de</strong> serem melhorados.<br />
Futuramente os circuitos condicionadores terão que ser implementados em placa PCB,<br />
<strong>de</strong> modo a terem dimensões mais reduzidas e po<strong>de</strong>rem ser integrados no tecido do fato <strong>de</strong><br />
natação. O circuito condicionador do sensor <strong>de</strong> temperatura terá que passar por esse processo.<br />
Deverá ser implementado um sistema <strong>de</strong> acknowledge, <strong>de</strong> modo a minimizar ou eliminar<br />
as perdas <strong>de</strong> tramas. Deve ter-se em conta o facto <strong>de</strong> o sistema <strong>de</strong> acknowledge prejudicar a<br />
performance da re<strong>de</strong> e colocar em risco a transmissão em tempo real, logo essa implementação<br />
<strong>de</strong>verá ser equilibrada para se obter no final o <strong>de</strong>sempenho <strong>de</strong>sejado.<br />
Po<strong>de</strong>rão ser implementados outros comandos <strong>de</strong>ntro da mesma estrutura que os já<br />
existentes. Po<strong>de</strong>rão ser implementados comandos para pedir amostras isoladas, por exemplo<br />
para o sensor <strong>de</strong> temperatura, ou para enviar o valor da qualida<strong>de</strong> do sinal.<br />
A aplicação gráfica po<strong>de</strong> tornar-se mais dinâmica com outros tipos <strong>de</strong> informação, como<br />
a leitura da energia em cada nó sensor, a verificação do tráfego <strong>de</strong> canal e outras informações<br />
relacionadas com os nós sensores utilizados no fato <strong>de</strong> natação.<br />
Um aspecto interessante e <strong>de</strong> gran<strong>de</strong> valor para o futuro é a interface dos sinais<br />
biométricos com uma página Web, <strong>de</strong> modo a que o utilizador da aplicação gráfica, consiga<br />
visualizar o exercício da pessoa monitorizada em qualquer lugar.
Bibliografia<br />
[1] N. Zamorra, P. Marbel, and P. Khosla, "Electronic Textiles: A Platform for<br />
Pervasive Computing," in , 2003.<br />
[2] F. Morais, J. Lieutaud, and S. Kofuji, "e-Textiles – Uma aplicação para Re<strong>de</strong>s <strong>de</strong><br />
Sensores Sem Fio," in .<br />
[3] W. weber, et al., "Electronics in Textiles - The Next Stage in Man Machine<br />
Interaction," in .<br />
[4] B. Lee and V. Subramanian, "Organic Transistor on Fiber: A first step towards<br />
electronic textiles," Department of Electrical Engineering and Computer Sciences,<br />
University of California.<br />
[5] Inovação tecnológica. [Online].<br />
http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=01018004122<br />
4<br />
[6] Mechatronic Tips. [Online].<br />
http://www.mechatronictips.com/technology/robotics/optical-sensor-gives-robots-<br />
human-touch/<br />
[7] D. Tomanek. (2010) The Nanotube site. [Online].<br />
http://www.pa.msu.edu/cmp/csc/nanotube.html<br />
[8] A. Jain, R. Bolle, and S. Pankanti, Introduction to Biometrics . 2002.<br />
[9] T. Reilly, B. Drust, and W. Gregson, Thermoregulation in elite athlets. 2006.<br />
[10] M. Gleeson, "Temperature Regulation during Exercise," Int. J Sports Med, 1998.<br />
107
[11] A. Simões and M. Martino, "Variabilida<strong>de</strong> circadiana da temperatura oral,<br />
timpânica e axilar em adultos hospitalizados," Faculda<strong>de</strong> <strong>de</strong> ciências médicas,<br />
Universida<strong>de</strong> Estadual <strong>de</strong> Campinas, 2005.<br />
[12] R. Schmidt, T. Norgall, J. Morsdorf, J. Bernhard, and T. Von <strong>de</strong>r Grun, Body Area<br />
Network BAN--a key infrastructure element for patient-centered medical<br />
applications. Schmidt R, Norgall T, Mörsdorf J, Bernhard J, von <strong>de</strong>r Grün T..<br />
[13] H. Carvalho, "Data fusion implementation in sensor networks applied to helth<br />
monitoring," Departamento <strong>de</strong> Ciência Computação, Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong><br />
Minas Gerais, 2005.<br />
[14] E. Karulf. (2008) Body Area Networks (BAN). [Online].<br />
http://www.cse.wustl.edu/~jain/cse574-08/ftp/ban/in<strong>de</strong>x.html<br />
[15] S. Rossetto, F. Costa, and V. Sacramento, "Re<strong>de</strong>s <strong>de</strong> sensores sem fio: visão geral e<br />
um exemplo <strong>de</strong> implementação," 2007.<br />
[16] R. Ramachandran, L. Ramanna, and H. Ghasemza<strong>de</strong>h, "Body sensor networks to<br />
evaluate standing balance: interpreting muscular activities based on inertial<br />
sensors," University of Texas at Dallas, 2008.<br />
[17] T. Barbosa, "Uma arquitectura <strong>de</strong> re<strong>de</strong> <strong>de</strong> sensores do corpo humano ,"<br />
Departamento <strong>de</strong> energia eléctrica, Universida<strong>de</strong> <strong>de</strong> Brasília, 2008.<br />
[18] J. Sewook, "Comparisons of ZigBee Personal Area Network (PAN)<br />
Interconnection Methods: Wireless Communication Systems," 2007.<br />
[19] J. Lee, S. Yu, and S. Chung, "A Comparative Study of Wireless Protocols:<br />
Bluetooth, UWB, ZigBee, and Wi-Fi," in The 33rd Annual Conference of the IEEE<br />
Industrial Electronics Society, 2007.<br />
[20] N. Baker, "Zigbee anr Bluetooth strengths and weaknesses for industrial<br />
applications," IEEE Computing and Control Engineering, 2005.<br />
108
[21] IEEE, "Wireless LAN medium access control(MAC) and physical layer(PHY)<br />
specification," no. LAN-MAN Standards Committee of the IEEE Computer<br />
Society, 2003.<br />
[22] Jennic, "IEEE 802.15.4 Wireless Networks User Gui<strong>de</strong>," Jennic, 2006.<br />
[23] S. C. Ergen, "ZigBee/IEEE 802.15.4 Summary," 2004.<br />
[24] Ondrej, Z<strong>de</strong>nek, and Petr, "Zigbee technology and <strong>de</strong>vice <strong>de</strong>sign," in IEEE<br />
International Conference on Networking, International Conference on Systems and<br />
International Conference on Mobile Communications and Learning Technologies,<br />
2006.<br />
[25] Z. Alliance, "Zigbee specification. Technical report," 2005.<br />
[26] A. Potsch, "Zigbee Spec. and IEEE 802.15.4," Universty Linz, Austria, 2006.<br />
[27] Bluetooth SIG. (2010) Bluetooth. [Online].<br />
http://www.bluetooth.com/<br />
[28] B. Miller and C. Bisdikian, "Bluetooth Revealed 1. ed.," 2001.<br />
[29] J. Bray and C. Sturan, "Bluetooth - Connect without Cables," 2001.<br />
[30] H. Ranki. Affix - End User Manual. [Online].<br />
http://affix.sourceforge.net/affix-newdoc/Affix-enduser/c21.html<br />
[31] P. Mc<strong>de</strong>rmott, "Bluetooth scatternet mo<strong>de</strong>ls," 2004.<br />
[32] (2008) Electrónica.org. [Online].<br />
http://www2.eletronica.org/artigos/eletronica-digital/bluetooth<br />
[33] Bluetooth SIG, "Specification of the Bluetooth System - Core v1.1," 2001.<br />
[34] C. Pamuk, "Distributed Bluetooth Scatternet Formation Algorithm based on Device<br />
and Link Characteristics," 2003.<br />
[35] Wikipedia Foundation. (2010) Wikipedia. [Online].<br />
109
http://en.wikipedia.org/wiki/Eclipse_%28software%29<br />
[36] Jennic, "ZigBee PRO Stack User Gui<strong>de</strong>," 2009.<br />
[37] M. J. Soares. arnerobotic. [Online].<br />
http://www.arnerobotics.com.br/eletronica/Medidas_analogicas_BS1.htm<br />
[38] National Semiconductor. LM108/LM208/LM308 Operational Amplifiers. [Online].<br />
http://www.national.com/opf/LM/LM308.htm<br />
110
Figura 82: Mo<strong>de</strong>lo protocolar da pilha Zigbee.<br />
1<br />
Anexo 1
2<br />
Anexo 2<br />
Figura 83: Pilha <strong>de</strong> Protocolos Bluetooth e principais funções <strong>de</strong> cada camada, adaptado <strong>de</strong> [29].<br />
A pilha <strong>de</strong> protocolos Bluetooth po<strong>de</strong> ser dividida, logicamente, em três grupos:<br />
protocolos <strong>de</strong> transporte, protocolos middleware e grupo <strong>de</strong> aplicação.<br />
Os Protocolos <strong>de</strong> Transporte têm como objectivo realizar a i<strong>de</strong>ntificação entre<br />
dispositivos Bluetooth, possibilitando a criação, configuração e gerência <strong>de</strong> conexões físicas e<br />
lógicas. São através <strong>de</strong>stas conexões que os aplicativos enviam dados, utilizando os protocolos<br />
<strong>de</strong> transporte. Os protocolos <strong>de</strong>ste grupo incluem as camadas <strong>de</strong> Radio, Baseband, Link<br />
Manager, L2CAP e HCI (ver Figura 84 a).<br />
Os Protocolos Middleware são compostos por protocolos <strong>de</strong> transporte adicionais<br />
necessários para a interface <strong>de</strong> <strong>de</strong>terminadas aplicações com a tecnologia Bluetooth (ver Figura<br />
84b). Este grupo <strong>de</strong> protocolos inclui tanto protocolos padrões da indústria como protocolos
<strong>de</strong>senvolvidos pelo SIG especificamente para comunicação via Bluetooth. Os protocolos<br />
middleware correspon<strong>de</strong>m às camadas RFCOMM, SDP,<br />
OBEX, WAP e TCS.<br />
Figura 84: Grupos da pilha <strong>de</strong> protocolos Bluetooth. (a): Grupo <strong>de</strong> protocolos <strong>de</strong> Transporte, (b): Grupo <strong>de</strong> protocolos Middleware,<br />
(c): Grupo <strong>de</strong> aplicação. (em negrito).<br />
O grupo <strong>de</strong> aplicação neste contexto se refere aos softwares que resi<strong>de</strong>m acima da pilha<br />
<strong>de</strong> protocolos <strong>de</strong>finida pelo SIG (ver Figura 84c). Este é o caso dos softwares aplicativos que<br />
fazem uso da tecnologia Bluetooth. Para o funcionamento a<strong>de</strong>quado <strong>de</strong>stes aplicativos com a<br />
tecnologia Bluetooth, o Bluetooth SIG especificou profiles para diversas aplicações [33].<br />
3
Figura 85: Configuração pormenorizada do ZPS (parâmetros <strong>de</strong> re<strong>de</strong>).<br />
4<br />
Anexo 3
Figura 86: Block Diagram da subVI Extract Frame.<br />
5<br />
Anexo 4
Figura 87: Protótipo implementado completo.<br />
6<br />
Anexo 5