UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de...

36
UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação São Carlos - SP Comunicação entre Sistemas Embarcados utilizando Bluetooth Vitor Fiorotto Astolfi

Transcript of UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de...

Page 1: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação

São Carlos - SP

Comunicação entre Sistemas Embarcados utilizando Bluetooth

Vitor Fiorotto Astolfi

Page 2: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

Vitor Fiorotto Astolfi

Supervisor: Prof. Dr. Jorge Luiz e Silva

Monografia final de conclusão de curso apresentada ao Instituto de Ciências Matemáticas e de Computação – ICMC-USP - para obtenção do título de Bacharel em Ciência da Computação. Área de Concentração: Sistemas Embarcados

USP - São Carlos Maio de 2007

Comunicação entre Sistemas Embarcados utilizando Bluetooth

Page 3: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

i

Índice

1. INTRODUÇÃO ..................................................................................................................... 1

1.1 OBJETIVOS DO TRABALHO ......................................................................................... 5 1.2 ORGANIZAÇÃO DA MONOGRAFIA............................................................................. 6

2. REVISÃO BIBLIOGRÁFICA ............................................................................................. 7

2.1 SISTEMAS EMBARCADOS............................................................................................ 7 2.2 BLUETOOTH .................................................................................................................. 9 2.3. MICROPROCESSADOR RABBIT 3000....................................................................... 13 2.4. ANÁLISE CRÍTICA....................................................................................................... 15

3. ESTADO ATUAL DO TRABALHO................................................................................. 17

3.1 DESCRIÇÃO DAS ATIVIDADES REALIZADAS ......................................................... 18 3.2 RESULTADOS OBTIDOS............................................................................................. 25 3.3 DIFICULDADES E L IMITAÇÕES................................................................................. 26

4. CONCLUSÕES E TRABALHOS FUTUROS.................................................................. 28

5. REFERÊNCIAS .................................................................................................................. 29

Page 4: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

ii

Índice de Figuras

Figura 1.1: Produção de microprocessadores e PCs e população mundial. Fonte: [7] ................... 4

Figura 1.2: Faturamento gerado por hardware embarcado. Fonte: [8]............................................ 4

Figura 1.3: Faturamento gerado por software embarcado. Fonte: [8] ............................................. 5

Figura 2.1: Topologias para a) Sistema de telefonia celular convencional onde os quadrados

representam as estações base estacionárias; b) Sistema convencional ad hoc; c) Sistema ad

hoc utilizado na especificação Bluetooth. Fonte: [17]. ......................................................... 11

Figura 2.2: Processador Rabbit 3000. Fonte: [19]......................................................................... 14

Figura 2.3: RabbitCore RCM3360 utilizado no projeto. ............................................................... 15

Figura 3.1: EmbeddedBlue 506 utilizado no projeto..................................................................... 19

Figura 3.2: Módulos RCM3360 e EB506 instalados em suas protoboards. ................................. 19

Figura 3.3: Teste de funcionamento dos módulos EB506 por meio do HyperTerminal............... 20

Figura 3.4: Topologia original da rede. ......................................................................................... 21

Figura 3.5: Janela principal do cliente Java................................................................................... 21

Figura 3.6: Shell do módulo FAT.................................................................................................. 22

Figura 3.7: Janela principal do servidor Java. ............................................................................... 23

Figura 3.8: Topologia modificada da rede .................................................................................... 24

Índice de Tabelas

Tabela 1.1: Exemplos de aplicações embarcadas existentes no mercado. ...................................... 1

Tabela 2.1: Raio de alcance de acordo com a classe de potência. Fonte: [5]................................ 10

Page 5: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

iii

Lista de Siglas

ABS Anti-lock Breaking System

ARM Advanced RISC Machine

FAT File Allocation Table

HDLC High-level Data Link Control

I²C Inter-Integrated Circuit

IrDA Infrared Data Association

LED Light Emitting Diode

PDA Personal Digital Assistant

SDLC Synchronous Data Link Control

SPI Serial Peripheral Interface

SRAM Static Random Access Memory

UART Universal Asynchronous Receiver/Transmitter

VOIP Voice Over IP

Page 6: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

iv

Resumo

A computação está cada vez mais presente na sociedade moderna, não somente nas

estações de trabalho e computadores pessoais, mas também em muitos aspectos da vida

quotidiana, podendo estar embarcada nos mais triviais objetos, como interruptores de luz e

canetas. Esta computação, denominada ubíqua, na qual um usuário controla, naturalmente,

diversos computadores “onipresentes e invisíveis”, está em ascendência no mundo. Presente

muitas vezes em objetos móveis, a computação ubíqua requer tecnologias de comunicação sem

fio de baixo custo, como Bluetooth.

Este trabalho tem como objetivo o desenvolvimento de software para sistemas

embarcados que se comunicarão por meio da tecnologia Bluetooth, utilizada para comunicação

sem fio entre dispositivos eletrônicos a curtas distâncias. Serão transferidas imagens de um PC

para outro, sendo utilizados como intermediários microprocessadores com conectividade

Bluetooth. Um protocolo foi desenvolvido para o envio das imagens. No futuro, é possível a

incorporação deste projeto a um sistema de monitoramento de ambientes por imagens através de

robôs, sendo necessária, portanto, a comunicação sem fio. O microprocessador escolhido para o

desenvolvimento do projeto foi o Rabbit 3000, por seu alto desempenho, adequação para controle

embarcado, além de conectividade Ethernet e Bluetooth.

Como resultado deste trabalho são apresentados os softwares desenvolvidos tanto para os

PCs quanto para os Rabbit, além de uma análise de viabilidade para utilização do trabalho no

projeto do robô.

Page 7: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

1

1. Introdução

O desenvolvimento de sistemas embarcados está se tornando cada vez mais popular tanto

no meio acadêmico quanto na indústria, graças à crescente demanda por dispositivos mais

confiáveis e de melhor qualidade [1]. Atualmente, aplicações embarcadas estão presentes em

quase todas as técnicas e produtos industriais, como mostra a Tabela 1.1.

Mercado Exemplos de dispositivos embarcados

Medicina Bombas de infusão. Máquinas de hemodiálise. Monitores cardíacos.

Aparelhos Eletrônicos em Geral

Televisões analógicas e digitais. PDAs. Jogos/Brinquedos. Telefones fixos, VOIP e celulares. Câmeras. GPS (Sistema de Posicionamento Global). Periféricos de computadores, como roteadores e impressoras.

Automotivo Sistemas de Ignição. Sistemas de Freio, como ABS (antitravamento).

Musical Instrumentos eletrônicos digitais, como sintetizadores e pianos.

Aeroespacial Sistemas de navegação. Tabela 1.1: Exemplos de aplicações embarcadas existentes no mercado.

Até poucos anos atrás, havia duas fases bem distintas quanto à utilização de computadores:

a dos mainframes, com muitas pessoas compartilhando um computador e a dos computadores

pessoais (PCs), com um computador por usuário. Em 1984, o número de usuários de PCs

ultrapassou o de mainframes [2], cuja utilização é cada vez mais restrita. Uma terceira fase que

surgiu a partir da década de 1990, juntamente com o constante decréscimo do custo de

processadores, é a “computação ubíqua” [2], na qual um usuário utiliza vários computadores.

Centenas desses computadores são os que acessamos em poucos minutos por meio de navegação

pela Internet. Outros são os embarcados em automóveis, eletrodomésticos, aviões, etc.

