Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Serielle Schnittstelle.Mit Hilfe dieser Klasse kann man über die serielle Schnittstelle (COM1 - COM4) einfach mit der Außenwelt kommunizieren. Mehr ...

#include <machine/serial.h>

Klassendiagramm für Serial:

Öffentliche Typen

enum  comPort { COM1 = 0x3f8, COM2 = 0x2f8, COM3 = 0x3e8, COM4 = 0x238 }
 COM-Port. Mehr ...
 
enum  baudRate {
  BAUD_300 = 384, BAUD_600 = 192, BAUD_1200 = 96, BAUD_2400 = 48,
  BAUD_4800 = 24, BAUD_9600 = 12, BAUD_19200 = 6, BAUD_38400 = 3,
  BAUD_57600 = 2, BAUD_115200 = 1
}
 Übertragungsgeschwindigkeit. Mehr ...
 
enum  dataBits { DATA_5BIT = 0, DATA_6BIT = 1, DATA_7BIT = 2, DATA_8BIT = 3 }
 Anzahl der Datenbits pro Zeichen.
 
enum  stopBits { STOP_1BIT = 0, STOP_1_5BIT = 4, STOP_2BIT = 4 }
 Anzahl der Stopbits pro Zeichen.
 
enum  parity {
  PARITY_NONE = 0, PARITY_ODD = 8, PARITY_EVEN = 24, PARITY_MARK = 40,
  PARITY_SPACE = 56
}
 Paritätsbit.
 

Öffentliche Methoden

 Serial (Serial::comPort port=COM1, Serial::baudRate baudrate=BAUD_115200, Serial::dataBits databits=DATA_8BIT, Serial::stopBits stopbits=STOP_1BIT, Serial::parity parity=PARITY_NONE)
 Konstruktor. Mehr ...
 
int read (bool blocking=true)
 Lese ein Byte von serieller Schnittstelle. Mehr ...
 
int write (char out, bool blocking=true)
 Schreibe ein Byte auf die serieller Schnittstelle. Mehr ...
 
bool receiveInterrupt (bool enable)
 Unterbrechung bei Datenempfang. Mehr ...
 

Ausführliche Beschreibung

Serielle Schnittstelle.

Mit Hilfe dieser Klasse kann man über die serielle Schnittstelle (COM1 - COM4) einfach mit der Außenwelt kommunizieren.

Beim ersten IBM PC wurde der 8250 UART verbaut, heutzutage ist die Logik meist in der Southbridge integriert - aber dennoch weiterhin kompatibel zur ursprünglichen Hardware.

Siehe auch
PC8250A Handbuch (Seite 11 für Register)
PC16550D Handbuch (Nachfolger, für optionalen FIFO Puffer, Seite 16)

Dokumentation der Aufzählungstypen

◆ baudRate

Übertragungsgeschwindigkeit.

Baud ist die Einheit für die Übertragungsrate von Symbolen, dabei entspricht 1 Baud der Geschwindigkeit für die Übertragung eines Symbols pro Sekunde. Die möglichen Baudraten sind ganzzählige Teiler der Taktrate von 115200 Hz.

◆ comPort

COM-Port.

Die seriellen Schnittstelle (und ihre Hardwareadresse). Moderne Desktop-PCs besitzen derzeit meist maximal einen physikalischen Anschluss (COM1).

Beschreibung der Konstruktoren und Destruktoren

◆ Serial()

Serial::Serial ( Serial::comPort  port = COM1,
Serial::baudRate  baudrate = BAUD_115200,
Serial::dataBits  databits = DATA_8BIT,
Serial::stopBits  stopbits = STOP_1BIT,
Serial::parity  parity = PARITY_NONE 
)

Konstruktor.

Festlegen des Ports und setzen der Parameter für die serielle Verbindung Standardmäßig ist dies 8N1 (8 bit, kein Paritätsbit, ein Stopbit) mit 115200 Baud auf COM1.

Dokumentation der Elementfunktionen

◆ read()

int Serial::read ( bool  blocking = true)

Lese ein Byte von serieller Schnittstelle.

Parameter
blockingBlockiere - Warte bis ein Byte anliegt
Rückgabe
gelesener Wert (oder -1 bei nicht blockierend falls kein Datum verfügbar)

◆ receiveInterrupt()

bool Serial::receiveInterrupt ( bool  enable)

Unterbrechung bei Datenempfang.

Aktiviert oder deaktiviert den Interrupt bei Datenempfang. Dazu wird neben dem entsprechenden Register auch der IOAPIC (unter Berücksichtigung des jeweiligen COM-Ports) konfiguriert sowie der Empfangspuffer geleert.

Parameter
enableSoll die Unterbrechung aktiviert werden?
Rückgabe
true falls die Unterbrechung zuvor aktiviert war, ansonst false

◆ write()

int Serial::write ( char  out,
bool  blocking = true 
)

Schreibe ein Byte auf die serieller Schnittstelle.

Parameter
outzu schreibendes Byte
blockingBlockiere - Warte bis ein Byte geschrieben werden kann
Rückgabe
geschriebenes Byte (oder -1 falls kein Byte geschrieben werden konnte)

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: