HF-Entwicklungsleitfaden

Datenschnittstellen

Einführung

Funkmodule haben die Aufgabe, die Kommunikation zwischen zwei Geräten über Funk zu ermöglichen. Sie enthalten zwar alle dafür erforderlichen HF-Schaltkreise in einem einzigen Gehäuse, müssen aber dennoch an eine Host-CPU angeschlossen werden, damit Daten ein- oder ausgegeben werden können. Während der Übertragung sendet die CPU Daten an das Dateneingabe-Terminal des Funkmoduls, und beim Empfang empfängt sie Daten vom Datenausgabe-Terminal. Ein Beispiel für eine CPU-Verbindung zeigt die folgende Abbildung für das Circuit Design-Modul MU-4, und Beispiele für SLR-434M-Verbindungen finden Sie hier.

Verbindung MU-4 mit einer CPU. Sendedaten werden an MU-4 RXD eingegeben und Empfangsdaten werden von MU-4 TXD ausgegeben. Verschiedene Steuersignale (z. B. CTS-, RTS-Leitungen sind enthalten)

 

UART-Schnittstelle

UART ist die Abkürzung von Universal Asynchronous Receiver Transmitter; den Begriff gibt es seit den 1960ern. Es handelt sich um ein Hardware-Element, das die asynchrone Kommunikation zwischen 2 Geräten ermöglicht. Der Begriff „asynchron“ bedeutet, dass sowohl der Sender als auch der Empfänger kein externes Taktsignal verwenden. Ein Taktsignal ist wichtig, weil der Empfänger Zeitinformationen benötigt, um das Signal korrekt zu lesen und festzustellen, ob ein Bit HIGH oder LOW war.

Bevor Daten eintreffen, wird die Empfangsleitung auf HIGH (“idle”) gehalten. Ein START-Bit sagt dem Empfänger, dass in Kürze ein Paket ankommt, was dazu führt, dass die Leitung von HIGH auf LOW wechselt. Der Empfänger erkennt diese Änderung und nutzt sie, um die korrekten Zeitinformationen zu ermitteln, so dass das Bit wie unten gezeigt immer in der Mitte abgetastet wird. Ein STOPP-Bit signalisiert dem Empfänger das Ende eines Frames mit dem optionalen Paritätsbit (PB) davor zur grundlegenden Fehlererkennung.

UART-Frame mit 8 Bit oder 1 Byte und zusätzlichem Paritätsbit. 8 Bits reichen aus, um alphanumerische Zeichen zu kodieren, wie sie in ASCII verwendet werden.

Eine CPU kann mehrere UART-Peripheriegeräte für serielle Kommunikation mit anderen Geräten wie z. B. einem PC oder irgendeinem Gerät mit serieller Schnittstelle enthalten. Ein Gerät hat einen Anschluss zum Senden (normalerweise “TXD”) und einen Anschluss zum Empfangen (normalerweise “RXD”), was eine bidirektionale Kommunikation ermöglicht. UART-Bitrate, Datenlänge, Paritätsbit, Stoppbit und Flusskontrolle können vom Anwender konfiguriert werden.

Steuersignale

Die UART-Kommunikation kann einfach über die Leitungen TXD, RXD und GND hergestellt werden. Damit sich die beiden Geräte jedoch darauf verständigen können, wann sie Daten senden und empfangen sollen, müssen einige Steuersignale zwischen beiden Geräten ausgetauscht werden. Dies ist gängige Praxis, da ein Gerät vielleicht beschäftigt ist oder einer der Empfangspuffer des Geräts voll ist. Ohne Steuerung oder Hardwarefluss können Daten verloren gehen. Daher enthalten UART-Peripheriegeräte 2 zusätzliche Leitungen, die als CTS (Clear to Send) und RTS (Request to Send) bekannt sind. Wenn ein Gerät bereit ist, Daten zu empfangen, sendet es ein ” Request to Send”-Signal von seinem RTS-Anschluss an den CTS-Anschluss des zweiten Geräts.

MU-4 mit CTS und RTS (in rot) zusammen mit TXD und RXD.

UART und RS232

RS232 steht für “Recommended Standard 232“ und wurde früher verwendet, um die Kommunikation zwischen PC und Peripheriegeräten wie z. B. einem Modem zu ermöglichen. RS232 wurde größtenteils durch den bekannteren USB (Universal Serial Bus) ersetzt, findet aber noch Verwendung bei Maschinenkommunikation, Punkt-zu-Punkt Verbindungen und anderen Bereichen mit geringerer Geschwindigkeit und kürzeren Reichweiten. Es handelt sich um eine Form der seriellen Kommunikation, die häufig mit UART verknüpft ist. Bei RS232 werden jedoch ausdrücklich die zu verwendenden Spannungspegel, Anstiegsgeschwindigkeiten, Stiftdefinitionen und Steckertypen angegeben. Unten sehen Sie eine Aufzeichnung eines RS232-Signals.

 

