Praktikum zur Vorlesung Technische Grundlagen der Informatik |
|||||||||||||||||||||||
Die serielle Schnittstelle
|
|
Die serielle Ein-/Ausgabe übernimmt im PC ein Baustein namens Universal Asnyncronous Receiver/Transmitter, kurz UART. Die gängigen Chips haben die Bauteilbezeichnungen 8250, 82450, 16450 oder 16550. Alle UARTS haben im Prinzip dieselbe Schnittstelle. Zwar gibt es kleinere Unterschiede; diese sind aber im Rahmen des Praktikums nicht relevant. Für jede serielle Schnittstelle gibt es einen UART. Die vorhandenen
UARTs werden während des Boot-Vorgangs erkannt. Die Basisadressen
der UAARTS stehen an folgenden Adressen im RAM:
Im Empfangspuffer (Receive Buffer) steht das zu lesende Byte. Werden weniger als 8 bit gelesen, sind die höherwertigen Bits undefiniert und müssen von der verarbeitenden Software maskiert werden. Der Sendepuffer (Transmitter Holding Register, THR) enthält das nächste zu sendende Byte. Wenn das vorherige Byte noch nicht gesendet wurde, wird es überschrieben. Diesen transmitter overrun erkennt der UART nicht. Das Divisor Latch legt die Übertragungsrate fest. Ein Divisor d entspricht einer Übertragungsrate von 115 200 / d bits pro Sekunde. Für die Übertragungsrate b ist ein Divisor von 115 200 / b einzustellen. Das Interrupt Enable Register legt fest welche Ereignisse
einen Interrupt seitens des UART auslösen. Das Registerformat ist
in Tab. 3.7 beschrieben.
Eine Zustandsänderung bei "`Modem Input"' liegt vor, wenn eines der folgenden Signale seinen Zustand geändert hat: CD (Carrier Detect), RI (Ring Indicator), DSR (Data Set Ready), CTS (Clear to Send). Der TBE Interrupt zeigt an, daß das nächste zu sendende Byte aus dem Transmitter Holding Register in das interne Transmitter Shift Register übernommen wurde, so daß nun der nächste Wert in das THR geschrieben werden kann. Ein RxRDY Interrupt bedeutet, daß Daten im Empfangspuffer zum Lesen bereitliegen. Das Interrupt Identification Register ist nur lesbar (read
only Register). Es zeigt an ob ein Interrupt anhängig (pending)
ist, und gibt von den anhängigen Interrupts den mit der höchsten
Priorität an (die höchste Priorität ist 0. Tab. 3.8.
Das FIFO Control Register ist nur schreibar (write only Register). Nicht alle UARTs haben FIFOs. Deshalb gehen wir hier nicht näher auf das Register ein.
|
|
|
|||
| back - Home - TUM | 11.12.2000- webmaster | ||