Mudanças entre as edições de "TCC-BrunoAntonio TCC Bruno"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(85 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
=Estrutura do Texto=
+
=Descrição do sistema=
 +
O sistema inicialmente proposto é mostrado na figura abaixo. O sistema é composto por uma base de dados um computador, um leitor, um dispositivo de configuração e as tags RFID.
  
#Introdução
+
[[Arquivo:Cenario_natacao_nrf51.png]]
#Fundamentação Teórica (20 páginas)
 
##Visão geral do que é o RFID
 
##O RFID com sensores ativos
 
##O Projeto Openbeacon
 
###Visão geral do projeto
 
###Componentes do sistema
 
###Projetos derivados
 
##Sistemas de Medição e Localização de Objetos Móveis
 
###sensores utilizados
 
###onde pode se aplicar o RFID ativo
 
###aplicações no esporte equestre
 
#Proposta (5 Páginas)
 
#Bibliografia
 
  
=Introdução=
+
O computador (RaspbarryPI) esta conectado a uma base dados, na qual estão armazenadas as informações sore o atleta, e o leitor através de uma conexão UART. O leitor tem como objetivo fazer a comunicação entre o computador e as tags obtendo a id do atleta enviada pela tag e transmitindo para o pc através da UART. O dispositivo de configuração permite que certas informações da tag sejam alteradas .O atleta tem uma tag no braço e uma na perna, a tag quando em modo de transmissão envia um numero de identificação e quando em modo de recepção a mesma pode ser reprogramada inserindo novas informações.
  
=Visão geral do que é o RFID=
+
==Tag==
Radio Frequency Identification (RFID) é uma tecnologia de comunicação sem fio que permite um usuário a identificar um objeto ou pessoa  marcada.
 
  
Um sistema RFID é composto por três componentes básicos: uma tag, um interrogator e um host.
+
A tag atua como transmissor e receptor. Quando a tag esta transmitindo a unica informação enviada no quadro é a sua id. Quando em modo de recepção o quadro recebido pela tag possui informações de configuração: taxa de transmissão, potência de transmissão, tempo de intervalo entre as transmissões a id atual da tag a qual o pacote está interessado e a nova id caso queira-se alterar a id da tag.
  
'''Tag:''' é composta basicamente por um chip semicondutor e uma antena. A função basica da tag é armazenar uma informação (pode ser um número de série, instruções, etc) e transmiti-las através de um sinal.
+
[[Arquivo:Maquina de estado tag nrf51.png]]
  
'''Interrogator:''' A função do interrogator é fazer a comunicação entre as tags e o host, adicionalmente a isso ele pode criptografar/descriptografar a informação, fazer autenticação e ter forma para evitar colisão entre pacotes.
+
A imagem acima mostra o funcionamento da tag através de uma maquina de estado.
  
'''Host:''' O host é o equipamento que ira utilizar as informações recebidas pelo interrogator.
+
[[Arquivo:Diagrama de tempo cenario natacao nrf51.png]]
  
=O RFID com sensores ativos=
+
A imagem acima mostra o funcionamento padrão da tag no qual ela permanece um tempo configuravel x em modo sleep, termidado esse tempo é ativado o modo de trasmissão no qual a tag enviará a sua id, após isso ela entrara em modo de recepção caso receba um pacote em um tempo pré-determinado de 200 us a tag voltara a entrar em modo de transmissão caso contrario ela entrara em modo sleep.
As tags RFID são dividias em dois tipos:
 
  
'''Passivas:''' As tags passivas usam a energia captada do sinal recebido para enviar o seu sinal graças a esse fator elas se tornam menores e mais baratas que as tags ativas porém elas possuem um alcance menor, uma memória interna maior, e precisam de um interrogator com uma maior potência para transmitir o sinal.
+
==Leitor==
  
'''Ativas:''' As tags ativas por sua vez possui uma bateria interna o que permite um sinal com alcance maior, tipicamente também possuem memórias maiores (até 128 KB), porém devido a esses fatores elas, são maiores, possuem um preço maior e um tempo de vida menor (de 2 a 7 anos).
+
O leitor funciona unicamente em modo de recepção. Quando um pacote é recebido é verificado o crc, caso não tenha ocorrido nenhum erro a id é transmitida através da UART para o pc.
  
=O Projeto Openbeacon=
+
==Configurador==
O projeto OpenBeacon foi fundado em 2006 pela companhia Bitmanufaktur GmbH como uma plataforma aberta para aplicações com RFID ativo                                                                  operando na banda de 2.4GHz. O OpenBeacon é baseado em
 
software livre, muito flexível, reprogramável e de baixo custo. Os códigos de firmware e os esquemáticos de hardware se encontram
 
disponíveis sobre a sobre a ''GNU General Public License''(GPL).
 
  
==Visão geral do projeto==
+
O dispositivo de configuração funciona em modo de transmissão. Os dado são pegos através da UART inseridos em um pacote e enviados em broadcast para as tags. As seguistes informacões sã emviados no pacote de configuração:
Um sistema OpenBeacon é um conjunto especifico de software e hardware envolvendo OpenBeacons que implementam uma funcionalidade
 
especifica. Embora o OpenBeacon seja muito flexível e cada sistema acabe sendo diferente do outro a maioria dele pode ser
 
classificados de duas maneiras:
 
  
'''Mestre/escrevo:''' é o clássico sistema RFID onde um ou mais OpenBeacons(tags) trocam informações com dispositivos chamados
+
A potência de transmissão da tag;
estações base(interrogators).
 
  
'''Peer-to-Peer:''' neste tipo de sistema os OpenBeacons comunicam-se uns com outros diretamente de tal maneira  que acabam
+
O tempo em que a tag pemeneçerá em modo sleep;
criando uma rede mesh.
 
  
==Componentes do sistema==
+
A ID á qual o pacote é destinado;
'''OpenBeacon tag:''' A tag OpenBeacon é constituída basicamente por um microcontrolador PIC16F688 e um transceiver nRF24L01.
 
O microcontrolador PIC16F688 possui 14 pinos, opera numa faixa 2 a 5.5 V, clock de 20 MHz,tem memória flash de 4096 palavras(cada
 
palavra possui 14 bits), memória SRAM e EEPROM de 256 bytes. O nRF24L01 é um transceiver de 2.4 GHz, baixo custo, baixo consumo de
 
potência, opera a 1 ou 2 Mbps, 40 bits de endereçamento, 80 canais, transmissor e receptor FIFO de 32 bytes.
 
  
'''OpenBeacon USB 1 e USB 2:''' Os OpenBeacons USB 1 USB 2 são interrogators com microcontroladores ARM programáveis(AT91SAM7X e LPC1343 respectivamente). O USB 1 funciona como um dispositivo USB podendo ser conectado diretamente ao computador e acessado via HyperTerminal
+
E uma nova ID caso queira se alterar a ID atual da tag.
(como o minicom por exemplo). O USB 2 assim como o USB 1 pode ser reprogramado via USB, nesse caso via micro USB,
 
utilizando um gcc toolchain. O USB 2 permite carregar uma bateria externa através da entrada micro USB, possui uma interface
 
bluetooth permitindo uma conexão wireless com o computador, 4 MB de memória flash para armazenamento de dados, um acelerômetro de
 
3 eixos para permitir detecção e orientação e orientação 3D, 3 botões que permitem uma interface simples com o usuário e 11 pinos
 
para expansão.
 
  
'''EasyReader:''' O OpenBeacon EasyReader possui um processador ARM 32 bits(AT91SAM7X), 2 interfaces RF OpenBeacon, micro SD para armazenamento de  dados, entrada Ethernet e 20 pinos para expansão.
+
=Esboço do Sistema=
 +
A imagem abaixo mostra o fluxograma do funcionamento inicialmente pensado para a tag no sistema.
  
==Projetos derivados==
+
[[Arquivo:Fluxograma_Sistema_Natação_NRF51.png]]
  
'''Sputinik:''' O projeto Sputinik é um sistema para localização em tempo real dentro de construções usando a tag OpenBeacon.
+
=Memória Flash=
                   
+
Como pode se visto através da imagem abaixo a memória flash do NRF51 é dividida basicamente em três partes:
A tag OpenBeacon é usada em combinação com 25 estações base(interrogators) para facilitar a localização. As tags quadros aleatoriamente com diferentes níveis de potência. Se o pacote for recebido por uma ou mais estações base é possível se ter uma ideia sobre a sua localização.
 
  
As estações base não exploram diferenças de tempo ou triangulação e sim apenas a força do sinal para fazer o posicionamento.
+
Code: É a área reservada para o código porém pode ser utilizada pelo usuário para gravar informações.
  
A saída das estações base é introduzida no Chaos Positionig System(CPS), queprove uma maneira mais alto nível e abstrata de manter e distribuir as
+
FICR: Possui as configurações e informações dos registradores. Essa área vem programada de fabrica e não pode ser apagada.
informações de posicionamento.
 
  
'''Blinkenlights:''' Em Toronto 960 janelas foram iluminadas individualmente em duas construções separadas e a instalação de conexões cabeadas precisavam ser evitadas devido a manutenção, para que isso fosse possível foram criados dois dispositivos:
+
UICR: Essa área é utilizada para gravar informações de configuração do usuário. Entre as configurações que podem ser feitas pelo usuário estão a definição do tamanho máximo da ''code region 0'' e proteção para evitar a leitura da memória.
  
''WDMI:'' Em cada lampada relevante da construção foi instalado um wireless dimmer(WDMI). O propósito era receber uma informação através da rede sem fio e desligar ou ligar a lampada através da técnica de controle de fase.
+
[[Arquivo:NRF51_Memory_Map.png]]
  
O dimmer foi feito com base em um Atmel ARM SAM7S como processador e um NRF24L01 HF(High Frequence) para comunicação RF.
+
O tamanho máximo da área de código é Y onde: Y = tamanho_máximo_da_memória_flash - 1. Tendo como exemplo a placa PCA1000 do kit de desenvolvimento cujo o tamanho da memória flash é de 256 KB ou 0x40000 logo o ultimo endereço disponível para gravar na flash é 0x3FFFF. A área de código é dividida em paginas e único meio de apagar uma informação na área de código é apagar a pagina onde se encontra a informação e para isso é utilizado o primeiro endereço da pagina. Cada pagina possuí 1 KB logo se tivermos um dispositivo com 256 KB de memória flash ele terá 256 paginas, para se encontrar o primeiro endereço de uma determinada pagina basta seguir a seguinte equação: endereço = (nº_da_pagina - 1) * 1024.
  
''WMCU:'' O Wireless Matrix Control Unit(WMCU) é um dispositivo feito com base em um processador Atmel ARM SAM7X feito para a instalação do Blinkenlights, possui uma interface Ethernet em um lado e um openBeacon RF do outro. Para a comunicação RF assim como no WDMI foi utilizado um NRF24L01 HF.
+
=Sleep Modes=
  
O WMCU tem uma lista interna de até 32 lampadas que pode controlar e possui a linha, a coluna e o endereço mac do dimmer de cada uma delas. Quando um pacote UDP contendo as informações da imagem a ser exibida é recebida pelo firmware a informação de cada pixel individual é dividida para cada lampada relevante para então ser extraída e envida em brodcast para todos os dimmers.
+
==System OFF==
 +
É o modo de economia de energia mai eficiente que o NRF51 pode entrar. Neste modo o processamento é reduzido ao minimo e todas as atividades sendo executadas são finalizadas. Os únicos mecanismos funcionando nesse modo são o de ''wake-up'' e o reset. O dispositivo pode sair desse estado através de um sinal DETECT gerado pelo GPIO, um sinal ANADETECT gerado pelo módulo LCOMP, ou um reset. Quando o dispositivo sai desse modo é gerado um reset.
  
Na instalação do Bliinkenlights em Toronto cada um dos 36 andares foi instalado um WMCU conectado a rede Ethernet controlando 22 ou 30 lampadas. Para cada lampada foi instalado um dimmer wirelles configurado para um pixel em uma posição especifica na matriz global assim o dimmer saberia quando piscar.
+
==System ON==
 +
Nesse a CPU e os periféricos selecionados podem ser induzidos a um estado aonde eles estão ativos e mais ou menos responsivos dependendo do sub modo de energia selecionado. Nesse modo a CPU pode tanto estar ativa quanto em modo sleep. A CPU pode entrar em modo sleep através das instruções WFI ou WFE. Quando selecionado o WFI a cpu voltara a ser ativada quando houver uma requisição de interrupção do NVIC. Quando WFE for selecionado a CPU voltara a ser ativada quando houver qualquer requisição de interrupção. O System ON possui dois sub modos de energia, são eles:
  
=Sistemas de Localização em Tempo Real=
+
===Costant Latency===
 +
Esse modo irá manter a latência de ''wake-up'' da CPU e a resposta da ''task PPI'' constante e minima. O consumo de energia no entanto irá aumentar.
  
==sensores utilizados==
+
===Low Power===
 
+
Esse é o sub-modo padrão do System ON e é mais eficiente e econômico que o ''Constant Latency'', porém a latência da CPU e a resposta da ''PPI task'' são variáveis.
==onde pode se aplicar o RFID ativo==
 
 
 
==aplicações no esporte equestre==
 
 
 
=Proposta=
 
 
 
=Bibliografia=
 

Edição atual tal como às 14h28min de 28 de abril de 2014

Descrição do sistema

O sistema inicialmente proposto é mostrado na figura abaixo. O sistema é composto por uma base de dados um computador, um leitor, um dispositivo de configuração e as tags RFID.

Cenario natacao nrf51.png

O computador (RaspbarryPI) esta conectado a uma base dados, na qual estão armazenadas as informações sore o atleta, e o leitor através de uma conexão UART. O leitor tem como objetivo fazer a comunicação entre o computador e as tags obtendo a id do atleta enviada pela tag e transmitindo para o pc através da UART. O dispositivo de configuração permite que certas informações da tag sejam alteradas .O atleta tem uma tag no braço e uma na perna, a tag quando em modo de transmissão envia um numero de identificação e quando em modo de recepção a mesma pode ser reprogramada inserindo novas informações.

Tag

A tag atua como transmissor e receptor. Quando a tag esta transmitindo a unica informação enviada no quadro é a sua id. Quando em modo de recepção o quadro recebido pela tag possui informações de configuração: taxa de transmissão, potência de transmissão, tempo de intervalo entre as transmissões a id atual da tag a qual o pacote está interessado e a nova id caso queira-se alterar a id da tag.

Maquina de estado tag nrf51.png

A imagem acima mostra o funcionamento da tag através de uma maquina de estado.

Diagrama de tempo cenario natacao nrf51.png

A imagem acima mostra o funcionamento padrão da tag no qual ela permanece um tempo configuravel x em modo sleep, termidado esse tempo é ativado o modo de trasmissão no qual a tag enviará a sua id, após isso ela entrara em modo de recepção caso receba um pacote em um tempo pré-determinado de 200 us a tag voltara a entrar em modo de transmissão caso contrario ela entrara em modo sleep.

Leitor

O leitor funciona unicamente em modo de recepção. Quando um pacote é recebido é verificado o crc, caso não tenha ocorrido nenhum erro a id é transmitida através da UART para o pc.

Configurador

O dispositivo de configuração funciona em modo de transmissão. Os dado são pegos através da UART inseridos em um pacote e enviados em broadcast para as tags. As seguistes informacões sã emviados no pacote de configuração:

A potência de transmissão da tag;

O tempo em que a tag pemeneçerá em modo sleep;

A ID á qual o pacote é destinado;

E uma nova ID caso queira se alterar a ID atual da tag.

Esboço do Sistema

A imagem abaixo mostra o fluxograma do funcionamento inicialmente pensado para a tag no sistema.

Fluxograma Sistema Natação NRF51.png

Memória Flash

Como pode se visto através da imagem abaixo a memória flash do NRF51 é dividida basicamente em três partes:

Code: É a área reservada para o código porém pode ser utilizada pelo usuário para gravar informações.

FICR: Possui as configurações e informações dos registradores. Essa área vem programada de fabrica e não pode ser apagada.

UICR: Essa área é utilizada para gravar informações de configuração do usuário. Entre as configurações que podem ser feitas pelo usuário estão a definição do tamanho máximo da code region 0 e proteção para evitar a leitura da memória.

NRF51 Memory Map.png

O tamanho máximo da área de código é Y onde: Y = tamanho_máximo_da_memória_flash - 1. Tendo como exemplo a placa PCA1000 do kit de desenvolvimento cujo o tamanho da memória flash é de 256 KB ou 0x40000 logo o ultimo endereço disponível para gravar na flash é 0x3FFFF. A área de código é dividida em paginas e único meio de apagar uma informação na área de código é apagar a pagina onde se encontra a informação e para isso é utilizado o primeiro endereço da pagina. Cada pagina possuí 1 KB logo se tivermos um dispositivo com 256 KB de memória flash ele terá 256 paginas, para se encontrar o primeiro endereço de uma determinada pagina basta seguir a seguinte equação: endereço = (nº_da_pagina - 1) * 1024.

Sleep Modes

System OFF

É o modo de economia de energia mai eficiente que o NRF51 pode entrar. Neste modo o processamento é reduzido ao minimo e todas as atividades sendo executadas são finalizadas. Os únicos mecanismos funcionando nesse modo são o de wake-up e o reset. O dispositivo pode sair desse estado através de um sinal DETECT gerado pelo GPIO, um sinal ANADETECT gerado pelo módulo LCOMP, ou um reset. Quando o dispositivo sai desse modo é gerado um reset.

System ON

Nesse a CPU e os periféricos selecionados podem ser induzidos a um estado aonde eles estão ativos e mais ou menos responsivos dependendo do sub modo de energia selecionado. Nesse modo a CPU pode tanto estar ativa quanto em modo sleep. A CPU pode entrar em modo sleep através das instruções WFI ou WFE. Quando selecionado o WFI a cpu voltara a ser ativada quando houver uma requisição de interrupção do NVIC. Quando WFE for selecionado a CPU voltara a ser ativada quando houver qualquer requisição de interrupção. O System ON possui dois sub modos de energia, são eles:

Costant Latency

Esse modo irá manter a latência de wake-up da CPU e a resposta da task PPI constante e minima. O consumo de energia no entanto irá aumentar.

Low Power

Esse é o sub-modo padrão do System ON e é mais eficiente e econômico que o Constant Latency, porém a latência da CPU e a resposta da PPI task são variáveis.