• Nenhum resultado encontrado

Desenvolvimento de software e hardware embutido para um sistema de estacionamento

N/A
N/A
Protected

Academic year: 2021

Share "Desenvolvimento de software e hardware embutido para um sistema de estacionamento"

Copied!
172
0
0

Texto

(1)UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA POLITÉCNICA DEPARTAMENTO DE ELETRÔNICA E DE COMPUTAÇÃO. DESENVOLVIMENTO DE SOFTWARE E HARDWARE EMBUTIDO PARA UM SISTEMA DE ESTACIONAMENTO. Autor: ___________________________________________________________________ Mauricio Lopes de Oliveira. Orientador:_______________________________________________________________ Prof. Manuel Lois Anido, Phd. – NCE/UFRJ. Co-orientador:____________________________________________________________ Prof. José Paulo Brafman, Msc. – EP/UFRJ. Avaliador:_______________________________________________________________ Prof. Carlos José Ribas D’Avila, Msc. – EP/UFRJ. DEL 09/2006.

(2) DEDICATÓRIA. Ao meu avô Alcides e minha avó Luzia, que não estão ao meu lado para compartilhar os momentos marcantes em minha vida, como este.. ii.

(3) AGRADECIMENTOS. À minha amada esposa Fabiana, que me acolheu nas minhas angústias. Aos meus pais por acreditarem em mim, quando nem mesmo eu acreditava. Ao Prof. Manuel Lois, por sua orientação e compreensão. Aos amigos Daniel, Raphael e Vinícius Por suas participações. E principalmente a Deus, por sempre me dar muito além do que eu almejava.. iii.

(4) RESUMO Este trabalho final de graduação descreve a concepção, o projeto e a implementação de um sistema embutido baseado na linha de microcontroladores PIC, cujo hardware é testado através da implementação de uma aplicação de um sistema de controle de estacionamento de automóveis. Este trabalho faz uma descrição das diversas tecnologias estudadas para alcançar os objetivos propostos e descreve o projeto e a implementação do hardware e do software empregados. Ele também descreve a metodologia usada e todo o processo de desenvolvimento desde a concepção e projeto até a implementação do sistema proposto. O hardware desenvolvido é razoavelmente potente e genérico, considerando-se um sistema embutido com microcontrolador PIC, e pode ser usado em diversas aplicações, não se limitando à aplicação apresentada, a qual foi desenvolvida pelo autor em conjunto com alunos do curso de Ciência da Computação da UFRJ. O sistema possibilita o controle de um estacionamento, lidando com clientes avulsos (ou rotativos) e mensalistas e permite registrar placas, marcas, tabelas de preços e clientes mensalistas, além de calcular o tempo de permanência e o valor a ser pago pelo usuário.. iv.

(5) SUMÁRIO Dedicatória .............................................................................................................................................. ii Agradecimentos...................................................................................................................................... iii Resumo................................................................................................................................................... iv Sumário ................................................................................................................................................... v Índice de figuras .................................................................................................................................... vii Índice de tabelas ..................................................................................................................................... ix 1 Introdução ............................................................................................................................................ 1 1.1 Importância do tema ................................................................................................................ 1 1.2 Objetivos do Projeto ................................................................................................................ 2 1.3 Organização do trabalho final ................................................................................................. 2 2 Revisão Bibliográfica........................................................................................................................... 3 2.1 Introdução................................................................................................................................ 3 2.2 Bibliografia revisada ............................................................................................................... 3 2.2.1 Microcontroladores analisados .................................................................................... 3 2.2.2 Artigos e produtos revisados........................................................................................ 5 2.3 Conclusões da Revisão Bibliográfica ............................................................................. 6 3 Revisão das tecnologias utilizadas no projeto...................................................................................... 7 3.1 Introdução................................................................................................................................ 7 3.2 Características gerais da família de microcontroladores PIC utilizada ................................. 10 3.2.1 Microcontroladores utilizados no projeto .................................................................. 13 3.4 Componentes externos utilizados no projeto......................................................................... 16 3.4.1 EEPROM 24C32........................................................................................................ 16 3.4.2 RAM 62256 ............................................................................................................... 17 3.4.3 MAX 232 ................................................................................................................... 18 3.4.4 PCF 8583 ................................................................................................................... 19 3.4.4 LCD............................................................................................................................ 20 v.

(6) 3.3 Protocolos utilizados no projeto ............................................................................................ 21 3.3.1 Protocolo I2C ............................................................................................................. 21 3.3.2 Protocolo de comunicação para teclado PS/2 ............................................................ 22 3.4 Softwares e programadores de microcontroladores utilizados no projeto............................. 23 3.4.1 Softwares utilizados ................................................................................................... 23 3.4.2 Programador utilizado................................................................................................ 25 3.5 UML ...................................................................................................................................... 25 4 Concepção e projeto do sistema ......................................................................................................... 26 4.1 Introdução.............................................................................................................................. 26 4.2 Funções e requisitos de um sistema de estacionamento ........................................................ 26 4.3 Requisitos de hardware do sistema de estacionamento ......................................................... 30 4.4 Requisitos básicos de um S.E. para uso geral........................................................................ 31 5 Implementação e resultados ............................................................................................................... 41 5.1 Introdução.............................................................................................................................. 41 5.2 Implementação do software................................................................................................... 41 5.3 Implementação do hardware.................................................................................................. 46 5.4 Resultados ............................................................................................................................. 51 6 Conclusões ......................................................................................................................................... 54 6.1 Resumo do trabalho............................................................................................................... 54 6.2 Principais dificuldades........................................................................................................... 55 6.3 Conclusões............................................................................................................................. 56 6.4 Trabalhos futuros................................................................................................................... 57 Bibliografia utilizada............................................................................................................................. 58 Referências............................................................................................................................................ 59 Apêndice A – Listagem do código desenvolvido.................................................................................. 62 Apêndice B – Manual de uso das Bibliotecas usadas no Hardware.................................................... 135 Apêndice C – Glossário do Sistema de Estacionamento..................................................................... 144 Apêndice D – Análise de requisitos do Sistema de Estacionamento .................................................. 148 vi.

(7) ÍNDICE DE FIGURAS Figura 1 - Níveis de abstração do processo de desenvolvimento de sistemas embutidos........... 10 Figura 2 – Um esquema simplificado do microcontrolador 16F64 ............................................ 11 Figura 3 – Pinagem do 18F452 e do 18F4620 ............................................................................ 15 Figura 4 - Pinagem da EEPROM 24C32 .................................................................................... 17 Figura 5 – Identificação da EEPROM ........................................................................................ 17 Figura 6 – Pinagem do 62256 ..................................................................................................... 18 Figura 7 – Diagrama do CI MAX232 ......................................................................................... 19 Figura 8 – Esquema de utilização do PCF 8583 ......................................................................... 19 Figura 9 – Comunicação I2C ...................................................................................................... 22 Figura 10 – Comunicação do teclado com o computador........................................................... 23 Figura 11 – Comunicação do computador com o teclado........................................................... 23 Figura 12 – Ligação do PIC com o LCD .................................................................................... 32 Figura 13 – Diagrama de tempo do ciclo de escrita do LCD...................................................... 33 Figura 14 – Ligação do PIC com o teclado PS/2 ........................................................................ 33 Figura 15 – Ligação do PIC com o 24C32 e o PCF8583............................................................ 34 Figura 16 – Diagrama de tempo dos dispositivos I2C ................................................................ 34 Figura 17 – Comunicação serial no MAX232 ............................................................................ 35 Figura 18 – Ligação do PIC com o MAX232 ............................................................................. 35 Figura 19 – Ligação do PIC com a memória externa 62256....................................................... 36 Figura 20 – Diagrama de tempos de leitura na memória 62256 ................................................. 36 Figura 21 – Diagrama de tempos de escrita na memória 62256 ................................................. 37 Figura 22 – Ligação do PIC com a interface paralela................................................................. 38 Figura 23 – Diagrama de tempos da interface paralela............................................................... 39 Figura 24 – Diagrama esquemático do hardware projetado........................................................ 40 vii.

(8) Figura 25 – Sistema final implementado .................................................................................... 46 Figura 26 – Visão de frente do sistema....................................................................................... 47 Figura 27 – Visão lateral direita do sistema................................................................................ 48 Figura 28 – Visão frontal do sistema .......................................................................................... 49 Figura 29 – Visão lateral esquerda do sistema............................................................................ 50 Figura 30 – Disposição dos componentes na placa do sistema................................................... 51 Figura 31 – Tabela de marcas cadastradas.................................................................................. 51 Figura 32 – Tabela de preços para automóveis de classe 1......................................................... 52 Figura 33 – Ticket de entrada ..................................................................................................... 52 Figura 34 – Listagem do pátio .................................................................................................... 52 Figura 35 – Ticket de saída........................................................................................................ 53. viii.

(9) ÍNDICE DE TABELAS Tabela 1 – Características do 18F452 e 18F4620 ....................................................................... 14 Tabela 2 – Pinagem padrão do LCD........................................................................................... 20 Tabela 3 – Valores típicos do diagrama de tempo do LCD medidos em nanosegundos ............ 32 Tabela 4 – Valores dos tempos dos diagramas da memória 62256 ............................................ 37. ix.

(10) 1 INTRODUÇÃO A computação está cada vez mais presente, e cada vez mais importante no nosso cotidiano. Associada as outras tecnologias, a computação oferece uma enorme gama de produtos e serviços que servem para melhorar a qualidade de vida das pessoas.. Há inúmeros exemplos de produtos com. serviços sofisticados que só com o auxílio de computação é possível prover, como por exemplo: eletrodomésticos e automóveis inteligentes, equipamentos médicos de última geração, etc. Neste cenário, tem se tornado cada vez mais importante, embutir placas eletrônicas com microcontroladores dentro dos equipamentos, a fim de dar-lhes maior capacidade para prover novas funções, para substituir partes mecânicas ou economizar energia, entre outras coisas. A aplicação de microcontroladores e de outros circuitos integrados dentro de equipamentos tornou-se muito importante, tanto do ponto de vista econômico quanto estratégico, fazendo com que muitas universidades e empresas criassem cursos, departamentos, ou áreas denominadas Sistemas Embutidos ou Sistemas Embarcados, para estruturar melhor as pesquisas e o desenvolvimento destes tipos de sistemas.. 1.1 IMPORTÂNCIA DO TEMA Atualmente é muito comum haver pelo menos um computador pessoal nas residências. Da mesma maneira, há diversos sistemas que ficam embutidos dentro de aparelhos facilmente encontrados nos lares: Celulares, lavadoras, automóveis, microondas, TVs, DVD’s, etc. Estatísticas atuais indicam que os microprocessadores usados em PC’s representam apenas 3% do total de microprocessadores e microcontroladores fabricados no mundo [27]. Em termos de valor de produto, os computadores e os notebooks juntos representam apenas 30% do valor do somatório de todos os outros produtos que usam microprocessadores e microcontroladores em sistemas embutidos, tais como máquina de lavar, microondas, automóveis e aviões [27]. Portanto, os Sistemas Embutidos são uma realidade no contexto da nova economia, que consiste na combinação do processo da globalização e da alta tecnologia, na qual os resultados-chave e os ativos produtivos são fundamentalmente intelectuais – informação e conhecimento – e não físicos. Embora na nova economia se tenha dado muita atenção ao desenvolvimento de software e telecomunicações, a nova economia, que faz uso intensivo de informação, engloba também o desenvolvimento de sistemas embutidos. A evolução tecnológica dos softwares de desenvolvimento e das técnicas de fabricação de CI’s tem ocasionado uma redução nos custos de produção dos Sistemas Embutidos. Dessa forma, observase uma diminuição dos preços de venda de produtos baseados em Sistemas Embutidos. Ou seja, novas.

(11) tecnologias proporcionam preços mais baratos e fazem com que Sistemas Eletrônicos Embutidos sejam cada vez mais utilizados dentro de produtos aos quais eles são agregados. A facilidade de desenvolvimento e o baixo custo têm proporcionado um maior interesse por parte das indústrias e das universidades por Sistemas Embutidos, que além de um custo cada vez mais baixo, apresentam uma crescente flexibilidade, capaz de permitir sua utilização em uma grande gama de aplicações.. 1.2 OBJETIVOS DO PROJETO O projeto descrito neste trabalho aborda a concepção, o projeto e a implementação do hardware de um sistema embutido com características suficientemente genéricas para poder ser utilizado em gama razoável de aplicações. Para testar o hardware proposto, desenvolveu-se uma aplicação que consiste num sistema para o controle de estacionamentos pequenos. O hardware não está limitado a esta aplicação e pode ser utilizado como plataforma de desenvolvimento de outras aplicações.. 1.3 ORGANIZAÇÃO DO TRABALHO FINAL Neste item, são mencionados os capítulos descritos neste trabalho e seu conteúdo. O capítulo 1 aborda a importância do tema, os objetivos propostos e o roteiro deste trabalho. O capítulo 2 faz uma revisão bibliográfica, analisa as principais aplicações encontradas que possuem alguma relação com o trabalho aqui apresentado, discute algumas famílias de microcontroladores e justifica a escolha do microcontrolador utilizado. O capítulo 3 discute as tecnologias relevantes utilizadas no desenvolvimento do sistema apresentado. O capítulo 4 apresenta a concepção e o projeto do sistema desenvolvido, mostrando as características e necessidades de um sistema de estacionamento, apresentando e justificando as escolhas feitas. O capítulo 5 descreve a implementação do hardware e do software, apresentando fotos do sistema e uma breve descrição das funções contidas nas bibliotecas desenvolvidas. Por fim, o capítulo 6 apresenta as conclusões deste trabalho e propõe alguns temas para evolução deste projeto.. 2.

(12) 2 REVISÃO BIBLIOGRÁFICA 2.1 INTRODUÇÃO Devido à amplitude do tema Sistemas Embutidos, no qual este trabalho se insere, esta revisão bibliográfica analisa algumas pesquisas e produtos que possuem alguma relação com o trabalho aqui apresentado.. 2.2 BIBLIOGRAFIA REVISADA 2.2.1 MICROCONTROLADORES ANALISADOS Para que os Sistemas Embutidos tenham um custo baixo e tamanho reduzido, é necessário fazer uso de poucos componentes no circuito. Por este motivo, geralmente dá-se preferência ao uso de microcontroladores no projeto de Sistemas Embutidos (ou sistemas embarcados), pois eles integram, numa única pastilha, um microprocessador e vários outros dispositivos como, conversores analógicodigitais (AD), memórias, temporizadores, interface de comunicação serial, etc. Deste modo, permitem redução de custos e de tamanho físico, além de conferir versatilidade ao hardware. Existem várias famílias de microcontroladores com recursos bastante variados e, por isso há diferentes escolhas possíveis de microcontroladores, que passaremos a analisar a seguir. Os microcontroladores 8051 [7] foram lançados pela INTEL, no início da década de 80, e são usados em várias aplicações. A família de microcontroladores 8051, conhecida por família MCS-51, é produzida por diversos fabricantes, tais como Intel, Philips e Siemens. Estes fabricantes têm adicionado periféricos para o 8051, como: interfaces I2C [8], conversores analógico digitais (A/D), modulação por largura de pulso (PWM), etc. As principais características normalmente encontradas são: 4 portas de 8 bits, um ciclo de instrução igual a 12 ciclos de clock, 2 temporizadores/contadores de 16 bits, 1 interface UART, entre outros. O 8051 geralmente possui poucas portas de entrada e saída (E/S), principalmente se for usada memória externa para expansão da memória interna de dados ou de programa, o que compromete 2 portas do 8051. Além disso, como cada ciclo de instrução ocupa 12 ciclos de clock, o 8051 necessita de um clock elevado para um ciclo de instrução considerável, o que gera um consumo de energia mais elevado do que em outros microcontroladores. Uma outra desvantagem da família MCS-51, em relação a outros microcontroladores como o PIC, por exemplo, é a pouca densidade de código. Os microcontroladores ARM [9] fazem parte de uma família de microcontroladores RISC de normalmente 32 bits, que foi desenvolvida para ter o melhor desempenho possível dentro das seguintes limitações: ser simples, ocupar pouca área e ter baixo consumo de energia. Apesar de possuir um conjunto de instruções muito simples se comparado com processadores CISC, o ARM tem instruções mais complexas do que aquelas que um processador RISC normalmente oferece. O baixo.

