Universidade de São Paulo - USP · Este é um “Application Kit” bastante interessante, pois...
Transcript of Universidade de São Paulo - USP · Este é um “Application Kit” bastante interessante, pois...
Universidade de São Paulo Escola de Engenharia de São Carlos
Departamento de Engenharia Elétrica
Plano de Trabalho – SEL0626 - Projeto de Formatura II Jen John Lee
Monitoração remota via IP de
sensores industriais
Trabalho de Conclusão de Curso
apresentado à Escola de Engenharia de
São Carlos, da Universidade de São Paulo
Curso de Engenharia de Computação com
ênfase em Sistemas Embarcados
ORIENTADOR: Professor Doutor Carlos Dias Maciel
São Carlos
2007
1
SUMÁRIO
RESUMO ................................................................................................................................ 3
ABSTRACT ............................................................................................................................ 4
1. INTRODUÇÃO .............................................................................................................. 5
1.1. ORGANIZAÇÃO DA MONOGRAFIA ............................................................................ 5
1.2. MOTIVAÇÃO ................................................................................................................... 5
1.3. OBJETIVO ......................................................................................................................... 6
1.4. MATERIAIS E MÉTODOS .............................................................................................. 7
1.4.1. Resumo dos métodos ...................................................................................... 7
1.4.2. RCM 3000 ....................................................................................................... 7
1.4.3. DynamiC ......................................................................................................... 8
1.4.4. ADC0809 ...................................................................................................... 10
1.4.5. Protel e CircuitCAM ..................................................................................... 12
1.4.6. JAVA ............................................................................................................ 13
2. FUNDAMENTOS TEÓRICOS .................................................................................... 15
2.1. SENSORES INDUSTRIAIS ............................................................................................ 15
2.1.1. SENSORES ANALÓGICOS ....................................................................... 15
2.2. COMUNICAÇÃO ETHERNET E O IP .......................................................................... 18
2.3. CONVERSORES ANALÓGICOS DIGITAIS ................................................................ 19
3. MÉTODOS E IMPLEMENTAÇÕES .......................................................................... 21
3.1. PROJETO ......................................................................................................................... 21
3.1. DESCRIÇÃO DAS ATIVIDADES REALIZADAS ....................................................... 23
3.1.1. Concepção inicial do hardware ..................................................................... 23
3.1.2. Estudo e análise dos componentes eletrônicos utilizados ............................. 24
3.1.3. Software embarcado ..................................................................................... 26
3.1.1. Placa de circuito impresso ............................................................................ 28
4. RESULTADOS ............................................................................................................ 30
4.1. DIFICULDADES, LIMITAÇÕES E DECISÕES ........................................................... 32
5. CONCLUSÃO .............................................................................................................. 33
6. BIBLIOGRAFIA .......................................................................................................... 34
2
LISTA DE FIGURAS
Figura 1 - DataQ: DI-710-EH ................................................................................................. 5
Figura 2 - Dickson Data Logger com 2 sensores .................................................................... 6
Figura 3 - RCM3000 ............................................................................................................... 8
Figura 4 - Ambiente de desenvolvimento DynamicC............................................................. 9
Figura 5 - ADC0809CCN ..................................................................................................... 10
Figura 6 - Diagrama de pinos do ADC0809 ......................................................................... 11
Figura 7 - Diagrama de temporização da operação do ADC0809 ........................................ 11
Figura 8 - Interface Protel ..................................................................................................... 12
Figura 9 - Interface CircuitCAM 5.0 .................................................................................... 13
Figura 10 - Strain Gage em configuração Zig-Zag ............................................................... 17
Figura 11 - Sensor de pressão do tipo Strain-gage ............................................................... 17
Figura 12 - Esquema geral do projeto ................................................................................... 21
Figura 13 - Formato dos dados proveniente do Módulo de Aquisição em conexão Telnet . 22
Figura 14 - Interface de aquisição e gravação no terminal cliente ....................................... 23
Figura 15 - Esquemático final do projeto ............................................................................. 25
Figura 16 - Montagem em Protoboard .................................................................................. 25
Figura 17 - layout da placa de face dupla desenvolvida ....................................................... 28
Figura 18 - Placas projetadas em Protel ................................................................................ 29
Figura 19 - Perspectiva da montagem final da placa sem o CI de AD ................................. 29
Figura 20 - Gráfico da tabela obtida ..................................................................................... 32
LISTA DE TABELAS
Tabela 1 - Limite de erro de termopares de acordo com a ASTM E-230 ............................ 16
Tabela 2 - Pinagem entre A/D e Módulo Microcontrolador ................................................ 24
Tabela 3 - Configuração das portas do RCM3000 .............................................................. 26
Tabela 4 - Multiplexação das 8 entradas do AD .................................................................. 27
Tabela 5 - Formatação dos dados para envio ....................................................................... 27
Tabela 6 - Instruções na interrupção do timerB para comparação do contador................... 28
Tabela 7 - Arquivo de "log" gravado durante testes ............................................................ 32
Tabela 8 - BOM ................................................................................................................... 32
3
Resumo do Projeto de Formatura apresentado à EESC-USP como parte dos requisitos necessários
para a obtenção da conclusão do curso de Engenharia de Computação.
Monitoração remota via IP de sensores industriais
Jen John Lee
12 / 2007
Orientador: Prof. Dr. Carlos Dias Maciel
Área de Concentração: Engenharia Elétrica
Palavras-chave: A/D, Rabbit, DataLogger, Comunicação Ethernet, Dynamic C, Java.
RESUMO
Grande parte das variáveis presentes em um ambiente industrial podem ser convertidas em
sinais elétricos, o que torna possível seu tratamento em meio computacional. Isto, aliado ao advento
das tecnologias de transmissão de dados, permite que estas variáveis sejam analisadas,
acompanhadas e registradas de forma precisa e eficiente.
Ao imaginar um processo industrial simples, não é difícil identificar o uso de sensores como
temperatura, velocidade e pressão, entre outros. Dentre as benesses resultantes deste monitoramento
citam-se: aumento da eficiência do processo, redução de desperdícios, redução de acidentes e
aumento da vida útil dos equipamentos, tudo isto culminando na diminuição do custo global do
processo.
Este trabalho envolve o desenvolvimento de um hardware com software embarcado, para
aquisição e transmissão via IP de dados de sensores analógicos, bem como um ambiente amigável
para visualização destes.
4
Abstract of Graduation Project presented to EESC-USP as a partial fulfillment of the requirements
to conclude the Computer Engineering course.
Remote Monitoration of Industrial Sensors through IP
Jen John Lee
12 / 2007
Advisor: Dr. Carlos Dias Maciel
Concentration Area: Electrical Engineering
Keywords: A/D, Rabbit, DataLogger, Ethernet Communication, Dynamic C, Java.
ABSTRACT
Many of the variables present in an industrial facility can be converted to electrical signals,
so it is possible to manipulate this data through computer power. This fact and the rise of new and
cheaper data transmission technologies, allow us to analyse, register and monitor these data in a
precise and efficient way.
While imagining a simple industrial process, it is easy to identify the use of sensors to
monitor temperature, velocity and pressure. Some of the benefits of this monitoring are: more
efficiency of processes, less wastage of materials, reduction of accidents and the improvement of
equipments lifetime culminating in a global cost reduction of the process.
This work intends to develop hardware with embedded software for acquisition and
transmission through IP of data from analog sensors and a user friendly interface for their
visualization.
5
1. INTRODUÇÃO
1.1. ORGANIZAÇÃO DA MONOGRAFIA
Neste primeiro capítulo introdutório são apresentadas as motivações para o desenvolvimento do
trabalho, o seu objetivo e os materiais e métodos envolvidos na sua construção. O segundo capítulo
apresenta uma explicação dos conceitos teóricos envolvidos no projeto. No terceiro capítulo são
descritos o estado atual do projeto, as atividades realizadas durante o desenvolvimento. Já no quarto
capítulo são apresentados os resultados obtidos durante os testes efetuados com o intuito de validar
o trabalho, além das dificuldades e limitações e as decisões para contorná-las no decorrer do
mesmo. No quinto capítulo é feita uma conclusão, apresentadas as considerações finais, bem como
as possíveis melhorias do projeto. Finalmente, no sexto e último capítulo são apresentadas as obras
bibliográficas consultadas para a realização do projeto.
1.2. MOTIVAÇÃO
Os tipos de sensores e suas aplicabilidades aumentam diariamente. Novos sensores são
introduzidos constantemente para resolver novas necessidades e problemas industriais. O uso
inteligente de sensores pode ajudar aumentar a segurança, a confiabilidade, a produtividade e a
qualidade dos processos.
Contudo, boa parte dos sistemas disponíveis são demasiadamente complexos, portanto caros, ou
específicos demais, não atendendo às aplicações de “datalogging” com flexibilidade.
Exemplos:
• DataQ: DI-710-EH:
Figura 1 - DataQ: DI-710-EH
6
“Low-cost, portable, Ethernet data acquisition system featuring 16 single-ended or 8
differential analog inputs, a maximum sample rate up to 4800 samples/second, and programmable
gain ranges of 1, 2, 4, and 8. Includes Power cable, software, and documentation (Ethernet cable
not included).”
Preço em novembro 2007: US$599. (1)
• Dickson Data Logger With 2 Probes
Figura 2 - Dickson Data Logger com 2 sensores
“Manage all data loggers in your network from one PC - connecting data loggers to your
Ethernet network is as easy as installing a printer! 24/7 feedback through Min/Max or Real-Time
,Display ,Visual/Audio alarms, Optional Email alerts, Remote access via Interne, 2 K-
thermocouple probes”
Preço em novembro 2007: US$599. (2)
1.3. OBJETIVO
O projeto foi desenvolvido como Trabalho de Conclusão de Curso e teve como objetivo
principal desenvolver um sistema (hardware e software) simples e barato de monitoração remota
utilizando sensores como termopares, sensores de pressão e fluxo de fluidos. O projeto como um
todo foi dividido em quatro partes (concepção do hardware, desenvolvimento do software
embarcado no hardware e desenvolvimento da camada de alto nível para visualização e gravação de
modo amigável dos dados e design da placa de circuito impresso), sendo desenvolvido em parceria
com outro estudante de graduação do curso de Engenharia de Computação, Eduardo Siufi
Magalhães. Mais especificamente, a parte correspondente a esse documento, apresenta a concepção
7
e montagem do hardware, desenvolvimento do software embarcado (em Dynamic C) responsável
por dar suporte ao circuito integrado de conversão analógica digital e transmissão dos dados obtidos
via Ethernet para um terminal remoto e os resultados obtidos. Os detalhes do software de alto nível
para manipulação e visualização dos dados serão detalhados no trabalho do Eduardo.
1.4. MATERIAIS E MÉTODOS
1.4.1. Resumo dos métodos
Boa parte do projeto foi desenvolvido em Dynamic C utilizando um RCM3000 baseado no
microprocessador Rabbit3000 que disponibiliza 52 portas de I/O e conectividade Ethernet nativa.
Toda a montagem de dispositivos e desenvolvimento na fase de protótipo foi feita em
protoboard, sendo que a alimentação, interface de I/Os e interface serial para programação e
configuração local do microprocessador foi feita através de uma placa de I/O compatível com o
processador emprestada pela SV Consultoria.
O código responsável por alimentar o clock, controlar as linhas de sincronismo e multiplexação
de portas do CI de A/D, receber os dados referentes às portas analógicas e enviá-las para o PC via
comunicação Ethernet foi desenvolvido em Dynamic C. Ao serem requisitadas via Telnet1, estas
informações são coletadas e enviadas ao PC a uma taxa de 2Hz e exibidas no PC por um programa
feito em Java confeccionado no ambiente de desenvolvimento Netbeans (Netbeans IDE 5.5.1).
Além dos materiais e ferramentas acima descritos, utilizou-se ainda o Protel para o design da
placa de circuito impresso e o CircuitCAM (CircuitCam 5.0) para conversão do projeto de Protel
para LMD (tipo de arquivo reconhecido pela fresadeira disponível na USP).
1.4.2. RCM 3000
Este é um “Application Kit” bastante interessante, pois possui várias funcionalidades, sem
ser demasiadamente complexo, apresenta um desempenho honesto e custo relativamente baixo.
Algumas de suas principais características são:
• Operação à 3.3V (compatível com TTL 5V). • Núcleo baseado no microprocessador Rabbit 3000™ • Baixo-EMI (tipicamente <10 dB µV/m à 3m) • Ethernet nativo para simplificar conectividade
1 Protocolo cliente-sevidor para comunicação entre computadores
8
• 512K Flash/512K SRAM • 52 I/Os digitais • 6 portas seriais (IrDA, SDLC/HDLC, Async, SPI) • baixo consumo (modo de espera opera abaixo de 2mA)
Figura 3 - RCM3000
A família RabbitCore foi desenvolvida para facilitar e acelerar o desenvolvimento de
sistemas embarcados, os RabbitCores são montados em placas-mães desenvolvidas pelo usuário
e age como um microprocessador de controle para o sistema do usuário. Pequeno no tamanho,
com muitos recursos e em conjunto com Dynamic C (um software de desenvolvimento que
acompanha uma vasta biblioteca e exemplos), esses núcleos disponibilizam aos designers um
pacote completo para controle e comunicação. (3)
Preço em novembro 2007 (1,100 ou 1000 unidades em US$): 79/64/57
1.4.3. DynamiC
O Dynamic C integra as funções de
9
• Edição • Compilação • Linkagem • Carregamento do programa no microprocessador • Debugging
em um único programa. Na realidade, compilação, linkagem e carregamento se agrupam em
uma única ação da IDE2. O Dynamic C possui um editor de textos honesto e versátil. E os
programas desenvolvidos em Dynamic C podem ser executados e “degubados” interativamente
no código fonte ou no nível do código de máquina.
O Dynamic C também suporta programação em Assembly. Não é necessário optar por C ou
Assmbly ao se desenvolver um sistema. C e Assembly podem coexistir e serem misturados no
código fonte.
Além disso, o Dynamic C acompanha uma vasta biblioteca de funções e rotinas, além de
exemplos práticos, prontos para rodar. (4)
Figura 4 - Ambiente de desenvolvimento DynamicC
2 Integrated Development Environment
1.4.4. ADC0809
O componente de aquisição de dados ADC0809
um CMOS monolítico com um conversor analógico digital com resolução de 8
multiplexados e lógica de controle compatível com microcontroladores. O conversor A/D de 8
bits usa a técnica de “aproximação sucessiva” como método de conversão. O
um comparador de alta impedância estabilizado, um divisor de voltagem de 256 ohms com uma
árvore de chaveamento analógica e um registrador de aproximação sucessiva. O multiplexador
de 8 canais pode acessar diretamente qualquer um dos 8 sin
O dispositivo elimina a necessidade do uso de “zero” externo. Facilmente integrado com
processadores por entradas multiplexadas e saídas TTL TRI
O design do ADC0809 foi otimizado para oferecer alta velocidade, alta precisão, mínina
dependência térmica e precisão durante sucessiva
consumo.
Funcionalidades e especificação
• Fácil de integrar com microprocessadores• Opera proporcionalmente ou com 5Vdc• Sem “zero” ou ajuste de escala requerido• 8 canais multiplexados com lógica de endereçamente (3 bits)• Escala de input de 0V à 5V com única fonte de 5V• Output segue especificação TTL• tamanho de 28 DIP• Resolução de 8 bits
O componente de aquisição de dados ADC0809 fabricado pela National Semiconductors
um CMOS monolítico com um conversor analógico digital com resolução de 8
multiplexados e lógica de controle compatível com microcontroladores. O conversor A/D de 8
bits usa a técnica de “aproximação sucessiva” como método de conversão. O conversor possui
um comparador de alta impedância estabilizado, um divisor de voltagem de 256 ohms com uma
árvore de chaveamento analógica e um registrador de aproximação sucessiva. O multiplexador
de 8 canais pode acessar diretamente qualquer um dos 8 sinais analógicos.
O dispositivo elimina a necessidade do uso de “zero” externo. Facilmente integrado com
processadores por entradas multiplexadas e saídas TTL TRI-STATE.
O design do ADC0809 foi otimizado para oferecer alta velocidade, alta precisão, mínina
cia térmica e precisão durante sucessiva repetição, além de funcionar com baixo
Figura 5 - ADC0809CCN
Funcionalidades e especificação:
Fácil de integrar com microprocessadores Opera proporcionalmente ou com 5Vdc Sem “zero” ou ajuste de escala requerido 8 canais multiplexados com lógica de endereçamente (3 bits) Escala de input de 0V à 5V com única fonte de 5V Output segue especificação TTL tamanho de 28 DIP Resolução de 8 bits
10
fabricado pela National Semiconductors é
um CMOS monolítico com um conversor analógico digital com resolução de 8-bits, 8 canais
multiplexados e lógica de controle compatível com microcontroladores. O conversor A/D de 8
conversor possui
um comparador de alta impedância estabilizado, um divisor de voltagem de 256 ohms com uma
árvore de chaveamento analógica e um registrador de aproximação sucessiva. O multiplexador
O dispositivo elimina a necessidade do uso de “zero” externo. Facilmente integrado com
O design do ADC0809 foi otimizado para oferecer alta velocidade, alta precisão, mínina
repetição, além de funcionar com baixo
11
• Erro total não ajustável: +- ½ LSB e +- 1 LSB • Baixo consumo: 15mW • Tempo de conversão: 100µs (5)
Figura 6 - Diagrama de pinos do ADC0809
Figura 7 - Diagrama de temporização da operação do ADC0809
Um ciclo de operação do A/D passa por 9 fases
1. Endereçamento do multiplexador (3 pinos de endereçamento)2. Subida de pulso de ALE (Address Latch Enable)3. Subida de pulso de START4. Descida de pulso de ALE5. Descida de pulso de START6. Aguarda subida de pulso 7. Subida de pulso de OE (Output Enable)8. Leitura da saída digital (8 pinos)9. Descida de pulso de OE
1.4.5. Protel e CircuitCAM
Protel é um programa de design de layout de placas de circuito produzido pela Altium
também a manipulação e simulação de projetos em FPGA.
CircuitCAM é um software que acompanha
separadamente pela LPKF, é uma interface sofisticada para
projetos para placas de circuito impresso. Ele pode controlar dados de produção, modificar o
3 Computer Aided Manufacturing
de operação do A/D passa por 9 fases em seqüência:
Endereçamento do multiplexador (3 pinos de endereçamento) Subida de pulso de ALE (Address Latch Enable) Subida de pulso de START Descida de pulso de ALE Descida de pulso de START Aguarda subida de pulso de EOC Subida de pulso de OE (Output Enable) Leitura da saída digital (8 pinos) Descida de pulso de OE
e CircuitCAM
é um programa de design de layout de placas de circuito produzido pela Altium
também a manipulação e simulação de projetos em FPGA.
Figura 8 - Interface Protel
é um software que acompanha o equipamento de usinagem
é uma interface sofisticada para manipulação e controle
projetos para placas de circuito impresso. Ele pode controlar dados de produção, modificar o
12
é um programa de design de layout de placas de circuito produzido pela Altium, permite
o equipamento de usinagem ou é vendido
e controle CAM3 de
projetos para placas de circuito impresso. Ele pode controlar dados de produção, modificar o
design, realizar várias verificações do layout, gerar “plano terra”, inserir texto na placa e gerar
estratégias de usinagem. Além d
Gerber.
Figura
1.4.6. JAVA
Java é uma linguagem de programação orientada a objetos desenvolvida pela
no início dos anos 90.
As aplicações Java são compiladas para
(programa escrito em código nativo que interpreta
para código de máquina nativo atualmente seja possível e mais rápi
bytecodes são interpretados ou compilados para código nativo para que possam ser executados,
embora a execução direta do bytecode
justamente o fato de Java utilizar uma represe
interpretada pelas máquinas virtuais Java (JVMs) que faz com que
nessa linguagem possam ser executados em qualquer sistema que possua uma máquina
virtual.
A linguagem Java ainda é proprietária e é controlada pela
lançamento em 1995, a linguagem passou por diversas modificações e atualizações, sendo que sua
versão atual foi liberada em 2006, já tendo uma nova publicação prevista para 2008.
design, realizar várias verificações do layout, gerar “plano terra”, inserir texto na placa e gerar
estratégias de usinagem. Além de importar e exportar vários tipos de arquivos, como AutoCAD e
Figura 9 - Interface CircuitCAM 5.0
Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Microsystems
As aplicações Java são compiladas para bytecodes que são executados por uma máquina virtual
(programa escrito em código nativo que interpreta bytecodes Java genéricos), embora a compilação
para código de máquina nativo atualmente seja possível e mais rápida. Em tempo de execução, os
são interpretados ou compilados para código nativo para que possam ser executados,
bytecode por um processador Java também já seja possível. É
justamente o fato de Java utilizar uma representação intermediária de código (bytecode
interpretada pelas máquinas virtuais Java (JVMs) que faz com que os programas desenvolvidos
nessa linguagem possam ser executados em qualquer sistema que possua uma máquina
roprietária e é controlada pela Java Community Process
lançamento em 1995, a linguagem passou por diversas modificações e atualizações, sendo que sua
versão atual foi liberada em 2006, já tendo uma nova publicação prevista para 2008.
13
design, realizar várias verificações do layout, gerar “plano terra”, inserir texto na placa e gerar
e importar e exportar vários tipos de arquivos, como AutoCAD e
Sun Microsystems
que são executados por uma máquina virtual
Java genéricos), embora a compilação
da. Em tempo de execução, os
são interpretados ou compilados para código nativo para que possam ser executados,
por um processador Java também já seja possível. É
bytecode) que é
os programas desenvolvidos
nessa linguagem possam ser executados em qualquer sistema que possua uma máquina
Java Community Process. Desde seu
lançamento em 1995, a linguagem passou por diversas modificações e atualizações, sendo que sua
14
Possui várias características da sintaxe do C e C++, mas apresenta um modelo de objeto mais
simples e algumas outras facilidades. Java foi projetada tendo em vista os seguintes objetivos:
• Utilizar a metodologia de programação orientada a objetos.
• Permitir que o mesmo programa pudesse ser executado em diferentes sistemas operacionais
(portabilidade).
• Fornecer recursos e suporte para redes de computadores.
• Ser projetada para executar código de fontes remotas de forma segura.
• Ser fácil de usar, e selecionar o que fosse considerado bom das outras linguagens de
programação.
Além dos aspectos acima citados, a linguagem possui outras vantagens, tais como a facilidade
de internacionalização, uma vez que ela suporta nativamente caracteres Unicode, possui um vasto
conjunto de bibliotecas e APIs4, facilitando a programação; facilidades para criação de programas
distribuídos e multitarefa; desalocação de memória automática por processo de coletor de lixo
(garbage collector) que previne os vazamentos de memória (memory leaks), dentre outras.
As principais críticas quanto a linguagem giram em torno do seu desempenho, dita ser
significativamente mais lenta e consumir mais memória do que as linguagens compiladas
nativamente como o C ou C++. Entretanto, a velocidade de execução de programas Java tem
melhorado com a introdução da compilação Just-In Time (JIT), que faz com que a máquina virtual
analise o código e realize otimizações em certas partes mais críticas, e de otimizações na Máquina
Virtual Java feitas ao longo do tempo. As primeiras implementações da linguagem eram
interpretadas pela máquina virtual para alcançar os requisitos de portabilidade. Essas
implementações produziam programas que rodavam mais lentos que os compilados para
executáveis nativos, uma vez que o processo de interpretação dos bytecodes pela JVM é um
processo muito custoso, o que fez com que Java sofresse com a fama de ter um pobre desempenho.
Já as implementações mais recentes da JVM produzem programas significativamente mais rápidos
que os anteriores.
Há ainda outros aspectos considerados negativos, mas mesmo assim, a plataforma Java foi
adotada mais rapidamente do que qualquer outra linguagem de programação na história da
computação. Em 2003 Java atingiu a marca de 4 milhões de desenvolvedores em todo mundo. Java
continuou crescendo e hoje é uma referência no mercado de desenvolvimento de software. Ela
tornou-se popular pelo seu uso na Internet e hoje possui seu ambiente de execução presente em web
browsers, mainframes, SOs, celulares, palmtops, cartões inteligentes, entre outros. (6)
4 Application Programming Interface
15
2. FUNDAMENTOS TEÓRICOS
2.1. SENSORES INDUSTRIAIS
Os sensores tornaram-se vitais na indústria e os fabricantes estão mostrando uma tendência de
integração de equipamentos controlados por computador. No passado, os operadores eram os
cérebros de um equipamento e fonte de toda informação sobre a operação de um processo. O
operador podia detectar problemas na operação vendo, ouvindo, sentindo (vibração, etc..), e
cheirando problemas.
Uma maneira de classificar sensores é: digitais ou analógicos. As aplicações industriais
necessitam tanto de sensores digitais quanto de analógicos. Um sensor digital tem dois estados:
ligado ou desligado. Parte das aplicações envolve monitorar a presença/ausência de peças e
procedimentos de contagem, o que um sensor digital faz de maneira perfeita e barata. Os sensores
digitais são mais simples e mais fáceis de usar do que os analógicos, o que é um fator determinante
para o seu largo uso.
Já os sensores analógicos, também chamados de sensores de saída linear, são mais complexos
do que os digitais, mas podem fornecer muito mais informação sobre um processo. Um bom
exemplo seria um sensor usado para medir temperatura. Uma temperatura é uma informação
analógica. Um sensor analógico detecta a temperatura e emite uma corrente (ou uma diferença de
potencial) ao sistema de controle. Quanto mais elevada a temperatura, mais elevada a saída do
sensor. O sensor pode, por exemplo, apresentar na saída entre 4mA e 20mA dependendo da
temperatura real, embora haja um ilimitado numero de temperaturas (e de correntes elétricas). A
saída de um sensor digital tem dois estados possíveis: ligado ou desligado. Por outro lado, a saída
de um sensor analógico pode ser qualquer valor dentro da escala. Assim, o sistema de controle pode
monitorar a temperatura muito precisamente e controlar o processo.
Sensores de pressão também estão disponíveis como dispositivos analógicos. Fornecem uma
escala da tensão de saída (ou de corrente), dependendo da pressão a que estão submetidos. (7)
2.1.1. SENSORES ANALÓGICOS
Antes de iniciarmos uma explicação sobre os sensores analógicos, precisamos entender os
conceitos de Acuidade, Precisão e Repetibilidade.
Acuidade pode ser definida como quão próxima é a medida fornecida pelo sensor da quantidade
verdadeira que está sendo medida. A precisão determina quão próximos são os valores fornecidos
16
por diversos sensores ao medir uma mesma variável, repetibilidade é habilidade de um sensor de
repetir suas leituras precedentes.
Alguns exemplos de sensores analógicos:
Termopares: Muitos dos princípios básicos da termometria de termopares já eram conhecidos
por volta de 1900, mas só recentemente tornou-se clara a verdadeira fonte do potencial
termoelétrico. O princípio da operação baseia-se em unir metais diferentes e produzir uma pequena
tensão. A saída da tensão é proporcional à diferença na temperatura entre as partes frias e quentes.
Existem três categorias de tipos de termopares: termopares padronizados de metal nobre (R, S,
B), termopares padronizados de metal base (K, J, N, E, T) e termopares não definidos por letras. N
prática a distinção entre “base” e “nobre” é que metais nobres contêm platina e metais base contêm
níquel. (8)
Alguns tipos de termopares e suas faixas de operação:
Tipo de sensor Faixa de Utilização (°C°C°C°C) Limite de Erro Padrão
E 0 a 870
-200 a 30
±1,7°C
±1,7°C
J 0 a 760 ±2,2°C
K, N 0 a 1260
-200 a 30
±2,2°C
±2,2°C
T 0 a 370
-200 a 30
±1°C
±1°C
R, S 0 a 1480 ±1,5°C
B 870 a 1700 ±0,5°C
Tabela 1 - Limite de erro de termopares de acordo com a ASTM E-2305
Strain Gages: Strain gages medem a força baseado no princípio que quanto mais fino é um fio,
mais elevada sua resistência. Em outras palavras, um fio com um diâmetro menor apresenta uma
resistência mais elevada do que um fio com um diâmetro maior. Se pegarmos um fio elástico,
podemos esticá-lo e medir a mudança na resistência porque seu diâmetro diminui no meio,
aumentando a resistência. A mudança na resistência comparada à mudança na voltagem apresenta
um comportamento linear. Se uma corrente constante for fornecida a um strain gage e a força
aplicada ao mesmo variar, a resistência do strain gage variará e a mudança na voltagem medida será
5 American Society for Testing and Materials (ASTM)
17
proporcional à esta mudança na força. Este tipo de sensor tem muitos usos. São usados para a
medida da pressão ligando-os a uma membrana que seja exposta à pressão e também são utilizados
para medidas de cargas. Outra aplicação é em acelerômetros. A maioria dos strain gages têm o fio
disposto em zig-zag e colado sobre um revestimento protetor de papel ou membrana flexível.
Figura 10 - Strain Gage em configuração Zig-Zag
Sensores de Pressão: Sensores de pressão tipicamente medem e controlam fluidos tais como
gases e líquidos. Alguns sensores da pressão operam através de uma mudança na resistência, alguns
através de uma mudança na capacitância e alguns através das mudanças na indutância. Um sensor
da pressão tipo strain gage une um strain gage a uma membrana que é esticada proporcionalemte à
pressão aplicada a ela. Se uma corrente constante for aplicada ao strain gage, sua tensão da saída
muda de maneira corresponde à mudança na pressão. (7)
Figura 11 - Sensor de pressão do tipo Strain-gage
18
2.2. COMUNICAÇÃO ETHERNET E O IP
Ethernet é uma tecnologia de interconexão LAN6 baseada no envio de pacotes. Ela define
cabeamento e sinais elétricos para a camada física, e formato de pacotes e protocolos para a camada
de controle de acesso ao meio MAC7 do modelo OSI8. A Ethernet foi padronizada pelo IEEE como
802.3
A identificação dos dispositivos é feita por um cabeçalho nos pacotes de dados trafegando na
rede que contém o IP9 que tem a função de identificar o dispositivo na rede. O endereço IP, na
versão 4 (IPv4), é um número de 32 bits, portanto dentro de uma LAN temos 232 endereços IP
possíveis e é escrito na chamada notação decimal deparada por pontos (i.e: 192.168.0.2), na qual
cada byte do endereço é escrito em sua forma decimal e separado dos outros por um ponto.
Devemos notar que um endereço IP não identifica uma máquina individual, mas uma conexão à
inter-rede. Assim, um gateway10 conectando à n redes tem n endereços IP diferentes, um para cada
conexão.
A Ethernet praticamente tomou conta do mercado de redes locais. Na década de 80 e início dos
anos 90, ela enfrentou muitos desafios vindos de outras tecnologias LAN, como ring, FDDI e ATM.
Algumas dessas tecnologias conseguiram ficar com parte do mercado durante alguns anos. Mas,
desde sua invenção em meados dos anos 70, a Ethernet tem se desenvolvido e crescido. Além disso,
ela conservou sua participação de mercado dominante. Hoje, ela é de longe a tecnologia LAN mais
preponderante, e é provável que continue assim no futuro próximo. Podemos dizer que a Ethernet
está sendo para rede local o que a Internet tem sido para a rede global.
Há muitas razões para o sucesso da Ethernet. Em primeiro lugar, ela foi a primeira LAN de alta
velocidade amplamente disseminada. Como foi disponibilizada de modo precoce, os
administradores de rede ficaram bastante familiarizados com a Ethernet e relutam em mudar para
outras tecnologias. Em segundo lugar, token ring, FDDI e ATM são tecnologias mais complexas e
mais dispendiosas do que a Ethernet, o que desencoraja ainda mais qualquer mudança de tecnologia
de LAN. Em terceiro lugar, a razão mais óbvia e atraente para mudar para outra tecnologia era
normalmente as velocidades mais altas destas tecnologias, contudo, a Ethernet sempre evoluiu,
produzindo versões que funcionavam a velocidades iguais, se não superiores às concorrentes. Por
6 Local Area Network 7 Media Access Control 8 Open Systems Interconnection: É um modelo que divide as redes de computadores em sete camadas, de forma a se obter camadas de abstração 9 Internet Procotol 10 É uma máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos.
19
fim, como a Ethernet se tornou muito popular, o hardware para Ethernet (em particular, as placas de
interface de rede) se tornou mercadoria comum e, assim, de baixo custo. (9)
2.3. CONVERSORES ANALÓGICOS DIGITAIS
Sinais gerados por circuitos analógicos são muitas vezes processados por circuitos digitais, por
exemplo, por um microcontrolador ou por um microcomputador.
Para processar sinais analógicos usando circuitos digitais, deve-se efetuar uma conversão para
essa última forma, a digital. Tal conversão é efetuada por um Conversor Analógico-Digital ("A/D
converter" ou ADC).
O sinal recebido, depois de digitalizado, é processado e, na maioria das vezes, será utilizado
para atuar sobre o circuito analógico que gerou o sinal original ou até mesmo sobre outro circuito.
Por isso, um sinal na forma digital, para ser processado por um bloco funcional analógico, deve
ser previamente convertido (ou reconvertido) para a forma analógica equivalente. (10)
A resolução do conversor indica o número de valores discretos que ele pode produzir sobre à
partir de uma faixa de valores analógicos. Como esses valores são, usualmente, registrados
eletronicamente em formato binário, a resolução é expressa em bits. Por conseqüência, o número de
valores discretos ou “níveis”, é geralmente uma potência de dois. Por exemplo, um ADC com uma
resolução de 8 bits pode converter um sinal analógico em uma faixa de 256 níveis, uma vez que 28
= 256. Por exemplo: os valores podem ser expressos em um valor de 0 a 255 (quando usamos
variáveis inteiras sem sinal) ou -128 a 127 (inteiros com sinal).
Na prática, a resolução útil do conversor é limitada pela relação “sinal-ruído” do sinal em
questão. Se houver muito ruído presente na entrada analógica, será impossível haver precisão além
de um certo número de bits de resolução, o ENOB11. Neste caso, o ADC não produzirá uma
conversão precisa, uma vez que os bits menos significativos estarão apenas medindo ruído. A
relação “sinal-ruído” deve ser em torno de 6 dB por bit de resolução requerido. (11)
Existem diversos tipos de conversores A/D que utilizam diversas estratégias de conversão, entre
eles:
Conversores de "Amostragem":
• Aproximações Sucessivas
• Flash
• Rampa
11 Effective Number of Bits
20
Convertem proporcionalmente o valor digital equivalente à tensão analógica no instante em que
é realizada a amostragem.
Conversores Integradores:
• Dupla rampa
• Tensão-Frequência.
Nestes conversores é calculado o valor médio sobre um tempo fixo de medição. Esses
conversores demoram mais tempo para fornecer a leitura, porém são menos sensíveis a ruído,
devido o processamento matemático intrínseco.
21
3. MÉTODOS E IMPLEMENTAÇÕES
3.1. PROJETO
Como explicado anteriormente, o projeto abordado neste documento teve por objetivo
desenvolver um sistema de aquisição de dados provenientes de sensores analógicos. Um esquema
geral do projeto pode ser conferido na Figura 12 - Esquema geral do projeto.
Como o sistema trabalha em sinergia com a rede de transmissão dos dados, o armazenamento
local dos dados coletados foi excluído do projeto para simplificar e baratear o custo do hardware. A
visualização e a gravação das informações provenientes do sistema são feitas no terminal remoto
através de uma ferramenta JAVA (o que a torna muti-plataforma12). Como um todo, o sistema foi
dividido em: Módulo de Aquisição/Transmissão e Software de Visualização.
Figura 12 - Esquema geral do projeto
O Módulo de Aquisição basicamente responde as requisições feitas pelo Software de
Visualização enviando as leituras dos sensores naquele momento. A ampla disseminação e
padronização do protocolo IP justificam a escolha deste como meio para transmissão dos dados.
12 Independente de sistema operacional
Aquisição/Transmissão
Software de Visualização
A facilidade de integração do sistema é em boa parte garantida pela presença de uma interface
ethernet no Módulo de Aquisição
(através de um switch13 por exemplo) para que os dados possam ser transmitidos.
Finalmente, para obtenção dos dados, foi determinado o estabelecimento de uma conexão via
telnet. Pela Figura 13 - Formato dos dados proveniente do Módulo de Aquisição em conexão
Telnet, percebemos que o Módulo de Aquisição
podem ser ligados ao dispositivo) no formato: “‘Sensor’: ‘valor lido’”, separ
de quebra de linha, neste caso: ‘\n’
Figura 13 - Formato dos dados proveniente do Módulo de Aquisição em conexão
Respeitando esse formato, qualquer software é capaz de coletar e tratar os dados
isso viabiliza o desenvolvimento de um software próprio para aquisição quando há interesse por
parte do usuário. Neste projeto, optamos pela construção de uma ferramenta de visualização e
gravação de dados em JAVA para aproveitarmos o suporte
Por se tratar de uma ferramenta JAVA, não há necessidade de instalação do Software de
Visualização (uma vez que a máquina virtual JAVA esteja presente no terminal cliente) para que a
coleta de dados seja realizada. Uma vez iniciado, e
Aquisição e de tempos em tempos requisita os dados dos sensores, exibindo na tela e armazenando
13 Dispositivo utilizado para troca de quadros entre nós de uma rede de computadores14 Este caractere equivale a LF (line-
A facilidade de integração do sistema é em boa parte garantida pela presença de uma interface
Módulo de Aquisição. A este é atribuído um endereço IP, e basta conectá
por exemplo) para que os dados possam ser transmitidos.
Finalmente, para obtenção dos dados, foi determinado o estabelecimento de uma conexão via
Formato dos dados proveniente do Módulo de Aquisição em conexão
Módulo de Aquisição envia os dados de cada sensor (até 8 sensores
podem ser ligados ao dispositivo) no formato: “‘Sensor’: ‘valor lido’”, separados por um caractere
n’14.
Formato dos dados proveniente do Módulo de Aquisição em conexão
Respeitando esse formato, qualquer software é capaz de coletar e tratar os dados
isso viabiliza o desenvolvimento de um software próprio para aquisição quando há interesse por
parte do usuário. Neste projeto, optamos pela construção de uma ferramenta de visualização e
A para aproveitarmos o suporte a multi-plataformas.
Por se tratar de uma ferramenta JAVA, não há necessidade de instalação do Software de
Visualização (uma vez que a máquina virtual JAVA esteja presente no terminal cliente) para que a
coleta de dados seja realizada. Uma vez iniciado, este estabelece conexão com o
e de tempos em tempos requisita os dados dos sensores, exibindo na tela e armazenando
Dispositivo utilizado para troca de quadros entre nós de uma rede de computadores
-feed) ou 10 em ASCII
22
A facilidade de integração do sistema é em boa parte garantida pela presença de uma interface
. A este é atribuído um endereço IP, e basta conectá-lo a uma rede
Finalmente, para obtenção dos dados, foi determinado o estabelecimento de uma conexão via
Formato dos dados proveniente do Módulo de Aquisição em conexão
envia os dados de cada sensor (até 8 sensores
ados por um caractere
Formato dos dados proveniente do Módulo de Aquisição em conexão Telnet
Respeitando esse formato, qualquer software é capaz de coletar e tratar os dados dos sensores,
isso viabiliza o desenvolvimento de um software próprio para aquisição quando há interesse por
parte do usuário. Neste projeto, optamos pela construção de uma ferramenta de visualização e
Por se tratar de uma ferramenta JAVA, não há necessidade de instalação do Software de
Visualização (uma vez que a máquina virtual JAVA esteja presente no terminal cliente) para que a
ste estabelece conexão com o Módulo de
e de tempos em tempos requisita os dados dos sensores, exibindo na tela e armazenando
os mesmos em um arquivo para posterior tratamento. Tal arquivo possui formato de texto,
permitindo assim que seja process
exemplo, Microsoft Excel.
Figura 14 - Interface de aquisição e gravação no terminal cliente
3.1. DESCRIÇÃO DAS ATIVIDADES REALIZADAS
3.1.1. Concepção inicial do hardware
Num levantamento inicial do hardware necessário para cumprimento da proposta do sistema
três necessidades fundamentais foram identificadas:
• Conversor A/D: Necessário para tratamento dos dados analógicos em meio digital.
• Microprocessador: Controle e leitura do
• Interface de rede: Transmissão dos dados.
os mesmos em um arquivo para posterior tratamento. Tal arquivo possui formato de texto,
permitindo assim que seja processado em qualquer software de planilha de dados
Interface de aquisição e gravação no terminal cliente
DESCRIÇÃO DAS ATIVIDADES REALIZADAS
ial do hardware
levantamento inicial do hardware necessário para cumprimento da proposta do sistema
três necessidades fundamentais foram identificadas:
Conversor A/D: Necessário para tratamento dos dados analógicos em meio digital.
Microprocessador: Controle e leitura do A/D e comunicação.
Interface de rede: Transmissão dos dados.
23
os mesmos em um arquivo para posterior tratamento. Tal arquivo possui formato de texto,
de dados como, por
levantamento inicial do hardware necessário para cumprimento da proposta do sistema
Conversor A/D: Necessário para tratamento dos dados analógicos em meio digital.
24
Tendo em mente estes requisitos, iniciou-se a etapa de estudo e busca de componentes
necessários à construção do hardware.
3.1.2. Estudo e análise dos componentes eletrônicos utilizados
Devido principalmente à disponibilidade e conhecimento prévio sobre o módulo RCM3000 e
por possuir um processador eficiente, fácil e rápido de programar e principalmente interface de
rede, este foi escolhido como sendo a base do hardware a ser desenvolvido.
Este módulo dispõe de um processador Rabbit 3000™ de 14,7 Mhz 512K de memória Flash e
512K SRAM além de diversos outras características (como já descrito anteriormente). Em seguida,
para que fosse possível conectar múltiplos sensores e com uma precisão razoável de conversão foi
escolhido o ADC0809 da National Semiconductor. Um conversor A/D de 8 bits multiplexado para
8 sensores (também descrito anteriormente). Assim como o RCM3000, a disponibilidade deste
dispositivo em laboratório foi o ponto chave para sua escolha no projeto.
Ademais, um regulador de tensão de 5V (L7805) e capacitores de acoplamento (10uF e 100nF)
foram necessários para a construção de um protótipo.
As portas de controle e saída digital do A/D foram ligados em I/Os selecionados do módulo
como descrito na tabela abaixo:
PORT
(Rabbit)
PORT
(A/D)
PORT
(Rabbit)
PORT
(A/D)
Co
ntr
ole
INT2 EOC PA0 2^-1
Sa
ída
Dig
ital
INT1 START PA1 2^-2
PG3 OE PA2 2^-3
PF4 ALE PA3 2^-4
Mu
ltip
lex
açã
o
PG2 ADD0 PA4 2^-5
PG6 ADD1 PA5 2^-6
PG7 ADD2 PA6 2^-7
PF7 Clk PA7 2^-8
Tabela 2 - Pinagem entre A/D e Módulo Microcontrolador
26
3.1.3. Software embarcado
Seguindo as especificações do módulo, a plataforma de desenvolvimento do software
embarcado foi a Dynamic C 8.51.
O firmware desenvolvido foi organizado em três grandes domínios:
• Configuração e inicialização das portas (em linguagem C).
Setup da rede e outras inicializações seguidas da configuração das portas de I/O.
WrPortI(SPCR, NULL, 0x80); // Port A como “input”
WrPortI(PFFR, &PFFRShadow, 0x00); // Port F em modo “standard”
WrPortI(PFDDR, &PFDDRShadow, 0xFF); // Port F como “output”
WrPortI(PEDDR, &PEDDRShadow, 0xFD);
// Port E: 0, 2, 3, 4, 5, 6, 7 como “output”, 1 como “input”
// Port F gera “clock” na interrupção de B1
WrPortI(PFCR, &PFCRShadow, 0x20);
WrPortI(PGFR, &PGFRShadow, 0x00); // Port G em modo “standard”
WrPortI(PGDDR, &PGDDRShadow, 0xFF); // Port G como “output”
Tabela 3 – Configuração inicial das portas do RCM3000
• Tratamento de eventos de rede e leitura dos sinais digitais provenientes do ADC0809
(em linguagem C).
Engloba a recepção dos eventos do terminal cliente e a seqüência de operação do ADC,
descritos em 1.4.3 ADC0809.
Trechos do código são mostradas à seguir:
for (i=0;i<8;i++){
waitfor(DelayMs(10));
if (i == 0){
BitWrPortI(PGDR, &PGDRShadow, 0, 2);
BitWrPortI(PGDR, &PGDRShadow, 0, 6);
BitWrPortI(PGDR, &PGDRShadow, 0, 7);
} else if (i == 1){
BitWrPortI(PGDR, &PGDRShadow, 0, 2);
BitWrPortI(PGDR, &PGDRShadow, 0, 6);
BitWrPortI(PGDR, &PGDRShadow, 1, 7);
} else if (i == 2){
BitWrPortI(PGDR, &PGDRShadow, 0, 2);
BitWrPortI(PGDR, &PGDRShadow, 1, 6);
BitWrPortI(PGDR, &PGDRShadow, 0, 7);
} else if (i == 3){
27
BitWrPortI(PGDR, &PGDRShadow, 0, 2);
BitWrPortI(PGDR, &PGDRShadow, 1, 6);
BitWrPortI(PGDR, &PGDRShadow, 1, 7);
} else if (i == 4){
BitWrPortI(PGDR, &PGDRShadow, 1, 2);
BitWrPortI(PGDR, &PGDRShadow, 0, 6);
BitWrPortI(PGDR, &PGDRShadow, 0, 7);
} else if (i == 5){
BitWrPortI(PGDR, &PGDRShadow, 1, 2);
BitWrPortI(PGDR, &PGDRShadow, 0, 6);
BitWrPortI(PGDR, &PGDRShadow, 1, 7);
} else if (i == 6){
BitWrPortI(PGDR, &PGDRShadow, 1, 2);
BitWrPortI(PGDR, &PGDRShadow, 1, 6);
BitWrPortI(PGDR, &PGDRShadow, 0, 7);
} else if (i == 7){
BitWrPortI(PGDR, &PGDRShadow, 1, 2);
BitWrPortI(PGDR, &PGDRShadow, 1, 6);
BitWrPortI(PGDR, &PGDRShadow, 1, 7);
}
Tabela 4 - Multiplexação das 8 entradas do AD
iValue = RdPortI(PADR);
printf("Value = %d\n", iValue);
voltage = iValue + 0; //Casting int to float
voltage = voltage / 51;
printf("Voltage = %f\n", voltage);
sprintf(wr_buffer, "%d: %f\n\r", i, voltage);
sock_fastwrite(&Socket_1, wr_buffer, strlen(wr_buffer));
Tabela 5 - Formatação dos dados para envio
• Geração de pulso de clock para o CI de A/D (em linguagem Assembly).
Neste bloco, o gerador de clock foi implementado usando o contador timerB que é
incrementado automaticamente pelo Rabbit e gera mudança do nível lógico na porta F quando o
contador atinge um valor de comparação definido pelo programador através de uma interrupção.
Neste caso: 0x80h para atingirmos um clock de 14kHz
28
match_0100:
ld (count), hl
ld a, (PFDRShadow) ;registro do contador a cada interrupção
xor 0x80
ioi ld (PFDR), a ;carrega valor de “output” para a próxima comparação
ld (PFDRShadow), a
jp done
Tabela 6 - Instruções na interrupção do timerB para comparação do contador
3.1.1. Placa de circuito impresso
Ainda em fase de finalização e montagem, uma placa projetada a partir do circuito montado no
software Protel e convertido para LMD pelo CircuitCAM para compatibilidade com a fresadeira foi
fabricada para possibilitar o uso, homologação e testes em campo.
Figura 17 - layout da placa de face dupla desenvolvida
Figura
Figura 19 - Perspectiva da montagem final da placa sem o CI de AD
Figura 18 - Placas projetadas em Protel
pectiva da montagem final da placa sem o CI de AD
29
30
4. RESULTADOS
De posse do hardware montado em protoboard e o módulo devidamente programado iniciou-se
a etapa de testes do hardware. Dois potenciômetros foram adicionados em duas entradas do A/D
para simular sensores. As demais entradas do A/D foram conectadas em níveis de 5, 2,5 ou 0V.
O hardware foi então conectado a uma rede de computadores e o resultado, como esperado, foi
o sucesso na leitura dos valores dos sensores. Para fins de validação dos valores indicados, um
multímetro fazia as mesmas leituras na entrada do A/D, confirmando a veracidade destes. As
variações dos dados dos sensores foram simuladas através de variações nos potenciômetros e
novamente, os dados oriundos do hardware de aquisição estavam coerentes e com variação de erro
de 0,02V entre multímetro e o monitor JAVA.
O tempo de resposta do hardware (tempo transcorrido entre uma requisição e sua respectiva
resposta) foi suficiente para permitir leituras a cada 500ms.
Tabelas de dados foram registradas automaticamente em arquivo texto, posteriormente
importadas e tratadas no Microsoft Excel.
Hora Sensor
1
Sensor
2
Sensor
3
Sensor
4
Sensor
5
Sensor
6
Sensor
7
Sensor 8
15:47:50:296 4,98 2,50 2,09 0,00 0,01 0,84 0,00 0
15:47:51:015 4,98 2,50 2,07 0,00 0,03 0,86 0,01 0,01
15:47:51:515 5,00 2,49 2,11 0,00 0,01 0,84 0,01 0,01
15:47:52:015 4,96 2,50 2,15 0,01 0,00 0,86 0,00 0
15:47:52:890 4,96 2,52 2,05 0,00 0,03 0,84 0,01 0,01
15:47:53:640 4,98 2,50 2,78 0,00 0,01 0,84 0,01 0
15:47:54:140 4,98 2,50 3,11 0,00 0,00 0,86 0,01 0,01
15:47:54:640 4,96 2,50 3,68 0,01 0,01 0,86 0,00 0
15:47:55:140 4,96 2,50 4,31 0,00 0,00 0,86 0,01 0
15:47:55:640 5,00 2,52 4,88 0,01 0,00 0,86 0,00 0
15:47:56:265 5,00 2,52 4,13 0,00 0,00 0,86 0,00 0,01
15:47:56:765 4,98 2,50 3,27 0,00 0,01 0,86 0,01 0,01
15:47:57:265 5,00 2,52 2,64 0,01 0,01 0,84 0,00 0
15:47:57:765 4,98 2,49 1,58 0,00 0,00 0,86 0,01 0,01
15:47:58:265 5,00 2,50 0,62 0,00 0,01 0,84 0,00 0
15:47:58:765 5,00 2,52 0,03 0,01 0,01 0,86 0,00 0
15:47:59:265 4,98 2,50 0,35 0,00 0,00 0,84 0,00 0
15:47:59:890 5,00 2,50 2,11 0,01 0,01 0,86 0,00 0
15:48:00:390 4,98 2,50 2,62 0,00 0,00 0,86 0,00 0,01
15:48:00:890 5,00 2,49 3,15 0,01 0,01 0,84 0,00 0
15:48:01:578 4,98 2,49 4,39 0,00 0,00 0,86 0,00 0,01
31
15:48:02:250 4,96 2,5 4,98 0,01 0 0,84 0,01 0,01
15:48:02:984 4,96 2,5 5 0 0 0,86 0 0
17:27:11:765 4,98 2,49 5 0,03 0,01 0,86 0,01 0
17:27:12:187 5 2,52 4,98 0,01 0,01 0,84 0 0,03
17:27:12:984 5 2,52 5 0 0,01 0,84 0,01 0,01
17:27:13:734 4,98 2,5 5 0 0,01 0,86 0,01 0,01
17:27:14:484 5 2,52 5 0 0,01 0,86 0 0
17:27:14:984 4,98 2,49 5 0 0 0,86 0 0
17:27:15:484 4,98 2,5 5 0 0,01 0,86 0,01 0,01
17:27:15:984 4,98 2,5 5 0 0 0,84 0 0
17:27:16:484 4,98 2,52 5 0 0,01 0,84 0 0
17:27:18:828 5 2,52 5 0,01 0,01 0,84 0,01 0,01
17:27:19:640 5 2,52 4,92 0 0 0,84 0,01 0
17:27:20:406 5 2,5 5 0,01 0,01 0,86 0 0
17:27:20:906 5 2,5 4,96 0,01 0,01 0,86 0 0
17:27:21:406 5 2,52 5 0 0,01 0,84 0 0
17:27:21:906 4,96 2,5 4,98 0,01 0,01 0,84 0 0
17:27:22:406 4,96 2,5 4,98 0 0 0,86 0 0
17:27:23:000 5 2,52 5 0 0 0,86 0 0
17:27:23:703 4,98 2,5 4,98 0,01 0 0,84 0,01 0
17:27:24:390 4,98 2,5 5 0 0 0,86 0 0
17:27:25:109 4,98 2,5 4,98 0 0,01 0,84 0,01 0,01
17:27:25:796 4,96 2,5 5 0 0,01 1,62 0,01 0
17:27:26:296 5 2,52 5 0,01 0,01 3,72 0 0,01
17:27:26:984 5 2,52 5 0,01 0,01 4,98 0,01 0,01
17:27:27:718 4,96 2,5 4,98 0 0,01 3,13 0,01 0,01
17:27:28:421 5 2,52 5 0 0 0,82 0 0
17:27:29:125 5 2,52 4,98 0,01 0 0,47 0 0,01
17:27:29:843 4,98 2,5 5 0 0 0,45 0 0,01
17:27:30:343 4,96 2,5 4,98 0 0 0,47 0 0
17:27:30:984 5 2,52 4,96 0 0 0,45 0 0
17:27:31:781 5 2,52 4,86 0 0 0,45 0 0
17:27:32:281 5 2,5 4,03 0,01 0,01 0,45 0 0
17:27:32:781 4,96 2,5 3,33 0,01 0,01 0,45 0 0
17:27:33:281 4,98 2,5 2,62 0 0 0,43 0 0,01
17:27:33:781 4,98 2,5 2,03 0,01 0 0,45 0 0
17:27:34:281 5 2,52 1,68 0 0 0,45 0 0
17:27:34:781 4,96 2,5 1,43 0 0,01 0,45 0,01 0,01
17:27:35:281 4,98 2,49 0,96 0 0,01 0,47 0 0
17:27:35:828 5 2,5 2,47 0,01 0,01 0,47 0 0
17:27:36:546 5 2,5 3,49 0,01 0 0,45 0 0
17:27:37:046 4,96 2,5 4,21 0 0 0,45 0,01 0,01
32
17:27:37:812 4,98 2,5 2,47 0 0 0,47 0 0,01
17:27:38:312 5 2,5 1,47 0 0,01 0,45 0,01 0,01
17:27:38:812 4,98 2,5 1,07 0 0 0,45 0 0
17:27:39:312 5 2,52 2,13 0 0,01 0,45 0,01 0,01
17:27:39:812 4,98 2,52 3,17 0 0,01 0,45 0 0
Tabela 7 - Arquivo de "log" gravado durante testes
Figura 20 - Gráfico da tabela obtida
Quantidade Dispositivo Preço unitário R$
1 Rabbit3000 150,00 1 ADC0809CCN 9,62 1 Regulador de tensão L7805CV (5V) 0,91 1 Regulador de tensão REG1117 (3.3V) 3 Capacitor cerâmico 100nF 1 Capacitor eletrolítico 10uF 2 MiniHeader 17x2 3,50 1 Borneira 10 pinos 1 Placa circuito impresso
Total
Tabela 8 - BOM15
4.1. DIFICULDADES, LIMITAÇÕES E DECISÕES
Uma dificuldade enfrentada foi quanto à definição e especificação do projeto de hardware.
Fatos constatados no transcorrer do projeto modificaram o layout final do mesmo.
15 Bill Of Materials
0,00
1,00
2,00
3,00
4,00
5,00
6,00
15
:47
:50
:29
6
15
:47
:52
:01
5
15
:47
:54
:14
0
15
:47
:55
:64
0
15
:47
:57
:26
5
15
:47
:58
:76
5
15
:48
:00
:39
0
15
:48
:02
:25
0
17
:27
:12
:18
7
17
:27
:14
:48
4
17
:27
:15
:98
4
17
:27
:19
:64
0
17
:27
:21
:40
6
17
:27
:23
:00
0
17
:27
:25
:10
9
17
:27
:26
:98
4
17
:27
:29
:12
5
17
:27
:30
:98
4
17
:27
:32
:78
1
17
:27
:34
:28
1
17
:27
:35
:82
8
17
:27
:37
:81
2
17
:27
:39
:31
2
Sensor 2
Sensor 3
Sensor 4
Sensor 5
Sensor 6
33
Após a determinação dos componentes principais (Rabbit3000, ADC0809), surgiu o seguinte
inconveniente: compatibilidade de nível lógico. O módulo Rabbit3000 opera em 3V3 enquanto o
Conversor A/D opera em nível de saída nos padrões TTL.
Segundo a documentação disponível do módulo RCM3000, o mesmo aceita entradas em nível
lógico +5V, porém suas saídas operam em 3V3, situando-se abaixo do nível lógico 1 mínimo para
controle do A/D (Vcc – 1.5 = 3V5). Para solucionar este problema um buffer foi escolhido, no caso
o SN74HC244. Concluímos que o uso deste buffer era desnecessário, pois poderíamos construir um
circuito de “pull-up16” com resistores de 10k, contudo, testes com Rabbit3000 revelaram que não há
necessidade deste buffer nem dos resistores de “pull-up”, em 100% dos casos o A/D foi controlado
com sucesso pelo RCM3000 mesmo com esta diferença lógica entre eles.
Além disso, no início da concepção do hardware, consideramos o uso de um oscilador externo
(cristal de 1Mhz) para ativar o ADC0809, contudo, decidimos após análise mais cuidadosa da
documentação do RCM3000 e testes, implementar em software embarcado o gerador de pulsos em
uma das portas do módulo.
5. CONCLUSÃO
O desenvolvimento do projeto para o sistema de monitoramento de sensores industriais via IP
como Projeto de Formatura apresentado à EESC-USP como parte dos requisitos necessários para a
obtenção da conclusão do curso de Engenharia de Computação foi de fato, muito interessante e
proveitoso. Este trabalho envolveu muitos conceitos, alguns dos quais já haviam sido estudados
durante do decorrer do curso, como microprocessadores, C embarcado, comunicação ethernet e
Java, mas muitos dos temas envolvidos não haviam ainda sido explorados durante a graduação, tais
como os prototipação de circuitos, sensores industriais.... Assim, através deste projeto foi possível
rever alguns assuntos e assimilar novas informações.
Outro aspecto compensador durante o desenrolar do projeto foi o fato de este ter sido
desenvolvido em parceria com outro estudante de graduação do curso de Engenharia de
Computação, Eduardo Siufi Magalhães. Conseguimos determinar bem as competências de cada um
ao projeto, dividindo claramente a responsabilidade com o firmware para mim e software para o
Eduardo e compartilhando o desenvolvimento do hardware. Apesar da divisão, houve uma interação
muito boa e produtiva entre ambas as partes, experiência esta que possibilitou o aprimoramento das
habilidades referentes ao trabalho em grupo sem negligenciar as responsabilidades individuais.
16 Resistores de Pull-Up são usados em design eletrônicos para garantir que o sinal lógico de entrada se mantenha caso dispositivos externos sejam desconectados, também são utilizados para interface de dispositivos que usam voltagem de níveis lógicos diferentes.
34
Como trabalhos futuros referentes a este projeto, posso citar: Finalizar a montagem e
homologação da placa de circuito impresso com sensores reais e implementar a configuração dos
parâmetros (configuração de endereçamento de rede e configuração dos dispositivos no software de
alto nível) fora do tempo de compilação.
6. BIBLIOGRAFIA
1. DataQ. [Online] [Citado em: 18 de Novembro de 2007.] http://www.dataq.com/products/hardware/di710.htm. 2. Dickson. [Online] [Citado em: 15 de Novembro de 2007.] http://www.dicksondata.com/product/model_TK500.php. 3. Rabbit Semiconductor. RabbitCore RCM3000. User's Guide. [Online] [Cited: Novembro 19, 2007.] http://sonoma.edu/users/b/bloomal/data_sheets/RCM3000UM.pdf. 4. —. Rabbit Semiconductor. [Online] Rabbit, 2007. [Citado em: 15 de Novembro de 2007.] http://www.rabbit.com/. 5. National Semiconductor Corporation. ADC0808/ADC0809 8-bit uP Compatible A/D Converters with 8 channel multiplexer. 1995. 6. Brandolim, Rinaldo. Sistema Embarcado de Ultra-Som Com Doppler Pulsado: Desenvolvimento das Interfaces. São Carlos : s.n., 2007. 7. Castro, Eduardo Breviglieri Pereira de. Automação da Produção. [Online] [Citado em: 10 de Novembro de 2007.] http://www.engprod.ufjf.br/epd_automacao/. 8. Medição de Temperatura Usando-se Termopar. Moreira, Lúcia. Setembro de 2002. 9. Kurose, James F. e Ross, Keith W. Redes de Computadores e a Internet. São Paulo : Addison Wesley, 2003. 10. SICA, Carlos. Sistemas Automáticos com Microcontroladores 8031/8051 . s.l. : Editora Novatec, 2006. 11. Staller, Len. Understanding analog to digital converter specifications. Embedded.com. [Online] [Citado em: 10 de Novembro de 2007.] http://www.embedded.com/columns/technicalinsights/60403334?_requestid=690399.