a interaÇÃo de microcontroladores com sistemas de alto nÍvel de processamento

9
A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO Julierme S. de Araújo e Hugo Vieira L. de Sousa Universidade Federal de Pernambuco - UFPE, Centro de Informática – CIn [email protected], [email protected] Resumo Os microcontroladores são “pequenos” componentes eletrônicos, dotados de uma “inteligência” programável, utilizado no controle de processos lógicos. Em muitos casos estes componentes contêm funcionalidades que os possibilitam delegar ações eletronicamente de forma independente sem haver interação alguma com o meio externo. Neste trabalho é apresentada uma abordagem que visa as possibilidades e técnicas de interação dos microcontroladores, com sistemas de alto nível de processamento. Ao contrário de outros sistemas microcontrolados baseados em um MCU sem canal de comunicação com meio externo, esta abordagem da ênfase à possibilidade de fundir conceitos e técnicas computacionais com esses componentes capazes de proporcionar aos dispositivos processamentos lógicos e aritméticos. Promove-se então a concepção de uma nova visão de desenvolvimento de sistemas microcontrolados, totais ou parcialmente integrados a dispositivos microeletrônicos complexos. Este trabalho consiste no uso do microcontrolador PIC18F2550 e de uma aplicação em Java, onde usando a vantagem de uma arquitetura que incorpora o protocolo USB e a tecnologia Java Native Access (JNA) foi possível interar o MCU a aplicação. O sistema de controle de temperatura microcontrolado, experimento proposto como estudo de caso, mostrou- se capaz de interagir de forma eficaz com a aplicação instalada em um computador pessoal. Abstract The microcontrollers are "small" electronic components, with a programmable "intelligence", used to control logical processes. In many cases these components contain features that enable to delegate independents actions electronically without any interaction with the external environment. This work presents an approach aimed at the possibilities and techniques for interaction of microcontrollers with high level processing systems. Unlike other microcontroller systems based on MCU without a channel of communication with the external environment, this approach gives emphasis at the possibility of merging concepts and computational techniques with these components capable of providing to the devices logical and arithmetic processing. It promotes itself then a new vision for the development of microcontroller systems, total or partially integrated in complex microelectronic devices. This work is the use of the PIC18F2550 microcontroller and an application in Java, where the advantage of using an architecture that incorporates the USB protocol and Java Native Access (JNA) could interest the MCU application. The microcontrolled temperature control system, proposed as an experiment of study, was able to interact effectively with the application installed on a personal computer.. Palavras-chave Interação, MCUs, JNA, USB protocol.

Upload: julierme-silva

Post on 10-Aug-2015

58 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

Julierme S. de Araújo e Hugo Vieira L. de Sousa Universidade Federal de Pernambuco - UFPE, Centro de Informática – CIn

[email protected], [email protected]

Resumo Os microcontroladores são “pequenos” componentes eletrônicos, dotados de uma “inteligência” programável, utilizado no controle de processos lógicos. Em muitos casos estes componentes contêm funcionalidades que os possibilitam delegar ações eletronicamente de forma independente sem haver interação alguma com o meio externo. Neste trabalho é apresentada uma abordagem que visa as possibilidades e técnicas de interação dos microcontroladores, com sistemas de alto nível de processamento. Ao contrário de outros sistemas microcontrolados baseados em um MCU sem canal de comunicação com meio externo, esta abordagem da ênfase à possibilidade de fundir conceitos e técnicas computacionais com esses componentes capazes de proporcionar aos dispositivos processamentos lógicos e aritméticos. Promove-se então a concepção de uma nova visão de desenvolvimento de sistemas microcontrolados, totais ou parcialmente integrados a dispositivos microeletrônicos complexos. Este trabalho consiste no uso do microcontrolador PIC18F2550 e de uma aplicação em Java, onde usando a vantagem de uma arquitetura que incorpora o protocolo USB e a tecnologia Java Native Access (JNA) foi possível interar o MCU a aplicação. O sistema de controle de temperatura microcontrolado, experimento proposto como estudo de caso, mostrou-se capaz de interagir de forma eficaz com a aplicação instalada em um computador pessoal.

