DE10226834B4 - Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem - Google Patents

Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem Download PDF

Info

Publication number
DE10226834B4
DE10226834B4 DE2002126834 DE10226834A DE10226834B4 DE 10226834 B4 DE10226834 B4 DE 10226834B4 DE 2002126834 DE2002126834 DE 2002126834 DE 10226834 A DE10226834 A DE 10226834A DE 10226834 B4 DE10226834 B4 DE 10226834B4
Authority
DE
Germany
Prior art keywords
uart
data
transmission
transmitter
interrupt
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
DE2002126834
Other languages
English (en)
Other versions
DE10226834A1 (de
Inventor
Thomas Falkner
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE2002126834 priority Critical patent/DE10226834B4/de
Publication of DE10226834A1 publication Critical patent/DE10226834A1/de
Application granted granted Critical
Publication of DE10226834B4 publication Critical patent/DE10226834B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem,
wobei
a) der UART auf eine Datenwortlänge eingestellt ist derart, daß er mit der Aussendung eines Datenwortes exakt ein Datenpaket des MOTOROLA-Formates MC 145026 nachbildet,
b) der UART während der erforderlichen Übertragungspausen weiterhin kontinuierlich Signale in Form von Dummydaten erzeugt, die der Gesamtlänge der gewünschten Übertragungspause entsprechen,
c) die Signale schaltungstechnisch unterdrückt werden derart, daß die unterdrückten Signale nicht an den Empfänger gelangen,
d) nach der vollständigen Aussendung der jeweiligen Dummydaten ein Transmitter-Empty-Interrupt ausgelöst wird,
e) ein Steuerungsprogramm in Reaktion auf den Transmitter-Empty-Interrupt die logisch folgenden Nutz- oder Dummydaten sendet und damit einen kontinuierlichen und zeitlich exakten Datenstrom gewährleistet,
f) die schaltungstechnische Unterdrückung derart erfolgt, daß eine dem UART in der Datenleitung nachgeschaltete Schaltstufe die Signalweiterführung während der Übertragungspausen unterdrückt, indem...