(13) consumo de energia em relação a processadores CISC, como, por exemplo, o Pentium, é alcançado através de três fatores: simplicidade do circuito, pipeline curto e um projeto que privilegia o mínimo consumo de energia sempre que o processador não estiver em operação. Devido às suas características de ocupar pouca área e de apresentar um baixo consumo de energia (e ao mesmo tempo apresentar um bom desempenho), o processador ARM é muito utilizado em aplicações complexas que necessitem de um baixo consumo de energia, como PDAs, video games (Nintendo Game Boy Advance), etc. Apesar de ser um microcontrolador/microprocessador rápido e com baixo consumo de energia, as ferramentas de desenvolvimento e os próprios chips custam mais caro do que o PIC ou o 8051, o que dificulta o desenvolvimento baseado na linha ARM. Além disso, microcontroladores ARM não são facilmente encontrados com encapsulamento DIP, o que dificulta a montagem de protótipos. A linha de microcontroladores M68HC11 [10] é uma família de microcontroladores de 8 bits fabricados originalmente pela Motorola e agora, produzidos pela FreeScale Semiconductor. Os microcontroladores M68HC11 geralmente possuem 5 ports e podem operar com memória externa de programa ou dados. Porém, quando for usada memória externa, os ports B e C são usados para barramento de endereço e de dados respectivamente. Os microcontroladores M68HC11 possuem geralmente: EEPROM, temporizadores, conversor A/D, clock interno de 2 MHz, gerador PWM, interface RS-232 e SPI. Estes microcontroladores tem ferramentas de desenvolvimento comercializadas exclusivamente pela FreeScale Semiconductor e, assim, seu uso ocasiona um alto investimento inicial, pois não existem muitas alternativas de sistema de desenvolvimento freeware para microcontroladores Motorola como existem por exemplo para a linha PIC. Uma outra linha de microprocessadores recentemente criada pela FreeScale Semiconductor é o COLDFIRE, que possui arquitetura RISC com tamanho de instruções de 16, 32 ou 48 bits, resultando numa melhor densidade de código, quando comparado com microprocessadores RISC de 32 bits tradicionais. O COLDFIRE é bastante usado em aplicações complexas, como PDAs, vídeo-games, etc. No entanto, além de possuir as mesmas desvantagens da linha M68HC11 citada anteriormente, o COLDFIRE não é facilmente encontrado com encapsulamento DIP como na linha PIC, por exemplo, dificultando a montagem de protótipos. Microcontroladores PIC [11] - Peripherical Interface Controller- é uma família fabricada pela Microchip Technology com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC com larguras de palavra de 12, 14 ou 16 bits. Estes microcontroladores trabalham geralmente com velocidades de até 40 MHz usando ciclo de instrução de quatro períodos de clock, o que permite uma velocidade de no máximo 10 MIPS Como o clock pode variar desde 32KHz até 40MHz (conforme o modelo), pode-se estabelecer a velocidade de acordo com a necessidade, economizando energia. Os microcontroladores PIC são encontrados em chips de 6 a 100 pinos em diversos encapsulamentos (SOT23, DIP, SOIC, TQFP, etc). Seus principais periféricos internos (a disponibilidade varia conforme o modelo) são: conversores A/D de 8 a 12 bits, 4.

(14) temporizadores e contadores de 8 e 16 bits, comparadores analógicos, USART, controladores de comunicação I2C, controladores PWM, watchdog timer, portas digitais com capacidade de 20mA (fornecer ou drenar) para acionar circuitos externos e osciladores internos de 4Mhz. Existem vários fabricantes de ferramentas de desenvolvimento para PICs e algumas são disponibilizadas gratuitamente na Internet (apesar de terem limitações). Consequentemente é fácil e, até certo ponto, barato obter um programador de PIC ou um compilador. Isso tornou o PIC muito popular, facilitando a compra destes microcontroladores.. 2.2.2 ARTIGOS E PRODUTOS REVISADOS O trabalho em [1] tem como objetivo implementar um sistema de automação residencial acessível à distância pela Internet com os dispositivos da casa interligados pelo protocolo CAN. O sistema se baseia na comunicação entre um computador servidor localizado na residência que contém os eletrodomésticos que serão controlados e um navegador cliente com uma interface amigável que envia pacotes ao servidor que se encarregará de tratá-los. Ao receber Estes pacotes de controle enviados pelo cliente, o servidor se comunica através de uma interface RS-232 com um controlador mestre, que realiza a codificação dos dados recebidos pelo servidor para o protocolo CAN e transmite o comando para placas eletrônicas que fazem o acionamento do dispositivo. As placas eletrônicas e o controlador mestre utilizam microcontroladores 68HC11 da Motorola. O trabalho em [2] consiste em um sistema portátil direcionado a deficientes surdos-mudos que converte texto em fala do idioma português do Brasil. O sistema engloba a digitação do texto, a geração do sinal acústico correspondente à fala sintetizada, a amplificação do sinal sonoro e sua reprodução. O projeto é composto por um microcontrolador 8031, um display LCD, uma memória flash externa e um teclado padrão PS/2 além de circuitos para amplificação e reprodução do som. A entrada textual é feita pelo teclado e visualizada no LCD e os fonemas correspondentes são armazenados na memória flash. Este processo é controlado pelo microcontrolador 8031 que identifica o texto digitado, seleciona o fonema correspondente armazenado na memória flash externa e passa o dado digital por um conversor D/A. Enfim, a saída do conversor D/A segue para o circuito de amplificação e reprodução do sinal sonoro. O trabalho descrito em [3] apresenta um estudo da viabilidade de implementação de um sistema embarcado utilizando o microcontrolador 8051. A aplicação trata de um sistema para automação do gerenciamento de lotação e cobrança de estacionamentos pagos. Durante o projeto foi realizado o desenvolvimento do hardware de um protótipo funcional do sistema, envolvendo a elaboração de uma placa controladora e a programação de um firmware em Assembly para o microcontrolador 8051, a fim de controlar as funções dos periféricos do dispositivo. Foi desenvolvido um software na plataforma Windows para gerenciar a cobrança e a lotação do pátio, sendo possível existir mais de um 5.

