Após alguns
meses pesquisando sobre Circuitos Integrados DTMF (Dual
Tone Multi-Frequency),
criei esse primeiro artigo para compartilhar alguns conhecimentos
sobre o assunto. Nesse artigo disponibilizo o projeto de um identificador
de chamadas por sinalização DTMF para decodificar um
número de telefone de um chamador. Nesse projeto, o CI utilizado
foi o CM8870 bastante popular e muito usado em circuitos de telefonia.
Com o uso do CM8870
e alguns outros componentes auxiliares, é possível criar
um dispositivo de controle remoto via Rede telefônica ou rádios.
Através de um telefone fixo ou de um celular, a quilômetros
de distância de nossa residência, poderemos ligar/desligar
uma lâmpada ou qualquer outro dispositivo que esteja conectado
ao circuito controlador.
No nosso projeto,
o circuito é conectado à Porta Paralela, e
todo o processamento, agendamento e organização dos
dados reconhecidos pelo CM8870 é feito pelo programa LPT-ID,
que está disponível neste artigo para download.
A interface com
a Porta Paralela para a entrada dos dados reconhecidos, foi totalmente
foto-acoplada com o uso dos CIs MOC5009 de alta velocidade.
O foto-acoplamento foi necessário para eliminar o ruído
gerado pelo computador à linha telefônica, e ao mesmo
tempo proteger o mesmo de alta-tensão.
No circuito elaborado
aqui, foram acrescentados mais alguns componentes para que o programa
LPT-ID possa saber se o telefone está no gancho ou não.
É simplesmente um recurso para que o programa não armazene
os números digitados no nosso próprio aparelho telefônico.
Nesse artigo estão
todas as informações necessárias para colocar
em prática o projeto do LPT-ID.
Tabela
1 - Freqüências DTMF
| Tecla |
Saída
digital |
Valor
Decimal |
Baixa
Freqüência(Hz) |
Alta
Freqüência(Hz) |
| D3 |
D2 |
D1 |
D0 |
| 1 |
0 |
0 |
0 |
1 |
1 |
697 |
1209 |
| 2 |
0 |
0 |
1 |
0 |
2 |
697 |
1336 |
| 3 |
0 |
0 |
1 |
1 |
3 |
697 |
1477 |
| 4 |
0 |
1 |
0 |
0 |
4 |
770 |
1209 |
| 5 |
0 |
1 |
0 |
1 |
5 |
770 |
1336 |
| 6 |
0 |
1 |
1 |
0 |
6 |
770 |
1477 |
| 7 |
0 |
1 |
1 |
1 |
7 |
852 |
1209 |
| 8 |
1 |
0 |
0 |
0 |
8 |
852 |
1336 |
| 9 |
1 |
0 |
0 |
1 |
9 |
852 |
1477 |
| 0 |
1 |
0 |
1 |
0 |
10 |
941 |
1336 |
| * |
1 |
0 |
1 |
1 |
11 |
941 |
1209 |
| # |
1 |
1 |
0 |
0 |
12 |
941 |
1477 |
| A |
1 |
1 |
0 |
1 |
13 |
697 |
1633 |
| B |
1 |
1 |
1 |
0 |
14 |
770 |
1633 |
| C |
1 |
1 |
1 |
1 |
15 |
852 |
1633 |
| D |
0 |
0 |
0 |
0 |
0 |
941 |
1633 |
A
tabela acima mostra o valor decimal, binário e a tecla correspondente
à sobreposição das freqüências DTMF
(baixa e alta).
O CI CM8870 reconhece
uma freqüência DTMF e converte-a em um número binário
de 4 bits (1 nibble). O software aplicativo é o responsável
em converter esse número binário em uma tecla equivalente
ao sistema DTMF, conforme mostra a primeira coluna da tabela acima.
Observe que o valor decimal 10 representa a tecla
"0".
Simulação
1 - Circuito integrado CM8870 em operação

A
configuração necessária sugerida pelo fabricante
do CM8870 para detectar freqüências DTMF, é a esquematizada
na figura acima, onde a freqüência entra através
do capacitor cerâmico de 100nF e prossegue pelos resistores
de 100k até os pinos 1 e 3 do CM8870. Quando uma freqüência
é reconhecida, o CM8870, converte em um valor binário
e disponibiliza-o nos pinos 11,12,13 e 14. Após isso, o CM8870
ativa o pino 15, mantendo-o em nível alto por alguns milisegundos.
Depois esse pino retorna ao nível baixo.
Figura 1 - Transmissão de números através
da Rede telefônica

A
animação acima simula a transmissão da tecla
"1" digitada em um aparelho telefônico,
e detectada em outro aparelho distante através da Rede telefônica.
Ambos os aparelhos têem CIs codificadores e decodificadores
de DTMF.
Veja que as duas freqüências
são sobrepostas e só depois transmitidas.
Figura
2 - Protocolo DTMF

