Der UART verfügt über insgesamt zehn Register, die von außen (per Software) zu erreichen sind. Darüber hinaus verfügt er über einige weitere Register, die nur intern angesprochen werden. Dazu zählen beispielsweise das Empfangsschieberegister und das Sendeschieberegister, die für das Senden und Empfangen von Zeichen eine entscheidende Rolle spielen. Empfängt der UART ein Zeichen, werden die einzelnen hereinkommenden Bits zunächst im Empfangsschieberegister \"aufgeschichtet\", bis ein komplettes Byte eingetroffen ist. Sollte dabei kein Fehler aufgetreten sein, wird das Byte anschließend in das Empfangshalteregister weitergereicht, von wo es per Software ausgelesen werden kann.
In der entgegengesetzten Richtung schreibt die Software ein zu sendendes Byte zunächst in das Sendehalteregister. Von dort übernimmt es der UART in das interne Sendeschieberegister, um die einzelnen Bits von dort nacheinander über die Leitung zu geben.
Programmierung:
Senden: Soll ein Zeichen übertragen werden, muss überprüft werden ob das Sendehalteregister leer ist. (Bit 5 von 3FDh)
Empfangen: Soll ein Zeichen empfangen werden, muss überprüft werden, ob Bit 0 von 3FDh gesetzt ist.
Register der UART
Port Funktion Register Bemerkung
3F8h Ausgabe Sendehalteregister Bit 7 des Leitungssteuerreg. auf 0
3F8h Eingabe Empfangshalteregister Bit 7 des Leitungssteurerreg. auf 0
3F8h Ausgabe Baudratenregister (LSB) Bit 7 des Leitungssteuerreg. auf 1
3F9h Ausgabe Baudratenregister (MSB) Bit 7 des Leitungssteuerreg. auf 1
3F9h Ausgabe Unterbrechnungs- Bit 7 des Leitungssteuerreg. auf 0
aktivierungsregister
3FAh Eingabe Unterbrechungs-
erkennungsregister
3FBh Ausgabe Leitungssteuerregister
3FCh Ausgabe Modemsteuerregister
3FDh Eingabe Leitungsstatusregister
3FEh Eingabe Modemstatusregister
|