Description

  • Das Verfahren dient zur Erzeugung von binären, seriellen Datenströmen mittels eines UARTs [1] auf Computern mit einem Multitasking-Betriebssytem. Insbesondere sollen Datenströme generiert werden, für dessen Erzeugung ein UART gewöhnlich nicht konstruiert wurde, z. B. Motorola MC 145026 [2], DCC nach NRMA [3] etc..
  • Grundsätzlich ist ein UART für die Erzeugung von Datenströmen komplexeren Formats unter folgenden Bedingungen geeignet. Das zu erzeugende Format muss bezüglich des Zeitrahmens den technischen Möglichkeiten des UARTs entsprechen. D. h. die Längen der Datenbits und deren Anzahl und Kombinationen müssen bei entsprechender Einstellung des UARTs bezüglich Baudrate, Anzahl Datenbits, Start-, Stop- und Paritätbits durch den UART erzeugbar sein. Sollte das Format des Datenstroms zwischen einzelnen Datenpaketen Übertragungspausen fordern, so stellt dies bei Systemen mit einem nicht multitaskingfähigen Betriebssystem kein Problem dar, weil das für die Datengenerierung verantwortliche Steuerungsprogramm lediglich während der Ausführung für eine entsprechende Verzögerung sorgen muss. Da auf einem solchen System das Programm die alleinige, volle Kontrolle über den Prozessor besitzt, ist eine derartige Verzögerung relativ exakt möglich. Soweit ist dies Stand der Technik und wird in einigen Projekten [4] auf Computern mit nicht multitaskingfähigen Betriebssystemen, z. B. MSDOS [5], angewandt.
  • Die bisher bekannten Ausführungen funktionieren jedoch nicht stabil unter Multitasking-Betriebssytemen.
  • Das Problem liegt darin, dass die durch das Format geforderten zeitlich exakten Übertragungspausen zwischen den einzelnen Datenpaketen auf Multitasking-Betriebssytemen wegen der Taskwechsel nicht mit der notwendigen Genauigkeit eingehalten werden können. Vorhandene Timer des Systems besitzen oft nicht die ausreichende Exaktheit. Zeitverzögerungsroutinen des Betriebssystems, die auf einer fortwährenden Zeitmessung beruhen, belasten den Prozessor meist unverhältnismässig hoch.
  • Aus der Patentschrift US 5,742,502 A ist ein Verfahren bekannt zur Erzeugung von Datenströmen mit einem PC, der mit UARTs ausgerüstet ist. Dabei wird durch den Einsatz eines Zeitgeberschaltkreises erreicht, dass eine synchrone Datenübertragung mit Hilfe eines asynchronen Senders/Empfängers erfolgen kann.
  • Aus der Patentschrift US 5,903,601 A ist ein Verfahren bekannt zur Verhinderung von Datenverlusten bei einem Übergang eines UARTs von einem Ruhezustand in einen Normalzustand. Hierzu wird unter Zuhilfenahme eines Oszillators und eines Synchronisators ein besonders schneller Übergang des UARTs in den bzw. aus dem Ruhezustand ermöglicht.
  • Aus der Patentschrift US 5,682,508 A ist ein Verfahren bekannt, bei dem unter Verwendung eines UARTs ein schnelles Antworten eines Host-Rechners auf eine Anfrage eines langsameren Client-Rechners verhindert wird, indem ein Dummybyte gesendet wird.
  • Das oben beschriebene Problem wird durch die Merkmale des Patentanspruchs 1 gelöst; der UART erzeugt wahrend der notwendigen Übertragungspausen weiterhin Signale, die der Gesamtlänge der gewünschten Übertragungspause entsprechen. Diese Signale werden jedoch schaltungstechnisch unterdrückt und gelangen somit nicht an den Empfänger. Die Unterdrückung erfolgt ausserhalb des UARTs, indem eine dem UART nachgeschaltete Schaltstufe die Signalweiterführung während der Pausen unterbricht. Eine Unterdrückung der Dummydaten ist deshalb notwendig, da selbst bei der Aussendung von nullwertigen Datenbits durch den UART Start- und Stopbits erzeugt werden, die die gewünschte Übertragungspause unterbrechen würden. Weil der UART während der Pausen weiterhin Daten aussendet, kann bei entsprechender Programmierung sichergestellt werden, dass nach der vollständigen Aussendung der jeweiligen Dummydaten ein Transmitter-Empty-Interrupt ausgelöst wird. In Reaktion auf den Interrupt kann das Steuerungsprogramm die logisch folgenden Nutz- oder Dummydaten senden und somit einen kontinuierlichen und zeitlich exakten Datenstrom gewährleisten. Der UART wird bei diesem Vorgehen gewissermassen als Timer für die Übertragungspausen zweckentfremdet. Sollte der UART bauartbedingt den Transmitter-Empty-Interrupt bereits dann auslösen, wenn mit der Übertragung des aktuellen Datenpaketes gerade begonnen wurde, so spielt dies für die grundsätzliche Vorgehensweise keine Rolle. Lediglich die ausgesendeten Daten hängen dabei zeitlich dem Steuerungsprogramm maximal um ein Datenpaket hinterher. Das Steuerungsprogramm muss dies bei der Steuerung der synchronen Unterdrückung der Dummydaten berücksichtigen.
  • Bei diesem Verfahren sind alle Pausenlängen möglich, die sich kombinatorisch aus der Länge der Datenbits sowie der Start-, Stop- und Paritätsbits bei verschiedenen für den UART zulässigen Baudraten ergeben. Desweiteren können mehrere Pausen unterschiedlicher Länge hintereinander zu einer längeren Pause verbunden werden. Pausenlängen, die einzeln durch kein entsprechendes Dummydatenpaket erzielt werden können, sind oftmals aus mehreren kürzeren Pausen zusammensetzbar. Es ist dabei durchaus möglich, Datenpakete unterschiedlicher Parameter, z. B. unterschiedlicher Baudraten, hintereinander zu erzeugen.
  • Im folgenden wird konkret die Erzeugung des Motorola-Formats MC 145026 [2] auf einem PC [7] mit UART 16550[8] unter dem Betriebssytem Microsoft Windows [9] erläutert.
  • Das Motorola-Format ist in Diagramm 1 schematisch dargestellt. Jeweils neun gleich lange Datenpakete (1–9) bilden eine Datengruppe. Zwischen den Datengruppen sind zeitlich definierte Pausen vorgeschrieben. Die Datenübertragung kann aus beliebig vielen aufeinander folgenden Datengruppen bestehen. In Diagramm 1 sind auszugsweise die Datengruppen D1 bis D3 mit den dazwischen liegenden Pausen P1 und P2 dargestellt. Die logische Bedeutung und der interne Aufbau der Datenpakete sind für die weitere Betrachtung unerheblich. Um nun zu verdeutlichen, wie der Datenstrom durch den UART erzeugt wird, ist in den Diagrammen 2 bis 4 ein Zeitausschnitt aus Diagramm 1 genauer dargestellt. Es sind die Datenpakete 8 und 9 aus Datengruppe 2 und die Datenpaket 1 und 2 aus Datengruppe 3, sowie die Pause P2 zu sehen. Das Signal, welches der UART erzeugt, ist in Diagramm 3 ersichtlich. Der UART, bei einem PC in der Regel ein 16550 oder ein kompatibeler Nachfolger, wird auf die Datenwortlänge von 6 Bits, ein Start- und ein Stopbit eingestellt. Somit kann der UART mit der Aussendung eines Datenwortes exakt ein Datenpaket des Motorola-Formates nachbilden. Die Baudrate des UARTs muss so gewählt werden, dass das erzeugte Motorola-Signal bezüglich der Geschwindigkeit zur Taktfrequenz des Empfängers passt. Wichtig ist zu sehen, dass der UART auch während der Pause P2 weiterhin kontinuierlich Daten sendet. Im konkreten Beispiel handelt es sich um 3 Datenwörter. Um zu verhindern, dass diese Daten an den Empfänger gelangen, gibt es zwei Möglichkeiten. Die erste Möglichkeit beruht darauf, den UART während der Aussendung der Dummydaten in den Testmodus (loopback [6]) zu setzen. Dabei wird der Ausgang des UARTs mit dessen Eingang intern verbunden und der Ausgangspin des UARTs auf low gesetzt. Leider werden bei dem Testmodus auch die Pins Out 1[10] und Out 2[10] des UARTs auf low gesetzt. Dies bewirkt bei einem PC, dass aufgrund der externen Beschattung des UARTs die Interruptleitung zum Interruptcontroller unterbrochen wird. Gerade aber erst das Reagieren auf einen Transmitter-Empty-Interrupt des UARTs durch das Steuerungsprogramm ermöglicht einen fortlaufenden konstanten Datenstrom. Somit ist diese Variante der Unterdrückung auf einem PC ungeeignet. Die Alternative besteht nun darin, dem UART in der Datenleitung eine Schaltstufe nachzuordnen, deren Aufgabe es ist, die Datenleitung während der Pause zu unterbrechen. Das Ansteuerungssignal der Schaltstufe ist in Diagramm 4 dargestellt. Je nach konkreter Ausführung der Schaltstufe kann ggf. eine Negierung des Ansteuerungssignals erforderlich sein. Die Synchronisation des Ansteuerungssignals zum Ausgangssignal des UARTs übernimmt die Steuerungssoftware. Diese muss auf den jeweiligen Transmitter-Empty-Interrupt entsprechend reagieren. Zweckmässigerweise kann die Schaltstufe mit einen freien Schaltausgang des UARTs, z. B. RTS [11], verbunden und somit über den UART mit angesteuert werden. Physikalisch kann die Schaltstufe z. B. als Transistor in dem RS-232-Stecker oder in dem Verbindungskabel zum Empfänger realisiert werden.
  • Unter Windows NT und dessen Nachfolger ist der normalen Anwendungssoftware kein direkter Zugriff auf die Hardware gestattet. Auch unter Windows 95/98/Me ist der Zugriff nur beschränkt möglich. Hier können zwar die Ports direkt erreicht werden, aber die Interrupts können nicht ordnungsgemäss behandelt werden. Deshalb ist bei dem beschriebenen Verfahren das Entwickeln spezieller Treibersoftware für den UART notwendig.
  • Der Vorteil des Verfahrens besteht darin, dass auf jedem Computer mit einem UART auch unter einem Multitasking-Betriebssystem Datenströme erzeugt werden können, für dessen Erzeugung ansonsten eine externe Hardware notwendig wäre.
  • Fussnoten:
    • [1] Universal Asynchronous Receiver-Transmitter
    • [2] Format entsprechend Motorola-Schaltkreisfamilie MC 145026 bis –29
    • [3] DCC (Extended Packet Formats For Digital Command Control) nach NMRA (National Model Railroad Association) ht://www.nrma.com
    • [4] z. B.: Digitale Modellbahnsteuerung mit einem PC, Dr. Konrad Froitrheim, http://rrvs.informatik.uniulm.de/rr/docs/Maedig/Maedig.html
    • [5] MSDOS (Microsoft Disk Operating System), eingetrageneMarke von Microsoft Corporation
    • [6] ”Iocal loopback feature” für Testzwecke, z. B. bei UART 16550
    • [7] Standard Personal Computer nach IBM-Spezifikationen
    • [8] UART PC 16550, National Semiconductor Corporation
    • [9] Windows, eingetragene Marke von Microsoft Corporation
    • [10] Out 1 und Out 2 sind zusätzliche frei schaltbare Ausgänge des UARTs 16550
    • [11] Ready to send