Computação ubíqua é fundamentalmente caracterizada pela incorporação da computação a

objetos de qualquer tipo em qualquer escala, inclusive a microscópica [3]. Esse termo foi

cunhado por Mark Weiser em 1988 para descrever sua idéia de tornar os computadores

Page 8: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

2

onipresentes e invisíveis. Por invisibilidade entenda-se a tentativa de tirar o computador do

caminho entre o usuário e seu trabalho, indo além da “interface amigável”, e longe da realidade

virtual. A computação ubíqua é aproximadamente o oposto de realidade virtual, uma vez que essa

última coloca as pessoas dentro de um mundo gerado por computador, enquanto a primeira força

o computador a viver no mundo com pessoas, sendo uma integração difícil entre fatores humanos,

ciência da computação, engenharia e ciências sociais.

As tecnologias mais profundas são aquelas que desaparecem, tornando-se indistinguíveis

do dia-a-dia das pessoas [4]. Considere a escrita, talvez a primeira tecnologia de informação. A

habilidade de capturar representações simbólicas a partir de uma língua falada libertou a

informação dos limites da memória individual. Hoje essa tecnologia é ubíqua nos países

industrializados, sendo onipresente na vida das pessoas, apesar de não requerer atenção ativa das

pessoas, a informação está pronta para uso sempre que necessário. A tecnologia de informação

digital, porém, ainda não se tornou parte do ambiente. Mark Weiser propõe que, nessa fase de

computação ubíqua, o foco deve ser dirigido à “calma” (calm technology) [2]. Computadores

pessoais são projetados para fixar a atenção, mas quando os computadores forem onipresentes e

quisermos usá-los enquanto fazemos outras coisas, devemos reformular os objetivos dessa

tecnologia, para evitar que ela se torne incômoda, prendendo a atenção dos usuários.

Para que o usuário tenha maior liberdade e não precise ir até o computador, é fundamental

encolher os dispositivos que possam ser facilmente carregados ou vestidos, para garantir que o

usuário se movimente livremente. Dessa maneira, a computação móvel é uma tecnologia

fundamental, sendo englobada pela computação ubíqua. Por isso, é necessário prover conexão

sem fio, através de tecnologias como Bluetooth e telefonia celular, entre outras, para a

manutenção do serviço mesmo com os dispositivos estando em movimento. Como esses

dispositivos portáteis são alimentados por baterias, é fundamental que haja não apenas baixo

consumo de energia, mas também alta eficiência energética, sendo essas duas características

encontradas tipicamente em sistemas embarcados portáteis [1] e Bluetooth [5].

Atualmente, encontra-se com facilidade cerca de quarenta microprocessadores em uma

casa de classe média nos Estados Unidos [2]. Eles estão presentes em relógios com alarme,

fornos de microondas, controle remotos de TVs, aparelhos de som, nas próprias TVs, em

brinquedos, etc. No entanto, não podemos qualificá-los como computação ubíqua, pois eles são

em geral utilizados um por vez e se apresentam como objetos sem inovação, como relógios.

Page 9: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

3

Porém, se estivessem conectados à Internet, haveria milhões de fontes de informação para

centenas de sistemas capazes de enviar e receber dados em cada casa. Relógios poderiam se auto-

ajustar depois de uma queda de energia, fornos de microondas “baixariam” novas receitas,

brinquedos seriam atualizados com novos softwares e vocabulários, refrigeradores detectariam

comidas estragadas, aparelhos monitorariam a saúde dos ocupantes da residência, entre uma

infinidade de aplicações. Com a incorporação de uma tecnologia sem fio como Bluetooth, tal

gama de aplicações seria muito maior. Por exemplo, um telefone celular com Bluetooth poderia

obter uma lista de compras gerada automaticamente por uma geladeira “inteligente”. O mesmo

aparelho, utilizando identificação por rádio freqüência (RFID), poderia ser utilizado para

destravar portas, tanto em residências quanto em hotéis, depois de feito o check-in, por exemplo.

A Internet, redes sem fio, câmeras e telemática automotiva poderiam ser combinados para

transferência de informações a milhões de motoristas em grandes cidades para redução de atrasos,

congestionamentos, uso de energia, e poluição. Redes de sensores poderiam ser aplicadas a áreas

agrícolas para monitoramento da qualidade das plantações, do meio ambiente, para ajuste de

irrigação e fertilização, se necessária. Sendo constantes as evoluções causadas pela

miniaturização e a ubiqüidade na computação e telecomunicação, o surgimento e popularização

dos sistemas em rede de sistemas embarcados (EmNets) é apenas uma conseqüência natural disso

[6].

Prevê-se que em 2010 haverá mais de 16 bilhões de dispositivos embarcados

(aproximadamente três dispositivos embarcados por pessoa no mundo), e cerca de 40 bilhões em

2040 [7]. Atualmente, 98% dos microprocessadores produzidos são utilizados em sistemas

embarcados. Como se pode ver na Figura 1.1, o aumento do número de microprocessadores

fabricados é um indício da popularidade dos sistemas embarcados.

Page 10: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

4

Figura 1.1: Produção de microprocessadores e PCs e população mundial. Fonte: [7]

Sendo uma área tão promissora, as indústrias de software e hardware embarcados estão

entre as que mais crescem atualmente. Em 2004 o faturamento global gerado por hardware

embarcado foi de aproximadamente US$ 40 bilhões e espera-se que chegará a US$ 79 bilhões em

2009, com taxa média de crescimento anual (AAGR) de 14,2%. Os microprocessadores e

microcontroladores estão liderando esse mercado, seguidos por memórias e chips DSP [8]. A

Figura 1.2 mostra o faturamento gerado por hardware embarcado de acordo com o domínio de

aplicação.

Figura 1.2: Faturamento gerado por hardware embarcado. Fonte: [8]

Page 11: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

5

Analogamente ao hardware, o mercado de software embarcado cresce acentuadamente,

sendo a taxa média estimada de crescimento anual entre 2005 e 2009 de 16% [8]. A fig. 1.3

ilustra forte crescimento do desenvolvimento de software em todos os setores, sendo os mais

proeminentes os de telecomunicações, automação e automotivo, nos quais o uso de software

embarcado terá destaque como, por exemplo, em telefones celulares, que cada vez possuem mais

funcionalidades.

Figura 1.3: Faturamento gerado por software embarcado. Fonte: [8]

Um mercado considerado extremamente promissor é a robótica para fins de

monitoramento, tanto com o propósito de segurança quanto coleta de dados ambientais [9][10],

entre outras aplicações. Para tal, é comum a coleta e envio de imagens para posterior análise ou

checagem em um computador central.

1.1 Objetivos do Trabalho

Este projeto tem como objetivo principal a maior familiarização do autor com o

desenvolvimento de sistemas embarcados por meio da utilização de microprocessadores e

desenvolvimento de software específico para eles. Terá foco a comunicação em rede entre

sistemas embarcados, utilizando conectividade tanto com fio (Ethernet) como sem fio (Bluetooth),

sendo dada, porém, maior ênfase a essa última. Para o desenvolvimento dos sistemas embarcados,

são utilizadas duas placas com processador Z-World Rabbit 3000, de 8 bits, específicos para

Page 12: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

6

sistemas embarcados, possuindo conectividade Ethernet, memória com sistema de arquivos FAT,

e módulo para conectividade Bluetooth, adquirido à parte.

A meta final deste trabalho é o desenvolvimento de softwares para sistemas embarcados

