paint-brush
Die Talking Box: Ein CVSD-Audio-Digitalisierungs- und Wiedergabegerätvon@bobnoxious
287 Lesungen

Die Talking Box: Ein CVSD-Audio-Digitalisierungs- und Wiedergabegerät

von Bob Wright31m2024/06/23
Read on Terminal Reader

Zu lang; Lesen

Das Radio-Electronics Magazine kaufte diesen Artikel und zahlte mir sogar eine recht gute Anzahlung dafür. Es schien eine nette Art, seinen Lebensunterhalt zu verdienen, da mir das Entwerfen, Bauen, Programmieren und Schreiben Spaß macht. Dann ging das Magazin im April 1985 pleite und der Artikel wurde nie gedruckt.
featured image - Die Talking Box: Ein CVSD-Audio-Digitalisierungs- und Wiedergabegerät
Bob Wright HackerNoon profile picture
0-item

Ein CVSD-Audiodigitalisierungs- und Wiedergabegerät

Ich habe diese Schaltung 1985 entwickelt, weil ich einsam war und jemanden zum Reden brauchte. Die Talking Box sagte alles, was ich ihr sagte.


Im Ernst, ich hatte es als digitalen Anrufbeantworter an mein Telefon angeschlossen. Ich hatte ein Data Access Arrangement (DAA) von AT&T, das eine Telefonleitungsschnittstelle war, und es funktionierte wirklich gut. Ich spielte mit Tonwahl und brauchte eine gute Klangtreue. Dann hat das Familien- und Kinderamt des Landkreises aus Versehen meine Nummer auf einige ihrer Visitenkarten geschrieben. Ich bekam viele, viele Anrufe, vor allem, weil ich als Antwortnachricht meine anzügliche Schundpoesie schrieb und vorlas. Ich meine HiFi-Baby! Ich bekam zahlreiche Bescheinigungen darüber, wie sehr ich geliebt wurde. Im Grunde machte ich 1985 Rap, bevor es Rap gab. „Hallo, rufen Sie an, um Ihr Kind behandeln zu lassen?“ wäre heute wahrscheinlich keine akzeptable Begrüßung.


Ich hatte ein Assemblerprogramm in Z80-Assembler geschrieben, um die Gerätefunktionen zu verwalten, und später baute ich eine Adapterkarte, die in den seriellen E/A-Gerätesockel eines IBM-PC-kompatiblen Rechners passte und das asynchrone UART-Gerät durch eine universelle synchrone/synchrone Version von Intel ersetzte, einen USART Intel 8251A. Dann konvertierte ein Freund, ein Typ namens Tommy Cobb oder „der Schuster“, meinen Z80-Code in 8088-Assembler für den PC. Ich kann mich nicht erinnern, wann ich meinen Adapter für serielle E/A-Karten für IBM-PCs zum letzten Mal gesehen habe. Ich kenne keine Dokumente. Und ich kann meinen Talking Box-Prototyp nicht finden, aber er ist zweifellos irgendwo in diesem Haus. Es ist ein fotogenes Gerät, und ich würde hier gerne einige Fotos einfügen, aber leider.


Neben der Verbindung mit dem Telefon konnte ich mit der Software auch einige nette Loops auswählen und wiedergeben, die ich als Speicherbereich für Audio verwenden konnte. Spielen Sie Aufnahmen rückwärts ab, um die Stimme von … zu hören, ach, egal. ☺


Jedenfalls kaufte das Radio Electronics Magazine diesen Artikel und zahlte mir sogar eine ziemlich gute Anzahlung dafür. Ich war wirklich sehr beeindruckt und auf jeden Fall motiviert. Erste nordamerikanische Serienrechte. Es schien eine wirklich nette Art zu sein, seinen Lebensunterhalt zu verdienen, da ich gerne entwerfe, baue, programmiere und schreibe. Es gab einige Autoren, die bereits wiederholt erschienen waren, also war es keine originelle Idee. Dann ging das Magazin im April 1985 pleite und wurde eingestellt, und der Artikel wurde nie gedruckt. Ich hatte das Gefühl, dass die Maker-Print-Industrie zu diesem Zeitpunkt am Ende war und das Hobby-Baupublikum verschwunden war. Das war vor dem Internet. Hier ist also der Artikel, sozusagen wiederbelebt. Hoffentlich gefällt er Ihnen, auch wenn er veraltet ist. Elektrische Spielzeuge behalten als Konzepte ihren Nutzen, auch wenn ihre Verwendung nachgelassen hat.


Der Autor möchte sich außerdem ganz besonders bei John T. Smith, K3GO, bedanken, der die JPG-Scans der getippten Seiten des Artikels mithilfe seiner OCR-Techniken in Text umgewandelt hat.



Die Talking Box ist ein einfach zu konstruierendes, kostengünstiges Projekt, das praktisch jedem Computer die Möglichkeit bietet, menschliche Sprache oder ähnliche analoge Audiofrequenzsignale digital zu kodieren und anschließend wiederzugeben. Um eine einfache Bedienung zu gewährleisten, wurde das Projekt so konzipiert, dass es an den seriellen E/A-Anschluss eines Computers angeschlossen werden kann und fast so aussieht, als wäre es nur ein synchrones Telefonmodem. Dies führt zu einer einfach anzuschließenden Geräteschnittstelle für eine Vielzahl von Anwendungen. Die Projektschaltung verwendet die Technik der stufenlosen

Slope-Delta-Modulation zur Kodierung analoger Signale in binäre Daten und zur anschließenden Dekodierung dieser binären Daten zurück in ein analoges Signal. Aufgrund dieser Kodierungs-/Dekodierungsaktion wird das Gerät allgemein und einfach als Codec bezeichnet.


Bei einer seriellen Datenrate von sechzehn Kilobit pro Sekunde (kbps) kann die Talking Box Sprache mit einer Wiedergabetreue aufzeichnen und wiedergeben, die mit der der meisten Anrufbeantworter vergleichbar ist. Eine Erhöhung der Datenrate auf 32 kbps, also etwa vier Kilobyte gespeicherter Daten pro Sekunde wiedergegebenen Tons, führt zu einer Verzerrung eines Audiosignals mit einer Frequenz zwischen 300 und 3000 Hz von weniger als fünf Prozent. Dadurch kann das Projekt problemlos mit einem Computer verwendet werden, um beispielsweise Telefontonsignale wiederzugeben und zu erkennen. Obwohl der Hauptzweck dieses Artikels darin besteht, das Design und die Konstruktion der Talking Box-Schaltung und ihre Verwendung für die binäre Speicherung und Wiedergabe von Audio- oder Sprachsignalen zu beschreiben, hat das Codec-Gerät zahlreiche weitere Anwendungen in den Bereichen Kommunikation, industrielle Steuerung und Instrumentierung. Zu den möglichen Einsatzmöglichkeiten des Projekts gehören unter anderem digitale Filter, die Fernsteuerung von Motoren, die Verschlüsselung von Sprachsignalen, die Kodierung flüchtiger Signale zur Speicherung oder Anzeige, die Amplitudenkompression eines Signals, digitale Verzögerungsleitungen für den Nachhall, das Extrahieren und Reproduzieren von Allophonen zur Bildung synthetischer Sprache, die Kodierung oder Dekodierung von Signalen für akustische Modems, paketierte Sprachdatennachrichten sowie die Bildverarbeitung oder -analyse.


Prinzipien der Deltamodulation

