Upload
vonhu
View
221
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE DO VALE DO ITAJAI
CENTRO DE CIÊNCIAS TECNOLÓGICAS, DA TERRA E DO MAR
CURSO DE CIÊNCIAS DA COMPUTAÇÃO
DESENVOLVIMENTO DE UMA PLATAFORMA DE SISTEMA
COMPUTACIONAL EMBARCADO PARA MONITORAMENTO DE DADOS
REMOTOS
Área de Sistemas Embarcados
Carlos Alberto Cimolin
Itajaí (SC), julho de 2004
UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIAS DA COMPUTAÇÃO
RELATÓRIO DO TRABALHO DE CONCLUSÃO DE CURSO II
DESENVOLVIMENTO DE UMA PLATAFORMA DE SISTEMA
COMPUTACIONAL EMBARCADO PARA MONITORAMENTO DE DADOS
REMOTOS
Área de Sistemas Embarcados
Carlos Alberto Cimolin
Relatório apresentado à Banca
Examinadora do Trabalho de Conclusão
do Curso de Ciências da Computação
para análise e aprovação
Itajaí (SC), julho de 2004
EQUIPE TÉCNICA
Acadêmico Carlos Alberto Cimolin
Professor Orientador Cesar Albenes Zeferino, Dr.
Professor Co-orientador Rafael Luis Cancian, M.Sc.
Coordenadores dos Trabalhos de Conclusão de Curso Anita Maria da Rocha Fernandes, Drª.
Cesar Albenes Zeferino, Dr.
Coordenador do Curso Luis Carlos Martins
i
DEDICATÓRIA
Dedico este trabalho a meus pais, Isaura
e Décio, que sempre me apoiaram, e
principalmente a minha esposa, Eliete e minha
filha Ana Julia, que me incentivaram nas horas
mais difíceis e tiveram paciência para
suportarem minha ausência.
ii
SUMÁRIO
LISTA DE ABREVIATURAS E SIGLAS ............................................vi
LISTA DE FIGURAS .......................................................................... viii
LISTA DE TABELAS..............................................................................x
RESUMO .................................................................................................xi
ABSTRACT ............................................................................................xii
I - INTRODUÇÃO ...................................................................................1
1. APRESENTAÇÃO.................................................................................................1
2. JUSTIFICATIVA...................................................................................................2
3. IMPORTÂNCIA ....................................................................................................2
4. OBJETIVOS DO TRABALHO ............................................................................3
4.1.1 Objetivo Geral ...................................................................................................3
4.1.2 Objetivos Específicos.........................................................................................3
5. METODOLOGIA ..................................................................................................4
5.1 Revisão Bibliográfica ...........................................................................................4
5.2 Desenvolvimento...................................................................................................5
II - REVISÃO BIBLIOGRÁFICA..........................................................6
1. SISTEMAS EMBARCADOS................................................................................6
1.1 Definição................................................................................................................6
1.2 Aplicações..............................................................................................................8
1.3 Metodologia de Projeto........................................................................................9
1.3.1 Requisitos ..........................................................................................................11
1.3.2 Especificação.....................................................................................................12
1.3.3 Arquitetura.........................................................................................................12
1.3.4 Componentes .....................................................................................................13
1.3.5 Integração do Sistema .......................................................................................13
iii
2 MICROCONTROLADORES..............................................................................14
2.1 Arquitetura dos Microcontroladores ...............................................................14
2.2 Exemplos de Microcontroladores .....................................................................17
2.3 Aplicações com Microcontroladores ................................................................19
2.4 Comunicação com Dispositivos de Entrada-e-Saída ......................................20
3 TELEMETRIA......................................................................................................21
3.1 Conceito...............................................................................................................21
3.2 Meios de Comunicação Utilizados ....................................................................22
3.2.1 Telemetria sem Fio ............................................................................................23
3.2.2 Telemetria via Internet ......................................................................................23
3.3 Características dos Meios de Comunicação.....................................................24
3.4 Vantagens da Telemetria sem Fio.....................................................................24
3.5 Desvantagens da Telemetria sem Fio ...............................................................25
3.6 Vantagens da Telemetria via Internet..............................................................25
3.7 Desvantagens da Telemetria via Internet ........................................................26
4 TRABALHOS RELACIONADOS......................................................................26
4.1 Sistema para Telemetria de Sinais Biomédicos Usando Telefonia Celular..26
4.2 Construção de um Protótipo para Automatização de Níveis de Flúmens ....27
4.3 Sistema de Controle Automático para Agricultura Irrigada ........................29
4.4 Telemet – Um Sistema de Telemetria, Controlo e Gestão de Alarmes para
Aplicações Ambientais .............................................................................................30
4.5 Resumo dos Trabalhos Relacionados...............................................................31
III - DESENVOLVIMENTO.................................................................32
1. MODELAGEM ....................................................................................................33
1.1 Análise de requisitos...........................................................................................33
1.2 Especificação.......................................................................................................34
1.3 Projeto Arquitetural ..........................................................................................35
1.4 Projeto Arquitetural de Hardware...................................................................35
iv
1.5 Projeto Arquitetural de Software .....................................................................36
1.6 Projeto de Componentes....................................................................................37
1.6.1 Componentes de hardware ................................................................................37
1.6.2 Componentes de software .................................................................................37
1.6.3 Dicionário de Dados..........................................................................................41
1.6.4 Especificação de Processos ...............................................................................44
2 IMPLEMENTAÇÃO ............................................................................................47
2.1 Integração e Validação do Sistema...................................................................51
2.1.1 Função read_sensors .........................................................................................52
2.1.2 Funções write_eeprom_ext e read_eeprom_ext................................................52
2.1.3 Função set_date_time........................................................................................53
2.2 Validação do Sistema Integrado .......................................................................53
IV - CONCLUSÕES...............................................................................60
BIBLIOGRAFIA....................................................................................62
v
LISTA DE ABREVIATURAS E SIGLAS
ASIC Application Specific Integrated Circuits
CEFET-PB Centro Federal de Educação Tecnológica da Paraíba
CISC Complex Instruction Set Computer
CNPDIA Centro Nacional de Pesquisa e Desenvolvimento de Instrumentação
Agropecuária
CPU Central Processing Unit
DSP Digital Signal Processors
DTMF Dual Tone Multi Frequency
EEPROM Electrically Erasable Programmable Ready Only Memory
Embrapa Empresa Brasileira de Pesquisa Agropecuária
FPGA Field Programmable Gate Arrays
FURB Universidade Regional de Blumenau
Hz Hertz
I²C Inter-Integrated Circuit Bus
IP Internet Protocol
ISA-PORTUGAL Instrumentação e Sistemas de Automação, Lda
KB Kilo Bytes
MHz Mega Hertz
NETEB Núcleo de Estudos e Tecnologia em Engenharia Biomédica
PC Personal Computer
RAM Random Acess Memory
RF Rádio Freqüência
RISC Reduced Instruction Set Computer
ROM Read Only Memory
UFPB Universidade Federal da Paraíba
UG Unidade de Gestão
UHF Ultra High Frequency
ULA Unidade Logica e Aritmetrica
UR Unidade Remota
VHF Very High Frequency
vi
SCL Serial clock
SDA Serial Data
ACK Acknowledge
LCD Display de crystal líquido
RTC Real time clock
vii
LISTA DE FIGURAS
Figura 1 – Típico sistema computacional embarcado............................................................................... 7
Figura 2 – Passos para projeto de sistemas embarcados ......................................................................... 10
Figura 3 – Arquiteturas: (a) Harvard; e (b) Von-Neumann .................................................................... 16
Figura 4 – Arquitetura do 8051 ............................................................................................................... 17
Figura 5 – Arquitetura do PIC16F84....................................................................................................... 18
Figura 6 – Placa contendo um conversor analógico digital. ................................................................... 20
Figura 7 – Transmissão do barramento I2C............................................................................................. 21
Figura 8 – Esquemático dos componentes do sistema ............................................................................ 27
Figura 9 – Diagrama em blocos dos componentes do sistema................................................................ 28
Figura 10 – Arquitetura e transmissão de dados ..................................................................................... 29
Figura 11 – Vista Explodida de um tensiômetro..................................................................................... 30
Figura 12 – Estrutura global do sistema.................................................................................................. 31
Figura 13 – Diagrama do sistema desenvolvido ..................................................................................... 32
Figura 14 – Figura com quadro descritivo dos requisitos do sistema ..................................................... 33
Figura 15 – Figura com quadro descritivo da especificação do sistema................................................. 34
Figura 16 – Arquitetura de software e hardware..................................................................................... 35
Figura 17 – Diagrama em blocos da arquitetura de hardware................................................................. 35
Figura 18 – Esquema de ligação do microcontrolador com os periféricos ............................................. 36
Figura 19 – Diagrama em blocos da arquitetura de software.................................................................. 36
Figura 20 – Diagrama de contexto do sistema ........................................................................................ 38
Figura 21 – Nível 0 do diagrama de fluxo de dados ............................................................................... 39
Figura 22 – Nível 1 do diagrama de fluxo de dados do processo eeprom_control ................................. 40
Figura 23 – Nível 3 do diagrama de fluxo de dados do processo timer_control..................................... 41
Figura 24 – Esquema de ligação física do hardware da plataforma no PROTEUS ................................ 47
Figura 25 – Esquema de ligação dos sensores no microcontrolador....................................................... 48
Figura 26 – Código da função que efetua a leitura dos sensores ............................................................ 49
Figura 27 – Função de inicialização da comunicação I2C (a); função de fim da comunicação I2C (b).. 49
Figura 28 – Trecho de código da função de gravação na EEPROM externa.......................................... 50
Figura 29 – Display de cristal líquido (a); código da função para imprimir no display (b).................... 50
viii
Figura 30 – Código da funçõe de gravação da data e da hora................................................................. 51
Figura 31 – Trecho de código da função transmite dados....................................................................... 51
Figura 32 – Trecho de código da função de recepção de dados.............................................................. 51
Figura 31 – Validação da função read_sensors: (a) valor da tensão medida; (b) visualização noLCD . 52
Figura 32 – Memória EEPROM vazia (a); Memória EEPROM com valor gravado(b) ......................... 53
Figura 33 – Relógio de tempo real zerado (a); Relógio de tempo real inicializado (b) .......................... 53
Figura 34 – Fluxograma de funcionamento do sistema .......................................................................... 54
Figura 35 – Fluxograma de funcionamento do sistema (continuação) ................................................... 55
Figura 36 – Plataforma completa realizando uma amostra ..................................................................... 56
Figura 37 – Configuração da varredura dos sensores no PROTEUS...................................................... 57
Figura 38 – Memória EEPROM com amostras armazenadas................................................................. 57
Figura 39 – Validação da comunicação serial......................................................................................... 58
Figura 40 – Memórias internas: (a) do microcontorlador U2; (b) do microcontrolador U4.................. 59
ix
LISTA DE TABELAS
Tabela 1 - Tabela comparativa de microcontroladores ........................................................................... 19
Tabela 2 - Quadro resumo dos trabalhos relacionados .......................................................................... 31
Tabela 3 - Padrão de valores armazenados na EEPROM ....................................................................... 58
x
RESUMO
Atualmente, o uso de sistemas de telemetria para monitoramento remoto de informações tem
se difundido devido à necessidade por tais soluções e à facilidade de acesso às tecnologias
necessárias. Este projeto está inserido nesse contexto e visa aplicar a técnica de telemetria e o
conhecimento de sistemas computacionais embarcados para implementar uma plataforma de
monitoramento de dados remotos. Dessa forma, foi realizada uma revisão bibliográfica a fim de
estabelecer as bases necessárias ao projeto. Estudaram-se conceitos e metodologias de projeto de
sistemas computacionais embarcados, assim como conceitos sobre microcontroladores, os quais
integram a maior parte da funcionalidade necessária a esses sistemas. Também foi feita uma revisão
bibliográfica a respeito de sistemas de telemetria, incluindo a descrição de alguns trabalhos
inseridos no mesmo contexto. Esse estudo serviu de base para o desenvolvimento de uma
plataforma de sistema computacional embarcado baseada em microcontrolador PIC16F877 e em
periféricos externos que incluíram uma EEPROM, um relógio de tempo real, um display de cristal
líquido e outros componentes. No desenvolvimento deste projeto foi utilizada uma metodologia
composta por análise de requisitos, especificação dos requisitos, projeto arquitetural, projeto de
componentes e integração do sistema. O software da plataforma foi modelado usando diagramas de
fluxo de dados e codificado em linguagem C. Os testes e a validação foram executados em uma
ferramenta de simulação de sistemas eletro-eletrônicos.
xi
ABSTRACT
Nowadays, telemetry systems has been used in the supervision of remote data due to the
demand for such kind of solution and the availability of the needed technologies. This project is
inserted in this context and aims to apply the telemetry technique and embedded computing to
implement a remote data supervision system. To accomplish with this, it was done a study on
concepts and methodologies related with embedded system design and microcontrollers, which
integrate the most part of the functionality needed for such systems. Furthermore, it was done a
study on telemetry systems, including some related works. This study was the base for the
development of a embedded computing platform based on Microchip PIC16F877 microcontroller
and on external peripherals including an EEPROM, a real-time clock, an liquid crystal display and
others. In the development, it was applied a methodology based on the analysis of requirements,
specification, architectural design, design of components and system integration. Software was
modeled using data flow diagrams and, after, coded in C language. Testing and validation was
based on the simulation of the system in a simulator electronics systems.
xii
I - INTRODUÇÃO
1. APRESENTAÇÃO
O desenvolvimento contínuo da tecnologia trouxe muitos benefícios para o cotidiano das
pessoas através da automatização de processos que antes eram feitos de forma manual, incluindo a
supervisão e/ou o controle de máquinas, equipamentos, eletrodomésticos ou, simplesmente,
variáveis de um ambiente (eg. temperatura, pressão) para fins estatísticos.
Muitas dessas aplicações baseiam-se no uso de algum sistema computacional embarcado, o
qual, segundo Wolf (2002), pode ser definido como qualquer computador que compõe um sistema
maior e que se baseia em seu próprio microprocessador. Além disso, um sistema computacional
embarcado possui requisitos e características diferentes daquelas encontradas em um sistema
computacional de uso geral. Em particular, ele é dedicado a uma aplicação específica e requer
atenção especial quanto à sua portabilidade, confiabilidade e segurança.
Algumas aplicações também requerem a comunicação com sistemas localizados em pontos
remotos, de modo a permitir o envio e o recebimento de informações transferidas através de algum
meio de comunicação, ou seja, elas requerem o uso de telemetria, a qual é definida como “uma
técnica de sensoreamento de informações e medidas em alguma locação remota e a transmissão dos
dados capturados até um local conveniente, para serem conhecidos ou para controlar processos em
um local remoto” (BRITISH TELECOMM 2000). Ainda, é possível afirmar que a telemetria refere-
se “à transferência de dados medidos remotamente para uma estação de controle central, usando
alguma forma de laço de comunicação. A aquisição de dados é normalmente feita em tempo real,
embora não necessariamente a transmissão seja feita também em tempo real” (MIRI, 2000).
Este trabalho insere-se no contexto acima com o objetivo de desenvolver uma plataforma de
sistema computacional embarcado para medição e transmissão de dados em um sistema de
monitoramento remoto que possa ser utilizada para aplicações que requeiram tais capacidades. Um
exemplo de aplicação vislumbrada consiste na coleta de dados ambientais em que o sistema
embarcado captura valores de um sensor, empacota-os e os envia por algum meio de comunicação a
2
uma estação de recepção responsável pelo processamento dos dados coletados, conforme
implementado por Einsfeldt (2002).
2. JUSTIFICATIVA
Neste trabalho são aplicados os conhecimentos obtidos no Curso de Ciência da Computação.
Serão aplicados conceitos abordados nas disciplinas das áreas de Arquitetura de Computadores,
Programação, Redes de Computadores, Eletrônica e Análise e Projeto de Sistemas, o que propiciará
a consolidação de tais conceitos e a aquisição de novos conhecimentos sobre assuntos não
abordados ou pouco aprofundados no curso (como, por exemplo, telemetria).
3. IMPORTÂNCIA
A disponibilidade desta plataforma possibilitará o desenvolvimento de novos sistemas
computacionais embarcados destinados à supervisão de dados remotos a serem desenvolvidos pelo
Laboratório de Sistemas Embarcados e Distribuídos (LSED) do Centro de Ciências Tecnológicas da
Terra e do Mar (CTTMar) da Universidade do Vale do Itajaí (UNIVALI). Nesse caso, por exemplo,
tais sistemas facilitam o monitoramento de áreas de meio ambiente (eg. rios e dunas), evitando que
um operador tenha que, periodicamente, deslocar-se ao local monitorado para medir as variáveis-
alvo. Embora a plataforma não esteja restrita a esse domínio de aplicação, sua motivação decorreu
de uma demanda local do Laboratório de Oceanografia Física do CTTMar da UNIVALI por um
sistema que tenha capacidade de obter dados a partir de sensores ambientais e de transmití-los a um
computador central.
3
4. OBJETIVOS DO TRABALHO
4.1.1 Objetivo Geral
Este trabalho visa aplicar conceitos e tecnologias para desenvolver um sistema embarcado
para medição e transmissão de dados remotamente. Esses dados são coletados por uma estação de
coleta, analisados e empacotados para serem enviados para uma central, onde serão extraídos e
disponibilizados para visualização.
4.1.2 Objetivos Específicos
Os objetivos específicos deste trabalho são:
1. Estudo de conceitos e metodologias associadas ao projeto de sistemas computacionais
embarcados, com vistas ao desenvolvimento do sistema proposto.
2. Estudo de alternativas de arquiteturas de microcontroladores de 8 bits para o desenvolvimento
do sistema.
3. Estudo sobre aspectos associados à telemetria, de modo a identificar alternativas de tecnologias
de transmissão de dados possíveis de serem utilizadas nesse sistema.
4. Realizar uma revisão sobre trabalhos relacionados de modo a identificar as escolhas efetuadas
nos sistemas estudados.
5. Realizar a seleção das alternativas tecnológicas a serem utilizadas no sistema.
6. Efetuar a modelagem do sistema.
7. Efetuar a implementação do projeto.
8. Validação e testes do sistema através de uma ferramenta de simulação.
4
5. METODOLOGIA
5.1 Revisão Bibliográfica
Inicialmente, foi realizado um levantamento bibliográfico com o objetivo de identificar
referências que permitissem fundamentar os conceitos necessários ao desenvolvimento deste
trabalho. As principais fontes de referência a serem consideradas foram baseadas em livros sobre os
temas abordados, manuais de fabricantes (data sheets) e artigos técnico-científicos. Essas
referências foram obtidas por consulta à biblioteca da UNIVALI, à biblioteca do LSED, sites de
fabricantes de microcontroladores e publicações disponibilizadas na Internet. A partir dessas
referências, foram realizados estudos teóricos e redigidos os capítulos da revisão bibliográfica da
monografia, a qual é composta pelos capítulos que abordarão os seguintes temas: (i) sistemas
computacionais embarcados; (ii) microcontroladores; (iii) telemetria; e (iv) trabalhos relacionados.
No capítulo sobre sistemas computacionais embarcados, buscou-se conhecimentos gerais
sobre características básicas, metodologias de projeto e exemplos de aplicação.
A redação do capítulo sobre microcontroladores tem por objetivo conhecer os tipos básicos
de arquitetura, especificações técnicas de modelos comerciais, exemplos de aplicações com
microcontroladores e o funcionamento básico desses circuitos eletrônicos.
No capítulo sobre a telemetria, foram pesquisados possíveis meios de comunicação
utilizados para aplicações de monitoramento remoto, identificando-se suas características,
vantagens e limitações.
No capítulo sobre trabalhos relacionados, foi feito um estudo sobre algumas aplicações e
implementações de monitoramento de dados remotos descritas na literatura, como forma de
identificar as tecnologias utilizadas em cada caso, a fim de embasar as escolhas a serem tomadas no
projeto aqui proposto.
5
5.2 Desenvolvimento
Após concluída a revisão bibliográfica, iniciou-se o desenvolvimento do projeto, tendo
iniciado com a pré-modelagem do sistema, a qual foi realizada na fase anterior do trabalho. Essa
pré-modelagem serviu de base para iniciar a o desenvolvimento do software através do compilador
C da CCS para o PIC e da ferramenta de simulação de sistemas eletro-eletrônicos PROTEUS/ISIS
da Labcenter Electronics.
Na primeira fase, o software foi desenvolvido para cada dispositivo periférico
individualmente, validando-se o software, e a integração do microcontrolador com o periférico
através da ferramenta de simulação. Esta fase serviu para aprimorar o conhecimento sobre os
periféricos, bem como sobre o uso do compilador e da ferramenta de simulação PROTEUS, na qual
pode-se visualizar o esquema de ligação física dos componentes.
Após adquirir conhecimento sobre o compilador, os periféricos e a ferramenta de simulação,
foi realizado um refinamento da pré-modelagem e iniciado o desenvolvimento da plataforma. A
mesma foi baseada em um microcontrolador PIC16F877 utilizando dois barramentos I²C de dois
fios, conectados na EEPROM e no relógio de tempo real. Além disso, também foi usado um canal
para acionamento de um LCD e dois fios para comunicação serial RS232.
Após definida a plataforma iniciou-se o desenvolvimento do software e a integração dos
periféricos ao microcontrolador. Essa etapa foi fundamental para analisar o funcionamento da
plataforma e a validação do código gerado. A validação e a integração foram realizadas através do
PROTEUS/ISIS.
A metodologia utilizada no desenvolvimento do projeto foi baseada naquela descrita por
Wolf (2002), a qual inclui as seguintes etapas: análise de requisitos, especificação, projeto
arquitetural, projeto de componentes e integração do sistema. A modelagem foi realizada com a
ferramenta Power Designer Process Analyst 6.1 utilizando diagramas de fluxo de dados.
II - REVISÃO BIBLIOGRÁFICA
1. SISTEMAS EMBARCADOS 1.1 Definição
Com o constante avanço da tecnologia e principalmente da eletrônica encontram-se, nos dias
de hoje, vários aparelhos que funcionam de forma automática e que oferecem um grande benefício
para a vida moderna. Por exemplo, podem ser citados os telefones celulares que discam por
comando de voz, os fornos de microondas, os televisores que se conectam a Internet, os sistemas
inteligentes de controles de temperatura e tantos outros.
Esse avanço somente foi possível graças ao emprego da microeletrônica nesses
equipamentos e que, segundo Zelenovsky e Mendonça (1999),
“a evolução da microeletrônica e o barateamento das CPUs (Central Processing Unit) viabilizaram o emprego de sistemas computadorizados nos diversos equipamentos. Os cérebros da maioria dos equipamentos modernos são os pequenos computadores que eles trazem embutidos. É claro que esses computadores não se parecem com o que temos sobre nossas mesas. Eles são construídos para tarefas específicas e, na grande maioria das vezes, não contêm disco rígido ou flexível, não precisam de teclado e muito menos de Windows”.
Esses sistemas inteligentes passaram a ser chamados de embedded systems ou embedded
computers, sendo que, em português, são utilizadas as expressões sistemas embarcados, sistemas
embutidos ou sistemas dedicados1.
Segundo Wolf (2002), um sistema embarcado é todo o computador que é um componente
em um sistema maior e que possui seu próprio microprocessador. Esses sistemas possuem uma
combinação de software e hardware, circuitos analógicos ou digitais. Conforme Oyamada e Wagner
(1999), “alguns sistemas podem ser implementados com um microcontrolador de prateleira, 1 Neste texto, serão utilizados os termos “sistema embarcado” e “sistema computacional embarcado” os quais se referem, respectivamente, aos termos originais em inglês embedded system e embedded computing system. Os dois termos se referem a um sistema computacional que é parte de um sistema maior.
7
processador de sinais digitais ou um microprocessador digital e um software associado, porém
sistemas complexos têm requisitos críticos considerando aspectos como área, velocidade, e
consumo de potência necessitando de um projeto dedicado”.
Ainda segundo Oyamada e Wagner (1999), “o projeto de sistemas embarcados complexos
compreende um conjunto de diferentes tecnologias, ferramentas e estilos de projeto. Um ambiente
de projeto para tais sistemas deve considerar a especificação do sistema, particionamento em
software, hardware digital e partes analógicas, e síntese das partes de hardware e software”.
Um exemplo de sistema embarcado é ilustrado na Figura 1, o qual inclui uma CPU,
memórias ROM (Read Only Memory) e RAM (Random Access Memory), uma memória de dados
não volátil (ex. EEPROM – Electrically Erasable Programmable Ready Only Memory) e
periféricos, como temporizadores e portas de entrada-e-saída (E/S), todos interligados por meio de
um barramento.
Figura 1 – Típico sistema computacional embarcado
Fonte: Zelenovsky e Mendonça (1999).
CPU
Entradas
e
Saídas
Relógio de
Tempo Real
Memória de Dados
não Volátil
RAM
ROM
O desenvolvimento de projetos de sistemas computacionais embarcados pode ser complexo
caso o projetista não possua conhecimento mais específico sobre tais sistemas e por envolver
diversos problemas relacionados ao projeto. Como dizem Carro e Wagner (2003), “o projeto de
sistemas eletrônicos embarcados enfrenta diversos grandes desafios, pois o espaço de projeto
8
arquitetural a ser explorado é muito vasto” e, também, “por questões de portabilidade e do limite de
consumo de potência sem perda de desempenho, a baixa disponibilidade de memória, a necessidade
de segurança e confiabilidade, a possibilidade de funcionamento em uma rede maior, e o curto
tempo de projeto tornam o desenvolvimento de sistemas computacionais uma área em si”.
Segundo Dias (2001), os sistemas embarcados são normalmente integrados através de
componentes heterogêneos, o que exige o desenvolvimento de metodologias de concepção que
permitam a especificação, a validação, a otimização e a implementação utilizando,
preferencialmente, um modelo unificado ao longo de todo o ciclo de concepção. Os componentes de
hardware podem incluir componentes programáveis, como processadores, microcontroladores ou
DSPs (Digital Signal Processors) e/ou circuitos especializados, como ASICs (Application Specific
Integrated Circuits), FPGAs (Field Programmable Gate Arrays), os quais se comunicam através de
uma arquitetura de comunicação. Os componentes programáveis oferecem mais flexibilidade, pois
podem implementar diferentes aplicações ao executarem códigos diferentes. Entretanto, os circuitos
especializados oferecem melhor desempenho por serem dedicados à implementação da aplicação
alvo. Para resolver os problemas associados a prototipação rápida e à concepção conjunta de
hardware e de software (hardware/software co-design), é necessário o uso de uma metodologia
formal de concepção.
1.2 Aplicações
Os sistemas embarcados são utilizados em diversas áreas, nas quais se deseja substituir
controladores mecânicos ou automatizar e agilizar o processamento e o monitoramento de
informações. Dentre as várias áreas, destaca-se a área automobilística, que evoluiu bastante graças à
computação embarcada. Por exemplo, o processo para controlar a mistura de combustível e o
controle de freios é feito de forma automática, podendo adaptar-se a diversas situações de
combustíveis e terrenos, respectivamente (DIAS, 2001).
Outra área interessante é a área fotográfica. As câmeras antigas eram estritamente mecânicas
e as fotos eram de pouca qualidade. Atualmente, existem máquinas fotográficas que possuem desde
o rebobinador automático até aquelas que batem as fotos automaticamente e as revelam na hora,
além das câmeras totalmente digitais.
9
Em outra área, como a de eletrônica de consumo, encontram-se diversos eletrodomésticos
com computação embarcada, como, por exemplo, os fornos de microondas que possuem sistemas
para configuração da sua operação e controle da emissão das microondas.
As aplicações de sistemas embarcados vão desde sistemas pequenos, que requerem pouco
processamento, até sistemas complexos que exigem processamento critico e alto desempenho com
execução em tempo real. Em todas elas, os sistemas computacionais caracterizam-se por serem
dedicados a uma aplicação ou a uma pequena faixa de aplicações (MORAES et al, 1998).
1.3 Metodologia de Projeto
A computação embarcada é uma área muito complexa e possui algumas limitações, as quais
são muito importantes e podem definir o futuro e o desempenho do projeto. Algumas questões,
como a quantidade e o tipo de hardware que será utilizado, a definição do prazo do projeto, a
potência que o sistema poderá consumir, a evolução desse sistema (ou seja, novas versões) e
também se o sistema suportará atualizações de software que sejam necessárias após algum tempo de
uso.
A metodologia para construção de um projeto de sistemas embarcados é representada na
Figura 2, na qual são identificados os principais passos a serem seguidos a fim de facilitar a
organização e a comunicação com a equipe de trabalho, que são partes fundamentais para o
desenvolvimento do projeto. Essa metodologia é apresentada por Wayne Wolf (2002) em seu livro
Computer as Components, e será adotada neste trabalho.
A metodologia de projeto, como é mostrado na Figura 2, começa através da identificação
dos requisitos do sistema, na qual é feita uma consulta ao cliente a fim de descrever quais são os
requisitos e funcionalidades que o sistema deverá ter. A seguir é feita a especificação do sistema
com base nesses requisitos, na qual é mostrada uma descrição mais detalhada dos requisitos e como
o sistema irá funcionar sem revelar muitos detalhes do funcionamento. A etapa seguinte,
Arquitetura, define o sistema na forma de componentes, com os módulos, o software e o hardware
especificados. Na etapa de Componentes, é feita a construção desses componentes e, finalmente,
ocorre a integração do sistema completo na última etapa.
10
Projeto Projeto
Top-Down Botton-Up
Figura 2 – Passos para projeto de sistemas embarcados
Fonte : Wolf (2002).
Integração do Sistema
Componentes
Arquitetura
Especificações
Requisitos
Essa descrição baseia-se no projeto top-down, o qual começa com os requisitos e vai
refinando até os detalhes do projeto. Durante o processo de construção do sistema, são feitas
considerações e previsões de todas as etapas do projeto, prevendo-se o que acontecerá no futuro.
Porém se essas previsões de tempo ou de requisitos não forem atendidas, talvez seja necessário
retornar e alterar as previsões originais. Também é preciso fazer uma análise em cada etapa a fim de
implementar possíveis melhorias e garantir que os requisitos que foram definidos sejam atendidos.
A seguir, é apresentada uma descrição mais detalhada da metodologia a ser utilizada, a qual
é baseada no texto original de Wayne Wolf (2002).
11
1.3.1 Requisitos
Nesta etapa, é feito um levantamento dos requisitos, identificando-se como o sistema deverá
se comportar e quais as suas características de funcionamento e de construção. Também são feitos
um detalhamento e um refinamento desses requisitos a fim de poder iniciar a construção do projeto.
O levantamento compreende vários níveis de requisitos que vão desde o tamanho e o peso,
(pois as características físicas podem influenciar dependendo do tipo de aplicação), como também o
desempenho, o qual, dependendo da velocidade, seja de transmissão ou de processamento, pode
influenciar bastante tanto no projeto como nos custos finais do produto. Outros requisitos
importantes são o consumo de energia, o qual deve ser reduzido ao máximo dependendo da
aplicação, e o custo, o qual depende em muito da arquitetura utilizada.
Durante a análise de requisitos é importante fazer algumas etapas que facilitem o
acompanhamento e definam o mais precisamente possível a descrição e o funcionamento do
sistema. Dentre essas etapas, a primeira seria definir um nome coerente para o projeto, facilitando a
comunicação entre as equipes de construção.
É importante também estabelecer a finalidade do sistema, detalhar o que ele irá fazer, sua
interface (entradas e saídas do sistema), quais dados (analógicos ou digitais) serão utilizados, como
eles serão coletados (via telemetria, Internet ou localmente) e quais dispositivos de entrada e de
saída serão necessários (como conversores analógico-digitais, atuadores etc).
Além disso, deve-se detalhar as funções, dizendo o que o sistema faz quando recebe um
dado. Como isso afeta no estado do sistema, em que altera a saída para o usuário e quais as funções
são afetadas. Outra análise importante é o desempenho, pois os sistemas embarcados necessitam de
muito tempo para controlar os dispositivos do sistema. Com isso é interessante definir os requisitos
de desempenho o mais cedo possível.
O custo de fabricação também deve ser verificado, dependendo da arquitetura do sistema, o
valor do projeto pode variar bastante, sendo, com isso, a definição de uma arquitetura coerente
bastante importante.
12
Um outro requisito de um sistema embarcado é o consumo de energia. A grande parte dos
sistemas embarcados são construídos para trabalharem com baterias e, nesse caso o consumo deve
ser mínimo. Além disso, as características mecânicas, como o volume e o peso do produto também
devem ser analisados, pois, em algumas aplicações, esse fator é muito importante.
Nesta etapa, pode-se fazer uma maquete do projeto visando mostrar principalmente o
volume e o peso do sistema, bem como a possível posição dos componentes, a interface com o
usuário e como o usuário poderá interagir com o sistema.
1.3.2 Especificação
A especificação do sistema deve ser clara e bem elaborada, pois ela mostra os requisitos que
o cliente solicitou, diz como o projeto será feito e também o que será seguido para a execução do
mesmo. É importante também para os projetistas, porque uma especificação bem elaborada facilita
o seu trabalho, como também, se for mal elaborada ou incompleta pode comprometer a
implementação e o sucesso do projeto.
É importante especificar algumas características do sistema, como, por exemplo, a interface
com o usuário, de onde vêm os dados, quais as operações do sistema que necessitam de
desempenho, quais os componentes principais, alguns requisitos específicos do projeto, como por
exemplo, um tamanho máximo que o sistema poderá ter e assim por diante.
1.3.3 Arquitetura
O projeto arquitetural do sistema funciona como um diagrama em blocos abstrato da sua
estrutura, servindo futuramente para o projeto de componentes. Nessa abstração, são mostradas as
operações que são executadas e a direção do fluxo de dados entre os blocos, não mostrando os
detalhes da implementação. É necessário dividir o projeto em diagrama de blocos para o software e
para o hardware.
13
No diagrama de blocos do hardware, é mostrado, por exemplo, uma CPU que interage com a
memória e os dispositivos de entrada e saída. Já o diagrama de blocos do software mostra as
operações que são executadas e a sincronização dessas operações.
A descrição da arquitetura do projeto deve mostrar os detalhes de construção, velocidade,
consumo de energia, como também outras restrições e limitações, pois um projeto arquitetural
errado pode acarretar em uma especificação incorreta do projeto e aparecer na fase final do projeto.
1.3.4 Componentes
No projeto de componentes serão construídos os componentes necessários para a elaboração
do projeto. Esses componentes são obtidos através da descrição da arquitetura do sistema, na qual
são determinados quais componentes serão necessários.
Muitos desses componentes são padronizados, como a CPU e a memória, porém alguns
outros são específicos para o projeto, como, por exemplo, os dispositivos de entrada e saída, os
conversores analógico-digitais, os atuadores e outros que devam ser construídos. Já os componentes
de software podem ter que ser desenvolvidos completamente ou reutilizados de projetos anteriores
ou bibliotecas de componentes.
1.3.5 Integração do Sistema
Nesta etapa é feita a integração de todas as partes do sistema, sendo que essa integração é
um tanto difícil, pois encontrar erros no sistema é mais complicado e limitado. A dificuldade de
analisar os erros deve-se, principalmente, à escassez de ferramentas e à falta de observabilidade
detalhada do sistema, pois às vezes não é possível separá-lo em partes, desde que os componentes
não funcionam individualmente como operam no sistema, e também porque, em muitos sistemas
embarcados, não existem vídeos ou teclados.
14
2 MICROCONTROLADORES
Com a velocidade que a tecnologia se desenvolve e as grandes inovações que surgem todos
os dias, principalmente da microeletrônica, tem sido possível a integração de centenas de milhares e
até milhões de transistores em uma única pastilha semicondutora. Isso tornou os componentes
eletrônicos mais potentes e confiáveis e, graças a essa integração, começaram a surgir os
processadores que possibilitaram o desenvolvimento dos primeiros computadores eletrônicos, com
a adição de alguns periféricos, como, memória, entradas e saídas, temporizadores e outros (MATIC
2003, MORAES et al,).
Na década de 70 foi possível colocar, no mesmo circuito integrado, o processador e os
periféricos, levando-se ao desenvolvimento dos microcontroladores. Esses dispositivos são
componentes baseados na arquitetura dos microprocessadores e podem ser usados em diversos
projetos de eletrônica, substituindo muitos componentes digitais e melhorando o acabamento e o
desempenho do projeto, principalmente devido à redução do espaço físico ocupado e ao aumento da
eficiência (SOUZA, 2000).
Os microcontroladores possuem todos os componentes necessários para o controle de um
processo, desde a memória interna onde fica o programa, uma memória de dados, portas de entrada
e ou saída e diversos periféricos. Essa é uma das principais características que diferenciam os
microcontroladores dos microprocessadores, nos quais os periféricos não são incluídos na mesma
pastilha da CPU.
Algumas características técnicas dos microcontroladores serão abordadas nas seções a
seguir.
2.1 Arquitetura dos Microcontroladores
Os microcontroladores são basicamente constituídos pelos seguintes componentes: CPU
(Central Processing Unit), as memórias e os periféricos.
Na CPU é feito o processamento das instruções que estão armazenadas seqüencialmente na
memória. A CPU do microcontrolador possui ainda os registradores e contadores, que são unidades
15
funcionais utilizadas para o armazenamento temporário de bits, possui a ULA (Unidade Lógica e
Aritmética) que é a unidade que executa as operações lógicas e aritméticas do programa e uma
unidade de controle e sincronização que controla e coordena todas as unidades funcionais em uma
seqüência lógica e sincronizada (MARINHO et al, 2001).
As memórias são dispositivos que armazenam as informações em lugares denominados de
localidade de memória, onde são guardadas as informações. Essas localidades de memória possuem
um endereço para que possam ser acessadas, sendo que as informações nelas armazenadas são
usadas para a execução dos programas e são compartilhadas por diversos componentes do sistema.
Existem vários tipos de memórias, as quais podem ser voláteis ou não voláteis. Os
microcontroladores possuem uma memória não volátil, onde é gravado o programa, sendo que, em
geral, essa memória é do tipo FLASH, a qual pode ser regravada várias vezes. Possuem também
uma memória não volátil do tipo EEPROM, a qual armazena os dados que não podem ser perdidos
mesmo quando ocorre falta de energia, como, por exemplo, dados sobre a temperatura fixada para
reguladores de tensão. No caso de uma queda de energia, se esses dados fossem perdidos, seria
necessário calibrar novamente o sistema, porém com isso ele perderia sua eficácia. Eles incluem
ainda uma RAM que guarda os dados temporários, os quais são necessários para a execução do
programa e, caso falte energia, esses dados não seriam cruciais para o retorno do sistema
(MARINHO et al, 2001).
Os periféricos incluem circuitos auxiliares (ex. temporizadores e contadores) e circuitos de
entrada-e-saída, como, por exemplo, conversores analógico-digitais e portas de comunicação serial,
entre outros.
O desempenho do microcontrolador depende da sua arquitetura interna, ou seja, do modo
como ele foi projetado tanto no hardware como no software. Existem alguns tipos básicos de
arquitetura de microprocessador/microcontrolador: (i) Von-Neumann ou Harvard; e (ii) CISC ou
RISC.
Na arquitetura de Von-Neumann, mostrada na Figura 3.b, os barramentos de dados e
endereços são compartilhados entre as memórias de dados e programa durante a comunicação com
a CPU. Nessa arquitetura, quando a CPU esta acessando a memória de programa, ela não pode
16
acessar a memória de dados, porque usa o mesmo barramento para as duas memórias. (MARINHO
et al, 2001).
(a) (b)
Figura 3 – Arquiteturas: (a) Harvard; e (b) Von-Neumann
Fonte: Matic (2003).
Na arquitetura Harvard (Figura 3.a), ao contrário da Von-Neumann, existem dois
barramentos internos, sendo um para dados e outro para instruções de programa. Esse tipo de
arquitetura permite que, enquanto uma instrução é executada, outra instrução seja buscada na
memória, tornando assim o processamento mais rápido (SOUZA, 2000).
As arquiteturas CISC caracterizam-se por terem um conjunto de instruções grande e
diversificado. Tipicamente, incluem algumas centenas de instruções, sendo que uma mesma
operação pode suportar diversos modos de endereçamento. Além disso, as instruções costumam ter
tamanhos e tempos de execução diferentes e possuem também um micro código. Essa
complexidade dificulta o aprendizado do conjunto de instruções para o desenvolvimento de
programas e limita o desempenho do microprocessador.
Na arquitetura RISC, o conjunto de instruções é menor, incluindo apenas algumas dezenas
de instruções que implementam um número bastante limitado de modos de endereçamento, o que
facilita e torna mais dinâmico o aprendizado, porém dificulta a implementação, quando é construído
o código em baixo nível. Como não existem instruções prontas para determinadas funções, elas
devem ser construídas, exigindo assim um certo grau de habilidade do programador (SOUZA,
2000).
17
Em uma verificação feita com um microprocessador CISC com cerca de 200 instruções,
constatou-se que o processamento era feito na maior parte do tempo apenas com umas 10
instruções, sendo que a maioria poderia ser implementada através das instruções básicas,
diminuindo muito assim o conjunto de instruções e também podendo aumentar a memória
disponível nos componentes (MARINHO et al, 2001).
2.2 Exemplos de Microcontroladores
A seguir são descritos dois microcontroladores comerciais (8051 e PIC 16F84) visando
ilustrar suas características básicas sem se ater a detalhes, os quais podem ser obtidos diretamente
nos seus datasheets.
O microcontrolador 8051 da Intel, cuja organização é ilustrada na Figura 4, possui uma
arquitetura Von-Neumann/CISC com palavra de dados de 8 bits e cerca de 111 instruções
(considerando-se todos os modos de endereçamento) com tamanho variando de 8 a 24 bits.
Figura 4 – Arquitetura do 8051
Fonte: Intel (2003)
18
Internamente, o 8051 inclui uma memória de dados de 128 bytes e uma memória de
programa de 4096 bytes. Ele possui quatro portas de comunicação, cujos bits podem ser
endereçados individualmente ou em grupo sob a forma de uma porta de 8 bits, dois temporizadores
de 16 bits e um controlador de comunicação serial (INTEL, 2003).
O microcontrolador PIC 16F84 da Microchip utiliza uma arquitetura Harvard/RISC de 8 bits
com 35 instruções de tamanho único (14 bits). Ele integra uma memória de dados de 68 bytes e uma
memória de programa FLASH com 1024 palavras de 14 bits. Possui 13 pinos de entrada-e-saída
agrupados em duas portas (PORTA de 5 bits e PORTB de 8 bits). Inclui ainda um temporizador de
8 bits e uma memória EEPROM de 64 bytes. A organização do PIC 16F84 é ilustrada na Figura 5,
na qual destacam-se os barramentos separados para dados e instruções, a ULA, as memórias
(FLASH, RAM e EEPROM), as portas de comunicação e os registradores especiais, entre outros.
Figura 5 – Arquitetura do PIC16F84
Fonte: Microchip (1998).
19
Na Tabela 1 é mostrado um quadro resumo com alguns tipos de microcontroladores e suas
características de construção, como por exemplo, memória de programa, memória EEPROM,
interrupções.
Tabela 1 - Tabela comparativa de microcontroladores
Característica PIC16F873 PIC16F877 PIC18F242 PIC18F452 Freqüência de
operação 20 Mhz 20 Mhz 40 MHz 40 MHz
Memória de Programa 4K 8K 16K 32K
Memória de Dados Volátil 192 368 768 1536
Memória não Volátil EEPROM 128 256 256 256
Interrupções 13 14 17 18 I/O Ports Ports A,B,C Ports A,B,C,D,E Ports A,B,C Ports A,B,C,D,E Timers 3 3 4 4
Comunicação Serial MSSP,USART MSSP,USART MSSP,Addressabl
e,USART MSSP,Addressa
ble,USART Conversor A/D
10 bits 5 canais 8 canais 5 canais 8 canais
Set de Instruções 35 35 75 75 Pinos 15 40 28 40
Fonte : Microchip (2003)
2.3 Aplicações com Microcontroladores
Os microcontroladores são utilizados em diversas aplicações, como eletrodomésticos,
alarmes, fechaduras elétricas, automóveis, celulares, brinquedos, sistemas de segurança, também
usado para cartões inteligentes e dispositivos alimentados por baterias, devido ao seu baixo
consumo (MATIC, 2003).
A memória não volátil que possuem torna mais fácil o uso em dispositivos que requerem o
armazenamento permanente de vários parâmetros, necessários para o funcionamento do sistema,
como códigos de transmissores, velocidade de um motor, freqüências de recepção, etc.
20
Pode-se ilustrar alguns exemplos da aplicação de microcontroladores, como o conversor
analógico digital, mostrado na Figura 6, o qual possui uma resolução de 8 bits, com 8 entradas
analógicas com nível de 0 a 5V. Essas entradas podem ser selecionadas manualmente por jumpers
ou pelo próprio microcontrolador.
Figura 6 – Placa contendo um conversor analógico digital.
Fonte : Kit (2003)
2.4 Comunicação com Dispositivos de Entrada-e-Saída
Os sistemas embarcados são compostos por diversos componentes eletrônicos e a
comunicação entre esses componentes pode ser feita de várias formas, dentre elas, a utilização do
protocolo I2C.
O protocolo de comunicação I2C (Inter-Integrated Circuit Bus) foi desenvolvido pela Philips
para facilitar a interconexão de componentes eletrônicos. É um protocolo serial composto por dois
barramentos: SCL (serial clock) e SDA (serial data). Os dois barramentos operam com níveis de
tensão de 0 e 5 volts e as regras de comunicação serial do start bit (inicio da comunicação) e do stop
bit (final de comunicação), devem ser seguidas.
O barramento SCL estabelece o sincronismo para a comunicação serial entre os módulos e
ele indica quando uma informação pode ser considerada válida. Essa indicação é definida quando o
nível lógico do SCL está alto, ou seja, em 1. Quando isso acontece, sabe-se que o dado que esta no
barramento SDA é um dado válido.
21
Para iniciar uma transmissão, um sinal de start condition é gerado da seguinte forma. O
barramento SCL se mantém em nível lógico alto, enquanto que o barramento SDA deve passar de
nível alto para baixo. Para finalizar uma transmissão, é gerado um sinal de stop condition, onde o
barramento SCL se mantém em nível lógico alto e o barramento SDA deve passar de baixo para
alto, como pode ser visto na Figura 7.
Figura 7 – Transmissão do barramento I2C
Fonte: Risnik (2002).
A comunicação através do I2C permite a conexão com diversos periféricos que são
identificados por um endereço único e estes podem operar como master ou slave. O master é quem
gerencia a transferência de dados, determinando a taxa de transferência, o inicio e o fim da
transmissão. O slave é comandado pelo master e reconhece os dados transmitidos. Para que a
transferência de dados inicie, após o start e o endereçamento estarem prontos, é necessário que o
slave (escravo) envie um sinal de reconhecimento chamado de acknowledge (ACK).
3 TELEMETRIA
3.1 Conceito
A telemetria é uma técnica utilizada para medir e monitorar dados, os quais são coletados
por uma estação remota (ou base) e transmitidos por meio de um canal de comunicação a um
controle central, no qual eles são manipulados para serem tratados e visualizados, ou armazenados,
para futuras análises (DAVE e L-3 COMUNICATIONS, 2003).
A técnica de telemetria pode tratar dados de vários tipos, como, por exemplo, dados físicos,
biológicos ou ambientais. Ela é usada, principalmente, para agrupar dados de vários locais
22
diferentes, os quais podem estar distantes ou próximos, como também podem estar em locais
inacessíveis ou de difícil acesso para serem coletados. (DAVE, 2003).
A transmissão dos dados pode ser feita por diversos meios de comunicação, como por
exemplo, linha telefônica (convencional e/ou celular), satélite ou ondas de rádio ou ainda via
Internet.
3.2 Meios de Comunicação Utilizados
Os meios de comunicação utilizados para transmissão dos dados podem variar dependendo
da aplicação ou da localização dos dados. Cabe ao projetista definir qual tecnologia de transmissão
é a mais apropriada para o projeto.
Devido ao alto custo dos meios de comunicação, as técnicas de transmissão podem variar
dependendo da aplicação. Para reduzir o custo de utilização do canal de comunicação, pode-se
agrupar diferentes dados na forma de um pacote a ser transmitido, evitando que a conexão seja
estabelecida a cada dado individual ou que a mesma seja mantida por um longo período.
Esse custo implica o preço da utilização do canal devido às informações adicionais a ser
transferidas no estabelecimento e cancelamento de cada conexão (overhead de comunicação) e,
também, no consumo de energia em sistemas alimentados por baterias. Após ser recebido pelo
controle central, os dados são desempacotados para serem tratados, armazenados e/ou visualizados
(L-3 COMUNICATIONS, 2003).
A telemetria possui algumas classificações que dependem do sistema de comunicação que
ela utiliza, dentre as quais pode-se destacar, a telemetria sem fio, a qual é feita através de ondas de
rádio, ou a telemetria via Internet, que é feita através de inter redes.
A seguir são mostradas algumas características dessas duas técnicas mais utilizadas e
difundidas.
23
3.2.1 Telemetria sem Fio
Pode-se definir a telemetria sem fio como sendo a comunicação entre duas máquinas, uma
de controle e outra de coleta de dados, através de uma rede sem fio, a qual pode ser feita, por
exemplo, com antenas de radiofreqüência (RF) ou via satélite, tendo como principal finalidade o
controle ou monitoramento (DAVE, 2003).
Os sinais utilizados para a transmissão através de ondas de radio podem ser do tipo VHF
(Very High Frequency) ou UHF (Ultra High Frequency). Os sinais VHF possuem uma faixa de
freqüência que varia de 30 até 300 MHz, já os sinais UHF variam até 3 GHz (Mega Hertz).
Na telemetria por ondas de radiofreqüência, para se fazer a transmissão dos dados, é
necessário transformar os sinais digitais que estão no sistema em sinais analógicos, os quais serão
transmitidos pelas ondas eletromagnéticas na freqüência de rádio, e, depois de serem recebidos e
conferidos, são novamente transformados para sinais digitais. Deve-se verificar ainda que, no
processo de transmissão, os dados devem possuir uma certa potência que garanta a sua perfeita
transmissão sem distorção e que o receptor possa interpretá-lo corretamente (EINSFELDT, 2002).
Segundo Dave (2003), o processo de monitoramento das aplicações de telemetria sem fio
funciona através da emissão de um pooling, pelo qual o controle pode enviar um sinal de pooling a
uma base solicitando os dados, ou ainda as bases podem possuir modems que gerem o sinal de
pooling por si só. Esse processo é iniciado quando o controle manda um sinal para a base
perguntando se existe algum dado para ser transmitido. A base, por sua vez, retorna enviando os
dados ou apenas informando que não possui dados para transmitir. Esse processo se repete até todas
as bases serem contatadas e, então, o processo é reiniciado.
3.2.2 Telemetria via Internet
A principal característica da telemetria via Internet é que ela funciona através do protocolo
IP (Internet Protocol) e tem as características de uma aplicação cliente/servidor, na qual a estação
central envia um sinal para a estação de coleta, solicitando que os dados sejam transmitidos. Pode-
se, ainda, ter um sistema em que a estação de coleta transmita os dados automaticamente de tempos
24
em tempos e sempre para uma determinada porta de conexão em um endereço IP previamente
especificado. Porém, para que essa transmissão funcione, tanto a estação de coleta como a estação
central devem estar conectadas a um provedor de acesso á Internet (SRC,2003).
O uso da Internet para fazer a comunicação entre a base e a estação de controle melhora
bastante o desempenho do sistema, como também a qualidade dos dados. Além disso, esse sistema
permite a manipulação de múltiplas sessões baseadas no protocolo IP.
3.3 Características dos Meios de Comunicação
A transmissão de dados através dos meios de comunicação pode ser feita de duas formas:
serial ou paralela. Na primeira, utilizada em grandes distâncias, os dados são transmitidos bit a bit,
enquanto que, na segunda, mais utilizada em distancias curtas, vários bits são transmitidos
simultaneamente através de meios físicos paralelos.
A comunicação pode ainda ser síncrona ou assíncrona. Na comunicação síncrona, existe um
sincronismo entre o emissor e o receptor, sendo que o bloco de dados possui bits de controle no
inicio e no fim do bloco. Mesmo quando não há mensagens, o transmissor envia bits especiais para
manter o sincronismo. Na comunicação assíncrona, o bloco possui alguns bits adicionais, como
start bit e stop bit, os quais indicam o inicio e o fim do bloco, sendo que, com isso, não existe a
necessidade de manter o sincronismo, pois o receptor sabe quando o bloco inicia e termina
(TAFNER.1996).
Outra característica da comunicação entre o emissor e o receptor é quanto ao sentido da
comunicação que pode ser classificada como: (i) simplex, quando a comunicação ocorre em um
único sentido por vez; (ii) half-duplex, quando ela ocorre nos dois sentidos, porém não ao mesmo
tempo; ou (iii) full-duplex, a qual possibilita a transmissão e recepção dos dados ao mesmo tempo
(TAFNER.1996).
3.4 Vantagens da Telemetria sem Fio
A telemetria sem fio possui algumas vantagens que devem ser analisadas. Dentre as
vantagens pode-se citar a operação em uma gama grande de freqüências e sinais diferentes, desde a
25
faixa de sinais de radiofreqüência até os sinais de satélite. Ela também pode ser utilizada em locais
onde não existem linhas de comunicação convencionais e possui uma facilidade de relocação
(DAVE, 2003).
Pode-se citar como um exemplo muito conhecido a telemetria na Fórmula 1, na qual os
equipamentos do carro são monitorados intensivamente. A velocidade de rotação do motor, a
temperatura do motor, os movimentos da suspensão, a velocidade do carro, a força lateral para as
curvas, a tração do motor e outros, são controlados por diversos sensores posicionados no carro e
transmitidos para a central que fica nos boxes da equipe. Essas informações são transmitidas em
tempo real através de pooling por uma antena que fica no carro até os boxes, onde são tratadas e,
dependendo da situação, servem para alterar o desempenho do veiculo (CASCOROSSO,2003).
3.5 Desvantagens da Telemetria sem Fio
Segundo Dave (2003), pode-se citar como desvantagens da telemetria sem fio a necessidade
de uso de repetidores para retransmitir o sinal, devido às irregularidades da superfície que
restringem o alcance do sinal a cerca de 40 quilômetros.
Uma outra desvantagem é a posição da antena, a qual deve evitar os obstáculos que
interferem na transmissão, como os morros, prédios e locais que causem distorção do sinal, como
por exemplo, as redes de alta tensão e os transformadores de energia elétrica. Isso requer o uso de
aparelhos especiais que corrijam essa distorção, porém ocasionando aumento de custos (DAVE,
2003). Existe também a necessidade de desviar o sinal, evitando que ele passe por locais onde possa
interferir no funcionamento de equipamentos de alta periculosidade, como em aeroportos.
3.6 Vantagens da Telemetria via Internet
A telemetria via Internet possui algumas vantagens, dentre as quais pode-se citar o uso do
protocolo IP, o qual é bastante estável e conhecido, podendo prover múltiplas sessões e também a
redundância de conexões em longas distâncias. Além disso, o custo das conexões e a popularização
da Internet facilitam seu uso nas aplicações de telemetria.
26
3.7 Desvantagens da Telemetria via Internet
Uma das principais desvantagens da telemetria via Internet é a dificuldade de relocação. Por
possuir uma conexão fixa é mais difícil de ser mudada de local. Uma outra desvantagem é a
necessidade de uma conexão com um provedor de Internet.
4 TRABALHOS RELACIONADOS
Neste capítulo são analisados quatro trabalhos que utilizaram tecnologia de telemetria para
monitoramento de dados remotos. São identificados os componentes e os meios de comunicação
adotados e o funcionamento desses sistemas. Contudo, nas referências utilizadas nem todas as
informações necessárias estavam disponíveis.
4.1 Sistema para Telemetria de Sinais Biomédicos Usando Telefonia Celular
Este sistema foi desenvolvido por Borges e Leite (2003) do Centro Federal de Educação
Tecnológica da Paraíba (CEFET-PB) e do Núcleo de Estudos e Tecnologia em Engenharia
Biomédica (NETEB/UFPB). O principal objetivo desse sistema é monitorar remotamente e em
tempo real a freqüência cardíaca de indivíduos submetidos a esforços físicos.
O sistema funciona basicamente com uma unidade remota, a qual capta o sinal do
eletrocardiograma, identifica os batimentos cardíacos e envia tons DTMF (Dual Tone Multi
Frequency) para um aparelho celular acoplado ao sistema. Já a estação de recepção, a qual é
baseada em um microcomputador PC (Personal Computer), possui uma interface com a linha
telefônica, um detector de tons DTMF, um circuito de comunicação com a porta paralela do
microcomputador e um software desenvolvido em linguagem C, o qual calcula os tempos
transcorridos entre dois tons recebidos, identificando a freqüência cardíaca do indivíduo. Os dados
da freqüência cardíaca podem ser armazenados em arquivos para análises e tratamento futuros.
Na Figura 8, pode-se observar o diagrama de blocos dos componentes do sistema, o qual
possui uma unidade remota composta por um amplificador de instrumentação, por filtros, uma CPU
baseada em um microcontrolador Intel 80C552, um gerador de tons DTMF e por um circuito que
faz o acoplamento com o aparelho celular. A estação de recepção possui uma interface que recebe
27
os tons DTMF e os transfere para o microcomputador pela porta paralela, essa interface consiste em
circuito de conexão com a linha telefônica, a qual possui detector de chamada em curso e, também,
uma outra interface que faz a comunicação com o computador.
Figura 8 – Esquemático dos componentes do sistema
Fonte: Borges & Leite (2003).
4.2 Construção de um Protótipo para Automatização de Níveis de Flúmens
Esse sistema foi desenvolvido por pesquisadores da FURB (EINSFELDT, 2002) visando ser
uma solução para monitoramento do nível do rio Itajaí-Açu na cidade de Blumenau através da
medição e do comportamento dos flúmens (rios). Em outras palavras, o sistema visa automatizar o
processo de leitura de réguas de medição de nível utilizando conversão de sinais analógico-digitais,
controle baseado em microcontroladores PIC e comunicação via radiofreqüência.
O funcionamento do sistema é representado no diagrama de blocos da Figura 9. O sistema é
composto de um módulo de controle, o qual faz a comunicação com o microcomputador através da
porta serial, um módulo de base, o qual identifica se o pacote recebido esta solicitando uma leitura
28
e, então, ele passa o controle para o módulo de coleta, sendo que esse, faz a leitura do nível através
de potenciômetros deslizantes, converte os sinais de analógico para digital e os repassa ao módulo
de base para serem transmitidos para o modulo de controle, onde os dados são repassados para o
microcomputador.
Figura 9 – Diagrama em blocos dos componentes do sistema
Fonte : Einsfeldt (2002).
Os componentes utilizados na construção do sistema são os microcontroladores PIC
16F84A (para os módulos de controle e de base) e PIC 16F876 (para o módulo de coleta, o qual foi
utilizado porque possui conversor analógico-digital), transistores de RF, cristais de 4MHz, antenas
de celular, reguladores de tensão e um potenciômetro deslizante.
29
4.3 Sistema de Controle Automático para Agricultura Irrigada
O sistema que foi desenvolvido por Torre Neto (1996), pesquisador da Embrapa/CNPDIA,
tem como finalidade fazer o controle da agricultura irrigada através de tensiômetros, os quais são
instrumentos utilizados para medir a quantidade de água disponível no solo. A comunicação se
baseia no uso de rádiofreqüência. Os sensores e atuadores instalados para fazer a monitoração são
interligados em único cabo, formando uma arquitetura de barramento. Como se pode ver na Figura
10, eles são conectados a um dispositivo para transmissão e essas transmissões podem ser feitas via
rádiofreqüência ou através de cabo, dependendo da distância.
Figura 10 – Arquitetura e transmissão de dados
Fonte : Torre Neto (1996).
Os principais componentes do sistema são os tensiômetros, termômetros para solo e sensores
climatológicos (medem velocidade/direção do vento, temperatura e umidade do ar). Na Figura 11, é
mostrado um tensiômetro, o qual possui um transdutor de pressão, o qual converte a sucção em
sinal elétrico analógico e um circuito microcontrolado, o qual converte os sinais analógicos em
digitais, processa e armazena provisoriamente as leituras para serem transmitidas e realiza a
conexão com o barramento.
30
O funcionamento básico consiste em fazer o monitoramento da quantidade de água no solo,
através das informações que são fornecidas pelos sensores instalados no campo, os quais fazem a
coleta e a transformação dos sinais analógicos para digitais, e transmitem essas informações através
do barramento onde estão conectados até o microcomputador PC, onde essas informações são
processadas e analisadas.
Figura 11 – Vista Explodida de um tensiômetro
Fonte: Torre Neto (1996).
Conexão para o barramento
Circuito microcontrolado miniaturizado
Transdutor de pressão
4.4 Telemet – Um Sistema de Telemetria, Controlo e Gestão de Alarmes para
Aplicações Ambientais
O sistema desenvolvido por Landeck et al. (1998) é um sistema integrado de telemetria,
controle e gestão de alarmes capaz de monitorar e gerir remotamente estações de captação de água.
O sistema permite ao usuário analisar as variáveis e interagir com o sistema a fim de garantir um
perfeito funcionamento e controle das estações, bem como o acompanhamento permanente e um
histórico de dados que servem de apoio à manutenção e para a elaboração de relatórios.
A estrutura global do sistema pode ser observada na Figura 12, onde as unidades de gestão
(UG) são responsáveis pela monitoração, configuração das unidades, processamento das
informações coletadas e gestão centralizada das notificações de alarme. As unidades remotas (UR),
31
as quais são instaladas nas estações de tratamento, fazem a aquisição dos dados, controle, gestão de
alarmes e a comunicação com as unidades de gestão. A comunicação entre as unidades de gestão e
remota é feita via modem celular. Os componentes mais específicos do sistema não foram descritos,
pois a literatura disponível não apresenta maiores detalhes.
Figura 12 – Estrutura global do sistema
Fonte : Landeck et al (1998)
4.5 Resumo dos Trabalhos Relacionados
Na Tabela 2 é apresentado um quadro resumo que identifica as características básicas dos
sistemas de telemetria descritos acima. São listadas as instituições nas quais os sistemas foram
desenvolvidos, a aplicação alvo de cada sistema, o microcontrolador utilizado (quando informado
na literatura disponível) e o tipo de comunicação adotada.
Tabela 2 - Quadro resumo dos trabalhos relacionados
Instituição CEFET-PB e UFPB FURB EMBRAPA ISA-PORTUGAL Aplicação Telemetria de
freqüência cardíaca Automatização da Leitura de Níveis de Flúmens
Sistema para Controle de Agricultura Irrigada
Telemetria, controlo e gestão de alarmes para aplicações ambientais
Microcontrolador 80C552 PIC16F8XX Não informado Não informado Comunicação usada pela estação coletora
Telefonia sem fio
Rádio-freqüência Rádio-freqüência e/ou via cabo
Telefonia sem fio
III - DESENVOLVIMENTO
A revisão bibliográfica apresentada na parte anterior foi direcionada ao estudo de sistemas
computacionais embarcados microcontrolados e da aplicação dos mesmos no desenvolvimento de
sistemas de telemetria. O estudo apresentado serviu para o desenvolvimento de uma plataforma para
monitoramento de dados remotos, a qual é baseada em um microcontrolador PIC16F877. A
principal finalidade da plataforma é realizar o monitoramento de dados através de sensores
conectados ao microcontrolador, segundo uma configuração pré-estabelecida. Os dados coletados
são processados e armazenados em uma memória não-volátil para futura transferência por meio da
interface serial, conforme é ilustrado na Figura 13. Nas seções a seguir, é apresentada a descrição da
plataforma implementada.
Figura 13 – Diagrama do sistema desenvolvido
Memória não Volátil
Sensores
PC
RS232
Sensores
Microcontrolador
Resumidamente, o processo de medição é feito por meio de varreduras periódicas com
intervalos da ordem de dezenas de minutos (tipicamente uma hora). Uma vez iniciada uma
varredura, faz-se a amostragem de todos os sensores a uma taxa configurável que expressa o
número de amostras por minuto durante um intervalo pré-definido. Por exemplo, em uma dada
configuração, o sistema “desperta” a cada hora e, durante os 4 minutos seguintes colhe 60 amostras
(taxa = 15 amostras por minuto) de cada sensor. O conjunto de valores medidos é armazenado na
memória não volátil externa, sendo dois bytes para cada valor lido. Uma vez concluída a varredura,
é feito o cálculo da média dos valores medidos para cada sensor e, então, é criado um registro na
memória não volátil contendo apenas o cabeçalho e as médias calculadas.
33
1. MODELAGEM
A metodologia aplicada neste trabalho baseou-se naquela apresentada por Wolf (2002), a
qual foi descrita no Capítulo 1 da revisão bibliográfica. Nesta seção, é apresentada a modelagem da
plataforma desenvolvida, incluindo a análise dos requisitos, a especificação e o projeto arquitetural,
o qual é dividido em duas partes, hardware e software, e o projeto dos componentes. A integração
do sistema é apresentada na seção seguinte (Implementação).
1.1 Análise de requisitos
Os requisitos estabelecidos para este projeto são listados na Figura 14.
Nome do projeto Monitor de dados.
Finalidade do
sistema
Aquisição de dados de sensores analógicos, processamento e transmissão
através de um meio de comunicação para uma estação central baseada em um
computador pessoal
Entradas Sinais adquiridos vindos de sensores analógicos;
Comandos recebidos de uma estação central; e
Botão de Reset do sistema.
Saídas Dados pós-processados transmitidos para uma estação central;
Indicadores luminosos de funcionamento do protótipo (on/off); e
Display de cristal líquido.
Função Adquirir dados de vários sensores, com várias taxas de amostragem, processar
esses dados, armazena-los e transmití-los para uma estação central.
Desempenho Não é tão crítico. O sistema deve ser capaz de adquirir e transmitir dados por
meio de um sistema de comunicação.
Custo O custo aproximado é de R$ 300,00 por unidade.
Consumo O consumo de energia é uma parte crítica quando o sistema é alimentado por
baterias.
Tamanho O projeto deve ser menor que 20 × 20 × 20 centímetros.
Peso O protótipo não deverá ultrapassar dois quilogramas.
Figura 14 – Figura com quadro descritivo dos requisitos do sistema
34
1.2 Especificação
A especificação (mostrada na Figura 15) apresenta um nível maior de detalhamento dos
requisitos levantados anteriormente e define alguns parâmetros de desempenho para a
implementação do sistema.
Finalidade Adquirir dados de sensores instalados remotamente, fazendo um pré-
processamento dos dados, o armazenamento temporário desses dados e a
transmissão dos mesmos para uma estação central.
Entradas Sinais analógicos: estado dos sensores.
Sinais digitais: como dados lidos da EEPROM externa e parâmetros de
configuração recebidos por meio do sistema de comunicação.
Saídas Sinais digitais: dados escritos na EEPROM externa e dados enviados por meio
do sistema de comunicação.
Funções Adquirir dados de sensores analógicos com diferentes taxas de amostragens.
Gravar e ler dados em uma memória não volátil.
Calcular a média dos dados a serem transmitidos.
Permitir alterar a configuração de alguns parâmetros, através de comandos
recebidos da estação central.
Manter um relógio de tempo real, sincronizado com o relógio da estação central.
Utilizar protocolo de comunicação do tipo I²C com dispositivos externos.
Possuir capacidade de armazenar até 32Kbits de dados em memória não-volátil.
Disponibilizar reset, através do botão de reset.
Desempenho O sistema dever possuir uma taxa de amostragem que seja compatível com os
sensores conectados e o meio de comunicação utilizado.
Consumo O consumo de energia enfrenta algumas limitações, sendo que o sistema dever
ter uma autonomia de 3 dias de funcionamento sem necessidade de recarregar as
baterias
Figura 15 – Figura com quadro descritivo da especificação do sistema
35
1.3 Projeto Arquitetural
O projeto arquitetural do sistema é dividido em duas partes, o software e o hardware. Na
Figura 16 é mostrada uma visão geral da plataforma, a qual possui a camada de aplicação, que é o
software desenvolvido diretamente sobre o hardware, não possuindo sistema operacional ou drivers
de dispositivos e a camada do hardware propriamente dito.
Figura 16 – Arquitetura de software e hardware
Hardware
Aplicação (SW)
1.4 Projeto Arquitetural de Hardware
Na Figura 17 é apresentado um maior detalhamento do hardware utilizado na plataforma,
onde tem-se, além da camada de aplicação, o microcontrolador e os periféricos externos, tais como
sensores, display de cristal líquido (LCD), EEPROM serial, relógio de tempo real (RTC - Real Time
Clock) serial e um dispositivo para comunicação serial RS232.
Figura 17 – Diagrama em blocos da arquitetura de hardware
Aplicação (sw)
PIC
RS232 Sensores RTC I²C EEPROM I²C
LCD
Na Figura 18 tem-se um detalhamento do esquema de ligação do microcontrolador com os
periféricos, explicitando o sistema de comunicação utilizado por cada dispositivo. A EEPROM e o
RTC utilizam barramento serial I2C, o display de cristal líquido utilizando um barramento de 8 bits
36
paralelos, os sensores são analógicos, e a comunicação serial é feita com dois fios, sem controle de
fluxo.
Figura 18 – Esquema de ligação do microcontrolador com os periféricos
P I C
Sensores
RS232
RTC I²C
EEPROM I²C
LCD
1.5 Projeto Arquitetural de Software
Na Figura 19 é visualizado o diagrama em blocos da arquitetura de software, a qual é
composta pelos componentes de software como, por exemplo, o gerenciador, o controlador dos
sensores, o controlador do LCD, o controlador da EEPROM, o controlador do timer e o controlador
da RS232.
Figura 19 – Diagrama em blocos da arquitetura de software
Controlador dos Sensores
Controlador LCD
Controlador EEPROM
Controlador Timer
Controlador RS232
Hardware
Gerenciador
37
1.6 Projeto de Componentes
O projeto dos componentes especifica os componentes de hardware e software que foram
utilizados e desenvolvidos durante a implementação do sistema embarcado, sendo esta etapa
dividida em componentes de hardware e componentes de software, como será apresentado a seguir.
1.6.1 Componentes de hardware
Não foi necessário desenvolver nenhum componente de hardware, de modo que utilizou-se
apenas dispositivos comercias, os quais são especificados abaixo:
• Microcontrolador PIC16F877;
• Memória FLASH EEPROM de 32KB;
• Relógio de tempo real da Dallas, modelo DS1302;
• LCD (2x16), duas linhas por dezesseis colunas;
• Potenciômetros que oferecem uma tensão de entrada variável;
• Resistores; e
• Voltímetros digitais, para ler e validar a tensão de leitura.
1.6.2 Componentes de software
O software a ser executado no microcontrolador PIC16F877 foi desenvolvido em linguagem
C, com o uso do compilador PCWH Compiler da CCS.
O PCWH compiler foi desenvolvido para ambiente WINDOWS, possui a capacidade de
transformar a linguagem C para a linguagem de montagem dos microcontroladores PIC. Algumas
das características importantes que justificam o uso desse compilador na implementação de código
para sistemas microcontralados são: (i) eficiência no código gerado, (ii) grande quantidade de
funções e bibliotecas na linguagem C, (iii) grande portabilidade entre os microcontroladores PIC no
código gerado.
38
A seguir, na Figura 20, é ilustrado o desenho do diagrama de contexto do sistema, o qual
traz as entidades externas, como o computador PC, o relógio de tempo real, o display de crystal
líquido e a memória EEPROM externa, os quais irão interagir com o sistema. São visualizados
também os fluxos de dados que interagem entre o processo principal e as entidades.
Figura 20 – Diagrama de contexto do sistema
39
Na Figura 21, é apresentado o diagrama de fluxo de dados do sistema, obtido através da
explosão do diagrama de contexto, onde são apresentados os principais processos do sistema
interligados entre si, juntamente com seus fluxos de dados.
Figura 21 – Nível 0 do diagrama de fluxo de dados
40
No detalhamento do processo eeprom_control, o qual tem a função de manipular a gravação
e a leitura dos dados da memória EEPROM externa, obtém-se o nível 2 do diagrama de fluxo de
dados, conforme apresentado na Figura 22.
Figura 22 – Nível 1 do diagrama de fluxo de dados do processo eeprom_control
41
O diagrama da Figura 23 apresenta o detalhamento do nível 3 do diagrama de fluxo de
dados que se refere ao processo timer_control, o qual tem a função de configurar e consultar o
relógio de tempo real.
Figura 23 – Nível 3 do diagrama de fluxo de dados do processo timer_control
1.6.3 Dicionário de Dados
O dicionário de dados é responsável pelo detalhamento dos fluxos de dados e dos dados
utilizados na modelagem estruturada através do diagrama de contexto. Nesta etapa é visualizada a
composição dos fluxos de dados.
Nome : Data
Tipo : Byte + Byte + Byte
Descrição : * Estrutura que contém a data atual do sistema no formato dd/mm/aa *
42
Nome : Hora
Tipo : Byte + Byte
Descrição : * Estrutura que contém a hora atual do sistema no formato hh/mm *
Nome : valor_leitura_sensor
Tipo : Inteiro de 16 bits
Utilização : *variável que armazena o valor da leitura do sensor *
Nome : periodo_de_amostragem
Tipo : byte
Utilização : *variável que contém o período de amostragem em minutos *
Nome : taxa_de_amostragem
Tipo : byte
Utilização : *variável que contém a taxa de amostragem em amostras por minuto *
Nome : variaveis_por_amostra
Tipo : byte
Utilização : *variável que contém o número de sensores lidos em cada amostra *
Nome : cabeçalho
Tipo : estrutura
Descrição : data + hora + periodo_de_amostragem + taxa_de_amostragem + variaveis_por_amostra
Nome : media
Tipo : float
Utilização : *variável de 32 bits que contém a média das leituras *
Nome : Inf_read_eeprom_ext
Utilização : Gerenciador(s) eeprom_control(e) eeprom externa2(s)
Descrição : Inf_read_eeprom_ext = [media | valor_leitura_sensor]
43
Nome : Inf_wr_eeprom_ext
Utilização : Gerenciador(s) eeprom_control(e) eeprom externa2(e)
Descrição : Inf_wr_eeprom_ext = [media | cabeçalho + valor_leitura_sensor]
Nome : Inf_write_date_time
Utilização : Gerenciador(s) timer_control(e) write_date_time(e)Real_Time2(e)
Descrição : Inf_write_date_time = [Data | Hora]
Nome : Inf_read_date_time
Utilização : Gerenciador(s) timer_control(e) read_date_time(e)Real_Time2(s)
Descrição : Inf_read_date_time= [ Data | Hora]
Nome : Inf_Leitura
Utilização : Gerenciador(s) Pc (e)
Descrição : * Inf_Leitura = media que é transmitida para a estação central *
Nome : Inf_Parametros_Configuração
Utilização : Pc(s) Gerenciador (e) EEPROM_Interna (e)
Descrição : * Parametros de configuração que indicam taxa de amostragem e período em minutos *
Nome : mensagem
Utilização : Gerenciador (s) display_control (s) lcd (e)
Descrição : * mensagen do tipo string enviada para o display*
44
1.6.4 Especificação de Processos
Nas seções anteriores foram apresentados os fluxos de dados entre os processos e o
dicionário de dados. A seguir será especificado o funcionamento de cada processo do sistema.
1.6.4.1 Processo 1.1 : eeprom_control
Este processo é responsável pela leitura dos dados na memória EEPROM externa quando
solicitados pelo modulo de gerenciamento (gerenciador). A leitura dos dados é feita serialmente,
através do barramento I2C. O processo aguarda o endereço da memória a ser lido e invoca a função
que faz a leitura do dado naquele endereço.
Este processo é acionado principalmente para fazer a leitura das amostras e da média que
estão armazenadas na memória.
O algoritmo do processo funciona da seguinte forma:
1. Recebe o endereço a ser lido;
2. Ativa a comunicação I²C;
3. Envia os primeiros 8 bits do endereço a ser lido;
4. Envia os 8 bits restantes do endereço;
5. Faz a leitura do dado; e
6. Finaliza a comunicação I²C.
1.6.4.2 Processo 1.2 : write_eeprom_ext
Este processo é responsável pela gravação dos dados recebidos do modulo gerenciador na
EEPROM externa. O processo recebe o endereço de 16 bits e o dado de 8 bits para iniciar a
gravação. Após os dados são gravados serialmente, bit a bit, através do barramento I²C.
O processo é acionado para gravar inicialmente o cabeçalho da varredura e após as
respectivas amostras de cada sensor.
45
O algoritmo de funcionamento do processo opera como a seguir:
1. Recebe o endereço de 16 bits;
2. Ativa a comunicação I²C;
3. Envia os 8 primeiros bits do endereço;
4. Envia os 8 bits restantes;
5. Envia o dado de 8 bits; e
6. Finaliza comunicação I²C.
1.6.4.3 Processo 3.1 : read_date_time
Este processo faz a leitura da data e hora de um relógio de tempo real da Dallas modelo
DS1302, através de comunicação serial utilizando barramento I²C. A leitura é feita na respectiva
posição de memória de cada valor.
O processo é acionado para ler o ano, o mês, o dia, a hora e o minuto, os quais são utilizados
para preencher o cabeçalho de cada varredura dos sensores.
O processo funciona com um algoritmo conforme a seguir:
1. Recebe o endereço de leitura (depende do modelo do relógio);
2. Ativa o reset do dispositivo;
3. Envia o endereço de leitura serialmente via I²C;
4. Faz a leitura do valor (pode ser na subida ou descida do clock, dependo do modelo);
5. Desativa o reset do dispositivo encerrando a comunicação I²C; e
6. Devolve o valor lido ao processo que solicitou.
1.6.4.4 Processo 3.2 : write_date_time
Processo responsável pela inicialização e atualização da data e hora do relógio de tempo real
do sistema, o qual possui informação de ano, mês, dia, hora, minuto e segundos, sendo que cada
valor é gravado em um endereço de memória diferente no dispositivo. A inicialização é feita
serialmente através de barramento I²C e os dados de inicialização, data e hora, são fornecidos pelo
processo gerenciador. O processo aceita ainda a inicialização de todos os valores do relógio
46
simultaneamente ou de um determinado valor específico. O algoritmo de funcionamento do
processo é baseado no esquema a seguir:
1. O processo recebe os valores de inicialização;
2. Ativa o reset do dispositivo;
3. Envia o endereço de memória para gravação serialmente pelo barramento I²C;
4. Envia o valor a ser gravado serialmente pelo barramento I²C; e
5. Desativa o reset do dispositivo encerrando a comunicação.
1.6.4.5 Processo 5 : display_control
Processo responsável pelo envio de mensagens de caracteres para o display. Os caracteres
recebidos do processo gerenciador já devem estar em formato ASCII e são enviados serialmente
para o display de cristal líquido. O processo display_control funciona da seguinte forma
1. Na inicialização do programa o display é inicializado, ligado e o cursor ativado para
piscar, este processo ocorre através do envio de comandos específicos para o display; e
2. O envio dos caracteres é feito ativando os pinos de controle do display e enviando os
dados paralelamente no port especificado.
1.6.4.6 Processo 4 : sensors_control
Neste processo é feita a ativação do canal ao qual se deseja fazer a leitura. Após a ativação o
processo aguarda a conversão do valor e envia os dados para o processo gerenciador para serem
armazenados. O algoritmo do processo pode ser descrito como a seguir:
1. O processo recebe o número do canal ao qual deve ser feita a conversão de dados;
2. O canal solicitado é ativado;
3. Aguarda a conversão do valor; e
4. Retorna o valor ao processo gerenciador.
47
2 IMPLEMENTAÇÃO
O sistema embarcado foi desenvolvido utilizando um microcontrolador PIC16F877
interligado a três potenciômetros analógicos e um gerador de sinal senoidal, os quais representam os
sensores; um relógio de tempo real (Dallas modelo DS1302), o qual utiliza comunicação serial I²C;
uma memória EEPROM externa (do tipo FM24C256), a qual também utiliza comunicação serial
I²C; um componente MAX232, o qual faz a comunicação serial RS232; e um display de cristal
líquido que possui duas linhas e dezesseis colunas com interface paralela. Abaixo, na Figura 24, é
visualizado o esquema de ligação física do hardware da plataforma, no qual U1 é o
microcontrolador, U3 é a memória EEPROM e U4 é o relógio de tempo real.
Figura 24 – Esquema de ligação física do hardware da plataforma no PROTEUS
48
O software do projeto foi desenvolvido usando-se o compilador C PCWH (versão 3.182) da
CCS®. Para a implementação do esquema de hardware, teste e validação da plataforma projetada,
foi utilizada uma ferramenta chamada PROTEUS/ISIS 6.3®, a qual faz simulação de circuitos e
componentes eletro-eletrônicos.
Utilizando a ferramenta PROTEUS/ISIS 6.3®, pode-se observar, na Figura 25, a conexão
dos potenciômetros e do gerador de sinal, os quais estão ligados nos pinos AN0, AN1, AN2 e AN3
do microcontrolador.
Figura 25 – Esquema de ligação dos sensores no microcontrolador
A leitura e a conversão dos valores é executada pelo PortA do microcontrolador, sendo que
o conversor AD utiliza 10 bits. Para isso foi implementada uma função que ativa esse Port,
selecionando o canal ao qual se deseja fazer a leitura. Uma função de uma biblioteca disponível
com o compilador (read_adc) efetua a conversão analógico-digital e, após, é feito um pré-
processamento dos dados para calcular o valor da tensão elétrica medida. Esse cálculo é efetuado a
fim de converter o valor do AD em um valor inteiro de dois bytes para o armazenamento na
EEPROM. A função de leitura é visualizada a seguir na Figura 26.
49
int16 read_sensors(byte canal) { int16 val16,valor; set_adc_channel(canal); // escolhe o canal de leitura valor = read_adc(); // efetua a conversão A/D delay_ms(20); if (valor) valor += 1; val16 = (valor * 4) + ((int32)valor * 113)/128; return (val16); } Figura 26 – Código da função que efetua a leitura dos sensores
Na Figura 27 são ilustradas duas funções importantes na comunicação serial através do
barramento I2C. Na Figura 27.a, tem-se a função de inicialização (start) da comunicação, na qual os
pinos de clock (scl) e dados (sda) são ativados e desativados em uma seqüência pré-definida. Na
Figura 27.b, tem-se a função de fim (stop) da comunicação, na qual os pinos de clock e dado
também são ativados e desativados para encerrar a comunicação.
void I2C_start (void) { output_low(scl); output_high(sda); output_high(scl); output_low(sda); output_low(scl); }
void I2C_stopx (void) { output_low(scl); output_low(das); output_high(scl); output_high(sda); }
(a) (b) Figura 27 – Função de inicialização da comunicação I2C (a); função de fim da comunicação I2C (b)
A memória EEPROM externa FM24C256 utiliza o barramento serial I2C para a
comunicação e está conectada aos pinos RC1 e RC2 do microcontrolador. O acesso às memórias,
externa ou interna, é feito byte a byte. Na Figura 28, tem-se um trecho do código da função de
gravação na EEPROM externa, a qual foi explicada anteriormente na especificação dos processos.
50
No código, ao lado de cada chamada, existe um comentário que explica a ação realizada.
void write_eeprom_ext(int16 address, int data) { short int status; i2c_start(); i2c_write(0xa0); // endereça dispositivo 0 i2c_write(address>>8); // primeiros 8 bits do endereço i2c_write(address); // oito bits restantes do endereço i2c_write(data); // dado a ser gravado i2c_stop(); // para a transmissão // (...) Figura 28 – Trecho de código da função de gravação na EEPROM externa
O display de cristal líquido é conectado nos Ports B e D do microcontrolador, utilizando 8
pinos de dados (RB[7.. 0]) e 3 pinos de controle (RD[2..0]), como mostra a Figura 29.a. Na
Figura 29.b, tem-se o código da rotina de escrita no display, onde os pinos de controle (lcd_rs,
lcd_rw e lcd_e) são acionados em uma seqüência pré-estabelecida, enquanto o dado a ser impresso
é colocado no Port B.
(a)
void Lcd_write(dado) { output_high(lcd_rs);// ativa lcd_rs output_low(lcd_rw); // desativa lcd_rw output_high(lcd_e); // ativa lcd_e output_b(dado); // envia dado output_low(lcd_e); // desativa lcd_e }
(b)
Figura 29 – Display de cristal líquido (a); código da função para imprimir no display (b)
O relógio de tempo real (RTC) utilizado na plataforma foi o DS1302 da Dallas, o qual
utiliza comunicação serial I²C e mantém informações de ano, mês, dia, hora, minuto e segundo
(além do dia da semana). As informações do relógio são armazenadas em posições de memória pré-
definidas conforme o modelo do dispositivo utilizado. Na Figura 30, é visualizada a rotina de
inicialização da data e da hora no dispositivo.
51
void rtc_set_datetime(byte dia, byte mes, byte ano, byte hora, byte min) { write_ds1302(0x86,dia); // escreve o dia write_ds1302(0x88,mes); // escreve o mes write_ds1302(0x8c,ano); // escreve o ano write_ds1302(0x84,hora); // escreve a hora write_ds1302(0x82,min); // escreve os minutos write_ds1302(0x80,0); // escreve os segundos } Figura 30 – Código da funçõe de gravação da data e da hora
A comunicação RS232 utilizada foi implementada conforme é mostrado abaixo. A função
de transmissão, visualizada na Figura 31, faz a transmissão dos dados utilizando o bit TRMT do
registrador de transmissão (TXSTA) do microcontrolador. Na função de recepção, mostrada na
Figura 32, utiliza-se o bit RX9D do registrador de recepção (RCSTA) do microcontrolador,
representado no código pela variável flag_rc.
void usart_transmite (char dado) { while (!txsta.trmt); // aguarda o buffer de transmissão esvaziar txreg = dado; // coloca novo caractere para transmissão } Figura 31 – Trecho de código da função transmite dados
char usart_recebe (void) { while (!flag_rc); // aguarda a recepção de caracteres return rxreg; // retorna o caractere recebido } Figura 32 – Trecho de código da função de recepção de dados
2.1 Integração e Validação do Sistema
A integração do sistema foi feita gradativamente na medida em que os componentes eram
desenvolvidos, até chegar ao sistema completo. A validação seguiu o mesmo procedimento, visando
identificar eventuais erros já na fase de implementação de cada componente. Para a integração e
validação dos módulos do sistema foi utilizada a ferramenta de simulação PROTEUS/ISIS, como
será mostrado, a seguir.
52
2.1.1 Função read_sensors
A função que efetua a leitura dos sensores foi validada conforme ilustrado a seguir. Na
Figura 31.a, o voltímetro mostra qual é a tensão aplicada ao pino AN0 do microcontrolador. Esse
valor foi convertido para o formato digital e armazenado em uma variável inteira de 16 bits, pois o
ADC é de 10 bits. Após, é feito o cálculo da tensão medida a qual é mostrado no display de cristal
líquido, como pode-se observar na Figura 31.b.
(a) (b)
Figura 31 – Validação da função read_sensors: (a) valor da tensão medida; (b) visualização no LCD
2.1.2 Funções write_eeprom_ext e read_eeprom_ext
As funções de gravação e leitura de dados na EEPROM externa foram testadas e validadas
pela gravação de dados em endereços da memória e leituras sucessivas, com a comparação entre os
dados enviados e recebidos. Pode-se visualizar melhor a validação dessas funções através da
ferramenta de simulação, como é detalhado a seguir. Na Figura 32.a, tem-se a memória vazia, onde
todas as posições marcam 0xFF (255 em hexadecimal). Já na Figura 32.b, pode-se observar os
dados gravados em bytes, sendo os dois primeiros bytes o valor da leitura do sensor ilustrada
anteriormente (Figura 31), onde tem-se 0x0F e 0x9F, o que corresponde a 3.999 Volts.
53
(a) (b)
Figura 32 – Memória EEPROM vazia (a); Memória EEPROM com valor gravado(b)
2.1.3 Função set_date_time
A função responsável pela atualização da data e hora do relógio de tempo real também foi
validada fazendo-se as gravações nos endereços correspondentes de cada valor e constatando a
gravação através da leitura desses valores. Esta função também pôde ser validada através da
visualização na ferramenta de simulação, conforme é ilustrado na Figura 33.
Na Figura 33.a tem-se o relógio de tempo real zerado, e na Figura 33.b mostra-se a sua
visualização após ele ter sido atualizado com o horário 09:15:00 e a data 01-10-02.
(a) (b)
Figura 33 – Relógio de tempo real zerado (a); Relógio de tempo real inicializado (b)
2.2 Validação do Sistema Integrado
Nesta seção será apresentado o funcionamento da plataforma durante uma varredura de
dados, feito com o uso da ferramenta de simulação PROTEUS. Um exemplo simplificado de uma
54
varredura consiste em ler os quatro sensores (ou seja, quatro variáveis) representados por três
potenciômetros e um gerador de sinal ligados ao microcontrolador, com uma taxa de amostragem
de 5 amostras por minuto, durante um período de varredura de 1 minuto.
A amostra é realizada através da leitura de cada sensor, iniciando pelo sensor ligado ao pino
AN0 até o pino AN3. Os valores dos sensores são armazenados na EEPROM externa e ocupam dois
bytes de memória cada um. Após a leitura dos sensores, é calculada a média de cada sensor e essa
média é gravada na EEPROM externa precedida por um cabeçalho composto por ano, mês, dia ,
hora, minuto e a configuração da varredura (taxa de amostragem, número de variáveis e período de
varredura). Nas figuras a seguir, através do fluxograma do sistema, pode-se observar a seqüência do
processo utilizado para a realização da varredura.
(a) (b) Figura 34 – Fluxograma de funcionamento do sistema
F
V
2
Flag = 1
1
Timer = tempo entre varreduras
Começa varredura, lendo RTC e inicializando o cabeçalho com
parâmetros de configuração, data e horário da varredura
1
Calcula tempo entre amostras e número de amostras
Configura Timer0
Configura Conversor AD
Aguarda parâmetros de configuração
Inicializa dispositivos
Inicio
Na Figura 34.a, no início do processo da varredura, primeiramente são inicializados os
dispositivos externos, tais como: relógio de tempo real, função de comunicação RS232 e display de
55
cristal líquido. Após, o sistema aguarda a recepção dos parâmetros de configuração (num_sensores
e taxa_amostragem), configura os ports do conversor A/D, o timer0 e calcula o tempo entre
amostras e o número de amostras. Continuando, conforme é mostrado na Figura 34.b, o sistema
aguarda o tempo estabelecido entre as varreduras, o que é determinado quando a rotina de
atendimento da interrupção do timer ativa o flag (= 1). Após, é disparada a varredura fazendo a
inicialização do cabeçalho com a data e o horário obtidos através da leitura do relógio de tempo real
e com os parâmetros de configuração da varredura.
Na Figura 35, tem-se a continuação do fluxograma, no qual o sistema começa configura o
timer e fica aguardando o tempo entre as amostras. Após, faz as leituras dos sensores e armazena as
leituras na EEPROM externa. Então, calcula as médias dos sensores e o endereço de gravação da
varredura; grava o cabeçalho e as médias na EEPROM externa; transmite as médias através da
RS232; e retorna ao ponto 1 onde aguarda novamente o tempo para iniciar uma nova varredura.
Figura 35 – Fluxograma de funcionamento do sistema (continuação)
F
Timer = tempo entre mostras Flag = 0
V
Flag = 1
V
F
1
Transmite as médias via RS232
Grava cabeçalho e as médias
Calcula endereço de gravação da varredura
Calcula média das amostras
Conta_amostra <
num_amostra
Grava amostras na EEPROM
Faz leitura dos sensores
2
56
Abaixo, na Figura 36, tem-se a visualização da plataforma completa com os três
potenciômetros e o gerador de sinal, a memória, o relógio de tempo real, o circuito MAX232 e um
LCD conectado ao microcontrolador U1, os quais representam a plataforma de coleta dos dados. O
microcontrolador U6, o qual representa a estação central, possui um display de cristal liquido e um
componente MAX232 que é responsável pela comunicação serial.
Figura 36 – Plataforma completa realizando uma amostra
57
A configuração da varredura pode ser visualizada na ferramenta de simulação conforme é
ilustrada a seguir na Figura 37. A varredura foi configurada com uma taxa de 5 amostras por
minuto, durante um período de um minuto e com quatro variáveis.
Figura 37 – Configuração da varredura dos sensores no PROTEUS
Na Figura 38, visualizada abaixo, tem-se o conteúdo da EEPROM externa preenchida com o
cabeçalho e a leitura dos sensores. A primeira linha (0000) possui oito bytes que contém o
cabeçalho da varredura (nesta ordem: ano, mês, dia, hora, minuto, período, taxa e número de
variáveis, ou sensores). Cada uma das cinco linhas sucessivas (0008 a 0028) corresponde a uma
amostra com os valores medidos para os quatro sensores (dois bytes por sensor).
Figura 38 – Memória EEPROM com amostras armazenadas
58
Na Tabela 3, abaixo, pode-se visualizar o padrão utilizado para o armazenamento das
amostras de cada sensor, onde é apresentado o valor em hexadecimal, o valor em decimal e o valor
corresponde para o sistema.
Tabela 3 - Padrão de valores armazenados na EEPROM
Valor armazenado Valor em Decimal Valor para o sistema (volts) 03ED 1000 1.00 09C4 2500 2.50 0BBA 3000 3.00 1195 4500 4.50
Nas figuras a seguir, tem-se o teste da comunicação serial via RS232, o qual foi realizado
fazendo-se a comunicação entre dois microcontroladores. Na Figura 39, representa-se um circuito
com os dois microcontroladores (U2 e U4) interligados por meio da uma interface serial. Esse
circuito foi modelado no PROTEUS e utilizado para validar a rotina de comunicação via RS232.
Figura 39 – Validação da comunicação serial
59
Na Figura 40.a tem-se que a leitura do sensor conectado ao pino AN0 do microcontrolador
U2 é gravada na memória interna do mesmo. Já na Figura 40.b, é visualizada a gravação da mesma
leitura na memória interna do microcontrolador U4, após a recepção pela porta serial.
(a)
(b)
Figura 40 – Memórias internas: (a) do microcontorlador U2; (b) do microcontrolador U4
IV - CONCLUSÕES
A área de sistemas embarcados para monitoramento de dados remotos ainda é uma área em
desenvolvimento e bastante promissora.
Durante o desenvolvimento do trabalho proposto foram consolidados conhecimentos na área
de sistemas computacionais embarcados, como, por exemplo, microcontroladores, telemetria,
protocolos de comunicação entre dispositivos, metodologias de projeto, aplicações e tecnologias de
sistemas embarcados, assim como o funcionamento de diversos componentes eletrônicos.
O objetivo deste trabalho foi desenvolver uma plataforma de sistema embarcado para
monitoramento de dados remotos, pré-processamento desses dados, transmissão desses dados por
um meio de comunicação e recepção em uma estação central baseada em um computador PC.
Após os estudos, desenvolvimento, testes e validação do sistema, e, de acordo com os
resultados obtidos, foram alcançados os seguintes objetivos (conforme texto apresentado na
introdução):
1. Estudar conceitos e metodologias associadas ao projeto de sistemas computacionais
embarcados, com vistas ao desenvolvimento do sistema proposto.
2. Aprender alternativas de arquiteturas de microcontroladores de 8 bits para o
desenvolvimento do sistema.
3. Estudar aspectos associados à telemetria, de modo a identificar alternativas de
tecnologias de transmissão de dados possíveis de serem utilizadas nesse sistema.
4. Realizar uma revisão sobre trabalhos relacionados de modo a identificar as escolhas
efetuadas nos sistemas estudados.
5. Realizar a seleção das alternativas tecnológicas a serem utilizadas no sistema.
6. Efetuar a modelagem do sistema.
7. Efetuar a implementação do projeto.
8. Validação e testes do sistema através de uma ferramenta de simulação.
61
Entretanto, até o momento da redação deste texto para a submissão à banca, a validação do
sistema completo foi limitada ao uso da ferramenta Proteus, embora os seus componentes tenham
sido testados, individualmente em um kit de prototipação de microcontrolador.
Durante a execução do trabalho ocorreram algumas dificuldades relacionadas
principalmente ao protótipo de hardware, a seguir são listadas as principais dificuldades:
• Apreender uma nova linguagem de programação;
• Falta de experiência na área de sistemas embarcados;
• Falta de alguns componentes físicos para os testes;
• Compreender o funcionamento dos microcontroladores;
• Compreender o processo de comunicação do microcontrolador com os periféricos através
dos diversos modos de comunicação, tais como RS232, I²C.
Após a disponibilização de um kit de prototipação baseado no PIC16F877, foi possível
realizar a validação de alguns dos componentes de software, porém, conforme já comentado, resta
efetuar a validação física do sistema completo.
Como continuidade deste projeto sugere-se o desenvolvimento dos seguintes trabalhos:
• Implementar o protocolo para comunicação via modem;
• Implementar rotina de configuração remota da plataforma.
• desenvolver um sistema de comunicação para a estação central que comunique-se com o
microcontrolador disponibilize os dados recebidos de maneira automática ao usuário.
BIBLIOGRAFIA
KIT DIDÁTICO 8051. Disponível em <http://www.aldevan.com.br/kit8051m/>. Acesso em: 20
out. 2003.
ANIDO, M. L. Sistemas embutidos. Disponível em:
<http://labase.nce.ufrj.br/sistemas_embutidos/> Acesso em: 22 set. 2003.
BERG, B.V.; Groppe, P. Controle remoto por telefone celular, Revista Eletrônica &
Microinformática, São Paulo, n.11, p.7-11, fev. 2003.
BORGES , F. F. Sistema para telemetria de sinais biomédicos usando telefonia celular.
Disponível em: <http://bioinfo.cpgei.cefetpr.br/anais/sabi2001/trablargo/041lborges.pdf>. Acesso
em: 18 de ago. de 2003.
CASCOROSSO. Telemetria. Disponível em <http://www.f1info.it/telemetria.htm>. Acesso em: 02
de nov. 2003.
DAVE, V. The third eye of the water supply manager – radio telemetry. Disponível em:
<http://home.123india.com/vasantdave/EYENOPIC.hmt>. Acesso em: 29 out. 2003.
DEMARCO, Tom. Análise Estruturada e Especificação de Sistema. 3.ed., Rio de Janeiro:
Campus, 1989.
DIAS, A. F. Concepção conjunta hardware/software de sistemas embarcados de processamento de
imagens, In: WORKSHOP EM TRATAMENTO DE IMAGENS NPDI/DCC/UFMG, 2001, Belo
Horizonte. Anais... Belo Horizonte: UFMG, 2001.
EINSFELDT, G.J. Construção de um protótipo para automatização da leitura de niveis de
flúmens, 2002. 79f. Monografia (Bacharelado em Ciência da Computação)–Faculdade Regional de
Blumenau, Blumenau, 2002.
63
INTEL. MCS microcontroller family user´s manual. Disponível em:
<http://www.intel.com/design/MCS51/MANUALS/27238302.pdf. Acesso em: 20 out. 2003.
L-3 COMUNICATIONS TELEMETRY & INSTRUMENTATION. Telemetry Tutorial.
Disponível em: <http://www.ti.l-3com.com/tutorial/preface.html > . Acesso em: 20 de nov. 2003.
MARINHO, J. E. S.; Marinho, E. S. Mini-curso de microcontrolador, Saber Eletrônica, São Paulo,
n.2, fev. 2001.
MATIC, N. Microcontroladores PIC on-line. Belgrado : MikroElektronica, 2003. Disponível em:
<http://www.mikroelektronika.co.yu/portuguese/product/books/picbook/00.htm>. Acesso em: 27
out. 2003.
MICROCHIP. FLASH-based 8-bits CMOS microcontroller. Arizona, 2003. 161 p.
MIRI, ENGINEERING WEBSITE. What does this word Telemetry mean? 2003. Disponível
em: <http://www.miri.com.au/other_telemetry.htm>. Acesso em: 18 ago. 2003.
MORAES, F.G. et al, Um ambiente de compilação e simulação para processadores embarcados
parametrizáveis. Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS). Faculdade de
Informática. Porto Alegre. Disponível em < http://www.iberchip.org/VII/cdnav/pdf/52.pdf>. Acesso
em: 25 set. 2003.
OYAMADA, M. S.; WAGNER, F. R. Co-simulação de sistemas eletrônicos embarcados. In:
SEMANA ACADÊMICA DO PPGC, 4.,1999, Porto Alegre. Anais... Porto Alegre: PPGC da
UFRGS, 1999. p.347-350.
RISNIK,D.M. Two-wire Bus. Disponível em: <http://www.geocities.com/SiliconValley/Program/
3430/i2c.htm>. Acesso em: 16 dez. 2003.
SOUZA, D.J. Desbravando o PIC. 1.ed., São Paulo: Érica, 2000.
64
SRC- SEIMOLOGY RESEARCH CENTRE. Technical Notes: Internet Telemetry. Disponível em:
<http://www.seis.com.au/TechNotes/Tn200302B_Inet_Telem.html>. Acesso em: 20 nov. 2003.
TORRE NETO, A. Recomendações técnicas sobre sistemas de controle automáticos para
agricultura irrigada. Disponível em: <http://www.cnpdia.embrapa.br/informativos/RT05_96.pdf>.
Acesso em: 21 set. 2003.
TAFNER, M.; STRINGARI, S.; LOESCH, C. Comunicação de dados utilizando a linguagem C.
Blumenau: FURB, 1996. 90 p.
What is telemetry? Disponível em: http://www.in4ma.co.uk/faq/telemetry.html>. Acesso em: 23
out. 2003.
WOLF, W. What is embedded computing?. IEEE Computer, [S.l.], v.35, n.1, p.136-137, jan.
2002.
WOLF,W. Computer as components: principles of embedded computing system design. [S.l.]:
Morgan Kaufmann Publishers. 2001. 663p.
ZELENOVSKY, R.; MENDONÇA, A.; Introdução aos sistemas embutidos. Disponível em:
<http://www.mzeditora.com.br/artigos/embut.htm>. Acesso em: 22 set. 2003.