-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Telekommunikationsprotokolle, und
insbesondere Telekommunikationsprotokolle zur Verwendung mit Personalcomputern
und Computer-Workstations.
-
2. Stand der Technik
-
Personalcomputer
und Computer-Workstations mit Modems greifen heutzutage auf eine
große
Vielfalt von Netzwerken zu. Obwohl die Kommunikation über Modem
für das
Austauschen von Textdateien im allgemeinen adäquat ist, erfordert die Übertragung
von Sprach-, Fax- und Video-Daten, insbesondere simultan, eine Datenrate,
welche die Möglichkeiten
der meisten Modems übersteigt.
Das Digitale Netzwerk für
Integrierte Dienste (ISDN) ist so aufgebaut, daß es bereitstellt, was dem
Nutzer als ein vereinheitlichtes Netzwerk erscheint, welches den
Bedürfnissen
aller Nutzer genügt.
ISDN hat begonnen, eine bedeutsame Verbreitung in Europa, und, etwas
langsamer, in den Vereinigten Staaten zu erlangen. In ISDN-Netzwerken
dient ein digitaler Adapter als Kommunikationsvorrichtung. Da die
Daten im gesamten Netzwerk digital sind, wird die Funktion eines
Modems überflüssig.
-
Die
frühe Einführung von
ISDN wurde durch etwas erschwert, was als das "Henne-Ei"-ISDN-Dilemma bezeichnet werden kann.
-
Die
Kosten der ISDN-Technologie bleiben auch weiterhin für eine breite
Schicht von Nutzern unerschwinglich. Die existierende installierte
Basis von Personalcomputern beruht primär auf einer standardisierten seriellen
Schnittstelle mit geringer Bandbreite, um Verbindungen für Telekommunikationsdienste
zu erzielen. Zum Beispiel ist der serielle Anschluß von IBM-PCs
und Kompatiblen auf eine Datenrate von 9,6 kbps begrenzt. Für höhere Datenraten
des Typs, welcher für
ISDN erforderlich ist, wird spezialisierte Hardware und Software
benötigt.
-
Des
Weiteren ist ISDN auf digitale Daten begrenzt. Auf lange Sicht wird
diese Begrenzung wahrscheinlich nur von vorübergehender Bedeutung sein.
Für die
nahe Zukunft (die nächsten
fünf bis
zehn Jahre) bereitet jedoch die ausschließlich digitale Natur von ISDN
ein bestimmtes Problem. Die überwiegende
Mehrheit von Faxgeräten,
welche derzeit in Betrieb sind, sind derart ausgebildet, um über das
analoge Telefonnetz zu kommunizieren. Ein ISDN-Nutzer muß dann,
um den Betrieb eines solchen Faxgerätes aufrecht zu erhalten, zwei
Telekommunikations-Leitungen haben, nämliche eine ISDN-Leitung und
eine analoge Leitung. Es ist offensichtlich, daß die bei ISDN beabsichtigte
integrierte Eigenschaft der Telekommunikation einer gewissen Zeit
bedarf, bis ausschließlich
ISDN verwendet wird.
-
In
der Druckschrift
US 4,539,676 ist
ein Datenschaltsystem offenbart, welches Teil einer Datenkommunikationsverbindung
ist, und welches einen Durchschaltvermittler zur Übertragung
von Sprachdaten und einen Paketvermittler zum Übertragen von unregelmäßigen Daten
umfaßt.
Gemäß einem
von einer entsprechenden Anschluß-Schaltung gesendeten Routing-Bit bestimmt
das System, ob der Durchschalte-Schalter oder der Paket-Schalter
verwendet werden soll.
-
Die
Druckschrift
US 4,750,171 offenbart
ein weiteres Daten-Schaltsystem,
bei welchem ein Hochgeschwindigkeitsdatenbus in mehrfache logische
Zeitfenster-Kanäle
zeitgeteilt gemultiplext ist, von denen jeder Kanal multiplen Endpunkten
innerhalb eines Datenkommunikationssystems dynamisch zugeordnet
ist.
-
Die
Druckschrift
US 4,608,685 offenbart
Details eines Telekommunikationsschaltnetzwerks, welches in der
Lage ist, sowohl Paket-Schalten als auch Schaltungs-Schalten zwischen
einer Mehrzahl von Einheiten auszuführen, und zwar mit Hilfe eines
Busses, welcher eine gemeinsame Verbindung mit allen Einheiten aufweist.
-
In
allen diesen herkömmlichen
Systemen ist das Telekommunikationsnetzwerk derart ausgestattet, daß es sich
an gewisse vorbestimmte Datenübertragungs-Typen,
welche durch einen oder mehrere Computerterminals bereitgestellt
werden, anpasst.
-
Im
Hinblick auf herkömmliche
Modems präsentieren
die zahlreichen Spezifikationen, welche erforderlich sind, um eine
Hochgeschwindigkeitsverbindung aufzubauen, eine oftmals unüberwindliche
Hürde.
-
Da
weiterhin die Telefonnetze in den. verschiedenen Ländern dieser
Welt alle ihre eigenen unterschiedlichen Standards und Bestimmungen
haben, ist ein herkömmliches
Modem nicht zur Verwendung in verschiedenen Ländern ausgebildet. Geschäftsreisende
zum Beispiel sind nicht in der Lage, ein einziges Gerät für digitale
Kommunikation in der ganzen Welt zu verwenden, sondern müssen statt
dessen in Abhängig keit von
ihrem bestimmten Ort zu einer bestimmten Zeit verschiedene Geräte verwenden.
-
Eine
Vielzahl von neuen Telekommunikationsanwendungen wird in zunehmender
Weise verfügbar. Diese
umfassen Sprachein/ausgabe, Multimedia, geschäftliche Verbindungen, ferngesteuerten
LAN-Zugriff, intelligente Telefonie und Videotelefonie. Telekommunikationsverbindungen
für diese
Anwendungen wurden bisher auf einer ad hoc Basis entwickelt. Um
vollständig
den Vorzug von diesen und anderen Kommunikationstechnologien zu
realisieren, ist eine einheitliche, vielseitige Telekommunikationsschnittstelle
erforderlich. Die vorliegende Erfindung ist auf das Bedürfnis nach
einer Telekommunikationsschnittstelle gerichtet, welche günstige Telekommunikationsplattformen
mit hoher Leistung zuläßt, um globales
Fax, Daten, Sprache und andere Datenströme auf intuitive Weise zu unterstützen.
-
Zusammenfassung
der Erfindung
-
Die
vorliegende Erfindung stellt, allgemein gesprochen, eine kostengünstige und
doch hochleistungsfähige
universelle Telekommunikationsschnittstelle mit durchschnittlicher
Bandbreite (bis zu 2 Mbps) für
neue und bereits existierende Computer bereit. Die Telekommunikationsschnittstelle
läßt hochleistungsfähige, kostengünstige Telekommunikationsplattformen
zu, um globales Fax, Daten, Sprachen und andere Datenströme auf intuitive
Weise zu unterstützen.
Die Telekommunikationsschnittstelle stellt eine sehr kostengünstige Lösung für internationale
Verbindbarkeit für
eine breite Masse von existierenden Computern bereit, während es eine
weitverzweigte Datenübertragung
mit hoher Leistung bereitstellt.
-
Einfache
und zuverlässige
weltweite Verbindungen können
auf diese Weise über
die Telefonleitung erzielt werden. Von einem rudimentären Gesichtspunkt
aus gesehen stellt die Telekommunikationsschnittstelle eine elegante, ökonomische
Implementation eines Fax-/Datenmodems bereit.
-
Die
Telekommunikationsschnittstelle unterstützt Echtzeit-Datenströme auf intuitive
Weise, wodurch die Funktionalität
von Personalcomputern hinsichtlich Kommunikation und Multimedia
erweitert wird, während der
Weg zu äußerst nutzvollen
neuen Anwendungen in der kommenden Dekade bereitet wird. Diese neuen Anwendungen
werden aufkommende Technologien, wie zum Beispiel Sprachein-/ausgabe,
Multimedia, geschäftliche
Verbindungen und Fern-Desktop-Zugriff, umfassen. Sprachein-/ausgabe,
Datenkommunikationen, Faxkommunikationen, intelligente Telefonie
und Freisprechbetrieb können
unabhängig
von dem zugrundeliegenden Kommunikationskanal ausgeführt werden.
In neueren Computern mit einem digitalen Signalprozessor (DSP),
welcher anspruchsvolle Klangfunktionen ermöglicht, kann ein spezieller
DSP-Soundtreiber verwendet werden, um den DSP-Sound-Ablauf zu korrigieren,
um so Standardsound in die Telekommunikationsschnittstelle hinein-
und aus der Telekommunikationsschnittstelle herauszuführen. Somit
kann der Datenstrom der Telekommunikationsschnittstelle in transparenter
Weise an die Systemsoftware-Erfordernisse
angepaßt
werden. Sprachein-/ausgabe, Klangaufnahme/-wiedergabe und andere
standardmäßige Systemklangfunktionen können daher über das
globale Netzwerk verwendet werden. Diese standardmäßigen Systemklangfunktionen können Telefon-Tools
umfassen, um Anruf-Verwaltungsfunktionen, DTMF/Impulswahl und DTMF-Erfassung, Gabelumschaltsteuerung,
Benachrichtigung bei eingehendem Anruf, und Soundsystem-Schnittstelle für Aufnahme/Wiedergabe
zu ermöglichen.
-
Die
Telekommunikationsschnittstelle ist vollkompatibel mit ISDN und
ermöglicht,
daß ISDN
auf einer breiten Masse der existierenden installierten Basis von
PCs betrieben werden kann, womit möglicherweise das "Henne-Ei"-ISDN-Dilemma beendet
werden kann. Die Telekommunikationsschnittstelle stellt daher eine
preiswerte, einheitlich-digitale weitverzweigte serielle Verbindung
bereit. Die resultierende einheitliche Darstellung der globalen
Verbindungsfähigkeit – einschließlich PBX,
ISDN und Analogtelefonie (Sprache/Daten/Fax) – betrachtet alle Kanäle als einen
digitalen Datenstrom. Kommunikationsdienste können unabhängig von der Übertragungsart
(Übertragungsunabhängigkeit)
funktionieren, so daß die
installierte Basis von Faxgeräten
(weltweit 25 Millionen) ein Bild zu einem Computer ohne spezielle
Analogverbindungen senden kann. ISDN-"Inseln" sind durch das Zusammenwirken mit dem
weltweiten analogen Telefonnetz verbunden; daß heißt, digitale Daten können über die
Telekommunikationsschnittstelle, bei Verwendung von ISDN, zu einem
analogen Telefon gesendet werden, welches mit einem Modem ausgestattet
ist. Alle Fax/Daten-Standards können
unterstützt werden,
was in einer eng miteinander verwobenen digitalen Telekommunikationsverbindung
resultiert, welche eine neue Dimension der Funktionalität für PCs durch
seine Datenstromverarbeitung hervorbringt.
-
Die
Telekommunikationsschnittstelle ist sowohl portabel als auch skalierbar,
was zuläßt, daß Telekommunikationstechnologien über einen
weiten Bereich von Plattformen verwendet werden können. Ein
Hardware-unabhängiges
Datenstromprozessormodell wird mit einem geschichteten Protokoll
verwendet, um die Hardware-Unabhängigkeit
zu gewährleisten.
Eine serielle Hardware-Abstraktions-Ebene (Hardware abstraction
layer – HAL) "versteckt" die Eingabe/Ausgabe-Hardware-Implementation für die oberen
Protokollebenen. Falls daher ein unterschiedliches serielles Subsystem
in einer neuen Generation von Computern verwendet wird, ist die
einzige Ebene, die geändert
werden muß,
die serielle HAL. Ein serieller Treiber stellt Befehle, Hintergrund
und zeitgleiche Echtzeitströme
bereit, welche Sprachein-/-ausgabe, Videophon, Modems, Fax und andere
Echtzeitdatenströme
unterstützt.
Ein POD-Handler implementiert die Funktionalität, welche durch den angeschlossenen
Telekommunikations-POD bereitgestellt wird. Die Telekommunikationsschnittstelle
stellt daher eine erweiterbare weitverzweigte Telekommunikations-"Verbindung" für PCs bereit.
-
Gleichzeitig
behält
die Telekommunikationsschnittstelle eine Rückwärtskompatibilität für eine breite Baureihe
von existierenden PCs aufrecht. Dies wird durch Verwendung von Verbindungs-kompatiblen
Schnittstellen auf der Datenstrom-Ebene erzielt.
-
Kurze Beschreibung
der Zeichnung
-
Die
vorliegende Erfindung kann durch die folgende Beschreibung in Verbindung
mit den beigefügten Zeichnungen
besser verstanden werden. In den Zeichnungen ist:
-
1 ein vereinfachtes Blockdiagramm
einer Telekommunikationsarchitektur für intelligente Computertelefonie,
mit welcher die vorliegende Erfindung verwendet werden kann;
-
2 eine teilweise schematische
Ansicht eines neunpoligen Mini-DIN Verbinders, welcher in Verbindung
mit der vorliegenden Erfindung verwendet werden kann;
-
3 ein Diagramm eines Kommunikations-Flags-Byte,
welches durch die Telekommunikationsschnittstelle während einer
Initiierungs-Sequenz übertragen
worden ist;
-
4 ein Diagramm eines verallgemeinerten
TDM-Datenübertragungsblocks,
welcher von der Telekommunikationsschnittstelle in einer TDM-Schnittstellenbetriebsart
verwendet wird;
-
5 ein Diagramm eines Beispiels
des TDM-Informationsfeldes
in 4 mit Strömen, welche
einen Verschachtelungsfaktor aufweisen;
-
6 ein Diagramm eines weiteren
Beispiels des TDM-Informationsfeldes
in 4 mit Strömen, welche
einen weiteren Verschachtelungsfaktor aufweisen;
-
7 ein Diagramm eines Strommodels,
welches in der Telekommunikationsschnittstelle verwendet wird;
-
8 ein Diagramm eines Basis-DMA-Paketformats,
welches von der Telekommunikationsschnittstelle in einer paketierten
Schnittstellenbetriebsart verwendet wird;
-
9 ein Diagramm eines Multi-Paket-Datenübertragungsblockes,
welcher von der Telekommunikationsschnittstelle in einer paketierten
Schnittstellenbetriebsart verwendet wird;
-
10 ein Diagramm eines Abfrage-Datenübertragungsblock-Formats, welches
von der Telekommunikationsschnittstelle in einer gepollten Empfangsbetriebsart
der paketierten Schnittstellenbetriebsart verwendet wird;
-
11 ein Diagramm eines Abfrage-Datenübertragungsblocks
mit Längenformat,
welches von der Telekommunikationsschnittstelle in einer gepollten
Empfangsbetriebsart der paketierten Schnittstellenbetriebsart verwendet
wird;
-
12 ein Diagram eines Strom-Null-Abfrage-Datenübertragungsblock-Formats,
welches von der Telekommunikationsschnittstelle in einer gepollten
Empfangsbetriebsart der paketierten Schnittstellenbetriebsart verwendet
wird;
-
13 ein Diagramm eines ACK-Datenübertragungsblockformats,
welches von der Telekommunikationsschnittstelle in einer gepollten
Empfangsbetriebsart der paketierten Schnittstellenbetriebsart verwendet wird;
-
14 ein Diagramm eines Datenübertragungsblockformats,
welches von der Telekommunikationsschnittstelle in einer gepollten
Empfangsbetriebsart der paketierten Schnittstellenbetriebsart verwendet
wird;
-
15 ein Diagramm eines NOP-Datenübertragungsblockformats,
welches von der Telekommunikationsschnittstelle in einer gepollten
Empfangsbetriebsart der paketierten Schnittstellebetriebsart verwendet wird;
-
16 ein Diagramm einer Abfrage-Datenübertragungsblock-Kollisions-Sequenz,
welche von der Telekommunikationsschnittstelle verwendet wird, um
sich von einer Abfrage-Datenübertragungsblock-Kollision wiederherzustellen;
-
17 ein Zeitablaufdiagramm,
welches den Paketaustausch in einer gepollten Empfangsbetriebart der
paketierten Schnittstellenbetriebsart darstellt; und
-
18 ein Zeitdiagramm, welches
den Paketaustausch in einer isochronen Handshake-Übertragungsbetriebsart
der paketierten Schnittstellenbetriebsart darstellt.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsformen
-
Hier
wird eine Telekommunikationsschnittstelle beschrieben, welche verwendet
werden kann, um eine Vielfalt von Telekommunikationsvorrichtungen,
oder "PODs", mit Personalcomputern
und Computer-Workstations zu verbinden. Die Telekommunikationsschnittstelle
funktioniert über
die in fast alle Personalcomputer eingebauten seriellen Anschlüsse. Diese
Beschreibung spezifiziert, wie Daten auf der seriellen Leitung übertragen
werden. Sie spezifiziert keine anderen Parameter von Telekommunikations-Pods,
wie zum Beispiel Datenformate oder Befehlswerte, da diese Vorrichtungs-
und Implementierungs-abhängig
sind.
-
Die
Telekommunikationsschnittstelle stellt eine Unterstützung zum
Verbinden von Kommunikations-Pods an einem seriellen Computeranschluß über ein
kurzes Kabel bereit. Somit wird angenommen, daß Kommunikationen über die
Telekommunikationsschnittstelle fehlerfrei sind. Außerdem werden
Ablaufsteuerungsmechanismen bereitgestellt, um sicherzustellen,
daß Daten
nicht aufgrund fehlenden Pufferspeichers verlorengehen.
-
Die
serielle Telekommunikationsschnittstelle stellt eine Unterstützung für verschiedene
Kommunikationsbetriebsarten bereit, welche für verschiedene Ein-/Ausgabe-Subsysteme
geeignet sind, welche gegenwärtig
von verschiedenen Personalcomputern verwendet werden. Zwei Arten
von seriellen Ein-/Ausgabe-Subsystemen
werden weitgehend auf existierenden Computern verwendet, während neue
Computer mit ziemlich verschiedenen Ein-/Ausgabe-Architekturen konstruiert
sind. Bei einer Art von seriellem Ein-/Ausgabe-Subsystem wird ein
Serieller Kommunikations-Kontroller (SCC) verwendet, welcher vollständig von
der CPU verwaltet wird. Bei einer anderen Art von seriellem Ein-/Ausgabe-Subsystem
ist ein Ein- /Ausgabeprozessor
(zum Beispiel aus einem 6502 Prozessor und DMA bestehend) bereitgestellt,
welcher optional den SCC verwalten und die CPU entlasten kann. Diese
letzteren Geräte
können
typischerweise auch in der Kompatibilitätsbetriebsart betrieben werden,
wobei der SCC von der CPU verwaltet wird. Neue Computer sind mit
DMA und Kanal-Prozessoren
ausgestattet, welche das Verwalten des SCC entlasten können. Drei
Grundarten von Pods, welche zusammen mit der Telekommunikationsschnittstelle
verwendet werden können,
sind POTS- ("Plain-Old-Telephone-Service" – normaler herkömmlicher
Telefondienst) Pods, ISDN-Pods und PBX-(Private Branch Exchange – Nebenstellenanlage)
Pods. Pods können
verwendet werden, um Verbindungen zu herkömmlichen analogen Telefonleitungen
bereitzustellen. ISDN-Pods können
verwendet werden, um Verbindungen zu Grundraten-ISDN-Leitungen bereitzustellen.
Schließlich
können
PBX-Pods verwendet werden, um Verbindungen zu geschützten PBX-Leitungen
bereitzustellen. Eine unterscheidende Eigenschaft dieser drei Arten
von Pods ist, daß sie
eine Anschlußfähigkeit
für eine
oder beide der zwei verschiedenen Arten von Kommunikations-Leitungen,
nämlich
analog und digital, bereitstellen. Zum Beispiel sind POTS-Leitungen
rein analog, ISDN-Leitungen
sind rein digital und PBX-Leitungen können entweder analog, digital
oder eine Mischung aus beidem sein. Die serielle Telekommunikationsschnittstelle
stellt verschiedene Verfahren des Formatierens von Daten über die
serielle Leitung bereit, welche an diese verschiedenen Arten von
Daten angepaßt
sind.
-
Die
Telekommunikationsschnittstelle kann auch verwendet werden, um viele
andere Arten von Pods zusätzlich
zu den gerade erwähnten
zu unterstützen.
Zum Beispiel könnte
sie als eine Schnittstelle für
ein lokales Netzwerk-Pod verwendet werden. Jedoch ist die Telekommunikationsschnittstelle
durch die Leistung des seriellen Anschlusses des Computers beschränkt. Auf
den meisten Macintosh-Computern ist zum Beispiel die Signalrate
begrenzt auf 918 KBits/s (1/4 der PCLK-Rate von 3,672 MHz des SCC).
Für beschränkte Datensignalfolgen
kann die Datenrate die tatsächliche
serielle Taktfolge erreichen. Für
länger
anhaltende Datenübertragungen,
insbesondere solche, welche kontinuierlich im Hintergrund, wie zum
Beispiel für
einen LAN-Pod, arbeiten, sollte der tatsächliche Durchsatz beschränkt werden,
um ein Nicht-Ansprechen
des Computers zu vermeiden. Dies liegt daran, daß viele Computer zu 100 für serielle
Kommunikationen bestimmt sind, wenn sie über die Verbindung empfangen
oder übertragen.
Bei neueren Computern mit DMA kann die Datenrate höher sein.
Bei neueren Macintosh-Computern mit DMA ist zum Beispiel die Datenrate
durch die SCC Taktfolge und die Beschränkungen der RS 422-Treiber
des SCC beschränkt
auf 4 MBits/s. Daher ist auf diesen Geräten die Telekommunikationsschnittstelle
in der Lage, T1 Datenraten zu unterstützen, daß heißt 1,544 MBit/s in den Vereinigten
Staaten und 2,048 MBit/s in Europa.
-
Mit
der Telekommunikationsschnittstelle verbundene Pods können mehr
als einen Datenstrom aufweisen, wie zum Beispiel ISDN, welches zwei
64 KBits/s 'B'-Kanäle und einen
16 KBits/s 'D'-Kanal aufweist.
Die serielle Telekommunikationsschnittstelle spezifiziert zwei Arten
von Schnittstellen, das heißt
TDM und paketiert, und zwar zum Multiplexen dieser mehreren Ströme.
-
Physische
und elektrische Schnittstelle
-
Zwei
physische und elektrische Schnittstellen werden von der Telekommunikationsschnittstelle
unterstützt.
Erstens, sowohl der klassische achtpolige Mini-DIN-Verbinder als
auch ein neuer neunpoliger Mini-DIN-Verbinder werden von der Telekommunikationsschnittstelle
unterstützt.
Zweitens, sowohl eine nicht-DMA elektrische Schnittstelle und eine
DMA elektrische Schnittstelle werden definiert.
-
Sowohl
TDM (Zeitmultiplex) als auch paketierte Betriebsarten der Datenübertragung
werden, wie unten diskutiert, bereitgestellt. Pods, welche die TDM-Schnittstelle
unterstützen,
erfordern einen Computer, welcher die definierte DMA-Schnittstelle unterstützt. Zwei
Arten von Empfangsbetriebsarten werden für die paketierte Schnittstelle
beschrieben, nämlich
DMA und gepollt. Die DMA-Empfangsbetriebsart erfordert, wie der Name
impliziert, die definierte DMA-Schnittstelle.
Die gepollte Empfangsbetriebsart erfordert keine DMA-Schnittstelle.
-
Durch
Bereitstellen von zwei physischen und elektrischen Schnittstellen
und sowohl TDM- als auch paketierten Betriebsarten der Datenübertragung
erzielt die Telekommunikationsschnittstelle Kompatibilität mit einer
großen
Auswahl an existierenden Computern, und stellt gleichermaßen Kompatibilität mit einer
großen Auswahl
von neuen Computern sicher.
-
Mit
Bezug auf 2 ist ein
neuer neunpoliger Mini-DIN-Verbinder,
welcher von der Telekommunikationsschnittstelle unterstützt wird,
der gleiche wie der achtpolige Mini-DIN-Verbinder, welcher in vielen heutigen Computern
mit zwei leichten Unterschieden verwendet wird: Die Hinzufügung eines
neunten Versorgungspins, und eine Tastmarkierung. Achtpolige Mini-DIN-Stecker
vom älteren
Typ passen in die neue Verbinderbuchse, da die Pinausrichtung der
ersten 8 Pins identisch ist. Die Tastmarkierung hilft dem Benutzer
zu vermeiden, ein neunpoliges Mini-DIN-Kabel in einen achtpoligen
Mini-DIN-Verbinder zu stecken, was den neunten Pin am Kabel beschädigen könnte.
-
Um
ein Gerät
mit einem achtpoligen Verbinder anstelle des neunpoligen Verbinders
an ein Pod anzupassen, welches den neunten Pin erfordert, muß ein Adapter
bereitgestellt werden. Ein möglicher
Adapter kann drei Verbindungen aufweisen, ein achtpoliges Kabel,
welches zum klassischen achtpoligen Mini-DIN-Verbinder am Computer
läuft,
einen neunpoligen Verbinder für
das Pod, und im Falle eines Macintosh-Computers, zum Beispiel einen ADB(Apple
Desktop Bus)-Verbinder,
um von dem ADB-Sytem versogt zu werden. Dieser Adapter könnte optional
das Gerät
einschalten, zum Beispiel, wenn das Telefon klingelt, da es ein
ADB-Gerät ist.
Die elektrische Definition der Signale, welche der Telekommunikationsschnittstelle überlagert
sind, ist eine Überordnung
der standardmäßigen seriellen
Schnittstelle. Zwei Schnittstellen für die Telekommunikationsschnittstelle
sind definiert, eine für
Geräte
mit einer DMA-Schnittstelle, und die andere für Geräte ohne DMA. Tabelle 1 zeigt
die PIN-Definitionen
für den
Verbinder aus 2.
-
-
Die
Belegungen für
die TXD+, TXD-, RXD+ & RXD-
-Pins sind identisch zu denen für
den standardmäßigen seriellen
Anschlußverbinder.
Die anderen Pins weisen neue Belegungen auf, welchen unten beschrieben
sind, obwohl hinzugefügt
werden sollte, daß die
Eingabe- und Ausgabe-Eigenschaften dieser Pins nicht geändert worden
sind. Daher sind alle standardmäßigen seriellen
Anschlußeingangspins
als Eingänge beibehalten
und alle standardmäßigen seriellen
Anschlußausgänge sind
noch Ausgänge
am Verbinder nach 2.
-
Es
gibt drei Steuerpins am standardmäßigen seriellen Anschlußverbinder:
HSK0, HSKi und GPiA.
-
Die
HSK0-Leitung kann optional eine einfache
oder zweifache Funktion nach Belieben des Pod-Entwicklers bereitstellen.
In der Betriebsart der einfachen Funktion arbeitet die HSK0-Leitung einfach als eine Reset-Leitung,
so daß,
wenn HSK0 für mindestens 1 μs aktiviert
wird (Spannung am Kabel), das Pod sich selber auf einen bekannten
Zustand zurücksetzen
muß. Am
Ende des Pulses, genannt der Reset-Puls, muß das Pod einen "Funk-Zustand" eingeben, oder eine
Pod-Identifikation
und einen Selbst-Konfigurationszustand, was im Detail unten beschrieben
ist.
-
In
der doppelt-funktionalen Betriebsart unterstützt die HSK0-Leitung
nicht nur die Reset-Funktion, sondern auch eine Abruf-Funktion.
Ein Abruf-Impuls ist definiert als ein aktiver (high) Impuls, welcher
zwischen 1 und 5 μs
andauert. Dies kann verwendet werden, um den Betrieb des Pods zu
unterbrechen, um eine kritische Operation auszuführen, wie zum Beispiel einen
Debugger für
Entwicklungszwecke einzugeben. Die tatsächliche Wirkweise des Abruf-Impulses
ist Pod-spezifisch. In der Betriebsart mit zwei Funktionen ist der
Reset-Impuls definiert als ein aktiver Impuls, welcher länger als
15 μs andauert.
-
Wenn
die Telekommunikationsschnittstelle einen Pod in den Funk-Zustand
zwingen will, wird es immer die Reset-Leitung für mehr als 15 μs aktiv (high)
halten, um einen der beiden Typen der HSK0-Betriebsart
zu unterstützen.
Außerdem
wird die Telekommunikationsschnittstelle die HSK0-Leitung
niemals für
mehr als 50 ms aufrechterhalten. Dies verhindert, daß ein nicht
kompatibles Gerät
für eine
lange Zeitdauer aktiv ist. Einige serielle Geräte interpretieren HSK0 als die DTR (Data Terminal Ready – Datenterminal
bereit)-Leitung
und können
automatische Operationen ausführen,
wenn es aktiviert wird, wie zum Beispiel das Wählen eines Telefons. Um die
Probleme zu vermeiden, ist die aktive Periode des HSK0 so
festgelegt, daß sie
50 ms lang aufrechterhalten wird.
-
Der
serielle Taktgeber wird von dem Pod auf dem Pin SCLK (Pin 2) bereitgestellt.
Die Taktrate hängt ab
von den Fähigkeiten
des jeweiligen Hostgeräts.
Zum Beispiel beträgt
die maximale Taktrate, welche auf gegenwärtigen Macintosh-Computern unterstützt wird,
918 KBits/s. Einige neue Macintosh-Modelle unterstützen wenigstens
2,048 MBits/s. (Diese Rate ist für
Synchronisation mit dem neueren Macintosh Sound/DSP-Subsystem selbstverständlich,
wie detaillierter in der am 7. Mai 1993 angemeldeten mit-anhängigen US-Anmeldung Nr. 08/058,257
beschrieben ist, und welche hierin durch Bezugnahme miteinbezogen
ist). Falls ein Entwickler eines Pods eine breite Masse von Geräten unterstützen will,
jedoch nur eine Taktfrequenz unterstützen will, muß das Pod
mit einer Taktfrequenz nicht größer als
die von dem langsamsten Gerät
unterstützten
ausgebildet sein. Der Entwickler kann auch wählen, daß sein Pod sowohl eine geringere
Taktfrequenz als auch eine höhere
Taktfrequenz für
bessere Leistung auf neuen Geräten
unterstützt.
Die tatsächliche
Datenrate wird während
der Funk-Phase, wie unten beschrieben, vereinbart.
-
Der
GPiA Eingabe-Pin erfüllt zwei Funktionen. Zunächst stellt
es ein Weckruf-Signal für
den Computer bereit. Dies gestattet einem Pod, den Computer einzuschalten,
wenn es einen eingehenden Ruf gibt. Zweitens dient GPiA als
die Übertragungs-DMA-Handshake-Leitung
(zum Pod).
-
Die
Gleichstromversorgung stellt 5 V bei 300 μA für den Pod bereit. Dies wird
genug Energie für
die große
Mehrheit an Geräten
bereitstellen, wodurch das Erfordernis für eine separate Energieversorgung
für das Gerät entfällt. Auf
Geräten,
welche keinen neunpoligen Mini-DIN-Verbinder umfassen, wird ein
spezieller Adapter gebraucht, damit das neunpolige Kabel des Pods
an den achtpoligen Mini-DIN-Verbinder paßt, und um Energie für den Pod
durch andere Mittel, wie zum Beispiel eine ADB-Verbindung oder eine
externe Energieversorgung, bereitzustellen.
-
Auf
Geräten,
welche das Merkmal "Weckruf
bei eingehendem Anruf" unterstützen, stellt
Pin Nr. 9 Erhaltungs-Energie vom Host zum Pod bereit. Für Geräte, welche
dieses Merkmal nicht unterstützen,
wird das Pod mit dem Host abgeschaltet.
-
Wie
unten beschrieben, gibt es zwei Arten von Datenstromsschnittstellen,
TDM und paketiert, welche von der Telekommunikationsschnittstelle
unterstützt
werden. Die Telekommunikationsschnittstelle verwendet eine asynchrone
Form der Telekommunikation mit 1 Startbit, 1 Stoppbit und keiner
Parität.
Die Paketierte Schnittstelle verwendet HDLC-Framing; das heißt ein Flag-Zeichen
(0×7E)
wird am Anfang und Ende eines Datenübertragungsblockes mit 0 Stopf-Bits
innerhalb des Datenübertragungsblockes
gesendet.
-
Asynchrones
Framing wurde für
die TDM Schnittstelle gewählt,
da Daten nicht in Blöcken übertragen werden,
sondern als individuelle Bits, da sie außerhalb der Kommunikationsleitung
eintreffen. HDC-Framing ist nur vorteilhaft in Fällen, wo Daten in großen Blöcken übertragen
werden, wie es der Fall für
die paketierte Schnittstelle ist.
-
Asynchrones
Framing ist adäquat
für TDM-Schnittstellen,
wo die Datenverbund-Datenübertragungsrate
nicht die Taktfrequenz an der Schnittstelle erreicht (2,048 MBits/s
in einer bevorzugten Ausführungsform). Unterstützung von "Monosync" -Betriebsart kann
auch wünschenswert
sein für
Fälle,
wo eine tatsächliche
Datenrate von 2,048 MBits/s unterstützt werden muß, da sonst
keine Bandbreite für
die Start- und Stoppbits des asynchronen Framings verbleiben würde.
-
In
einer bevorzugten Ausführungsform
sind alle Daten in NRZ-Format kodiert. Daten werden unter Benutzung
von RS-422 Treibern mit unterschiedlichen Paaren für Übertragungs-
und Empfangsdaten gesendet.
-
Pod-Handhabung
-
Wenn
das Pod eingeschaltet wird, oder einen Reset-Impuls empfängt, wird
es ein Funk-Signal senden, welches verwendet wird, um den Typ des
Pods zu identifizieren und den Computer und das Pod zu synchronisieren.
Dies wird die Funk-Phase
der Schnittstelle genannt. Das Funken des Pods kann verwendet werden, um
das entsprechende Pod-Handler-Softwaremodul
im Computer zu identifizieren und zu laden.
-
In
einer beispielhaften Ausführungsform
besteht das Funk-Signal
aus dem Folgenden:
0×A5,
0×5A,
Pod Id MSB, Pod Id LSB,
Pod-Parameter MSB, Pod-Parameter LSB,
Prüfsumme,
wobei
Pod ID eine 16 Bit Quantität
ist, welche den Typ des angeschlossenen seriellen Geräts identifiziert.
Die Pod-ID kann auf ein spezifisches Pod-Handler-Softwaremodul abgebildet
werden, welches verwendet wird, um Kommunikationen mit dieser Art
von Gerät
zu handhaben. Die Pod-ID ist unterteilt in zwei Felder, eine Familien-ID
in dem höherwertigen
Byte und eine Pod-spezifische ID in dem niederwertigen Byte.
-
Familien-IDs
können
unter anderem IDs für
Telefonie, Digitalabbildungsgeräte
und LANs umfassen. Telefonie-Pod IDs können unter anderem IDs für POTS,
ISDN und PBXs umfassen.
-
Die
Podparameter Bytes sind für
das Pod von lokaler Bedeutung und können verwendet werden, um grundlegende
Information, wie zum Beispiel die Hardwareversion des Pods zu übermitteln.
-
In
einer beispielhaften Ausführungsform
wird die Prüfsumme
aller Bytes beim Funken berechnet (das heißt 0×A5 + 0×5A + Pod ID Byte 2 + ... +
Pod Parameter Byte 0), wobei das Übertragsbit ignoriert wird,
(das heißt,
die Addition wird ausgeführt
mit Modulo 0×100).
-
Das
Funk-Signal wird immer mit asynchronem Framing gesendet: 1 Startbit,
1 Stoppbit und keine Parität.
Es kann entweder bei 9600 baud oder bei der Telekommunikationsschnittstellen-Taktfrequenz
gesendet werden. Wenn es bei der Telekommunikationsschnittstellen-Taktfrequenz
gesendet wird, dann sollten paketierte Pods Funk-Bytes nicht öfter als
1 Byte pro Millisekunde senden, um ein Überlaufen des Empfänger des Computers
zu vermeiden. TDM-Pods haben nicht das gleiche Erfordernis, da sie
nicht mit nicht-DMA Geräten funktionieren.
Das Pod sollte das definierte Funk-Sigal nur einmal übertragen.
In Übereinstimmung
mit einer gegenwärtigen
Definition sollte das Pod das Funk-Signal innerhalb 200 ms vervollständigen und
das erste Byte nicht später
als 10 ms nach dem Ende des Reset-Impulses übermitteln, obwohl andere Definitionen
auch möglich
sind.
-
Eine
Funk-Bestätigungssequenz
ist der paketierten Schnittstelle überlagert, welche die Funk-Sequenz in
dem Pod beendet und es darauf vorbereitet, Pakete zu empfangen.
Die Funk-Bestätigungssequenz
besteht wie folgt aus 13 Bytes: 0×5A, 0×A5, Schnittstellentyp, Kommunikations-Flags-Byte, Datengeschwindigkeitsbyte
3, Datengeschwindigkeitsbyte 2, Datengeschwindigkeitsbyte 1, Datengeschwindigkeitsbyte
0, Maximum Host zu Pod Framegröße MSB,
Maximum Host zu Pod Framegröße LSB,
Maximum Pod zu Host Framegröße MSB,
Maximum Pod zu Host Framegröße LSB,
Prüfsumme.
-
Der
Wert des Schnittstellentyps an der gegenwärtigen Telekommunikationsschnittstelle
ist immer ein fester vorbestimmter Wert. Dies läßt zu, daß andere Schnittstellentypen
von einem einzigen Pod unterstützt werden
können.
Zum Beispiel, falls das Pod mit einem Macintosh-Computer mit dem
gegenwärtigen
Protokoll und mit einem PC mit einem unterschiedlichen Protokoll
verbunden werden soll, dann würde
der Schnittstellentyp einen unterschiedlichen Wert in diesen zwei
Fällen
annehmen.
-
Der
maximale Datengeschwindigkeitsparameter ist eine 32-Bitquantität, welche
die maximale Datengeschwindigkeit anzeigt, welche der Computer unterstützen kann.
Falls das Pod eine Datenrate weniger als oder gleich diesem Wert
unter stützen
kann, dann wird es mit dem tatsächlichen
Wert in seiner Funk-Vervollständigungssequenz
antworten. Falls das Pod nur Taktfrequenzen größer als diesen Wert unterstützt, dann wird
er mit einem Fehler im Ergebniskode antworten, da der Kode mit dem
Computer nicht kompatibel ist.
-
Die
Maximale-Framegröße-Parameter
indizieren die maximalen Frames in Bytes, welche der Computer in
jeder Richtung unterstützen
kann. Das Pod wird mit den gleichen Parametern in seiner Funk-Vervollständigungssequenz
antworten. Falls das Pod diesen oder einen größeren Frame unterstützen kann,
dann wird es mit dem gleichen Wert antworten. Falls das Pod nur
einen kleineren Frame unterstützt,
dann wird es mit der kleineren Größe antworten. Diese Vereinbarung
der Framegröße zur Funk-Zeit
bestimmt die maximale Größe, welche
jede Seite unterstützt.
Die gegenwärtige
Größe kann
dynamisch nach unten von diesen Einstellungen durch einen Set Frame
Size Stream 0-Befehl eingestellt werden, wobei Stream 0 als der
Steuerungsstrom festgelegt ist.
-
Die
Prüfsumme
wird berechnet, genauso wie im Fall der Funk-Sequenz, aufgrund aller Bytes in der Funkbestätigung;
das heißt
0×5A +
0×A5 +
Schnittstellentyp + ... + Maximum Pod zu Mac Framegröße LSB, wobei
das Übertragbit
ignoriert wird.
-
Das
Format des Kommunikations-Flags-Bytes ist in
3 dargestellt. In einer beispielhaften
Ausführungsform
ist die Bedeutung dieser Bits wie folgt:
Host
Rcv Betriebsart | indiziert
die Empfangsbetriebsart des Host |
00 | Host
wird in gepollter Empfangsbetriebsart mit Längenfeld operieren |
01 | Host
wird in gepollter Empfangsbetriebsart ohne Längenfeld operieren |
10 | Host
wird in DMA Empfangsbetriebsart operieren |
11 | Host
kann entweder in gepollter oder DMA Empfangsbetriebsart operieren |
Pod
Rcv Betriebsart | indiziert
von Pod erwartete Empfangsbetriebsart |
00 | Pod
wird erwartet, in gepollter Empfangsbetriebsart mit Längenfeld
zu operieren |
01 | Pod
wird erwartet, in gepollter Empfangsbetriebsart ohne Längenfeld
zu operieren. |
10 | Pod
wird erwartet, in DMA Empfangsbetriebsart zu operieren |
11 | Pod
kann entweder in gepollter oder DMA Empfangsbetriebsart operieren |
Reserviert | nicht
gebraucht und sollte vom Pod ignoriert werden. |
-
In
einer bevorzugten Ausführungsform
kann das Pod die Empfangsbetriebsart in der Funk-Vervollständigungssequenz
nur in bestimmten Fällen ändern.
-
Falls
irgendeine der Betriebsarten als "11" in
der Funk-Bestätigungssequenz
spezifiziert ist, muß das Pod
mit einer der Nicht-"11"-Betriebsarten in
der Funk-Vervollständigungssequenz
antworten. Pods, welche sowohl gepollte als auch DMA-Empfangsbetriebsarten
unterstützen
können,
sollten die DMA-Betriebsart bevorzugen. Außerdem, falls eine der Betriebsarten
als "01" spezifiziert ist,
kann es vom Pod in der Funk-Vervollständigungssequenz auf "00" herabgesetzt werden.
Diese Empfangsbetriebarten sind im Detail in Verbindung mit der
paketierten Schnittstelle weiter unten beschreiben.
-
Das
Pod antwortet auf die Funk-Bestätigungssequenz
mit einer Funk-Bestätigungssequenz.
Die Funk-Vervollständigungssequenz
umfaßt
wie folgt 10 Byte:
Ergebniskode, Kommunikations-Flags-Byte,
Datengeschwindigkeits-Byte 3; Datengeschwindigkeits-Byte 2, Datengeschwindigkeits-Byte
1, Datengeschwindigkeits-Byte 0, Maximum Host zu Pod Framegröße MSB,
Maximum Host zu Pod Framegröße LSB,
Maximum Pod zu Host Framegröße MSB,
Maximum Pod zu Host Framegröße LSB.
-
Der
Ergebniskode zeigt an, ob das Pod korrekt zu diesem Zeitpunkt arbeitet
und ob die in der Funk-Bestätigungsfolge
indizierten Parameter von dem Pod unterstützt werden können. Falls
der Ergebniskode negativ ist, dann tritt ein Nicht-Behebbarer Fehler
auf. Entweder hat ein Pod-Selbsttest
fehlgeschlagen und das Pod ist nicht betriebsfähig oder einer der Kommunikationsparameter
ist mit dem Pod inkompatibel. Die folgende Ergebniskodes sind definiert
als:
-
-
Ergebniskodes
geringer als –127
werden als Pod-spezifisch betrachtet und werden einfach an den Pod-Handler
weitergeleitet.
-
Das
Kommunikations-Flags-Byte und die Pod-Framegrößen-Vereinbarung ist oben beschrieben. Die Datengeschwindigkeit
indiziert die tatsächliche
Telekommunikationsschnittstellen-Taktgeschwindigkeit, welche von
dem Pod dem Host durch die Telekommunikationsschnittstelle bereitgestellt
wird. Dies erlaubt es dem Host, Zeitablaufparameter entsprechend
zu setzen.
-
Datenströme
-
Multiple
Datenströme
können
zwischen einem Pod und dem Host durch die vorliegende Telekommunikationsschnittstelle
unterstützt
werden. Zum Bespiel könnte
ein POTS-Telefonie-Pod zwei analoge Kanäle unterstützen, einen zum Verbinden mit
der Telefongesellschaft und den anderen für ein Handset. Ein weiteres Bespiel
ist ein ISDN-Pod, welches zwei 64 KBits/s "B"-Kanäle und einen
16 Kbits/s "D"-Kanal unterstützen kann.
Zusätzlich
können
andere Ströme
für spezielle
Pod-Steuerfunktionen verwendet werden, wie zum Beispiel Austesten
eines eingebetteten Prozessors. Zwei vollständig unterschiedliche Daten
von Datenstromschnittstellen werden von der Telekommunikationsschnittstelle
unterstützt,
nämlich
TDM (Time Devision Multiplex) und Paketiert. Die TDM-Schnittstelle wird
von Pods verwendet, welche die Konstantbitrate (CBR) -Datenströme zum Host
bereitstellen. In diesem Fall werden die verschiedenen Ströme als miteinander
vermengte Dateneinheiten gesendet, welche sich bis unendlichen wiederholen.
Die TDM-Schnittstelle wird nur auf Hosts unterstützt, welche mit DMR und einer
definierten DMR-Schnittstelle
ausgestattet sind.
-
Die
Paketierte Schnittstelle soll auf allen Hostgeräten unterstützt werden, und unterstützt Datenströme sowohl
mit Konstanter Bitrate (Constant Bit Rate – CBR) als auch Variabler Bitrate
(Variable Bit Rate – VBR). Pakete
werden sowohl zum Tragen von VBR-Strömen verwendet, welche mit den
Ziel-Kommunikationsleitungen assoziiert sind, als auch zum Austauschen
von Steuer-/Zustandsinformation zwischen dem Host und dem Pod. Falls
CBR-Ströme
auch vorhanden sind, dann werden sie durch Reservieren von Bandbreite
in genauen Intervallen an der Schnittstelle gehandhabt. Der serielle
Treiber der Telekommunikationsschnittstelle stellt die grundlegenden
Mechanismen zum Multiplexen dieser Datenströme an der paketierten Schnittstelle
bereit.
-
Bei
genauerer Beschreibung wird die TDM-Schnittstelle durch die spezifische
DMA-Hardware im Host unterstützt.
Zunächst
ist erforderlich, daß der
DMR Vollduplex ist. Dann ist eine Übetragungs-Handshakeleitung
an der seriellen Telekommunikationsschnittstelle, wie oben beschrieben,
bereitgestellt. Wenn das Pod einen Satz von CBR-Daten mit dem Host
austauschen möchte, überträgt es einfach
jedes für
den Host bestimmte Byte und verwendet dann die Übertragungs-Handshakeleitung, um den Host dazu zu
bringen, die entsprechende Anzahl von Bytes zu dem Pod zu übertragen.
Auf diese Weise kann der konstante Bitratenstrom aufrechterhalten
werden, und zwar ohne jeglicher Intervention durch die Host-CPU.
Außerdem
ist das Pod besser beim Einhalten der Zeitabläufe dieses Konstantbitratenstroms
als der Host, da das Pod direkt die Quelle des Stroms, nämlich die
Kommunikationsleitungen) verwaltet.
-
Die
TDM-Schnittstelle wird im Host durch den seriellen HAL in 1, welcher die DMA-Elemente
zum Einstellen dieses CBR-Stroms bereitstellt, und von den Datenstrom-Handlern (wie
zum Beispiel Treiber für Ein-/Ausgabe
von Sound) unterstützt,
auch in 1 dargestellt,
welche die CBR-Datenströme bearbeiten. Steuerung
eines Pods durch eine TDM-Schnittstelle ist Pod-abhängig und
wird vollständig
dem Pod-Handler (Adapterhandler in 1) überlassen.
Typischerweise jedoch werden TDM-Datenströme in feste Längenframes
aufgeteilt, bestehend aus einem Steuerfeld und einem Datenfeld,
wie in 4 dargestellt
ist. Das Steuerfeld trägt
Pod-abhängige
Information und das Informationsfeld trägt die Daten. Diese Frames
werden in einem festen Zeitabstand wiederholt, genannt die Frame-Periode.
Das Steuerfeld ist vollständig
von den Datenstromhandlern durch den Pod-Handler maskiert, welcher
die Datenpuffer für
diese Frames einstellt. Die Besonderheiten dieses Steuerfelds sind
daher unabhängig
für jedes
TDM-artige Pod spezifiziert.
-
Das
Informationsfeld eines TDM-Frames umfaßt eine ganze Zahl von miteinander
verwobenen Datensätzen
für jeden
Strom. Die Byteanzahl in jedem Satz für einen Strom wird der Verschachtelungs-Faktor
(IF) des Stroms genannt. 5 und 6 geben zwei Beispiele von
TDM-Frames mit Strömen
von variierenden IFs.
-
Jeder
Strom in dem Informationsfeld ist durch drei Parameter gekennzeichnet:
- 1. Verschachtelungs-Faktor: Die Anzahl an Bytes
bei jedem Auftreten des Stroms.
- 2. Offset: Die Anzahl an Bytes in das Informationsfeld hinein,
dass das erste Byte des Stromes auftritt.
- 3. Wiederholungsfaktor: der Offset zwischen dem ersten Byte
eines Auftritts des Stroms und dem ersten Byte des nächsten Auftritts
des Stroms, welcher der gleiche für alle Ströme sein wird.
- 4. Gesamtframegröße: Gesamtzahl
von Bytes in einem Frame.
- 5. Framerate: Anzahl an Frames pro Sekunde.
-
Zum
Beispiel ist in 6 der
Verschachtelungs-Faktor von Strom 3 gleich 1, sein Offset beträgt 8 und sein
Wiederholungsfaktor beträgt
9. Aufgrund dieser Parameter sind die Datenstromhandler in der Lage,
die Datenströme,
für welche
sie für
das Handeln verantwortlich sind, zu extrahieren und einzufügen.
-
In
einer bevorzugten Ausführungsform
wird keine Unterstützung
für dynamisches
Einstellen der Größe der Datenmenge,
welche zwischen dem Pod und dem Host gesendet wird, bereitgestellt.
Zum Beispiel würde an
einer T1-Schnittstelle, welche 24 sprachfähige Kanäle von 64 Kbits/s unterstützt, dynamisches
Einstellen der Größe eine Übertragung
von nur den Kanälen
zulassen, welche aktiv sind. Dies würde jedoch sehr den Handshake
verkomplizieren, welcher zwischen dem isochronen Strom-Handlern,
dem Pod-Handler und dem Pod erforderlich ist. Daher wird dynamische
Größeneinstellung
nicht unterstützt.
-
An
der Paketierten Schnittstelle sind Daten für unterschiedliche Ströme nicht
miteinander verschachtelt, wie bei der TDM-Schnittstelle, sondern
werden paketiert und unter Benutzung von HDLC-Framing zwischen dem
Pod und dem Host gesendet. 7 zeigt
die Umgebung der multiplen Ströme.
Wie dargestellt ist, werden die multiplen Datenströme über den
seriellen Anschluß mit
einem oder mehreren Steuerströmen
zur Steuerung des Pods gemultiplext. Der primäre Steuerstrom wird typischerweise
von dem Pod-Handler stammen.
-
Der
Steuerstrom kann verwendet werden, um Verbindungen der Datenströme zusätzlich zu
allgemeinen Pod-Funktionen zu steuern.
-
Drei
grundlegende Arten von Strömen
sind an der paketierten Schnittstelle überlagert, welche verschiedene
Arten von Diensten für
die auf diesen Strömen
gesendeten Daten bereitstellt:
- 1. Isochron:
isochrone Ströme
tragen Daten mit konstanter Bitrate, wie zum Beispiel Sprache oder
Video. Diese Daten werden von Frames fester Größe gesammelt, welche sich mit
einer spezifischen Periode, genannt die Frame-Periode, wiederholen.
Zum Beispiel, bei ISDN würde
sich ein 64 KBits/s "B" Kanal, welcher Sprachdaten
trägt,
typischerweise mit 80 Bytes alle 10 ms wiederholen. Isochrone Ströme stellen
keine Flußsteuerung
bereit, da nach Definition Daten auf jeder Seite innerhalb der gesetzten
Frame-Periode verbraucht werden müssen.
- 2. Befehl: Befehls-Ströme
werden verwendet, um Befehle und Antworten zwischen dem Host und
dem Pod zu senden. Stop- und Warte-Fluß-Steuerung wird für die Befehlströme verwendet,
das heißt,
soweit ein Befehl gesendet worden ist, kann ein anderer Befehl nicht
gesendet werden, bis eine Antwort von der anderen Seite empfangen
worden ist. Die Antwort kann Benutzerdaten umfassen, welche dem
Klienten zugeführt werden,
welcher den Befehl ausgegeben hat. Befehlströme sind von Natur aus Block-Betriebsart-Schnittstellen, das
heißt
Befehle und Antworten werden als eine ganze Einheit der anderen
Seite zugeführt.
- 4. Asynchron: Asynchrone Ströme
werden typischerweise verwendet, um herkömmliche Computerdaten zu tragen,
zum Beispiel AppleTalk oder TCP/IP. Asynchrone Ströme benutzen
einen Gleitfenster-Flußsteuer-Mechanismus, um sicherzustellen,
daß der Übermittler
den Empfänger
nicht überlaufen
läßt. Gleitfenster-Flußsteuerung
erlaubt höhere
Bandbreiten als Stopp- und Warte-Flußsteuerung. Gleitfenster-Flußsteuerungsprozesse
in herkömmlichen
Protokollen, wie zum Beispiel TCP und ADSP, sind sehr viel komplizierter,
und zwar aufgrund der Tatsache, daß sie Fehler-Wiederstellungsalgorithmen
verkörpern.
Fehlerwiederherstellung ist nicht erfordert, da die Telekommunikationsschnittstelle
als fehlerfrei angenommen wird. Asynchrone Ströme stellen auch eine Ratensteuerung
vom Host zum Pod bereit, um sicherzustellen, daß alle Ströme vernünftigen Zugriff auf die Bandbreite
der seriellen Telekommunikationsschnittstelle bekommen. Asynchrone
Ströme
können
konfiguriert werden, um entweder Strom- oder Block-Betriebsart-Dienst bereitzustellen.
Strom-Betriebsart-Dienst
liefert einfach einen Strom von Byts von einer Seite zu der anderen
ohne Bezug auf den Datenblock, mit welchem sie ursprünglich gesendet
worden sind. Block-Betriebsart-Dienst liefert immer Daten in dem
ursprünglichen
von dem übertragenden
Klienten bereitgestellten Block.
-
Eine
Priorität
besteht auch für
Befehls- und asynchrone Ströme,
welche steuern, welche Daten von welchen Strömen zuerst an die serielle
Schnittstelle gesendet werden.
-
Es
gibt zwei Typen paketierter Empfangsbetriebsarten, nämlich DMA
und gepollt. Empfänger,
welche den DMA-Empfangsmodus
unterstützen,
können
256 Ströme
in einer be vorzugten Ausführungsform
unterstützen,
von denen jeder durch eine 8-Bit-ID identifiziert wird. Empfänger mit
gepollter Betriebsart unterstützen
256 oder 8 Ströme
in einer bevorzugten Ausführungsform,
abhängig
davon, ob sie das Längenfeld
im Poll-Frame erfordern, wie detaillierter unten beschrieben ist.
-
Strom
Null wird verwendet, um spezielle Protokollsteuerungspakete zu senden,
und ist nicht für
die Datenübertragung
erhältlich.
Daher ist die Gesamtzahl an Datenströmen 255, und zwar im Fall der
DMA- und der gepollten Betriebsart ohne die Längenfeldempfangsbetriebsarten,
und 7 im Fall der gepollten Betriebsart in Längenfeldempfangsbetriebsart.
-
DMA Empfangsbetriebsartprotokoll
-
Das
grundlegende DMA-Paketformat ist wie das in 8 gezeigte. Das erste Feld ist die Strom-ID, wobei
die Länge
davon die Anzahl an Strömen
in der bevorzugten Ausführungsform
auf 256 beschränkt.
Strom Null ist reserviert als der Steuerungsstrom für die serielle
Telekommunikationsschnittstelle. Strom Null-Befehle werden unten
näher beschrieben.
Das Flags-Feld ist auch weiter unten definiert.
-
Das
Paketlängenfeld
indiziert die Länge
des Informationsfeldes. Das Paket muß aufgefüllt sein, so daß das Paket
eine ganze Zahl von langen Wörtern
einschließlich
des CRC ist. Zum Beispiel, falls die Anzahl an Bytes bis zum Ende
des Informationsfeldes eine ganze Zahl von langen Wörtern ausmacht,
müßte die
Auffüllung
aus 2 Bytes bestehen, welche, mit dem CRC, auch wieder eine ganze
Zahl von langen Wörtern
ausmachen müßte.
-
Multiple
Pakete können
in einem HDLC-Frame, wie in 9 dargestellt
ist, gesendet werden. Jedes Paket innerhalb des Multipaket-Frame
muß eine
ganze Zahl von langen Wörtern
ausmachen, und der gesamte Frame, einschließlich des CRC, muß eine ganze
Zahl von langen Wörtern
ausmachen.
-
Gepolltes
Empfangsbetriebsartprotokoll
-
Die
Frame-Formate, welche in der gepollten Empfangsbetriebsart verwendet
werden, sind in 10 dargestellt.
Wenn Seite "a" Daten zur Seite "b" senden will, sendet es einen Poll-Frame.
Wenn Seite "b" den Poll-Frame empfangen
hat und bereit ist, die Daten zu empfangen, antwortet es mit einem
ack-Frame. An diesem Punkt muß Seite "b" bereit sein, den Daten-Frame zu empfangen.
Wenn Seite "a" den ack-Frame empfängt, sendet
es den Daten-Frame.
-
Die
gepollte Paket-Empfangsbetriebsart nimmt an, daß der zugeordnete Empfänger in
der Lage ist, die zwei Byte Poll- und
ack-Frames jederzeit zu empfangen. Im Fall einer seriellen Schnittstelle
unter Benutzung eines SCC, wird dies durch die Tatsache gewährleistet,
daß der
SCC einen drei Byte Empfang-FIFO aufweist, so daß, selbst wenn einige Zeit
verstreicht bevor der Host in der Lage ist, auf den Empfangs-Interrupt zu
antworten, die Daten in dem FIFO noch im Takt bleiben.
-
Maximale
Datenframegröße wird
während
der Funk-Phase vereinbart und kann in dynamischer Weise mittels
eines Set-MaxRcvFrameSize
Strom Null-Befehls kleiner gemacht werden. Ein Host, welcher kein
DMA aufweist, wird typischerweise die Datenframegrösse beschränken, welche
er empfängt
und sendet, um so die Zeitmenge zu beschränken, für welche er Interrupts während Empfang
und Übertragung
von Datenframes abgeschaltet läßt. Zum
Beispiel beträgt
bei einer Rate von 918 Kbits/s die Übertragungszeit für 255 Bytes
2,2 msek.
-
Es
gibt drei Typen von Poll-Frames, jeweils dargestellt in 11, 12 und 13.
Die ersten zwei Typen werden verwendet, um die Daten auf allen Strömen außer Strom
Null zu senden. Der dritte Typ von Poll-Frame wird auf Strom Null
verwendet.
-
Der
erste in 11 dargestellte
Typ von Poll-Frame umfaßt
nur den Strom-ID und das Flags-Feld. Dies läßt Unterstützung für 255 Datenströme zu, wobei
Strom Null nicht gezählt
ist. Der zweite in 4 dargestellte
Poll-Frame umfaßt
ein Längenfeld.
Das Längenfeld
gestattet effizienteren Empfang von Daten in einer gepollten Softwareschleife,
da die Software nicht auf das HDLC-Frame-Ende achten muß, um das
Ende des Frames zu bestimmen. Dies läßt den Empfang von Daten bei
höheren
Datenraten zu.
-
Das
erste Byte des Strom Null Poll-Frames, wie in 12 dargestellt ist, weist den Wert 0
auf, um Strom Null zu identifizieren. Das zweite Byte identifiziert
einen spezifischen Strom Null-Befehl. Einige Strom Null-Befehle
weisen zugeordnete Parameter auf. In diesem Fall wird, sobald die
empfangende Seite den ack-Frame sendet, der Sender einen Datenframe
bestehend aus den zugeordneten Parametern senden. Falls es keinen
assoziierten Parameter gibt, dann wird kein Frame in Antwort auf
den ack-Frame gesendet.
-
Das
Flags-Feld wird im Detail unten beschrieben.
-
Der
ack-Frame ist einfach ein Strom Null Befehl, wie in 13 dargestellt ist. Er beinhaltet nicht
die zugeordnete Strom-ID, welche in dem Poll-Frame angedeutet war,
da nur ein Poll zu jeder Zeit in jeder Richtung offen sein kann.
-
Bei
Datenübertragung
vom Pod zum Host werden die Interrupts des Hosts abgeschaltet, wenn
der Host das ack-Paket zu sen den beginnt, bis das Datenpaket vollständig vom
Pod empfangen worden ist. Somit ist die maximale Interrupt-Auszeit
auch abhängig
von der maximalen Antwortzeit des Pods vom Empfang des ack-Pakets
bis zum Anfang des Datenpakets. Diese Antwortzeit des Pods wird
als die ack-Antwortzeit bezeichnet und ist in einer beispielhaften
Ausführungsform
als ein Maximum von 1 ms spezifiziert, obwohl ein anderer Wert verwendet
werden kann. Jedoch sollte das Pod diese Zeit auf einem Minimum
halten, da es einen dramatischen Effekt sowohl auf die Leistung
der Telekommunikationsschnittstelle als auch auf das Computersystem
haben wird. In einer beispielhaften Ausführungsform ist auch eine minimale
ack-Antwortzeit
von 50 μs
definiert, welche zuläßt, daß die Empfangsseite
eine gewisse Einstell-Zeit hat, um die Daten zu empfangen.
-
Der
wie in 14 dargestellte
Daten-Frame umfaßt,
in dieser Reihenfolge, die Daten und eine angehangene Poll-Sequenz, welche möglicherweise
andeutet, daß ein
weiterer Frame folgt. Die angehangene Poll-Sequenz eliminiert das
Bedürfnis
für den
Sender, einen separaten Poll-Frame zu senden, um mehr Daten zu senden.
Dies läßt eine
effizientere Datenübertragung
großer
Datenmengen zu. Falls die zwei vorausgehenden Bytes beide 0 sind,
dann konstituiert dies einen Strom Null NOP Frame, dargestellt in 15, was andeutet, daß keine
Frames mehr zu senden sind. Falls der Trailer anzeigt, daß es mehr
Daten gibt, dann antwortet der Empfänger einfach mit einem ack-Frame
und ein weiterer Datenframe wird gesendet.
-
Falls
der Host beim Vorgang des Sendens von Daten zum Pod ist und ein
Poll-Paket vom Pod empfängt,
wird er, nach Vervollständigung
des laufenden HDLC-Frames zum Pod, ein ack senden und Daten vom Pod
empfangen. Der Host wird nicht zum Übertragungsprozeß zurückkehren
bis nach Vervollständigen des Empfangsprozesses.
Daher gibt der Host dem Empfangsprozeß höhere Priorität als dem Übertragungsprozeß.
-
Wenn
sowohl der Host als auch das Pod die gepollte Empfangsbetriebsart
benutzen, kann eine Situation entstehen, wo sie beide einen Poll-Frame
zu selben Zeit senden, was in einer sogenannten Poll-Frame-Kollision,
wie in 17 dargestellt
ist, resultiert. In diesem Fall könnte eine Sackgassensituation
entstehen, da sowohl der Host als auch das Pod auf einen ack-Frame
warten, um ihre Daten zu senden. Um diese Sackgase zu vermeiden,
ist dem Pod höhere
Priorität
gegeben, und ein- Verfahren wird verwendet, bei welchem der Host
und das Pod sich nach einer Poll-Frame-Kollision wiederherstellen können. Wenn
das Pod weiß,
daß sowohl
der Host als auch das Pod in der gepollten Empfangsbetriebsart arbeiten,
wird es 100 μs nach
Senden eines Poll-Frames warten, um zu sehen, ob es einen Poll-Frame
vom Host bekommt. Falls es einen Poll-Frame in dieser Zeitperiode
bekommt, sollte er ihn in seinen Speicher schreiben und sich seines Inhalts
erinnern, so daß er
später
verwaltet werden kann. Wenn der Host einen Poll-Frame von dem Pod
empfängt,
während
es auf einen ack-Frame zu seinem eigenen Poll-Frame wartet, wird
er wenigstens 200 μs
warten, bevor er den ack-Frame zu dem Pod sendet. Daher wird der
Host und das Pod mit der Übertragung
des Pods von Daten zu dem Host fortfahren. Wenn dies vollständig ist,
sollte das Pod einen ack-Frame zu dem ausstehenden Poll-Frame vom
Host senden, und der Host kann seine Übertragung zum Pod vervollständigen.
-
17 zeigt den Austausch von
einigen Paketen an der seriellen Telekommunikationsschnittstelle, wobei
sich sowohl der Host als auch das Pod in der gepollten Empfangsbetriebsart
befinden.
-
Isochroner
Datenaustausch
-
Isochroner
Datenaustausch kann in einer von zwei Betriebsarten funktionieren,
nämlich
Isochrone Übertragungs-Handshake-Betriebsart
und Isochrone Daten-gesteuerte Betriebsart. Isochrone Übertragungs-Handshake-Betriebsart
kann nur auf einem Host verwendet werden, welcher die spezifizierte DMA-Schnittstelle
unterstützt.
Sie wird benutzt, um isochrone Ströme zu unterstützen, welche
kritische Zeitablauferfordernisse aufweisen, wie zum Beispiel einen
V.32 Abtast-Strom. In diesem Fall wird der Zeitablauf des isochronen
Datenaustausches vom Pod durch Verwenden der Isochronen Übertragungs-Handshake-Leitung gesteuert.
Dies ist in 18 dargestellt.
-
Die
isochrone Daten-gesteuerte Betriebsart wird verwendet, wo solche
kritischen Zeitablauferfordernisse nicht notwendig sind. In dieser
Betriebsart überwacht
das Pod einfach seine Empfangs-Abtast-Puffer (Puffer, welche Daten
von der Kommunikationsleitung beinhalten, welche das Pod zu dem
Host über
die Telekommunikationsschnittstelle senden wird). Wenn eine programmierbare
Schwelle (bestimmt durch Wartezeit-Erfordernisse und die Pufferspeichergröße im Pod)
erreicht wird, dann wird das Pod den isochronen Datenaustausch durch
Senden von isochronen Daten zum Host initiieren. Wenn der Host beginnt,
isochrone Daten vom Pod zu empfangen, sollte er mit einer gleichen
oder geringeren Menge an nach außen gerichteten isochronen
Daten antworten. Der Host wird mit weniger Daten antworten, oder
auch gar keinen, falls er nicht eine gleiche Menge an Daten zum
Senden aufweist. Dies wäre
völlig
natürlich,
zum Beispiel auf einem Nachrichtengerät, wenn ein abgespielter Gruß beendet
ist. Der Host entdeckt die Gesamtmenge an auszutauschenden isochronen
Daten von dem Gesamt-Iso-Längenfeld
in dem ersten Paket vom Pod.
-
Strom-Flags
-
Alle
Stromdaten zwischen dem Mac und dem Pod werden von einem Flags-Byte
begleitet. Einige Flags-Bytes haben eine Bedeutung auf allen Strömen, während andere
spezifisch für
den Strom-Typ des Pakets sind.
-
Die
folgenden Flags sind Befehlsströmen überlagert:
- Bit 0 BOB: Eine 1 im Blockanfangs-Bit deutet an, daß dieses
Paket das erste Paket des Befehls oder der Antwort ist, welche immer
als ein Block übertragen
werden.
- Bit 1 EOB: Eine 1 im Blockende-Bit deutet an, daß dieses
Paket das letzte Paket des Befehls ist.
- Bit 2 Befehl/Antwort: Eine 0 deutet an, daß dieses ein Befehl ist und
eine 1 deutet an, daß dieses
eine Antwort ist.
-
Flags,
welche asynchronen Strömen überlagert
sind, sind wie folgt:
- Bit 0 BOB: Eine 1 in dem Blockanfangs-Bit
wird auf Block-Betriebsart asynchronen Strömen benutzt, um anzudeuten,
daß dieses
Paket das erste Paket eines Blocks von Daten ist, welches zum Klient
als eine Einheit zu liefern ist. Dieses Bit hat keine Bedeutung
auf Strom-Betriebsart asynchronen Strömen.
- Bit 1 EOB: Eine 1 in dem Blockende-Bit wird auf Blockbetriebsart
asynchronen Strömen
verwendet, um anzudeuten, daß dieses
Paket das Ende eines Blocks von Daten ist. Dieses Bit hat keine
Bedeutung auf Strom-Betriebsart
asynchronen Strömen.
- Bit 2 umfaßt
Bestätigung:
Dieses Bit ist gesetzt, um anzudeuten, daß ein Zwei-Byte Argument am
Ende des Pakets angefügt
ist, welches die Empfangs-Bestätigung
für diesen
asynchronen Strom ist.
-
Für isochrone
Ströme
sind die folgenden Flags definiert:
- Bit 0 BOB: Eine 1 in
dem Blockanfang-Bit wird verwendet, um anzudeuten, daß dieses
Paket das erste Paket von einem Block von isochronen Daten ist.
Das erste Paket deutet die Gesamtzahl an isochronen Bytes an, welche
durch Anfügen
eines Zwei-Byte Längenfeldes
am Ende des Pakets gesendet werden.
- Bit 1 EOB: Eine 1 in dem Blockende-Byte wird verwendet, um das
Ende eines Blocks von isochronen Daten anzudeuten.
-
Strom Null
Befehle
-
Strom
Null ist reserviert von dem seriellen Treiber der Telekommunikationsschnittstellen,
um Steuer- und Zustandspakete zu senden, welche benutzt werden,
um das serielle Protokoll der Telekommunikationsschnittstelle zu
steuern. Das Informationsfeld eines Strom Null-Befehlspakets besteht
aus einer Liste von Befehlen mit zugeordneten Parametern. Im Falle
der gepollten Empfangsbetriebsart wird der Befehlswert in dem Poll-Frame
gesendet, wobei jegliche zugeordnete Parameter in dem folgenden
Daten-Frame gesendet werden. Falls es keine Parameter gibt, dann
wird kein Daten-Frame gesendet.
-
Die
folgenden Befehle sind in einer beispielhaften Ausführungsform
definiert:
- NOP (ungültig)
- NOP indiziert keine Operation. Es wird vorzugsweise am Ende
eines gepollten Empfangsbetriebsart-Datenframe benutzt, um anzuzeigen,
daß keine
sofortigen Frames mehr zu schicken sind.
- Ack (ungültig)
- Ack wird in dem gepollten Empfangsbetriebsartprotokoll benutzt,
um den Sender eines Poll-Frames anzudeuten, daß der Empfänger des Poll-Frames bereit
ist, den zugeordneten Daten-Frame zu empfangen.
- Nak (ungültig)
- Nak wird im gepollten Betriebsartprotokoll benutzt, um dem Sender
eines Poll-Frames anzudeuten, daß der Empfänger des Poll-Frames bereit
ist, den zugeordneten Daten-Frame zu empfangen.
- SetMaxRcvFrameSize (ushort MaxRcvFrameSize)
- SetMaxRcvFrameSize deutet dem Empfänger dieses Befehls an, daß es alle
zukünftigen
Frames, welche es sendet, auf diese maximale Größe beschränken soll. Der Sender des SetMaxRcvFrameSize-Befehls
sollte immer noch in der Lage sein, Frames bis zur Maximalgröße zu empfangen,
welche während
der Funk-Zeit vereinbart worden sind, da einige Pakete gesendet
werden können
bevor die Größe eingestellt
werden kann. Der SetMaxRcvFrameSize-Befehl wird oft von dem Host
benutzt, um die Unterbrechungs-Aus-Zeit in Antwort auf variierende
Bearbeitungserfordernisse in dem Host einzustellen.
- GetDataResponseTime (ungültig)
- GetDataResponseTime wird von dem Host gesendet, um den Pod aufzufordern,
eine Einschätzung
seiner Datenantwortzeit in einem SetDateResponseTime-Befehl, welcher
als nächstes
beschrieben wird, zu senden.
- SetDateResponseTime (ulong DateResponseTime)
- SetDateResponseTime wird von dem Pod in Antwort auf das Empfangen
des GetDateResponseTime-Befehles von dem Host gesendet. Der Zeitablauf,
welcher durch diesen Befehl angedeutet wird, wird nun von dem Host
benutzt, während
er Rücken
an Rücken
Datenframes von dem Pot empfängt.
Wenn das Pod eine Poll-Sequenz in dem Trailer eines Datenpakets
sendet, welches andeutet, daß es
mehr Daten zu senden hat, kann es für den Pod einige Zeit dauern,
den nächsten
Datensatz vorzubereiten. Die DataResponseTime deutet die maximale
Zeit in μs
an, welche das Pod benötigt,
um den nächsten
Satz an Daten zu dem Host zu senden. Der Host wird typischerweise
nicht mit dem Ack antworten, bis diese Zeit verstrichen ist, um
die Zeit zu beschränken,
für welche
die Interrupts ausgeschaltet sind.
- PrimaryCredit (ulong SendCredit)
- Stellt die primäre
Bestätigung
(Credit) an die andere Seite bereit. Primäre Bestätigung wird unten beschrieben.
-
Es
ist zu beachten, daß dies
nur eine beispielhafte Liste ist, zu welcher Befehle hinzugefügt und von welcher
Befehle in anderen Ausführungsformen
herausgestrichen werden können.
-
Rate Control
-
Rate
Control stellt ein Grundniveau des Taktes für übertragene Daten von dem Host
zu dem Pod bereit. Es wird nur bei asynchronen Datenströmen benutzt.
Dies hilft, sicherzustellen, daß alle
Asynchronströme gleichen
Zugang zu der Telekommunikationsschnittstellen-Bandbreite bekommen.
-
Der
Rate Control Algorithmus wird direkt von dem für das XTP Protokoll definierten
genommen. Rate Control ist durch drei Parameter gekennzeichnet:
- 1. Rate: die Rate der Kommunikationsleitung
in bytes/s, zum Beispiel für
einen ISDN-'B' Kanal würde dies 8
Bytes/s sein.
- 2. Bündel:
die Maximalzahl an Bytes, welche in einem Bündel von Paketen gesendet werden
sollen.
- 3. RTimer: Entspricht Bündel,
geteilt durch Rate, welches die Periode ist, über welche die Datenrate des Kanals
der Bündel-Anzahl
von Bytes entspricht.
-
Der
grundsätzliche
Algorithmus funktioniert wie folgt. Ein RateCredit wird jedem Strom
zugeordnet, welcher anfangs auf den Bündelwert gesetzt ist. Wenn
jedes Paket übermittelt
worden ist, wird der Rate Credit um die Anzahl an Bytes in dem Paket
verringert. Wenn der Rate Credit null oder weniger erreicht, können keine Daten
auf diesem Strom gesendet werden, bis der RTimer ausläuft, zu
welcher Zeit der Credit jedes Stroms wie folgt eingestellt wird:
- 1. Falls der Rate Credit null oder weniger
ist, dann wird der Bündelwert
zu dem gegenwärtigen
Wert des Rate Credits hinzuaddiert.
- 2. Falls der Rate Credit größer als
null ist, dann wird der Rate Credit einfach auf den Bündelwert
gesetzt.
-
Taktsteuerung
erfordert keine Wechselwirkung zwischen dem Host und dem Pod, da
der Algorithmus gänzlich
innerhalb des Hosts ausgeführt
wird. Taktsteuerung ist nicht von dem Pod zu dem Host erforderlich, da
der Takt von sich aus durch die Datenrate beschränkt ist, welche auf den Kommunikationskanälen empfangen
worden ist. Dies schließt
jedoch nicht aus, eine Taktsteuerung in Pods zu implementieren.
-
Primäre Flußsteuerung
-
Zusätzlich zu
einer pro Strombasis notwendigen Flußteuerung, kann eine Flußteuerung
auch auf dem gemultiplexten Niveau erforderlich sein; das heißt, es gibt
eine beschränkte
Menge an DMA-Pufferspeicher im Host und im Pod, welche überlaufen
können,
falls es keinen Weg gibt, den Strom an Bytes im Kabel zu steuern. Primäre Flußsteuerung
benutzt Gleitfensterflußsteuerung,
welche jetzt beschrieben wird, auf einer HDLC-Frame-Basis; das heißt, jede
Einheit der Flußsteuerung
entspricht einem vOllen HDLC-Frame. Primäre Bestätigung wird unter Benutzung
der zuvor beschrieben Primären
Bestätigung
des Strom-Null-Befehls übermittelt.
-
Primäre Flußsteuerung
wird nur in dem Fall der DMA-Empfangsbetriebsart
bereitgestellt. Einige Frames werden jedoch nicht durch diese Flußsteuerung
gesteuert, nämlich
Poll- und Ack-Pakete, und Frames, welche isochrone Daten umfassen.
Der Host und das Pod müssen
eine feste Anzahl von DMA-Puffern für diese Pakete reservieren,
wobei sie immer in Echtzeit bearbeitet werden.
-
Primäre Flußsteuerung
wird nicht in dem Fall der Nicht-DMA-Schnittstelle verwendet. In der Nicht-DMA-Empfangsbetriebsart
werden Daten direkt zu den Strompuffern übertragen und daher reicht Strom-spezifische
Flußsteuerung
aus, um geeignete Flußsteuerung
zu gewährleisten.
-
Gleitfenster-Flußsteuerung
-
Gleitfenster-Flußsteuerung
wird auf asynchronen Strömen
benutzt.
-
Normalerweise
wird der Gleitfensteralgorithmus nicht nur für Flußsteuerung verwendet, sondern
auch um Fehlerkorrektur bereitzustellen. Die vorliegende Telekommunikationsschnittstelle
wird jedoch als eine fehlerfreie Schnittstelle angesehen, so daß in diesem
Fall der Gleitfensteralgorithmus einfach für Flußsteuerung benutzt wird. Dies
vereinfacht die Verwendung dieses Algorithmusses, da die Sendeseite
die Daten nicht aufbewahren muß bis
sie bestätigt
sind. Statt dessen ist das Fenster einfach eine Zugabe, wieviel
Daten die Empfangsseite empfangen will.
-
Wenn
Strombetriebsart-Dienst bereitgestellt wird, wird die Flußsteuerung-Zugabe
in Einheiten von Bytes angegeben. Wenn der Blockbetriebs-Dienst
bereitgestellt wird, wird die Flußsteuerungsbestätigung in Einheiten
von Klient-Blöcken
oder -Paketen angegeben.
-
Die
Flußsteuerungsbestätigung ist
eine 16 Bit Quantität,
welche bei null bei Initialisierung startet. Die Sendeseite verfolgt
zwei Variablen, gesendete und Sende-Bestätigung. Sende-Bestätigung ist
der Wert, welcher von dem Empfänger gesendet
worden ist, welcher andeutet, wie viele Daten er annehemen will.
Gesendet ist die Menge an Daten, welche gesendet worden sind. Zu
jedem Zeitpunkt darf der Übermittler
nicht mehr als Sende-Bestätigung
minus gesendeten Dateneinheiten versenden.
-
Der
Empfänger
sendet anfänglich
eine Sende-Bestätigung
entsprechend der Größe an zugeordnetem freien
Pufferspeicher. Wenn Daten empfangen und bearbeitet worden sind,
und der Pufferspeicher wieder gelöscht worden ist, wird die Sendehöht. Diese
Sende-Bestätigung
wird dann dem Sender als ein Strom null-Befehl kommuniziert.
-
Es
folgt ein Beispiel für
einen Asynchronstrom, welcher einen Strombetriebsart-Dienst bereitstellt:
- 1. Der Empfänger
ordnet einen Empfangspuffer von 1000 Bytes zu und sendet einen Sende-Bestätigungswert
von 100 zu der Sendeseite.
- 2. Der Sender sendet 100 Bytes zum Empfänger und stockt seine Gesendet-Variable
auf 100 auf. An diesem Punkt könnte
der Übermittler
1000 – 100
= 900 Bytes mehr senden.
- 3. Der Empfänger
bearbeitet die Daten und löscht
seinen Pufferspeicher;
- 4. Der Empfänger
stockt den Sendebestätigungswert
auf 100 + 100 = 1100 auf und sendet dies zu der Sendeseite.
- 5. Der Sender darf nun "Sende-Bestätigung"- minus gesendete
Bytes zu Empfänger
senden, nämlich
1100 – 100
= 1000.
-
Stopp- und Warte-Flußsteuerung
-
Stopp-
und Warte-Flußsteuerung
wird auf Befehlsströmen
verwendet. Wie vorher erwähnt,
erlaubt Stopp- und Warte-Flußsteuerung
nur einem Block, auf einem Strom in jeder Richtung zu einem Zeitpunkt überzählig zu
sein. Die Stromhandler auf jeder Seite werden gewöhnlicherweise
mehrere Übertragungsanfragen für den Klienten
aneinanderreihen. Falls ein Datenblock erfordert, daß mehr als
ein Frame gesendet wird, dann wird er in mehreren Frames mit dem
EOB Bit in den in dem letzten Paket gesetzten Flags-Byte gesendet.
Ein anderer Block wird nicht auf diesem Strom gesendet, bis eine
Antwort von der anderen Seite empfangen worden ist. Die Antwort
wird auch als ein Block mit dem Antwortbit gesendet, welches in
dem Flags-Byte gesetzt ist.
-
Die
Reihenfolge an Vorgängen
beim Senden von Daten auf einem Stopp- und Warte-Strom ist wie folgt:
- 1. Der Sende-Klient fordert an, einige Daten
zu senden;
- 2. Der serielle Treiber der Telekommunikationsschnittstellen
reiht die Daten an der Strom-Warteschleife des Klients auf;
- 3. Die Daten erreichen den Kopf der Stromwarteschleife, wenn
die Antwort zu den vorherigen Daten empfangen worden ist. Sie werden
dann auf die serielle Leitung gelegt und schließlich in einem oder mehreren Frames
gesendet;
- 4. Auf der Empfangsseite werden die Daten zu dem Empfangsklienten
geschickt;
- 5. Wenn der empfangende Klient dem seriellen Treiber der Telekommunikationsschnittstelle
andeutet, daß er
mit den Daten fertig ist, möglicherweise
zusammen mit Einschließen
von Antwortdaten, wird ein Antwortframe zurück zu der Ursprungsseite gesendet;
- 6. Wenn der serielle Treiber der Ursprungs-Telekommunikationsschnittstelle die
Antwort empfängt,
vervollständigt
er die Ursprungsseite zu dem Sendeklienten zusammen mit irgendwelchen
Antwortdaten.
- 7. Der serielle Treiber der Ursprungs-Telekommunikationsschnittstelle darf
nun die nächste
Datenanfrage auf den Strom senden.
-
Der
Durchschnittsfachmann wird erkennen, daß die Erfindung in anderen
spezifischen Ausführungsformen
ausgeführt
werden kann. Die vorliegend offenbarten Ausführungsformen werden deshalb
als in jeder Hinsicht beschreiben und nicht beschränkend angesehen.
Der Umfang der Erfindung wird mehr durch die beigefügten Ansprüche als
durch die vorangehende Beschreibung angegeben, wobei alle Änderungen,
welche innerhalb der Bedeutung und des Bereichs von Äquivalenten
davon liegen, als hierdurch mit eingeschlossen gelten sollen.