4.8 Bausteine für synchrone, serielle Schnittstellen
Bei der synchronen seriellen Datenübertragung kann man die folgenden Typen unterscheiden:
- Übertragung von Datenblöcken nach festgelegtem Protokoll; diese Form der Übertragung wird in Weitverkehrsnetzen oder Lokalen Netzen benutzt und kann weiter unterteilt werden in:
- die zeichenorientierte Übertragung (Character Oriented Protocol - COP),
- die bitorientierte Übertragung (Bit Oriented Protocol - BOP).
- Übertragung von Einzeldaten ohne Protokoll; hierbei werden unstrukturierte Daten (Bits, Bytes, Wörter...) zwischen einem Prozessor und seinen Peripheriekomponenten bzw. zwischen Prozessoren ausgetauscht.
Die letztgenannte Übertragungsart unterscheidet sich von der im letzten
Abschnitt beschriebenen asynchronen Übertragung hauptsächlich durch
die Form der Synchronisierung zwischen Sender und Empfänger; in Funktion
und Einsatz gleicht sie der asynchrone Übertragung jedoch sehr. Wir werden
sie am Ende dieses Abschnitt ausführlich in einer Fallstudie beschreiben.
4.8.1 Zeichenorientierte Übertragung
Bei der zeichenorientierten Übertragung liegt die Information als Folge von Zeichen eines bestimmten Codes vor. Dabei handelt es sich meistens um den ASCII-Code. Jedoch können auch andere Codes mit 5 bis 8 Bits pro Zeichen benutzt werden. Zwischen den eigentlichen Daten werden Steuerzeichen eingefügt, die den Ablauf der Übertragung beeinflussen, für den Empfänger aber uninteressant sind. (Bei dem in Tabelle A1 im Anhang dargestellten ASCII-Code sind diese Steuerzeichen in den ersten beiden Spalten aufgeführt.) International genormte, zeichenorientierte Übertragungsverfahren sind die Basic Mode Control Procedures for Data Communication Systems (BDC), kurz Basic Mode Procedures oder Byte Control Procedures (BCP) genannt. Auf sie gehen wir hier nur soweit ein, wie es für die folgende Beschreibung der Schnittstellenbausteine nötig ist.
Im Bild 4.8-1 ist der prinzipielle Aufbau eines Übertragungsblockes für die zeichenorientierte Übertragung dargestellt.
Bild 4.8-1: Block der zeichenorientierten Übertragung
Die Übertragung beginnt zunächst mit dem Aussenden von einem oder
mehreren Synchronisierzeichen SYNC (Synchronous Idle),
die vom Empfänger benötigt werden, um sich mit dem Übertragungstakt
des Senders gleichzuschalten. Das Steuerzeichen STX (Start
of Text) kennzeichnet dann den Beginn der eigentlichen Datenübertragung.
Diese wird durch das Zeichen ETX (End of Text)
beendet. Zur Erkennung von Übertragungsfehlern wird dem Block ein Prüfzeichen
BCC (Block Check Character) angefügt.
4.8.1.1 Bausteine für die zeichenorientierte
Übertragung
Die Bausteine für die zeichenorientierte serielle Übertragung werden
z.B. als
- Synchronous Serial Data Adapter (SSDA)
bezeichnet. Häufig kann jedoch ein und derselbe Baustein sowohl die asynchrone als auch die (zeichenorientierte) synchrone Übertragung durchführen. In diesem Fall spricht man von einem
- Universal Synchronous/Asynchronous Receiver/Transmitter (USART) oder von einem
- Programmable Communications Interface (PCI).
Ein Baustein für die synchrone, zeichenorientierte Übertragung ist im wesentlichen so aufgebaut wie die im letzten Abschnitt beschriebenen, asynchronen Schnittstellenbausteine. Im Bild 4.8-2 ist daher nur der prinzipielle Aufbau der Ausführungseinheit für die zeichenorientierte Übertragung dargestellt. Auf die übrigen Komponenten des Bausteins, also die Steuerung mit ihren Registern (Status-, Steuer-, Befehlsregister), die Interrupt- und die Modem-Steuerung brauchen wir hier nicht mehr einzugehen.

