¿Cómo podría transferir datos a través de una línea de audio?

17

Me gustaría pasar algunos datos a través de un cable de audio (es decir, de la tarjeta de audio a mi teléfono celular) con un cable corto.

Estoy buscando algunas ideas de algoritmos para lograr esto. Por supuesto, deben incluir la técnica de modulación adecuada para transferir los datos a través de la señal de audio, para que el teléfono celular pueda interpretarlo a través de su conector de micrófono.

Ideas? ;)

(PD: mi idea actual es usar el código de marca Biphase. ¿Es bueno para esto?)

Gracias.

romano
fuente
3
Me está gustando esta pregunta, me hace sentir tan viejo. Cuando era niño, las computadoras venían con unidades de cassette para almacenar datos en formato de audio. Entonces, sí, es posible transferir datos a través de un cable de audio y, de hecho, fue una de las primeras formas de hacerlo :)
AngryEE

Respuestas:

12

Aquí hay un proyecto de ejemplo con FSK: http://sree.cc/electronics/arduino-as-an-fsk-modem

Un módem FSK básicamente convierte una señal digital en señal analógica o señal de sonido mediante la técnica de cambio de frecuencia. Aquí podemos hacer que nuestro Arduino sea un módem FSK cargando un código simple. Este proyecto produce y reproduce un sonido correspondiente a una señal digital y demodula una señal de sonido en la señal digital correspondiente.

Toby Jaffey
fuente
2
¿Puedes darnos más contexto? Estos enlaces por sí mismos no deberían ser una respuesta completa. De hecho, su segundo enlace ya no funciona.
Kellenjb
11

Considere usar Baudot (especificación EIA / TIA-825). Es el protocolo utilizado para TDD, una tecnología de módem para usuarios sordos. Transmite a 45,5 bits por segundo y se adapta bien a entornos de acoplamiento de audio deficientes.

Lo he visto implementado con un software simple de análisis de frecuencia (muestreo / filtrado de ventanas en frecuencias clave). Sé que el proyecto Astrix lo implementa, por lo que puede haber algún código para revisar si no le preocupan las licencias.

Jim Rush
fuente
Gracias por la gran idea. ¿Sabes algo aún más simple? Necesito transferir alrededor de 4-8 bits de datos cada vez, con alguna posible pausa entre ellos. (ráfagas de datos).
Roman
2
@roman: para esa cantidad de datos, simplemente elegiría dos tonos fáciles de distinguir y luego aplicaría un filtro de muesca en cada frecuencia y probaría el nivel de energía. Podrías usar otras dos frecuencias que cambian de un lado a otro y usarlas como un reloj. Una búsqueda rápida debería obtener un filtro de muesca en casi cualquier idioma que desee.
Jim Rush
5

Cualquier razón particular para no usar el módem que probablemente ya está contenido en su teléfono móvil?

De lo contrario, sugeriría que eche un vistazo a los estándares de módem de baja velocidad utilizados para las líneas terrestres POTS (servicio / sistema telefónico antiguo) en los años ochenta y noventa. Sospecho que desde Bell 103, 212 (300, 1200bps) hasta V.32 (9600bps) deberían usarse con la parte de audio que creo que es casi lo mismo que el estándar de línea terrestre de Bell (EE. UU.) De 300 a ~ 3000 Hz ( corregido ) respuesta de frecuencia más / menos problemas de códec de voz digital inalámbrico.

300 bps a través de la modulación por desplazamiento de frecuencia de audio de dos tonos (AFSK), V.21 , es bastante fácil de implementar en software o hardware si desea rodar el suyo. De lo contrario, un IC de módem como Silicon Labs SI2401 o CML Microcircuits FX / MX614 o CMX869B . (Hay muchos otros)

mctylr
fuente
He usado AFSK 300bps sobre un par de radios FRS antes. ¡Funciona genial!
Brad
2

Si tiene una cantidad muy pequeña de datos, (<= 4 bits) simplemente puede usar DTMF. Fácil de codificar, más fácil de decodificar. Funciona muy bien en ambientes ruidosos.

Omar Alshaker
fuente
Existe hardware para decodificar DTMF, pero en general no diría que es "fácil" decodificar. La codificación no es demasiado difícil, pero no es la cosa más fácil del mundo. La decodificación es relativamente difícil sin hardware especializado.
supercat
1
Dado que el OP está buscando algoritmos para usar en su teléfono, no se necesita hardware especializado. El teléfono ya tiene suficiente potencia informática para decodificar DTMF en valores.
Jerry Penner