A
figura acima mostra um gráfico do protocolo DTMF para reconhecimento
do número do telefone do chamador.
Essas informações
são enviadas antes do telefone tocar, ou seja, a central telefônica
envia primeiro o pacote de identificação do telefone
chamador, e só após alguns segundos é enviado
o sinal para tocar o telefone.
Importante:
Para que esse recurso
de identificação de chamadas esteja disponível
em sua linha telefônica, é necessário entrar em
contato com a empresa de telefonia da região para habilitar
o serviço.
Tabela 2 - Descrição dos campos do protocolo
DTMF
| Campo |
Descrição |
| 1 |
Esse
é um valor constante. O caracter "A"
ou 13(decimal), identifica o início do
protocolo. |
| 2 |
Categoria
pode ser:
1 - telefone residencial ou comercial;
4 - telefone público;
7 - telefone público a cartão;
Especiais: 2,3,5,6,8,9,10,11,12,13,14 e 15. |
| 3 |
Esse
campo armazena o número do telefone propriamente dito,
inclusive o código de área.
Ex. 11 9999-9999 |
| 4 |
Esse
é um valor constante. O caracter "C"
ou 15(decimal),
identifica o fim do protocolo. |
Figura
3 - Tempo de freqüência e pausa

Na
figura acima temos um gráfico dos intervalos de tempo do
pacote de identificação enviado pela Central telefônica,
tanto da freqüência como da pausa. O tempo entre eles
é de 200ms. Se a distância entre o assinante e a Central
telefônica for muito longa, o intervalo de tempo poderá
sofrer alteração.
Figura 4 - Foto do protótipo do circuito
identificador de chamadas
Na
figura acima é exibida uma foto do protótipo do circuito
identificador de chamadas em placa de circuito impresso.
Figura
5 - Circuito completo do identificador de chamadas
sub-dividido em blocos

|
Para
facilitar a compreensão do circuito acima, dividimos o mesmo
em 4 blocos. O coração do circuito é o bloco
3, é ele quem valida a freqüência recebida e decodifica-a
em binário, os demais são somente recursos auxiliares,
mas bastante importantes para a boa funcionalidade de todo o projeto.
O varistor em paralelo
com a linha telefônica protege o circuito de uma ocasional
sobrecarga de tensão. O objetivo da Ponte em nosso
circuito é polarizar a tensão da linha telefônica,
e energizar o transistor 2N3904, para acionar o LED do foto-acoplador
4N25. A função do bloco 1 é detectar quando
tiramos ou colocamos o fone no gancho; o CI 4066B corta o sinal
de tom. Isso foi necessário para que o software não
detectasse teclas digitadas no telefone local. Já o bloco
2 tem a única função de amplificar o sinal
DTMF e levá-lo ao CM8870. O bloco 4 faz a isolação
óptica entre o circuito e o computador. Veja que os foto-acopladores
MOC5009 (alta freqüência de comutação)
são alimentados pela própria porta paralela através
dos pinos 6,7,8, 9 e o GND-25.
Obs.
Após a conclusão de todo o projeto, é hora
de testá-lo. Para que o circuito detecte corretamente as
freqüências, é necessário regular o potenciômetro
do bloco 4, para isso, conecte o circuito à Rede telefônica
e à Porta Paralela, execute o programa LPT-ID e através
de um aparelho celular ou de uma segunda linha disque para o seu
telefone. Acerte o potenciômetro até conseguir a melhor
performance.
Sobre a Rede telefônica:
RING é pólo negativo.
TIP é o pólo positivo.
A tensão na Rede telefônica pode chegar a 90v.
Figura
6 - Tela do programa identificador de chamadas LPT-ID

O
programa LPT-ID ao ser executado, monitora a linha telefônica,
captura o número do chamador, verifica se está cadastrado
na agenda e depois mostra-o no visor. Uma janela suspensa de cor amarela
também é exibida para chamar a atenção
do usuário.
O programa LPT-ID armazena
todos os números detectados num arquivo txt.
Figura 7 - Tela do recurso de agenda do programa LPT-ID
A
figura acima mostra a tela da agenda do programa LPT-ID. Essa versão
do programa permite cadastrar no máximo 10 registros.
Algumas
recomendações para que o software compare o número
recebido corretamente:
- Não adicione "0" antes do DDD;
- Não separe o número com o caracter "-"
hífen;
- O campo Nome armazena no arquivo no máximo
20 caracteres; excedentes serão truncados.
Figura
8 - Recurso de exportação do programa
LPT-ID

Quando
desejar, o usuário poderá fazer back-up do arquivo LigRecebidas.txt
para um outro arquivo chamado BackupXXXX.txt
(onde XXXX
é uma seqüência numérica gerada automaticamente
pelo programa, para criar nomes de arquivos back-up distintos). Todos
esses arquivos são armazenados no diretório (pasta)
corrente.
Figura
9 - Indicador de atividade do programa LPT-ID

Quando
o programa LPT-ID está ativo na memória, um ícone
de um telefone fica intermitente na Barra de tarefa do windows, conforme
mostra a Figura 9.
Para mostrar a janela do programa LPT-ID dê duplo-clique, ou
clique com o botão direito do mouse sobre o ícone.
Download do programa LPT-ID
Download dos datasheet dos componentes
4066B
LM386N
CM8870
MOC5009
Alguns site para pesquisa sobre DTMF