capazes de armazenar imagens e transmiti-las utilizando Bluetooth, além de um protocolo para o

envio dessas imagens. A fonte primária das imagens e o destino final delas serão, a princípio,

dois PCs comuns, sendo, portanto, necessária também comunicação Ethernet entre eles e os

sistemas embarcados. Mais tarde, planeja-se utilizar processadores Nios II, também disponíveis

no Laboratório de Sistemas Embarcados da USP de São Carlos, por eles terem conectividade

Ethernet e serem mais apropriados para controle embarcado.

No futuro, existe a possibilidade de utilização deste trabalho em um projeto cujo objetivo

é o monitoramento de residências por meio de imagens obtidas por robôs, que poderiam ser

verificadas por meio de telefones celulares, ou mesmo utilizadas para identificação de invasores.

Este projeto está sendo planejado por diversos pesquisadores do Instituto de Ciências

Matemáticas e de Computação da USP, sendo coordenado pelo professor Eduardo Marques.

1.2 Organização da Monografia

Na seção seguinte, são descritos brevemente os conceitos básicos de sistemas

embarcados, como a polêmica definição do que é um sistema embarcado. Ainda nessa seção,

algumas características da tecnologia Bluetooth são descritas, enfatizando-se a comunicação. Por

fim, é apresentado o processador Rabbit 3000 e seu kit de desenvolvimento.

Na seção 3, são descritas as atividades realizadas e os vários problemas que surgiram

durante o desenvolvimento do trabalho. São discutidos, além disso, os métodos e resultados

obtidos.

Finalmente, a seção 4 traz uma conclusão a respeito do projeto realizado e apresenta

algumas considerações finais.

Page 13: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

7

2. Revisão Bibliográfica

A seguir, serão apresentados, de maneira sucinta, alguns conceitos e terminologias básicas

que proverão um melhor entendimento das atividades realizadas neste trabalho.

2.1 Sistemas Embarcados

Um sistema embarcado é um sistema computacional no qual o computador está

completamente dedicado ou encapsulado pelo dispositivo ou sistema que ele controla. É aplicado

à solução de um determinado problema, sendo capaz de realizar, em geral, poucas tarefas, ao

contrário de computadores com propósito geral, como um computador pessoal (PC) doméstico

[11].

A definição de sistema embarcado, entretanto, é muito fluída e difícil de estabelecer, uma

vez que acompanha os avanços da tecnologia e o constante decréscimo de custos de componentes

computacionais. As definições mais comuns de um sistema embarcado são descritas a seguir

[1][12].

● Sistemas embarcados são mais limitados quanto à funcionalidade do hardware e/ou

software que um PC.

● Um sistema embarcado é projetado para desempenhar uma função específica.

● Um sistema embarcado é um sistema computacional de qualidade mais alta e maior

confiabilidade que outros tipos de sistemas computacionais.

Todas essas definições são válidas, porém nem sempre verdadeiras. No caso da primeira

definição, muitas vezes hardware ou software encontrados em PCs tanto do presente quanto do

passado são adaptados em sistemas embarcados mais complexos. Quanto à segunda definição,

existem hoje PDAs e telefones celulares capazes de desempenhar uma grande variedade de

funções. Finalmente, um sistema embarcado pode realmente ter mais qualidade e maior

confiabilidade, principalmente quando se trata de aplicações diretamente relacionadas à

segurança, como um sistema de controle de freio em um veículo, ou alguma aplicação médica,

como monitores cardíacos. O mesmo não ocorre, porém, em jogos eletrônicos ou telefones

Page 14: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

8

celulares, nos quais uma pane é uma inconveniência, mas não uma situação que envolve risco de

morte.

Como o sistema embarcado é dedicado para tarefas específicas, os engenheiros projetistas

podem aperfeiçoá-lo melhor, reduzindo o tamanho e custo do produto. Sistemas embarcados são

freqüentemente produzidos em massa, beneficiando-se da economia de escala.

O software desenvolvido para um sistema embarcado é comumente chamado firmware, e

é armazenado em chips de memória somente para leitura (ready-only) ou em chips de memória

Flash, sendo eles geralmente de baixa capacidade. Dispositivos como discos rígidos ou leitores de

CDs são raramente usados.

Um sistema embarcado pode tanto não ter interface com o usuário quanto ter interfaces

similares aos computadores de mesa comuns, como ocorre em PDAs, por exemplo. Sistemas

embarcados simples, porém, usam botões, LEDs e visores pequenos para dígitos e/ou caracteres.

Processadores embarcados podem ser divididos em duas categorias, microprocessadores e

microcontroladores. Enquanto o primeiro incorpora em um circuito integrado apenas as funções

de uma unidade central de processamento (CPU), o segundo tem outros periféricos integrados no

chip, além da CPU.

Ao contrário do mercado para computadores desktop, que estão limitados a poucas

arquiteturas competidoras, há muitas arquiteturas diferentes para sistemas embarcados. Os

sistemas embarcados classificados como “simples” utilizam processadores de 8 bits já

considerados ultrapassados quanto ao desempenho, mas que se adequam às tarefas mais

simples[11]. Processadores como o Z-80, 8085 e 6.800 são exemplos de processadores de 8 bits.

Existem também sistemas simples baseados em processadores de 4 bits, mas são muito raros. Os

sistemas considerados simples também empregam CPUs de 16 bits, como o 8086. Esses

processadores simples, de 4, 8 ou 16 bits, são empregados em controles pequenos como sinais de

trânsito, alguns instrumentos médicos, controle de temperatura, etc.

Utilizam-se processadores comparáveis aos das famílias 386 e 486 em sistemas

embarcados de complexidade média, como pontos de venda, computadores de bordo, etc. Já os

sistemas sofisticados utilizam CPUs comparáveis às utilizadas em desktops [11]. Empregam-se

esses processadores em sistemas dedicados multimídia, na automação industrial e de centrais

telefônicas, entre outras aplicações.

Page 15: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

9

Atualmente, 75% dos processadores embarcados de 32 bits são ARM [13], devido

principalmente ao seu baixo consumo de energia, que faz deles particularmente apropriados para

dispositivos portáteis. De fato, quase todos os telefones celulares e PDAs usam processadores

ARM.

2.2 Bluetooth

Denominamos Personal Area Network (PAN) uma rede formada por dispositivos, como

telefones celulares e PDAs, muito próximos ao usuário. Seu alcance geralmente é de poucos

metros e é tecnologicamente similar à LAN (Local Area Network), diferindo-se apenas pela

pouca capacidade de crescimento e pela utilização doméstica.

Bluetooth, também conhecido como IEEE 802.15.1, é uma especificação industrial aberta

(royalty-free) que está se tornando muito popular [14] em personal area netoworks sem fio

(WPANs) de topologia ad hoc. É uma tecnologia utilizada para conexão e troca de informações

entre dispositivos como telefones celulares, PDAs, laptops, câmeras digitais, PCs, entre uma

infinidade de outros dispositivos. O nome Bluetooth tem origem em um rei dinamarquês

chamado Harald Blåtand (Bluetooth em inglês), que unificou a Dinamarca e a Noruega no

século X. Daí percebe-se a principal finalidade da tecnologia: unificar a comunicação entre

dispositivos.

O padrão Bluetooth utiliza sinais de rádio em ondas curtas e é considerado seguro e de

baixo custo [15]. Há chipsets, como o BRF6300, da Texas Instruments, que custam menos de

US$ 5.0 [16]. Destacam-se também sua robustez, baixa complexidade e baixo consumo de

