ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA Gerador multifrequência de tom duplo (DTMF) no AVR. Enciclopédia de rádio eletrônica e engenharia elétrica Enciclopédia de eletrônica de rádio e engenharia elétrica / Telefonia Alteridade
Introdução Este documento descreve como gerar sinais DTMF (Dual Tone Multi-Frequency) usando qualquer microcontrolador AVR contendo um bloco de modulação por largura de pulso (PWM) e SRAM. Esses sinais são amplamente utilizados na telefonia, onde são tocados quando você pressiona os botões de discagem do aparelho telefônico. Para gerar corretamente um sinal DTMF, duas frequências devem ser sobrepostas: uma frequência baixa (fb) e uma frequência alta (fa). A Tabela 1 mostra como diferentes frequências são misturadas para produzir tons DTMF quando diferentes teclas são pressionadas.
Tabela 1. Matriz de modelagem de tom
As linhas da Tabela 1 representam valores de baixa frequência e as colunas mostram valores de alta frequência. Por exemplo, a matriz mostra que pressionar o botão "5" deve misturar as frequências fb = 770 Hz e fa = 1336 Hz. Como resultado da adição de dois sinais senoidais de frequências diferentes, um sinal DTMF é formado (1) onde a razão de amplitudes K = Ab/Aa os sinais da fonte devem atender à condição (2) princípio de funcionamento Além das informações gerais sobre o uso da modulação por largura de pulso, o seguinte mostrará como a modulação por largura de pulso permite gerar sinais senoidais. O parágrafo a seguir descreve como obter frequências diferentes usando a frequência PWM base. Depois de considerar os fundamentos teóricos, será dada uma descrição do próprio gerador de sinal DTMF. Geração de sinais senoidais Dependendo da proporção da duração dos níveis de tensão VH alto e VL baixo, o valor médio na saída PWM muda. Se a relação entre as durações de ambos os níveis for mantida constante, então um nível de tensão constante VAV será gerado como resultado. A Figura 2 mostra um sinal modulado por largura de pulso.
O nível de tensão é determinado pela expressão: (3) Um sinal senoidal pode ser gerado desde que o valor médio da tensão gerada pela modulação por largura de pulso mude a cada ciclo de PWM. A relação entre os níveis alto e baixo deve ser ajustada de acordo com o nível de tensão do sinal senoidal no tempo correspondente. A Figura 3 ilustra esse processo. Os dados iniciais do PWM são calculados para cada um de seus períodos e registrados na tabela de conversão (TP). A Figura 3 também ilustra a relação entre a frequência da onda senoidal fundamental e o número de amostras. Quanto maior o número de amostras (Nc) - maior a precisão da modelagem do sinal resultante: (4)
A frequência PWM depende da resolução PWM. Com resolução de 8 bits, o valor final (topo da contagem) do temporizador é 0xFF (255). Porque cronômetro conta para cima e para baixo, este valor deve ser dobrado. Portanto, a frequência PWM pode ser calculada dividindo o relógio do timer fCK por 510. Assim, com uma frequência de clock do timer de 8 MHz, a frequência PWM resultante será de 15.6 kHz.
Alterando a frequência de um sinal senoidal Suponha que as amostras senoidais sejam lidas na tabela de consulta não sequencialmente, mas uma de cada vez. Neste caso, com a mesma taxa de amostragem, será gerado um sinal com o dobro da frequência (ver Figura 4).
Por analogia, se você ler não todo segundo valor, mas todo terceiro, quarto, quinto (respectivamente, a largura do passo é 3, 4, 5 ...), etc. é possível gerar frequências Nc na faixa [1/T Hz .. 0 Hz]. Observe que, para altas frequências, a forma de onda resultante não será senoidal. A largura do passo de acordo com a tabela de conversão é indicada como XSWOnde (5) O cálculo da posição atual no TP para o próximo período de PWM (quando o timer estourar) é realizado usando a expressão (6). Novo valor na posição XLUT depende de seu estado anterior na posição X'LUT com a adição de largura de passo XSW (6)
Adicionando frequências diferentes para obter um sinal DTMF O sinal DTMF pode ser gerado usando as expressões (1) e (2). Para simplificar as operações aritméticas, o valor do coeficiente K é considerado igual a 0.75 para substituir a operação aritmética por deslocamentos lógicos. Levando em consideração a expressão (6), o valor atual para controle PWM pode ser calculado pela expressão: (7) e tendo em conta que XLUTa=X'LUTa + XSWa,XLUTb=X'LUTb + XSWb, finalmente escrevemos (8) Implementando um Gerador DTMF Este apêndice discute a construção de um gerador de tom DTMF usando uma saída PWM de 8 bits (OC1A) e uma tabela de 128 amostras de função senoidal (Nc), cada uma especificada por 7 bits (n). As expressões a seguir mostram essa dependência e também mostram como calcular os elementos da tabela de pesquisa: (9) A vantagem de usar 7 bits é que a soma dos valores dos sinais de alta e baixa frequência é de um byte. Para suportar o conjunto completo de tons DTMF, 8 valores para cada frequência DTMF da Tabela 1 devem ser calculados e inseridos em uma tabela de conversão. Para obter maior precisão, foi feita a seguinte solução: os valores calculados pela expressão 5 requerem apenas 5 bytes. Para usar todos os 8 bytes, o que reduzirá o erro de arredondamento, esse valor é multiplicado por 8. Um ponteiro para a tabela de conversão é escrito da mesma maneira. Mas, neste caso, são necessários dois bytes para armazenar 8 vezes o valor. Isso significa que 3 deslocamentos à direita e uma operação de módulo de base Nc (multiplicação lógica por Nc-1) devem ser realizados antes de usar esses bytes como um ponteiro para valores senoidais em (10)
O sinal PWM é gerado no pino OC1A (PD5). Um filtro de saída adicional ajudará a corresponder melhor à forma de onda senoidal. À medida que a frequência PWM diminui, pode ser necessário usar um filtro com uma resposta de frequência mais acentuada para obter um bom resultado. A conexão do teclado é mostrada na Figura 1. O funcionamento do teclado deve ser organizado de forma que seja possível determinar a tecla pressionada. Isso pode ser feito usando o seguinte algoritmo:
Observação: O STK200 possui resistores em série entre os pinos do conector PORTB e os pinos BP5, PB6 e PB7 do microcontrolador (consulte o esquema STK200). Isso causará problemas se um teclado estiver conectado ao conector PORTB. A Figura 6 ilustra o funcionamento da sub-rotina para determinar a tecla pressionada. Dependendo da tecla pressionada, a duração do intervalo é determinada. A rotina de interrupção usa esse valor para calcular as configurações de PWM para as duas ondas senoidais de tom DTM. O procedimento de tratamento da interrupção é mostrado nas Figuras 7 e 8. Esta rotina calcula um valor para comparar com a saída do temporizador para o próximo período de PWM. A rotina de interrupção primeiro calcula a posição do próximo valor de amostra na tabela de pesquisa e lê o valor armazenado lá. A posição da amostra na tabela de pesquisa é determinada pela duração do pulso e a duração real do pulso é determinada pela frequência gerada. O valor final, que é escrito no registro de comparação do temporizador, é determinado pela fórmula (7), que leva em consideração os valores de amostra de ambas as frequências DTMF.
Publicação: cxem.net Veja outros artigos seção Telefonia. Leia e escreva útil comentários sobre este artigo. Últimas notícias de ciência e tecnologia, nova eletrônica: Couro artificial para emulação de toque
15.04.2024 Areia para gatos Petgugu Global
15.04.2024 A atratividade de homens atenciosos
14.04.2024
Outras notícias interessantes: ▪ Agulha encontrada na Groenlândia ▪ Júpiter desvia cometas e envia asteróides para a Terra ▪ Painéis solares para FlixBus Feed de notícias de ciência e tecnologia, nova eletrônica
Materiais interessantes da Biblioteca Técnica Gratuita: ▪ seção do site Amplificadores de potência. Seleção de artigos ▪ artigo Doença venérea. Noções básicas de uma vida segura ▪ artigo O que há na área dos EUA, cujo código de área é 321? Resposta detalhada ▪ artigo Especialista em atividade econômica estrangeira. Descrição do trabalho ▪ Artigo Optoacopladores. Parte 2. Enciclopédia de rádio eletrônica e engenharia elétrica
Deixe seu comentário neste artigo: Todos os idiomas desta página Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site www.diagrama.com.ua |