Bild 4.8-2: Die Ausführungseinheit für die zeichenorientierte Übertragung
Sowohl beim Sender als auch beim Empfänger ist das Datenregister (Transmitter
Data Register - TDR bzw. Receiver Data Register - RDR) durch einen
FIFO-Registersatz (First in, First out) ersetzt, der mehrere Zeichen
aufnehmen kann, üblicherweise 3 bis 8 Zeichen. Diese Pufferung der Daten
gewährt dem Prozessor eine größere Flexibilität beim Einschreiben
oder Auslesen der Übertragungsdaten. Ähnlich wie beim ACIA-Baustein
wird durch den Ausgang TxRDY (Transmitter Ready) der CPU angezeigt, daß
wenigstens ein Register des FIFOs im Sender frei ist, die CPU also ein neues
Datum dort einschreiben kann. Durch den Ausgang RxRDY (Receiver Ready)
wird dem Prozessor mitgeteilt, daß im Empfangs-FIFO wenigstens ein Datum
zur Abholung bereitsteht.
Zur Übertragung kann eine Zeichenlänge von 5 bis 8 bit gewählt
werden. Bei Zeichen mit einer Länge von weniger als 8 bit werden die
höchstwertigen Bits im FIFO-Register nicht benutzt, also als don't cares
betrachtet. Dem Schieberegister TSR werden stets nur soviel Taktimpulse zur
Parallel/Serien-Wandlung zugeführt, wie durch die Anzahl der Bits im Zeichen
verlangt wird. Auf diese Weise wird die zeitvergeudende Übertragung der
don't care-Bits vermieden. Auch im Empfänger-Schieberegister
RSR wird zunächst jeweils genau ein übertragenes Zeichen zusammengesetzt
und dann parallel in ein FIFO-Register übertragen. Bei einer Zeichenlänge
unter 8 bit werden dabei die höherwertigen Registerzellen (z.B.) auf
'0' gesetzt.
Im SYNC-Register (Synchronization Code) wird das vereinbarte Synchronisierzeichen
abgelegt. Im Bild 4.8-2 ist gestrichelt angedeutet, daß
einige Bausteine auch die Benutzung zweier (verschiedener) SYNC-Zeichen erlauben
(Two Sync Character Mode, Bi-Sync Mode). Diese SYNC-Zeichen werden
beim Senden vor dem ersten Datum des Blocks in das Schieberegister TSR (Transmitter
Shift Register) übertragen und von dort auf den seriellen Ausgang TxD
ausgegeben. Außerdem kann der Baustein so programmiert werden, daß
er immer dann ununterbrochen SYNC-Zeichen ausgibt, wenn aktuell keine Daten
zu übertragen sind.
Beim Empfang wird jedes Zeichen, das im Empfangs-Schieberegister RSR (Receiver
Shift Register) parallelisiert wurde, durch den Komparator mit dem Inhalt
des SYNC-Registers verglichen. Wird Gleichheit festgestellt (Sync Match),
so wird ein bestimmtes Bit im Statusregister gesetzt und gegebenenfalls der
Prozessor durch einen Interrupt davon unterrichtet. Häufig wird das Ergebnis
des Vergleichs auch über eine spezielle Ausgangsleitung SYNDET
(Sync Detected) angezeigt. Der µP stellt dadurch den Beginn eines Übertragungsblocks
fest und kann die nachfolgenden Daten aus dem RDR-FIFO entnehmen. Das SYNC-Zeichen
selbst wird nicht in das RDR-Register übernommen. (Im Two Sync Character
Mode müssen natürlich zwei unmittelbar hintereinander folgende
Zeichen mit den Inhalten der beiden SYNC-Register übereinstimmen.)
Alle anderen Steuerzeichen, z.B. die oben beschriebenen STX und ETX, sowie das
Blockprüfzeichen BCC werden vom Prozessor wie normale Daten gesendet oder
empfangen, ohne daß sie vom Schnittstellenbaustein ausgewertet werden.
(Zur Erzeugung des BCC-Zeichens existieren Spezialbausteine, auf die im Rahmen
dieses Kurses jedoch nicht eingegangen werden kann, da die zugrunde liegende
Theorie nicht vorausgesetzt wird.)
Wie bei der asynchronen Übertragung kann auch hier ein Paritätsbit
zur Sicherung der Übertragung benutzt werden. Da die meisten Bausteine
für einen Vollduplex-Betrieb entwickelt sind, muß die Logik zur Berechnung
des Paritätsbits doppelt vorhanden sein, also sowohl im Sender als auch
im Empfänger. Dabei kann wahlweise eine gerade oder ungerade Parität
festgelegt werden (Even/Odd Parity). Das Paritätsbit wird vom Parity
Generator im Sender erzeugt und jedem abgeschickten Zeichen angefügt. Die
SYNC-Zeichen werden gewöhnlich nicht durch ein Paritätsbit ergänzt.
Im Empfänger wird das Paritätsbit vom Parity (Generator and) Checker
überprüft. Tritt ein Paritätsfehler auf, so wird ein spezielles
Bit im Statusregister gesetzt, das vom Prozessor zur Feststellung des Übertragungsfehlers
abgefragt werden kann.
Bausteine für die synchrone Übertragung besitzen häufig keinen
integrierten Baudraten-Generator, wie er bei den asynchronen Schnittstellen
beschrieben wurde. In diesem Fall müssen der Sender- und Empfängertakt
dem Baustein über die Eingänge TCLK (Transmitter Clock) bzw.
RCLK (Receiver Clock) von außen zugeführt werden. Üblich
sind Übertragungsraten bis zu 4 Mbd (Megabaud).
4.8.1.1.1 Externe Synchronisation
Bei der bisher beschriebenen Übertragung geschieht die Synchronisation
von Sender und Empfänger durch das SYNC-Zeichen. Durch ein bestimmtes Bit
im Steuerregister des Bausteins kann man diese "interne" Synchronisierung
ausschalten. In diesem Fall kann die Synchronisation extern durch den Empfängertakt
RCLK geschehen. Dieser muß dazu mit dem Sendertakt schaltungsmäßig
so synchronisiert werden, daß er durch das erste Bit des übertragenen
Datenblockes gestartet wird und seine (positive) Flanke genau um eine halbe
Bitzeit von derjenigen des Sendertaktes verschoben ist (vgl.
Bild 4.7-1 unten). Diese Synchronisation erreicht man z.B. dadurch, daß
man als Empfängertakt den invertierten Sendertakt nimmt und diesen durch
das im Abschnitt 4.7.3 beschriebene Eingangssignal
DCD (Data Carrier Detect) des Bausteins im richtigen Zeitpunkt aktiviert.
4.8.1.1 Das Programmiermodell zeichenorientierter Bausteine
Im Bild 4.8-3 sind mögliche Realisierungen des Statusregisters und der Steuerregister eines Bausteins für die zeichenorientierte Übertragung dargestellt. Die Funktion aller hell-grau unterlegten Bits ist bereits im letzten Abschnitt beschrieben worden und wird deshalb hier nicht wiederholt.
Bild 4.8-3: Status- und Steuerregister eines COP-Bausteins
4.8.1.2.1 Das Statusregister
Im Statusregister ist nur das UE-Bit neu hinzugekommen (Underrun
Error, Underflow Error, "Unterlauf-Fehler"). Dieses Bit wird
immer dann gesetzt, wenn während einer Blockübertragung das TSR-Schieberegister
leer wird, im FIFO-Register aber noch kein weiteres Zeichen zur Übertragung
bereitsteht. Der Baustein überträgt dann automatisch ein Füllzeichen,
um die Synchronisation mit dem Empfänger aufrecht zu halten. Die Art dieses
Füllzeichens wird durch ein Bit S/
des Steuerregisters (s.u.) vorgegeben: Wahlweise wird das im SYNC-Register gespeicherte
Synchronisierzeichen oder ein konstantes '1'-Signal (Mark Bit) ausgegeben.
Einige Bausteine besitzen außerdem einen besonderen Ausgang, um diesen Unterlauf-Fehler
dem Prozessor anzuzeigen.
4.8.1.2.2 Die Steuerregister
 | Dieses Steuerbit wurde gerade eben beschrieben. |
1/ | Durch dieses Bit wird festgelegt, ob ein Datenblock durch ein oder zwei Synchronisierzeichen begonnen wird (One/Two Sync Character Mode). |
I/ | Dieses Bit bestimmt die Form der Übertragungssynchronisation: intern über die SYNC-Zeichen oder extern über den Empfängertakt RCLK. |
| EIE |
Error Interrupt Enable) Dieses Bit bestimmt, ob durch eines der
"Fehler"-Bits 0 bis 2 im Statusregister eine Interruptanforderung
zum Prozessor übermittelt wird oder nicht. |
4.8.2 Bitorientierte Übertragung
Bei der bitorientierten Übertragung werden die Daten in einen Rahmen (Frame) mit festem Format eingebunden. Nur die Position der Bits in diesem Rahmen legt fest, ob es sich um Steuerinformation oder ein Datum handelt. Diese Steuerinformation wird von den Schnittstellenbausteinen interpretiert. Die Datenbits selber werden nicht ausgewertet. Sie können daher in einem beliebigen Code mit 1 bis 8 Bits/Zeichen übertragen werden.
Im Bild 4.8-4 ist der Übertragungsrahmen für eines
der am häufigsten eingesetzten Übertragungsverfahren (Übertragungsprozedur)
skizziert. Dieses wird als High Level Data Link Control
(HDLC-Prozedur) bezeichnet. Andere Übertragungsverfahren, auf die wir
jedoch nicht näher eingehen können, sind die SDLC-Prozedur
(Synchronous Data-Link Control), die hauptsächlich in der "IBM-Welt"
eingesetzt wird, sowie die ADCCP-Prozedur (Advanced Data
Communications Control Procedure).
Bild 4.8-4: Übertragungsrahmen der HDLC-Prozedur
Der HDLC-Rahmen beginnt und endet stets mit einem Begrenzungszeichen, dem Flag.
Dieses wird durch die Bitkombination '01111110' dargestellt. Ähnlich wie
das oben beschriebene SYNC-Zeichen dient das Anfangs-Flag (Opening Flag)
zur Synchronisation zwischen Sender und Empfänger. Es kann vom Sender auch
in den Pausen zwischen den Übertragungen ausgesandt werden.
Natürlich kann auch unter den Datenbits diese Kombination auftreten, die
dann fälschlicherweise als Begrenzungszeichen interpretiert wird. Um dies
zu verhindern, sorgt der Sender dafür, daß außer in den Anfangs-
und Ende-Begrenzungszeichen niemals 6 oder mehr '1'-Bits unmittelbar hintereinander
folgen. Dazu fügt er nach fünf hintereinander übertragenen '1'-Datenbits
stets ein '0'-Bit ein. Der Empfänger seinerseits entfernt zur Restaurierung
der ursprünglichen Information jeweils das erste '0'-Bit, das auf fünf
'1'-Bits folgt. Dieses Verfahren wurde bereits als Bit Stuffing ("Bitstopfen",
oder Zero Insertion/Deletion) beschrieben.
Das zweite Bitfeld des Rahmens enthält stets die Empfängeradresse
(Address Field). Diese hat natürlich nur dann eine Bedeutung, wenn
mehrere potentielle Empfänger die Daten erhalten können, also an der
gleichen Datenleitung hängen. Die Länge dieses Feldes ist abhängig
von der Übertragungsprozedur und stets ein Vielfaches von 8. Im anschließenden
Steuerfeld Control Field) können bestimmte Befehle, Rückmeldungen
(Quittungen) oder aber auch Rahmennummern untergebracht werden.
Das nächste Feld (Information Field) enthält die zu übertragenen
Daten. Es kann im Extremfall leer sein, nämlich dann, wenn (im Steuerfeld)
lediglich ein Befehl übertragen werden soll. Die maximale Länge des
Feldes muß zwischen den Kommunikationspartnern abgesprochen werden. Die
aktuelle Länge kann der Empfänger jedoch anhand des abschließend
übermittelten Ende-Flags (Closing Flag) feststellen.
Nach den Daten wird wiederum ein Prüfzeichen übertragen, das üblicherweise
16 bzw. 32 bit lang ist. Dieses wird mit Frame Check
Sequence (FCS) bezeichnet. Das Verfahren zur Berechnung dieses Zeichens wird
als zyklische Redundanzprüfung (Cyclic Redundancy Check - CRC) bezeichnet.
4.8.2.1 Bausteine für die bitorientierte
Übertragung
Im Bild 4.8-5 ist die Ausführungseinheit eines Schnittstellenbausteins
für die bitorientierte Übertragung skizziert. Diese Bausteine werden
üblicherweise als Advanced Data-Link Controller
(ADLC) bezeichnet. Es existieren jedoch auch Bausteine, die wahlweise die asynchrone
sowie die synchrone, bit- oder zeichenorientierte Übertragung ausführen
können. Übliche Namen dafür sind Datenkommunikationsbaustein,
Serial Communications Controller (SCC) oder Multiprotocol
Controller
Wie bei den Bausteinen der zeichenorientierten Schnittstellen sind auch hier
Sender- und Empfänger-Datenregister durch FIFO-Register ersetzt, die jeweils
3 bis 8 Speicherzellen besitzen. Der Baustein kann wiederum Zeichen mit einer
Länge zwischen 5 und 8 bit übertragen. Alle Zeichen, die kürzer
als 8 bit sind, werden völlig analog zur zeichenorientierten Übertragung
in den FIFO-Registern gespeichert und von den Schieberegistern (TSR, RSR) bearbeitet.
Dabei müssen Zeichen mit einer Länge von weniger als 5 bit zunächst
vom Prozessor so zusammengefaßt werden, daß sie wenigstens 5 bit
lang sind. Auch die Funktion der Ausgänge TxRDY, RxRDY ist hier dieselbe
wie bei den Bausteinen zur zeichenorientierten Übertragung. Jedes im FIFO-Register
abgelegte Zeichen wird mit seinem niederstwertigen Bit voran auf den Datenausgang
TxD gegeben bzw. auf dem Dateneingang RxD empfangen.
Bild 4.8-5: Die Ausführungseinheit für die bitorientierte Übertragung
Vor der Übertragung des ersten Zeichens (der Empfängeradresse) gibt die mit 'FLAG-Erzeugung' bezeichnete Komponente des Senders das Anfangs-Begrenzungszeichen auf den Datenausgang TxD. Bei dieser Komponente kann es sich zum Beispiel um ein Schieberegister handeln, das mit dem festen Flag-Wert '01111110' parallel geladen wird und diesen über einen Multiplexer seriell auf TxD legt.
Die mit 'FLAG-Erkennung' bezeichnete Komponente des Empfängers vergleicht den auf der Datenleitung RxD eintreffenden Datenstrom mit dem Flag-Zeichen. Sobald sie dieses Zeichen findet, synchronisiert sie ihren Empfangstakt mit dem Sendetakt und gibt das Meldesignal 'FLAG Detect' aus. Dieses Signal kann einerseits vom Prozessor an einem besonderen Bausteinausgang, andererseits aber durch ein spezielles Bit des Statusregisters (s.u.) abgefragt werden.
Das Flag wird nicht in das Empfangs-Schieberegister übernommen. Der Sender kann das Flag auch in den Übertragungspausen ununterbrochen ausgeben und dadurch für eine stetige Synchronisation des Empfängers sorgen.
Bei einer anderen Variante des im Bild 4.8-5
dargestellten Bausteins besitzt die Ausführungseinheit ein spezielles Adreßregister,
in dem die Stationsadresse des Mikrorechners, wie sie im Adreßfeld des
Datenrahmens angegeben wird, abgelegt ist. Nach dem Erkennen des Flags vergleicht
der Empfänger hardwaremäßig das nachfolgende Adreßfeld
im Datenrahmen mit dieser Adresse. Nur falls er eine Übereinstimmung feststellt,
aktiviert er das Empfangs-Schieberegister RSR, informiert davon den Prozessor
über eine zusätzliche Ausgangsleitung RxA (Receive
Address) und fordert ihn dadurch zur Übernahme der Daten auf. Bei festgestellter
Nichtübereinstimmung kann das RSR deaktiviert bleiben und auf den nächsten
Übertragungsrahmen gewartet werden.
Die beiden Komponenten '0-Einfuegen' bzw. '0-Entfernen' übernehmen das oben beschriebene Bit Stuffing. Dazu untersuchen sie die durchlaufenden Bitströme auf fünf hintereinanderfolgende '1'-Bits. Die Komponente '0-Einfuegen' des Senders hängt an diese Bits ein '0'-Bit an, die Komponente '0-Entfernen' des Empfängers entfernt das erste '0'-Bit, das nach ihnen übertragen wird.
Die Komponente FCS Generator des Senders berechnet aus dem vorbeilaufenden Ausgangs-Bitstrom nach einem vorgegebenen Algorithmus das Rahmenprüfzeichen FCS und schickt es zum Abschluß der Datenübertragung auf den Ausgang TxD.
Auf der Empfängerseite wird in der Komponente FCS Checker das Prüfzeichen erneut berechnet und mit dem im Datenstrom übertragenen Zeichen verglichen. Dabei kann der Empfänger das (zwischengespeicherte) FCS-Zeichen nur durch seine Lage direkt vor dem Ende-Flag im Datenstrom erkennen. Wird eine Abweichung festgestellt, so wird im Statusregister ein Fehlerbit gesetzt (s.u.). In der Regel wird durch dieses Bit keine Interruptanforderung an den Prozessor gestellt. Der µP kann dann also nur durch die Abfrage des Statusregisters einen aufgetretenen Übertragungsfehler feststellen. Da die ADLC-Bausteine meistens für einen Vollduplex-Betrieb entwickelt sind, muß die Logik zur Berechnung des FCS-Zeichens doppelt vorhanden sein, also sowohl im Sender als auch im Empfänger. Das FCS-Zeichen wird ebenfalls nicht in das Empfangs-Schieberegister übernommen.
4.8.2.2 Das Programmiermodell bitorientierter Bausteine
Im Bild 4.8-6 sind mögliche Realisierungen von Status- und Steuerregister eines Bausteins für die bitorientierte Übertragung dargestellt. Alle Bits, die bereits in diesem oder dem vorhergehenden Abschnitt beschrieben wurden, sind wiederum hell-grau unterlegt und werden hier nicht mehr behandelt.
Bild 4.8-6: Status- und Steuerregister eines BOP-Bausteins
4.8.2.2.1 Die Statusregister
| FD | (Flag Detected) Dieses Bit wird gesetzt, wenn in einem empfangenen Bitstrom das Flag-Zeichen '01111110' erkannt wurde. Sein Zustand stimmt mit dem des oben beschriebenen Ausgangs FLAG Detect überein. Durch die Abfrage dieses Bits kann der Prozessor den Beginn eines Übertragungsrahmens feststellen. |
| AP | (Address Present) Dieses Bit wird immer dann gesetzt, wenn ein Zeichen des Adreßfeldes im Datenrahmen empfangen wurde und im FIFO-Register des Empfängers bereitliegt. Durch dieses Bit wird der Prozessor aufgefordert festzustellen, ob eine übertragene Nachricht für ihn oder einen anderen Empfänger bestimmt ist. (Dieses Bit entfällt bei der oben erwähnten Variante mit Stations-Adreßregister). |
| FV | (Frame Valid) Dieses Bit zeigt an, daß ein fehlerfreier und vollständiger Rahmen mit Anfangs- und Ende-Flag empfangen wurde. Nachdem dieses Bit gesetzt wurde, unterbricht der Baustein solange den Empfang, bis der Prozessor das letzte Datum des Rahmens aus dem FIFO gelesen und das FV-Bit zurückgesetzt hat. |
| FCS | (Frame Check Sequence Error) Durch dieses Bit wird ein Übertragungsfehler angezeigt, der durch die Auswertung des FCS-Zeichens festgestellt wurde. Es wird nicht gesetzt, wenn ein unvollständiger Rahmen ohne FCS-Zeichen übertragen wurde. (Dieser wird durch das FV-Bit gekennzeichnet.) |
| OE | (Overrun Error) Hierdurch wird dem Prozessor ein Datenverlust mitgeteilt, der dadurch entsteht, daß ein neues Datum in das FIFO-Register des Empfängers eingetragen wird, obwohl dieses momentan keine freie Stelle besitzt. Dabei sorgt die FIFO-Steuerung dafür, daß immer nur die erste Stelle des FIFOs überschrieben wird. |
| UE | (Underrun Error) Dieses Bit wird gesetzt, wenn während der Übertragung eines Rahmens das TSR-Schieberegister geleert wird, der Prozessor aber nicht rechtzeitig ein neues Datum in das Sende-FIFO-Register schreibt. In diesem Fall wird die Übertragung des Rahmens automatisch abgebrochen und der Empfänger darüber durch das Aussenden eines Abbruch-Zeichens (Abort Character) aus wenigstens acht unmittelbar aufeinanderfolgenden '1'-Bits - also eine Verletzung der Bit-Stuffing-Regel - informiert. |
| AR | (Abort Received) Dieses Bit zeigt an, daß während des Empfangs eines Rahmens auf dem Dateneingang RxD ein Abbruch-Zeichen erkannt wurde. Das Setzen dieses Bits führt zu einer Unterbrechungsanforderung zum Prozessor. |
| IR | (Inactive Idle Received) Dieses Bit wird gesetzt, wenn auf der Empfangsleitung RxD keine Informationen übertragen werden, diese Leitung also konstant einen logischen '1'-Zustand hat. Auch das Setzen dieses Bits kann zu einer Unterbrechungsanforderung zum Prozessor führen. |
4.8.2.2.2
Die Steuerregister
F/ | (Flag/Mark Idle Select) Dieses Bit legt fest, welches Zeichen der Sender zwischen zwei Übertragungsrahmen kontinuierlich auf den Datenausgang TxD geben soll: das FLAG-Zeichen '01111110' oder aber eine Folge von '1'-Bits (Mark Bits). |
| AEX |
(Address Extend Mode) Durch dieses Bit wird die Länge des
Adreßfeldes im Übertragungsrahmen bestimmt. Diese Länge
kann entweder fest auf 8 bit eingestellt oder aber dynamisch verändert
werden. Im zweiten Fall zeigt eine '0' im niederstwertigen Bit des jeweils
übertragenen Adreßbytes an, daß ein weiteres Adreßbyte
folgt. (Eine Ausnahme davon stellt lediglich die "Null"-Adresse
dar, die aus acht '0'-Bits besteht.) |
| CEX | (Control Field Extension) Durch dieses Bit wird die Länge des Steuerfeldes (Control Field) im Rahmen auf 8 oder 16 bit festgelegt. |
| TxL | (Transmit Last Data) Durch das Setzen dieses Bits teilt der Prozessor dem Sender im Baustein mit, daß er das letzte Datum in das FIFO-Register übertragen hat. Dadurch wird der Sender zur Ausgabe des FCS-Zeichens und des Ende-Flags veranlaßt. |
FF/ | (Double Flag/Single Flag) Zur Erhöhung der Übertragungsgeschwindigkeit kann der Baustein das Ende-Flag eines Rahmens als das Anfangs-Flag des unmittelbar folgenden Rahmens auffassen. Durch dieses Bit wird bestimmt, ob von dieser Möglichkeit Gebrauch gemacht werden soll oder aber jeder Rahmen durch eigene Flags eingeschlossen werden soll. |
| TA | (Transmit Abort) Der Prozessor benutzt dieses Bit, um die Übertragung eines Rahmens vorzeitig abzubrechen. Als Reaktion wird das oben beschriebene Abbruch-Zeichen (von wenigstens acht '1'-Bits) ausgesandt und dadurch der Empfänger über die Beendigung der Übertragung informiert. |
4.8.2.2.3 LAN-Controller
In rapide steigendem Maß werden heutzutage immer mehr Mikrorechner miteinander vernetzt. Dies geschieht einerseits über öffentliche Weitverkehrsnetze (Wide Area Networks WAN), vor allem aber auch durch sogenannte Lokale Netze (Local Area Network - LAN).
Für die Kommunikation in LANs wird häufig die synchrone bitorientierte serielle Datenübertragung angewandt. Die Bausteine zur Steuerung dieser Kommunikation werden LAN-Controller genannt. Es handelt sich bei ihnen durchweg um hochkomplexe Schaltungen. Im Rahmen dieses Kurses können wir leider nicht auf sie eingehen, da die z.T. sehr komplizierte Übertragungsprotokolle benutzen.
4.8.3 Fallstudie: Synchrone, serielle Schnittstellen zur Bausteinkopplung
In diesem Unterabschnitt wollen wir nun eine synchrone serielle Schnittstelle
beschreiben, wie sie häufig in DSPs und Mikrocontrollern integriert ist
und die den kostengünstigen Anschluß von Peripheriebausteinen ermöglicht,
die über dieselbe Schnittstelle verfügen. Zu diesen Bausteinen gehören
insbesondere Analog/Digital- sowie Digital/Ananlog-Wandler und "serielle"
EPROMs, aber auch komplexe Codierer/Decodierer (CODECs)
für Stereo-Audiosignale. Wie bereits gesagt, werden über diese Schnittstelle
keine strukturierte Datenpakete/Blöcke nach festem Protokoll, sondern einzelne
Daten ausgetauscht. Die Beschreibung der synchronen, seriellen Schnittstellen
in diesem Abschnitt orientiert sich an der DSP-Familie ADSP-218x der Firma Analog
Devices, die sie Kapitel I.6 kennengelernt haben. Diese Schnittstellen
werden mit Serial Ports (SPORT) bezeichnet.
4.8.3.1 Kopplung über die SPORTs
Neben dem Anschluß von Peripheriebausteinen können die SPORTs auch der Kopplung mehrerer Prozessoren dienen. Im Bild 4.8-7 sind beide genannten Kopplungsmöglichkeiten schematisch dargestellt.
Bild 4.8-7: Kopplung über die seriellen Schnittstellen
Die Schnittstelle besteht aus fünf Signalen. Im Bild 4.8-7 sind drei dieser Signale bidirektional dargestellt. Dies ist so zu verstehen, daß sich beide Kommunikationspartner bei der Initialisierung des Systems über die Übertragungsrichtungen dieser Signal verständigen müssen. Nachdem diese Wahl in den SPORTs getroffen wurde, ist sie gewöhnlich für die gesamte Betriebsdauer festgelegt. Im Bild 4.8-7 wird durch die gestrichelt gezeichneten Pfeile eine mögliche Richtungswahl angedeutet.
- Über die Leitung SCLK (Serial Clock) wird ein Taktsignal (mit
einer maximalen Frequenz von 37 MHz) zur Steuerung der synchronen Übertragung
ausgetauscht. (Im Bild 4.8-7 wird beispielhaft angenommen,
daß dieses Signal vom "rechten" Kommunikationspartner erzeugt
wird.)
- Über die Datenleitung DT (Data Transmit) werden die seriellen Daten ausgegeben.
- Über die Datenleitung DR (Data Receive) werden die seriellen Daten empfangen.
- Über die Steuerleitung TFS (Transmit Frame Sync) wird beim Aussenden eines einzelnen Datums oder eines Datenblocks ein Synchronisiersignal übertragen, das Beginn (und Ende) des Datums oder Datenblocks anzeigt (Rahmung - Framing, s.u.).
- Über die Steuerleitung RFS (Receive Frame Sync) wird dementsprechend beim Empfangen eines Datums oder Datenblocks ein Synchronisiersignal übertragen, das Beginn (und Ende) des Datums oder Datenblocks anzeigt (s.u.).
Die dargestellte Kopplung über die SPORTs erinnert sehr stark an die V.24-Schnittstelle, wie Sie sie in Abschnitt 4.7.4 kennengelernt haben. Auch hier ist eine Vollduplex-Übertragung möglich, für die Daten- und Steuersignale jeweils kreuzweise miteinander verbunden werden müssen. Die betrachteten SPORTs erlauben eine Übertragungsgeschwindigkeit von bis zu 37 Mbit/s - gleichzeitig in beiden Richtungen und abhängig von der Taktrate des Prozessors.
Vor der Benutzung einer seriellen Schnittstelle muß diese im Systemsteuerregister
SCR aktiviert werden. Dieses Register ist im Bild 4.8-8
dargestellt. Zur Aktivierung der SPORTs dienen die Bits 11 und 12. (Die unterlegt
grau gezeichneten Steuerbits werden in späteren Unterabschnitten beschrieben.)