Die meisten digitalen Encoder erfassen die Amplitude eines kontinuierlich variierenden Signals in regelmäßigen Abständen und stellen diese Abtastungen dann durch binäre Wörter dar, die ihre Amplitude und Polarität angeben. Im Gegensatz dazu erzeugt ein Deltamodulator Einzelbitwörter, deren Wert den quantisierten Fehler oder „Delta“ (A) in einem Trackingsignal darstellt, anstatt den Wert des Eingangssignals selbst darzustellen. Technisch gesehen ist ein Deltamodulator ein geschlossenes Steuersystem für abgetastete Daten, das einen binären Ausgang erzeugt, dessen Polarität die Differenz zwischen dem aktuell abgetasteten Eingangssignal und einer quantisierten Annäherung des vorhergehenden Eingangssignals darstellt. Dies wird erreicht, indem ein Komparator in den Vorwärtspfad und ein Integrator in den Rückkopplungspfad einer einfachen Steuerschleife eingefügt werden. Wie im Blockdiagramm des linearen Deltamodulationssystems in Abbildung 1 gezeigt, sind die Eingänge des Komparators das Eingangssignal und der Ausgang des Integrators oder lokalen Decoders.


Somit spiegelt der Komparatorausgang das Vorzeichen der Differenz zwischen dem Eingangssignal und dem Integratorausgang wider. Dieses Vorzeichenbit steuert die Polarität der Ladung, die als nächstes auf den Integrator angewendet wird, und bildet auch den digitalen Ausgang. Der Komparatorausgang wird normalerweise getaktet, um einen synchronen bandbegrenzten seriellen digitalen Bitstrom bereitzustellen. Die Einfachheit der erforderlichen Schaltung und die serielle Natur der Ausgangsdaten sind die beiden grundlegenden Vorteile des Deltamodulators. Wenn der resultierende getaktete serielle Bitstrom dann an einen ähnlich aufgebauten Empfangsintegrator geliefert wird, wie er ebenfalls in Abbildung 1 gezeigt ist, ist der Ausgang dieses Decodierintegrators eine Kopie des ursprünglichen Ausgangs des sendenden Steuerschleifenintegrators. Der synchrone serielle Datenstrom enthält keine Rahmeninformationen, und die Replikation des ursprünglichen Eingangs, wie er durch den Bitstrom vom Encoder dargestellt wird, beginnt sofort, wenn diese Daten in den Decoder eingegeben werden. Die Wiedergabetreue dieser Kopie hängt in hohem Maße davon ab, inwieweit der sendende Integrator das ursprüngliche Eingangssignal verfolgt. Wie aus den Wellenformen in Abbildung 2, einem Wellenformdiagramm eines linearen Deltamodulators, ersichtlich ist, versucht das Rückkopplungssignal des Encoders, das Eingangssignal in einer Reihe von Rampenschritten konstanter Größe zu verfolgen. Da das Rückkopplungssignal vom lokalen Decoder aus Schritten konstanter oder nahezu konstanter Größe besteht, die von einem linearen Netzwerk gebildet werden, wird diese Art der Deltamodulation als lineare Deltamodulation bezeichnet. Das Vorhandensein dieser inkrementellen Schritte im Decoderausgang führt zu einem quantisierten Rauschsignal, das als körniges Rauschen bezeichnet wird. Eine Tiefpassfilterung am Empfängerausgang eliminiert den größten Teil dieses Rauschsignals, wenn die Taktrate des Bitstroms eine Oktave oder mehr über der Bandbreite des Eingangssignals liegt. Eine weitere Reduzierung des Pegels dieses Rauschsignals kann entweder durch Reduzierung der Schrittweite, Erhöhung der Abtastfrequenz oder durch beides erreicht werden.


Der größte Nachteil jedes linearen Modulationssystems ist die relative Unfähigkeit solcher einfach konstruierter Regelkreise, ein angemessenes Signal-Rausch-Verhältnis (S/N) über einen weiten Bereich der Eingangssignalleistung aufrechtzuerhalten, d. h. sie haben einen begrenzten Dynamikbereich. Bei der Sprachaufzeichnung beispielsweise führen die unterschiedlichen Leistungspegel in den Sprachmustern verschiedener Personen zu deutlich unterschiedlichen S/N-Verhältnissen.


In einem Deltamodulationscodierer werden Informationen über die momentane Steigung oder Änderungsrate der Amplitude des Eingangssignals durch die sequentielle Häufigkeit des Auftretens jedes der binären oder logischen Ausgangspegel angezeigt. Bei einem Signal mit Nullsteigung und konstanter Amplitude am Eingang, wie auf der linken Seite von Abbildung 2 gezeigt, ist das resultierende Nachführsignal eine Reihe von Rampenschritten, die jeweils den gleichen Pegel, aber entgegengesetzte Polarität aufweisen. Dies führt außerdem zu einer alternierenden Null-Eins-Sequenz am digitalen Ausgang, die somit als Anzeige oder Entsprechung zu Perioden relativer Stille oder eines konstanten Amplitudenpegels im Eingangssignal angesehen werden kann. Jede Abweichung von diesem gewünschten Ergebnis während stiller Perioden wird als Leerlaufkanalrauschen bezeichnet und führt natürlich dazu, dass vom zugehörigen Decoder ein von Null verschiedenes Signal ausgegeben wird.


Wie erläutert, wird bei Anwendung eines Eingangssignals mit einer Nullsteigung eine abwechselnde Folge von Einsen und Nullen ausgegeben. Nehmen wir jedoch an, dass sich die Steigung des Eingangssignals so schnell ändert, dass das Rückkopplungssignal (d. h. der Integratorausgang des Encoders) dem eingehenden Signal nicht mehr folgen kann. In diesem Fall ergibt sich am Ausgang ein Bitstrom mit konstanter Polarität. Dieser Zustand wird als Steigungsüberlastung bezeichnet, und wenn er auftritt, kann sich die Ausgabe des Decoders stark vom Originalsignal unterscheiden. Der Grad der Abweichung zwischen dem Originalsignal und seiner Replik wird als Steigungsüberlastungsrauschen bezeichnet. Steigungsüberlastungsrauschen trägt mehr zur Verzerrung einer replizierten Wellenform bei als granulares oder quantisierendes Rauschen und hat daher einen größeren Einfluss auf die absolute Wellenformtreue. Menschliche Zuhörer empfinden granulares Rauschen jedoch in reproduzierten Sprachsignalen als wahrnehmbarer und störender.


Wir können also sehen, dass das Signal-Rausch-Verhältnis eines linearen Encoders direkt vom Leistungspegel des Eingangssignals beeinflusst wird. Bei einem niedrigen Eingangsleistungspegel ist die Signalverfolgung schlecht, da das Rückkopplungsverfolgungssignal erhebliche Abweichungen um das relativ kleine Eingangssignal macht und die vergleichsweise große Schrittweite daher erhebliche Mengen an körnigem Rauschen erzeugt. Mit zunehmendem Leistungspegel des Eingangssignals verbessert sich das Signal-Rausch-Verhältnis linear, da das Quantisierungsrauschen einen zunehmend kleineren Teil der vorhandenen Gesamtleistung ausmacht. Die Fähigkeit des Encoders, das Eingangssignal zu verfolgen, verbessert sich fortschreitend, bis der Encoder leicht überlastet wird. An diesem Punkt beginnt das Signal-Rausch-Verhältnis zu sinken, da der Rauschleistungsgehalt schneller zunimmt als der Signalleistungsgehalt. Eine grafische Darstellung dieser Beziehungen finden Sie in Abbildung 3, Signalleistung und Rauschleistung in Delta-Modulatorsystemen.


Die Frequenzgrenzen für das analoge Eingangssignal des Encoders sind nach oben begrenzt. Es gibt eine Taktfrequenz, die durch die Nyquist-Abtastrate bestimmt wird, die größer ist als die Bandbreite des Eingangssignals und die das Signal bei einem bestimmten Rauschpegel codiert, vorausgesetzt, wir haben eine ausreichend kleine Schrittweite. Die Amplitudengrenzen für das Eingangssignal sind jedoch sowohl nach oben als auch nach unten begrenzt. Für jeden bestimmten Eingangssignalpegel gibt es eine zugehörige Integratorschrittweite, die das optimale Signal-Rausch-Verhältnis liefert. Leider führt die feste Schrittweite zu einem relativ kleinen Grenzwert für den nutzbaren dynamischen Bereich des Eingangssignals in einem linearen Encoder.