Abstract The microcontrollers are "small" electronic components, with a programmable "intelligence", used to control logical processes. In many cases these components contain features that enable to delegate independents actions electronically without any interaction with the external environment. This work presents an approach aimed at the possibilities and techniques for interaction of microcontrollers with high level processing systems. Unlike other microcontroller systems based on MCU without a channel of communication with the external environment, this approach gives emphasis at the possibility of merging concepts and computational techniques with these components capable of providing to the devices logical and arithmetic processing. It promotes itself then a new vision for the development of microcontroller systems, total or partially integrated in complex microelectronic devices. This work is the use of the PIC18F2550 microcontroller and an application in Java, where the advantage of using an architecture that incorporates the USB protocol and Java Native Access (JNA) could interest the MCU application. The microcontrolled temperature control system, proposed as an experiment of study, was able to interact effectively with the application installed on a personal computer..

Palavras-chave Interação, MCUs, JNA, USB protocol.

Page 2: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

1 Introdução Com o desenvolvimento tecnológico humano, houve uma demanda por microcomponentes com capacidade de conter funcionalidades capazes de delegar ações eletronicamente de forma independente e onde estes pudessem interagir com as necessidades do usuário final, proporcionando assim melhores resultados na solução de problemas. O surgimento desse perfil de necessidade aguçou os sentidos das equipes de desenvolvimento das grandes empresas, favorecendo a grande disseminação de eletrônicos autônomos onde, em algum ponto de seus projetos de desenvolvimento, foram empregados microcontroladores. No entanto, existem situações onde aplicações microcontroladas necessitam interagir com sistemas com o nível de processamento e armazenamento de dados maiores que as suas.

Com o avanço da tecnologia e a disseminação cada vez maior dos sistemas embarcados muitos chips

microcontroladores (MCU) vêm evoluindo em diversos pontos de sua arquitetura, principalmente nas tecnologias para tornar possível a comunicação com o meio externo. O que se busca de diferente atualmente é a possibilidade de se desenvolver sistemas microcontrolados capazes de interagir com sistemas com alto nível de processamento por meio de protocolos de comunicação cada vez mais modernos. Dessa forma, torna-se possível à implementação de sistemas computacionais interligados a qualquer dispositivo eletroeletrônico na qual se deseja controlar e/ou monitorar.

Este trabalho tem como principal objetivo demonstrar a idéia de interação entre sistemas de alto nível de processamento de dados (como é o caso dos computadores pessoais) e sistemas microcontrolados, que possuem capacidades arquiteturais restritas a pequenas quantidades de memória, processamento e outras características. Partindo deste princípio será possível observar o uso do microcontrolador para solucionar problemas que requerem pouco processamento. Porém a solução destes problemas por parte do MCU ocorrerá simultaneamente ao processo de interação do mesmo com um aplicativo de alto nível, executado em um sistema de grande porte. Será possível visualizar neste estudo técnicas de comunicação entre PC e MCU, entre MCU e sensores e entre MCU e atuadores.

Como forma de obter resultados e exemplificar este objetivo, foi proposto o desenvolvimento de um sistema de controle de temperatura microcontrolado capaz de interagir com uma aplicação instalada em um computador pessoal.

De acordo com o que foi descrito, o foco deste trabalho consiste em propor um modelo de interação entre dois níveis distintos de arquitetura e robustez computacional tornando assim possível analisar o comportamento desta interação.

2 SISTEMAS MICROCONTROLADOS Esta seção deve apresentar conceitos que fundamentam os microcontroladores, abordando temas como sua aplicabilidade, sua conectividade e principais linguagens para a programação de seu firmware.

2.1 Chips Microcontrolador

Chip é todo circuito eletrônico digital construído com uma pastilha de material semicondutor. Apesar de existir constantes pesquisas em torno da descoberta de novos materiais, atualmente o substrato definido como melhor semicondutor é o silício (TORRES, 2001).

O desenvolvimento de um componente programável, que possuísse as funcionalidades de um microprocessador, mas que não tivesse que se interligar com periféricos externos tais como memórias, barramentos de entrada e saída e componentes de temporização, foram características prioritárias para a definição do conceito de microcontroladores (MCU). No entanto, ser um componente compacto e versátil era fundamental, visto que sistemas autônomos, em sua maioria, necessitam de certa mobilidade e/ou são sistemas que prezam pela economia de espaço e energia. Não era necessário um alto nível de processamento de instruções, como os de um microprocessador convencional, já que o componente seria utilizado para delegar tarefas compostas sempre de um problema específico (CORTELETTI, 2006).