(15) hardware para gerenciar a entrada e saída de veículos e todos conectados por um computador através da interface serial RS-232. O trabalho apresentado em [4], consiste em um sistema de armazenamento, leitura, decodificação e reprodução de arquivos de áudio no formato MP3. Este trabalho apresenta um protótipo que armazena e reproduz arquivos de áudio MP3 utilizando componentes facilmente encontrados no mercado, sendo o decodificador MP3 o único componente específico e, por isso, não encontrado facilmente. O controle central do sistema é feito através de um microcontrolador ST10F269 (microcontrolador ARM fabricado pela STMicroeletronics) e o arquivo MP3 pode estar armazenado em um HD, em um cartão de memória CompactFlash ou um CD-ROM. A entrada de comandos é feita usando um teclado matricial e a visualização de mensagens é feita através de um LCD. O trabalho descrito em [5] consiste de um sistema de acesso remoto de dispositivos elétricos. O acesso remoto é feito através da Internet por meio de um servidor que recebe pacotes enviados por navegadores que o acessam para controlar os dispositivos. Ao receber o comando enviado pelo navegador, um script em PHP atualiza o banco de dados e chama uma rotina java que envia o comando pela porta serial para uma placa contendo um PIC 16F628 que executa o comando através de relés biestáveis que acionam o dispositivo que o usuário requisitou. O trabalho apresentado em [6] consiste no projeto de um módulo didático para uso em cursos de microcontroladores e teste de protótipos. O módulo é equipado com um microcontrolador 16F877 que possui: EEPROM, conversor A/D, saída PWM, inteface serial USART e I2C. Além dos recursos existentes no PIC, o módulo didático conta ainda com: fontes de alimentação de ±5V e ±12V, teclado de dados matricial, LCD, 4 displays de 7 segmentos, banco de 8 LEDs, 8 chaves para entrada de dados, motor DC, EEPROM externa e 2 relés biestáveis.. 2.3 CONCLUSÕES DA REVISÃO BIBLIOGRÁFICA Após realizar uma busca em artigos, trabalhos e produtos com alguma relação com o projeto a ser elaborado, não foram achados artigos com muita semelhança com o trabalho escolhido como tema. Sob o ponto de vista de hardware, ele é muito simples (como é normalmente de se esperar em um sistema embutido) e não foi necessário analisar outros esquemas. Um outro aspecto a ressaltar na revisão bibliográfica é que os sistemas analisados não apresentaram detalhes suficientes para uma análise aprofundada.. 6.

(16) 3 REVISÃO DAS TECNOLOGIAS UTILIZADAS NO PROJETO 3.1 INTRODUÇÃO Os computadores estão completamente difundidos no nosso quotidiano. Não causa surpresa milhões de computadores serem construídos todo ano e serem destinados a aplicações diversas. Ou seja, estes computadores podem executar uma ampla variedade de aplicações podendo rodar aplicações variadas como: jogos, editores de texto, planilhas eletrônicas, etc. Dentro desse grupo de computadores encontram-se: computadores pessoais (PC’s), estações de trabalho, computadores de grande porte e servidores. Tais sistemas podem executar uma enorme diversidade de aplicações para suprir as necessidades do usuário. O que passa despercebido é que milhões de sistemas computacionais são produzidos todo ano com um propósito diferente: executar repetidamente uma função específica para o qual foram projetados. Tais sistemas são embutidos (ou embarcados) dentro de sistemas maiores (geralmente equipamentos eletromecânicos como automóveis, fornos de microondas, sistemas de segurança, etc), razão pela qual são chamados Sistemas Embutidos. Os sistemas embutidos possuem em seu núcleo um microprocessador, geralmente um microcontrolador, que carrega dentro de si um software dedicado para executar sua função. Os microcontroladores possuem uma grande variedade de recursos, além de entradas e saídas, tais como: conversor A/D, EEPROM, memória flash, RTC, Timers, UART, PWM e barramentos especializados para conectar periféricos (I2C, SPI, USB, etc). Existem diversos fabricantes de microcontroladores e há famílias de microcontroladores com capacidades diferenciadas entre si. Embora muitos recursos dos sistemas embutidos estejam disponíveis no interior dos microcontroladores, pode haver a necessidade de uso de dispositivos externos, seja para estender estes recursos, ou para suprir alguma necessidade não prevista pelo microcontrolador. A seguir estão dois exemplos de sistemas embutidos: 1. Celulares possuem dentro de si sistemas embutidos que fazem a ligação entre o circuito de comunicação e o usuário do celular. 2. Muitos eletrodomésticos estão agregando valor com o uso de sistemas embutidos para criar uma interface mais amigável e confiável. Por exemplo, a programação e o controle de um forno de microondas são feitos através de um sistema embutido. Da mesma forma, lavadoras automáticas contêm sistemas embutidos que ampliam a gama de opções de lavagem de roupa; Ao contrário dos softwares projetados para computadores pessoais (PC’s), o software embutido não pode ser transferido para outro sistema embutido sem mudanças; principalmente por causa das.

(17) grandes diferenças de hardware, a menos que tenha sido escrito em Java e o sistema implemente uma máquina virtual Java (JVM). Geralmente, o hardware de cada sistema embutido é confeccionado especificamente para a aplicação em questão, com o objetivo de manter o custo baixo. Apesar disso, os sistemas embutidos possuem algumas características comuns. Em geral, os sistemas embutidos possuem um processador e um software. Mas para que o software exista, deve haver um meio para armazenar o código executável e dados temporários gerados em tempo de execução. O código geralmente é armazenado numa memória flash, que possui uma maior velocidade de leitura que a EEPROM. Os dados temporários como passagem de parâmetros para funções, são armazenados na memória RAM. Entre as principais Características de Sistemas Embutidos que os diferenciam de computadores tradicionais, podemos citar: •. Consumo de energia - Quanto maior for a freqüência de operação de um sistema, maior será o consumo de energia, numa relação quadrática da freqüência. Como sistemas embutidos são geralmente projetados para um fim especifico, a freqüência de operação será somente a necessária para a execução da tarefa. Conseqüentemente, num sistema embutido não se busca trabalhar com o maior “clock” possível. A quantidade de CI’s do sistema também afeta o consumo de energia. Portanto, devem-se utilizar somente os CI’s necessários para a aplicação.. •. Baixo custo de produção - Para segmentos que trabalham com produção em massa de sistemas embutidos, o custo de produção é um fator determinante e que passa pelos projetistas do hardware e das exigências dos desenvolvedores do software contido no sistema embutido. Ou seja: quanto maior o custo, maior será o preço do produto final. O uso de poucos componentes proporciona uma redução das dimensões e do custo do sistema embutido. Além disso, deve-se considerar o custo destes componentes para se ter um custo total que seja o menor possível.. •. Custo de desenvolvimento e “Time-to-Market” – Sistemas embutidos têm custo de desenvolvimento menor que sistemas complexos feitos para PCs (jogos3D, sistemas operacionais, etc), pois geralmente precisam de profissionais menos qualificados e as ferramentas de desenvolvimento são mais baratas do que aquelas usadas nestes sistemas complexos. Porém, este custo de desenvolvimento se torna pequeno no custo total caso seja feita uma produção em massa do sistema embutido. O termo “Time-to-market” se refere à quantidade de tempo necessária para um produto transitar da concepção até o mercado ao qual ele é dirigido. Assim, quanto menor este tempo, menor será o custo de desenvolvimento. O uso de ferramentas computacionais de apoio a projeto colabora drasticamente para a redução deste tempo. 8.