Betrachten wir nun die Verbesserung des S/N-Verhältnisses, die sich ergeben würde, wenn die Tracking-Schrittweite irgendwie klein gemacht werden könnte, wenn die Steigung des Eingangssignals klein ist, und dann groß, wenn die Steigung steil wird. Dies könnte durch Anpassen der Verstärkung des Integrators erreicht werden. Offensichtlich würde das Rückkopplungssignal dann über einen größeren Bereich von Eingangsleistungspegeln besser verfolgt werden. Da das Quantisierungsrauschen proportional zum Quadrat der Schrittweite ist, würde eine Anpassung der Schrittweite an einen größeren Bereich von Eingangssignalen dazu führen, dass die Rauschleistung mit der Eingangssignalleistung variiert, anstatt unabhängig davon zu sein, wie es bei der linearen Deltamodulation der Fall ist. Wenn die Rauschleistung proportional zur Signalleistung gemacht wird, hat das S/N-Verhältnis daher einen konstanten Wert, unabhängig vom Eingangssignalpegel. Dies ist das Prinzip der adaptiven Deltamodulation. Bei einer gegebenen Taktrate und Eingangssignalbandbreite kann der Ansatz der Anpassung der Integratorverstärkung eine erhebliche Erhöhung des nutzbaren Dynamikbereichs bewirken, wie in Abbildung 3 gezeigt.


Es wurden viele Algorithmen verwendet, um die Schrittweite des Tracking-Integrators adaptiv zu ändern, aber die Talking Box verwendet die als CVSD-Modulation (Continuously Variable Slope Delta) bekannte Technik. Diese auch als syllabisch kompandierte Delta-Modulation bezeichnete Methode ist eine bevorzugte Methode zum Kodieren und Dekodieren von Sprache oder anderen analogen Signalen mit großem Dynamikbereich. Außerhalb der Betriebselemente des zuvor gezeigten linearen Delta-Modulators befindet sich die Implementierung eines Algorithmus, der die aktuellen und letzten digitalen Ausgänge des Delta-Modulators überwacht und dann die Verstärkung des Encoder-Integrators entsprechend anpasst. Wie im Blockdiagramm des CVSD-Modulationssystems in Abbildung 4 gezeigt, wird der Überwachungsteil des Algorithmus mit einem einfachen Schieberegister realisiert, das die letzten drei oder vier Ausgangsbits speichert. Der akzeptierte Standardalgorithmus gibt einen Hinweis, wenn alle dieser sequentiell gespeicherten Bits denselben Logikpegel aufweisen, ein Zustand, der als Koinzidenz bezeichnet wird. Das Auftreten einer echten Koinzidenzausgabe signalisiert, dass die aktuelle Integratorverstärkung wahrscheinlich zu klein ist, um den analogen Eingang zu verfolgen. Der Koinzidenzausgang ermöglicht einen größeren Strom zum Laden eines Tiefpassfilters, und der Spannungsausgang dieses Filters wird dann verwendet, um die absolute Größe der Encoderintegratorverstärkung anzupassen. Die meisten Anwendungen verwenden einen einfachen einpoligen Tiefpassfilter mit einer festen Koinzidenzzeitkonstante im Bereich von etwa fünf bis zehn Millisekunden, was der typischen Tonhöhenperiode von gesprochener Sprache entspricht, bis zu etwa hundert Millisekunden, was der typischen Silbendauer von Sprache entspricht. Daher wird dieser Filter in Sprachcodec-Anwendungen oft als Silbenfilter bezeichnet. Oft wird der Wert der Zeitkonstante letztendlich nach subjektiven Vorlieben ausgewählt.


Dieser Algorithmus zur Erkennung koinzidenter Sequenzen von Logikpegeln ist sowohl aufgrund seiner eleganten Einfachheit als auch deshalb von Bedeutung, weil viele andere Algorithmen, die das Schieberegister verwenden, mit weniger zufriedenstellenden Ergebnissen ausprobiert wurden. Beim akzeptierten Algorithmus ist das Vorhandensein des Koinzidenzsignals mit der Art der Hüllkurve des Eingangssignals verknüpft und gibt somit eher Aufschluss über den zeitlich gemittelten Leistungspegel des Signals als über die unmittelbareren Informationen über die Steigung der Eingangskurve, die andere Sequenzerkennungsmethoden liefern. Die Wirkung des Algorithmus besteht darin, das Signal zu kompandieren und dadurch den realisierbaren Dynamikbereich zu erhöhen.


Der Algorithmus wird im Decoder wiederholt, sodass die Pegeldaten am Empfangsende wiederhergestellt werden. Wenn der CVSO-Encoder-Datenstrom in einen linearen Decoder eingegeben würde, würde die grundlegende Form des analogen Eingangssignals des Encoders repliziert, aber alle Ausgänge hätten gleiche Pegel. Der Bitstrom erscheint, als käme er von einem linearen Encoder mit konstantem Eingangspegel, und daher ist der Algorithmus am Decoderende erforderlich, um die Amplitudenpegelschwankungen durch Dekodierung oder Erweiterung des Signals wiederherzustellen. Interessant ist, dass der Algorithmus, da er nur mit den vergangenen seriellen Daten arbeitet, effektiv einer Erhöhung des Informationsgehalts des Bitstroms ohne Änderung der Kanalbitrate entspricht.


Wir können also erkennen, dass das Prinzip der Deltamodulation in Verbindung mit dem CVSO-Algorithmus eine einfach zu implementierende und effiziente Methode zur Digitalisierung analoger Sprachfrequenzinformationen in einen seriellen Datenstrom bietet.


Einzelheiten zur Realisierung der Talking Box-Schaltung

Die Talking Box implementiert die elektronische Schaltung des CVSD-Encoders und -Decoders mithilfe der integrierten Schaltungen (IC) Motorola MC3417 oder MC3418, um die Delta-Modulatorfunktionen zu erreichen. Diese ICs sind universelle CVSO-Bausteine, mit denen die Schaltungsrealisierung an die speziellen Anforderungen einer Anwendung angepasst werden kann. Laut Motorola wird die Stromanpassung für den Neigungspolaritätsschalter während der Herstellung des MC3418 IC per Laser getrimmt, um eine Leerlaufkanalleistung mit einer minimalen Schrittweite von fünf Millivolt und einer typischen Stromanpassung von einem Prozent von fünfzehn Mikroampere bis drei Milliampere zu gewährleisten. Dies ermöglicht eine Schrittweitenvariation von dreihundert zu eins, was die Fähigkeit zu einem erheblichen analogen Signaldynamikbereich widerspiegelt.


Da die Talking Box-Schaltung selbst aus einem separaten Encoder- und Decoder-Pfad besteht, können diese gleichzeitig zum Senden und Empfangen verwendet werden, was einen Vollduplex-Betrieb ermöglicht. Sowohl der Encoder als auch der Decoder werden von derselben TTL-Taktgeneratorschaltung mit variabler Rate angetrieben. Unterstützungselemente, bestehend aus einem Paar Spannungsregler und den RS232-Schnittstellen-Pegelwandler-ICs, sind die einzigen anderen Teile auf der Leiterplatte.


Die elektronische Schaltung des Encoderpfads ist im schematischen Diagramm von Abbildung 5 dargestellt, einem CVSD-Codec-Sprachdigitalisierer (A/D). Wie dort gezeigt, ist die Schaltung in vier Funktionsbereiche unterteilt, beginnend mit der Mikrofonvorverstärkerschaltung, gefolgt von einem Verstärker mit automatischer Verstärkungsregelung (AGC), einem Sprachbandpassfilter und schließlich endend mit der CVSD-Modulatorschaltung selbst.

Der Mikrofonvorverstärker ist eine klassische transformatorlose, unsymmetrische oder unsymmetrische Eingangsverstärkerschaltung. Für optimales Rauschverhalten bei den von einer Audioquelle wie einem dynamischen Mikrofon erwarteten Niederpegelsignalen verwendet das Design eine nichtinvertierende Konfiguration. Diese Implementierung wird in einem Viertel eines Vierfach-Operationsverstärker-ICs (Op-Amp) vom Typ TL084 mit hochohmigen Feldeffekttransistor-Eingängen (FET) realisiert. Der Vorverstärker hat eine einstellbare Verstärkung, die mithilfe eines Trimmpotentiometers variiert werden kann, das als Rückkopplungswiderstand mit der Bezeichnung MIC GAIN angeschlossen ist. Der Verstärker hat außerdem eine Niederfrequenzabsenkung, d. h. eine Hochpasscharakteristik, deren Eckfrequenz durch die Werte der Serienwiderstands-/Kondensatorkombination festgelegt wird, die vom invertierenden Eingang des Operationsverstärkers zur Erde führt. Dies dient dazu, die Brummempfindlichkeit des Vorverstärkers gegenüber dem Umgebungswechselfeld (normalerweise 60 Hz) zu verringern und den Niederfrequenzleistungsgehalt des Eingangssignals zu reduzieren. Schließlich verfügt der Vorverstärker auch über einen kleinen Kondensator, der vom nichtinvertierenden oder Signaleingang des Operationsverstärkers zur Erde gelegt wird und dazu dient, unerwünschtes Hochfrequenzrauschen zu umgehen, das auf dem Mikrofonkabel vorhanden sein kann. Beachten Sie, dass der serielle Eingangswiderstand (100 Ohm) für einige Anwendungen durch einen Kondensator, normalerweise von etwa einem Mikrofarad, ersetzt werden kann.


Auf den Mikrofonvorverstärker folgt eine A6C-Verstärkerschaltung, die zur Pegelkompression des Audiosignals dient, bevor es dem Sprachfilter und dem CVSD-Codec zugeführt wird. Diese Aktion begrenzt den Dynamikbereich der Signalamplitude, bevor es der Frequenzbandpass- und Encoderverarbeitung unterzogen wird. Die in der Talking Box verwendete AGO-Schaltung wurde von Jerald Graeme von der Burr-Brown Research Corporation* beschrieben. Ihre Funktionsweise basiert auf der Verwendung eines FET als gesteuertes variables Widerstandselement in einem T-Spannungsteilernetzwerk, das den Verstärkungsbereich und die Ausgangsamplitude dieser Stufe bestimmt.

Die AGC-Schaltung wird mit dem FET und zwei Operationsverstärkern aus demselben Quad-Gehäuse realisiert, das teilweise für den bereits beschriebenen Mikrofonvorverstärker verwendet wird. Der erste Operationsverstärker dient als verstärkungsgeregelter invertierender Verstärker und der zweite als Spitzenwerterfassungsverstärker. Wenn der positive Spitzenpegel des Ausgangssignals den am Schleifarm des AGC LEVEL-Potentiometers eingestellten Spannungswert überschreitet, schwingt der Ausgang des Erfassungskomparators positiv, wodurch die Gate-Spannung des FET erhöht und somit sein Eingangs-zu-Quelle-Widerstand gesenkt wird. Dies wiederum führt dazu, dass ein größerer Teil des Eingangssignals zur Masse geleitet wird, was letztendlich zu einer verringerten Gesamtschaltungsverstärkung für diese Stufe führt. Die Amplitude des Ausgangssignals kann durch Einstellen des oben erwähnten AGC LEVEL-Steuerpotentiometers zwischen Null und dem Sättigungs- oder Clipping-Pegel des verstärkungsgeregelten Verstärkers eingestellt werden.


Eine Schwierigkeit, die bei vielen Implementierungen auftritt, bei denen das Konzept eines FET als Element mit variablem Widerstand für Audiosignale verwendet wird, besteht darin, dass der Widerstand des Geräts selbst durch das über ihn eingeprägte Signal moduliert wird. Wird dieser Aspekt der Eigenschaften des FET nicht ausreichend kompensiert, führt dies zu signalpegelabhängiger Verstärkung und Verzerrung. Die in Abbildung 5 gezeigte Schaltung verwendet eine neuartige korrigierende Rückkopplungsmethode, um diese Signalpegelmodulation deutlich zu reduzieren. Wie man sehen kann, wird das Signal, das an der Drain-Leitung des FET erscheint, durch ein gleiches, aber entgegengesetztes, in Phase befindliches Signal ausgeglichen, das vom Ausgang des zugehörigen AGC-Verstärkers abgeleitet wird. Die in der Schaltung verwendeten Widerstandswerte werden so gewählt, dass der FET bei kleinen Signalpegeln betrieben werden kann; ein Umstand, der auch dazu beiträgt, Verzerrungen zu minimieren. Wie gezeigt, wird der Ausgang der AGC-Stufe dann auf den Sprachbandpassfilter angewendet, der als nächstes im Signalpfad des Encoders erscheint.


Die Sprachbandpassfilter-Schaltungsstufe lässt Eingangssignale innerhalb eines Frequenzbandes von 300 bis 3000 Hz nominell durch, während Signale außerhalb dieses Bereichs abgewiesen werden. Eine der wichtigsten Überlegungen bei der Auswahl einer Implementierungstechnik für Bandpassfilter ist der Wert eines abgeleiteten Parameters, der als normalisierte oder fraktionale Bandbreite bezeichnet wird. Numerisch ist dies das Ergebnis, das durch Subtrahieren der unteren -3dB- oder Halbleistungs-Grenzfrequenz von der oberen -3dB-Grenzfrequenz und anschließendes Dividieren dieses Differenzwerts durch den geometrischen Mittelwert dieser beiden Frequenzen erhalten wird. Der geometrische Mittelwert ist natürlich die Quadratwurzel dieses gerade berechneten Differenzwerts. Die so aus den angegebenen (hohen und niedrigen) Grenzfrequenzen des Encoder-Sprachfilters berechnete Bruchbandbreite hat einen Wert von ungefähr drei. Wir stellen fest, dass, wenn dieser berechnete Wert für die Bruchbandbreite einen Wert von ungefähr 0,8 überschreitet und sich von unten an die Einheit (oder einen numerischen Wert von eins) annähert oder diese überschreitet, im Allgemeinen bessere Ergebnisse für die Bandpassfilterleistung durch kaskadierte Hochpass- und Tiefpassfilterabschnitte erzielt werden als durch eine echte Bandpassimplementierung. Dies ist die Methode, die in der Encoder-Sprachfilterschaltung verwendet wird.