energia. A tecnologia Bluetooth é usada na substituição de cabos para conexão entre dispositivos,

como por exemplo, PCs, impressoras e teclados. Outras aplicações possíveis podem ser o

compartilhamento e sincronização de dados entre dispositivos conectados e o acesso à Internet

por meio de outros dispositivos como telefones celulares, entre muitas outras.

Seu desenvolvimento teve início em 1994 pela Ericsson, e, a partir de 1998, pelo

Bluetooth Special Interest Group (SIG), consórcio inicialmente estabelecido pela Sony, Ericsson,

IBM, Intel, Toshiba e Nokia. Hoje esse consórcio inclui mais de 4000 empresas. A aceitação

inicial pelo mercado foi lenta, mas agora está começando a se tornar predominante. Os preços

estão em queda e cada vez mais dispositivos oferecem esse tipo de conexão.

Page 16: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

10

Características

A tecnologia Bluetooth é um padrão de transmissão via rádio especialmente desenvolvido

para baixo consumo de energia, possuindo também um microchip emissor-receptor de baixo

custo. Os chips têm excelentes recursos visando economia de energia, pois há alteração de

maneira automática ao modo de baixa potência (estado HOLD, no qual a corrente média é de 30

µA) quando o volume de tráfego diminui ou pára. Seu raio de alcance varia de 1 metro até 100

metros, de acordo com a classe de potência, como mostra a Tabela 2.1.

Classe Potência Raio de Alcance (aprox.)

Classe 1 100 mW ~100 metros

Classe 2 2,5 mW ~10 metros

Classe 3 1 mW ~1 metro

Tabela 2.1: Raio de alcance de acordo com a classe de potência. Fonte: [5].

A maioria dos dispositivos Bluetooth se encontra na Classe 2. Alguns dispositivos, como

dongles que podem ser adicionados a laptops, são Classe 1, e têm raio de alcance comparável ao

da rede Wi-Fi. Na realidade, no caso do Bluetooth, curto raio de alcance é um benefício, uma

vez que reduz as chances de interferência com outros dispositivos localizados em área próxima.

Bluetooth é direcionado tanto para aplicações de dados quanto de voz, sendo capaz de

penetrar objetos sólidos. Opera na faixa ISM (industrial, scientific, medical), centrada em 2,45

GHz, que era anteriormente reservada a alguns grupos de usuários profissionais, mas que foi

aberta mundialmente para uso comercial [17]. No Brasil, de acordo com a resolução 305 da

Anatel [18], a faixa ISM varia de 2400 a 2483,5 MHz, como ocorre nos Estados Unidos. Na

maior parte da Europa a mesma banda também está disponível. No Japão, a faixa varia de 2400 a

2500 MHz.

A taxa de transmissão de dados é de até 1 Mbps para as versões 1.0 e 1.2 e de 3 Mbps

para a versão 2.1. Tecnicamente a versão 2.1 teria consumo maior de energia, mas as taxas de

transferência três vezes maiores reduzem o tempo de transmissão, efetivamente reduzindo o

consumo à metade do consumido pelas versões 1.0 e 1.2 (assumindo tráfegos de dados iguais).

Page 17: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

11

Conexão entre Dispositivos Bluetooth

A tecnologia Bluetooth visa à criação de um sistema de comunicação ad hoc, no qual não

há diferença entre as estações base e terminais, ao contrário do que ocorre nas redes

convencionais de sistemas de telefonia celular [17]. Além disso, em ambientes Bluetooth é

comum a coexistência de diversas conexões ad hoc na mesma área sem qualquer coordenação

mútua entre os dispositivos. As diferenças entre os ambientes citados podem ser ilustradas pela

Figura 2.1.

Figura 2.1: Topologias para a) Sistema de telefonia celular convencional no qual os quadrados representam as

estações base estacionárias; b) Sistema convencional ad hoc; c) Sistema ad hoc utilizado na especificação

Bluetooth. Fonte: [17].

Durante o estabelecimento da conexão, um dispositivo deve agir como mestre e pode se

comunicar com até sete outros dispositivos que agem como escravos [5]. Esse tipo de rede

formada por até oito dispositivos, sendo um deles mestre e os outros escravos, é chamada

piconet. Note que na Figura 2.2., item c, há o estabelecimento de cinco piconets.

Page 18: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

12

Em um dado tempo, os dados são transmitidos entre o mestre e um escravo, mas o mestre

alterna rapidamente entre escravos usando escalonamento round-robin. A transmissão

simultânea entre o mestre e diversos escravos é possível, mas não muito usada na prática.

Qualquer dispositivo pode assumir a posição de mestre ou escravo em um tempo definido.

A especificação do Bluetooth permite a conexão entre duas ou mais piconets,

estabelecendo assim uma scatternet, com alguns dispositivos podendo agir simultaneamente

como mestre e escravo em piconets diferentes, podendo ser dessa maneira nós compartilhados

(bridges) entre elas. Pode-se notar que, na Figura 2.2, item c, há duas scatternets.

Quando um nó participa de diferentes piconets há utilização da técnica time division

multiplexing (TDM). Isto é, um nó pode participar seqüencialmente de diferentes piconets, sendo

que este pode somente estar ativo em uma piconet por vez. Portanto quando um nó está ativo em

uma piconet ele fica inativo na outra (permanece no estado HOLD). Assim sendo, um nó pode

saltar de uma piconet para outra ajustando os seus parâmetros de comunicação (identificador do

mestre e informações de sincronismo). Uma situação problemática ocorre quando o nó deixa

uma piconet (salta para outra) onde ele é o mestre, suspendendo o tráfego dessa piconet até que

ocorra seu retorno. Um nó também pode ser escravo em várias piconets. No entanto, não é

possível que um nó seja o mestre em diferentes piconets ao mesmo tempo.

Qualquer dispositivo Bluetooth poderá transmitir as seguintes informações quando houver

requerimento:

• Nome do Dispositivo

• Classe do Dispositivo

• Lista de Serviços

• Informações Técnicas (como características do dispositivo, especificação do Bluetooth,

intervalo de clock, etc).

Quando um dispositivo deseja estabelecer uma conexão, mas não sabe quais dispositivos

estão em sua área de alcance, há a difusão de mensagens do tipo inquiry (busca) para encontrar

outros dispositivos aos quais serão feitas conexões, sendo que os dispositivos devem retornar um

pacote FHS (frequency hopping-synchronization) contendo seu identificador e informações para

o sincronismo entre os dispositivos. Os dispositivos que respondem a uma mensagem de inquiry

utilizam uma temporização aleatória para enviar a resposta. O objetivo é evitar possíveis

Page 19: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

13

colisões, quando mais de um dispositivo responder ao pedido. Se um dispositivo conhece o

endereço do dispositivo ao qual tentará se conectar, este sempre responderá a requerimentos de

conexão direta e transmitirá informações da lista acima se houver requerimento.

Os dispositivos que estão ociosos podem permanecer num estado de standby para

economizar energia. Contudo, periodicamente devem "acordar" para verificar se existe algum

outro dispositivo tentando se comunicar. Neste momento podemos dizer que a unidade está em

estado de scan.

Cada dispositivo tem um endereço único de 48 bits. Entretanto, esses endereços não são

geralmente mostrados durante as buscas – na prática são utilizados “nomes de Bluetooth”

(Bluetooth name), mais amigáveis aos usuários, e que podem ser definidos por eles. Esses nomes

também serão mostrados nas buscas de dispositivos. Algumas vezes são necessários programas

