trakuna schrieb:
> für ein kleines vorweihnachtliches Projekt suche ich gerade nach einer
> Möglichkeit, Daten über ein Audiokabel zu senden. Wichtig ist hierbei,
> dass die Daten tatsächlich als Audiosignal kodiert sein müssen
Nun ja, wenn das Audiokabel genug Bandbreite bietet, um auch den nahen
Ultraschallbereich noch zu übertragen, ist das eigentlich kein großes
Problem.
Da nimmt man z.B. ca. 17kHz und 19kHz als Träger für die Daten. Die
tastet man im Wechsel, also z.B. 0-Bit->17Khz, 1-Bit->19kHz.
Auf Senderseite kostet das nur einen Timer im Fast-PWM-Mode mit Top=ICR
oder OCRxA und eine ISR für die Zykluszeit, die jeweils den Timer-Top
aktualisiert. Und ein wenig primitive Hardware zu Addition des
Datensignals mit dem Audiosignal.
Beim Empfänger hat man die Wahl, ob man die Dekodierung in Software
erledigt oder Hardware dafür bemüht.
Decodierung in Software geht mit einer Goertzelbank mit zwei Kanälen.
Durch das Prinzip der Übertragung mit zwei Trägern kann man (bei klug
gewählten exakten Trägerfrequenzen) nicht nur ziemlich zweifelsfrei
feststellen, ob überhaupt ein Datensignal anliegt, sondern dieses auch
noch einfachst decodieren.
Allerdings stellt der Filter schon eine relativ hohe Rechenzeitbelastung
dar. Allerdings noch sehr weit weg von wirklich kritischen Werten. Und
sie liegt vor allem auch weit unter den Anforderungen einer
zuverlässigen DTMF-Übertragung, denn dort muß man eine viel geringere
Bandbreite für die Filter erzielen und braucht außerdem mindestens 8,
besser 16 Kanäle in der Görtzelbank.
Angenehmer Nebeneffekt: Im Unterschied zu DTMF-Gedüdel ist der
Ultraschallkram für erwachsene Menschen nicht hörbar. Allenfalls
Mischprodukte mit dem Audiosignal könnten hörbar werden. Das kriegt man
dann dadurch in den Griff, daß man das Datensignal im Pegel so weit
absenkt, wie bei der geforderten Datenrate und Übertragungssicherheit
irgend möglich.