Ein weiterer zu berücksichtigender Aspekt ist die Notwendigkeit guter Frequenz- und Einschwingverhaltenseigenschaften für den Sprachfilter. Der Filtertyp Butterworth hat die flachste Durchlassbandamplitude und bietet gleichzeitig eine mäßig schnelle anfängliche Dämpfungsabfallrate. Obwohl bei Verwendung dieser Filter eine Phasenverschiebung mit Frequenzänderung über das Durchlassband auftritt, erfolgt diese allmählich und ist nicht hörbar. Darüber hinaus weist dieser Filtertyp eine geringe Überschwingung und ein akzeptables Einschwingverhalten auf. All diese Faktoren sorgen zusammen für eine geringe Signalverzerrung bei dieser Filterart. Die für den Einsatz im Encoder ausgewählten Hoch- und Tiefpassfiltertypen sind aktive Filter dritter Ordnung, die eine scharfe Grenzfrequenz von -18 dB pro Oktave jenseits der Eckfrequenz und einen flachen Leistungs- und Spannungsfrequenzgang mit einer allmählichen Änderung der Phasenverschiebung über das Band aufweisen. Die spezielle elektronische Schaltung, die zur Implementierung der Filter verwendet wird, wird als Mehrfachrückkopplungsdesign mit unendlicher Verstärkung bezeichnet und wurde ausgewählt, weil sie einen guten Kompromiss zwischen Komplexität und Komponentenwertstreuung und Empfindlichkeit bietet. Jeder Abschnitt wird mit einer Hälfte eines LM353-Operationsverstärker-ICs mit zwei FET-Eingängen realisiert. Diese Geräte haben eine sehr hohe Eingangsimpedanz, eine schnelle Anstiegsrate und einen äußerst stabilen Betrieb mit kapazitiven Lasten. Da im Filter zwei invertierende Operationsverstärker kaskadiert sind, entspricht das Nettoergebnis annähernd einer Phasenänderung von Null durch die Stufe.


Das Ausgangssignal des Sprachbandpassfilters wird dann schließlich an die CVSD-Modulatorschaltung angelegt. Im Wesentlichen ist die gesamte aktive Funktionalität dieser Stufe im IC selbst enthalten, während die diskreten Komponenten dazu dienen, die besonderen Parameter von drei Bereichen des Gerätebetriebs festzulegen.


Zunächst stellen wir fest, dass zwei Siliziumdioden von Pin 12 des IC mit der Masse verbunden sind, wodurch der Schwellenwert für die Logiksignaleingänge des Geräts bei etwa 1,4 Volt (etwa zwei Diodenabfälle) über der Masse für die Verwendung mit TTL-Logikpegeln oder dem ebenfalls auf der Platine vorhandenen RS232-Schnittstellen-ICS festgelegt wird.


Der zweite zu berücksichtigende Bereich ist das Tracking-Integrator-Filternetzwerk. Die Talking Box-Schaltung verwendet ein einpoliges Integrationsfilternetzwerk, das über den lokalen Decoder-Integrator-Verstärker zwischen den Pins 6 und 7 des IC angeschlossen ist. Der Ausgang

des Tracking-Integrators, der an Pin 7 erscheint, ist auch mit einem Eingang des analogen Signalkomparators an Pin 2 verbunden. Die Verwendung eines Zweipolnetzwerks für diesen Filter kann das Signal-Rausch-Verhältnis gegenüber der Einpolrealisierung um ein oder zwei dB verbessern. Falls gewünscht, kann ein Zweipolnetzwerk implementiert werden, indem die Spur, die die Pins 2 und 7 auf der Oberseite der Leiterplatte verbindet, durchtrennt und die Pins auf der Leiterseite mit einem geeigneten Widerstand überbrückt und dann ein Kondensator von Pin 2 zur Erde hinzugefügt wird. Die Herleitung der erforderlichen Komponentenwerte wird im Motorola-Datenblatt 2 erläutert.


Beachten Sie jedoch, dass sich der gezeigte und normalerweise verwendete Einzelpolfilter für die TouchTone-Wiedergabe bei einer Datenrate von 32 kbps mit dem Gerät MC3417 als völlig ausreichend erwiesen hat.


Der letzte Bereich des CVSD-Modulatorbetriebs ist das Silbenfilternetzwerk und die Bestimmung der minimalen Integratorschrittweite und der Schleifenverstärkung für das IC-Gerät. Das Silbenfilter ist eine einfache einpolige Tiefpassschaltung, die aus den beiden Widerständen Rs und Rp und dem Kondensator Cs besteht. Normalerweise wird der Kondensator durch Rs und Rp in Reihe geladen. Wenn jedoch der Koinzidenzausgang, Pin 11 des IC, wahr wird, bewirkt dies, dass der obere Widerstand Rp effektiv aus dem Ladepfad für Cs entfernt wird und so der Ladestrom und letztendlich die Integratorschrittweite erhöht wird. Der Widerstand Rm dient zur Bestimmung der minimalen Integratorschrittweite, während der Wert des Widerstands Rx dazu dient, die Schleifenverstärkung durch eine einfache lineare Strom-Spannungs-Transformation festzulegen. Eine Änderung dieser Transformationsbeziehung kann zu einer deutlichen Erhöhung des Signal-Rausch-Verhältnisses führen, was jedoch mit einer damit verbundenen Erhöhung der Komplexität der elektronischen Schaltung einhergeht. Beispielsweise kann durch die Verwendung aktiver Schaltungselemente zur Erzielung dieser Funktion problemlos ein nutzbarer Signalamplitudenbereich (Dynamikbereich) von 50 dB mit einem Signal-Rausch-Verhältnis von 30 dB erreicht werden, wenn eine Datenrate von 32 kbps betrieben wird.


Mit dem Betrieb des CVSD-Encoder-IC sind drei digitale oder logische Signalpfade verbunden. Das erste dieser Signale ist der Takteingang an Pin 14, der normalerweise von der unten beschriebenen Taktgeneratorschaltung bereitgestellt wird. Ein zweites Logiksignal ist der digitale Ausgang an Pin 9, der der eigentliche serielle Datenstrom ist, der vom Modulator kommt. Die Datenbits werden an der fallenden Flanke des Takteingangs zum IC an Pin 14 aus dem Gerät getaktet. Das dritte und letzte Logiksignal ist der Force-Idle-Eingang, IC-Pin 15, zum Schaltkreis. Wenn der digitale Ausgang von Pin 9 wie gezeigt mit Pin 13 des IC verbunden ist, wird innerhalb des Geräts ein Umschalt-Flipflop gebildet, und wenn der Force-Idle-Eingangspin aktiviert wird, wird ein Leerlaufkanalmuster vom digitalen Encoderausgang übertragen. Diese Funktion ermöglicht eine einfache Möglichkeit, eine Datenverbindungssynchronisierung herzustellen oder ein Ruhemuster vom Encoder zu erzwingen.


Nachdem wir uns nun die Einzelheiten der Schaltung angesehen haben, die den Encoderpfad für die Talking Box bildet, wollen wir uns nun dem Schaltungsdesign des Decoderpfads zuwenden. Das schematische Diagramm des gesamten Decoderpfads ist in Abbildung 6 dargestellt, einem CVSD-Codec-Sprachgenerator (D/A). Wie aus diesem Diagramm ersichtlich ist, besteht der Decoderpfad aus drei Hauptbetriebsstufen, beginnend mit dem CVSD-Demodulator, gefolgt von einem Sprachbandpassfilter, dessen Ausgang schließlich einen Ausgangsverstärker antreibt.

Wie im Abschnitt über die Prinzipien der Deltamodulation erläutert, kann die Decoderfunktion als eine Art Ergänzung zur Encoderfunktion betrachtet und verstanden werden. Es überrascht daher nicht, dass wir eine spiegelbildliche Ähnlichkeit in ihren jeweiligen elektronischen Schaltkreisen und Komponentenwerten feststellen können.


Somit sind im Schaltplan für die CVSD-Demodulatorstufe die Betriebsfunktion und der Wert der Widerstände mit der Bezeichnung Rp und Rs zusammen mit dem Kondensator Cs völlig analog zur Betriebsfunktion und dem Wert dieser gleich bezeichneten Komponenten in Abbildung 5, dem Diagramm für den Encoderpfadschaltkreis. In ähnlicher Weise dienen die Widerstände mit der Bezeichnung Rx und Rm in analoger Weise zu ihren gleich bezeichneten Komplementen in der Encoderimplementierung. In ähnlicher Weise sind sogar die Komponenten, die das Decoder-Integrator-Filternetzwerk für den CVSD-Demodulator bilden, analog zu denen in der Modulatorschaltung. Schließlich werden die logischen Schwellenwerte für den Decoder-IC ebenfalls durch den Abfall über einem Paar Siliziumdioden eingestellt, wie dies beim Encoder-IC der Fall ist.


