Next: Bewertung der ISDN-Schnittstelle der
Up: ISDN
Previous: D-Kanal Protokolle
Abbildung 3.17:
Schnittstellenfunktionen zwischen LAPD bzw. PPP und Bitübertragungsschicht

|
Abbildung 3.18:
Aufbau der Schnittstelle zur ISDN-Datenübertragung zwischen LAPD und Bitübertragungsschicht

|
Die ISDN-Bitübertragungsschicht der Internetkamera wird an die bestehenden Protokolle der höheren Schichten (LAPD und PPP) angebunden. In Abbildung 3.13 wird die Schnittstelle zwischen LAPD bzw. PPP und der Bitübertragungsschicht dargestellt.
Die horizontale Kommunikation zwischen den Schichten wird beim LAPD-Protokoll von der Firma GiK durch Funktionsaufrufe in der diensterbringenden Schicht und Callback-Funktionen in der eigenen, dienstnutzenden Schicht realisiert. Dabei werden die SDUs der diensterbringenden Schicht bzw. PDUs der dienstnutzenden Schicht durch sogenannte IDUs3.24 (dynamisch angelegte gemeinsam genutzte Speicherbereiche) beim Funktionsaufruf als Parameter übergeben.
In Abbildung 3.18 ist die Schnittstelle zwischen LAPD und der Bitübertragungsschicht noch einmal verfeinert dargestellt. In den Kreisen sind die Tasks der beiden Schichten und die Interruptroutine zu sehen, die mit SCC4 verknüpft ist. Wenn das LAPD-Protokoll Daten zu versenden hat, ruft der LAPD Scheduler Task die Funktion HdlcDataReq() auf und übergibt als Parameter die zu versendende IDU. Die Funktion packt die Daten der IDU in eine Message Queue und sendet sie an den Transmit Task. Dieser schreibt die Daten in einen lokalen Speicher und gibt dem SCC4 die Adresse und die Länge bekannt. Hat der SCC4 die Daten erfolgreich HDLC-kodiert und versendet (siehe Abschnitt 3.6.2) oder ist eine Fehler aufgetreten, wird ein Interrupt ausgelöst und die ISR ausgeführt. Ein erfolgreiches Versenden der Daten teilt die ISR dem Transmit Task und der Funktion HdlcDataReq() durch freigeben einer Semaphor mit. In diesem Fall ruft die Funktion HdlcDataReq() die LAPD-Callback-Funktion HdlcDataAck() auf und übergibt als Parameter die versendete IDU.
Empfängt der SCC4 Daten, signalisiert er dies durch einen Rx-Interrupt. Die ISR wird ausgeführt und versendet die empfangenen Daten über eine Message Queue an den Receive Task. Der Receive Task fordert eine IDU an und beschreibt sie mit den Daten aus der Message Queue. Danach ruft der Receive Task die Callback-Funktion HdlcDataInd() auf und übergibt die IDU als Parameter an die LAPD.
Durch die Verwendung von Message Queues in Sende- und Empfangsrichtung werden die Daten notfalls durch die Bitübertragungsschicht zwischengespeichert. Dies kann besonderes beim Empfangen von schnell hintereinander eintreffenden Datenpaketen sinnvoll sein, die durch das System nicht so schnell weiterverarbeitet werden können.
Abbildung 3.19:
Aufbau der Schnittstelle zur ISDN-Datenübertragung zwischen PPP und Bitübertragungsschicht

|
Die Schnittstellenfunktionen zwischen PPP und der Bitübertragungsschicht, werden genauso verwendet wie die Schnittstellenfunktionen zwischen der LAPD und der Bitübertragungsschicht (siehe Abbildung 3.19). Es werden jedoch keine IDUs sondern Buffer Descriptoren (BD) als Funktionsparameter übergeben, die aus Speicheradresse und Datenlänge bestehen. Die Funktion BCHdlcDataInd() besitzt im Unterschied zur Funktion HdlcDataInd() der LAPD einen Rückgabewert. Wird von der Bitübertragungschicht durch die Funktion BCHdlcDataInd() der Empfang einer neuen Datenpaketes an das PPP-Protokoll gemeldet, übergibt die Funktion als Rückgabewerte einen neuen BD als Empfangspuffer für den Receive Task.
Das C-Programm der Bitübertragungsschicht ist in den Dateien ,,MpcTsaHdlc.c`` und ,,MpcTsaHdlc.h`` zu finden, die auf der CD im Anhang A im Verzeichnis ,,mbx860isdn`` abgelegt worden sind. Das C-Programm der SPI-Schnittstelle besteht aus den Dateien ,,mc145574v2.c`` und ,,mc145574v2.h``.
Next: Bewertung der ISDN-Schnittstelle der
Up: ISDN
Previous: D-Kanal Protokolle
Thorsten Thormaehlen
2000-03-27