Caros ninjas,

Estou trabalhando em um projeto pessoal no qual utilizo um fax modem e preciso desenvolver um circuito para converter os sinais DTMF para FSK afim de fazer com que meu modem reconheça o número discado em ambos os tipos de linha. Como pretendo criar minha própria placa, não adianta comprar um conversor pronto.

Comprei dois conversores para analisar o circuito e aparentemente são bem simples, mas todos utilizando microprocessadores (logo a solução está no código). Não consigo identificar o uc porque este foi raspado.

Dando uma estudada, descobri que as linhas DTMF enviam o número de quem está ligando antes do telefone tocar. Já no formato FSK, o número é enviado entre o primeiro e o segundo toque. Desta forma, o conversor decodifica o sinal DTMF e envia para a linha em formato FSK. Mas não tenho ideia de como isso pode ser feito usando PIC ou mesmo um Arduino (preferência para PIC devido ao custo).

Alguém poderia me dar uma força?

Desde já agradeço e ajuda e fico no aguardo de comentários.

Abração,

Marcos

Exibições: 4591

Responder esta

Respostas a este tópico

Putz, sério que vão começar a despadronizar o bina ??? Q coisa... 

Acho que o jeito é por 2 circuitos:

1) MT8870 para dtmf;

2) EM92547 Para fsk: http://www.teleic.com/pdf/Em92547.pdf

O MT8870 é mto simples de achar e usar, já o outro não sei...

Eduardo.

Olá Eduardo,

EM92547 é um demodulator. Eu acredito que eu preciso decodificar o DTMF e enviar pela linha telefônica o sinal equivalente em FSK. Um dos conversores que eu comprei utiliza apenas um microprocessador que acredito ser um PIC de 8 pinos. Por software ele consegue interpretar o DTMF e gerar o FSK.

Pois é, não li direito a pergunta, achava que vc ia fazer um bina multiprotocolo.

Vc vai ter que decodificar o DTMF (MT8870) e gerar o FSK V23.

Modulador FSK (modem) que já usei: AM7910 (era usado no modem do MSX...)

Algo mais moderno: http://www.silabs.com/Support%20Documents/TechnicalDocs/si2400.pdf

Que inclusive decodifica DTMF tb..

Como a velocidade é bastante baixa seria ainda possivel fazer uma geração por PWM com D/A ("por software"), mas seria mais dificil a implementação.

Eduardo.

FSK (chaveamento por mudança de frequencia).

Ou seja,enquanto os sinal oscila periodicamente nenhum dado é enviado.A oscilação refere-se ao *sinal padrão*.

Então é enviado o (start bit) +(os dados)+(stop bit).

Faça um programa em um mcu que vai ler estes sinais:

1-leia os sinais padrão usando um comando que faz uma contagem toda vez que muda o estado do sinal (low para high)

(anote o valor numerico do valor padrão do sinal)

2-Leia o valor do startbit (deve ser um valor padronizado),pode ser um sinal único onde o valor (high e low oscilam rapidamente fazendo com que a contagem no mcu chegue a certos valores)

3-Laia o valor dos sinal de dados.Eu não conheço se são binários ou apenas sinais analogicos com modulação.

-Se analogico,a frequencia vai variar conforme digito

-Se digital,dados binarios (quantos bits possui a palavras?8?16) serão enviados dentro da modulação,alterando a * frequencia padrão*


4-Leia o valor do stop bit.

Se a palavra for de 8 bits,significa que cada variação em high corresponde a um bits 1:

exemplo:

00100010=__-___-_ e os zeros são a frequencia padrão e seu valor,permanece igual ao procedimento 1

 

Veja o protocolo do seu aparelho,pois não conheço.

Também:

É possivel que o valor do bit "zero"(0) seja uma frequencia e o valor do bit "1" seja outra frequencia:

exemplo:

1=1300 hz

0=1600 hz

*(os valores em hz são fictícios).

Contador de estado auto

Suponha que seu PIC vai usar um cristal de 20mhz

Então o ciclo de maquina do PIC é de 20mhz/4=5mhz,ou seja,um contador vai contar 5 milhoes de vezes num segundo.

Agora imagina que o bit 1 do FSK seja de 1200hz

1seg/1200=0,00083...

O sinal fica em alta a cada 0,00083... segundos.

O sinal permanece assim um tempo X especifico e retorna a LOW.Neste momento,a contagem começa e termina quando o sinal volta para HIGH.

Então o numero aproximado será:

0,000833\0,0000002=4166,5 (numero de contagem entre as variações)

toda vez que o numero for 4166 é o bit 1

==Agora vamos fazer o bit 0 (zero)===

Suponha que o bit 0 (zero) seja a frequencia FSK de 1000hz

1seg/1000=0,001 (sinal fica em alta a cada 0,001 seg)

quando ele retorna para LOW ,o contador inicia a contagem e termina na fase ascendente do proximo HIGH e:

0,001\0,0000002=5000

Ou seja,toda vez que o valor for ~5000 o bit é o zero (0)

Se a palavra for de um byte (8 bits),voce pode fazer uma rotina que simplifica os valores 4166 para bit1 e 5000 para bit 0

if valor=4166 then

conc="1"  //string

endif

if valor=5000 then

conc="0" //string

endif

b=b+conc

//completa tamamho do byte (8 bit)

if len(b)=8 then

escreve serial com byte para que possa usar

//limpa b e reinicia rotina

b=""

endif

concatenando em uma string.("01010010").

OBS.Os valores de 4166 e 5000 pode variar de acordo com o tamanho da rotina no programa do mcu,devido ao tempo que ele gasta para executar cada instrução,mas as proporções são mantidas de acordo com a descrição mostrada.

Usa um sistema para calibrar com velocidade de 1khz depois que a rotina estiver pronta e altere os valores dos "if valor=X then"

Almir, obrigado pela ajuda.

Estou com uma dúvida básica de eletrônica agora. Eu descobri que a biblioteca Tones pode ser usada para gerar tons DTMF. Também existe outra biblioteca para FSK. Minha dúvida é: como posso ligar a porta do Arduino à linha telefônica sem queimá-lo? Eu gostaria de testar a geração de tons DTMF.

Desde já agradeço a ajuda.

Abração,

Marcos

Que tal acoplamentos opticos?

Olha o CI4n25.

Tem que saber qual a voltagem do sinal da linha.Eu não conheço.

Por volta dos 60v (alternada).

60v deve ser a alimentação ou a voltagem do sinal FSK?

seria assim?

entrada de alimentação 60v =>> sinal de 60v ?

ou aliemntação 60v =>> sinal de qualquer valor abaixo de 60v ?

Vc precisa de um circuito de Hibrida Telefonica:

http://www.sabereletronica.com.br/secoes/leitura/134

Ou um trafinho qualquer, o menor possível. O lado de alta tensão vai no telefono e o de baixa no seu audio.

Também daria pra fazer com capacitor, mas quando vc poe e tira do gancho (bate o rele) acontece um grande degrau de tensão e o capacitor passaria esse pulso para o outro lado numa relação 1:1. Ja o trafo teria a relação do enrolamento (atenua o que vem e amplifica o q vai).

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço