DE69917624T2 - Automatische ratenerkennung für asynchrone serielle kommunikation - Google Patents

Automatische ratenerkennung für asynchrone serielle kommunikation Download PDF

Info

Publication number
DE69917624T2
DE69917624T2 DE69917624T DE69917624T DE69917624T2 DE 69917624 T2 DE69917624 T2 DE 69917624T2 DE 69917624 T DE69917624 T DE 69917624T DE 69917624 T DE69917624 T DE 69917624T DE 69917624 T2 DE69917624 T2 DE 69917624T2
Authority
DE
Germany
Prior art keywords
data
bit
duration
register
start bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69917624T
Other languages
English (en)
Other versions
DE69917624D1 (de
Inventor
S. Jack PETTY
Kevin Mccauley
William Sorce
David Quinn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson Inc
Original Assignee
Ericsson Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Inc filed Critical Ericsson Inc
Application granted granted Critical
Publication of DE69917624D1 publication Critical patent/DE69917624D1/de
Publication of DE69917624T2 publication Critical patent/DE69917624T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0262Arrangements for detecting the data rate of an incoming signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • 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.

Claims (14)

  1. Ein Schaltkreis für das Erkennen der Zeiteinteilung einer Vielzahl von Daten-Bits innerhalb eines asynchronen Datenstroms, unter Verwendung eines getaktete Daten-Bits speichernden Registers (515), wobei der Schaltkreis gekennzeichnet ist durch: einen Bit-Zeitmesser (505), der die Dauer eines Daten-Bits innerhalb des asynchronen Datenstroms misst; einen Takt-Generator (510), reagierend auf den Bit-Zeitmesser (505), der Daten-Bits innerhalb des asynchronen Datenstroms taktet; einen Komparator (505), der die Dauer eines Start-Bits mit der Dauer eines Daten-Bits innerhalb des asynchronen Datenstroms vergleicht; und einen Detektor (520), der einen Fehler anzeigt, wenn die Dauer des Start-Bits sich erheblich von der Dauer der Daten-Bits innerhalb des asynchronen Datenstroms unterscheidet.
  2. Der Schaltkreis nach Anspruch 1, wobei das Register ein Schieberegister enthält, das parallelen Zugang zu den getakteten Daten-Bits vorsieht.
  3. Der Schaltkreis nach Anspruch 1, wobei der Detektor einen Komparator enthält, der die im Register gehaltenen getakteten Daten-Bits mit einem vorbestimmten Wert vergleicht.
  4. Der Schaltkreis nach Anspruch 1, wobei der vorbestimmte Wert zumindest eines der folgenden Zeichen enthält: A, a, T, t,/.
  5. Ein Verfahren für das Verarbeiten eines asynchronen Datenstroms, welches Daten-Bits aus einem asynchronen Datenstrom in ein Register (515) taktet, um einen Register-Wert zu formen, gekennzeichnet durch die Schritte des: Bestimmens einer Dauer eines Daten-Bits innerhalb eines asynchronen Datenstroms; Erzeugens einer Taktfrequenz entsprechend der Dauer des Daten-Bits; Vergleichens der Dauer eines Start-Bits mit der Dauer eines nachfolgenden Daten-Bits; und Beenden des Taktens der Daten-Bits aus dem asynchronen Datenstrom in das Register (515), wenn die Dauer des nachfolgenden Daten-Bits wesentlich geringer ist als die Dauer des Start-Bits.
  6. Das Verfahren nach Anspruch 5, wobei der Schritt des Verarbeitens den Schritt des Empfangens des asynchronen Datenstroms mit der erzeugten Taktfrequenz umfasst.
  7. Das Verfahren nach Anspruch 5, wobei der Schritt des Beendens des Taktens der Daten-Bits aus dem asynchronen Datenstrom in das Register, wenn ein Fehler angezeigt ist, diese Schritte umfasst: Vergleichen des Register-Werts mit einem vorbestimmten Wert; und Beenden des Taktens der Daten-Bits aus dem asynchronen Datenstrom in das Register, wenn der Register-Wert nicht gleich ist mit dem vorbestimmten Wert.
  8. Das Verfahren nach Anspruch 7, wobei der Schritt des Vergleichens des Register-Werts mit einem vorbestimmten Wert den Schritt des Vergleichens des Register-Werts mit einem vorbestimmten Wert umfasst, wobei der Vergleich stattfindet, wenn das Daten-Bit in das Register getaktet wird.
  9. Das Verfahren nach Anspruch 7, wobei der Schritt des Vergleichens des Register-Werts mit einem vorbestimmten Wert den Schritt des Vergleichens des Register-Werts mit einem vorbestimmten Wert umfasst, wobei der vorbestimmte Wert zumindest eines der folgenden Zeichen ist: A, a, T, t,/.
  10. Das Verfahren nach Anspruch 5, wobei dem Schritt des Bestimmens einer Dauer eines Daten-Bits innerhalb eines asynchronen Datenstroms diese Schritte vorangehen: Übertragen einer Befehls-Zeichenfolge von einem Personal-Computer; und Empfangen der Befehls-Zeichenfolge mit einem Modem.
  11. Ein System für das Feststellen der Geschwindigkeit eines asynchronen Datenstroms, unter Verwendung eines Mittels für das Erzeugen einer Daten-Bit Zeit, basierend auf einer Start-Bit Dauer, wobei das System gekennzeichnet ist durch: Mittel für das Bestimmen (505) der Dauer eines Daten-Bits das auf das Start-Bit folgt; Mittel für das Vergleichen (520) der Start-Bit Dauer mit der Dauer eines Daten-Bits das dem Start-Bit folgt; und Mittel, reagierend auf das Mittel für das Vergleichen, für das Anzeigen eines Fehlers (520), wenn die Start-Bit Dauer sich wesentlich unterscheidet von der Dauer des Daten-Bits das dem Start-Bit folgt.
  12. Das System nach Anspruch 11, wobei das Mittel für die Erzeugung einer Daten-Bit Zeit basierend auf einer Start-Bit Dauer umfasst: Mittel für das Bestimmen der Dauer des Start-Bits; und Mittel, reagierend auf das Mittel für das Bestimmen der Dauer des Start-Bits, für das Bestimmen einer Taktfrequenz für das Takten der Daten-Bits innerhalb eines asynchronen Datenstroms in ein Register.
  13. Das System nach Anspruch 11, wobei das Mittel für das Erkennen eines Fehlers in dem asynchronen Datenstrom, basierend auf den dem Start-Bit folgenden Daten, Mittel für das Vergleichen der dem Start-Bit folgenden Daten mit vorbestimmten Werten umfasst.
  14. Das System nach Anspruch 11, wobei das Mittel für das Vergleichen der dem Start-Bit folgenden Daten mit den vorbestimmten Werten Mittel für das Vergleichen der dem Start-Bit folgenden Daten mit einem Teil der vorbestimmten Werte umfasst.
DE69917624T 1998-03-16 1999-02-09 Automatische ratenerkennung für asynchrone serielle kommunikation Expired - Fee Related DE69917624T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/039,876 US6157689A (en) 1998-03-16 1998-03-16 Automatic speed detection for asynchronous serial communications
US39876 1998-03-16
PCT/US1999/002706 WO1999048244A2 (en) 1998-03-16 1999-02-09 Automatic speed detection for asynchronous serial communications

Publications (2)

Publication Number Publication Date
DE69917624D1 DE69917624D1 (de) 2004-07-01
DE69917624T2 true DE69917624T2 (de) 2004-09-30

Family

ID=21907807

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69917624T Expired - Fee Related DE69917624T2 (de) 1998-03-16 1999-02-09 Automatische ratenerkennung für asynchrone serielle kommunikation

Country Status (8)

Country Link
US (1) US6157689A (de)
EP (1) EP1070410B1 (de)
CN (1) CN1293852A (de)
AU (1) AU2663999A (de)
BR (1) BR9908831A (de)
DE (1) DE69917624T2 (de)
EE (1) EE200000542A (de)
WO (1) WO1999048244A2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581100B1 (en) * 1998-09-18 2003-06-17 Skyworks Solutions, Inc. System and method for communication parameter determination
JP3565730B2 (ja) * 1999-01-13 2004-09-15 株式会社リコー Atコマンド解析装置
US6687232B1 (en) * 2000-01-14 2004-02-03 Adtran, Inc. Subscriber loop terminal equipment-resident mechanism for determining bit rate of high-level data link control communication channel
DE60024404T2 (de) * 2000-02-02 2006-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Vorrichtung zur Vorverzerrung eines digitalen Signales
US6850561B1 (en) * 2000-03-21 2005-02-01 Advanced Micro Devices, Inc. Predictable updating of a baud divisor of an asynchronous serial port during data reception
US7017056B1 (en) 2000-07-31 2006-03-21 Hewlett-Packard Development Company, L.P. Method and apparatus for secure remote control of power-on state for computers
US6944248B2 (en) * 2001-05-17 2005-09-13 Bluebrook Associates Llc Data rate calibration for asynchronous serial communications
CN100442259C (zh) * 2002-10-18 2008-12-10 Nxp股份有限公司 处理输入比特的数据处理设备
CN100392605C (zh) * 2002-12-03 2008-06-04 Adc长途电讯有限公司 测量通信链路中的差错率
US7333536B2 (en) * 2003-10-09 2008-02-19 Stmicroelectronics Pvt. Ltd. System and method for auto baud rate detection in asynchronous serial communication
GB0414793D0 (en) 2004-07-01 2004-08-04 Ttp Communications Ltd Determining characteristics of communications signals
US7904631B2 (en) * 2006-11-02 2011-03-08 Honeywell International Inc. Protocol independent bridge
CN101645752B (zh) * 2008-08-08 2013-01-09 鸿富锦精密工业(深圳)有限公司 通信协议自动侦测系统及方法
JP5351301B2 (ja) * 2012-03-19 2013-11-27 ファナック株式会社 Ioユニットにより時間計測を行う数値制御システム
CN103001734B (zh) * 2012-10-17 2015-05-06 海军工程大学 一种基于电平采样的异步串口通信协议自动侦测方法
CN104360974A (zh) * 2014-10-29 2015-02-18 上海伽利略导航有限公司 一种异步串口uart自动波特率调整方法及装置
CN105871655B (zh) * 2016-03-24 2019-03-29 哈尔滨工业大学 一种应用于串行总线分析仪器的波特率估计ip核系统
US10153892B2 (en) * 2016-07-15 2018-12-11 New Jersey Institute Of Technology Asynchronous wireless sensing
KR20190091929A (ko) * 2018-01-30 2019-08-07 엘에스산전 주식회사 Uart 통신속도 자동 전환 방법
CN110275851B (zh) * 2019-07-19 2020-02-07 广州波视信息科技股份有限公司 一种数据串并转换装置、延时器及数据处理方法
US20220061008A1 (en) * 2020-08-21 2022-02-24 Advanced Energy Industries, Inc. Uart transmissions with two start bits for automatic baud detection and reduced clock skew
CN113922924B (zh) * 2021-10-08 2024-08-09 中国兵器装备集团自动化研究所有限公司 一种基于spi的绝对值编码器通信方法及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3689846A (en) * 1971-03-30 1972-09-05 Burroughs Corp Start bit detection circuit
US4586189A (en) * 1984-02-16 1986-04-29 Itt Corporation Asynchronous to synchronous data interface
JPH0748779B2 (ja) * 1987-09-01 1995-05-24 株式会社村田製作所 モデム装置
KR900005313A (ko) * 1988-09-14 1990-04-14 존 지.웨브 16비트 데이타 버스에 바이트폭 uart 전송을 이행하는 방법 및 장치
US5140679A (en) * 1988-09-14 1992-08-18 National Semiconductor Corporation Universal asynchronous receiver/transmitter
US5008902A (en) * 1989-01-25 1991-04-16 International Business Machines Corp. Automatic baud rate detection
US5072407A (en) * 1990-01-08 1991-12-10 Gandalf Technologies, Inc. Serial data rate detection method and apparatus
JPH04167738A (ja) * 1990-10-31 1992-06-15 Nec Corp 調歩同期通信速度検出装置
JP2641999B2 (ja) * 1991-05-10 1997-08-20 日本電気株式会社 データ・フォーマット検出回路
US5222081A (en) * 1991-06-28 1993-06-22 Universal Data Systems, Inc. Method of performing an autobaud function using a state flow machine
US5627858A (en) * 1992-07-20 1997-05-06 Telefonaktiebolaget L M Ericsson Multi-channel autobauding circuit
US5490209A (en) * 1994-02-09 1996-02-06 Harris Corporation Autobaud rate detection mechanism
US5654983A (en) * 1994-06-10 1997-08-05 Hayes Microcomputer Products, Inc. Method and apparatus of operating data communications equipment in command mode and autobauding
US5649122A (en) * 1994-06-24 1997-07-15 Startech Semiconductor, Inc. Universal asynchronous receiver/transmitter with programmable xon/xoff characters

Also Published As

Publication number Publication date
CN1293852A (zh) 2001-05-02
BR9908831A (pt) 2000-11-21
EP1070410B1 (de) 2004-05-26
EP1070410A2 (de) 2001-01-24
WO1999048244A2 (en) 1999-09-23
WO1999048244A3 (en) 1999-11-04
US6157689A (en) 2000-12-05
AU2663999A (en) 1999-10-11
DE69917624D1 (de) 2004-07-01
EE200000542A (et) 2002-04-15

Similar Documents

Publication Publication Date Title
DE69917624T2 (de) Automatische ratenerkennung für asynchrone serielle kommunikation
DE3889142T2 (de) Asynchrone Schnittstelle und Verfahren zur Datenkopplung zwischen einem Datenmodul und einem seriellen, asynchronen Pheripheriegerät.
DE3845018B4 (de) Basisstation für ein drahtloses digitales Telefonsystem
DE3300262C2 (de)
DE3136128C2 (de)
DE3204905C2 (de)
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE3300260A1 (de) Schaltungsanordnung zur zuteilung des zugriffs zu einer auf anforderungsbasis gemeinsam benutzten sammelleitung
EP2619935B1 (de) Vorrichtung und verfahren zur bereitstellung einer globalen zeitinformation in ereignisgesteuerter buskommunikation
CH644235A5 (de) Steuerungsadapter fuer uebertragungsleitungen.
DE3941252C2 (de)
DE69223428T2 (de) Datenkommunikationssystem auf einer Serienbusbasis und Überwachungsstation zur Verwendung mit einem derartigen System
DE69227996T2 (de) Vorrichtung und verfahren zur vermittlung von datenblöcken
DE69028498T2 (de) Datenübertragungssystem und -verfahren
EP0689747B1 (de) Bitratenerkennung
DE3209037C2 (de)
DE2824578C2 (de)
DE3635106A1 (de) Kommunikationsverfahren und -system fuer serielle daten
DE69029385T2 (de) Vorrichtung zur seriellen signalübertragung und verfahren zum steuern der polaritätsfestlegung
DE3751882T2 (de) Serieller Datenbus für Datenübertragung zwischen Modulen und Verfahren zur Datenarbitrierung und zur Kollisionsdetektion auf einem Datenbus
DE69727921T2 (de) Verfahren und schnittsstellenschaltung für multiplex-kommunikation
DE69325359T2 (de) Verfahren und mittel für automatische detektion und korrektur eines polaritätsfehlers in einem aus verdrillten paaren bestehenden medium
DE69924549T2 (de) Verfahren und Gerät zur automatischen Änderung der Verbindungsgeschwindigkeit in einem Netz-Repeater
DE3889334T2 (de) Verfahren und vorrichtung zur feststellung des anfangs einer nachricht.
DE69936716T2 (de) Verfahren und gerät zum datenaustausch

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee