Comment pouvez-vous transférer des données sur une ligne audio?

17

Je voudrais transmettre des données sur un câble audio (c'est-à-dire de la carte audio à mon téléphone portable) avec un câble court.

Je cherche des idées d'algorithmes pour y parvenir. Bien sûr, ils devraient inclure la technique de modulation appropriée pour transférer les données sur le signal audio, afin que le téléphone portable puisse les interpréter via sa prise microphone.

Des idées? ;)

(PS - mon idée actuelle est d'utiliser le code de marque biphase. Est-ce bon pour cela?)

Merci.

romain
la source
3
Je reçois juste un coup de pied hors de cette question - cela me fait me sentir si vieux. À l'époque où j'étais enfant, les ordinateurs étaient équipés de lecteurs de cassettes pour stocker les données au format audio. Alors oui, il est possible de transférer des données via un câble audio et en fait c'était l'une des premières façons de le faire :)
AngryEE

Réponses:

12

Voici un exemple de projet utilisant FSK: http://sree.cc/electronics/arduino-as-an-fsk-modem

Un modem FSK convertit essentiellement un signal numérique en signal analogique ou en signal sonore par une technique de détrompage à fréquence variable. Ici, nous pouvons faire de notre Arduino un modem FSK en téléchargeant un code simple. Ce projet produit et joue un son correspondant à un signal numérique et démodule un signal sonore en le signal numérique correspondant.

Toby Jaffey
la source
2
Pouvez-vous nous donner plus de contexte? Ces liens en eux-mêmes ne devraient pas être une réponse complète. En fait, votre deuxième lien ne fonctionne même plus.
Kellenjb
11

Pensez à utiliser Baudot (spécification EIA / TIA-825). Il s'agit du protocole utilisé pour TDD, une technologie de modem pour les utilisateurs sourds. Il transmet à 45,5 bits par seconde et gère bien les environnements de couplage audio médiocres.

Je l'ai vu implémenté avec un logiciel simple d'analyse de fréquence (échantillonnage / filtrage de fenêtres aux fréquences clés). Je sais que le projet Astrix l'implémente donc il peut y avoir du code à revoir si vous n'êtes pas concerné par les licences.

Jim Rush
la source
Merci pour la bonne idée. Savez-vous quelque chose d'encore plus simple? J'ai besoin de transférer environ 4 à 8 bits de données à chaque fois, avec une pause possible entre eux. (rafales de données).
roman
2
@roman - Pour cette quantité de données, je choisirais simplement deux sons faciles à distinguer, puis appliquer un filtre coupe-bande à chaque fréquence et tester le niveau d'énergie. Vous pouvez utiliser deux autres fréquences qui changent d'avant en arrière et les utiliser comme horloge. Une recherche rapide devrait vous procurer un filtre coupe-bande dans presque toutes les langues que vous souhaitez.
Jim Rush
5

Une raison particulière de ne pas utiliser le modem qui est probablement déjà contenu dans votre téléphone portable?

Sinon, je suggérerais que vous examiniez les normes de modem à faible vitesse utilisées pour les lignes terrestres POTS (service / système de téléphonie ordinaire) dans les années 80 et 90. Je soupçonne que de Bell 103, 212 (300, 1200 bps) à V.32 (9600 bps) devrait être utilisable en utilisant la partie audio qui, à mon avis, est à peu près la même que la norme de téléphonie fixe Bell (US) de 300 à ~ 3000 Hz ( corrigée ) réponse en fréquence plus / moins problèmes de codec vocal numérique sans fil.

300 bits / s via le changement de fréquence audio à deux tons (AFSK), V.21 , est assez facile à implémenter dans le logiciel ou le matériel si vous souhaitez rouler le vôtre. Sinon, un circuit intégré de modem tel que Silicon Labs SI2401 ou CML Microcircuits FX / MX614 ou CMX869B . (Il y en a beaucoup d'autres)

mctylr
la source
J'ai déjà utilisé 300 Mbps AFSK sur une paire de radios FRS. Fonctionne très bien!
Brad
2

Si vous avez une très petite quantité de données (<= 4 bits), vous pouvez simplement utiliser DTMF. Facile à encoder, plus facile à décoder. fonctionne très bien dans des environnements bruyants.

Omar Alshaker
la source
Le matériel existe pour décoder le DTMF, mais en général je ne dirais pas qu'il est "facile" à décoder. L'encodage n'est pas trop difficile, mais ce n'est pas la chose la plus simple au monde. Le décodage est relativement difficile sans matériel spécialisé.
supercat
1
Étant donné que l'OP recherche des algorithmes à utiliser sur son téléphone, aucun matériel spécialisé n'est nécessaire. Le téléphone a déjà suffisamment de puissance de calcul pour décoder le DTMF en valeurs.
Jerry Penner