Claims (1)

  1. Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem, wobei a) der UART auf eine Datenwortlänge eingestellt ist derart, daß er mit der Aussendung eines Datenwortes exakt ein Datenpaket des MOTOROLA-Formates MC 145026 nachbildet, b) der UART während der erforderlichen Übertragungspausen weiterhin kontinuierlich Signale in Form von Dummydaten erzeugt, die der Gesamtlänge der gewünschten Übertragungspause entsprechen, c) die Signale schaltungstechnisch unterdrückt werden derart, daß die unterdrückten Signale nicht an den Empfänger gelangen, d) nach der vollständigen Aussendung der jeweiligen Dummydaten ein Transmitter-Empty-Interrupt ausgelöst wird, e) ein Steuerungsprogramm in Reaktion auf den Transmitter-Empty-Interrupt die logisch folgenden Nutz- oder Dummydaten sendet und damit einen kontinuierlichen und zeitlich exakten Datenstrom gewährleistet, f) die schaltungstechnische Unterdrückung derart erfolgt, daß eine dem UART in der Datenleitung nachgeschaltete Schaltstufe die Signalweiterführung während der Übertragungspausen unterdrückt, indem sie die Datenleitung während dieser Übertragungspausen unterbricht, g) die Schaltstufe mit einem freien Schalteingang des UARTs verbunden und über den UART ansteuerbar ist und h) die Synchronisation des Ansteuerungssignals zum Ausgangssignal des UARTs durch die Steuerungssoftware erfolgt, die auf den jeweiligen Transmitter-Empty-Interrupt reagiert.