Bild 4.8-8: Das Systemsteuerregister
4.8.3.2 Der innere Aufbau der SPORTs
Im Bild 4.8-9 ist der innere Aufbau einer seriellen Schnittstelle
skizziert. Jeder ADSP-218x besitzt zwei (fast) identische serielle Schnittstellen,
den SPORT0 und SPORT1. Jeder SPORT besteht aus einem Sender- und einem Empfängerteil.
Alle Register des SPORTs können über den Datenbus DMD beschrieben
und gelesen werden. Der Prozessorkern schreibt ein zu übertragendes Datum
in das Sende-Datenregister TX (Transmit Register).
Dabei können Wortlängen zwischen 3 und 16 bit gewählt werden.
Sobald das Sende-Schieberegister TSR (Transmit Shift Register) leer ist,
d.h. das "vorausgehende" Datum vollständig bearbeitet wurde,
wird das Datum aus TX (parallel) dorthin übertragen und dann Bit für
Bit - synchron zum Takt SCLK - auf die Ausgangsleitung DT gelegt.
Das höchstwertige Bit (MSB) wird zuerst ausgesendet. Sobald dieses Bit aus dem Register TSR herausgeschoben wurde, wird der DSP-Kern durch einen Interrupt (Transmit Interrupt) darüber informiert. Dazu muß in einem Register des Kerns, dem IMASK-Register (Interrupt Mask Register), dieser Interrupt aktiviert sein. Der DSP-Kern kann dann (typischerweise in der Interruptroutine) ein neues Datum ins Register TX schreiben.
Beim Empfang eines Datums wird dieses zunächst von der Eingangsleitung DR bitweise ins Empfangs-Schieberegister RSR (Receive Shift Register) übernommen. Erst wenn das Datum vollständig übertragen wurde, wird es (parallel) ins Empfangs-Datenregister RX (Receive Register) geschrieben. Gleichzeitig wird der DSP-Kern durch einen Interrupt (Receive Interrupt) informiert. Auch hier muß dazu dieser Interrupt im IMASK-Register aktiviert sein. Der DSP-Kern kann dann (typischerweise in der Interruptroutine) das Datum aus dem Register DX lesen.
Bild 4.8-9: Interner Aufbau der seriellen Schnittstellen
Dir Register TX und RX werden nicht unter Speicheradresse, sondern durch bestimmte
Bitfelder im OpCode direkt angesprochen. Lesen und Schreiben der Register geschieht
z.B. durch die Datentransferbefehle (Data Move Instructions).
Bei der digitalen Verarbeitung von analogen Audiosignalen werden diese häufig
in einen (wenigstens) 13 bit langen Code umgesetzt. Zur Reduzierung des Übertragungsaufwandes
für die so gewonnenen Zeichen können diese durch eine logarithmische
Umcodierung in 8-bit-Zeichen umgesetzt werden, ohne daß die Qualität
der Verarbeitung hörbar leidet. Die Umsetzung in diesen 8-bit-Code (Kompression
- Compressing) bzw. die Rückwandlung in den 13-bit-Code (Dekompression
- Expanding) wird von der im Bild 4.8-9 dargestellten
Komprimier-/Dekomprimier-Logik vorgenommen. Diese Logik wird zusammenfassend
mit dem Kunstwort Compand Logic bezeichnet. Die Logik entnimmt - sofern
sie aktiviert wurde - die zu übertragenden bzw. empfangenen Daten den entsprechenden
Registern TX bzw. RX, codiert sie entsprechend um und schreibt sie in die Register
zurück. Da beide Register, TX und RX, sowohl beschrieben wie gelesen werden
können, kann die De-/Codier-Logik auch nur intern, also ohne folgende oder
vorausgehende Übertragung über die serielle Schnittstelle, zur Umwandlung
von Daten durch Kompression bzw. Dekompression benutzt werden. Dabei muß
jedoch beachten werden, daß die Umwandlung einen Taktzyklus benötigt,
so daß u.U. ein NOP-Befehl eingefügt werden muß, bevor das
Ergebnis vom SPORT abgeholt werden kann.
In jedem Zyklus können gleichzeitig eine Kompression wie eine Dekompression
ausgeführt werden. Wegen der Komplexität der Codier-/Decodierschaltung
ist sie nur einmal implementiert worden und muß bei Bedarf von beiden
SPORTs gemeinsam benutzt werden. Treten dabei Zugriffskonflikte auf, so besitzt
SPORT0 die höhere Priorität, und SPORT1 muß einen Zyklus warten.
Ausgelöst und überwacht werden alle möglichen Operationen der
SPORTs durch die mit "Steuerung" bezeichnete Komponente. Sie enthält
eine ganzen Satz von Steuerregistern (Configuration Registers), die unter
hohen Adressen des internen Datenspeichers angesprochen werden können.
Die Steuerung hat insbesondere die Aufgabe, Sender- und Empfängerteil des
SPORTs mit den notwendigen Takt- und Steuersignalen zu versorgen. Dazu befindet
sich in der Steuerung der Baudraten-Generator, der die Ableitung einer ganzen
Reihe von Frequenzen des Schiebetaktes SCLK aus dem Systemtakt CLKOUT erlaubt.
(Das Signal SCLK kann Frequenzen bis zu 0 Hz aufweisen.) Im Bild
4.8-10 sind die beiden Register dargestellt, die der Erzeugung des Schiebetaktes
dienen.
Bild 4.8-10: Register zur Steuerung des Taktes SCLK
Die Frequenz des Schiebetaktes SCLK wird dadurch festgelegt, daß im Register SCLKDIV (Serial Clock Divide Modulus) ein Wert angegeben wird, durch den die Frequenz des Systemtaktes CLKOUT dividiert werden soll. Dabei gilt die folgende Formel:
Frequenz von SCLK = 0.5 * (Frequenz von CLKOUT) / (SCLKDIV + 1).
Das Register RFSDIV (RFS Divide) hat nur dann eine Bedeutung, wenn das Synchronisiersignal RFS (s.o.) intern erzeugt und vom Kommunikationspartner ausgewertet wird. Der Wert in RFSDIV legt fest, mit welcher Frequenz das Signal RFS auftreten und - dementsprechend - Datenwörter empfangen werden sollen. Diese Frequenz wird nach folgender Formel berechnet:
Frequenz von RFS = (Frequenz von SCLK) / (RFSDIV + 1).
Umrechnung der Formel zeigt, daß der Wert (RFSDIV + 1) angibt, wie viele Takte von SCLK zwischen zwei Aktivierungen des Signals RFS auftreten. Daraus folgt auch, daß die Eingabe von Werten, die kleiner als die Bitanzahl der Datenwörter ist, nicht zulässig ist.
| Selbsttestaufgabe 4.8-1: (–>
Lösungsvorschlag) |
- Berechnen Sie allgemein den Wert, den man ins Register SCLKDIV eintragen
muß, um einen Schiebetakt der Frequenz SCLK zu bekommen.
- Geben Sie die Werte für SCLKDIV an, die man bei einem Systemtakt
CLKOUT = 12,288 MHz für eine Schiebefrequenz von SCLK = 9600
Hz und SCLK = 2,048 MHz benötigt.
- Welchen Wert muß man ins Register RFSDIV eintragen, wenn bei
einer Schiebefrequenz von SCLK = 2,048 MHz eine Wort-Übertragungsrate
von 8 kHz (8000 Wörter pro Sekunde) erreicht werden soll ?
|
Wird das Taktsignal SCLK extern, also vom Kommunikationspartner erzeugt, so wird es direkt an die Schieberegister TSR, RSR des SPORTs durchgeschaltet, und der Baudraten-Generator ist abgeschaltet.
Wie bereits in Bild 4.8-8 angedeutet wurde, können die Schnittstellenleitungen des SPORT1 durch alternative Signale (Alternate Configuration) belegt werden. Das sind zwei Interrupteingänge IRQ0 und IRQ1 sowie die beiden unter Programmkontrolle ansprechbaren Signale FI (Flag In) und FO (Flag Out). Nur das Signal SCLK behält seine Funktion. Die Auswahl zwischen den Signalen der seriellen Schnittstelle und den alternativen Signalen geschieht durch Bit 11 des Systemsteuerregisters SCR (s. Bild 4.8-8).
Eine sehr nützliche Eigenschaft der SPORTs ist, daß die Erzeugung
des Taktsignals SCLK - wie die Compand Logic - auch dann aktiv ist, wenn
der zugehörige SPORT selbst deaktiviert ist. In diesem Fall kann der SPORT
als "programmierbarer" Taktgenerator für externe Peripheriekomponenten
benutzt werden.
4.8.3.3 Die verschiedenen Synchronisationsverfahren
Um Bausteine unterschiedlicher Hersteller mit verschiedenen Übertragungsverfahren an die SPORTs anschließen zu können, erlauben diese, eine Auswahl unter einer Reihe von Synchronisationsvarianten zu treffen. Bevor wir auf diese Varianten genauer eingehen, stellen wir im Bild 4.8-11 die Steuerregister der seriellen Schnittstellen dar, die wir mit SPCR0/1 (SPORT0/1 Control Register ) bezeichnen.
Bild 4.8-11: Die Steuerregister der seriellen Schnittstellen
Durch das Bit MCE (Multichannel Enable) im SPCR0 kann eine besondere Betriebsart
der seriellen Schnittstelle SPORT0, die Mehrkanal-Übertragung, festgelegt
werden, die im Unterabschnitt 4.8.3.5 ausführlich
beschrieben wird. Im Steuerregister SCR1 von SPORT1 gibt das Nur-Lese-Bit 15 (Read
Only) stets den aktuellen Zustand des Ausgangssignals FO (Flag Out)
wieder, das unter Programmkontrolle beliebig geändert werden kann. Durch
die Möglichkeit seiner Abfrage über Bit 15 kann auf die explizite Speicherung
des Zustands verzichtet werden. Das Bit ISCLK (Internal
Serial Clock Generation) legt fest, ob der Schiebetakt SCLK intern erzeugt
wird (ISCLK = 1) oder vom Kommunikationspartner geliefert wird.
Das Bitfeld SLEN in den Steuerregistern SPCRi bestimmt die Länge der übertragenen
Daten zwischen 3 und 16 bit. Dabei wird die Länge durch SLEN+1 gegeben,
d.h. z.B. SLEN = 00102 = 2 entspricht einer Wortlänge von 3,
SLEN = 11112 = 15 einer Länge von 16. (Die Werte SLEN = 0, SLEN
= 1 sind nicht zulässig.) Da die Länge der übertragenen Wörter
nicht mit der Länge 16 der internen Datenregister übereinstimmen muß,
wird durch das Feld DTYPE (Data Format) festgelegt,
wie empfangene Daten in den internen Registern abgelegt werden. Grundsätzlich
geschieht die Ablage "rechtsbündig" (right justified),
d.h. beginnend mit Bit 0. Durch DTYPE kann gewählt werden, ob die höherwertigen
Bits (MSBs - Most Significant Bits) mit dem Wert 0 (Zero Fill)
oder dem Vorzeichen des empfangenen Datums (Sign Extension) gefüllt
werden. Außerdem wird durch das Feld DTYPE das Verfahren zur Daten-Kompression-/Dekompression
(Companding) aktiviert, das bereits erwähnt wurde. Dabei kann zwischen
zwei Algorithmen, dem sog. A-Law bzw. m
-Law, gewählt werden. Empfangene Daten werden (nach der Dekomprimierung)
rechtsbündig und vorzeichengerecht im Empfangsregister RXi zur Abholung
durch den DSP-Kern bereitgestellt. Entsprechend werden ins Senderegister TXi
geschriebene Daten (nach der Kompression) durch Auffüllen der MSBs mit
dem Vorzeichen auf die programmierte Wortlänge erweitert und ausgegeben.
Die restlichen Bits der Register SPCRi dienen zur Steuerung der Datenübertragung, insbesondere zur Festlegung der oben beschriebenen Synchronisiersignale RFS und TFS. Für jedes Signal werden dazu vier Bits benötigt. Die grundlegenden Formen der Übertragung sind im Bild 4.8-12 skizziert.