(18) •. Quantidade produzida - A relação entre o custo de produção e o custo de desenvolvimento é afetada pelo número de unidades a serem produzidas e vendidas. Por essa razão, geralmente é indesejável desenvolver componentes de hardware customizados para um baixo volume de produção. Por outro lado, para produção em massa, pode ser útil a produção de componentes e ferramentas próprias personalizadas para diminuir o custo de produção.. O desenvolvimento de sistemas embutidos, assim como outros sistemas, deve seguir uma metodologia pré-estabelecida para gerar um produto com menores margens de erro e que atendam com maior precisão seu objetivo. Uma metodologia de projeto é importante por três razões. Primeiro, ela permite manter um registro do que deve ser realizado para garantir que todas as etapas sejam executadas da melhor forma com menor tempo. Segundo, ela facilita a escolha de Softwares de auxílio ao projeto, ao considerar somente uma etapa do processo. Terceiro, uma metodologia de projeto facilita a comunicação entre os membros de uma equipe de desenvolvimento. A equipe pode compreender mais facilmente o que deve ser feito, o que deve ser recebido de outras equipes e o que ela deve realizar após o cumprimento da tarefa. A figura 1 exibe as etapas de um processo de projeto para Sistemas Embutidos. No topo, há os requisitos do sistema, onde é descrito o que o projeto deve realizar sem se especificar como. A etapa de requisitos serve para capturar as necessidades do cliente. Após os requisitos, há a especificação do projeto, onde é criada uma descrição mais detalhada com foco no comportamento do sistema para compreensão da equipe de desenvolvimento. O detalhamento interno do sistema (como construir) é iniciado no desenvolvimento da arquitetura, que fornece a estrutura do sistema em termos de componentes. Uma vez que se conhecem os componentes necessários, pode-se projetar estes componentes, incluindo software e algum hardware especializado que se faça necessário. Baseado nestes componentes é realizada a integração do sistema, onde é construído o sistema completo.. 9.

(19) Figura 1 - Níveis de abstração do processo de desenvolvimento de sistemas embutidos. 3.2. CARACTERÍSTICAS GERAIS MICROCONTROLADORES PIC UTILIZADA. DA. FAMÍLIA. DE. Um microcontrolador é um dispositivo (single chip) que incorpora todos os componentes básicos de um computador tradicional, em escala bastante reduzida. A principal conseqüência do pequeno tamanho do microcontrolador é a limitação de seus recursos, se comparados com os oferecidos por computadores tradicionais. Em termos funcionais, um microcontrolador é um dispositivo programável que controla um processo ou sistema. Os microcontroladores são projetados para possibilitar soluções de baixo custo e portanto, seu uso pode reduzir drasticamente o custo e o tamanho físico de um projeto. Os microcontroladores podem conter diversos periféricos, porém possuem algumas características comuns. A primeira característica é uma memória não-volátil para armazenamento do programa, sendo mais comum o uso da memória flash. Uma outra característica comum é uma memória RAM para manipular dados em tempo de execução como vetores temporários e parâmetros. Por fim, além dos periféricos presentes, há portas de E/S que fazem a comunicação com o meio externo. Na figura 4 há um esquema simplificado do microcontrolador PIC 16F64 [13] que possui interface serial, conversor A/D, temporizador, contador e watchdog timer; para ilustrar a discussão feita até este momento.. 10.

(20) Figura 2 – Um esquema simplificado do microcontrolador 16F64. O desenvolvimento do software embutido para microcontroladores é realizado através de computadores tradicionais que funcionam como plataformas de desenvolvimento onde, com os recursos disponíveis, é possível editar, compilar e simular este software desenvolvido. Além do desenvolvimento do software, a plataforma de desenvolvimento deve possibilitar a programação do microcontrolador (ou carga do código objeto no microcontrolador) através de um periférico, que é chamado de programador do dispositivo, o qual se conecta ao computador onde está o código a ser gravado. Essa conexão pode ser feita de várias formas, porém as mais comum são o uso das interfaces seriais RS-232 ou USB. A ligação entre o código a ser gravado e o programador que contém o microcontrolador de destino é feita através de um software que carrega o código-objeto e realiza a programação do dispositivo através de um protocolo estabelecido para tal. Este software é chamado de programa de gravação do microcontrolador. A depuração do programa carregado no microcontrolador não é tão simples, dispondo-se apenas de impressões de variáveis no display para depurar. Existem sistemas de depuração, mas geralmente são muito caros.. 11.

(21) Microcontroladores PIC - Peripherical Interface Controller- (PICmicro) é a denominação dada à família de microcontroladores fabricados pela Microchip Technology com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC. Os microcontroladores PIC têm famílias de 12 bits, 14 bits e 16 bits de núcleo de processamento e trabalham com velocidades desde 32KHz até 40 MHz usando ciclo de instrução de quatro períodos de clock, o que permite uma velocidade de no máximo 10 MIPS. Os microcontroladores PIC funcionam com tensões de alimentação de 2 a 6V, possuem de 6 a 100 pinos em diversos encapsulamentos (SOT23, DIP, SOIC, TQFP, etc) e memória flash que pode ir de 4Kbytes à 128Kbytes. Alguns recursos comuns em microcontroladores da linha PIC são: •. Watchdog timer - O watchdog timer consiste num contador incrementado automaticamente quando habilitado e que, quando acontece o estouro do seu conteúdo (passagem do mais alto valor para o mais baixo), o microcontrolador será resetado. Este recurso é usado para evitar que o microcontrolador trave em situações não-previstas em que o software embutido fica “preso”. Com isso, o sistema que emprega o microcontrolador fica menos suscetível a falhas na execução do software.. •. Brown-out detect - O circuito de brown-out presente em alguns modelos de microcontroladores é utilizado para forçar um reset quando a tensão de alimentação sofre uma pequena queda. Ele é extremamente recomendado em projetos onde é comum o rápido desligamento e religamento da alimentação. Nestes casos, o brown-out pode evitar problemas de reinicialização. Para que o microcontrolador execute suas instruções com sucesso, a tensão de alimentação deve sempre ficar acima de um valor mínimo. Quando essa tensão cai abaixo de um nível mínimo, o microcontrolador poderá executar algumas instruções incorretamente. O resultado é uma atividade inesperada das linhas e dados internos de controle, que pode causar perdas ou alterações nos registros e estado das portas do microcontrolador. Para evitar estes problemas, o microcontrolador deve ser impedido de executar suas tarefas nos períodos de tensão de alimentação insuficiente. A melhor maneira de garantir isso é com o uso de um detector de baixa tensão que força o microcontrolador a ficar em estado de reset enquanto a tensão não ficar acima do mínimo desejável.. •. Conversor A/D e comparador - Uma E/S analógica pode receber sinais analógicos (geralmente níveis de tensão) e, através de periféricos internos; disponibilizar essa informação na forma digital para uso pelo microcontrolador. Essa conversão analógicodigital é geralmente feita através da representação digital do dado ou através da comparação do sinal analógico com um nível de comparação estabelecido. Alguns. 12.

(22) microcontroladores disponibilizam saídas analógicas para controle de dispositivos que se utilizam dessa forma de sinal. •. Periféricos para protocolos estabelecidos - Muitos microcontroladores possuem periféricos. que. implementam. protocolos. padronizados.. Assim,. alguns. microcontroladores possuem recursos próprios para acessar dispositivos externos que funcionam baseados em protocolos estabelecidos. Alguns dos protocolos encontrados no hardware de microcontroladores são: I2C, Microwire, CAN, SPI, RS-232, RS-485,... •. Timer/Counter - Outro periférico muito comum em microcontroladores é o contador que registra o número de vezes que ocorreu uma transição positiva ou negativa em um pino de I/O do microcontrolador, podendo gerar uma interrupção quando ocorrer um overflow no contador ou quando atingir um número determinado de transições. Um timer é um contador que é incrementado ou decrementado numa taxa fixa dada pelo circuito que gera o pulso de clock do microcontrolador, podendo gerar interrupções da mesma forma que o contador. O timer é utilizado geralmente para contagem de tempo e sincronismo. Em muitos microcontroladores o timer e o counter são periféricos que são intercambiáveis, ou seja, um contador pode funcionar com timer ou vice-versa, bastando que o mesmo seja configurado por software.. •. Interrupções - Uma interrupção é um evento que suspende a operação regular do programa enquanto o evento é atendido por um outro programa. A ocorrência de interrupções aumenta a velocidade de resposta a eventos externos e evita a monopolização do processador por um só processo. Os microcontroladores podem ter diversas fontes de interrupções diferentes, que incluem: eventos externos, timer, watchdog timer, brownout detect, etc. Quando uma interrupção é solicitada, a operação corrente é suspensa, a interrupção é identificada e o microcontrolador executa uma rotina de interrupção chamada ISR (interrupt service routine).. 3.2.1 MICROCONTROLADORES UTILIZADOS NO PROJETO Desde o inicio dos anos 80, os fabricantes de microcontroladores têm lançado diversos microcontroladores diferentes, com uma ampla variedade de recursos. A maioria destes microcontroladores foi criada para atender demandas próprias dessas empresas por produtos que elas comercializam ou são direcionados a segmentos específicos como telefonia celular, eletrodomésticos, brinquedos, entre outros. Poucos projetos são dedicados a um uso mais geral. A Microchip, que produz os microcontroladores PIC, se dedica ao projeto de microcontroladores sem foco numa aplicação especifica. Por conta disso e da vasta documentação. 13.

