Jak mogłeś przesyłać dane przez linię audio?

17

Chciałbym przekazać niektóre dane kablem audio (tj. Z karty dźwiękowej do mojego telefonu komórkowego) za pomocą krótkiego kabla.

Szukam pomysłów na algorytmy do osiągnięcia tego celu. Powinny one oczywiście obejmować odpowiednią technikę modulacji do przesyłania danych przez sygnał audio, aby telefon mógł zinterpretować to przez gniazdo mikrofonu.

Pomysły? ;)

(PS - moim obecnym pomysłem jest używanie kodu znaku Biphase. Czy jest to przydatne?)

Dzięki.

rzymski
źródło
3
Właśnie zaczynam od tego pytania - sprawia, że ​​czuję się tak stary. Kiedy byłem dzieckiem, komputery były dostarczane z napędami kasetowymi do przechowywania danych w formacie audio. Tak, możliwe jest przesyłanie danych za pomocą kabla audio i był to jeden z pierwszych sposobów, aby to zrobić :)
AngryEE

Odpowiedzi:

12

Oto przykładowy projekt wykorzystujący FSK: http://sree.cc/electronics/arduino-as-an-fsk-modem

Modem FSK zasadniczo przekształca sygnał cyfrowy na sygnał analogowy lub dźwiękowy za pomocą techniki kluczowania z przesunięciem częstotliwości. Tutaj możemy zrobić nasze Arduino jako modem FSK, przesyłając prosty kod. Ten projekt wytwarza i odtwarza dźwięk odpowiadający sygnałowi cyfrowemu i demoduluje sygnał dźwiękowy do odpowiedniego sygnału cyfrowego.

Toby Jaffey
źródło
2
Czy możesz podać nam więcej kontekstu? Te linki same w sobie nie powinny być pełną odpowiedzią. W rzeczywistości Twój drugi link już nie działa.
Kellenjb,
11

Rozważ użycie Baudot (specyfikacja EIA / TIA-825). Jest to protokół używany w TDD, technologii modemowej dla osób niesłyszących. Przesyła z prędkością 45,5 bitów na sekundę i dobrze radzi sobie w złym środowisku sprzężenia audio.

Widziałem to zaimplementowane z prostym oprogramowaniem do analizy częstotliwości (próbkowanie / filtrowanie okien przy kluczowych częstotliwościach). Wiem, że projekt Astrix go implementuje, więc może być trochę kodu do przejrzenia, jeśli nie zajmujesz się licencjonowaniem.

Jim Rush
źródło
dzięki za świetny pomysł. Czy wiesz coś jeszcze prostszego? Za każdym razem muszę przesyłać około 4-8 bitów danych, z pewną przerwą między nimi. (wybuchy danych).
Roman
3
@roman - Dla tej ilości danych wybrałbym po prostu dwa łatwe do odróżnienia tony, a następnie zastosowałem filtr wycinający na każdej częstotliwości i przetestowałem poziom energii. Możesz użyć dwóch innych częstotliwości, które przełączają się tam iz powrotem i używają ich jako zegara. Szybkie wyszukiwanie powinno zapewnić filtr wycinający w prawie dowolnym języku.
Jim Rush
6

Czy jest jakiś szczególny powód, aby nie używać modemu, który prawdopodobnie jest już zawarty w telefonie komórkowym?

W przeciwnym razie proponuję spojrzeć na standardy modemu niskiej prędkości używane dla linii naziemnych POTS (zwykły stary telefon / system) w latach 80. i 90. Podejrzewam, że od Bell 103, 212 (300, 1200 bps) do V.32 (9600 bps) powinien być użyteczny przy użyciu części audio, która moim zdaniem jest w przybliżeniu taka sama jak w przypadku standardu Bell w USA (od 300 do ~ 3000 Hz ( poprawiony )) pasmo przenoszenia plus / minus problemy z bezprzewodowym cyfrowym kodekiem głosowym.

300 bps poprzez dwukolorowe kluczowanie z przesunięciem częstotliwości dźwięku (AFSK), V.21 , jest dość łatwe do wdrożenia w oprogramowaniu lub sprzęcie, jeśli chcesz stworzyć własne. W przeciwnym razie modem IC, taki jak Silicon Labs SI2401 lub CML Microcircuits FX / MX614 lub CMX869B . (Jest wiele innych)

Mctylr
źródło
1
Wcześniej używałem AFSK 300 bps w parze radiotelefonów FRS. Działa świetnie!
Brad
3

Jeśli masz bardzo małą ilość danych (<= 4 bity), możesz po prostu użyć DTMF. Łatwe do kodowania, łatwiejsze do odkodowania. działa świetnie w hałaśliwym otoczeniu.

Omar Alshaker
źródło
1
Istnieje sprzęt do dekodowania DTMF, ale ogólnie nie powiedziałbym, że dekodowanie jest „łatwe”. Kodowanie nie jest zbyt trudne, ale nie jest najłatwiejsze na świecie. Dekodowanie jest stosunkowo trudne bez specjalistycznego sprzętu.
supercat
2
Ponieważ OP szuka algorytmów do użycia w swoim telefonie, specjalistyczny sprzęt nie jest potrzebny. Telefon ma już wystarczającą moc obliczeniową, aby dekodować DTMF na wartości.
Jerry Penner