Bild 4.8-12: Die grundlegenden Synchronisationsverfahren der SPORTs
Dargestellt ist darin jeweils der Fall, daß die Synchronisiersignal (Framing
Sync) intern, also nicht vom Kommunikationspartner erzeugt werden. Die Steuerbits
RFSR (Internal Transmit Frame Sync Enable), TFSR,
ITFS (Internal Transmit Frame Sync Enable) bzw. IRFS
(Internal Receive Frame Sync Enable) sind dazu auf den Wert '1' zu setzen.
Zur Vereinfachung der Darstellung wird von der Übertragung von 4-bit-Wörtern
(B3, B2, B1, B0; SLEN = 3) ausgegangen. Grundsätzlich wird, wie bereits
gesagt, durch die SPORTs das höchstwertige Bit B3 (MSB) zuerst ausgegeben.
Bei der normalen Rahmensynchronisation (Normal
Frame Synchronous) wird ein Zyklus vor dem Beginn der Übertragung für
eine halbe Taktdauer ein (positives) Synchronisiersignal ausgegeben. Es wird
vom Kommunikationspartner während der fallenden Taktflanke erkannt. Danach
wird das Signal bis zum Ende der Übertragung des Datums zurückgesetzt.
(Im Kommunikationspartner wird das Signal während der folgenden
Übertragung des Datums nicht mehr abgetastet und ausgewertet.)
- Beim Schreiben wird das (intern erzeugte) Signal auf der Leitung TFS ausgegeben. Mit jeder folgenden positiven Flanke des Taktes wird danach ein Bit des Datums gesendet. Das Bit TFSW (Transmit Frame Sync Width) muß auf den Wert 0 gesetzt sein.
- Beim Lesen wird das Signal auf der Leitung RFS erzeugt. Mit jeder folgenden negativen Flanke des Taktes wird danach ein Bit des Datums empfangen. Das Bit RFSW (Receive Frame Sync Width) muß auf den Wert 0 gesetzt sein.
Bei der alternierenden Rahmensynchronisation (Alternate Frame Synchronous) wird zu Beginn der Übertragung das (positive) Synchronisiersignal ausgegeben und erst nach dem Ende der Übertragung des Datums wieder zurückgenommen. (Im Kommunikationspartner wird auch hier das Signal während der folgenden Übertragung des Datums nicht mehr abgetastet und ausgewertet.) Gleichzeitig mit der Aktivierung des Signals wird bereits das erste Bit des Datums übertragen, wobei bzgl. des Schreibens und Lesens die beim normalen Verfahren gemachten Aussagen gelten. Die Bits RFSW bzw. TFSW müssen für dieses Verfahren auf den Wert '1' gesetzt sein. Da bei diesem Verfahren der Partner bereits während des Taktzyklus, in dem das Synchronisiersignal aktiviert wird, das erste Bit übertragen (senden oder empfangen) muß, verlangt es eine schnellere Reaktion.
Bei den bisher beschriebenen Übertragungen werden die Synchronisiersignale
für jedes zu übertragende Wort neu generiert. Man spricht daher von
der "gerahmten" Übertragung (Framed
Transmission). Sie wird durch die Belegung der Bits TFSR (Transmit Frame
Sync Required) bzw. RFSR (Receive Frame Sync Required) mit dem Wert
'1' selektiert. Im Bild 4.8-13 wird dieser Rahmensynchronisation
die Übertragung ohne Rahmung (Unframed Transmission) gegenübergestellt.

Bild 4.8-13: Gerahmte und ungerahmte Übertragung
Die "ungerahmte" Datenübertragung
wird zwischen Kommunikationspartnern eingesetzt, die große Blöcke
von Daten möglichst schnell und ohne Pausen übertragen wollen. Sender
und Empfänger müssen sich vor der Übertragung über die Länge
des Blockes verständigen. Hier wird nur vor dem Beginn der Übertragung
eines Blocks das Synchronisiersignal erzeugt. Erst die Übertragung des
nächsten Blocks wird wieder durch ein Rahmensignal angezeigt. Während
der Blockübertragung wird das Rahmensignal vom Partner nicht abgetastet
und ausgewertet. Die ungerahmte Übertragung wird selektiert durch RFSR
= 0 bzw. TFSR = 0.
Im Bild 4.8-13 wird auch gezeigt, daß bei der normalen Rahmung durch vorzeitige Erzeugung des Synchronisiersignals - noch während der Übertragung des letzten Bits eines Datums - ebenfalls eine ununterbrochene Übertragung von Daten erreicht werden kann (Continuous Transfer without Break).
Zum Abschluß dieses Unterabschnitts soll noch darauf hingewiesen werden, daß der aktive Pegel (high oder low) der Rahmen-Synchronisiersignale frei gewählt werden kann. Dies geschieht durch die entsprechende Programmierung der Bits INVRFS (Invert Receive Frame Sync) bzw. INVTFS (Invert Transmit Frame Sync). Eine '0' selektiert dabei einen positiven, eine '1' einen negativen aktiven Pegel. (In den oben stehenden Bildern wurde er beispielhaft auf high gesetzt.)
4.8.3.4 Übertragung mit automatischer Pufferung
Zur Kommunikation mit Peripheriekomponenten, die ihre Daten blockweise anbieten oder verlangen, bieten die seriellen Schnittstellen eine besonders effiziente Möglichkeit der Datenübertragung mit automatischer Pufferung (Autobuffering).
- Im sendenden Kommunikationspartner kann der Datenblock zunächst in einem Ringpuffer abgelegt und dann durch die Hardware der seriellen Schnittstelle automatisch, d.h. ohne Programmkontrolle, übertragen werden. Erst wenn der gesamte Datenblock ausgegeben wurde, wird ggf. der DSP-Kern darüber durch einen Interrupt informiert und zur Übergabe eines neuen Datenblocks aufgefordert.
- Im empfangenden Partner kann dementsprechend der gesamte Datenblock zunächst automatisch in einem Ringpuffer gesammelt werden, bevor der DSP-Kern evtl. durch einen Interrupt aufgefordert wird, den Block geeignet weiter zu verarbeiten.
Die Ablage eines Datums aus dem Register des SPORTs im Ringpuffer bzw. das
Holen eines Datums daraus "kostet" jeweils nur einen Taktzyklus, für
den der DSP-Kern auf das interne Bussystem verzichten muß. Dies ist sehr
viel weniger Zeit, als bei der Übertragung unter Programmkontrolle verbraucht
wird; denn die automatische Pufferung geschieht völlig transparent, asynchron
zum Programmlauf und ohne "Prozeßumschaltung" zu einer Interruptroutine.
Die angesprochenen Ringpuffer müssen im internen oder externen Datenspeicher
- also nicht im Programmspeicher - angelegt werden. Dazu müssen die Daten-Adreßgeneratoren
(DAG, siehe Kapitel über DSPs) geeignet programmiert werden.
Die Aktivierung der Betriebsart Autobuffering (fürs Senden oder Empfangen von Datenblöcken) sowie die Angabe der für die Ringpuffer benutzten DAG-Register geschieht in den sog. Autobuffer Control Registers. Ihr Aufbau ist im Bild 4.8-14 dargestellt. Die benötigten Indexregister können (durch Angabe ihrer 3-bit-Nummer) beliebig aus beiden Daten-Adreßgeneratoren gewählt werden. Da die Modifizier-Register aus dem gleichen Adreßgenerator genommen werden müssen, reichen zu ihrer Selektion zwei Bits im Steuerregister. Die Aktivierung des Autobuffering geschieht durch Einschreiben einer '1' in das der Übertragungsrichtung entsprechende Bit 1 oder 0.

