UART

Aus c't-Bot Wiki
Wechseln zu: Navigation, Suche

Einleitung

Zur Kommunikation mit der Außenwelt steht dem c't-Bot (genauer gesagt dessen Mikrocontroller) ein UART-Kommunikationsmodul zur Verfügung. UART ist eine Abkürzung und bedeutet: Universal Asynchronous Receiver Transmitter. Übersetzt bedeutet das Universeller asynchroner Empfänger und Sender. Die Datenübertragung erfolgt seriell. Asynchron bedeutet, es wird kein Takt mitübertragen, der Empfänger muß anhand der Daten den Takt rückgewinnen. Typische Anwendung einer UART ist z.B. die RS232 Schnittstelle.

Die UART beim c't-Bot

Beim c't-Bot liegen die UART-Signale nur als TTL-Pegel auf dem Steckverbinder J4 an. D.H. man darf die Signale nicht direkt an eine RS232 Schnittstelle anschließen, weil die Pegel auf der RS232 Seite zwischen +12V und -12V liegen. Über eine geeignete Erweiterungsschaltung kann daran ein RS232-Modul, ein USB-Modul oder ein Funk-Modul angeschlossen werden. Damit kann der c't-Bot eine Verbindung zum c't-Sim herstellen. Die Schnittstellenparameter für den UART des c't-Bots sind 9600Baud, no Parity, 8 Datenbits und 1 Stop-Bit (9600,n,8,1). D.H. es werden 9600 Bits pro Sekunde übertragen, 1 Datenwort ist 8 Bit breit, es gibt kein Parity Bit und 1 Stop-Bit. Das ergibt 960 Zeichen pro Sekunde, bzw. 1 Zeichen wird in 1,04ms übertragen. Andere gängige Übertragungsraten sind 19200 und 38400 Baud.

Steckerbelegung J4

Pin Funktion Beschreibung
1 VCC
2 RXD UART Empfänger
3 TXD UART Sender
4 CTS UART 'Clear To Send' Steuerleitung
5
6 ENA_ERW1 Enable Erweiterung 1
7 ENA_ERW2 Enable Erweiterung 2
8 GND

Autoren: Marvin

USB-Modul

USB ist eine Abkürzung für "Universal Serial Bus". Ein Bussystem zur Anbindung von Peripherie Geräten an einen Computer. USB ersetzt nach und nach ältere Schnittstellen und Bussysteme wie RS232, LPT.

Das USB-Modul für den c't-Bot ist eine USB-UART Bridge. Über einen virtuellen COM-Port (VCP) Treiber wird dem PC vorgegaukelt, das eine zusätzliche serielle Schnittstelle im PC vorhanden ist. Auf diese serielle Schnittstelle können dann PC-Programme wie über jeden normalen seriellen Port zugreifen. Auf der UART Seite der USB-UART Bridge wird der c't-Bot über J4 angeschlossen.

Anschlussbelegung

Die Anschlußbelegung des USB Moduls entspricht der Steckerbelegung J4 des c't-Bots. Man muß lediglich an ein Ende des 8poligen Flachbandkabel die 2 x 4 Buchse crimpen (am besten im Schraubstock zusammenpressen) und an das andere Ende die einreihige Buchsenleiste anlöten.

Pin Funktion Beschreibung
1
2 RXD UART Empfänger
3 TXD UART Sender
4
5
6
7
8 GND

mySmartUSB Flasher

Wer bereits den mySmartUSB Programmer besitzt, kann diesen ebenso als Diagnose Tool verwenden wie den USB-2-Bot Adapter. Über die DIP Schalter kann man den mySmartUSB Programmer in den sogennanten Daten-Modus schalten. Damit wird der Programmer zur USB-UART Bridge.

mySmartUSB Programmer im Daten Modus

Die Einstellungen auf dem Mäuseklavier für den Datenmodus (Zwei LEDs leuchten grün):

DIP1  ON
DIP2  ON
DIP3  OFF
DIP4  OFF

So sieht das Verbindungskabel zwischen mySmartUSB und c't-Bot aus:

mySmartUSB    <--->    c't-Bot J4
Pin 10  GND   -----    GND Pin 8 
Pin  8  RXD   -----    TXD Pin 3        
Pin  7  TXD   -----    RXD Pin 2

Als USB-Chip wird hier der CP2102 von Silicon Laboratories verwendet. Man benötigt die entsprechenden Treiber des Herstellers

Kommunikation mit dem c't-Sim

Die Kommunikation mit dem c't-Sim erfolgt über die rxtx Bibliothek. Eine Installationsanleitung der Bibliotheken für Windows findet man hier, für Linux hier. Die rxtx Bibliothek ersetzt die javacomm Bibliothek früherer c't-Sim Versionen.

Man muß lediglich in der Datei 'ct-sim.xml' die verwendete Schnittstelle eintragen:

Unter Windows den entsprechenden COM Port:

<SerialBot port="COM13"/>

Unter Linux das entsprechende Device:

<SerialBot port="/dev/ttyUSB0"/>

Beim Start des c't-Sim startet man über den Schalter 'SerialBot' die Kommunikation zum c't-Bot.

Natürlich funktioniert diese Lösung auch mit dem RS232-Modul und wohl auch mit jedem Funk-Modul das über virtuelle COM-Port Treiber verfügt.

Weblinks

Autoren: Galdo, Marvin

RS232-Modul

Das RS232-Modul wandelt die TTL-Signale der UART in PC-konformen RS232-Pegel um. Es wird über J4 mit dem c't-Bot verbunden. Auf PC-Seite mit einer 9poligen D-SUB Buchse an einen freien COM-Port.

Schaltbild

Schaltbild RS232 Pegelwandler Modul
Posted by: chrimo

Anstelle des MAX232 kann auch der pinkompatible MAX202 oder der MAX232A verwendet werden. Dann benötigt man für C1..C5 Kondensatoren mit nur 0,1µF.

Modul

RS232 Modul

Ein RS232 Pegelwandler Modul läßt sich recht einfach auf einem Stück Lochrasterplatine zusammenlöten. So hat man neben dem LCD-Modul eine weitere Debug Ausgabe wie mit dem USB-2-Bot Adapter, und zusätzlich auch eine Eingabe Möglichkeit.


Kommunikation mit c't-Sim

Zur Kommunikation mit dem c't-Sim benötigt man die JAVACOMM oder RXTX Bibliothek.

Die verwendete Schnittstelle trägt man in der Datei 'ct-sim.xml' ein:

Unter Windows den entsprechenden COM Port:

<SerialBot port="COM1"/>

Unter Linux das entsprechende Device:

<SerialBot port="/dev/ttyS0"/>

Beim Start des c't-Sim startet man über den Schalter 'SerialBot' die Kommunikation zum c't-Bot.

Autoren: Marvin