Frequencímetro

Download Report

Transcript Frequencímetro

Instrumentação eletrônica
Frequencímetro
Daniel Wanderley Honda
Fernanda Palhano Xavier de Fontes
Sumário
•
•
•
•
•
•
Objetivos
Métodos utilizados
Método 1
Método 2
Visualização do resultado
Implementação
2
Objetivos
• Realizar um frequencímetro digital
• Medir frequências entre 1 Hz e 10 MHz com
atualização de no máximo 2 segundos
• Indicar erro no caso de frequências fora da
faixa mesurável
• Mudar de gama (Hz, KHz, MHz)
automaticamente
3
Objetivos
• Projeto realizado em VHDL utilizando o
programa Xlinx
• Implementado em FPGA Pegasus Digilent
Spartan II
4
Métodos utilizados
• Para o cálculo da frequência podem ser
utilizados dois métodos:
– Contagem das transições do estado baixo para o
estado alto durante um pulso de 1 segundo
5
Métodos utilizados
• Contagem dos pulsos do clock (50 MHz) entre duas
transições do estado baixo para o estado alto do sinal
de entrada. Em seguida, divisão de 50.000.000 por
esse número
6
Método 1
– Blocos utilizados
• “creation_etalon’’
• “calcul_frequence”
• “sch_affichage”
7
Método 1
• “Creation_etalon”
Entradas
Entree: Sinal a ser medido
clk: clock de 50 MHz
rst: reset
Saídas
etalon: sinal de período igual a 2
segundos e ciclo de trabalho de 50%
ce: sinal de ativação dos contadores
8
Método 1
• “Calcul_frequence”
9
Método 1
• “ensemble_compteur”
- 8 contadores de 0 à 9 em cascata
- Contagem até 99.999.999
- Sincronização dos contadores feita através do uso de portas AND
- Quando pg = 1 e ce = 1 o contador seguinte é ativado
- Resultado em 32 bits
10
Método 1
• “Memoire” e “Detecteur_descendant”
-Transição do estado alto para o estado baixo do sinal etalon ativa a memória
- Os contadores devem recomeçar a contar : o mesmo sinal utilizado para
ativação da memória, mas com um pequeno retardo introduzido por um flipflop D
11
Método 1
• “Comparateur”
Entradas
clk: clock de 50 MHz
E0 à E7: resultado de cada
contador
Saídas
p1 à p3: ponto
b1 à b3: gama de frequência (Hz, KHz
ou MHz)
aff1 à aff4: valores a serem mostrados
nos displays 7 segmentos
12
Método 1
13
Método 1
- Simulação
14
Método 2
– Para este método utilizaremos 3 blocos
funcionais: “autorisation”, “compteur” e “
diviseur2”;
15
Método 2
– O bloco “autorisation” tem como objetivo
fornecer ao contador a autorização de contar
entre dois pulsos de subida sucessivos do sinal de
entrada;
16
Método 2
- O bloco “compteur” tem como objetivo contar
os pulsos de subida do sinal de referência
enquanto o sinal de “autorisation” estiver no
nível alto;
17
Método 2
- O bloco “diviseur2” realiza a divisão de
50.000.000 por um número;
18
Método 2
- Para efetuar a divisão utilizamos uma máquina
de estado;
19
• Simulação:
– s_nb_temp: resultado temporário do contador;
– nb: resultado final do contador;
20
Visualização do resultado
• “sch_affichage”
21
Visualização do resultado
• “afficheur”
sig1 = 0
valeur = aff4
point = 1
E0
sig4= 0
valeur = aff1
point = p1
E1
E3
sig2= 0
valeur = aff3
point = p3
E2
sig3 = 0
valeur = aff2
point = p2
- clock da máquina de estado = 1 KHz
- máquina de 4 estados que permite acender cada display de maneira circular
22
• Implementação:
– Utilização completa da memória disponível no
FPGA:
– Efetuar a divisão diretamente em BCD para não
utilizar o decodificador BCD, possibilitando assim a
implementação dos dois métodos
simultaneamente;
23