Bild 4.8-14: Die Steuerregister für die automatische Pufferun
4.8.3.5 Mehrkanal-Übertragung
Die Möglichkeit der Kommunikation von Prozessoren und Peripheriekomponenten
über die seriellen Schnittstellen ist nicht auf die Punkt-zu-Punkt-Verbindung
beschränkt, die im Bild 4.8-7 skizziert ist. Grundsätzlich
können an jeder Ausgangsleitung DT auch mehrere Eingänge DR angeschlossen
sein, also eine stärker vermaschte Kopplung realisiert werden. Die Steuersignale
TFS bzw. RFS sowie der Takt SCLK der beteiligten Partner müssen dabei natürlich
entsprechend "verdrahtet" und programmiert werden. Im einfacheren
Fall findet eine "Rundspruch"-Übertragung statt, bei der die
gesendeten Daten von allen angeschlossenen Kommunikationspartnern empfangen
werden (können).
Der SPORT0 kann aber auch im Zeit-Multiplexverfahren (Time Division Multiplexing
- TDM) betrieben werden. Dabei wird die Übertragung in mehrere Zeitkanäle
eingeteilt, die sich zyklisch wiederholen (Multichannel Operation). Jeder
Zyklus wird durch ein Synchronisiersignal "eingerahmt". Wählbar
sind 24 oder 32 Kanäle. Vor Beginn jeder Übertragung wird festgelegt,
in welchen Kanälen ein bestimmter DSP oder Peripheriebaustein Daten aussenden
darf und in welchen Kanälen er Daten empfängt. Dabei darf jeder SPORT
in ein und demselben Kanal auch gleichzeitig senden und empfangen oder aber in
diesem Kanal inaktiv sein. Natürlich muß die Vergabe der Senderechte
konfliktfrei geschehen, d.h. es dürfen nicht zwei SPORTs gleichzeitig in
einem Kanal Daten ausgeben. Die Länge der übertragenen Datenworte muß
in allen beteiligten SPORTs auf denselben Wert (zwischen 3 und 16 bit) eingestellt
werden. Im Bild 4.8-15 ist die Mehrkanal-Übertragung
für 4-bit-Daten skizziert.