Sousa (2003), em seu livro “Desbravando o PIC” define microcontrolador como um “pequeno” componente eletrônico, dotado de uma “inteligência” programável, utilizado no controle de processos lógicos. Matic e Andric (2009) ressaltam que para que um microprocessador seja utilizado, outros componentes devem-lhe ser adicionados, tais como memória e componentes para receber e enviar dados. Em resumo, isso significa que o microprocessador é o verdadeiro coração do computador. Por outro lado, o microcontrolador foi projetado para ter tudo num só. Nenhum outro componente externo será necessário na aplicação, uma vez que todos os periféricos necessários já estão contidos nele. Assim, poupa-se tempo e espaço na construção de dispositivos. É pelos mesmos motivos citados por Matic e Andric (2009) que o MCU é considerado por muitos um microcomputador, visto que internamente possui componentes semelhantes aos de um computador comum, só que em nível de desempenho e tamanho em menores proporções como pôde ser observado na Figura 1.

Page 3: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

Figura 1 - Exemplo de microcontrolador

Fonte - (Corteletti, 2006)

A arquitetura interna de um microcontrolador pode ser baseada nas arquiteturas de Von-Neumann ou em uma arquitetura mais recente denominada arquitetura de Harvard. A arquitetura de Harvard proporciona aos MCUs trabalharem mais rapidamente, pois nesta a memória de dados e a memória de programa são separadas e distintas, possibilitando que uma maior quantidade de dados flua através da unidade central de processamento o que tende a proporcionar ao dispositivo uma maior velocidade de funcionamento (MATIC e ANDRIC, 2009). A microcontroladores com a arquitetura de Harvard dá-se o nome de MCUs Reduced Instruction Set Computer (RISC) e os que possuem a arquitetura de Von-Neumann denominam-se MCUs Complex Instruction Set Computer (CISC) (MATIC e ANDRIC, 2009).

2.2 Aplicabilidade

Não é toda situação que é favorável ao o uso de microcontroladores. Em comparação com processadores de alto nível de processamento, desenvolvidos para processar e executar milhões de instruções por segundo, os MCUs são componentes de baixo nível de processamento, pouca memória e com outras características internas que os restringem ao controle de processos lógicos bem específicos (CORTELETTI, 2009).

O estudo dos requisitos funcionais relacionados ao desenvolvimento de um sistema microcontrolado em boa parte dos projetos é de grande importância, visto que o MCU deverá possuir características em sua arquitetura que possibilite o mesmo executar os processos relacionados a tais funcionalidades. É possível encontrar muitas semelhanças na arquitetura dos microcontroladores dos fabricantes que atualmente estão no topo do desenvolvimento dessa tecnologia a ponto de serem considerados por muitos dispositivos idênticos. Os autores do livro “Microcontroladores e Fine Pitch Grid Arrays (FPGAs)” contextualizam que é injusto se afirmar que microcontroladores como, por exemplo, os PIC da Microchip Technology, os MC da Motorola, os COP da National Semiconductor e os AT da ATMEL Corporation são todos componentes iguais.

Porém é correto ressaltar que são similares e que todos possuem algumas características também presentes em seus concorrentes. Nota-se que existe um conjunto padrão de periféricos que realizam funções semelhantes (ORDONEZ, PENTEADO e SILVA, 2006).

É possível exemplificar essa linha de pensamento dos autores observando o periférico Brown-out-Detect (BOD) que nada mais é que um conversor Analógico / Digital (A/D) reduzido, que tem a função de monitorar constantemente a tensão de alimentação, re-configurando o chip MCU se este cair a níveis críticos e mantendo-o assim até que a tensão retorne para um nível seguro. Para um microcontrolador que não possua BOD ou um mecanismo similar, essas oscilações de energia são perigosas do ponto de vista da confiança. Ou seja, não há garantia de que a execução do programa continue do ponto correto logo após ripples (componente de corrente alternada que incide sobre a corrente contínua ocasionando oscilação na crista da onda) seguidos. O BOD somente muda de nomenclatura entre os MCU citados acima. Por exemplo, no PIC este periférico é chamado de BOD, nos microcontroladores da Motorola é denominado Low Voltage Inhibit (LVI) e nos MCUs da National Semiconductor recebe o nome de Brown out (ORDONEZ, PENTEADO e SILVA, 2006).

2.3 Conectividade

Muitas vezes um sistema microcontrolado necessita que certos parâmetros sejam monitorados e controlados por uma aplicação, em um computador por exemplo. Cabe ao desenvolvedor do sistema decidir por um protocolo de comunicação que se adapte às necessidades esperadas, tornando eficiente a interação do sistema MCU com a aplicação de alto nível. Uma empresa responsável pela fabricação de um microcontrolador, além de se preocupar com os requisitos funcionais em nível de automação, estabelece também quais formas de comunicação certos modelos de chip possuirão.