RS232 vom PC. (Übertragung des Zeichens ‘a’ oder 0x61 bei 9600 bps, keine Parität, 1 Stoppbit). Beachten Sie, dass bei RS232 ein invertiertes Verhältnis zwischen Bitsymbol und Spannungspegel besteht.

 

 

Die MU-4 Testplatine verwendet RS232 für den Anschluss an einen Host-PC über einen 9-poligen DE-9-Stecker.

Obwohl die RS232-Schnittstelle im Laufe der Zeit verbessert wurde, ist sie aufgrund ihres Aufbaus in Bezug auf die Entfernung (ursprünglich unter 15 m) und die Bitrate (ursprünglich unter 20 kbit/s) begrenzt. Außerdem war sie auf eine 1:1-Kommunikation zwischen Geräten bei Vollduplex beschränkt.

Weitere Verbesserungen kamen mit der Entwicklung der Schnittstellen RS422 und RS485, die eine Differenzialsignalisierung einführten, mit der viel größere Entfernungen und höhere Bitraten erreicht werden konnten. Mehrpunkt-Kommunikation, 1:N (RS422) und M:N (RS485) wurde mit Vollduplex-Fähigkeit möglich.

Da RS232 nur Hardwareprotokolle vorschreibt, ist es möglich, dass UART-Peripherieelemente RS232-Signale ansteuern und z. B. mit Hilfe von Terminalsoftware mit dem PC kommunizieren. Also können Circuit Design Module wie MU-4 von einem PC und einem Anwenderprogramm angesteuert werden. Es ist jedoch Vorsicht geboten, da die RS232-Spannungen viel höher sind (und zudem invertiert sind) als bei UART und eine Schnittstelle (z. B. ADM3222 IC) erforderlich ist. Ein direkter Anschluss des Funkmoduls oder einer CPU mit RS232-Signalen führt wahrscheinlich zu Schäden.

Synchrone Kommunikation

Wir haben bereits erwähnt, dass UART kein externes Taktsignal zur Synchronisierung von Sender und Empfänger verwendet. Der Empfänger verwendet das START-Bit in den Daten, um Zeitinformationen zu extrahieren. Wenn ein externer Takt verwendet wird, wird die Schnittstelle als synchron bezeichnet. Da das Timing zwischen Sender und Empfänger nun über das Taktsignal abgestimmt ist, ist es nicht notwendig, die START- und STOPP-Bits in die Daten aufzunehmen. Das reduziert die zu übertragende Datennutzlast. Natürlich braucht es neben TXD und RXD noch eine dritte Signalleitung (Takt). Ein Beispiel für ein Circuit Design Modul, das eine synchrone Schnittstelle verwendet, ist STD-503.

STD-503 mit synchroner Schnittstelle (in rot dargestellt). Der serielle Eingang und Ausgang der CPU wird als „SI“ und „SO“ bezeichnet.

Beispiele für Standards

Beispiele für synchrone Kommunikation sind SPI (serial peripheral interface), das in den 1980er Jahren von Motorola entwickelt wurde, und das von Philips Semiconductors 1982 entwickelte I2C („I squared C“ ausgesprochen). Im Internet gibt es viele Artikel mit Details zu diesen und anderen Standards.

Wenn der UART einer CPU die Möglichkeit der synchronen Kommunikation mit einem separaten Taktgeber bietet, wird er als USART (Universal Synchronous Asynchronous Receive Transmit) bezeichnet und enthält einen Anschluss für ein Taktsignal.

Transparente Schnittstelle

Die Produkte von Circuit Design werden als „transparent“ bezeichnet. Das bedeutet der Anwender kann ein eigenes Funkprotokoll entwickeln, anstatt einem Protokoll eines bestimmten Geräts zu folgen. Aus der Sicht des HF-Moduls kann dies bedeuten: “Was rein geht, kommt auch wieder raus”.

Die Modems SLR-434M und MU-4 von Circuit Design sind allerdings nicht transparent (MU-4 hat die Option für eine transparente Schnittstelle), so dass der Anwender dem von Circuit Design vorgeschriebenen Befehlssteuerungsprotokoll folgen muss. Um das zu verstehen, können wir uns das Befehlsprotokoll das MU-4 zum Senden von Daten näher ansehen.

Befehlsprotokoll zum Senden von Daten mit MU-4

Im obigen Beispiel sind die Anwenderdaten, die wir senden wollen, die Zeichen ‘A’, ‘B’, ‘C’, ‘D’, ‘E’. Wenn wir diese im Befehlsmodus senden wollen, müssen wir das von Circuit Design vorgegebene Protokoll befolgen. Dies bedeutet, dass die Nutzdaten mit zusätzlichen Bytes ‘@’, ‘D’, ‘T’, ‘0’, ‘5’, ‘CR’, ‘LF’ aufgefüllt werden, um einen Datenrahmen zu erstellen. So kann der Anwender unser Befehls- und Protokollformat für eine einfache Steuerung und eine zuverlässige HF-Kommunikation einbinden.