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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus 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...
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)
- 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.
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)
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 |
-
2002
- 2002-06-12 DE DE2002126834 patent/DE10226834B4/de not_active Expired - Fee Related
Patent Citations (3)
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 |