Alguns fatores influenciam na especificação do protocolo de comunicação a ser utilizado em um sistema em desenvolvimento. Ruídos, velocidade e custo são fortes candidatos a serem levados em consideração no momento da especificação do protocolo de comunicação. Pereira (2007) contextualiza que a escolha entre os tipos de comunicação é um paradoxo da dualidade custo x benefício. É aconselhável que os desenvolvedores de aplicações que fazem uso das interfaces de comunicação sempre tenham em mente esta dualidade. A interpretação das vantagens e desvantagens das técnicas de comunicação define como se comportará o sistema e se a eficiência esperada será alcançada.

2.4 Principais linguagens de desenvolvimento de Fimwares para MCU

As duas linguagens de programação que normalmente são utilizadas ao se desenvolver firmwares para

Page 4: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

dispositivos microcontrolados são a linguagem Assembly e a linguagem C.

O termo que melhor define o processo de criação de um arquivo em linguagem binária é “montagem” (do inglês assembly). Este termo denominou a linguagem de programação que foi criada para facilitar os trabalhos de codificações de um programa de computador (CORTELETTI, 2006). As instruções na linguagem Assembly são denominadas de minemônicos. Manzano (2004) cita em seu livro que é muito mais fácil olhar para um minemônico e lembrar o que ele faz do que seu equivalente em código binário ou hexadecimal, legível apenas pelo microprocessador (CPU) do computador.

O Assembly, assim como toda linguagem de programação, necessita de um ambiente de desenvolvimento para que seja possível criar programas executáveis. A todo programa capaz de compilar um código escrito em linguagem de montagem, tornando-o executável, dá-se o nome de Assembler (montador). Ou seja, é a ferramenta responsável por traduzir o programa fonte (escrito em Assembly) para o programa objeto (programa em código de máquina) a ser interpretado por uma unidade central de processamento como visto na Figura 2 (MANZANO, 2004). A linguagem Assembly é uma tecnologia favorável sempre em situações onde não haja problema quanto ao tempo de desenvolvimento do sistema, que seja necessário um código executável rápido, pequeno e onde o ponto crucial do projeto seja o custo do hardware e a eficiência. Lembrando que, no momento do desenvolvimento destes projetos, pontos negativos como a não portabilidade e alto grau de dificuldade em manutenção do programa, também devem ser levados em conta (CORTELETTI 2006).

Figura 2 - Elementos da programação Assembly

Fonte - (CORTELETTI, 2006)

A linguagem de programação C é totalmente procedural (ações a serem realizadas) e versátil. Graças a isso, essa linguagem supriu algumas das principais deficiências da linguagem Assembly. Ela foi desenvolvida para ser tão eficiente e rápida quanto o Assembly e tão estruturada e

lógica quanto linguagens de alto nível como PASCAL, COBOL (PEREIRA, 2007). Devido a sua proximidade com o hardware e o Assembly, Fábio Pereira (2007) ainda ressalta que C é extremamente eficiente e que de fato, é considerada a linguagem de alto nível mais eficiente atualmente disponível. C é uma linguagem que possui seu processo de transformação de código fonte (gerado pelo programador) em código de máquina totalmente diferente da linguagem Assembly como é possível observar comparando as Figuras 2 e 3.

Para que isso seja possível essa linguagem usa um segundo programa denominado de Compilador. Corteletti (2006) afirma que na maioria dos compiladores o processo é realizado em duas etapas, sendo isso transparente ao usuário, fato este observável na Figura 3.

Figura 3 - Diagrama de programação em linguagem C

Fonte - (CORTELETTI, 2006) Segundo Pereira (2007), a criação de programas para microcontroladores e microprocessadores pode ser uma tarefa bem desgastante à medida que aumenta a complexidade da aplicação em desenvolvimento. O fato da linguagem C ser procedural, ou seja, estruturada, proporciona o desenvolvimento de aplicações complexas de forma mais simples e clara quando comparada com outras linguagens como Assembly. A forma de programação estruturada de C permite também que os programas possuam um grau de reaproveitamento de trechos e sub-rotinas já escritas incomparavelmente maiores do que quando se está programando em Assembly. Várias situações a favor da linguagem C podem ser observadas ao se desenvolver sistemas usando a mesma. No entanto Corteletti (2006), no dossiê técnico desenvolvido para o Centro de Tecnologia de Mecatrônica do SENAI-RS, ressalta que a desvantagem da linguagem C sobre a linguagem Assembly está no consumo de memória. Como o compilador nem sempre consegue cobrir todas as otimizações de código possíveis, em muitos casos é necessário um acréscimo de instruções no código binário (arquivo HEX) gerado, consumindo um pouco mais de memória de programa.