Bild 4.8-15: Zum Prinzip der Mehrkanal-Übertragung
Im Bild 4.8-15 empfängt die betrachtete serielle Schnittstelle Daten in den Kanälen
0, 2 und sendet Daten in den Kanälen 1, 2. Das Synchronisiersignal RFS (Receive Frame Sync) wird im Normalmodus von einer festgelegten seriellen Schnittstelle erzeugt und zeigt den Beginn eines Rahmens von Zeitkanälen an. Das Signal TFS (Transmit Frame Sync) wird von jeder der angeschlossenen seriellen Schnittstelle genau dann aktiviert, wenn sie ein Datum über die Leitung DT ausgibt. (Die TFS-Ausgänge verfügen dazu über die
Open-Drain-Eigenschaft,
vgl. Abschnitt 2.2.) Es zeigt somit das Vorliegen von gültigen Ausgabedaten an und wird deshalb im Mehrkanal-Betrieb mit TDV - Transmit Data Valid - bezeichnet.
Die Selektion des Mehrkanal-Betriebs für SPORT0 geschieht durch Setzen des MCE-Bits (Multichannel Enable) im Steuerregister SPCR0 zu SPORT0 (s.o.). Dort wird im Bit MCL (Multichannel Length) auch festgelegt, ob 24 (MCL = 0) oder 32 (MCL = 1) Kanäle benutzt werden sollen. Die Bits INVRFS bzw. INVTDV legen fest, ob die Synchronisiersignale RFS und TDV (TFS) im H- oder L-Pegel aktiv sind. Die Belegung der Bits MFD (Multichannel Frame Delay) gibt die Anzahl der Systemtakte an, um die Ausgabe des ersten Datenbits jedes Rahmens von Zeitkanälen gegenüber dem Synchronisiersignal RFS verzögert wird. Durch diese Verzögerung ist eine Anpassung an Kommunikationspartner mit unterschiedlichen Reaktionsgeschwindigkeiten möglich.
Die Zuordnung der Kanäle als Sende- oder Empfangskanäle zu den einzelnen Kommunikationspartnern geschieht durch die vier Register Multichannel Word Enables, die im Bild 4.8-16 dargestellt sind. Die Zuordnung eines Kanals i als Schreib- oder Lesekanal zu einer Schnittstelle geschieht durch den Eintrag einer '1' in der i-ten Bitposition des entsprechenden Registers.
Bild 4.8-16: Die Register zur Kanalzuteilung