planta de elevadores com controle por fpgas · fpga – (field programmable gate arrays) arranjos...
Post on 14-Oct-2020
5 Views
Preview:
TRANSCRIPT
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
iii
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
iv
v
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.
vi
vii
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.
viii
ix
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.
x
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
xi
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
xii
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-048 ................................................................. 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üência. ............................................................... 27
Figura 4.13– Interface gráfica................................................................................... 27
xiii
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
xiv
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)
xv
LISTA DE SÍMBOLOS
Ω - ohm
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 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.
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.
BLOCO LOGICO
INTERCONEXÃO
PROGRAMAVEL
BLOCO E/S
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.
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.
Figura 2.7 – Sensor difuso.
RECEPTOOBJETO EMISSO
O objeto interrompe o feixe entre o emissor e o receptor
EMISSOR
Reflexão no próprio objeto
OBJETO
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.
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.
EMISSOR
Barreira formada entre Receptor e Espelho
O Objeto interrompe o feixe.
Espelho
OBJETO
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.
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
INICILIAZAÇÃO DA
COMUNICAÇÃO
COM DISPOSITIVO
DE HARDWARE
ENVIO
FECHA A PORTA DE
COMUNICAÇÃO COM
O HARDWARE
ATUALIZA
VALORES DOS
SENSORES
FIM
FINALIZAR
PROGRAMA
INICIO
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
VMOTOR
VMOTOR
Q2TIP121
1K
1 6
2
5
4
U2
4N25
1K
VMOTOR
Q3TIP121
1K
1 6
2
5
4
U3
4N25
1K
VMOTOR
Q4TIP121
1K
1 6
2
5
4
U4
4N25
1K
Q1TIP121
1K
1 6
2
5
4
U1
4N25
VMOTOR
1K
12345678
J4
CON8
123456
J5
CON6
12
J6
CON2
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.
Figura 4.4 – Placa de interface potência.
123
4 5 6
MG1
MOTOR STEPPER
VE
RM
ELH
O
PRETO
MARRON
AM
AR
EL
O
LA
RA
NJ
A
24V
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
D110K
1K
5V
1
J1
CON1
1
J2
CON1
1
J3
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.
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.
gg
ff
aa
bb
..
cc
dd
ee
V1
V1
V2
V2
U2
PH
D5
67
A7
B1
C2
D6
LT3
BI4
LE5
a13
b12
c11
d10
e9
f15
g14
VDD16
U5
4511
12345
J1
CON5
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.
reset
clk
botao0
botao1
botao2
botao3
sensor0
sensor1
sensor2
sensor3
up
down
pc0
pc1
pc2
pc3
led0
led1
led2
led3
display [1..0]
elev ador
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.
up
down
clk
reset
motor[3..0]
subir_descer
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.
clk clk_div isor
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.
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.
top related