(23) disponível no site da empresa (http://www.microchip.com/), várias ferramentas de desenvolvimento para PIC’s foram produzidas e disponibilizadas gratuitamente na Internet. •. Microcontroladores 18F452 e 18F4620. O desenvolvimento deste projeto iniciou-se com o uso do PIC 18F452 [14], porém no decorrer do projeto, o 18F452 apresentou pouca memória para acomodar todas as funções previstas no sistema de estacionamento. Devido a isso, optou-se pelo uso do microcontrolador 18F4620 [15]. O 18F4620 é bastante semelhante ao 18F452, sendo que, enquanto o 18F452 possui 16Kinstruções de memória de programa, o 18F4620 possui 32Kinstruções de memória de programa. No entanto, o uso do 18F452 não foi totalmente descartado, pois o 18F452 é útil para outras aplicações que podem ser usadas no mesmo hardware, sendo este hardware genérico o suficiente para outras aplicações. A comparação entre estes dois PIC’s está representada na tabela 1 e na figura 3. Após isso, é feita uma descrição dos principais recursos disponíveis nestes PIC’s. Características. PIC18F452. PIC18F4620. 40 MHz. 40 MHz. 32K. 64k. Memória de programa (instruções). 16384. 32768. Memória de dados (Bytes). 1536. 3968. EEPROM interna (Bytes). 256. 1024. Ports A, B, C, D, E. Ports A, B, C, D, E. Timers. 4. 4. Módulos Capture/Compare/PWM. 2. 2. 1 USART. 1USART. 1 PSP. 1 PSP. Freqüência máxima Memória de programa (Bytes). Portas de I/O. Comunicação serial Porta paralela escrava Módulo conversor A/D. 8 canais de entrada de 10 bits 13 canais de entrada de 10 bits. Brown-out Reset programável Conjunto de instruções Encapsulamento. Sim. Sim. 75 instruções. 83 instruções. DIP com 40 pinos PLCC com 44 pinos TQFP com 44 pinos. PDIP com 40 pinos PLCC com 44 pinos TQFP com 44 pinos. Tabela 1 – Características do 18F452 e 18F4620. 14.

(24) Figura 3 – Pinagem do 18F452 e do 18F4620. Alguns detalhes dos microcontroladores 18F452 e 18F4620 são: •. Configuração do oscilador - O 18F452 pode operar em oito modos diferentes de oscilação programáveis pelo usuário e o 18F4620 em dez. São estes: o. LP: Cristal operando em baixas freqüências (32 kHz e 200 kHz). o. XT: Cristal operando em médias freqüências (1MHz e 4 MHz). o. HS: Cristal operando em altas freqüências (20 MHz e 40 Mhz). o. HS+PLL: Cristal operando junto com um PLL (phase locked-loop) interno para multiplicar a freqüência de operação por 4 (útil para eliminar interferências eletromagnéticas encontradas quando se fizer necessário). o. RC: Uso de um resistor e um capacitor para gerar o clock de operação. o. RCIO: Uso de um resistor e um capacitor para gerar o clock de operação com liberação do pino OSC2 do PIC para I/O digital. o. EC: Clock gerado por algum circuito externo (útil para sincronizar sistemas). o. ECIO: Clock gerado por algum circuito externo com liberação do pino OSC2 para I/O digital.. o. INTIO1: Clock de até 8 Mhz, gerado internamente pelo PIC (Menos preciso e disponível apenas no 18F4620) com saída de clock em RA6 e I/O em RA7. o. INTIO2: Clock de até 8 Mhz, gerado internamente pelo PIC (Menos preciso e disponível apenas no 18F4620) com saída de clock em RA7 e I/O em RA6. •. E/S - O 18F452 e o 18F4620 possuem cinco portas disponíveis. O 18F452 tem três portas com oito bits, uma porta com seis bits e outro porta com três bits. O 18F4620 tem quatro portas de oito bits e uma porta de quatro bits. Alguns pinos dessas portas são 15.

(25) multiplexados com periféricos internos, como: I2C, USART, conversor A/D, etc. Em geral, quando o periférico está habilitado para uso através de registradores, o pino não pode ser usado como I/O de uso geral. •. Memória de programa flash - A memória flash, onde está o código executável, pode ser lida, escrita e apagada durante a operação normal do 18F452 e do 18F4620. A memória flash contida nestes microcontroladores pode ser lida byte a byte, escrita em blocos de oito bytes e apagada em blocos de sessenta e quatro bytes. A operação de busca de instrução é pausada enquanto a memória flash estiver sendo escrita ou apagada durante a operação normal.. •. EEPROM interna - A EEPROM interna dos dois PIC’s utilizados no projeto podem ser lidas e escritas em operação normal e também escritas e lidas durante a programação do dispositivo. Como observado na tabela 1, o 18F452 tem 256 bytes disponíveis na EEPROM interna e o 18F4620 tem 1024 bytes.. •. Timers/Counters - O 18F452 e o 18F4620 possuem quatro timers/counters (temporizador/contador) que podem ser configurados com diferentes configurações. No modo timer, o registrador associado ao timer é incrementado quando ocorrer um determinado número de transições de clock que é determinado pelo valor do registrador de prescale. No modo counter, o registrador é incrementado quando ocorrerem pulsos em um pino estabelecido para este periférico.. •. Módulo MSSP - O módulo MSSP (Master Synchronous Serial Port) é um periférico presente no 18F452 e no 18F4620 útil para comunicação serial com outros dispositivos. O módulo MSSP pode realizar essa comunicação utilizando o protocolo I2C ou o SPI.. •. Módulo USART - O módulo USART (Universal Synchronous Asynchronous Receiver Transmitter) é outro periférico destinado à comunicação serial presente no 18F452 e no 18F4620. O módulo USART pode ser configurado para realizar comunicação serial, full-duplex e assíncrona, para enviar e receber dados de terminais e computadores pessoais.. 3.4 COMPONENTES EXTERNOS UTILIZADOS NO PROJETO 3.4.1 EEPROM 24C32 A EEPROM 24C32 [16] contém 32.768 bits organizados em 4096 palavras de 1 byte fornecidos através do protocolo I2C. Podem ser conectados até 8 destes CIs no barramento, desde que sejam identificados com configurações diferentes através dos pinos A0, A1 e A2.. 16.

(26) Na figura 4, os pinos VCC e GND fornecem a alimentação (+5V e 0V); os pinos A0, A1 e A2 fornecem uma identificação para múltiplas memórias conectadas no barramento I2C; os pinos SCL e SDA são as linhas de clock e dados que devem ser conectado ao barramento I2C e o pino WP é a proteção de escrita (desabilita escrita na EEPROM quando em nível “1”).. Figura 4 - Pinagem da EEPROM 24C32. A figura 5 exemplifica o endereço do 24C32. O primeiro nibble (4 bits mais significativos) é fixo em 0x8 para identificar uma das EEPROM que podem estar conectadas ao barramento I2C. O segundo nibble contém a identificação da EEPROM e a natureza da operação que será realizada (leitura ou escrita).. Figura 5 – Identificação da EEPROM. Para escrita na EEPROM, o mestre do barramento deve enviar após a condição de início, o endereço da EEPROM que será escrita com o último bit em nível “0” para identificar a operação como escrita. Após o bit de reconhecimento da EEPROM, o mestre deve enviar dois bytes correspondentes à posição em que o dado será escrito. Em seguida, é enviado o dado que será escrito. Caso o mestre queira escrever dados consecutivos, basta enviar mais dados após a condição de reconhecimento, os quais serão escritos seqüencialmente na EEPROM. Por fim, o mestre realiza uma condição de parada. A leitura na EEPROM segue um procedimento parecido com a escrita. A diferença é o bit de identificação da operação que é “1” para indicar uma leitura. A EEPROM envia os dados para o mestre após o fornecimento do endereço de leitura pelo mestre. Caso o mestre deseje ler dados seguidos na EEPROM, basta fornecer uma condição de reconhecimento. Para encerrar a leitura, ele não executa essa condição de reconhecimento e realiza uma condição de parada.. 3.4.2 RAM 62256 O CI 62256 [17] é uma memória RAM de 256KBits organizada em 32K palavras de 8 bits. De acordo com a figura 6, além dos pinos de alimentação (VCC e VSS), a memória possui: barramento de endereço (A0 à A13); barramento de dados (IO1 à IO8); habilitação de saída (OE); habilitação de escrita (WE) e habilitação do CI (CE).. 17.

(27) Figura 6 – Pinagem do 62256. 3.4.3 MAX 232 O RS-232 é uma interface definida pela EIA (Electrical Industries Association) e equivalente ao CCITT-V24 para comunicação serial em que os níveis de tensão dos sinais transmitidos e recebidos diferem do padrão TTL. O nível lógico 0 é definido como uma tensão de +3V à +12 V e o nível lógico 1 é definido como uma tensão entre -3V à -12V para dados. Para sinais de controle, uma tensão entre +3V e +12V representa o nível lógico “1” e uma tensão entre –3V e –12V representa o nível lógico “0”. Uma interface de comunicação que segue o padrão RS-232 é importante para um sistema microcontrolado porque seu uso é muito comum em computadores pessoais e sua utilização nestes sistemas possibilita uma comunicação com estes computadores. No entanto, a grande maioria dos sistemas microcontrolados segue padrões TTL, de forma que para se trabalhar com o padrão RS-232 deve ser usado um circuito que faça a conversão entre os padrões RS-232 e TTL. Tal circuito consiste no MAX232, o qual transforma a fonte positiva de +5V em +5V e –5V, através de um oscilador e de circuitos de chaveamento e é ilustrado na figura 7... 18.

(28) Figura 7 – Diagrama do CI MAX232. 3.4.4 PCF 8583 O PCF 8583 [18] é um chip RTC (Real-time clock) que armazena e atualiza a hora e a data com base na oscilação de um cristal de 32.768 KHz. A escolha deste RTC produzido pela Philips, Inc deveu-se ao fato de o PCF8583 usar o protocolo I2C para receber dados referentes a hora e a data e fornecer a hora e a data atuais. Assim, é feita uma economia dos pinos usados no microcontrolador. Um esquema prático de utilização do PCF8583 está na figura 8. Quando o circuito estiver ligado, o PCF8583 é alimentado pela fonte deste circuito. Porém quando o circuito é desligado, a alimentação é fornecida pela bateria BT1. Este chaveamento é feito pelos diodos D1 e D2. Além dos pinos para o cristal oscilador (OSCI e OSCO), dos pinos de alimentação (VCC e GND) e dos pinos referentes ao barramento I2C (SDA e SCL), há o pino INT que é ativo caso uma hora e uma data programada estiver sido alcançada. Caso a bateria no circuito da figura 8 acabe, deve se configurar a hora e a data todas as vezes que se ligar o circuito, pois a memória RAM contida no PCF8583 apagará no desligamento do sistema. Isso acontece até que a bateria seja trocada por uma nova.. Figura 8 – Esquema de utilização do PCF 8583. 19.

(29) 3.4.4 LCD O visor LCD empregado é da Hitachi e apresenta uma interface de saída muito utilizada em sistemas microcontrolados. Visores LCD são especificados pelo número de linhas e colunas que eles possuem, havendo LCD’s com várias linhas e colunas. O visor utilizado apresenta 2 linhas por 40 colunas. Os módulos podem ser encontrados com LED backlight (com uma iluminação de fundo) para facilitar sua leitura. Neste caso, a alimentação deste LED faz-se normalmente pelos pinos 15 e 16. A corrente de alimentação deste LED varia de 100 a 200mA, dependendo do modelo. Estes módulos utilizam um controlador próprio chamado HD44780 [19]. Este controlador estabelece uma comunicação com o sistema microcontrolado e executa a ação requerida no LCD propriamente dito. A tabela 2 fornece uma descrição da pinagem padrão do LCD. Pino. Função. Descrição. 1. Alimentação. Terra ou GND. 2 3. Alimentação V0. VCC (+5 v). 4. RS. Seleção:. Tensão para ajuste de contraste através de um potenciômetro ligado a este pino. 1 - Dado, 0 - Instrução. 5. R/W. Seleção:. 1 - Leitura, 0 - Escrita. 6. E. 7. B0. 8. B1. 9. B2. 10. B3. 11. B4. 12. B5. 13. B6. 14. B7. 15. A (qdo existir). Anodo p/LED backlight. 16. K (qdo existir). Catodo p/LED backlight. Chip select. 1 - Habilita,. 0 - Desabilitado. LSB. Barramento de Dados. MSB. Tabela 2 – Pinagem padrão do LCD. Comandos são enviados para o controlador HD44780 através do barramento de dados. Esta comunicação pode ser feita byte a byte ou nible (4 bits) a nible. Caso seja usada a comunicação nible a nible, utilizam-se somente os pinos 7 ao pino 10 do barramento, havendo uma economia de pinos de E/S do microcontrolador.. 20.

(30) 3.3 PROTOCOLOS UTILIZADOS NO PROJETO 3.3.1 PROTOCOLO I2C O I2C é um protocolo síncrono de duas linhas, sendo uma linha de clock (chamada SCL) e outra linha de dados (chamada de SDA). Graças à especificação das saídas em coletor (ou dreno) aberto, o protocolo permite a ligação de diversos componentes nas mesmas linhas, formando uma rede de comunicação de dispositivos. A quantidade de dispositivos que podem ser conectados no barramento é limitada apenas pela capacitância máxima admitida que é de 400pF segundo a especificação. Como todos os dispositivos conectados ao barramento estão em paralelo, cada um deles adiciona uma capacitância definida pelo seu circuito. O I2C é um protocolo síncrono do tipo mestre-escravo, mas também suporta multi-mastering, ou seja, a presença de diversos mestres presentes no barramento, sendo que somente um pode estar ativo por vez. Os princípios de funcionamento do I2C são: •. A informação presente na linha de dados (SDA) somente é lida durante a fase alta da linha de clock (SCL);. •. Somente é permitido alterar o nível da linha de dados (SDA) durante a fase baixa da linha de clock (SCL);. •. Quando o barramento não está em uso, ambas as linhas permanecem desligadas e são forçadas em nível “1” pelos resistores de pull-up.. No início da transmissão, o dispositivo força a linha SDA de “1” para “0”, durante a fase alta da linha SCL, indicando a todos os componentes presentes no barramento que uma transmissão terá início. Este processo é chamado de condição de início. O fim da transmissão (condição de parada) consiste na transição de “0” para “1” da linha SDA durante a fase alta da linha SCL. Após a condição se início, são transmitidos oito bits de dados, iniciando pelo MSB. Após o último bit (LSB) o receptor deve gerar uma condição de reconhecimento, o que é feito colocando a linha SDA em “0” antes do nono pulso de clock da linha SCL. Caso o receptor não reconheça o dado, mantendo a linha SDA em “1” após o nono pulso, o transmissor deve gerar uma condição de parada e reiniciar a transmissão. Para a coexistência de diversos dispositivos em um mesmo barramento, é necessário que cada um possua uma identificação. O formato básico de uma identificação I2C é constituída por 7 bits de endereço, utilizados para especificar o dispositivo escravo a ser acessado e, após essa identificação segue-se um bit identificador de leitura ou escrita. 21.

(31) Dessa forma, após o envio da identificação do escravo pelo mestre e da condição de reconhecimento pelo escravo, o mestre pode enviar e receber dados do escravo. Terminada a comunicação, segue-se uma condição de parada. Este processo é demonstrado na figura 9.. Figura 9 – Comunicação I2C. 3.3.2 PROTOCOLO DE COMUNICAÇÃO PARA TECLADO PS/2 O protocolo para comunicação com o teclado PS/2 é um protocolo serial, síncrono e bidirecional. Ou seja, o teclado pode enviar informações para o computador e o computador pode enviar informações para o teclado serialmente através de uma linha de dados, a qual é chamada de KBD_DATA. O sincronismo é feito através de uma linha de clock, que é chamada de KBD_CLOCK. Ambas as linhas são conectadas a resistores de pull-up. A alimentação para o teclado é provida pelo conector, de forma que além das linhas KBD_DATA e KBD_CLOCK, o conector tem duas linhas para alimentação (+5V e terra), que é fornecida pelo computador. O teclado pode enviar informações para o computador sempre que as linhas KBD_CLOCK e KBD_DATA estiverem em nível “1” pelos resistores de pull-up. Caso o computador coloque a linha KBD_CLOCK em nível “0”, o teclado cria um buffer com as informações que devem ser enviadas ao computador até que o mesmo termine de enviar. Isso acontece porque o computador tem prioridade na comunicação. De acordo com a figura 10, a transmissão de informações do teclado para o computador é realizada através de 11 bits transmitidos pela linha KBD_DATA e sincronizados por KBD_CLOCK numa freqüência de 20 kHz a 30 kHz estabelecida pelo teclado. O primeiro bit transmitido pelo teclado é o bit de início (nível “0”), seguido por 8 bits de dados ou comandos (do LSB até o MSB). Após os dados, segue-se um bit de paridade (paridade impar) e um bit de parada em nível “1”. Cada bit é lido pelo computador na transição de descida do clock gerado pela linha KBD_CLOCK.. 22.

(32) Figura 10 – Comunicação do teclado com o computador. De acordo com a figura 11, quando o computador precisa enviar comandos para o teclado, ele coloca a linha KBD_CLOCK em nível “0” por aproximadamente 60us. Após isso, o computador coloca a linha KBD_DATA em nível “0” e libera a linha KBD_CLOCK para que o teclado gere o clock. Após a primeira transição de descida do clock, o computador envia os 8 bits de comando (do LSB até o MSB) seguido pelo bit de paridade (paridade ímpar). Após o bit de paridade, o computador libera a linha KBD_DATA e aguarda o bit de reconhecimento do comando provido pelo teclado na próxima transição de descida.. Figura 11 – Comunicação do computador com o teclado. Dentre os comandos enviados para o teclado estão: acender ou apagar LED’s de status do teclado (NUM LOCK, CAPS LOCK e SCROLL LOCK), estabelecer taxa de repetição da digitação do teclado, habilitar ou desabilitar o teclado e reiniciar o teclado. Além dos códigos das teclas pressionadas ou soltas, o teclado pode enviar comandos para indicar certas situações para o computador como: reconhecimento de comandos, erro ou estouro de buffer e pedido de reenvio de comando.. 3.4 SOFTWARES E PROGRAMADORES DE MICROCONTROLADORES UTILIZADOS NO PROJETO. 3.4.1 SOFTWARES UTILIZADOS O aumento do poder de processamento dos computadores e a criação de linguagens de alto nível têm proporcionado a criação de sofwares cada vez mais rápidos e sofisticados. Estes fatores ocasionaram uma maior difusão de softwares produzidos com o intuito de auxiliar projetos.. 23.

(33) Os softwares utilizados neste trabalho consistem de: •. Compilador CCS. [20] –. Este. compilador foi utilizado inicialmente no. desenvolvimento do sistema e oferece algumas vantagens em relação ao compilador HITECH PICC-18 descrito a seguir, como por exemplo, possuir algumas bibliotecas para LCD, para EEPROM, RTC, etc. No entanto, ele não é um compilador ANSI-C. Além disso, ele se mostrou ineficaz na geração de algumas funções. Por exemplo, a função delay_ms() é implementada in-line em vez de chamar uma rotina, gerando um enorme. número. de. NOPS. para. atrasos. grandes,. e. gastando. memória. desnecessariamente. •. Compilador HITECH PICC-18 [21] – Este é um compilador C para microcontroladores da linha PIC pertencentes a família PIC18. O HITECH PICC-18 Compiler é um compilador ANSI-C que possui integração com o MPLAB, que é um ambiente de desenvolvimento integrado (IDE) fornecido pela Microchip. Este compilador se mostrou mais eficiente que o CCS.. •. Simulador ISIS Proteus [22] – Para a construção do esquemático e a simulação inicial do sistema foi utilizada a ferramenta ISIS Proteus. Este software possui bibliotecas com microcontroladores PIC, LCD’s, EEPROM’s, RTC’s, etc; disponíveis para projeto e simulação, sendo possível carregar o código gerado pelo compilador no componente do microcontrolador no ISIS Proteus e simular sua iteração com os outros componentes. Além disso, o ISIS Proteus permite depurar o código, acompanhando passo-a-passo como o código interage com o microcontrolador e outros componentes do projeto. O ISIS PROTEUS foi usado no início do projeto e, posteriormente, não foi mais possível usá-lo porque ele não simulava todos os componentes empregados.. •. IDE MPLAB [23] - O MPLAB é um ambiente de desenvolvimento integrado para compiladores baseados em microcontroladores PIC. O MPLAB é desenvolvido pela Microchip e possui compatibilidade com o compilador HITECH PICC 18, facilitando sua utilização. O MPLAB possui um editor de códigos e permite depurar o código gerado, além de permitir programação direta do PIC.. •. Programador ASIX UP [24] – O software de programação ASIX UP faz a comunicação com o programador Presto que está conectado ao microcontrolador PIC e conecta-se ao computador através da interface USB. Este software permite carregar o código-objeto gerado pelo compilador e enviá-lo ao programador do microcontrolador, o qual realiza a gravação deste código nele.. 24.

Referências

Documentos relacionados

Não fez Com duas soluções uma sofrendo redução e a outra oxidação, em um circuito fechado com fio condutor metálico e uma ponte salina é possível produzir uma pilha química

em efeitos superiores, contudo, considerando-se a realização do experimento apenas no Rio Grande do Sul e as particularidades de cada região produtiva, a extrapolação dos

Para fins didáticos, este capítulo pode é dividido em duas frentes distintas: a primeira parte foca na apresentação geral das pontes rolante, explicando os tipos e

Os Coordenadores Setoriais, enquanto professores, procuram dar o exemplo, mas deixam claro que encontram, no seu percurso como extensionistas, esse elemento dificultador;  O

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Dando continuidade ao que estabelece o artigo já citado, o 2º artigo faz menção ao Manual de Boas Práticas de Atenção ao Parto e o Nascimento da