especiais para obtenção de mais informações sobre dispositivos remotos, uma vez que pode

haver dispositivos com mesmo Bluetooth name. Por exemplo, telefones têm, em geral, nome

padrão definido como o nome do fabricante e o modelo.

Nos dispositivos Bluetooth há também um identificador de classe de 24 bits, que

especifica o tipo de dispositivo (telefone, smartphone, computador, fone de ouvido, etc), que

será transmitido quando outro dispositivo faz uma busca. Em alguns telefones essa informação é

traduzida em um pequeno ícone mostrado ao lado do nome do dispositivo.

Poderá haver também a transmissão de uma lista de serviços de um dispositivo se houver

requisição por outro dispositivo, o que inclui o nome do serviço e o canal utilizado. Esses canais

são virtuais e não têm relação com a freqüência da transmissão, sendo análogos às portas TCP.

Um dispositivo pode ter, portanto, múltiplos serviços idênticos. Dados técnicos usados para o

manejo da conexão também podem ser extraídos de um dispositivo.

2.3. Microprocessador Rabbit 3000

O processador Rabbit 3000 (Figura 2.2), de 8 bits, é derivado do Zilog Z80, que foi

utilizado em ampla escala tanto em desktops quanto computadores embarcados, além de sistemas

militares [19]. O Z80 e seus derivados compõem a família de processadores mais utilizada de

todos os tempos, dominando o mercado de 8 bits entre o fim da década de 1970 e meados da

década de 1980. Apesar de ser baseado no Z80, o Rabbit 3000 não é totalmente compatível

Page 20: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

14

quanto à programação, uma vez que diversas instruções foram adicionadas ou removidas para

aumento de desempenho [19]. O Rabbit 3000 foi criado pela Rabbit Semiconductor, que é uma

empresa subsidiária da Z-World.

Figura 2.2: Processador Rabbit 3000. Fonte: [19].

Destacam-se nesse processador o alto desempenho, sendo o clock de 55.5 MHz, e o

suporte de software direto para 1 MB de espaço de código e dados. Quanto às interfaces de

entrada e saída, há seis portas seriais com IrDA (comunicação sem fio por infravermelho), além

de sete portas paralelas de 8 bits, totalizando 56 bits de entrada e saída.

Este processador foi desenvolvido especificamente para controle de sistemas embarcados.

Por isso, uma de suas características principais é a alta eficiência enérgica, possuindo modos de

“dormência” com baixa potência. Além disso, possui temporizador watchdog, de alta

confiabilidade, essencial em muitos sistemas embarcados. Nesse processador há suporte para

conectividade Ethernet, sendo suportados conjuntos de protocolos de comunicação como

TCP/IP, IrDA, SDLC/HDLC, Async, SPI e I²C.

A empresa Rabbit Semiconductor também disponibiliza diversos kits de desenvolvimento

com o processador incorporado, que contém muitas ferramentas de software e hardware

necessárias para o desenvolvimento ágil de aplicações. O kit RabbitCore RCM3360 (Figura 2.3),

que foi utilizado no projeto, tem processador Rabbit 3000 de 44 MHz, Ethernet 10/100Base-T,

512K de memória Flash, 512K de memória SRAM de execução de programas, 512K de

memória SRAM de dados, 50 bits de entrada e saída compartilhados por seis portas seriais, além

Page 21: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

15

de suporte a cartões de memória de até 128 MB, vendidos separadamente, que estão formatados

no sistema de arquivos FAT. Este kit tem custo aproximado de 400 dólares [20].

Figura 2.3: RabbitCore RCM3360 utilizado no projeto.

Nos kits de desenvolvimento Rabbit está incluso um compilador C proprietário chamado

Dynamic C, que permite o desenvolvimento de aplicativos complexos em linguagem C para

sistemas embarcados. O ambiente Dynamic C, diferentemente do padrão ANSI C, não utiliza

arquivos header, usando em seu lugar arquivos de biblioteca com os protótipos embarcados

como comentários. Por isso, são necessárias modificações para portabilidade em outros

ambientes.

É possível incorporar ao RabbitCore diversos módulos adquiridos separadamente, como o

EmbeddedBlue 506, que torna possível a comunicação sem fio por meio de Bluetooth.

2.4. Análise Crítica

Considerando a natureza específica do projeto e sua finalidade, a busca de trabalhos

relacionados em outras fontes literárias não faz muito sentido, ainda mais se considerarmos a

escassez ou mesmo inexistência dos mesmos.

Page 22: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

16

Para suprir a crescente demanda por ferramentas para o desenvolvimento de sistemas

embarcados, estão surgindo no mercado kits como o descrito acima, que facilitam muito o

desenvolvimento, além de tornarem possível a conclusão, em tempo aceitável, de projetos como

este. A rapidez de desenvolvimento ou tempo do desenvolvimento até a comercialização de um

produto (time-to-market) é extremamente importante, principalmente nos meios industriais em

que os produtos se tornam rapidamente obsoletos, como o de sistemas embarcados.

Considerando a acirrada concorrência no meio empresarial, poucos meses de atraso podem

significar o fracasso de um produto.

Dada a crescente preocupação com segurança tanto doméstica quanto empresarial,

associada à demanda por mecanismos capazes de fazer o monitoramento desses ambientes, a

disponibilidade dos dispositivos e técnicas descritas acima motivou o desenvolvimento deste

projeto, que poderá ser incorporado a um sistema de monitoramento doméstico por robôs que

terão um RabbitCore responsável pelo envio de imagens, entre outros dados, por meio do

Bluetooth, a outros robôs ou um computador central, que poderá por sua vez se comunicar com o

meio externo por meio da Internet.

A escolha das técnicas, dispositivos e padrões descritos se deu quase que exclusivamente à

disponibilidade deles nos laboratórios do ICMC da USP de São Carlos. Apesar de serem

apropriados à finalidade proposta, há muitos outros processadores, kits, e padrões de

comunicação sem-fio adequados para o desenvolvimento deste projeto. Por exemplo, talvez seria

mais apropriada ao projeto a especificação de comunicação sem-fio ZigBee, muito similar ao

Bluetooth, porém mais simples e barata, tendo vida de bateria muito mais longa (10 anos,

contrastando com o Bluetooth, que precisa de recargas freqüentes), porém com alcance um pouco

menor (até 70 m) e menor largura de banda (250 Kbits/s) [21]. O fato de haver disponibilidade de

apenas módulos Bluetooth foi um fator limitante quanto à comparação dos padrões. Outra

limitação foi o número de kits Rabbit e Bluetooth disponíveis, sendo apenas dois. Dessa forma,

não foi possível ligar mais que duas estações Bluetooth para o estabelecimento de uma scatternet,

por exemplo.

Page 23: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

17

3. Estado Atual do Trabalho

Este trabalho foi motivado pela possibilidade do mesmo ser incluso no futuro em um

projeto de pesquisa envolvendo o monitoramento de ambientes utilizando robôs, que está em

fase de planejamento, sendo atualmente coordenado pelo professor Eduardo Marques, tendo a

participação de outros pesquisadores.

Considerando que, geralmente, a atividade de monitoramento se dá por recepção e análise

de imagens, este projeto se focará nesse aspecto, no que se refere aos dados a serem transferidos.

Supõe-se que haverá um computador central que fará a comunicação com o mundo exterior,

utilizando, por exemplo, a Internet. Dessa forma, uma pessoa poderia, por exemplo, visualizar

