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
78
Embed
UNIVERSIDADE DO VALE DO ITAJAI CENTRO DE …siaibib01.univali.br/pdf/Carlos Cimolin.pdf · IV - CONCLUSÕES ... Figura 8 – Esquemático dos componentes do sistema ... sistema computacional
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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.
(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
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