2. Gliederung
Allgemein zu der seriellen Schnittstelle
Was ist die serielle Schnittstelle?
Elektrische Eigenschaften
Übertragungsarten
Serielle Schnittstelle in 80C537
Serielle Schnittstelle 0
Serielle Schnittstelle 1
Special Function Register
Steuerung der serielle Schnittstelle
Baudrateerzeugung
3. Allgemein zu der seriellen Schnittstelle
• Die serielle Schnittstelle ist unter folgenden Bezeichnungen genormt:
RS-232-C (Norm der EIA)
V.24 (CCITT - Internationales Fernmeldekomitee)
66020 (Deutsche-Norm)
4. • Diente ursprünglich der seriellen Datenübertragung zwischen einer DEE und DÜE.
Serielle Datenübertragung heißt, dass die Bits nacheinander auf
einer Leitung übertragen werden.
• Verbindet man zwei Datenendgeräte muss ein Nullmodem her!
5. Elektrische Eigenschaften
• Der Datenverkehr zwischen Terminal und Modem geschieht über
Daten-, Takt-, Melde- und Quittungssignale.
• Die elektrische Verbindung erfolgt über ein max. 25poliges Kabel.
• Die Daten werden über TD-Leitung (Transmit Data) gesendet und
über RD-Leitung (Receive Data) empfangen .
• Folgende Leitungspegel sind festgelegt: -pos. Pegel +3 V … +25 V
-neg. Pegel -3 V … -25 V
Bei den meisten Anwendungen Beschränkt man sich auf die Spannungen zwischen
+12 V und -12 V.
• Die Datenleitungen (TD und RD) verwenden negative Logik,
Steuer- und Quittungsleitungen positive Logik.
6. Übertragungsarten
Synchrone Übertragung
• Wird zusätzlich ein Taktsignal übertragen
• Übertragung langer Datenblöcke
• Erhöhte Aufwand für die Taktleitung
Um eine Leitung zu sparen, kann der Takt auch zusätzlich auf der Datenleitung
übertragen werden:
7. Asynchrone Übertragung
• es wird kein Taktsignal übertragen
Sender und Empfänger verwenden eigenen Takt
• es werden nur kurze Datenblöcke übertragen
Beim Sender und Empfänger muss das gleiche Übertragungsprotokoll eingestellt werden:
• gleiche Schrittgeschwindigkeit
• Startbit
• 8 oder 9 Datenbits
• Paritybit
• 1 oder 2 Stoppbits
8. Serielle Schnittstelle in 80C537
80C537 besitzt zwei serielle Schnittstelle S0 und S1:
• Duplex-Betrieb
• variable Baudrate
• 8 oder 9 Bit Übertragung
• erzeugen keine Modemsteuersignale
• jeder Kanal hat eigenen Baudrategenerator
9. Serielle Schnittstelle 0
• Unterstützt 4 Betriebsarten:
Mode 0: Synchroner Betrieb, 8-Bit
Mode 1: Asynchroner Betrieb, 8-Bit
Mode 2: Asynchroner Betrieb, 9-Bit
Mode 3: Asynchroner Betrieb, 9-Bit
• Senden und Empfangen erfolgt über das SFR S0BUF
• Die Steuerung erfolgt über das SF-Register S0CON
10. Serielle Schnittstelle 1
• Unterstützt 2 Betriebsarten:
Mode A: Asynchroner Betrieb, 9-Bit
Mode B: Asynchroner Betrieb, 8-Bit
• Senden und Empfangen erfolgt über das SFR S1BUF
• Die Steuerung erfolgt über das SF-Register S1CON
11. Special Function Register für die
seriellen Schnittstellen S0 und S1
• Serial Data Buffer
S0BUF
S1BUF
• Serial Control Register
S0CON
S1CON
• Reload-Register
S0RELL (+S0RELH)
S1REL (+S1RELH)
• A/D Control Register 0 (ADCON0)
BD
• Power Control Register (PCON)
SMOD
12. Serial Data Buffer S0BUF/S1BUF
Senden und Empfangen erfolgt über die selbe Adresse im SFR-Bereich:
S0BUF (99h) S1BUF (9Ch)
für die serielle Schnittstelle 0 für die serielle Schnittstelle 1
13. Serial Control Register S0CON/S1CON
Die Betriebsarten und die Arbeitsweise der seriellen Schnittstelle werden über
SF-Register SCON eingestellt.
S0CON (98h) Serial Control Register für die serielle Schnittstelle 0
SM0 SM1 SM20 REN0 TB80 RB80 TI0 RI0
9Fh 9Eh 9Dh 9Ch 9Bh 9Ah 99h 98h
S1CON (9Bh) Serial Control Register für die serielle Schnittstelle 1
SM SM21 REN1 TB81 B81 TI1 RI1
14. Serial Control Register S0CON
SM0 SM1 SM20 REN0 TB80 RB80 TI0 RI0
SM0 SM1 Betriebsart (Mode)
0 0 Synchrone Übertragung, 8 Bit, Senden/Empfangen über RxD0, Taktausgabe über TxD0
0 1 UART 8-Bit: Startbit | S0BUF0 . . . S0BUF7 | Stoppbit
1 0 UART 9-Bit: Startbit | S0BUF0 . . . S0BUF7 | 9.Bit | Stoppbit
1 1 UART 9-Bit: Startbit | S0BUF0 . . . S0BUF7 | 9.Bit | Stoppbit
SM20 Ermöglicht Multiprozessor -Verbindung, in Mode 2 und 3 ( 9-Bit-Übertragung ).
In Mode 0 sollte SM20 gelöscht sein
REN0 Receiver Enable, ermöglicht seriellen Empfang, wenn gesetzt. Wird nur durch Software
beeinflusst
TB8 Transmitter -Bit 8, neuntes Datenbit, wird nur bei Mode 2 und 3 übertragen
0
RB80 Receiver -Bit 8, neuntes empfangenes Datenbit bei Mode 2 und 3
TI Transmitter Interrupt -Request -Flipflop. Wird gesetzt in Mode 0 am Ende des achten Bits
0 oder in den anderen Betriebsarten bei Beginn des Stoppbits.
Muss durch Software gelöscht werden
RI Receiver Interrupt -Request -Flipflop. Wird gesetzt in Mode 0 am Ende des achten Bits oder
0 in den anderen Betriebsarten während des Stoppbits.
Muss durch Software gelöscht werden
15. Serial Control Register S1CON
SM SM21 REN1 TB81 RB81 TI1 RI1
SM Betriebsart (Mode)
SM = 0 Mode A : UART 9-Bit: Startbit | S1BUF0 . . . S1BUF7 | 9. Bit | Stoppbit
SM = 1 Mode B : UART 8-Bit: Startbit | S1BUF0 . . . S1BUF7 | Stoppbit
SM2 Ermöglicht Multiprozessor-Verbindung, in Mode A (9-Bit-Übertragung)
1
REN Receiver Enable, ermöglicht seriellen Empfang, wenn gesetzt.
1 Wird nur durch Software beeinflusst
TB8 Transmitter -Bit 8, neuntes Datenbit, wird bei Mode A übertragen
1
RB8 Receiver-Bit 8, neuntes empfangenes Datenbit bei Mode A
1
TI Transmitter Interrupt -Request -Flipflop. Wird gesetzt beim Beginn des Stoppbits.
1 Muss durch Software gelöscht werden
RI Receiver Interrupt –Request -Flipflop. Wird gesetzt während des Stoppbits.
1 Muss durch Software gelöscht werden
16. Reload-Register S1REL
S1REL (9Dh) dient der Baudrateerzeugung für die serielle Schnittstelle 1.
Beispiel1:
Gefordert ist eine Baudrate von 9600 Bd
relwert = 256 - 12 MHz/(32 • 9600) = 217d oder D9h
Beispiel 2:
Gefordert ist eine Baudrate von 1200 Bd
relwert = 256 - 12 MHz/(32 • 1200) = -56 Diese Baudrate lässt sich nicht einstellen
Bei fOSZ = 12 MHz lassen sich 1,465 bis 375 kBd einstellen!
17. Reload-Register S1RELH+S1REL
Ab der „CA“ Version des 80C537 ist der Timer 10 Bit breit und zu S1REL können noch 2
Bits von S1RELH einbezogen werden. Damit können nun 1200 Baud eingestellt werden.
Beispiel:
relwert = 1024 - 12 MHz/(32 • 1200) = 712d oder 2C8h oder 10 1100 1000b
Bei fOSZ = 12 MHz lassen sich 366 Bd bis 375 kBd einstellen!
18. BD und SMOD
BD (Bitadresse DFh) der sich im SFR ADCON0 (Bitadressierbar) befindet und
SMOD der im SFR PCON (Byteadressierbar) unter der Byteadresse 87h zu erreichen
ist, sind zwei Steuerbits die der Baudrateerzeugung für die serielle Schnittstelle 0 dienen.
ADCON0 DB CLK ADEX BSY ADM MX2 MX1 MX0
PCON SMOD
SMOD PDS IDLS SD GF1 GF0 PDE IDLE
Guten morgen, Ich und Herr Koch erzählen heute über die serielle Schnittstelle.
Ich möchte was zu der Gliederung sagen: Zuerst erzähle ich was allgemeines zu der seriellen Schnittstelle Was ist ein serielle Schnittstelle? Welche elektrische Eigenschaften muss ein Kabel haben? Und welche Übertragungsarten gibt es. Dann komme ich zu der seriellen Schnittstelle in 80C537 Da beim 80C537 zwei Schnittstellen gibt, sage ich was zu S0 und S1. Danach stellt Herr Koch die Special Funktion Register vor. Dort erzählt er über die Steuerung der seriellen Schnittstelle. Und darüber wie man die Baudrate erzeugt.
Die serielle Schnittstelle ist unter folgenden Bezeichnungen genormt: RS-232-C ist die amerikanische Bezeichnung und eine Norm der EIA Die EIA (Electronic Industries Alliance in Arlington, Virginia, USA) V.24 Bezeichnung der Internationalen Fernmeldekomitee CCITT dt. Internationaler Beratender Ausschuss für den Telegrafen- und Telefondienst) Und 66020 ist die deutsche Bezeichnung Das Deutsche Institut für Normung
RS-232-C diente ursprünglich der seriellen Datenübertragung zwischen einer Datenendeinrichtung (das kann z.B. ein Terminal sein) und einer Datenübertragungseinrichtug (z.B. ein Modem) Serielle Datenübertragung heißt, dass die Bits nacheinander auf einer Leitung übertragen werden. Da die Daten im Computersystem in paralleler Form vorliegen, benötigt man zum Senden serieller Daten einen Parallel-Seriell-Wandler. Diese Aufgabe übernimmt intelligente Snittstellenbaustein UART (Universal Asyncronus Receiver Transmitter) Verbindet man zwei Datenendgeräte muss ein Nullmodem verwendet werden. Nullmodem ist ein Kabel deren Leitungen gekreuzt sind.
Der Datenverkehr zwischen Terminal und Modem geschieht über Daten-, Takt-, Melde- und Quittungssignale. Wobei das Letzte nur in Verbindung mit einem Modem verwendet wird. Die elektrische Verbindung erfolgt über ein max. 25poliges Kabel. Dabei werden die Daten über TD-Leitung gesendet und über RD-Leitung empfangen In Der CCITT sind die Leitungspegel festgelegt: Für HIGH-Pegel sind +3 V … +25 V und für LOW-Pegel -3 V … -25 V festgelegt. Bei den meisten Anwendungen Beschränkt man sich aber auf die Spannungen zwischen +12 V und -12 V. Die Datenleitungen (TD und RD) verwenden negative Logik, Steuer- und Quittungsleitungen positive Logik.
Es gibt synchrone und asynchrone Übertragung Bei der synchronen Übertragung wird zusätzlich zu den Daten ein Taktsignal übertragen Das erlaubt die Übertragung langer Datenblöcke Nachteilig ist der erhöhte Aufwand für die Taktleitung Um eine Leitung zu sparen, kann der Takt auch zusätzlich auf der Datenleitung übertragen werden Dabei werden Takt und Daten mit einer ExOR-Schaltung verknüpft.
Bei der asynchronen Übertragung wird kein Taktsignal übertragen, der Sender und Empfänger verwenden eigenen Takt Da es nicht exakt möglich beide Takte auf gleicher Frequenz zu halten werden nur kurze Datenblöcke übertragen. Für die fehlerfreie Übertragung ist es wichtig, dass beim Sender und Empfänger das gleiche Übertragungsprotokoll eingestellt ist. Dazu gehört die gleiche Schrittgeschwindigkeit (Baudrate), jede Übertragung beginnt mit einem Startbit, dann kommen 8 oder 9 Datenbits, darauf folgt der Paritätsbit und 1 oder 2 Stoppbits.
80C537 besitzt zwei serielle Schnittstelle S0 und S1 Beide Schnittstellen arbeiten in Duplex-Betrieb (können gleichzeitig Senden und Empfangen) Die Baudrate sind variabel einstellbar Man kann 8 o. 9 Bits übertragen Beide Schnittstellen erzeugen keine Modemsignale Jeder Kanal hat eigenen Baudrategenerator
Die serielle Schnittstelle S0 unterstützt 4 Betriebsarten: Mode 0: ist der Synchrone Betrieb Mode 1: ist der Asynchrone Betrieb mit der 8-Bit Übertragung Mode 2: ist der Asynchrone Betrieb mit der 9-Bit Übertragung Mode 3: ist ebenfalls der Asynchrone Betrieb mit der 9-Bit Übertragun Gesendet und Empfangen werden die Daten über den Serial-Data-Buffer Register S0BUF Die Steuerung der seriellen Schnittstelle 0 über den Serial-Control-Register S0CON
Die serielle Schnittstelle S1 unterstützt nur 2 Betriebsarten: Mode A: ist der Asynchroner Betrieb mit der 9-Bit Übertragung Mode B: ist der Asynchroner Betrieb mit der 8-Bit Übertragung Gesendet und Empfangen werden die Daten über den Serial-Data-Buffer Register S1BUF Die Steuerung der seriellen Schnittstelle 1 erfolgt über den Serial-Control-Register S1CON.
Serial Data Buffer ist der Datenregister S0BUF S1BUF Serial Control Register ist der Steuerregister S0CON S1CON Reload-Register ist der Reloadregister für die Baudrateerzeugung S0RELL (+S0RELH) S1REL (+S1RELH) A/D Control Register 0 (ADCON0) BD Power Control Register (PCON) SMOD
Das Senden und Empfangen erfolgen über dieselbe Adresse im SFR-Bereich: S0BUF (adr. 99h) für die serielle Schnittstelle 0 und S1BUF (adr. 9Ch) für die serielle Schnittstelle 1 Im Schreibzyklus werden die Daten in S0BUF/S1BUF geladen, damit wird die Übertragung gestartet. Im Lesezyklus werden die Daten aus dem S0BUF/S1BUF ausgelesen. Beim Empfang eines neuen Zeichens wird das alte überschieben.
Die Betriebsarten und die Arbeitsweise der seriellen Schnittstelle werden über Serial Control Register SCON eingestellt. S0CON mit der Adresse 98h ist der Serial Control Register für die serielle Schnittstelle 0. Der Register ist Bitadressierbar. S1CON mit der Adresse 9Bh ist der Serial Control Register für die serielle Schnittstelle 1. Nur Byteadressierbar
Serial Control Register S0CON ist der Steuerregister der seriellen Schnittstelle S0 Mit den Bits SM0 und SM1 wählt man einen der vier Mods. Bit SM2 ermöglicht in Mode 2 und 3 ( 9-Bit-Übertragung ) die Multiprozessor-Verbindung. In Mode 0 sollte SM20 gelöscht sein REN0 bedeutet Receiver Enable und ermöglicht seriellen Empfang, wenn gesetzt. Wird nur durch Software beeinflusst . TB80 und RB80 ist der Transmitter- bzw. Receiver-Bit 8, neunte Datenbit, wird in Mode 2 u. 3 übertragen bzw. empfangen. TI0 ist der Transmitter Interrupt -Request –Flipflop. Wird gesetzt in Mode 0 am Ende des achten Bits oder in den anderen Betriebsarten bei Beginn des Stoppbits. Muss durch Software gelöscht werden . RI0 ist der Receiver Interrupt -Request -Flipflop. Wird gesetzt in Mode 0 am Ende des achten Bits oder in den anderen Betriebsarten während des Stoppbits. Muss durch Software gelöscht werden
Serial Control Register S1CON ist der Steuerregister der seriellen Schnittstelle S1 Mit den Bit SM wählt man einen der beiden Mods. SM21 Ermöglicht Multiprozessor-Verbindung, in Mode A (9-Bit-Übertragung) REN1 bedeutet Receiver Enable und ermöglicht seriellen Empfang, wenn gesetzt. Wird nur durch Software beeinflusst TB8 1 und RB8 1 ist der Transmitter- bzw. Receiver-Bit 8, neunte Datenbit, wird in Mode A übertragen bzw. empfangen. TI1 ist der Transmitter Interrupt -Request -Flipflop. Wird gesetzt beim Beginn des Stoppbits. Muss durch Software gelöscht werden RI1 ist der Receiver Interrupt –Request -Flipflop. Wird gesetzt während des Stoppbits. Muss durch Software gelöscht werden
Der Reload-Register dient der Baudrateerzeugung für die serielle Schnittstelle 1 . Für die Baudratenerzeugung von S0 und S1 stehen Binärzähler - Timer zur Verfügung, die von der heruntergeteilten Oszillatorfrequenz getaktet werden. Der Timer wird gestartet, indem der gewünschte Wert in das Reload-Register S1REL (9Dh) geladen wird. Bei jedem Überlauf wird der Timer erneut mit dem von Programmierer ausgerechneten Relwert geladen. Mit dieser Formel kann man den Relwert ausrechnen. Beispiel 1 Beispiel 2. Das heißt das diese Baudrate lässt sich nicht einstellen Mit dem 8 Bit S1REL kann man min. 1465 Bd und max. 375kBd einstellen .
Ab der „CA“ Version des 80C537 ist der Timer 10 Bit breit und zu S1REL können noch 2 Bits von S1RELH einbezogen werden. Damit können nun 1200 Baud eingestellt werden. Mit der Formel kann man den Relwert ausrechnen
Die weiteren wichtigen Bits sind BD und SMOD BD (Bitadresse DFh) der sich im SFR ADCON0 befindet und SMOD der sich im SFR PCON unter der Byteadresse 87h zu erreichen ist, sind zwei Steuerbits die der Baudrateerzeugung für die serielle Schnittstelle 0 dienen.
Die Baudratenerzeugung für S0 ist etwas komplizierter als für S1. bei früheren Versionen kann entweder Timer 1 verwendet werden oder man muss sich auf einige wenige Baudraten beschränken. Die Baudratenerzeugung ist für Modus 0, 2 und 1/3 verschieden. Im Mode 0 gibt es nur eine Baudrate , nämlich Oszillatorfrequenz / 12. Im Mode 2 gibt es zwei Baudraten: Oszillatorfrequenz / 32 (wenn SMOD=1) und Oszillatorfrequenz / 64 (wenn SMOD=0) In Mode 1 und 3 sieht die Sache etwas anders aus: Ist der BD in ADCON0 gesetzt so wird der Baudrategenerator verwendet. Damit lassen sich bei Oszillatorfrequenz von 12 MHz Baudraten von 4800 Bd (SMOD=0) und 9600 Bd (SMOD=1) einstellen. Ist der BD gelöscht, erfolgt die Baudrateeinstellung über den Timer 1 Ab Version „CA“ kann der Baudrategenerator frei programmiert werden