fotos ou checar a segurança de sua residência por meio de um telefone celular conectado à

Internet.

Como não havia disponibilidade dos robôs durante o desenvolvimento deste trabalho,

foram utilizados PCs comuns para a obtenção de imagens, que no caso já estariam no próprio

disco rígido. Cada PC estaria conectado através de uma conexão Ethernet a uma placa com o

processador Rabbit 3000 que, por sua vez, teria um módulo EmbeddedBlue 506 responsável pela

comunicação sem fio através de Bluetooth. Dessa forma, um PC e uma placa Rabbit formariam

uma entidade que poderiam representar um robô, pelo menos no que se refere à comunicação,

uma vez que são utilizados processadores Rabbit para a transmissão das imagens.

Assim, um computador, que faria a captação das imagens, envia, através da conexão

Ethernet, uma imagem a sua respectiva placa Rabbit, que por sua vez a armazena em seu cartão

de memória. Quando a imagem terminar de ser recebida, uma placa se comunicará com a outra,

enviando a imagem por meio da conexão sem fio. Após isso, a placa receptora finalmente envia

a imagem que estará no módulo FAT ao seu respectivo PC, que fará a armazenagem da mesma.

Para que isso seja feito com sucesso, são necessários mecanismos para sincronização dos

elementos que fazem o envio e a recepção, além de um protocolo para o envio correto das

imagens.

Após a utilização de PCs para a tarefa de obtenção e destino final das imagens, será

utilizado o processador Nios II da Altera, por ele ser mais apropriado que um PC para o

Page 24: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

18

desenvolvimento de um robô ou um sistema embarcado. Da mesma forma que o PC, os Nios II

estariam conectados às placas Rabbit através de cabos Ethernet.

3.1 Descrição das Atividades Realizadas

Inicialmente, foi preciso se familiarizar com os processadores Rabbit, além do ambiente

Dynamic C, que é um compilador C, editor, depurador, além de desempenhar o carregamento de

programas na placa através da porta serial. A linguagem C do Rabbit 3000, apesar de ser

diferente do padrão ANSI C quanto aos arquivos de header e utilização de bibliotecas, não

consistiu em obstáculo considerável. Nessa fase da pesquisa, deu-se maior ênfase ao estudo dos

periféricos de entrada e saída na placa Rabbit, como, por exemplo, os LEDs, os switches

(pequenos botões na placa), e o visor de cristal líquido. Estudaram-se, principalmente, os

comandos em C envolvidos com essas interfaces.

Após a familiarização com o processador e seu ambiente de trabalho, foi necessário

instalar as placas Bluetooth, EmbeddedBlue 506 (EB506 – Figura 3.1), em duas protoboards

próprias para os módulos RCM3360. Para isso, a leitura do manual do EB506 foi muito útil.

Sendo a instalação diferente para cada modelo do RabbitCore, foi necessário identificar o

modelo exato dele, o que constituiu uma dificuldade inesperada. No invólucro do processador o

modelo é descrito como RCM3300 e, para esse modelo é necessário cortar um pino na placa

Bluetooth para evitar conflitos de acesso às portas seriais, o que inutilizaria as placas em outros

modelos do RabbitCore. Porém, como havia no manual do EB506 uma foto de cada RabbitCore

junto às instruções de procedimento de instalação, foi observado que os RabbitCore disponíveis

se assemelhavam à foto do modelo RCM3360, para o qual a instalação da placa não demanda a

remoção de pinos. Apesar de não haver descrição do modelo em lugar algum, exceto no

invólucro, a instalação foi feita como se fosse para o modelo RCM3360, baseando-se

unicamente pela identificação visual, por receio de haver danificação das placas pelo corte

indevido de pinos. Os jumpers da placa foram configurados para usar a porta serial F do

RCM3360 (uma das seis portas seriais disponíveis), uma vez que a maioria das aplicações de

demonstração fornecidas junto ao EB506 pressupõe a utilização dessa porta.

Page 25: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

19

Figura 3.1: EmbeddedBlue 506 utilizado no projeto.

Figura 3.2: Módulos RCM3360 e EB506 instalados em suas protoboards.

Estando cada EB506 instalado em sua respectiva protoboard, finalmente foram instalados

os RabbitCore, sendo o resultado final mostrado na Figura 3.2. Note que em uma protoboard há

um visor de cristal líquido com um conjunto de teclas, que tem a finalidade de prover interface

de entrada e saída junto ao usuário. No projeto, esse visor foi utilizado para informar quantos

bytes de cada imagem foram enviados por meio do Bluetooth.

Page 26: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

20

Para a verificação do funcionamento das placas, utilizou-se o próprio HyperTerminal do

Microsoft Windows. Foi escrito um programa simples para o Rabbit que paralelamente lê dados

da porta serial de diagnósticos e os envia para o módulo EB506 e vice-versa. Dessa forma, como

mostra a Figura 3.3, foi possível testar o funcionamento dos módulos, através da utilização de

diversos comandos. Na foto, foram utilizados os comandos ver all, que retorna a versão do

módulo EB506 e get address, que retorna o endereço único de 48 bits do módulo Bluetooth.

Figura 3.3: Teste de funcionamento dos módulos EB506 por meio do HyperTerminal.

Desenvolvimento Este projeto foi desenvolvido, em sua maior parte, no Laboratório de Sistemas

Embarcados no Campus 2 da USP de São Carlos. Isso se deveu à disponibilidade dos

equipamentos utilizados, como os microprocessadores Rabbit, além do próprio Nios II da Altera,

que será utilizado no lugar dos PCs em um estágio mais avançado do projeto.

Originalmente, definiu-se que a conexão Ethernet entre os PCs e o Rabbit seria feita de

maneira direta. Desse modo, tanto o Rabbit quanto o PC não estão conectados à Internet, sendo,

neste último, o DHCP desabilitado e o endereço IP e máscara da subnet definidos manualmente,

o que foi possível porque havia possibilidade de acesso em nível de administrador nos dois PCs

utilizados. A Figura 3.2 ilustra a topologia da rede no aspecto físico.

Page 27: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

21

Figura 3.4: Topologia original da rede.

A primeira fase referente à implementação do projeto foi a criação de um aplicativo

“cliente” em Java que, executado no PC, é responsável pela conexão e envio de imagens ao

servidor executado no Rabbit. A Figura 3.5 mostra a janela principal do cliente, que no caso está

conectado ao servidor Rabbit e tem uma imagem carregada

Figura 3.5: Janela principal do cliente Java.

Simultaneamente ao desenvolvimento desse programa, foi desenvolvido no Dynamic C

um servidor para o recebimento das imagens pelas placas Rabbit e para o armazenamento dessas

imagens em seu módulo FAT. Não foi necessário formatar cada módulo FAT porque eles já

Page 28: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

22

haviam sido utilizados anteriormente, tendo inclusive alguns arquivos armazenados. O servidor

basicamente procura por partições no módulo FAT e utiliza a primeira encontrada. Para que os

arquivos fossem enviados corretamente, definiu-se um protocolo simples, sem detecção e

correção de erros de envio, uma vez que o próprio TCP/IP é responsável por isso.

Primeiramente, o cliente envia ao servidor Rabbit o comando enviar, que indica que há um novo

arquivo para ser enviado, e desabilita o botão responsável pelo envio de mensagens até que o

cliente receba uma mensagem do servidor indicando que o arquivo foi recebido e armazenado.

Após isso, o nome do arquivo e seu tamanho em bytes são enviados, para que o servidor conheça