Im Decoderpfad sind jedoch nur zwei digitale Signalpfade mit der Schaltung verbunden. Es gibt einen Takteingang, der normalerweise von derselben TTL-Taktgeneratorschaltung angesteuert wird, die für die Codierfunktion verwendet wird. Dieses Signal wird an Pin 14 des Decoder-IC angelegt und taktet die Datenbits, die dann nacheinander am digitalen Eingang, Pin 13, im IC erscheinen.


Der Ausgang der CVSD-Demodulatorstufe ist natürlich eine ungefilterte Kopie des ursprünglichen analogen Signals, das einst in den Encoderpfad eingegeben wurde. Es wird dann als nächstes auf den Sprachbandpassfilter des Decoderpfads angewendet, der dazu dient, das zuvor beschriebene körnige oder quantisierende Rauschen zu entfernen. Die Hardwarerealisierung ist im Wesentlichen identisch mit der im Encoderpfad verwendeten, außer dass die Kaskadenreihenfolge der Hochpass- und Tiefpassschaltungen umgekehrt wurde. Im Decoderfilter besteht das erste Ziel darin, das Quantisierungsrauschen so weit wie möglich zu entfernen. Daher wird die Tiefpassfunktion zuerst und am nächsten zum Eingang der Filterstufe (und damit auch zum Decoderausgang) platziert, um diese Dämpfung zu maximieren.


Nach dem Sprachfilter im Decodersignalpfad ist die dritte und letzte Decoderschaltung, der Ausgangsverstärker, dargestellt. Wie der Name schon sagt, verstärkt diese Stufe das Audiosignal, das vom Sprachfilter ausgegeben wird. Ein Paar komplementärer Silizium-Bipolartransistoren ist als Puffergeräte angeschlossen, um die Leistungsabgabe des in dieser Schaltung verwendeten Operationsverstärker-IC LF356 zu verbessern. Eine Verstärkungs- (oder AUSGANGSPEGEL-)Steuerung ist in Form eines Trimmpotentiometers im Rückkopplungspfad vorgesehen, aber der Wert des Widerstands, der vom nicht invertierenden Eingang des Operationsverstärker-IC zur Erde führt, kann auch geändert werden, um den Bereich des Ausgangspegels anzupassen. Schließlich wird das verstärkte Signal über einen Elektrolytkondensator mit großem Wert an die Primärwicklung des Ausgangstransformators gekoppelt. Das über die Sekundärwicklung erzeugte Signal ist dann die endgültige Ausgabe des Decoderpfads, womit die Beschreibung dieses Teils der elektronischen Schaltungen abgeschlossen ist.


Wie bereits erwähnt, ist neben den gerade beschriebenen Encoder- und Decoderpfad-Schaltungen das andere wichtige Schaltungselement der Talking Box der Taktgenerator, der zur Steuerung der Taktung dieser ersten beiden verwendet wird. Das schematische Diagramm dieser Schaltung ist in Abbildung 7 dargestellt, einer TTL-Taktgeneratorschaltung mit wählbarer Frequenz. Wie man dort sehen kann, besteht diese Schaltung im Wesentlichen aus einem quarzgesteuerten Oszillator, der eine programmierbare Teilerkette antreibt, deren Teilungsmodul durch den an einem zugehörigen DIP-Schalter eingestellten Wert bestimmt wird. Der programmierbare Teiler lässt sich daher sehr einfach für eine große Bandbreite von Datentaktraten konfigurieren, und aus Flexibilitätsgründen kann diese Taktrate sogar so eingestellt werden, dass sie vom zugehörigen Computer über die Verbindungsschnittstelle ausgewählt werden kann.


Die letzten elektronischen Schaltungskomponenten auf der Leiterplatte sind die Stützelemente, die aus den positiven und negativen Spannungsreglern und den RS232-Pegelwandler-ICs bestehen, die von der Computerschnittstelle verwendet werden. Eine schematische Zeichnung mit diesen Teilen finden Sie in Abbildung B, dem Diagramm der RS232-Schnittstellenschaltungen und Spannungsregler.


Nachdem wir nun gesehen haben, wie Deltamodulatoren im Allgemeinen funktionieren und wie dieser hier im Besonderen funktioniert, wollen wir uns nun ansehen, wie die eigentliche Hardware realisiert und physisch aufgebaut ist.


Das Talking Box-Projekt - Physische Konstruktion

Die gerade beschriebenen elektronischen Schaltkreise befinden sich alle auf einer einzigen doppelseitigen Leiterplatte. Eine Seite dieser Leiterplatte wird hauptsächlich als Massefläche verwendet, was die enge Platzierung und Mischung digitaler und analoger Schaltkreise ermöglicht. Abbildung 9, das CVSD-Codec-Leiterplattenlayout, zeigt ein positives Bild der Leiterbahnen auf beiden Seiten der Leiterplatte. Beachten Sie, dass die Karte zwar doppelseitig ist oder Leiterbahnen auf Vorder- und Rückseite der Leiterplatte aufweist, das Layout jedoch so ist, dass keine durchkontaktierten oder leitenden Löcher erforderlich sind, um die beiden Seiten zu verbinden. Dies wird natürlich gemacht, um eine einfache und kostengünstige Duplizierung der für das Projekt vorgeschlagenen Leiterplatte durch Experimentatoren zu ermöglichen. Fertige Leiterplatten mit durchkontaktierten Löchern und Filmkopien der Vorlage sind wie in der Stückliste angegeben erhältlich.


Beachten Sie, dass Ausrichtungsziele an den Randbereichen an den Seiten der vorderen und hinteren Schaltkreislayouts selbst vorgesehen sind. Heben Sie diese Vorlage zunächst als Filmbild für jede Seite an (normalerweise als Negativ) und achten Sie darauf, diese Ziele in jedem Fall mit einzuschließen. Richten Sie dann mithilfe dieser Ziele die vorderen und hinteren Filmbilder übereinander aus und befestigen Sie sie aneinander. Stanzen Sie nun mit einem runden Papierstanzer gleichzeitig drei separate Registrierungslöcher durch beide Filmblätter. Achten Sie darauf, an einer Stelle außerhalb der Bereiche der Schaltkreisvorlage zu stanzen. Das Vorhandensein dieser Registrierungslöcher dient dann dazu, die vorderen und hinteren Filmblätter mithilfe geeigneter Stifte, die durch diese Löcher gesteckt werden, aneinander auszurichten, während ein Stück Leiterplattenmaterial, das freigelegt werden soll, sandwichartig zwischen ihnen platziert wird, wodurch eine einfache Vorder-Rückseiten-Registrierung der beiden Seiten der Schaltkarte gewährleistet wird. Solche Registrierungsstifte in präziser Größe sind im Handel bei Leiterplattenlieferanten erhältlich, aber die Erfahrung zeigt, dass ein auf die richtige Größe zugeschnittener Bleistift oder Dübel für diesen Zweck gut geeignet ist, wenn so etwas wie ein vorgeformter Stab der richtigen Größe nicht verfügbar ist. Ein Bohrer der Größe 68 ist für die meisten unterstützten Löcher geeignet, d. h. für diejenigen, durch die ein Bauteilkabel verläuft. Ausnahmen sind die Reglermontagelöcher mit der Nummer 37 und die Phono-Anschlussmontagelöcher mit einem Durchmesser von 3/16 Zoll.


