-
Gebiet der
Erfindung
-
Die vorliegende Erfindung bezieht
sich auf Datenkommunikationen und insbesondere auf asynchrone serielle
Kommunikationen.
-
Hintergrund
der Erfindung
-
Es sind asynchrone serielle Datenkommunikationssysteme
bekannt, bei denen eine Datenterminaleinrichtung (Data Terminal
Equipment DTE) bei variierenden Baudraten asynchron serielle Daten
an eine Datenkommunikationseinrichtung (Data Communications Equipment
DCE) überträgt und von
dieser empfängt.
Die Baudrate stellt die Rate dar (d. h. Bits pro Sekunde oder bps),
mit welcher Daten zwischen der DTE und DCE kommuniziert werden.
Beispielsweise kann die DTE bei einer Rate in einem Bereich zwischen
ungefähr
300 bps bis 115200 bps Daten an die DCE übertragen und von dieser empfangen.
Bevor jegliche Kommunikation beginnt, wird jedoch von der DTE und
DCE erfordert, dass sie bei derselben Baudrate arbeiten. Der Autobaudbefehl kann
verwendet werden, um die von der DTE und der DCE verwendete Baudrate
anzugleichen.
-
1 stellt
ein System dar, welches asynchrone serielle Datenkommunikationen
gemäß dem Stand
der Technik verwendet. DTE 100 ist eine Datenterminaleinrichtung,
wie beispielsweise ein ASCII Terminal oder ein Personal-Computer.
DCE 101 kann eine Datenkommunikationseinrichtung sein,
wie beispielsweise ein Modem. Eine Kommunikationsverbindung 117 kann
eine asynchrone serielle Datenkommunikationsverbindung zwischen
DTE 100 und DCE 101 sein.
-
Die DTE 100 kann eine erste
obere Softwareschicht 105, einen ersten Niedrigstufentreiber 110 und
einen ersten UART 115 enthalten. Die erste obere Softwareschicht 105 kann
Hochstufenfunktionen durchführen,
welche von der DTE 100 erfordert werden. Beispielsweise
kann die erste obere Softwareschicht 105 eine Softwareapplikation
sein. Der erste Niedrigstufentreiber 110 kann ein Niedrigstufen-Softwaremodul
sein, welches verwendet wird, um Systemfunktionen durchzuführen, welche
von der ersten oberen Softwareschicht 105 erfordert werden. Der
erste Niedrigstufentreiber 110 kann detaillierte Information
bzgl. des Betriebes der in der DTE 100 enthaltenden Hardware,
wie zum Beispiel den ersten UART 115, haben. Der erste
UART 115 ist ein Universal Asynchronous Receiver Transmitter,
welcher asynchrone serielle Datenkommunikationen über die Kommunikationsverbindung 117 durchführen kann.
-
Die DCE 101 kann einen zweiten
UART 120, einen zweiten Niedrigstufentreiber 125 und
eine zweite obere Softwareschicht 130 enthalten, wobei all
diese auf eine ähnliche
Weise zu den in der DTE 100 enthaltenen analogen Bauteilen
arbeiten können,
und einen Prozessor 122. Der Prozessor 122 kann
der DCE 101 interne Dienste bereitstellen, welche eine
Synchronisation und eine Verwaltung der anderen in der DCE 101 enthaltenen
Bauteile enthalten.
-
Die Kommunikationsverbindung 117 kann eine
asynchrone serielle Datenkommunikationsverbindung sein, welche als
ITU V.24, V.28 bezeichnet wird, oder ein anderes serielles Kommunikationsformat.
Das Format an Zeichen, welche über
die Kommunikationsverbindung 117 kommuniziert werden, kann
in Übereinstimmung
zur ITU T.50, V.4 oder einem anderen Zeichenformat stehen.
-
Der erste UART 115 und der
zweite UART 120 können
bei unterschiedlichen Geschwindigkeiten arbeiten. Beispielsweise
kann der erste UART 115 anfangs bei 28,8 Kbps arbeiten,
während
der zweite UART 120 anfangs bei 33,3 Kbps arbeiten kann.
Bei diesem Anfangszustand können
der erste UART 115 und der zweite UART 120 nicht
in der Lage sein, miteinander zu kommunizieren. Aus diesem Grund
kann der Autobaudbefehl verwendet werden, um die Geschwindigkeit
des ersten UART 115 und 120 anzugleichen. Der
Autobaudbefehl kann jeglichen Befehl oder eine jegliche Zeichenkette
enthalten, welche von der DTE 100 gesendet wird, welches es
der DCE 105 ermöglicht,
die Geschwindigkeit und das Datenformat der von der DTE 100 übertragenen Zeichen
zu erfassen. Die DTE 100 kann einen Autobaudbefehl durch Übertragen
eines Paares an bekannten Zeichen an die DCE 101 durchführen. Wenn der
zweite UART 120 auf dieselbe Baudrate initialisiert wird,
wie sie von dem ersten UART 115 verwendet wird, können der
erste UART 115 und zweite UART 120 über die
Kommunikationsverbindung 117 kommunizieren. Beispielsweise
kann der Autobaudbefehl unter Verwendung der ASCII Zeichen AT, at,
a/ oder A/ implementiert werden, wobei jedes ASCII Zeichen aus einer
Serie an Datenbits gemacht ist.
-
2A stellt
die Datenbitwerte dar, welche die beim Autobaud verwendeten Zeichen
aufbauen können.
Beispielsweise kann das ASCII Zeichen A die Bitwerte b1 = 1, b2
= 0, b3 = 0, b4 = 0, b5 = 0, b6 = 0 und b7 = 1 enthalten. Wenn diese
Datenbitserie erfasst wird, zeigt die DCE 101 an, dass
ein ASCII Zeichen A empfangen wurde. Das ASCII Zeichen T kann aus
den Bitwerten b1 = 0, b2 = 0, b3 = 1, b4 = 0, b5 = 1, b6 = 0 und
b7 = 1 aufgebaut sein. Demgemäß, wenn
die DCE 101 die ASCII Zeichen A und T in Folge empfängt, stellt
der zweite UART 120 die Baudrate auf die während des
Empfangs des A und des T Zeichens gemessene Rate ein. Der zweite UART 120 kann
die Baudrate bestimmen, welche verwendet wird, um die Zeichen im
Autobaudbefehl zu übertragen,
und zwar durch Messen der benötigten
Zeit zum Übertragen
eines Bits bei dem A und T Zeichen. Bit 8 (b8) und Bit 9 (b9) können ein
Paritätsbit
oder ein oder zwei Stopbits sein, in Abhängigkeit vom verwendeten Zeichenformat.
Dadurch sind die Werte von b8 und b9 unbekannt und durch Fragezeichen
dargestellt.
-
2b stellt
die Logikpegel von unterschiedlichen Signalen innerhalb eines asynchronen
seriellen Datenkommunikationsformats dar, welches durch Kommunikationsverbindung 117 verwendet
wird. Eine Übertragung
beginnt mit einem auf Low gehenden Startimpuls 205, welcher
sich für
eine Zeit tb geltend macht, welche die Zeit
darstellt, welche zur Übertragung
eines einzelnen Bits verwendet wird. Das Startbit 205 signalisiert
dem zweiten UART 120, dass ein Datenstrom folgen wird.
Beispielsweise kann der Datenstrom 210 sieben oder acht
seriell übertragene
Datenbits enthalten, welche das ASCII Zeichen A, wie oben beschrieben,
darstellen. Der erste UART 115 kann ein Paritätsbit 215 übertragen, welches
die Parität
in Verbindung mit den Daten 210 anzeigt. Der erste UART 115 überträgt eine
Serie an Stopbits 220, welche anzeigen, dass die Übertragung
von Daten 210 und der Parität 215 vollendet ist. Der
erste UART 115 kann eine neue Übertragung durch Übertragen
eines anderen Startbits 225 starten.
-
Der Autobaudbefehl kann gemäß dem Stand der
Technik durch Messen der Dauer des Startbits und Erzeugen einer
entsprechenden Taktfrequenz, welche die abgeschätzte Baudrate des asynchronen seriellen
Datenstroms darstellt, ausgeführt
werden. Wenn die Taktfrequenz korrekt ist, kann der zweite UART 120 zwei
aufeinanderfolgende Zeichen empfangen, welche einen Autobaudbefehl
darstellen. Wenn die Taktfrequenz nicht korrekt ist, werden die Daten 210 nicht
gemäß des oben
beschriebenen asynchronen seriellen Datenformats abgetastet, und werden
nicht gleich der durch den ersten UART 115 übertragenen
Daten sein. Wenn beispielsweise der erste UART 115 die
ASCII Zeichen AT in Folge bei ungefähr 56,6 kbits/Sekunde überträgt, wird
die Dauer des Startbits (tb) ungefähr 17 μsek betragen.
Daher kann eine Taktfrequenz von ungefähr 56,6 kHz als die Taktfrequenz
verwendet werden, um Daten 210 in den zweiten UART 120 zu
takten. Wenn die zwei von dem zweiten UART 120 empfangenen
Zeichen gleich AT sind, ist die abgeschätzte Baudrate korrekt. Wenn jedoch
die zwei ASCII Zeichen, welche in den zweiten UART 120 getaktet
sind, nicht gleich AT sind, ist die abgeschätzte Baudrate nicht korrekt
oder der erste UART 115 hat keinen Autobaudbefehl übertragen.
-
Asynchrone serielle Datenkommunikationssysteme
gemäß dem Stand
der Technik können
bei hoher Geschwindigkeit (beispielsweise 115200 bps) arbeiten.
Bei 115200 bps beträgt
die Startbitdauer (tb) ungefähr 8,5 μsec. Darausfolgend
kann es vom zweiten UART 120 erforderlich sein, eine tb von ungefähr 8,5 μsec zu messen, um die Autobaudfunktion
durchzuführen.
Die Startbitdauer kann entweder unter Verwendung von Hardware oder
Software gemessen werden. Der Softwareansatz kann eine Softwareschleife
enthalten, welche im Stand der Technik bekannt ist. Der Hardwareansatz
kann einen Zeitmesser verwenden, um die Dauer des Startbits 205 zeitlich
zu bestimmen. Der Zeitmesser unterbricht den Prozessor 122,
welcher die Zählung
des Zeitmessers liest, berechnet die durch den Zeitmesserwert implizierte
Datenrate, und stellt den zweiten UART 120 mit der berechneten
Baudrate ein. Wie unten erläutert,
kann der Prozessor 122 ungefähr eine Millisekunde brauchen,
um die Unterbrechung zu betreuen.
-
Drahtlose Modem können Schwierigkeiten beim Messen
der Dauer von tb haben, wenn sich Baudraten
115200 Bit pro Sekunde annähern.
Im Speziellen können
drahtlose Modem in einem Online-Befehlsmodus arbeiten, während dem
das Modem zu jeder Zeit belegt sein kann. Mit anderen Worten kann
das drahtlose Modem andere Funktionen durchführen, wenn ein Autobaudbefehl
empfangen wird. Beispielsweise können
drahtlose Mobilvorrichtungen, welche für verbindungsorientierte Dienste benutzt
werden, wie zum Beispiel AMPS, erforderlich sein, um nach einer
Basisstation zu horchen oder eine Meldung sogar dann zu übertragen,
wenn keine Verbindung aufgebaut ist. Darausfolgend kann das Modem
in einer Drahtlosvorrichtung zu sehr belegt sein, um die Autobaudfunktion
unter Verwendung entweder des Softwareschleifen- oder des Hardware-Zeitnehmer Ansatzes
durchzuführen.
Beispielsweise kann es für
das drahtlose Modem eine Millisekunde benötigen, um eine Unterbrechung
von dem UART zu beantworten. Bei 8,5 Mikrosekunden pro Bit, beträgt eine
Millisekunde die Dauer von ungefähr
12 Zeichen. Daher kann ein gesamter Autobaudbefehl durch die DTE 100 gesendet
werden, bevor die DCE 101, welche einen Hardware-Zeitmesser verwendet,
die übertragenen
Zeichen verarbeiten kann.
-
Das U.S. Patent No. 5,206,888 von
Hiraguchi et al. offenbart ein Start-Stop synchrones Kommunikationsgeschwindigkeitserfassungsgerät, welches
einen Zähler,
eine Geschwindigkeitsbestimmungseinheit, eine Taktumschalteinheit,
ein Schieberegister, eine Zeichenbestimmungseinheit, einen Code-Generator
und eine Steuerung enthält.
Der Zähler
zählt eine
Zeitperiode, bei welcher die Empfangsdaten bei einer Start-Stop-Synchronkommunikation
eine Leerzeichenpolarität
(space polarity) sind.
-
Das U.S. Patent No. 5,627,858 von
Mak et al. diskutiert ein System und Verfahren zur Datenübertragung.
Das System bestimmt die Baudrate von einer Vielzahl von Kanälen, welche
asynchrone Datenströme
tragen, durch Messen einer Zeitperiode zwischen dem Beginn eines
Startbits und des Übergangs
auf einen Logik-High-Pegel am Beginn von jedem ungeraden ASCII Zeichen.
-
Das U.S. Patent No. 5,222,081 von
Lewis et al. diskutiert ein Verfahren zum Durchführen einer Autobaudfunktion
in einer Datenkommunikationseinrichtung unter Verwendung einer vorbestimmten
Zustandsflussmaschine zum Verarbeiten der Bits von mindestens einem
Abschnitt eines Befehlsbitstroms zum Identifizieren von Übertragungszeichen
eines entsprechenden Informationsbitstroms.
-
Die Europäische Patentanmeldung mit der Veröffentlichungsnummer
EP-A-0 364 720 von National Semiconductor Corporation diskutiert
eine Technik zum Übertragen
Bit-breiter serieller Daten von einem UART auf einen Wort-breiten
Paralleldatenbus und umgekehrt.
-
Die „Practical Techniques for
Baud Rate Estimation" von
Wegener, Digital Signal Processing 1, San Francisco, März 23– 26, 1992,
Vol. 4, Number Conference 17, 23. März 1992, Institute of Electrical and
Electronics Engineers, S. IV-681–IV-684, XP000467286 diskutiert
praktische Techniken zum Abschätzen
von Baudraten, welche Baudratenbereiche und - Listen, ein Messen einer Güte zur Anpassung
und eine Vorverarbeitung enthalten.
-
Zusammenfassung
der Erfindung
-
Es ist daher eine Aufgabe der vorliegenden Erfindung,
eine verbesserte Autobauderfassung bereitzustellen.
-
Es ist eine weitere Aufgabe der vorliegenden Erfindung,
eine Latenzreduktion in Verbindung mit der Verarbeitung des Autobaudbefehls
zu ermöglichen.
-
Es ist eine weitere Aufgabe der vorliegenden Erfindung,
eine Effizienzerhöhung
beim Verarbeiten des Autobaudbefehls zu ermöglichen.
-
Diese und weitere Aufgaben werden
bereitgestellt durch Bestimmen einer Dauer eines Datenbits innerhalb
eines asynchronen Datenstroms und Erzeugen einer Taktfrequenz entsprechend
der Dauer des Datenbits. Die Datenbits aus dem asynchronen Datenstrom
werden unter Verwendung der erzeugten Taktfrequenz in ein Register
getaktet, um einen Registerwert zu bilden. Der asynchrone Datenstrom
wird gemäß der Dauer
des Datenbits und/oder des Registerwerts verarbeitet. Wenn ein Fehler
erfasst wird, wird ein Takten der Datenbits aus dem asynchronen
Datenstrom in das Register beendet. Wenn kein Fehler angezeigt wird,
wird die Baudrate des UART auf die erzeugte Frequenz eingestellt. Fehler
können
als ein Ergebnis eines Vergleichs der Dauer eines Startbits mit
der Dauer nachfolgender Datenbits oder eines Vergleichs des Registerwertes mit
einem vorbestimmten Wert angezeigt werden.
-
Die Dauer eines Startbits kann gemessen und
mit der Dauer von anderen Bits in dem asynchronen Datenstrom verglichen
werden. Ein Takten wird beendet, wenn die Dauer der anderen Bits
wesentlich geringer als die Dauer des Startbits ist. Alternativ kann
der Vergleich auf jedem Datenbit innerhalb des asynchronen Datenstroms
oder nur auf das Startbit durchgeführt werden.
-
Die vorliegende Erfindung kann die
Latenz im Zusammenhang mit dem Verarbeiten des Autobaudbefehls reduzieren.
Insbesondere kann ein asynchrones serielles System gemäß der vorliegenden
Erfindung die Latenz durch Takten der Datenbits aus dem asynchronen
Datenstrom in das Register unter Verwendung der erzeugten Taktfrequenz
reduzieren. Die getakteten Daten werden mit einem vorbestimmten
Wert verglichen, welcher gleich einem Zeichen sein kann, welches
verwendet wird, um den Autobaudbefehl darzustellen. Daher kann die
vorliegende Erfindung bestimmen, ob die empfangenen Daten ein Autobaudbefehl
sind, ohne den Prozessor zu unterbrechen. Systeme gemäß dem Stand
der Technik können
eine Softwareschleife oder einen Hardware-Zeitmesser mit einer Unterbrechung
verwenden, um den Autobaudbefehl durchzuführen. Die mit diesen Ansätzen in
Verbindung stehende Latenz kann nicht ausreichend Zeit ermöglichen,
um die Zeichen zu verarbeiten, welche den Autobaudbefehl ausmachen.
Insbesondere kann, wenn der Autobaudbefehl bei 115200 Baud übertragen
wurde, während
die DCE belegt war, die DCE Unterbrechungslatenz bewirken, dass
der Prozessor innerhalb der DCE die durch die DTE übertragenen
Autobaudzeichen versäumt.
Beispielsweise können
drahtlose Modems erforderlich sein, um mit einer Basisstation zu
jeder Zeit zu kommunizieren, und können daher andere Funktionen
durchführen,
wenn ein Autobaudbefehl betreut wird.
-
Die vorliegende Erfindung kann ebenfalls eine
Latenz reduzieren, wenn der UART Daten überträgt, während ein Autobaudbefehl empfangen
wird. Gemäß der vorliegenden
Erfindung wird der Autobaudbefehl durch die Autobaudschaltung verarbeitet. Daher
kann die DCE die Autobaudschaltung untersuchen, nachdem der UART
eine Übertragung
der Daten beendet. Gemäß dem Stand
der Technik vollendet der UART die Datenübertragung, bevor ein Autobaudbefehl
verarbeitet werden kann. Darausfolgend können ein Autobaudbefehl und
damit in Verbindung stehende Daten nicht empfangen werden, weil
der UART derzeit aufgrund von Übertragung
von Daten belegt ist.
-
Die vorliegende Erfindung kann ebenfalls
die Effizienz zum Verarbeiten der Autobaudbefehlsverarbeitung erhöhen. Insbesondere
kann der Registerwert mit einem vorbestimmten Wert verglichen werden,
welcher gleich einem Zeichen sein kann, welches verwendet wird,
um den Autobaudbefehl darzustellen. Ein Takten wird beendet, wenn
der vorbestimmte Wert nicht gleich ist mit dem Registerwert, und
der Prozessor wird nicht unterbrochen. Somit kann die vorliegende
Erfindung die Anzahl an fehlerhaften Unterbrechungen an dem Prozessor
reduzieren. Bestehende DTE's
können
Störzeichen
vor der Übertragung
des Autobaudbefehls übertragen,
welches im Stand der Technik fehlerhafte Unterbrechungen bewirkt.
Genauso können
Personal-Computer Übergangssignale
auf einer seriellen Schnittstelle erzeugen, welche ebenfalls bei
Systemen im Stand der Technik fehlerhafte Unterbrechungen bewirken.
Die vorliegende Erfindung kann fehlerhafte Unterbrechungen reduzieren,
indem die Störzeichen
oder Übergangssignale
vor einem Unterbrechen des Prozessors untersucht werden.
-
Insbesondere wird der Vergleich gemacht, bevor
das Register ein komplettes Zeichen hält. Die Taktung kann beendet
werden, wenn die Datenbits in dem Register sich nicht mit dem entsprechenden
Abschnitt des vorbestimmten Wertes gleichen. Wenn beispielsweise
das Register Bit 1 = 1, Bit 2 = 0 und Bit 3 = 0 enthält, aber
jedoch Bits 4 bis 7 noch zu empfangen hat, kann das Zeichen, welches
empfangen wird, das erste Zeichen des Autobaudbefehls AT sein, wobei
das Zeichen A durch Bit 1 = 1, Bit 2 = 0, Bit 3 = 0, Bit 4 = 0,
Bit 5 = 0, Bit 6 = 0 und Bit 7 = 1 dargestellt wird. Alternativ
kann, wenn das Register Bit 1 = 0 hält, das empfangene Zeichen
nicht das Zeichen A sein. Demgemäß würden keine
zusätzlichen Bits
in das Register getaktet werden.
-
Kurze Beschreibung
der Zeichnung
-
1 ist
ein Blockdiagramm eines asynchronen seriellen Kommunikationssystems
gemäß dem Stand
der Technik;
-
2A ist
eine Tabelle von Bitwertkombinationen, welche verwendet werden,
um ASCII Zeichen gemäß dem Stand
der Technik darzustellen;
-
2B ist
ein Zeitablaufdiagramm, welches ein asynchrones serielles Kommunikationsformat
gemäß dem Stand
der Technik darstellt;
-
3 ist
ein Blockdiagramm von asynchronen seriellen Kommunikationssystemen
und - Verfahren
gemäß der vorliegenden
Erfindung;
-
4 ist
ein Zeitablaufdiagramm, welches ein asynchrones serielles Kommunikationsformat
gemäß der vorliegenden
Erfindung darstellt;
-
5A ist
ein Blockdiagramm einer Autobaudschaltung gemäß der vorliegenden Erfindung;
-
5B, 5C, 5D und 5E sind
Tabellen, welche Bitkombinationen darstellen, welche verwendet werden
können
um Zeichenformate zu enkodieren;
-
6A und 6B sind Ablaufdiagramme,
welche Betriebe einer Autobaudschaltung gemäß der vorliegenden Erfindung
darstellen; und
-
7, 8, 9, 10 und 11 stellen beispielhafte Betriebe
von einer weiteren Ausführungsform
der vorliegenden Erfindung da.
-
Genaue Beschreibung
der Erfindung
-
Die vorliegende Erfindung wird hiernach
vollständiger
mit Bezug auf die begleitenden Zeichnungen beschrieben, in welchen
eine bevorzugte Ausführungsform
der Erfindung gezeigt ist. Diese Erfindung kann jedoch in vielen
anderen Formen ausgeführt
werden, und sollte nicht als die hier dargelegten Ausführungsformen
beschränkend
angesehen werden; vielmehr sind diese Ausführungsformen so bereitgestellt,
dass diese Offenbarung gründlich
und vollständig
sein wird, und werden dem Fachmann vollständig den Umfang der Erfindung
mitteilen. Gleiche Bezugsziffern beziehen sich durchweg auf gleiche
Elemente.
-
Wie dem Fachmann klar sein wird,
kann die vorliegende Erfindung als ein Verfahren, ein Datenverarbeitungssystem
oder ein Programmprodukt ausgeführt
werden. Demgemäß kann die
vorliegende Erfindung die Form einer gesamten Hardware-Ausführung, einer
gesamten Software-Ausführung
oder einer Ausführung
annehmen, welche Software- und Hardware-Aspekte kombiniert. Ferner
kann die vorliegende Erfindung die Form eines Computerprogrammprodukts
auf einem Computer-lesbaren Speichermedium annehmen, welches ein
in dem Medium ausgeführtes
Computer-lesbares Programmkodemittel hat. Jegliches geeignetes Computer-lesbares
Medium, welches Festplatten, CD-ROMs, optische Speichervorrichtungen
oder magnetische Speichervorrichtungen hat, kann verwendet werden.
-
Die vorliegende Erfindung wird ebenfalls
unter Verwendung von Ablaufdiagrammen beschrieben. Der Fachmann
wird verstehen, dass jeder Block der Ablaufdiagrammdarstellungen
und Kombinationen an Blöcken
in den Ablaufdiagrammdarstellungen durch unterschiedliche allgemein
verwendete Kommunikationssystembauteile implementiert werden können. Es
wird ebenfalls verständlich
sein, dass Abschnitte der in den Ablaufdiagrammdarstellungen beschriebenen
Betriebe als Computerprogrammanweisungen ausgeführt werden können, welche
in einem Computer oder anderen Datenverarbeitungsgeräten geladen
sind, wodurch eine Maschine erzeugt wird, welche Mittel zum Implementieren
der in den Ablaufdiagrammblöcken
und Kombinationen davon spezifizierte Funktionen bereitstellt. Das
Computerprogramm kann bewirken, dass Betriebsschritte, welche auf
dem Computer oder Datenverarbeitungsgerät durchgeführt werden, eine Computerimplementierte Verarbeitung
erzeugen, so dass die Anweisungen, welche auf dem Computer oder
dem Datenverarbeitungsgerät
ausgeführt
werden, Schritte zum Implementieren der Funktionen der Ablaufdiagrammblöcke oder
Kombinationen davon bereitstellen. Demgemäss unterstützen Blöcke der Ablaufdiagrammdarstellungen
Kombinationen von Mitteln zum Durchführen der spezifischen Funktionen
und Kombinationen an Schritten zum Durchführen der spezifischen Funktionen.
-
3 ist
ein Blockdiagramm eines asynchronen seriellen Kommunikationssystems
gemäß der vorliegenden
Erfindung. Die DTE 300 ist eine Datenterminaleinrichtung,
wie zum Beispiel ein ASCII Terminal oder ein Personal-Computer.
Die DCE 301 kann eine Datenkommunikationseinrichtung sein, wie
zum Beispiel ein Modem. Eine Kommunikationsverbindung 317 kann
eine asynchrone serielle Datenkommunikationsverbindung zwischen
der DTE 300 und DCE 301 sein. Die DTE 300 kann
eine erste obere Softwareschicht 305, einen zweiten Niedrigstufentreiber 310 und
einen ersten UART 315 enthalten. Die erste obere Softwareschicht 305 kann
hochstufige Funktionen durchführen,
welche für
die DTE 100 erforderlich sind. Beispielsweise kann die
erste obere Softwareschicht 305 eine Softwareapplikation sein.
Der erste Niedrigstufentreiber 310 kann ein Niedrigstufensoftwaremodul
sein, welches verwendet wird, um Systemfunktionen durchzuführen, welche
für die
erste obere Softwareschicht 305 erforderlich sind. Der
erste Niedrigstufentreiber 310 kann detaillierte Information
bzgl. des Betriebes der in der DTE 300 enthaltenen Hardware,
wie zum Beispiel der erste UART 315, haben. Der erste UART 315 kann
asynchrone serielle Datenkommunikationen über die Kommunikationsverbindung 317 durchführen.
-
Die DCE 301 kann den zweiten
UART 320, einen Niedrigstufentreiber 325, eine
obere Softwareschicht 330 (alle diese können ähnlich sein zu den in der DTE 300 enthaltenen
Bauteilen), einen Prozessor 322 und eine Autobaudschaltung 335 zum
Verarbeiten von Autobaudbefehlen, welche durch den ersten UART 315 übertragen
werden, enthalten. Die Autobaudschaltung 335 kann dann
dem zweiten UART 320 die derzeitige Baudrate anzeigen,
so dass der zweite UART 320 eine Zeicheninformation über Kommunikationsverbindung 317 empfangen
kann.
-
4 stellt
die Logikpegel von mehreren Signalen innerhalb eines durch Kombinationsverbindung 317 verwendeten
asynchronen seriellen Datenkommunikationsformats dar. Die Kommunikationsverbindung 317 verwendet
ein asynchrones serielles Datenkommunikationsformat, wie beispielsweise
ITU V.24 oder V.28, um den asynchronen Datenstrom zu befördern. Eine Übertragung
beginnt mit einem niedrig gehenden Startimpuls 405, welcher
für eine
Zeit tc geltend gemacht wird, welche die
Zeit darstellt, welche verwendet wird um ein einzelnes Bit zu übertragen,
welches dem zweiten UART 320 anzeigt, dass ein Datenstrom
folgen wird. Beispielsweise kann das Startbit 405 signalisieren,
dass ein Datenstrom folgt, welcher sieben oder acht Datenbits, ein
Paritätsbit 415,
welches die Parität
in Verbindung mit den Daten 410 anzeigt, und ein oder zwei
Stoppbits 420, welche anzeigen, dass die Übertragung
von Daten 410 und der Parität 415 vollendet ist,
enthält.
Der erste UART 315 beginnt eine neue Übertragung durch Übertragen
eines weiteren Startbits 425. Die Daten können gemäß einem
Zeichenformat übertragen
werden, welches die Wertigkeit der übertragenen Bits anzeigt. Beispielsweise
können
Daten 420 Datenbits 1 bis 9 enthalten, wobei Datenbits
1 bis 7 Zeichendaten darstellen, und Datenbits 8 und 9 ein Paritätsbit oder
ein oder zwei Stoppbits sein können,
und zwar in Abhängigkeit
des verwendeten Zeichenformats.
-
Der erste UART 315 und der
zweite UART 320 können
bei unterschiedlichen Geschwindigkeiten arbeiten. Beispielsweise
kann der erste UART 115 anfangs bei 28,8 kbps arbeiten,
während
der zweite UART 320 anfangs bei 33,3 kbps arbeiten kann.
Bei diesem Anfangszustand können
der erste UART 315 und der zweite UART 320 nicht
in der Lage sein, miteinander zu kommunizieren. Der Autobaudbefehl
kann verwendet werden, um die Geschwindigkeit der ersten UART 315 und 320 anzugleichen.
Die DTE 300 führt
einen Autobaudbefehl durch Übertragen
eines Paares bekannter Zeichen an die DCE 301 durch. Die
DCE 301 misst die Dauer der Datenbits, welche die bekannten
Zeichen ausmachen, und initialisiert den zweiten UART 320 auf
diese Baudrate. Sobald der zweite UART 320 auf dieselbe
Baudrate initialisiert ist, welche von dem ersten UART 315 verwendet
wird, können
der erste UART 315 und zweite UART 320 über die
Kommunikationsverbindung 317 kommunizieren. Beispielsweise
kann der Autobaudbefehl unter Verwendung der ASCII Zeichen AT, at,
a/ oder A/ implementiert werden, wobei jedes ASCII Zeichen aus einer
Serie an Datenbits wie oben beschrieben aufgebaut ist.
-
Die Autobaudschaltung 335 bestimmt
die Dauer des Startbits 405 und erzeugt eine entsprechende
Taktfrequenz, durch welche serielle Daten 410 in ein Register
getaktet werden. Der asynchrone Datenstrom wird dann gemäß einer
Fehleranzeige verarbeitet. Die Fehleranzeige kann durch Vergleichen
der Dauer von jedem nachfolgenden Datenbit innerhalb der Daten 410 mit
der Startbitdauer bereitgestellt werden. Wenn die Differenz zwischen
der Dauer der Datenbits und der Dauer des Startbits 405 einen
vorbestimmten Schwellwert übersteigt,
wird ein Fehler angezeigt. Bei einer bevorzugten Ausführungsform
kann der vorbestimmte Schwellwert 25% der Dauer des Startbits 405 betragen.
Wenn beispielsweise die Startbitdauer 17 Mikrosekunden betrug und
die Dauer eines nachfolgenden Datenbits 8,5 Mikrosekunden betrug,
würde die
Differenz gleich 8,5 Mikrosekunden betragen, welches 50% der Dauer
des Startbits darstellt. Wenn kein Fehler angezeigt wird, wird die
Baudrate des zweiten UART 320 auf die entsprechende Frequenz
eingestellt, und der zweite UART 320 empfängt den
asynchronen Datenstrom.
-
Bei einer weiteren Ausführungsform
kann die Autobaudschaltung 335 ebenfalls die Dauer des
einen oder mehrerer Stoppbits 420 mit der Dauer des Startbits 405 vergleichen.
Wenn die Differenz zwischen der Dauer des Startbits 405 und
des Stopbits 420 den vorbestimmten Schwellwert übersteigt,
würde die
Autobauschaltung 335 einen Fehler erfassen.
-
Die Fehleranzeige kann ebenfalls
durch Vergleichen der durch die DTE 300 übertragenen
Zeichen mit vorbestimmten Werten, welche den Autobaudbefehl darstellen,
bereitgestellt werden. Wenn die Datenbits innerhalb der Daten 410 in
das Register getaktet werden, wird jedes Bit mit dem vorbestimmten
Wert verglichen. Somit kann die Autobaudschaltung 335 bestimmen,
dass die empfangenen Datenbits keinen Autobaudbefehl darstellen,
bevor alle der in dem Autobaudbefehl enthaltenen Daten empfangen
sind. Wenn beispielsweise die Autobaudschaltung 335 eine
1 als b2 über
Kommunikationsverbindung 317 empfängt, würde die Autobaudschaltung 335 bestimmen,
dass das entsprechende Zeichen kein ASCII Zeichen A oder a enthalten
kann, und daher kein Autobaudbefehl sein kann. Daher zeigt die Autobaudschaltung 335 einen
Fehler an.
-
Bezugnehmend nun auf 5A wird die Autobaudschaltung 335 nun
detaillierter beschrieben. Der asynchrone Datenstrom wird durch
den Bit-Zeitmesser 505 überwacht.
Der Bit-Zeitmesser 505 bestimmt die Dauer des Startbits 405 und
vergleicht die Startbit 405 Dauer mit der Dauer nachfolgender
Datenbits innerhalb der Daten 410. Beispielsweise wird die
Dauer von Startbit 405 verglichen mit den Bits, welche
die Daten 410 aufbauen. Der Bit-Zeitmesser 505 erzeugt
eine Taktfrequenz oder Baudrate, welche der Dauer des Startbits 405 entspricht.
Die entsprechende Taktfrequenz wird in den Taktgenerator 510 geladen,
welcher die entsprechende Taktfrequenz dem Register 515 zuführt. Die
Daten 410 werden bei der entsprechenden Frequenz, welche
durch den Taktgenerator 510 erzeugt wird, in das Register 515 getaktet.
Darausfolgend werden Zeichen von dem asynchronen Datenstrom in das
Register 515 geschoben.
-
Der Bit-Zeitmesser 505 bestimmt
ebenfalls die Dauer von nachfolgenden Bits innerhalb der Daten 410.
Wenn der Bit-Zeitmesser 505 bestimmt, dass
die Dauer von nachfolgenden Datenbits 410 wesentlich kürzer als
die Dauer des Startbits 405 ist, wird ein Fehler 507 angezeigt
und die Autobaudschaltung wird zurückgesetzt.
-
Der Erfasser 520 vergleicht
die Inhalte des Registers 515 mit dem geeigneten vorbestimmten Wert 525.
Der bestimmte vorbestimmte Wert kann davon abhängen, welcher Abschnitt des
Autobaudbefehls empfangen wurde. Anfänglich sind alle ASCII Zeichen,
welche das erste Zeichen des Autobaudbefehls darstellen, geeignete
vorbestimmte Werte. Beispielsweise können die ASCII Zeichen A, a,
T, t und/anfänglich
geeignete vorbestimmte Werte sein. Nachdem das erste Zeichen des
Autobaudbefehls empfangen wurde, ändert sich jedoch der geeignete vorbestimmte
Wert. Beispielsweise können
nach anfänglichem
Empfangen eines ASCII Zeichens A die ASCII Zeichen T und/geeignete
vorbestimmte Werte sein.
-
Wenn der Vergleich eine Differenz
zwischen dem Register 515 und dem vorbestimmten Wert 525 anzeigt,
zeigt der Erfasser einen vorbestimmten Wertfehler 530 an,
welches die Autobaudschaltung 335 zurücksetzt. Wenn der Erfasser 520 bestimmt, dass
der Inhalt des Registers 515 teilweise mit dem geeigneten
vorbestimmten Wert 525 übereinstimmt, zeigt
der Erfasser 520 eine teilweise Übereinstimmung des vorbestimmten
Werts 535 an, welches ein weiteres Takten von Daten 410 in
das Register 515 ermöglicht.
Wenn beispielsweise das Register 515 die Bitwerte von b1
= 1, b2 = 0 und b3 = 0 als Teil eines ASCII Zeichens A enthält, wird
der Erfasser 520 bestimmen, dass dieser Wert teilweise
mit dem vorbestimmten Wert eines ASCII Zeichens A übereinstimmt.
-
Wenn der Erfasser 520 bestimmt,
dass das Register 515 und der vorbestimmte Wert 525 exakt übereinstimmen,
wird eine Übereinstimmung
eines vorbestimmten Werts 540 angezeigt, welches ermöglicht,
dass eine weitere Sequenz an Daten 410 in das Register 515 getaktet
wird. Wenn beispielsweise das Register 515 die Bits b1
= 1, b2 = 0, b3 = 0, b4 = 0, b5 = 0, b6 = 0 und b7 = 1 enthält, zeigt
der Erfasser 520 an, dass das Register 515 mit
dem vorbestimmten Wert des ASCII Zeichens A übereinstimmt.
-
Wenn der Erfasser 520 bestimmt,
dass alle Zeichen, welche den Autobaudbefehl aufbauen, in Folge
empfangen wurden, wird der erfasste Autobaudbefehl 541 erzeugt.
Der erfasste Autobaudbefehl 541 zeigt an, dass der zweite
UART 320 Daten vom asynchronen Datenstrom bei der Baudrate
empfangen kann, welche der oben beschriebenen erzeugten Taktfrequenz
entspricht.
-
Der zweite UART 320 kann
ebenfalls einen asynchronen Datenstrom an den ersten UART 315 übertragen.
Die von dem zweiten UART 320 übertragenen Daten sollten in
demselben Format wie das sein, welches von der ersten UART 315 verwendet wird.
Beispielsweise können
Zeichen, welche über die
Kommunikationsverbindung 317 übertragen werden, unter Verwendung
einer Anzahl an Datenbits, eines Paritätstyps und einer Anzahl an
Stopbits formatiert werden. Ein 10-Bit-Format kann sieben Datenbits,
ein Paritätsbit
und zwei Stoppbits enthalten. Ein 11-Bit-Format kann acht Datenbits,
ein Paritätsbit und
zwei Stoppbits enthalten. Die Autobaudschaltung 335 bestimmt
das Format, welches von dem ersten UART 315 verwendet wird,
indem Datenbits 8 und 9 innerhalb der Daten 410 untersucht
werden. Der zweite UART 320 wird dasselbe Format zur Datenübertragung
an den ersten UART 315 verwenden. 5B, 5C, 5D und 5E zeigen die variierenden Anordnungen
an, welche im Stand der Technik bekannt sind, welche verwendet werden
können,
um das verwendete Zeichenformat zu dekodieren. Wenn beispielsweise
der Autobaudbefehl die ASCII Zeichen AT enthält, zeigt 5B an, dass, wenn Bits 8 und 9, welche
das ASCII Zeichen A begleiten, jeweils gleich 0 und 1 sind, und
wenn Bits 8 und 9, welche das ASCII Zeichen T begleiten, jeweils
gleich 1 und 1 sind, das verwendete Format dann sieben Datenbits,
eine gerade Parität
und ein Stopbit enthalten würde.
-
Bei einer alternativen Ausführungsform
kann die vorliegende Erfindung verwendet werden, um eine Softwareflusssteuerung
bereitzustellen. Eine Softwareflusssteuerung bezieht sich auf die Übertragung
von Daten, welche spezielle Zeichen verwenden, um den Start und
Stopp von einer Übertragung zu
signalisieren. Insbesondere kann eine Softwareflusssteuerung ein
XON und XOFF Zeichen verwenden, um jeweils den Start und Stopp von
einer Übertragung
zu signalisieren. Beispielsweise würde der erste UART 315 ein
XON Zeichen übertragen,
um den Start von einer Übertragung
zu signalisieren, und ein XOFF Zeichen, um das Ende von einer Übertragung
zu signalisieren. Gleichzeitig würde
der zweite UART 320 XON und XOFF Zeichen übertragen,
um jeweils den Start und das Ende von einer Übertragung zu signalisieren.
Gemäß dem Stand
der Technik kann jeder UART den Wert von jedem der einkommenden
Zeichen untersuchen, um zu bestimmen, ob er ein XON oder XOFF Zeichen
ist.
-
Gemäß der vorliegenden Erfindung
kann eine Softwareflusssteuerung durch Verwenden der XON und XOFF
Zeichen als vorbestimmte Werte 525 vollendet werden. Die
durch den ersten UART 315 übertragenen XON und XOFF Zeichen
würden über den
asynchronen Datenstrom 317 in das Register 515 getaktet
werden. Der Erfasser 520 würde dann das Register 515 mit
den vorbestimmten Werten 525 vergleichen. Der Erfasser 520 würde dann
dem Prozessor signalisieren, dass ein XON oder XOFF Zeichen erfasst
wurde. Der Bitzeitmesser 505 würde jedoch abgeschaltet werden,
so dass die Autobaudschaltung 335 die Baudrate für den zweiten
UART 320 nicht modifizieren könnte.
-
6A und 6B sind Ablaufdiagramme,
welche Betriebe von einer Autobaudschaltung gemäß der vorliegenden Erfindung
darstellen. Bezugnehmend nun auf 6A bestimmt
der Bit-Zeitmesser, wenn
Daten empfangen werden (Block 605), die Dauer des Startbits
(Block 615). Es wird eine entsprechende Taktfrequenz erzeugt
(Block 620) und der Takt wird durch die entsprechende Taktfrequenz programmiert.
Es werden Daten von dem asynchronen Datenstrom bei der entsprechenden
Frequenz in das Register getaktet (Block 625). Der asynchrone Datenstrom
wird gemäß einer
Fehleranzeige verarbeitet. Die Fehleranzeige wird durch Vergleichen
der Dauer des Startbits mit der Dauer von nachfolgenden Datenbits
bereitgestellt. Wenn die Dauer der nachfolgenden Datenbits wesentlich
geringer als die Dauer des Startbits ist, wird ein Fehler angezeigt
und die Taktung an Daten von dem asynchronen Datenstrom in das Register
wird beendet. Wenn kein Fehler angezeigt wird, wird der UART mit
der Baudrate entsprechend des erzeugten Taktes konfiguriert belassen.
Eine Fehlanzeige kann ebenfalls durch Vergleichen des Registerwertes
mit einem vorbestimmten Wert, welcher ein Zeichen darstellt, das
verwendet wird, um den Autobaudbefehl aufzubauen, bereitgestellt.
Wenn der Registerwert nicht vollständig mit dem geeigneten vorbestimmten
Wert übereinstimmt, wird
ein Fehler angezeigt, und die Taktung an Daten von dem asynchronen
Datenstrom in das Register wird beendet. Wenn kein Fehler angezeigt
wird, wird der UART mit der Baudrate entsprechend des erzeugten
Taktes konfiguriert.
-
Bezugnehmend nun auf 6B wird die Verarbeitung des asynchronen
Datenstroms nun detaillierter beschrieben (Block 629).
Die Dauer von nachfolgenden Bits innerhalb des asynchronen Datenstroms
wird verglichen mit der Dauer des Startbits (Block 630).
Wenn die Dauer von irgendeinem nachfolgenden Datenbit wesentlich
kleiner als die Dauer des Startbits ist, zeigt der Erfasser einen
Fehler in der Baudrate an, beendet die Taktung, zwingt alle Zellen in
dem Register auf Eins, und löscht
den UART FIFO (Block 650). Die Verarbeitung wartet dann
auf ein zu erfassendes neues Startbit (Block 660). Bezugnehmend
zurück
auf Block 630, fährt
die Taktung fort, wenn die Dauer von allen nachfolgenden Datenbits nicht
wesentlich kleiner als die Dauer des Startbits ist (Block 625).
-
Die Autobaudschaltung vergleicht
ebenfalls den Wert der über
den asynchronen Datenstrom empfangenen Daten mit einem Satz an vorbestimmten
Werten. Die empfangenen Daten werden in das Register getaktet und
mit dem geeigneten vorbestimmten Wert verglichen (Block 635).
Wenn die getakteten Daten nicht gleich dem geeigneten vorbestimmten
Wert sind, wird ein Fehler angezeigt und die Taktung wird beendet,
alle Zellen in dem Register werden auf Eins gezwungen und der UART
FIFO wird gelöscht
(Block 650). Die Verarbeitung wartet dann auf ein neues
zu erfassendes Startbit (Block 660). Wenn jedoch bestimmt
wird, dass die Taktrate zumindest mit einem Abschnitt des vorbestimmten Wertes
gleich zu sein hat (Block 635), wird eine Bestimmung getroffen,
ob das vollständige
Zeichen über
den asynchronen Datenstrom empfangen wurde (Block 640).
Wenn kein vollständiges
Zeichen empfangen wurde (Block 640), werden zusätzliche Daten
in das Register getaktet (Block 625). Wenn ein vollständiges Zeichen
empfangen wurde (Block 640) bestimmt die Autobaudschaltung,
ob ein vollständiger
Autobaudbefehl empfangen wurde (Block 642). Wenn ein vollständiger Autobaudbefehl
empfangen wurde, wird eine Unterbrechung an den UART gesendet, und
eine Taktung der Register wird beendet (Block 645). Wenn
jedoch ein vollständiger
Autobaudbefehl nicht empfangen wurde, werden bei der entsprechenden
Frequenz zusätzliche
Daten in das Register getaktet (Block 625).
-
7, 8, 9, 10 und 11 stellen beispielhafte Betriebe
einer weiteren Ausführungsform
der vorliegenden Erfindung dar, welche, in Verbindung mit der Beschreibung
hierin, es einem Fachmann ermöglichen,
die vorliegende Erfindung zu betreiben. 7 stellt eine bestimmte Initialisierung
des zweiten UART 320, der Autobaudschaltung 335 und
des Prozessors 322 gemäß der vorliegenden
Erfindung dar (Block 705). Jegliche Daten, die in dem Ausgabe-FIFO
des UART vorliegen, werden übertragen (Block 710).
Das fest verdrahtete Schleife-Pro-Bit (Hardwire Loop-per-Bit) wird
in dem Register eingestellt (Block 715). Die eingangsserielle
FIFO Unterbrechung wird unterdrückt
(Block 720). Die Inhalte des eingangsseriellen FIFO's werden alle auf
Eins gesetzt (Block 725). Die Anfangsbit-Zeitmessung und
der Registertakt werden auf 300 bps eingestellt (Block 730).
Die Bitzeitmessung des asynchronen Datenstroms wird dann überprüft (Block 735).
-
8 stellt
einen bestimmten Bitzeitpunkt-Betrieb gemäß der vorliegenden Erfindung
dar (Block 805). Daten werden von dem eingangsseriellen
Pin in das Schieberegister getaktet (Block 810). Die Bitdauer
der Daten wird gemessen. Der Zeichenwert wird im wesentlichen gleichzeitig
zur Dauer des Datenbits überprüft. Wenn
die Datenbitdauer wesentlich kleiner als die Dauer des Startbits
ist (Block 815), wird bestimmt, dass die vorherige Bitzeitmessung unkorrekt
war (Block 820), und es wird ein Zeichen-Neustart eingeleitet
(Block 825). Wenn jedoch die Datenbitdauer nicht wesentlich
kleiner als die Dauer des Startbits ist (Block 815), werden
mehrere Daten eingetaktet (Block 810).
-
9 stellt
eine bestimmte Zeichen-Übereinstimmung
gemäß der vorliegenden
Erfindung dar (Block 905). Der Registerwert wird mit den
vorbestimmten Werten: a, A, t, T,/verglichen (Block 910). Jeder
vorbestimmte Wert wird mit einer bestimmten Ausgabe in Verbindung
gebracht. Ausgabe 1 wird mit den Zeichen a und A in Verbindung gebracht.
Wenn der Registerwert entweder mit dem vorbestimmten Wert a oder
A gleich ist, werden zwei Bits eingetaktet (Block 915).
Der Zähler
des nächsten
Zeichens wird bei dem nächsten
1 auf 0 Übergang
an dem eingangsseriellen Pin neu gestartet (Block 920).
Es werden b1 bis b9 vom Schieberegister in die erste Position im
FIFO geladen (Block 925). Das ba oder BA Bit wird eingestellt,
um anzuzeigen, dass das entsprechende Zeichen empfangen wurde (Block 930).
Die Dauer des nächsten
Datenbits wird dann gemessen (Block 935).
-
Ausgabe 2 wird mit den Zeichen/,
t und T in Verbindung gebracht (Block 910). Wenn der Registerwert
einem der vorbestimmten Werten t, T oder/gleicht, wird der Zähler des
nächsten
Zeichens zurückgestellt
(Block 940) und es werden zwei Bits eingetaktet (Block 945).
Es werden b1 bis b9 vom Schieberegister in die zweite Position im
FIFO geladen (Block 950). Der FIFO-Zeiger wird dann so
eingestellt, um anzuzeigen, dass das entsprechende Zeichen empfangen
wurde (Block 955). Das Autobaud wird dann abgeschlossen
(Block 960).
-
Ausgabe 3 wird damit in Verbindung
gebracht, dass keine Zeichen empfangen werden (Block 910).
Es wird ein Energiesparmodus eingeleitet, bei welchem der Hochgeschwindigkeitstakt
und der Registertakt beendet werden können (normale Betriebe können wieder
aufgenommen werden, wenn ein Übergang
von 1 auf 0 am eingangsseriellen Pin erfasst wird) (Block 965).
Wenn ein Übergang von
1 auf 0 erfasst wird (Block 970), wird die Bitzeit gemessen
(Block 975).
-
Ausgabe 4 wird damit in Verbindung
gebracht, dass Zeichen empfangen werden, welche nicht mit Zeichen übereinstimmen,
welche den Autobaudbefehl darstellen (Block 910). Wenn
der Zähler des
nächsten
Zeichens nicht die Beschränkung
erreicht hat (Block 980), wird die Bitzeitmessung des nächsten Datenbits überwacht
(Block 975). Wenn der Zähler
des nächsten
Zeichens die Beschränkung
erreicht hat (Block 980), wird ein Zeichen-Neustart eingeleitet
(Block 955).
-
10 stellt
einen Zeichen-Neustart gemäß der vorliegenden
Erfindung dar (Block 1005). Irgendein Zeichen A oder a,
welches während
des Autobauds in das FIFO gesetzt wurde, wird gelöscht (Block 1010).
Die Inhalte des eingangsseriellen Registers werden alle auf Eins
gezwungen (Block 1015). Der eingangsserielle Takt wird
wie benötigt eingestellt,
und es wird ein Bit der derzeitigen Polarität in das Schieberegister geladen
(Block 1020). Die Dauer des nächsten Datenbits wird dann
gemessen (Block 1025).
-
11 stellt
ein Einstellen der erzeugten Baudrate gemäß der vorliegenden Erfindung
dar (Block 1105). Der Prozessor wird durch die Autobaudverarbeitung
unterbrochen (Block 1110). Alternativ kann der Prozessor
einen Stillstand einleiten (Block 1115). Die festverdrahtete
Schleife wird zu dem Zeitpunkt abgeschaltet, wenn die eingangsseriellen
Daten gleich Eins sind (ein Stoppbit), und zwar durch Schreiben
von einer Null in das festverdrahtete Schleifenbit (Block 1120).
Die Takte werden dann ausgeschaltet, und das Eingangsserielle und
die Taktung werden auf die korrekte Geschwindigkeit eingestellt
(Block 1125). Die Autobaud-Einschaltung wird auf 0 eingestellt,
um die Unterbrechung zu löschen (Block 1130).
-
Bei den Zeichnungen und der Beschreibung wurden
typische bevorzugte Ausführungsformen
der Erfindung offenbart, und obwohl spezielle Ausdrücke verwendet
wurden, wurden sie nur in einem allgemeinen und anschaulichen Sinn
verwendet, und nicht aus Gründen
einer Beschränkung,
wobei der Umfang der Erfindung in den folgenden Ansprüchen dargelegt
wird.