Ein Audio-Jack-Modem

Ich möchte Arduino steuern, indem ich Audiobefehle lese, die von einem Himbeer-Pi (über Javascript) gesendet werden. Ich habe den SoftModem- Code gefunden und frage mich, wie er funktioniert. Es behauptet, dass "es die Audiobuchse des Telefons und die Bell 202-Modem-ähnliche FSK-Codierung verwendet", aber ich frage mich, wie es gemacht wird. Muss der ADC nicht abgetastet und eine Filterung wie FFT angewendet werden? Ich kann nicht scheinen zu finden, wo das alles gemacht wird.

Jeder Gedanke geschätzt.

"SoftModem verwendet Timer2" Vielleicht nur altmodische Timing-Analyse. Einzelheiten finden Sie in der Arduino SoftModem.h-Bibliothek.

Antworten (1)

Ein Funkkommunikationssystem, das unter Randbedingungen des Signal-Rausch-Verhältnisses arbeiten musste, müsste das Signal digitalisieren, filtern, möglicherweise FFT (normalerweise nicht), die Taktphase verfolgen, Fehler korrigieren und all diese mühsamen Dinge.

Bei einer Kabelverbindung mit hohem Signal-Rausch-Verhältnis verwendet diese billige Bibliothek jedoch den analogen Komparator, um zu erkennen, wann das Signal einen Schwellenwert überschreitet, und den Timer, um stattdessen die Länge der High/Low-Perioden zu messen. Das Abtasten erfolgt implizit in den Funktionen „Warten auf Startbit“, „Warten auf Datenbits“ und „Warten auf Stoppbit“, die beispielsweise eine Datenbyte-Zustandsmaschine umfassen. Filtern? Wir brauchen keine Steenkin-Filterung!

Lesen Sie den Quellcode, es ist alles in SoftModem.cpp, auf das Sie verlinkt haben.

Sie brauchen nicht unbedingt eine FFT und viel komplizierte Verarbeitung. Ich habe Signalisierungsmodule verwendet, die ein PSK-Signal aus so viel Rauschen herauspicken konnten, dass Sie mit Ihren Ohren nicht sagen konnten, ob dort ein zu decodierendes Signal vorhanden war oder nicht. Ich hatte auch die Möglichkeit, den Code zu begutachten. Es war nicht viel ausgefeilter als diese "billige und fröhliche" Software. Das konnte nicht sein, weil es auf einem 6502-Prozessor mit nur wenigen k ROM und einigen hundert Bytes RAM lief.
Nur neugierig, sollte es in dieser Schaltung einen Operationsverstärker geben? Sollte da nicht eine Art "Signalkonditionierung" stattfinden?
@Kar: Der von mir erwähnte verwendete eine Art Schmitt-Trigger, um das Audiosignal in eine Reihe von Impulsen zu übersetzen. Es gab auch einen schwachen Bandpassfilter.