Page 5: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

Contudo é possível que um programador experiente possa gerar programas em linguagem C, refinando-os posteriormente com otimizações que tragam um menor custo de memória, algo muito próximo ao que seria gerado se o programa fosse escrito em Assembly e gastando menos tempo do que se fosse totalmente desenvolvido em tal linguagem. A linguagem C pode se tornar problemática quando trabalhada ignorando certos requisitos de hardware. É possível observar isto com os microcontroladores, já que os mesmos são componentes dotados de pouca capacidade de armazenamento abrigando assim os programadores a trabalharem em seus códigos otimizando-os ao máximo. Mesmo com um alto grau de otimização, Fábio Pereira (2007) contextualiza em seu livro que por mais eficientes que sejam uma linguagem de programação e um compilador, dificilmente eles gerarão um código tão eficiente quanto um bom programador Assembly. A visão de uma programação otimizada com uma lógica favorável ao entendimento e com um código executável a propiciar o processamento rápido de instruções pode ser alcançada fundindo C com Assembly. Pereira (2007) ressalta que de maneira geral pode-se dizer que os principais alvos dessa fusão de linguagens são as rotinas de tratamento de interrupção (nos casos da ocorrência de um elevado número de interrupções num curto espaço de tempo), rotinas de manipulação de dados como conversões binárias/decimal/hexadecimal, dentre outros.

3 DEFINIÇÃO DAS TECNOLOGIAS Esta seção apresentará definições sobre as principais tecnologias aplicadas na pesquisa que demonstrou a interação entre um microcontrolador e um sistema de auto nível de processamento.

3.1 Microcontrolador PIC 18F2550

O microcontrolador usado no sistema que compõe o estudo de caso apresentado neste trabalho foi um PIC com arquitetura de 8bits, denominado PIC 18F2550. Esses MCUs são de fabricação exclusiva da empresa Microchip Technology (2012) que os subdividem em outras famílias por ordem crescente de desempenho e dimensão.

O modelo PIC18F2550, analisado na Figura 4, é um microcontrolador de 28 pinos pertencente à família PIC 18. Dentre as inúmeras características deste MCU as que determinaram sua aplicação neste sistema foram a presença de 24 vias I/O, possibilidade de se trabalhar com uma velocidade de até 48 Mhz o que deu suporte a comunicação USB 2.0 em alta velocidade, resolução máxima de 10 bits para conversão A/D do sinal obtido pelo termistor LM35DZ, baixa faixa de voltagem para tornar possível a ativação do MCU (entre 2 e 5.5 volts) e baixo custo de aquisição.

Figura4 - Diagrama de portas do Pic 18F2550 Fonte - (MICROCHIP TECHNOLOGY, 2012)

3.2 Termistor LM35

O LM53 é um componente desenvolvido pela National Semiconductor, empresa do ramo tecnológico especializada no desenvolvimento de Circuitos Integrados (ICs) e semicondutores. Este componente é um termistor de precisão que possui um output linear que varia de 10mv para cada grau Celsius registrado de acordo com a temperatura do ambiente em que ele se encontrar, independente da alimentação ser simples ou simétrica. Seu input para alimentação é qualquer valor entre 4 e 30Vdcc tendo também para um dos seus três pinos o valor GND como ilustrado na Figura 5.

Figura 5 - Diagrama de conexão do LM35DZ Fonte - (NATIONAL SEMICONDUCTOR, 2012)

Ao se trabalhar com o LM35 deve-se estar ciente das suas limitações técnicas bem como das suas facilidades e vantagens. Uma das principais vantagens que torna esse termistor popular é o fato de ser dispensável qualquer forma de calibração externa visando tornar preciso os valores referentes à temperatura.

3.3 O barramento USB do PIC e sua biblioteca de comunicação externa O desenvolvimento de dispositivos microcontrolados utilizando o protocolo de comunicação USB tornou-se uma possibilidade concreta primeiramente com os MCU da família PIC18, de 8 bits, da Microchip Technology (2012). Para tornar possível a comunicação USB entre um microcontrolador PIC e uma aplicação rodando, por exemplo, em um computador pessoal a empresa desenvolvedora desse MCU disponibiliza para os desenvolvedores além de documentações envolvendo esse protocolo, arquivos de sistema necessários para aplicar essa tecnologia. O pacote que a Microchip

Page 6: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