DE2002126834 2002-06-12 2002-06-12 Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem Expired - Fee Related DE10226834B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2002126834 DE10226834B4 (de) 2002-06-12 2002-06-12 Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002126834 DE10226834B4 (de) 2002-06-12 2002-06-12 Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem

Publications (2)

Publication Number Publication Date
DE10226834A1 DE10226834A1 (de) 2004-01-15
DE10226834B4 true DE10226834B4 (de) 2010-09-16

Family

ID=29723192

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002126834 Expired - Fee Related DE10226834B4 (de) 2002-06-12 2002-06-12 Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem

Country Status (1)

Country Link
DE (1) DE10226834B4 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682508A (en) * 1995-03-23 1997-10-28 Onset Computer Corporation UART protocol that provides predictable delay for communication between computers of disparate ability
US5742502A (en) * 1995-04-25 1998-04-21 Motorola, Inc. Method and apparatus for generating synchronous data transmissions in a device having a universal asynchronous receiver/transmitter
US5903601A (en) * 1996-12-17 1999-05-11 Texas Instruments Incorporated Power reduction for UART applications in standby mode

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682508A (en) * 1995-03-23 1997-10-28 Onset Computer Corporation UART protocol that provides predictable delay for communication between computers of disparate ability
US5742502A (en) * 1995-04-25 1998-04-21 Motorola, Inc. Method and apparatus for generating synchronous data transmissions in a device having a universal asynchronous receiver/transmitter
US5903601A (en) * 1996-12-17 1999-05-11 Texas Instruments Incorporated Power reduction for UART applications in standby mode