de antemão a quantidade de bytes que devem ser lidos e que farão parte do arquivo. Finalmente,

cada byte da imagem é enviado pelo cliente e é armazenado no servidor.

Para fins de teste do programa, diversos arquivos foram enviados, alguns deles no formato

de texto para facilitar esse teste, uma vez que está incluído entre os programas de exemplo do

módulo FAT um shell, que permite a visualização dos arquivos armazenados na memória e até a

impressão do conteúdo dos mesmos em tela, caso forem arquivos de texto. A figura 3.6 mostra a

tela do shell sendo executado na janela de interface de entrada/saída do Dynamic C. No caso,

utilizou-se o comando para listar todos os arquivos presentes na FAT.

Figura 3.6: Shell do módulo FAT.

Analogamente aos programas descritos, foram desenvolvidos outros dois, sendo um deles

executado na outra placa Rabbit, tendo como função a obtenção, através do Bluetooth, e

armazenamento de imagens transmitidas pela primeira placa. No caso, esse programa que recebe

a imagem, executado no Rabbit, é um cliente que se conecta por meio de Ethernet ao servidor

Page 29: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

23

desenvolvido em Java, executado no PC, que fará a armazenagem final da imagem. A figura 3.7

mostra esse servidor, no caso com uma conexão Ethernet estabelecida com a placa Rabbit, tendo

recebido uma imagem. Diversos testes foram feitos para verificar se os arquivos enviados não

estavam corrompidos por meio de manipulação ou envio indevido de buffers, entre vários outros

problemas que surgiram. Colocou-se o cartão de memória FAT da primeira placa Rabbit nesta

segunda, para envio ao servidor Java dos diversos arquivos armazenados em testes anteriores.

Figura 3.7: Janela principal do servidor Java.

Após o desenvolvimento dos quatro programas descritos, o problema da comunicação

Ethernet entre cada PC e seu respectivo processador Rabbit foi resolvido. Faltou, porém, fazer a

comunicação Bluetooth entre ambos os Rabbit. Dessa forma, os programas a serem executados

nos Rabbit foram modificados para a implementação desta funcionalidade. Essa etapa provou ser

mais problemática que as anteriores, por motivos que são descritos posteriormente.

A conexão Bluetooth é cliente-servidor, como a Ethernet. O programa da placa que

recebeu a imagem do cliente Java é, no caso da conexão Bluetooth, um cliente, e o programa da

outra placa, o servidor. O endereço Bluetooth ao qual o cliente se conecta já é conhecido por ele

de antemão, obtido através do HyperTerminal, porém poderia ser descoberto utilizando-se o

comando lst, que faz a busca por dispositivos (inquiry). O protocolo utilizado para o envio de

imagens é o mesmo descrito anteriormente. Primeiro envia-se o comando enviar para indicar

que há um novo arquivo. Daí envia-se o nome dele e seu tamanho, para que o servidor saiba

Page 30: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

24

quando o recebimento do arquivo chega ao fim. Não foi necessário programar métodos para

tratamento de erros de envio ou perdas de pacotes, pois a especificação Bluetooth é considerada

tão confiável quanto o TCP/IP [5].

Sendo a comunicação entre o processador Rabbit ao módulo EB506 feita pela porta serial,

é necessário haver uma distinção entre comandos e dados enviados. Para isso, o EB506 suporta

dois modos operacionais, o de comando e o de dados, que tiveram que ser levados em

consideração durante o desenvolvimento dos aplicativos.

Uma dificuldade inesperada que surgiu foi o advento da greve de funcionários e alunos da

Universidade de São Paulo, que tornou inviável a ida do autor ao Campus 2 da Universidade

pela falta de ônibus. Assim, os microprocessadores tiveram que ser retirados do Laboratório de

Sistemas Embarcados e levados para os laboratórios comuns utilizados pelos alunos de

graduação. Como não havia mais acesso de administrador, não era possível definir os endereços

IP e máscaras da subnet, criando assim a necessidade de se repensar quanto à topologia da rede.

Os programas executados nos Rabbit tiveram que ser alterados para usar os HUBs dos

laboratórios. Felizmente, como configurações de rede podem se tornar bastante complicadas, as

versões mais recentes do Dynamic C incluem configurações pré-definidas. Dessa forma, não

foram necessárias muitas alterações nos programas e a topologia final da rede pode ser ilustrada

pela Figura 3.8.

Figura 3.8: Topologia modificada da rede

Page 31: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

25

Segurança

A especificação Bluetooth dá uma grande importância à segurança e dispõe de muitas

funcionalidades para provê-la. Como este projeto poderá ser utilizado em robôs domésticos com

fins de segurança, foi conveniente adicionar os seguintes mecanismos para evitar que

dispositivos estranhos se conectem aos módulos EB506:

• Criptografia – os módulos EmbeddedBlue disponibilizam criptografia de 56 bits.

• Senha – cada módulo Bluetooth pode ter uma senha definida para estabelecimento de

conexões. Dessa forma, somente clientes autorizados podem fazê-lo.

• Conexões fechadas – somente dispositivos previamente definidos como confiáveis

podem estabelecer conexões.

3.2 Resultados Obtidos

Durante todo o desenvolvimento do projeto foram realizados testes para verificação da

integridade dos arquivos transmitidos e várias falhas de programação foram sendo corrigidas

com o tempo, principalmente no que se refere à manipulação e transferência de buffers de dados.

A maior parte das imagens transmitidas teve sua integridade mantida no processo,

principalmente quando se tratavam de arquivos pequenos. Porém, algumas vezes verifica-se que

alguns bytes de dados se perderam no processo de comunicação Bluetooth, que é tão confiável

quanto o TCP/IP. Isto é, se algum dado é perdido, o mesmo será retransmitido automaticamente.

Esse problema chegou a ser muito comum, a ponto de ser impossível transmitir um arquivo

grande. Depois de muita pesquisa, foi determinado que a causa desse problema era o tamanho

excessivo do buffer de envio, 512 bytes, uma vez que o buffer UART do RabbitCore é de apenas

31 bytes. Mesmo após a correção desse problema, alguns arquivos infelizmente ainda chegavam

corrompidos. Mais testes e correções ainda devem ser feitos, atividades que se tornaram difíceis

de realizar, dadas as presentes circunstâncias decorrentes da greve na USP.

Apesar desses problemas e outros que surgiram, o objetivo inicial do trabalho foi

realizado. Isto é, conseguiu-se transmitir arquivos de um PC para outro, utilizando

microprocessadores com módulo Bluetooth como intermediários.

Page 32: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

26

3.3 Dificuldades e Limitações

Uma limitação considerada de certa forma frustrante é a disponibilidade de apenas dois

microprocessadores Rabbit e suas respectivas placas Bluetooth no Laboratório de Sistemas

Embarcados. Isso limitou as possibilidades de desenvolvimento e teste do software, tornando

impossível, por exemplo, o estabelecimento de scatternets.

Alguns problemas foram encontrados nos módulos EmbeddedBlue 506, que, em conjunto,

causaram grande atraso no cronograma do projeto. Por exemplo, os módulos Bluetooth só

poderiam se “enxergar” e estabelecer conexões se as duas placas estivessem muito próximas, a

30 cm de distância. Isso foi um problema sério, porque havia apenas dois computadores no

laboratório que tinham porta serial e, por conseguinte, as placas tiveram que ser conectadas a

eles, pois os programas do Dynamic C eram descarregados do PC até à memória flash do

