Você está na página 1de 48

CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO

PLANTA DE ELEVADORES COM CONTROLE POR FPGAS

UNICENP/NCET

Curitiba

2007

Cristina Biz

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

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

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

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

11

Figura 3.1 – Planta do elevador

15

Figura 3.2 – Diagrama em blocos do sistema

16

Figura 3.3 – Fluxograma do

18

Figura 4.1 – Motor de passo PM55L-048

20

Figura 4.2 – Faixa de torque de acordo com o tipo do motor

20

Figura 4.3 – Esquemático interface de

21

Figura 4.4 – Placa de interface potência

22

Figura 4.5 – Esquemático motor de passo

22

Figura 4.6 – Esquemático

23

Figura 4.7 – Placa do

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

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

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.

a direção do campo gerado por cada um dos enrolamentos. Figura 2.1 - Motor de passo

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

enviados para realizar o movimento do motor. Tabela 2.1 – Atuação de um motor de passo

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.

2.2 temos a representação de um motor de passo bipolar. Figura 2.2 - Motor de passo

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

enviados para realizar o movimento do motor. Tabela 2.2 – Atuação de um motor de passo

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 micro-

passo:

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.

2003] A Figura 2.3 apresenta a estrutura interna de um FPGA. BLOCO LOGICO INTERCONEXÃO PROGRAMAVEL BLOCO

BLOCO LOGICO

INTERCONEXÃO

PROGRAMAVELa estrutura interna de um FPGA. BLOCO LOGICO INTERCONEXÃO BLOCO E/S Figura 2.3 – Estrutura interna

BLOCO E/S

de um FPGA. BLOCO LOGICO INTERCONEXÃO PROGRAMAVEL BLOCO E/S Figura 2.3 – Estrutura interna de um
de um FPGA. BLOCO LOGICO INTERCONEXÃO PROGRAMAVEL BLOCO E/S Figura 2.3 – Estrutura interna de um

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.

de lógica digital e desenvolvimento de CPLD. A Figura 2.4 apresenta o KIT UP1. Figura 2.4

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.

(AHDL). [ALTERA, 2003] A Figura 2.5 apresenta o FLEX 10K. Figura 2.5 – FLEX 10K FONTE:

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

2.6 apresenta um exemplo de sensor de barreira. EMISSO OBJETO RECEPTO O objeto interrompe o feixe
OBJETO
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
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.

EMISSOR
EMISSOR

Espelho

OBJETO
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) originado 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.

15 A Figura 3.1 apresenta a planta do elevador. Figura 3.1 – Planta do elevador O

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

16 Figura 3.2 – Diagrama em blocos do sistema. 3.2 Arquitetura Hardware Os blocos principais da

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
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
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

Custos (R$)

Horas de trabalho

6.000,00

Componentes eletrônicos

600,00

Plataforma de desenvolvimento Quartus

Gratuito

Plataforma de desenvolvimento C++ Builder

2.500,00

Maquete

300,00

19

3.5 Cronograma

Tabela 3.2– Cronograma

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]

de 2 fases e ângulo de passo de 7.5°. [MINEBEA,2007] Figura 4.1 – Motor de passo

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.

este motor é facilmente encontrado no mercado brasileiro. Figura 4.2 – Faixa de torque de acordo

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

suporta alimentar o motor sem

aquecimento. A Figura 4.3 apresenta o diagrama esquemático da interface. E possui os seguintes componentes:

interface de

potencia. Foi projetado um circuito que

Transistores Darlington (TIP 121);

8 Resistores 1 K ohms;

Optoacopladores (4N25).

VCC 1K U1 1 6 5 VMOTOR 1K 2 4 Q1 TIP121 4N25 1K U2
VCC
1K
U1
1
6
5
VMOTOR
1K
2
4
Q1
TIP121
4N25
1K
U2
1
6
5
VMOTOR
J5
1K
6
2
4
Q2
5
TIP121
4
4N25
3
2
J4
1
1
1K
2
CON6
3
4
U3
5
1
6
6
5
VMOTOR
7
1K
8
2
4
Q3
TIP121
4N25
CON8
1K
VMOTOR
J6
U4
1
1
6
2
5
VMOTOR
1K
2
4
Q4
CON2
TIP121
4N25

Figura 4.3 – Esquemático interface de potência.

22

A Figura 4.4 mostra a placa da interface de potência em sua versão final.

a placa da interface de potência em sua versão final. 24V Figura 4.4 – Placa de

24V

Figura 4.4 – Placa de interface potência. MG1 1 PRETO 2 3 MARRON MOTOR STEPPER
Figura 4.4 – Placa de interface potência.
MG1
1
PRETO
2
3
MARRON
MOTOR STEPPER
4
AMARELO
5
VERMELHO
6
LARANJA

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 10K CON1 CON1 D1 1
D2
1K
5V
J2
J3
1
1
10K
CON1
CON1
D1
1

J1

CON1

Figura 4.6 – Esquemático sensor.

A Figura 4.7 mostra a placa do sensor em sua versão final.

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.

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.

U5 CON5 1 7 13 A a 2 1 12 B b 3 2 11
U5
CON5
1
7
13
A
a
2
1
12
B
b
3
2
11
C
c
4
6
10
D
d
5
9
e
4
15
BI
f
5
14
J1
LE
g
3
LT
16
VDD
4511
R1
U2
e d
e d
g f
f g
V1
V2
V1
V2
c
a
c
a
.
b
.
b
PHD567

Figura 4.8– Esquemático display

25

A Figura 4.9 mostra a placa do display em sua versão final.

A Figura 4.9 mostra a placa do display em sua versão final. Figura 4.9 – Placa

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.

elev ador

 
 

reset

up

 

clk

down

 

botao0

pc0

 

botao1

pc1

 
 

botao2

pc2

 
 

botao3

pc3

 
 

sensor0

led0

 
 

sensor1

led1

 
 

sensor2

led2

 
 

sensor3

led3

 
   

display [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

down

clk

reset

motor[3

0]

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.

div isor

clk

clk_div isor

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.

representa a interface gráfica que faz a interação do sistema com o usuário final. Figura 4.13–

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.