Also Published As

Publication number Publication date
DE10226834A1 (de) 2004-01-15

Similar Documents

Publication Publication Date Title
DE102005046350B4 (de) Anordnung bei einer CAN-Verbindung in einem CAN-System
DE19733748C2 (de) Datenübertragungsvorrichtung
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE102005053103B4 (de) Verfahren sowie System zur Übertragung von zyklischen und azyklischen Daten
DE60119805T2 (de) Verfahren zur seriellen Datenübertragung zwischen zwei elektronischen Busstationen und Busstation zur Verwendung in demselben Verfahren
EP0297492B1 (de) Verfahren zur Prüfung eines Netzwerkaufbaus
EP0021290B1 (de) Verfahren und Schaltungsanordnung zur Synchronisierung bei der Übertragung von digitalen Nachrichtensignalen
DE102018009228A1 (de) IO-Link Scanner und Anzeiger
EP3378212B1 (de) Verfahren zum betreiben eines kommunikationsnetzwerkes, steuervorrichtung und datenverarbeitungsvorrichtung
DE10226834B4 (de) Verfahren zur Erzeugung von binären, seriellen Datenströmen, entsprechend Protokollen, die zeitlich exakte Übertragungspausen erfordern, mittels eines UARTs auf Computern mit einem Multitasking-Betriebssystem
EP1357707B1 (de) Verfahren zur Übertragung von Nachrichten auf einem Bussystem
DE19834419C2 (de) Mikrocomputer-Rücksetzvorrichtung und Mikrocomputer-Rücksetzverfahren
EP3632053B1 (de) Verarbeitung von prozessdaten
EP2801915A1 (de) Adaptives Interface zur Kopplung von FPGA-Modulen
DE102018106085B3 (de) Interfaceschaltung
EP1563626B1 (de) Verfahren zur übertragung von heterogenen daten in einer telekommunikationsanlage und eine telekommunikationsanlage
DE3232681A1 (de) Betriebsueberwachung von digitalen uebertragungsstrecken
DE10206904A1 (de) Kommunikation in einem verteilten Steuerungssystem mit Unterdrücken der zyklischen Kommunikation nach Äquidistanzverletzung
DE10310622B4 (de) Verfahren und Datenübertragungsanlage zur bidirektionalen, synchronen Datenübertragung
EP2822230B1 (de) Datenübertragung über einen Speicher einer Kommunikationsvorrichtung
EP0226966B1 (de) Verfahren und Anordnung zur Übertragung von Informationen zwischen Teilnehmern an einem Bussystem
DE10308510B3 (de) Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur
DE3610523C2 (de)
EP3632066B1 (de) Vorladen von instruktionen
DE4226876C2 (de) Serielles BUS-System

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8122 Nonbinding interest in granting licenses declared
8120 Willingness to grant licenses paragraph 23
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120103