Technology fornece para os desenvolvedores tornarem possível a comunicação com o sistema operacional Windows através do barramento USB é composto por seis arquivos, onde o mchpusb.sys, o picusb.inf e o arquivo mchpapi.dll são de grande importância para o desenvolvedor. O picusb.inf é o arquivo que irá conter as configurações referentes ao dispositivo USB de destino (neste caso a aplicação microcontrolada) e também informações que serão visualizadas quando o dispositivo for reconhecido pelo sistema operacional. O mchpusb.sys é o driver de reconhecimento do microcontrolador que possui a tecnologia USB inserida em sua arquitetura. No momento que o sistema microcontrolado é conectado ao computador é requisitado esse driver. Se as configurações definidas no arquivo picusb.inf estiverem compatíveis com as encontradas no firmware do microcontrolador o driver é reconhecido com sucesso pelo sistema operacional. O arquivo mpusbapi.dll é uma biblioteca dinâmica que possui as sete funções necessárias para estabelecer um canal de comunicação com o dispositivo microcontrolado. O diagrama ilustrado na Figura 8 é composto por essas sete funções.

Figura 8 - Funções para implementação do protocolo USB

Fonte - (MICROCHIP TECHNOLOGY, 2012)

4 PROPOSTA DE INTERAÇÃO ENTRE

MICROCONTROLADOR E SISTEMA DE ALTO

NÍVEL DE PROCESSAMENTO

Nesta seção, serão descritas informações sobre a proposta de interação entre o sistema microcontrolado e o de alto nível de processamento assim como os próprios pontos da proposta como: informações sobre a pesquisa, o cenário de teste e a analise e apresentação dos dados.

4.1 A pesquisa

Podemos afirmar que a natureza dessa pesquisa é aplicada, por que é dirigida a resolução de problemas específicos, no caso desta proposta, ela tem por objetivo interagir dois níveis distintos de arquitetura e robustez computacional.

• Fonte de dados: Como esta proposta visa tronar possível a interação entre duas arquiteturas computacionais distintas um segundo dispositivo de arquitetura de baixo nível de processamento foi desenvolvido. Desta forma dados de interação puderam ser coletados. O dado em questão é a temperatura interna do dispositivo desenvolvido.

• Levantamento dos dados: Parte dos dados será coletada do sistema microcontrolado. Em seguida novos dados serão coletados através de uma nova fonte de medição

• Amostra: Foram coletados do sistema dados térmicos entre um determinado intervalo onde estes servirão de referência ao se comparar com uma segunda fonte de medição.

4.2 O cenário de teste

Para tornar possível o processo de interação entre um aplicativo de alto nível, executado em PC, e um dispositivo microcontrolado foi necessário desenvolver tanto o aplicativo quanto o dispositivo. Ao equipamento microcontrolado deu-se o nome de Cúpula Térmica e a aplicação a ser executada em um microcomputador denominou-se TermoPic 1.0.

4.2.1 A cúpula térmica

A cúpula ou estufa térmica é um ambiente composto de material plástico por esse possuir uma relevante capacidade de isolamento térmico e por proporcionar uma transparência favorável à visibilidade interna assim como o acrílico, material no qual também poderia ter sido utilizado na montagem deste ambiente. A cúpula terá sua temperatura interna monitorada constantemente a partir do momento que o sistema a qual ela está conectada for ativado. A Figura 6 além de ilustrar a cúpula, localizada a direita na imagem, exibe também, na parte central da mesma, a sua Unidade Central de Processamento e a esquerda os cabos de alimentação do sistema de aquecimento e resfriamento assim como o cabo de dados USB para tomar possível o controle e/ou monitoramento do ambiente através de um computador pessoal, por exemplo.

Figura 6 - Cúpula (estufa) térmica conectada a sua Unidade

Central de Processamento

Page 7: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

É a Unidade Central de Processamento da Cúpula (UCPC) que, utilizando o microcontrolador PIC 18F2550, controla todas as funcionalidades do ambiente como, por exemplo, a abertura ou não do duto de ventilação e exaustão para que conseqüentemente seja possível o ligar ou o desligar do sistema de resfriamento ou de aquecimento. Além de funcionalidades de controle é de responsabilidade da UCPC exibir em uma tela de LCD 2x16 (2 linha e 16 colunas), localizada na área frontal da UCPC, resultados menos complexos obtidos no decorrer do funcionamento do sistema. Por fim, é a UCPC que, utilizando a comunicação USB 2.0, faz a interface de comunicação entre um dispositivo com alto nível de processamento, como um notebook, e a Cúpula, possibilitando assim, o controle e/ ou monitoramento através de um aplicativo (instalado neste dispositivo com alto nível de processamento), responsável por gerar uma maior quantidade de informações e possibilitar a reconfiguração do sistema em tempo real.

