CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO
PLANTA DE ELEVADORES COM CONTROLE POR FPGAS
Cristina Biz
UNICENP/NCET Curitiba 2007
ii
CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO
PLANTA DE ELEVADORES COM CONTROLE POR FPGAS
Cristina Biz Monografia apresentada à disciplina de Projeto Final como requisito parcial à conclusão do Curso de Engenharia da Computação, orientada pelo Prof. Valfredo Pilla Jr..
UNICENP/NCET Curitiba 2007 iii
iv
TERMO DE APROVAÇÃO
Cristina Biz
PLANTA DE ELEVADORES COM CONTROLE POR FPGAS
Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação do Centro Universitário Positivo, pela seguinte banca examinadora:
Prof. Valfredo Pilla Jr. (Orientador). Prof. Mauricio Perreto Prof. José Carlos Cunha
Curitiba, 10 de Dezembro de 2007.
v
vi
AGRADECIMENTOS Ao meu orientador Valfredo, pela idéia do projeto e todo conhecimento transmitido. Ao professor e amigo Mauricio pelo apoio nos momentos difíceis. Aos meus irmãos Luciano e Alberoni e minha cunhada Cristiane por terem me proporcionado a oportunidade de cursar a graduação e por me apoiarem sempre. A todos os amigos que compreenderam minha ausência, durante todo o projeto. E aos principais responsáveis por eu ter conseguido terminar este projeto, minha mãe Carolina e meu noivo Eder pela paciência e por não me deixarem desistir. Muito obrigada a todos que participaram deste desafio comigo.
vii
viii
RESUMO Este trabalho consiste em um kit didático para o ensino de lógica programável. O Kit dispõe de uma planta de elevadores com controle em hardware, para tanto o sistema de controle foi desenvolvido em VHDL com o qual uma FPGA foi configurada. O objetivo deste projeto é mostrar de forma mais simplificada e atraente o funcionamento de dispositivos eletrônicos e mecânicos com um módulo de controle reconfigurável incorporado, tornando mais didáticas aulas demonstrativas.
Palavras chave: Kit didático, Planta de elevadores, FPGA, VHDL, Automação.
ix
ABSTRACT This work consists of a didactic kit for the education of programmable logic. The Kit makes use of a plant of elevators with control in the hardware, for in such a way the control system was developed in VHDL with which a FPGA was configured. The objective of this project is to show more of simplified form and attractive the functioning of electronic and mechanical devices with a module of incorporated reconfigurable control, becoming more didactic demonstrative lessons.
Key Word: Plant of elevators, Didactic kit, Automation, FPGA, VHDL
x
SUMÁRIO 1 INTRODUÇÃO...................................................................................................................................1 2 FUNDAMENTAÇÃO TEÓRICA.....................................................................................................2 2.1 MOTORES DE PASSO .........................................................................................................................2 2.2 FPGA.................................................................................................................................................7 2.3 SENSOR ÓPTICO ................................................................................................................................9 2.4 VHDL..............................................................................................................................................11 3 ESPECIFICAÇÃO DO PROJETO ............................................. ................................................. .. 14 3.1 ESTRUTURA GERAL ........................................................................................................................14 3.2 ARQUITETURA HARDWARE ...........................................................................................................16 3.3 ARQUITETURA SOFTWARE.............................................................................................................17 3.4 ESTUDO DE VIABILIDADE ECONOMICA .........................................................................................18 3.5 CRONOGRAMA ................................................................................................................................19 4 PROJETO ................................................ ....................................................... .................................. 20 4.1 PROJETO DE HARDWARE................................................................................................................20 4.2 PROJETO DE SOFTWARE ................................................................................................................27 5 VALIDAÇÃO....................................................................................................................................29 5.1 TESTES.............................................................................................................................................29 6 CONCLUSÃO...................................................................................................................................31
7 REFERÊNCIAS BIBLIOGRÁFICAS............................................................................................32
xi
LISTA DE FIGURAS Figura 2.1 - Motor de passo unipolar ................ ................ .............................. ............ 4 Figura 2.2 - Motor de passo bipolar................ .............................. ............... ............... 5 Figura 2.3 – Estrutura interna de um FPGA. ................ .............................. ................ . 7 Figura 2.4 - KIT UP 1 ............... ................ .............................. ................ ................... 8 Figura 2.5 – FLEX 10K............................. .............................. ................ ................... 9 Figura 2.6 – Sensor de barreira........................... ................ ................ ...................... 10 Figura 2.7 – Sensor difuso..................... ................ ............................... ................ .... 10 Figura 2.8 – Sensor retroreflexivo. .............................. .............................. ............... 11 Figura 3.1 – Planta do elevador ............................. ............................... ................ .... 15 Figura 3.2 – Diagrama em blocos do sistema............................................................ 16 Figura 3.3 – Fluxograma do sistema. ............................................ ............... ............. 18 Figura 4.1 – Motor de passo PM55L-0 48 ............................................ ................. .... 20 Figura 4.2 – Faixa de torque de acordo com o tipo do motor..................................... 20 Figura 4.3 – Esquemático interface de potência. ........................... ............... ............. 21 Figura 4.4 – Placa de interface potência.................................................................... 22 Figura 4.5 – Esquemático motor de passo................................................................. 22 Figura 4.6 – Esquemático sensor. ............................................ ................ ................. 23 Figura 4.7 – Placa do sensor. ............... ............... ................ ................ ...................... 23 Figura 4.8– Esquemático display............... .............................. ................ ................. 24 Figura 4.9 – Placa do display................. ................ .............................. ................. .... 25 Figura 4.10-Bloco Elevador................. ............... ................ ................ ...................... 26 Figura 4.11 – Bloco subir_descer ............................................ .............................. ... 27 Figura 4.12 – Bloco divisor de freqüênc ia. .............................. .............................. ... 27 Figura 4.13– Interface gráfica.............. ............... ................ ................ ...................... 27
xii
LISTA DE TABELAS Tabela 2.1 – Atuação de um motor de passo unipolar .............................. ................... 4 Tabela 2.2 – Atuação de um motor de passo bipolar................................................... 5 Tabela 3.1– Estudo de Viabilidade Econômica ............................. ............... ............. 18 Tabela 3.2– Cronograma ................ ................ .............................. ................ ............ 19
xiii
LISTA DE SIGLAS NCET – Núcleo de Ciências Exatas e Tecnológicas UNICENP – Centro Universitário Positivo FPGA – ( Field Programmable Gate Arrays) Arranjos de Portas Programáveis em Campo
CLB – (Configurable Logic Block) Blocos Lógicos de Configuração LUT – (Look-up Tables ) Tabela Verdade IOB – (Input/Output Block ) Blocos de entrada e saída CPLD – (Complex Programmable Logic Devices) Dispositivos de Lógica Programável Complexa
VHSIC – (Very High Speed Integrated Circuit) Linguagem de Decrial de Hardware SRAM – (Static Random Access Memory) CMOS – (Complementary Metal Oxid Semiconductor) ASICS – (Aplication Specific Integrated Circuit )
xiv
LISTA DE SÍMBOLOS - ohm
xv
xvi
1 1 INTRODUÇÃO As primeiras linguagens de descrição de hardware foram desenvolvidas no final dos anos 60, como alternativa para as linguagens de programação para descrever e simular dispositivos de hardware. O VHDL (Very High Speed Integrated Circuit) é uma linguagem estruturada que oferece a possibilidade de descrever o hardware e este ser simulado antes de sua aplicação facilitando a validação ou verificação, tanto em termos de funcionamento quanto em termos de tempos de atraso dos componentes e desempenho, sem a necessidade da prototipação do sistema. O projeto ganha portabilidade, já que pode ser compilado em qualquer ferramenta e para qualquer tecnologia. É comum, na indústria, o uso de FPGAs ( Field Programmable Gate Arrays) e CPLDs (Complex Programmable Logic Devices) para produções iniciais ou de menores escalas em projetos que posteriormente possam ser implementados em ASICs (Aplication Specific Integrated Circuit ) [VHDL, 2005]. O FPGA é um circuito integrado que pode ser configurado por meio de Linguagem de Descrição de Hardware e servem para implementar circuitos digitais, como processadores, interfaces, controladores e decodificadores. Com a inserção massiva da tecnologia de FPGAs e VHDL nos equipamentos eletrônicos e, por conseguinte, a crescente demanda por profissionais qualificados nesta área, nota-se a necessidade do aprendizado desta tecnologia ainda no ambiente acadêmico. Assim surgiu a idéia de montar um equipamento que pudesse servir para o ensino dessas tecnologias. O objetivo deste projeto é o desenvolvimento de uma maquete de um elevador, cujos comandos serão tratados via FPGA. Para movimentação do elevador será utilizado motor de passo, sensores para indicação do andar onde se encontra o elevador, botões para chamar o elevador em cada um dos quatro andares, botão representando o painel interno do elevador além, é lógico, do FPGA. Completando o projeto, será montada uma interface com um microcomputador que fará o monitoramento e do posicionamento do elevador.
2 2 FUNDAMENTAÇÃO TEÓRICA Nesta fundamentação teórica são abordados os temas principais no desenvolvimento deste projeto são eles: •
Motor de passo
•
FPGAS
•
Sensores ópticos
•
VHDL
2.1 Motores de passo O motor de passo é um dispositivo eletromecânico que converte pulsos elétricos em movimentos mecânicos e é controlado através de pulsos, o que possibilita o deslocamento por passo, onde passo é o menor deslocamento angular. A seqüência dos pulsos aplicados é relacionada diretamente ao sentido da rotação dos eixos do motor. A velocidade da rotação dos eixos do motor é relacionada diretamente à freqüência dos pulsos da entrada e o comprimento da rotação é relacionado diretamente ao número dos pulsos da entrada aplicados. A vantagem do motor de passos em relação aos outros motores é a estabilidade.
2.1.1 Funcionalidade O número de pólos de um motor de passo é determinado pelo passo angular desejado por pulsos de entrada. O motores de passo tem alimentação externa. Conforme os pulsos na entrada do circuito de alimentação, este oferece corrente aos enrolamentos certos para fornecer o deslocamento desejado. Estes pulsos são dados com a inserção de níveis lógicos sobre os enrolamentos do motor, existem três tipos básicos de motores de passo. Relutância Variável:
Este tipo de motor apresenta o rotor (parte móvel do motor) em aço doce multipolar com os enrolamentos no estator (parte fixa do motor), de forma que entre os dentes do rotor, em relação aos pólos do estator exista uma variação de relutância. Dessa forma, o ponto de equilíbrio local coincide com o ponto de mínima relutância quando as peças polares estão face a face. Através da alimentação de cada uma das fases o núcleo do rotor se posiciona de forma a reduzir o entreferro entre as partes, variando a relutância do circuito magnético. O sentido
3 da corrente nas bobinas não altera o sentido do conjugado, uma vez que o rotor não possui magnetização própria. [NEWTON BRAGA, 2007] Imã permanente:
O motor de imã permanente possui o rotor constituído de um material permanentemente magnetizado. Uma maneira de se visualizar o funcionamento desse motor é imaginar o rotor como um imã simples e o estator como duas fases distribuídas sobre dois pares de pólos. A seqüência de alimentação das bobinas determina a rotação do motor, sendo que para cada mudança de alimentação de corrente o motor gira um passo. [NEWTON BRAGA, 2007] Híbridos:
A forma típica de construção dos motores híbridos apresenta duas seções, com um eixo de material ferromagnético entre elas, sendo que cada seção contém um rotor e um estator com suas bobinas de fase. No eixo é acoplado um imã permanente que magnetiza o rotor de uma seção como pólo norte e o da outra com sul. As linhas de fluxo magnético saem do pólo norte do imã acoplado ao eixo, entram no rotor da primeira seção, saem pelos dentes alinhados com os dentes do estator dessa seção e seguem para a outra seção ao longo da carcaça do estator. Nessa outra seção, entram no rotor pelos dentes alinhados com os dentes do estator e completam o circuito magnético com o pólo sul do imã permanente. De forma análoga aos outros tipos de motores de passo, cada nova excitação de fase provocará um novo passo. [NEWTON BRAGA, 2007]
2.1.2 Tipos de motores Os motores de passo podem ser bipolares, que requerem duas fontes de alimentação ou uma fonte de alimentação de polaridade comutável, ou unipolares, que requerem apenas uma fonte de alimentação. Em ambos os casos as fontes utilizadas são de tensão contínua e requerem um circuito digital que produza as seqüências para produzir a rotação do motor. No controle de um motor de passo nem sempre é necessária a implementação de uma estratégia de realimentação, mas a utilização de um encoder, ou de outro sensor de posição poderá assegurar uma melhor exatidão sempre que for essencial. A vantagem de operar sem realimentação é que deixa de ser necessário um sistema de controle em malha fechada.
4 Motores de passo unipolares
Os motores de passo unipolares são facilmente reconhecidos pela derivação ao centro em cada um dos enrolamentos. O número de fases é duas vezes o número de bobinas, uma vez que cada bobina se encontra dividida em duas. Na Figura 2.1 temos a representação de um motor de passo unipolar. Normalmente, a derivação central dos enrolamentos está ligada ao terminal positivo da fonte de alimentação e os extremos de cada enrolamento são ligados alternadamente à terra para assim inverter a direção do campo gerado por cada um dos enrolamentos.
Figura 2.1 - Motor de passo unipolar FONTE: MINEBEA(2007). A Tabela 2.1 mostra seqüências de pulsos que poderiam ser enviados para realizar o movimento do motor. Tabela 2.1 – Atuação de um motor de passo unipolar
FONTE: MINEBEA(2007).
5 Motores de passo bipolares
Ao contrário dos motores de passo unipolares, os motores bipolares requerem um circuito de atuação bem mais complexo. Os motores de passo bipolares são proporcionam um maior torque comparativamente a um motor unipolar do mesmo tamanho. Na Figura 2.2 temos a representação de um motor de passo bipolar.
Figura 2.2 - Motor de passo bipolar FONTE: MINEBEA(2007). Os motores bipolares são constituídos por enrolamentos separados que devem ser atuados em ambas as direções para permitir o avanço de um passo, ou seja, a polaridade deve ser invertida durante o funcionamento do motor. O padrão de atuação do driver é de todo semelhante ao obtido para o motor de passo unipolar em full-step, mas em vez de 0’s e 1’s temos o sinal da polaridade aplicada às bobinas. Um exemplo de aplicação pode ser encontrado Na Tabela 2.2 mostra seqüências de pulsos que poderiam ser enviados para realizar o movimento do motor. Tabela 2.2 – Atuação de um motor de passo bipolar
FONTE: MINEBEA(2007).
6
2.1.3 Seqüências de acionamento Há três modos de excitação comumente usados: passo normal, meio-passo, e micropasso: Passo Normal (Full-Step)
Na operação de passo normal, o motor usa o ângulo de passo normal, por exemplo: um motor de 200 passos/revolução em passo normal anda em passos de 1.8 graus, enquanto que em operação de meio-passo, operam com passos de 0.9 grau. Há dois tipos de passo normal. De única excitação de fase: o motor é operado com só uma fase energizada de cada vez. Este modo só deve ser usado onde o torque e a velocidade não são importantes, por exemplo onde o motor é operado a uma velocidade fixa e com condições de carga bem definidas. Problemas com ressonância podem impedir operação em baixas velocidades. Este modo requer menos potência do que os demais modos de excitação. Excitação dual: é onde o motor é operado com as fases energizadas duas de cada vez. Este modo proporciona bom torque e velocidade com poucos problemas de ressonância. Excitação dual provê aproximadamente 30 a 40% mais torque que a excitação única, mas também requer o dobro de potência da fonte. Meio-Passo (Half-Step)
Excitação de meio-passo é a excitação única e dual alternadas, que resulta em passos com a metade do tamanho de um passo normal. Este modo dobra a resolução. O torque do motor varia ao alternar o passo, isto é compensado pela necessidade de se usar um passo com metade do ângulo normal. Este modo é totalmente livre de problemas de ressonância. Pode operar motores em uma grande faixa de velocidades e com quase qualquer carga encontrada comumente. Micro-Passo (Micro-Step)
No modo de micro-passo, o ângulo de passo natural de um motor pode ser dividido em muitos ângulos menores. Um motor com de 1.8 graus tem 200 passos/revolução, com o modo micro-passo divisor de 10, ele passaria a ter passos de 0.18 graus e 2000 passos/revolução. Tipicamente, modos de micro-passo variam de divisor de 10 a divisor de 256 (51,200 passos/revolução para um motor de passo de 1.8 graus). Os micro-passos são produzidos proporcionando corrente nas duas bobinas de acordo com o seno e co-seno. Este modo só é
7 usado onde é necessário movimento "macio" ou maior resolução. [NEWTON BRAGA, 2007].
2.2 FPGA FPGA (Field Programmable Gate Arrays) é um circuito integrado configurado por software e serve para implementar circuitos digitais, como processadores, interfaces, controladores e decodificadores. Consiste de um grande arranjo de blocos lógicos configuráveis contidos em um único circuito integrado. [ENRIQUE MANDADO, 2003] A Figura 2.3 apresenta a estrutura interna de um FPGA. BLOCO LOGICO
INTERCONEXÃO PROGRAMAVEL BLOCO E/S
Figura 2.3 – Estrutura interna de um FPGA. O FPGA possui três conjuntos de configurações. Os blocos lógicos de configuração (CLB) que são os recursos que permitem realizar diferentes funções lógicas. Sua complexidade pode variar desde um simples par de transistores ate um bloco de memória LUT (Look-up Tables) .As células de armazenamento dos LUTs de um FPGA são voláteis, o que implica perda do conteúdo armazenado, no caso de falta de suprimento de energia elétrica. Dessa forma, o FPGA deve ser programado toda vez que for energizado. Foram criadas algumas categorias para classificar os FPGA´s quanto ao bloco logico: Granularidade grossa: os FPGAs dessa categoria podem possuir unidades lógicas e aritméticas, pequenos microprocessadores e memórias. Granularidade media: esses FPGAs freqüentemente contêm duas ou mais LUTs e dois ou mais flip-flops. A maioria das arquiteturas de FPGAs implementam a lógica em LUTs de quatro entradas.
8 Granularidade fina: FPGAs que contêm um grande número de blocos lógicos simples. Os blocos lógicos normalmente contêm uma função lógica de duas entradas ou um multiplexador 4x1 e um flip-flop. Blocos de entrada e saída IOB ( Input/Output Block) que são circuitos pelo interfaceamento das saídas provenientes das combinações de CLBS ( Configurable Logic Block). São basicamente buffers que funcionarão como um pino bidirecional entrada e saída
do FPGA. Estes blocos podem ter diferentes graus de complexidade. Recursos de interconexão são conjuntos de trilhas e interruptores programáveis que permitem transmitir os sinais entre os blocos lógicos de configuração e blocos de entrada/saída. O processo de escolha das interconexões é chamado de roteamento. A arquitetura de roteamento de um FPGA é a forma pela qual os seus barramentos e as chaves de comutação são posicionados para permitir a interconexão entre as células lógicas. Essa arquitetura deve permitir que se obtenha um roteamento completo e, ao mesmo tempo, uma alta densidade de portas lógicas. [ENRIQUE MANDADO, 2003]
2.2.1 Kit Educacional UP1 O kit UP1 é uma placa experimental baseada em 2 dispositivos da família Altera.: MAX7000 e FLEX10K. De simples design é usado com o software QUARTUS que fornece uma plataforma superior pra o aprendizado de lógica digital e desenvolvimento de CPLD. A Figura 2.4 apresenta o KIT UP1.
Figura 2.4 - KIT UP 1 FONTE: ALTERA (2003)
9 Os dispositivos FLEX10K da Altera são os primeiros CPLDs embarcados da indústria. Baseado em elementos SRAM (Static Random Access Memory) e CMOS (Complementary Metal Oxid Semiconductor), os FPGA´s incorporam todas as características necessárias para
executar funções de um CPLD comum. Com até 250.000 portas, a família FLEX 10K fornece a densidade, a velocidade e um desempenho elevado alem das características para integrar sistemas inteiros em um único dispositivo. Os dispositivos FLEX 10K são reconfiguráveis, o que permite vários testes antes da transmissão. Em conseqüência, não é necessário gerar testes para da cobertura da falha. Os dispositivos FLEX 10K podem ser configurados na placa para a funcionalidade específica requerida. Nenhuma técnica de projeto especial é requerida para executar as aplicações, eles podem ser executadas em Verilog HDL, VHDL, e linguagem de descrição de hardware da Altera (AHDL). [ALTERA, 2003] A Figura 2.5 apresenta o FLEX 10K.
Figura 2.5 – FLEX 10K FONTE: ALTERA (2003) Cada dispositivo FLEX 10K contem um arranjo embutido e um arranjo lógico. O primeiro é utilizado para implementar uma variedade de funções de memória ou funções lógicas complexas, tais como de processamento digital de sinais, microcontroladores e transformação de dados. O arranjo lógico realiza lógica geral como contadores, somadores, máquina de estados e multiplexadores. O uso conjunto dos dois arranjos propicia alto desempenho e alta densidade lógica, permitindo a implementação inclusive de um sistema completo em um único dispositivo. [ALTERA, 2003]
2.3 Sensor Óptico
Este tipo de sensor é constituído por dois componentes denominados, emissor e receptor de luz. Geralmente, os emissores de luz são LED´s eletrônicos ou lâmpadas comuns. Já o receptor é um componente eletrônico foto-sensível tais como fototransistores, fotodiodos, ou LDR´s. [SIEMENS,2007]
10 Alguns tipos de sensores: Barreira
O elemento transmissor de irradiação infravermelha é alinhado frontalmente a um receptor infravermelho, a uma distância predominada e específica para cada tipo de sensor. Qualquer interrupção desta irradiação deixará de atingir o receptor, portanto ocorrerá um chaveamento eletrônico. A Figura 2.6 apresenta um exemplo de sensor de barreira.
EMISSO
OBJETO
RECEPTO
O objeto interrompe o feixe entre o emissor e o receptor
Figura 2.6 – Sensor de barreira.
Difuso
Os elementos de emissão e recepção infravermelha estão montados justapostos em um mesmo conjunto óptico, direcionados para a face sensível do sensor. Os raios infravermelhos emitidos pelo transmissor, refletem sobre a superfície de um objeto e retornam em direção do receptor a uma distância determinada como distância de comutação, o que provoca o chaveamento eletrônico desde que o objeto possua uma superfície não totalmente fosca. A Figura 2.7 apresenta um exemplo de sensor difuso. OBJETO EMISSOR
Reflexão no próprio objeto Figura 2.7 – Sensor difuso.
11 Retroreflexivo
Possui características mecânicas idênticas ao sistema por difusão com algumas mudanças no sistema óptico.Os raios infravermelhos emitidos, somente refletem em um espelho prismático especial, colocado a uma distância, dentro da zona determinada como distância de comutação, frontalmente a face sensível do sensor, e retornam em direção ao receptor, formando uma barreira óptica. A comutação ou chaveamento ocorre quando se retira o espelho ou quando se interrompe a barreira de raios infravermelhos entre sensor e espelho com um objeto ou corpo de qualquer natureza. [SIEMENS,2007] A Figura 2.8 apresenta um exemplo de sensor retroreflexivo.
Espelho EMISSOR OBJETO
Barreira formada entre Receptor e Espelho O Objeto interrompe o feixe. Figura 2.8 – Sensor retroreflexivo.
2.4 VHDL Nas décadas de 70 e 80 foi posto em prática um programa do Departamento de Defesa Americano, para desenvolvimento de circuitos integrados de alta velocidade, denominado VHSIC (Very High Speed Integradet Circuit) srcinado da preocupação de domínio das tecnologias envolvidas. Em 1983, foram definidos os requisitos de uma linguagem de descrição de circuitos padrão. Microprocessadores eram utilizados em várias aplicações, eram reproduzidos e testados aos milhões. Isso significava que o investimento em um único projeto poderia ser muito maior, inclusive em termos de especificação e testes. A evolução da metodologia de projeto de software foi então natural, em função dos argumentos sustentados pela crise. Hoje ainda é grande o desenvolvimento de novos métodos e a busca por uma linguagem descritiva universal, como o UML, para especificação e projeto de software orientado a objetos.
12 Com o objetivo de adicionar facilidades a linguagem, foram propostos dois padrões, o IEEE 1164 e IEEE 1076.3. O primeiro define o pacote “Std_logic_1164”, e o segundo os pacotes “Numeric_std” e “ Numeric_bit”. Um pacote em VHDL é um local para armazenamento de informações de uso comum, como tipos de dados, funções, etc. Como a linguagem VHDL suporta projetos com múltiplos níveis de hierarquia, a descrição pode consistir na interligação de outras descrições menores, o código que representa o comportamento esperado do circuito. Esses estilos são denominados estrutural e comportamental, e podem ser mesclados em uma mesma descrição. Com exceção de regiões especificas no código, todos os comandos são executados concorrentemente. Isto significa que a ordem na apresentação dos comandos é irrelevante para o comportamento da descrição. A ocorrência de um evento em um sinal leva a execução de todos os comandos sensíveis aquele sinal, da mesma forma que, um circuito, a mudança de um valor em um determinado nó afeta todas as entradas ligadas a esse ponto do circuito. A linguagem permite, também, delimitar regiões do código seqüencial, onde a execução dos comandos segue a ordem de sua apresentação no código. Para essas regiões são utilizados comandos específicos, que não podem ser empregados na região de código concorrente. Subprogramas e processos são regiões do código seqüencial. Assim como as linguagens de programação. A linguagem VHDL permite definição de subprogramas na forma de procedimentos e funções. Os subprogramas podem ser empregados em rotinas de conversão, definição de novos operadores e outras operações não diretamente ligadas a um circuito passível de síntese. Nada impede que um subprograma tenha uma correspondência direta a um elemento do circuito a ser sintetizado. O código de um circuito multiplicador composto por conjuntos de células pode ter a função de cada célula descrita num subprograma. Na linguagem VHDL não é feita nenhuma distinção entre comandos empregando caracteres maiúsculos ou minúsculos, e os comentários iniciam aos dois hífens, e terminam no final da linha. Devido a sua potencialidade, o VHDL é complexo, e muitas vezes de difícil entendimento, dado as inúmeras opções para modelar o comportamento de um mesmo circuito. Entretanto, o entendimento de um pequeno numero de comandos, suficiente para modelamento de estruturas medianamente complexas, pode ser rapidamente atingido. A necessidade de projetos mais complexos encaminha a procura por novos comandos levando a uma maior compreensão das opções da linguagem [ROBERTO D´AMORE, 2005].
13 Vantagens do Uso
A alternativa para uso de uma linguagem formal de descrição de hardware como o VHDL é a descrição por diagramas esquemáticos. O VHDL apresenta as seguintes vantagens: a) Em sistemas seqüenciais, o detalhamento da lógica de controle é realizado pelas ferramentas de automação do projeto, o que evita a trabalhosa e limitada aplicação das técnicas manuais tradicionais; b) O objetivo do projeto fica mais claro que na representação por esquemáticos, nos quais a implementação se sobrepõe à intenção do projeto; c) O volume de documentação diminui, já que um código bem comentado em VHDL substitui com vantagens o esquemático e a descrição funcional do sistema; d) O projeto ganha portabilidade, já que pode ser compilado em qualquer ferramenta e para qualquer tecnologia. É comum, na indústria, o uso de FPGAs e CPLDs para produções iniciais ou de menores escalas em projetos que posteriormente possam ser implementados em ASICs. Todas as implementações podem usar o mesmo código VHDL.
14 3 ESPECIFICAÇÃO DO PROJETO
3.1 Estrutura Geral O projeto possui uma planta com uma cabine de elevador conforme mostra a figura 3.1. Os botões internos e externos do elevador, utilizados para a solicitação de chamadas dos andares, estão instalados em um controle localizado ao lado da planta do elevador e são do tipo “push-button”. A movimentação da cabine é controlada por um motor de passo que está instalado na parte superior do elevador. A indicação de que a cabine está num determinado andar é obtida através das chaves optoeletrônicas (sensor de barreira), com emissor e receptor no mesmo componente. Existe ainda um display BCD 7 segmentos que indica o andar no qual o elevador se encontra. Através do computador é possível visualizar a localização e o estado do elevador. A figura 3.2 mostra o diagrama em blocos do sistema com os componentes acima citados. Descrição de operação do elevador: O elevador atende todas as chamadas válidas na direção em que está indo e somente quando tiver atendido a todas pode mudar de direção, ou seja: Se o elevador estiver subindo, atenderá aos pedidos de subida, se houver pedido •
para subir acima do andar atual do elevador. •
Se o elevador estiver descendo, atenderá aos pedidos de descida, se houver pedido para descer abaixo do andar atual do elevador.
•
Se não houver pedidos, o elevador fica parado. Se em seguida, for feito um pedido para algum andar diferente daquele em que ele estava parado, ele atenderá ao pedido.
•
Quando não há nenhuma chamada e diversas chamadas forem feitas ao mesmo tempo, dar preferência à descida do elevador.
15 A Figura 3.1 apresenta a planta do elevador.
Figura 3.1 – Planta do elevador O software demonstra a movimentação do elevador através dos dados enviados pela FPGA para o PC através da porta paralela.
16
Figura 3.2 – Diagrama em blocos do sistema.
3.2 Arquitetura Hardware Os blocos principais da arquitetura do elevador são: •
Sensores dos andares
•
Botões
•
Motor
•
FPGA
•
Display
Sensores dos andares
Os sensores dos andares são do tipo óptico com o emissor e receptor montados no mesmo invólucro, a saída é acionada, quando um objeto interrompe o feixe de luz, impedindo que este atinja o espelho e retorne ao receptor do sensor, a saída do sensor é acionada. Botões
Existem dois tipos de botões: •
chamada nos andares
•
interiores ao elevador
17 Os botões são “active high”, ou seja, normalmente o nível lógico da entrada a que estão associados é 0, ficando 1 quando são pressionados. Cada um dos botões esta ligado a uma porta do FPGA. Os botões possuem leds internos e conforme são apertados indicam em quais andares existem chamadas. Motor
O motor do elevador é controlado a partir de 4 portas de saída do FPGA, uma para cada saída do motor. Serão utilizados transistores para interface com o motor. FPGA
O FPGA utilizado é o FLEX10K da Altera, que é reconfigurável, o que permite vários testes antes da transmissão. Em conseqüência, não é necessário gerar testes para da cobertura da falha. Ele é controlado por linguagem de descrição de hardware (VHDL). Display
É utilizado um CI 4511 que converte um número binário de 0 a 9 em um conjunto de sinais para ligar os leds de um display de sete segmentos. O display apresenta sete segmentos luminosos que poderão ser ligados ou desligados para formar um numero.
3.3 Arquitetura Software Os dados utilizados no software são recebidos pelo PC através da porta paralela. O software tem por finalidade realizar a interação do usuário com o sistema desenvolvido, através do software é possível ver a movimentação da cabine do elevador. Resumindo, o software desenvolvido para o elevador, plota um gráfico onde é possível visualizar a posição da cabine.
18 A Figura 3.3 apresenta o fluxograma do sistema.
INICIO
INICILIAZAÇÃO DA COMUNICAÇÃO COM DISPOSITIVO DE HARDWARE
ENVIO
ATUALIZA VALORES DOS SENSORES
FECHA A PORTA DE COMUNICAÇÃO COM O HARDWARE
FINALIZAR PROGRAMA
FIM
Figura 3.3 – Fluxograma do sistema.
3.4 Estudo de Viabilidade economica Tabela 3.1– Estudo de Viabilidade Econômica Recursos Necessários Horas de trabalho Componentes eletrônicos Plataforma de desenvolvimento Quartus Plataforma de desenvolvimento C++ Builder Maquete
Custos (R$) 6.000,00 600,00 Gratuito 2.500,00 300,00
19
3.5 Cronograma Tabela 3.2– Cronograma
20 4 PROJETO
4.1 Projeto de hardware 4.1.1 Motor O motor de passo escolhido para a movimentação do elevador foi o PM55L-048 da Minebea, motor unipolar de 2 fases e ângulo de passo de 7.5°. [MINEBEA,2007]
Figura 4.1 – Motor de passo PM55L-048 FONTE: MINEBEA(2007). A figura 4.2 mostra a faixa de torque dos motores de passo da marca Minebea. O motor acima foi escolhido pelo seu torque elevado, o que elimina a necessidade de caixas de redução mecânica. Além disso, este motor é facilmente encontrado no mercado brasileiro.
Figura 4.2 – Faixa de torque de acordo com o tipo do motor FONTE: MINEBEA(2007)
21 4.1.2
Interface de potência Para que a FPGA possa controlar o motor de passos torna-se necessário o uso de uma
interface de potencia. Foi projetado um circuito que suporta alimentar o motor sem aquecimento. A Figura 4.3 apresenta o diagrama esquemático da interface. E possui os seguintes componentes: •
Transistores Darlington (TIP 121);
•
8 Resistores 1 K ohms;
•
Optoacopladores (4N25).
VCC
1K
U1 1
6 5
2
VMOTOR 1K
4
Q1 TIP121
4N25
1K
U2 1
6 5
2
4
J5 6 5 4 3 2 1
VMOTOR 1K Q2 TIP121
4N25 J4 1 2 3
1K
CON6
4 5 6 7 8
U3 1
6 5
2
VMOTOR 1K
4
Q3 TIP121
4N25
CON8 VMOTOR J6
1K
U4 1
6 5
2
4
1 2 VMOTOR 1K Q4 TIP121
4N25
Figura 4.3 – Esquemático interface de potência.
CON2
22 A Figura 4.4 mostra a placa da interface de potência em sua versão final.
Figura 4.4 – Placa de interface potência. MG1
24V PRETO MARRON
1 2 3
4
5
O L E R A M A
6
O H L E M R E V
MOTOR STEPPER
A J N A R A L
Figura 4.5 – Esquemático motor de passo. Esta interface funcionará sob o comando da FPGA, ao enviar um nível lógico alto para das portas dos optoacopladores, será acionada a bobina do motor e ela ficara energizada.
4.1.3 Sensor Óptico (chave optoeletrônica) O sensor PCHT203 da Politronic é responsável pela detecção da posição da cabine do elevador. [POLITRONIC, 2004] Quando um objeto interrompe o feixe de luz, impedindo que este atinja o espelho e retorne ao receptor do sensor, a saída do sensor é acionada. Normalmente o nível lógico é 0,
23 ficando 1 quando existe a uma interrupção no sensor. Cada um dos sensores esta ligado a uma da porta do FPGA. A Figura 4.6 apresenta o diagrama esquemático do acionamento do sensor. E possui os seguintes componentes: •
1 chave optoeletronica PCHT203;
•
1 Resistor 1 K ohms;
•
1 Resistor 10 K ohms. D2
1K 5V
J2 J3
1 1
CON1
10K
D1
1
J1 CON1
Figura 4.6 – Esquemático sensor. A Figura 4.7 mostra a placa do sensor em sua versão final.
Figura 4.7 – Placa do sensor.
CON1
24
4.1.4 Alimentação do circuito O motor de passo é alimentado com +24Vcc e demais partes do circuito com +5Vcc. A alimentação do KIT da Altera é feito por uma fonte que pode ser de 7V e 12V de no mínimo 250mA.
4.1.5 Display É utilizado um CI 4511 que converte um número binário de 0 a 9 em um conjunto de sinais para ligar os leds de um display de sete segmentos. O display apresenta sete segmentos luminosos que poderão ser ligados ou desligados para formar um numero. A Figura 4.8 apresenta o diagrama esquemático do acionamento do display.
1 2 3 4 5 J1
g f
U5
CON5 7 1 2 6 4 5 3 16
A B C D BI LE LT
a b c d e f g
g f
13 12 11 10 9 15 14
VDD
2 U
2 V a b 2 a b V
7 6 5
D H P
1 e d V c . e d 1 c . V
4511
R1
Figura 4.8– Esquemático display
25 A Figura 4.9 mostra a placa do display em sua versão final.
Figura 4.9 – Placa do display.
4.1.6 FPGA Os sinais de entrada e saída da FPGA são os seguintes: CLK: Sinal que irá definir o clock para FPGA, vem do próprio kit da Altera.
Reset: Quando igual a “1” reinicia o modulo. Motor [3..0] : Sinal de saída da FPGA, que indicam o valor de cada fase do motor .
Este sinal é enviado para interface de potência para ativação do motor. Display [1..0] : Sinal de saída da FPGA, que indicam o valor do andar que se encontra
o elevador. Sensor0: Sinal de entrada da FPGA, que detecta a cabine no térreo. Sensor1: Sinal de entrada da FPGA, que detecta a cabine no primeiro andar. Sensor1: Sinal de entrada da FPGA, que detecta a cabine no segundo andar. Sensor1: Sinal de entrada da FPGA, que detecta a cabine no terceiro andar. Botões 0: Sinal de entrada da FPGA, que indica uma chamada no térreo. Botão1: Sinal de entrada da FPGA, que indica uma chamada no primeiro andar. Botão2: Sinal de entrada da FPGA, que indica uma chamada no segundo andar. Botão3: Sinal de entrada da FPGA, que indica uma chamada no terceiro andar. Led0: Sinal de saída da FPGA, que indica uma chamada no térreo. Led1: Sinal de saída da FPGA, que indica uma chamada no primeiro andar. Led2: Sinal de saída da FPGA, que indica uma chamada no segundo andar.
26 Led3: Sinal de saída da FPGA, que indica uma chamada no terceiro andar. Pc0: Sinal de saída da FPGA, que permite visualização do elevador no térreo via
software. Pc1: Sinal de saída da FPGA, que permite visualização do elevador no primeiro andar
via software. Pc2: Sinal de saída da FPGA, que permite visualização do elevador no segundo andar
via software. Pc3: Sinal de saída da FPGA, que permite visualização do elevador no terceiro andar
via software. Up: Indica que o elevado esta subindo. Down: Indica que o elevador esta descendo.
O hardware descrito em VHDL é responsável por: •
comandar o motor de passo;
•
receber os sinais dos sensores e botões;
•
enviar os sinais para o software, o display e os leds.
O mesmo foi desenvolvido no software QuartusII, da Altera, na versão gratuita disponibilizada para estudantes. A Figura 4.10 mostra o bloco Elevador que é responsável por receber os sinais dos botões e dos sensores e enviar os sinais para o software e para os leds. elevador reset clk
up down
botao0
pc0
botao1
pc1
botao2
pc2
botao3
pc3
sensor0
led0
sensor1
led1
sensor2
led2
sensor3
led3 displa y [1..0]
inst
Figura 4.10-Bloco Elevador A Figura 4.11 mostra o bloco subir_descer. Este bloco é responsável pelas seqüências de passos a ser enviada para o motor e também a decisão sobre subir ou descer (quando
27 existirem chamadas simultâneas). Seu funcionamento é encerrado quando a cabine chega no andar chamado. subir_descer up
motor[3..0]
down clk reset
inst2
Figura 4.11 – Bloco subir_descer A Figura 4.12 mostra o bloco divisor de clock, este bloco é responsável pelo tratamento da freqüência do circuito. Foi usada como entrada a variável clk (clock geral do sistema), e como saída a variável clk_divisor. Foi feito, inicialmente, um divisor 10_400_00, o que nos proporcionou uma freqüência de aproximadamente 2,5Hz.
divisor clk
clk_divi sor
inst1
Figura 4.12 – Bloco divisor de freqüência.
4.2 Projeto de Software O Software foi desenvolvido em linguagem de programação C++ através da ferramenta C++ Builder 6.0 A Figura 4.13 representa a interface gráfica que faz a interação do sistema com o usuário final.
Figura 4.13– Interface gráfica
28 Ao inicializar o software o computador realiza varreduras constantes na paralela aguardando o sinal da FPGA que indica o andar em que esta a cabine.
29 5 VALIDAÇÃO
5.1 Testes 5.1.1 Interface de potência. No teste da placa da interface de potência foi utilizada a mesa de testes digital. Utilizando 24V, passando por chaves elétricas da mesa de testes e ligando diretamente ao motor PM55L048 da Minebea, foram aplicadas as seqüências de pulsos no motor fazendo-o girar. Foram verificadas as correntes e tensões nas entradas e saídas da placa de interface de potência. Inicialmente os testes foram feitos no protoboard, e finalizados na placa de circuito impresso.
5.1.2 Motor de passo No teste do motor de passo, foi utilizado o Kit UP1 e a placa da interface de potência. Os pulsos para girar o motor eram controlados pelo código em VHDL de acordo com a tabela 2.1.
5.1.3 Display Foi introduzindo os valores de testes na FPGA: when 0 => Leds <= "0000"; when 1 => Leds <= "0001"; when 2 => Leds <= "0010"; when 3 => Leds <= "0011 “; e o display devera responder aos sinais.
5.1.4 Hardware descrito na FPGA: Os testes devem realizados no simulador de ondas do próprio QuartusII e no KitUP1 da Altera.
5.1.5 União dos módulos Foram realizadas chamadas para andares de forma aleatórias, a movimentação da cabine é controlada pelo um motor de passo que está instalado na parte superior do elevador. A indicação de que a cabine chegou ao andar chamado é obtida pelo acionamento do sensor
30 que envia o sinal para a FPGA. Então é possível ver via display o andar que a cabine se encontra. Através do computador é possível visualizar a localização e o estado do elevador.
31 6 CONCLUSÃO Este trabalho buscou introduzir uma alternativa para o ensino de lógica programável mais atrativa e menos abstrata. Foi possível perceber a importância da divisão em blocos do hardware desenvolvido em VHDL. A placa UP1 mostrou-se uma ferramenta bastante versátil para todos os testes necessários mostrando a eficiência da lógica reconfiguravel para o controle de vários dispositivos. Isto possibilitou uma maior flexibilidade para a lógica a ser implementada. Outro diferencial é a grande quantidade de portas disponíveis para o desenvolvimento de projetos. Durante os testes, ocorreram problemas eventuais de movimentação do elevador. Isto se deve aos “trancos” sofridos pela cabine durante a movimentação. Estes “trancos” são ocasionados pelos passos do motor. O sensor alterava o nível lógico indicativo da presença da cabine antes de a cabine estar efetivamente no andar. Uma possível solução para este problema seria desvincular os sinais dos sensores dos comandos de movimentação do motor na FPGA. Os resultados obtidos no projeto atingiram as metas desejadas no inicio do projeto, ou seja, o desenvolvimento de uma maquete de um elevador cujos comandos são tratados via FPGA. Futuramente poderá ser feito um comando para dois elevadores, permitido assim a implantação de uma lógica mais elaborada para o controle das cabines. Além disso é possível incrementar o software inserindo mais informações como status de portas (aberta ou fechada), sinais indicativos de andares chamados e uma lista indicando as prioridades que os andares serão atendidos.
32 7 REFERÊNCIAS BIBLIOGRÁFICAS ALTERA; Disponível em: http://www.altera.com, Acessado em Março 2007 BRAGA, Newton C.. Eletrônica Básica para Mecatronica: São Paulo: Saber,2005. D´AMORE, Roberto, VHDL : Rio de Janeiro: LTC, 2005. MANDADO, Enrique, Dispositivos Lógicos Programables: Madrid: Thomson, 2003. MINEBEA; Disponível em: http://www.eminebea.com/content/html/en/engineering/motors/pm_motor/selection_p m/drivecircuit.shtml, Consultado em Maio 2007
Motor de Passo de Relutância Variável; Disponível em: http://members.fortunecity.com/camusp/relatorios/pmc527Acionamentosparamecatron ica/MotordeRelutanciaChaveada.doc , Consultado em Maio 2007 POLITRONIC, Componentes eletrônicos; Disponível em: http://www.politronic.com.br, Novembro de 2004. Consultado em Maio 2007 SIEMENS, Sensores Óticos; Disponível em : http://www.siemens.com.br/templates/produto.aspx?channel=250&produto=12741 Consultado Março 2007.
,