Zwei Diagramme zeigen die Komponentenmontage und die Montagedetails für die Leiterplatte. Das erste davon, Abbildung 10, das CVSD-Codec-Leiterplattenkomponentenmontagediagramm, zeigt die Platzierung der Teile, wie sie montiert und an die Platine gelötet werden sollen, und zeigt auch die Position verschiedener markierter Punkte in den Schaltplänen. Einige dieser markierten Schaltkreispositionen dienen als Verbindungen, die als Testpunkte verwendet werden können, während andere das Anschließen verschiedener Konfigurationsoptionen ermöglichen.


Das zweite Diagramm. Abbildung 11, das Diagramm „Z-Draht“-Positionen der CVSD-Codec-Platine, zeigt detailliert die Position der Löcher in der Platine, die auf der Ober- oder Bauteilseite der Karte gelötet werden müssen. Beachten Sie, dass dieser Schritt nur erforderlich ist, wenn sich auf der Platine keine durchkontaktierten Löcher befinden und die in der Stückliste gezeigte Platine solche Löcher hat. Wenn sich an dieser Lochposition ein Bauteilanschluss befindet, löten Sie ihn auf beiden Seiten der Platine. Wenn sich kein Bauteilanschluss durch dieses Loch befindet, führen Sie einen Drahtanschluss durch das Loch und den Clinch und löten Sie ihn auf beiden Seiten an die Platine. Diese Methode, eine leitende Durchkontaktierung oder einen Pfad von einer Seite einer Leiterplatte zu einer anderen herzustellen, wird oft als „Z-Draht“ bezeichnet, da der Jumper bei diesem Buchstaben grob aussieht, daher der Titel von Abbildung 11. Beachten Sie, dass keines der Löcher, die auf der Leiterseite der Leiterplatte gelötet werden müssen, blind ist, d. h. bei montierten Komponenten unzugänglich ist. Dadurch kann die Projektschaltung einfach mit einer selbstgebauten Leiterplatte zusammengebaut werden, die keine durchkontaktierten Löcher und nur sehr wenige Jumper erfordert.


Beim RS232-Anschluss selbst muss die obere Reihe von Pins, also die Nummern eins bis dreizehn, auf der Ober- bzw. Komponentenseite der Platine angelötet werden, während die untere Reihe, also die Pins zwölf bis fünfundzwanzig, auf der Rückseite der Platine angelötet werden muss.


Computerschnittstellenbetrieb für das Talking Box-Projekt

Nachdem wir uns nun mit den elektronischen Prinzipien der CVSD-Funktionsweise und dem physischen Aufbau der Projektplatine befasst haben, untersuchen wir als Nächstes die Software, die für die Verbindung des Geräts mit einem zugehörigen Computer erforderlich ist.


Wie in der Einleitung erwähnt, erscheint die Talking Box für den angeschlossenen unterstützenden Computer im Wesentlichen wie ein synchrones Modem. Bisher haben wir fünf digitale Signalpfade in die und aus der Projektschaltung beschrieben. Dies waren natürlich die beiden Datenpfade, einer zum Decoder und einer vom Encoder; die beiden zugehörigen Taktsignale und der Force-Idle-Eingang zum Encoder. Einige andere optionale physische Schnittstellensignale werden im nächsten Abschnitt über Anwendungsbeispiele beschrieben. Da sich die unmittelbar folgenden Erklärungen jedoch nur mit den programmtechnischen Aspekten des Datenaustauschvorgangs selbst befassen, wird nun angenommen, dass nur diese fünf Signalleitungen mit einem seriellen E/A-Port eines zugehörigen Computers verbunden sind. Die Hardware-Spezifikationen dieser Verbindung werden in Abbildung 12, den SIO-Geräteverdrahtungsschemata für die Verwendung mit CVSD-Boards, ausführlich dargestellt.


Im Verlauf der folgenden Erläuterungen beziehen wir uns auf die in Listing 1 gezeigten Softwareroutinen mit der Bezeichnung CVSD-Treiberprogramm. Dieses Programmlisting enthält sowohl das zur Steuerung eines Intel 8251-kompatiblen seriellen E/A-Geräts (USART) erforderliche Routinemodul als auch das zur Steuerung eines Zilog SIO-kompatiblen seriellen E/A-Geräts erforderliche Modul. Mit der entsprechenden Wahl des Treibermoduls kann jedes dieser Geräte problemlos in einem synchronen Modus betrieben werden, der den Anforderungen der Talking Box entspricht. Der Quellcode ist vollständig in der Assemblersprache Intel 8080 geschrieben und die Auswahl der zu verwendenden Module erfolgt durch Equalate-Anweisungen.


Sowohl das USART- als auch das SIO-Softwaretreibermodul enthalten jeweils vier Hauptroutinen oder Einstiegspunkte, die direkt mit dem Datenaustausch des Computers mit dem Encoder/Decoder zusammenhängen. Diese vier Einstiegspunkte sind die INUART-Routine, die SERIN- und SEROUT-Routinen sowie die GETSYNC-Routine.


Vor der ersten Verwendung zur Datenübertragung in beide Richtungen muss der Benutzer das serielle E/A-Gerät selbst initialisieren oder per Software so konfigurieren, dass es im synchronen Modus arbeitet. Dies wird durch einen Aufruf der Routine mit der Bezeichnung INUART erreicht. In beiden Modulen dient diese Befehlsfolge im Wesentlichen dazu, die Steuerregister des E/A-Geräts zu laden, sodass es mit 8-Bit-Datenzeichen (Byte breit) ohne hinzugefügtes Paritätsbit arbeitet und ein einzelnes Zeichen als Vorlage für ein Muster verwendet, das innerhalb des seriellen Bitstroms übereinstimmt (oft als SYNC-Zeichen bezeichnet), um anzunehmen, dass eine Synchronisierung an einer Zeichengrenze festgestellt wurde (Sync-Erkennung genannt).

Beachten Sie, dass es in den meisten synchronen Kommunikationsprotokollen keine Zeichenrahmenbits wie die Start- und Stoppbits gibt, die man von asynchronen oder zeichenorientierten seriellen Kommunikationsprotokollen kennt. Stattdessen wird jedes Bit, das ein Zeichen bildet, wiederum durch ein Zeitsignal, das auf einem separaten Signalanschlusspfad bereitgestellt wird, in das serielle Gerät hinein oder aus diesem heraus übertragen, und die Zeichengrenzen werden durch Abzählen der entsprechend definierten Anzahl von Bits pro Zeichen vom getakteten Bitstrom bestimmt. Die meisten „echten“ oder synchronen Datenübertragungsanwendungen für Telefonmodems senden und empfangen die Datenzeichen in Blöcken mit Pausen zwischen diesen Übertragungen zur regelmäßigen Neusynchronisierung des Datenstroms und um Dinge wie die Fehlerprüfung des Inhalts jedes Blocks zu ermöglichen. Aus offensichtlichen Gründen werden synchrone Methoden daher oft als nachrichtenorientierte serielle Kommunikationsprotokolle bezeichnet.


Sobald entweder das SIO- oder das USART-Gerät initialisiert und in Betrieb genommen wurde, lassen sie sich beide weiterhin relativ einfach per Software steuern. In beiden Fällen sind die SERIN-Routinen (ein Zeichen vom Port abrufen) und SEROUT-Routinen (ein Zeichen an den Port ausgeben) dieselben, wie sie für eine einfache asynchrone Anwendung sein könnten. Die Zeicheneingabe- und -ausgaberoutinen umfassen daher nur den Schleifentest eines Bit-Levels innerhalb eines Statusbytes, das wiederholt vom E/A-Gerät eingelesen wird, um zu bestimmen, ob ein Zeichen zur Annahme oder Übermittlung bereit ist. Wenn dieser Test schließlich bestanden ist, wird das Zeichen selbst tatsächlich vom seriellen Port gelesen oder dorthin geschrieben, bevor die Routine mit einer Rückkehr zum Anrufer beendet wird.