É possível observar na Figura 7 uma ilustração mais detalhada da cúpula térmica. Para os quatro pontos citados na figura têm-se no ponto 1 o termistor LM35DZ, o ponto 2 as lâmpadas incandescentes que representam o sistema de aquecimento do sistema, no ponto 3 os dois coolers onde o inferior promove a ventilação, o superior a exaustão e ambos, em conjunto, correspondem ao sistema de resfriamento do sistema e no ponto 4 os motores de Corrente Contínua (CC) responsáveis pelo bloquear e desbloquear dos dutos de ventilação e exaustão.

Figura 7 - Cúpula (estufa) térmica

4.2.2 A aplicação de alto nível

A linguagem de programação utilizada no desenvolvimento da aplicação de alto nível, denominada de TermoPic 1.0, foi a linguagem Java. Para a Máquina Virtual Java (JVM) qualquer linguagem que não seja Java é considerada uma linguagem nativa. As tecnologias que esta linguagem provê, visando possibilitar ao desenvolvedor interações com outras linguagens, são as denominadas Java Native Access (JNA) e Java Native Interface (JNI) (ORACLE, 2012). Neste projeto optou-se pela tecnologia JNA por ela ser uma evolução do JNI. Ao aplicar esta tecnologia foi possível carregar o arquivo mpusbapi.dll dentro do código Java que estrutura a aplicação de alto nível.

Arquivos com extensão *.dll são bibliotecas dinâmicas de compartilhamento desenvolvidas pela Microsoft especificamente para os Sistema Operacionais Microsoft Windows. O arquivo mpusbapi.dll passa agora a ser visto pela JVM como uma biblioteca nativa da linguagem, tornando possível o uso das funções do protocolo USB.

O TermoPic 1.0 foi desenvolvido de uma forma que fosse possível controlar e/ou monitorar todos os eventos que venham a correr no decorrer do funcionamento do sistema. A Figura 9 ilustra a interface gráfica do aplicativo onde a mesma é composta à sua direita pelos indicadores de estabilidade dos componentes USB, PIC e S.T. (Sensor Térmico). Ainda nesta área encontram-se os gráficos de variação térmica, de histórico térmico e a definição do período de atualização desses gráficos, em milissegundos. Na parte central do aplicativo tem-se a estrutura gráfica que representa os dutos de ar e a exibição dos valores do intervalo térmico que foram definidos no painel de controle. Na área à esquerda estão todos os componentes que exibem valores referentes à temperatura, como por exemplo, a escala térmica.

Figura 9 - Aplicação TemoPic 1.0

4.2.3 Análise e apresentação dos dados A analise de eficiência do sistema foi realizada tendo como parâmetro a comparação entre os dados oriundos do sistema e aqueles coletados por uma segunda fonte de medição. Com o termistor devidamente montado e com o sistema em funcionamento foi possível observar a relação conjunta entre o sensor e o MCU. Para verificar o processo de captação, atualização e conseqüentemente de precisão térmica do sistema em relação à outra fonte de medição térmica, passou-se a monitorar a temperatura interna da cúpula com um termômetro de mercúrio. O mesmo ambiente e os mesmos intervalos de tensão foram mantidos de forma a tornar possível uma comparação entre os dados já coletados e os que ainda seriam colhidos. O envio dos valores analógicos emitidos pelo LM35DZ, em milivolts (mv), e a conversão A/D, para sua respectiva temperatura em graus Celsius (ºC) pelo microcontrolador foi transcrita na Tabela 1, entre um intervalo de teste que vai de 24,0ºC a 27,0ºC.

Page 8: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO

Tensão (mv)

ºC Mercúrio

ºC LM35DZ

º C Sistema

239 24,0 24,01 24

244 24,5 24,50 24

249 25,0 24,99 25

254 25,0 25,48 25

259 25,5 25,97 26

263 26,0 26,46 26

268 26,5 26,95 27

273 27,0 27,44 27

Tabela1 - Comparação entre ºC no Mercúrio, ºC no LM35DZ e º C no Sistema

