Download Diplomarbeit - Dominik Mader - Weblearn
Transcript
Kapitel 2 Grundlagen anschließend in das Receiver Holding Register geschrieben. Dies kann gelesen werden durch einen Lesezugriff auf das UART Data Register. Die acht LSB enthalten das gelesene Zeichen. Beim Empfang wird auch überprüft, ob das Format der gesendeten Information korrekt ist und ob die Parität stimmt. Tritt ein Fehler auf, wird dies im UART Status Register gespeichert. Werden empfangene Zeichen nicht schnell genug ausgelesen, kann es passieren, dass Informationen verloren gehen. Enthält sowohl das Receiver Holding Register als auch das Receiver Shift Register noch nicht gelesene Zeichen, wird bei erneutem Empfang eines Zeichens das letztere Register überschrieben und das overrun Bit (OV) im UART Status Register gesetzt. Wenn Handshaking aktiviert ist, zieht die UART RTSN ab Erkennen eines Startbits solange auf High, bis das empfangene Zeichen aus dem Receiver Holding Register gelesen worden ist. Dann wird RTSN wieder auf Low gezogen, um dem (externen) Sender mitzuteilen, dass das nächste Zeichen gesendet werden kann. Ist die Interrupt Generierung für Empfangen aktiviert, wird ein Interrupt erzeugt, wenn das Receiver Shift Register in das Receiver Holding Register geschrieben wird. Dies signalisiert, dass ein Zeichen gelesen wurde. UART Register Jede UART hat ihren eigenen Registersatz. Die Adressierung ist in Kapitel 2.2.1.3 beschrieben. Das UART Scaler Reload Register legt die Baudrate mit den 12 LSB fest. Alle anderen Bits sind unbenutzt. Das UART Data Register benutzt nur die unteren 8 Bit. Dort werden entweder Zeichencodes hingeschrieben, um sie zu senden, oder empfangene Zeichen gelesen. Mit dem UART Control Registern lassen sich die UARTs einstellen. Abb. 2-21 zeigt den Aufbau dieses Registers. Abb. 2-21 • • • • • • • • • UART Control Register (Quelle: [L10]) External Clock (EC): Wenn gesetzt, wird der externe Takt an PIO(3) zur Erzeugung des Bittaktes benutzt. Loop Back (LB): Wenn gesetzt, wird der Loop Back Modus aktiviert. Flow Control (FL):Wenn gesetzt, ist das Hardware Handshaking aktiviert. Parity Enable (PE): Wenn gesetzt, wird beim Senden ein Paritätsbit erzeugt und beim Empfangen die Parität überprüft. Parity Select (PS): Schaltet zwischen even und odd parity um (1=odd, 0=even). Transmitter Interrupt Enable (TI): Wenn gesetzt, ist Interrupt Generierung beim Senden aktiviert. Receiver Interrupt Enable (RI): Wenn gesetzt, ist Interrupt Generierung beim Empfangen aktiviert. Transmitter Enable (TE): Wenn gesetzt, ist der Sender aktiviert. Receiver Enable (RE): Wenn gesetzt, ist der Empfänger aktiviert. Das UART Status Register enthält Informationen über Zustand der UART und Fehler beim Übertragen. Die Belegung des Registers ist in Abb. 2-22 dargestellt. 39