processador através da porta serial. Estes dois computadores estavam a pelo menos dois metros

de distância, então fios tiveram que ser estendidos. Contudo, como a documentação do

EmbeddedBlue especifica que o módulo suporta distâncias de cerca de 10 metros sem auxílio de

antena externa, durante muito tempo supôs-se que o problema referente à conexão era outro, e

não a distância propriamente dita. Além disso, o programa de exemplo de conexão entre

módulos EmbeddedBlue, que veio junto ao CD dos mesmos, não funcionava nos RabbitCore

3360 utilizados, apesar de serem compilados no Dynamic C e carregados normalmente nos

processadores. Ademais, a documentação interna do programa especificava erroneamente que

aquele programa poderia ser executado no RCM3360. Após a análise do código-fonte, verificou-

se que as funções de acesso aos dispositivos de entrada e saída, como LEDs e switches da

protoboard, estavam incorretas no caso do RabbitCore em questão, sendo posteriormente

corrigidas. Este problema, em conjunto com o primeiro, causou considerável atraso no projeto.

Outras dificuldades encontradas são relacionadas à manipulação e transferência de buffers

de dados, e alguns problemas foram corrigidos para evitar que dados fossem perdidos ou

enviados em excesso, sobrecarregando as próprias capacidades do RCM3300. Eventualmente,

vários erros foram corrigidos, embora alguns ainda persistam.

Finalmente, o desenvolvimento deste projeto foi prejudicado pela greve dos alunos e

funcionários da USP de São Carlos, principalmente por causa da indisponibilidade de ônibus

para o campus 2, forçando o uso de laboratórios de graduação comuns no campus principal, o

Page 33: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

27

que causou alguns transtornos, porque os programas precisaram ser modificados para

comunicação entre um PC e seu processador Rabbit por meio de HUB. Além disso, o software

Dynamic C teve que ser copiado para os PCs utilizados no momento, e os cabos Ethernet de dois

outros computadores tiveram que ser utilizados nos RabbitCore. Dessa maneira, quatro

computadores eram ocupados por uma só pessoa, o que causou certo atrito com outros

estudantes e com o próprio STI responsável pelo laboratório. Argumentou-se que, como as

turmas às quais pertencem esses estudantes decidiram entrar em greve, eles não deveriam usar os

computadores, que a priori são utilizados para fins de estudo e foi recomendado que os mesmos

se reunissem no centro acadêmico para discussão a respeito dos rumos da greve. Infelizmente,

essas sugestões não foram bem recebidas.

Page 34: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

28

4. Conclusões e Trabalhos Futuros

Apesar de este trabalho ter cumprido seu propósito original, certas limitações externas

como cronograma curto e falta de acesso a laboratórios impediram o uso dos processadores Nios

II, que são mais apropriados para controle embarcado de robôs, no lugar dos PCs. Inicialmente,

planejou-se implementar o sistema utilizando PCs, principalmente pela facilidade de

programação e suporte a imagens. Como os processadores Nios II têm conectividade Ethernet, o

esquema geral do sistema permaneceria o mesmo. Espera-se, contudo, que este trabalho possa ter

alguma utilidade no futuro em projetos de robôs de monitoramento atualmente planejados nesta

Universidade. Devido ao curto raio de alcance obtido na prática, testes deverão ser feitos

utilizando uma antena externa para verificar a viabilidade da utilização dos módulos Bluetooth

no projeto.

Considerando a crescente popularidade de sistemas embarcados nesta era de computação

ubíqua, é importante que o aluno tenha algum tipo de contato com a computação embarcada, e

foi particularmente útil e gratificante ter cursado as disciplinas da ênfase em sistemas

embarcados incorporada ao curso de Ciências de Computação, sobretudo as que se focaram no

aspecto prático de projeto e desenvolvimento, como Co-Projeto em Hardware/Software e Projeto

e Implementação de Sistemas Embarcados, nas quais houve uma certa familiarização com os

processadores Nios II e Rabbit 3000. Foi também uma experiência interessante o contato com a

tecnologia Bluetooth, pelos problemas e peculiaridades inerentes à comunicação sem fio.

Creio que o currículo do curso de Ciências de Computação na USP de São Carlos é

adequado para a formação de um profissional que atua na área. No entanto, disciplinas

relacionadas à programação concorrente focada em baixa granularidade deveriam ter tido maior

atenção, principalmente por causa da crescente popularização dos processadores multi-core.

Page 35: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

29

5. Referências

[1] NOERGAARD, T. "Embedded Systems Architecture: A Comprehensive Guide for Engineers

and Programmers". Newnes, 2005.

[2] WEISER, M.; BROWN, J.S.. "The Coming Age of Calm Technology". Xerox PARC,

Outubro de 1996.

[3] GABRIEL, K.. "Engineering Microscopic Machines", Scientific American, Setembro de 1995.

[4] WEISER, M.; "The Computer for the Twenty-First Century", Scientific American, Setembro

de 1991.

[5] Bluetooth Core Specifications v2.0 + EDR, Novembro de 2004.

[6] National Academy of Sciences. "Embedded, Everywhere: A Research Agenda for Networked

Systems of Embedded Computers", National Academy Press, 2001.

[7] FISHER, J.A.; FARABOSCHI, P.; YOUNG, C.; "Embedded Computing", Morgan

Kaufmann Publishers, 2005.

[8] Business Communications Company Report, "Future of Embedded Systems Technology",

Junho de 2005.

[9] Inovação Tecnológica, "Robôs para monitoramento do meio-ambiente", Outubro de 2003.

Disponível em < www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=010180031028>.

Acesso em Junho de 2007.

[10] BOYD, J.; "Robot guard will smoke out villains", New Scientist , Agosto de 2004.

Disponível em < http://www.newscientist.com/article.ns?id=dn6241>. Acesso em Junho de 2007.

[11] ZELENOVSKY, R.; MENDONÇA, A.; "Introdução aos Sistemas Embutidos", Developers'

Magazine, p. 60 - 62, Setembro de 1999.

[12] BERGER, A. S. "Embedded Systems Design: An Introduction to Processes, Tools, &

Techniques". CMP Books, 2002.

[13] ALLISON, A.; Merchant Market RISC Shipments in 2001, January 2002.

[14] TWICE Magazine; "Bluetooth Popularity Is On The Rise", 2006.

[15] MAHMOOD, S.F.; "Wireless Personal Area Networks", Dissertação de Mestrado,

University Of Bridgeport, 2004

[16] TI.com; "Bluetooth Technology: BlueLink 5.0 Platform: BRF6300" Disponível em

<http://www.ti.com/bluelink_5>. Acesso em maio de 2007.

Page 36: UNIVERSIDADE DE SÃO PAULO - educatec.eng.breducatec.eng.br/engenharia/Monografia de apoio/Comunicacao entre... · proeminentes os de telecomunicações, automação e automotivo,

30

[17] HAARTSEN, J.; "The Bluetooth Radio System", IEEE Personal Communication, pp. 28-36,

Fevereiro de 2000.

[18] FLEMING, W.J.; ARANHA, H.; "Enlaces, Antenas e Propagação para Internet Sem Fio",

Abranet, Abril de 2005.

[19] Rabbit 3000 Microprocessor User's Manual, Novembro de 2006. [20] Rabbit Semiconductor. Disponível em <http://www.rabbitsemiconductor.com>. Acesso em

maio de 2007.

[21] ZigBee Alliance. Disponível em <http://www.zigbee.org>. Acesso em maio de 2007.