Os requisitos funcionais do sistema (o estudo de caso) definem que valores fracionados da temperatura são irrelevantes, dessa forma foi definido um padrão de arredondamento onde valores que possuem partes fracionadas acima de 0,50 décimos deverão ter sua parte inteira somada a mais um (+1). Para valores iguais ou abaixo de 0,50 décimos deve-se ignorar a parte fracionada e trabalhar somente com a parte inteira. Como exemplo, temos 25,48°C, o quarto valor da escala de temperatura listado na Tabela 1, que para o sistema equivale a exatamente 25ºC visto que sua parte fracionada é menor que 0,50 décimos. Já para os valores 25,97ºC e 26,95ºC, da mesma tabela, o sistema interpretará como sendo 26ºC e 27ºC, respectivamente, já que 0,97 e 0,95 são frações maiores que 0,50.

5 CONCLUSÃO

Com base nos dados obtidos e nas analises efetuadas, pode-se concluir que a interação entre a Cúpula Térmica, sistema microcontrolado utilizado nesta pesquisa, comportou-se de forma positiva ao interagir com o aplicativo TermoPic, este instalado em um microcomputador. Quando comparado os dados térmicos obtidos pelo sistema com dados oriundos de outro sistema de medição ficou claro o potencial da interação entre níveis distintos de arquiteturas computacionais. As tecnologias estudadas neste trabalho não se resumem às funcionalidades na qual elas foram empregadas. Este é sem sombra de dúvida o mais importante dos benefícios adquiridos com a finalização do projeto. Como exemplo cita-se o processo de monitoramento térmico da cúpula, onde utilizando de técnicas semelhantes torna-se possível monitorar inúmeros ambientes e objetos como motores automotivos e industriais, radiadores, transformadores de alta potência, etc. O mesmo processo de conversão A/D pode ser utilizado em um sistema que monitora a quantidade de cargas restantes em baterias. Para o uso do protocolo USB 2.0 as funcionalidades e possibilidades são diversas. A mesma lógica realizada para tornar possível a interação entre o aplicativo e o

sistema microcontrolado pode ser utilizada como parte de outros sistemas mais complexos ou não. Em relação à linguagem de alto nível Java, utilizada no desenvolvimento do aplicativo TermoPic 1.0, a técnica de acesso a linguagens nativas (JNA) reforçou ainda mais o conceito de linguagem flexível e adaptável que a caracterizou. Outro benefício adquirido referente à linguagem de alto nível Java foi à possibilidade de se observar na prática a importância do uso de determinados padrões de projetos.

Enfim, é correto afirmar que as vantagens que foram adquiridas com o término deste projeto serão certamente reaplicadas em projetos futuros.

REFERÊNCIAS

CORTELETTI, Daniel. “Introdução a Programação de Microcontroladores Microchip Pic.” 2006. [Disponível on-line: http://www.sbrt.ibict.br/dossie-tecnico/downloadsDT/NTE=] Acesso em: 09 Mar. 2012. MANZANO, José Augusto dos Santos N. G.. “Fundamentos em Programação Assembly Para computadores IBM: PC a partir dos microprocessadores Intel 8086/8088.” 2ª ed. São Paulo: Érica Editora, 2004. MATIC, Nebojsa; ANDRIC, Dragan. “Ebook - The Pic Microcontroller: The Book 1” 2007. Editora. [Disponível on-line: http://ebookbrowse.com/gdoc.php?id=186117780&url=4dcb4aefcf738d76b057d4626b697196] Acesso em: 8 Mar. 2012. MICROCHIP TECHNOLOGY INC. 2011. [Disponível on-line: http://www.microchip.com] Acesso em: 01 Mar. 2012. NATIONAL SEMICONDUCTOR. 2011. [Disponível on-line: http://www.ti.com/lit/ds/symlink/lm35.pdf] Acesso em: 01 Mar. 2012. ORDONEZ, Edward David Moreno; PENTEADO, Cesar Giacomini; SILVA, Alexandre César Rodrigues da. “Microcontroladores e FPGAs: Aplicação e Automação”. São Paulo: Novatec Editora, 2006. PEREIRA, Fábio. “Microcontroladores PIC: Programação em C” 6 ª ed. São Paulo: Érica Editora, 2007. SOUSA, David José de. “Desbravando o PIC” 6ª ed. São Paulo: Editora Érica, 2003. ORACLE. 2011[Disponível on-line: http://www.sun.com] Acesso em: 29 Fev. 2012. TORRES, Gabriel. “Hardwares: Curso completo” 4ª ed. Rio de Janeiro: Axcel Books do Brasil Editora, 2001.

Page 9: A INTERAÇÃO DE MICROCONTROLADORES COM SISTEMAS DE ALTO NÍVEL DE PROCESSAMENTO