Die verbleibende Treiberroutine ist die mit der Bezeichnung GETSYNC. Auch diese Routine erfüllt für beide E/A-Geräte die gleiche Funktion. Dieser Einstiegspunkt wird normalerweise zu Beginn eines Aufnahmezyklus aufgerufen, um die Eingabe der Audiodaten vom Encoder tatsächlich zu starten. Bei dieser Aufgabe dient die Routine zunächst dazu, den Force-Idle-Eingang des Encoders auf „true“ zu halten, wodurch der Encoder dieselbe abwechselnde Eins-Null-Bitfolge als Ausgabe erzeugt, die Stille darstellt, bis das serielle E/A-Gerät dann die Zeichenfolge dieser Bits als Übereinstimmung mit dem Synchronisierungszeichen erkennt. Wenn der Test auf das Vorhandensein dieses Zeichens erfolgreich ist, wird die Force-Idle-Signalleitung sofort als „false“ zurückgegeben, wodurch der Encoder mit dem Senden von Audiodaten an den seriellen Port beginnen kann, der dann als nächstes auf den Empfang dieser Daten eingestellt wird, bevor die Routine endgültig beendet wird. Beachten Sie, dass für einige Anwendungen der Wert dieses verwendeten Bitmusters, d. h. das Synchronisierungszeichen, geändert werden kann, um dann den Start der Audioaufzeichnung bei der Hardwareerkennung einer übereinstimmenden Sequenz zu ermöglichen, die beispielsweise einer bestimmten Stelle in einer Signalwellenform entspricht.


Diese vier Hardwaretreiber-Grundroutinen werden von einem Anwendungsprogramm aufgerufen, um die Audiodaten physisch in den Computer und aus dem Computer zu übertragen. Im folgenden Abschnitt finden Sie einige Anwendungsbeispiele, die diese Routinen mit der Projektplatine und einem unterstützenden Computer verwenden.


Einige spezifische Anwendungsbeispiele

Das vom Autor verwendete Talking Box-Demonstrationsprogramm verwendet diese gerade beschriebenen Treiberroutinen und ermöglicht die selektive Ausführung von Aufgaben aus dem in Abbildung 13 gezeigten Befehlsmenü, dem Befehlsmenü des CVSD Codec Circuit Board Demo Program. Das Programm läuft unter dem CP/M-Betriebssystem und wurde sowohl auf einem 8080 (Homebrew) als auch auf einem Z80-basierten (Televideo TS802H) Mikrocomputersystem getestet. Der Assembler-Quellcode für dieses Programm ist in Listing 2, dem CVSD Codec Circuit Board Demo Program, zu sehen. [- optionale Einbindung]


Wie aus dieser Befehlstabelle ersichtlich ist, ist das Programm so eingerichtet, dass der Bediener Audiodaten entweder vom lokalen Mikrofon- und Lautsprecherpaar oder von der Telefonleitung aufnehmen und wiedergeben kann. Die Verbindungsanordnung, die verwendet wird, um das Demonstrationsprogramm und den Computer mit der Talking Box an das Telefonnetz anzuschließen, basiert auf einem Gerät namens Data Access Arrangement oder DAA. Das vom Autor verwendete Gerät ist ein älterer (Baujahr 1976) Bell Telephone Type 1001F Data Coupler, obwohl neuere, nach FCC Part 68 registrierte Hybridmodule, die seine DAA-Funktion duplizieren, für etwas weniger als zwanzig Dollar von Firmen wie Cermetek (CH1810 Direct Connect Protective Hybrid oder DCPH, siehe Referenzen) erhältlich sind. Diese Module bieten identische Funktionsverbindungen, sind jedoch erheblich kleiner und in der Benutzerfreundlichkeit deutlich verbessert, da sie in einem Gerät montiert werden sollen, anstatt in einem separaten Gehäuse an der Wand zu hängen! Beachten Sie, dass die DCPH-Module CMOS-Logikpegel-Signalpfade verwenden, während das DAA RS232-Signalpegelanforderungen hat. Entweder der DAA oder der DCPH können anzeigen, dass das Telefon klingelt, und dem Computer ermöglichen, den Status des Geräts beim Auflegen/Abheben (oder Annehmen/Auflegen) sowie die Anwendung oder den Empfang von Audiosignalen zur und von der Telefonleitung zu steuern. Beide bieten einen sogenannten Abrechnungsverzögerungstimer, Signalüberlastungsschutz, Leitungsisolierung und Schutz sowie die Möglichkeit, die Telefonleitung zu belegen und Impulse zu wählen, d. h. anzurufen. Die physische Verkabelung, die zum Verbinden des DAA oder DPCH und der Talking Box mit dem Hostcomputer verwendet wird, ist in Abbildung 14 dargestellt, einem Verkabelungsdiagramm für CVSD-Platine und DAA mit Computer.


Das Demoprogramm ermöglicht dem Computer nicht nur die Aufnahme und Wiedergabe von Audiosignalen sowohl lokal als auch vom Telefon aus, sondern bietet auch Routinen zum Anzeigen und Ändern des Inhalts des Speicherbereichs, der das Audiosignal darstellt, zum Löschen des gesamten Signals auf einen voreingestellten (SYNC) Zeichenwert und zum Speichern oder Laden des Inhalts dieses Audiospeichers von den Festplattenlaufwerken des Hostcomputersystems. Es ermöglicht auch die Initialisierung des vom Projekt verwendeten seriellen E/A-Ports, das Ändern des SYNC-Zeichenwerts und das Einstellen eines benutzerdefinierten Steuerausgangssignals (Flag Bit genannt) auf hoch oder niedrig. Dieses Ausgangssignal kann verwendet werden, um aus einem Paar serieller Taktraten zum Kodieren/Dekodieren unter der Kontrolle des Computers auszuwählen, wie in den Abbildungen 7 und 8 dargestellt. Schließlich bietet das Programm auch ein Synchronisierungsimpulssignal, das zu Beginn jedes Wiedergabezyklus ausgegeben wird, um beispielsweise das Auslösen einer Oszilloskopanzeige zu ermöglichen.


Offensichtlich können das Programm und einige seiner Routinen den Kern für eine Reihe nützlicher Geräteanwendungen bilden. Zu den zahlreichen Funktionen, die das Projektsystem sofort ausführen kann, gehören die Verwendung als computergestütztes elektronisches Audionachrichtensystem oder Anrufbeantworter, die Verwendung zum Extrahieren und Wiedergeben von Allophonen (oder sprecherabhängigen Phonembeispielen) als Datenprobe aus gespeicherter Sprache, die Verwendung zum Speichern und anschließenden Anzeigen (auf einem Oszilloskop) solcher Dinge wie dieser Allophone oder vorübergehender Audiofrequenzsignale zur Analyse sowie die Verwendung zum Speichern ganzer Wörter oder Aussagen auf der Festplatte zur späteren Wiedergabe.


Somit ist die Talking Box ein einfach aufzubauendes und leicht zu bedienendes Projekt zum Digitalisieren und Wiedergeben von Sprache oder anderen Audiosignalen mit einem Computer.


Danksagung

Der Autor möchte insbesondere den Herren WH Kerr, EP Norwood und CP Quinn für ihre unschätzbare Unterstützung und Beiträge zur Realisierung dieses Projekts danken.





Damit ist der Artikel, der vom Magazin Radio Electronics gekauft wurde, abgeschlossen. Als Nächstes folgt eine Kopie des CVSD-Codec-Datenblatts von Motorola. Dieses Dokument ist sehr interessant und informativ.


Abschluss

Hoffentlich finden Sie unsere oben präsentierte Tirade nützlich oder interessant ☺ Im Ernst: Kommentare, Kritik und Vorschläge sind immer willkommen. Gott segne Sie alle.