-
Die
Erfindung betrifft ein Hardware-Protokollbeschleunigermodul für eine Verbindungssicherungs-Protokollebene
eines Senderempfängers.
Weiterhin betrifft die Erfindung einen Senderempfänger mit
einem Hardware-Protokollbeschleuniger und einen Sensorknoten mit
einem Sensor und einem mit diesem verbundenen Senderempfänger. Die
vorliegende Erfindung eignet sich insbesondere, jedoch nicht ausschließlich, zur
Anwendung im Rahmen des Protokolls IEEE 802.15.3, das die Kommunikation
innerhalb von kurzreichweitigen Funknetzwerken mit hoher Übertragungskapazität betrifft.
-
Das
Protokoll IEEE 802.15.3 ermöglicht
eine drahtlose Kommunikation in einem Funknetz, bei dem die Knoten
des Netzwerks mit Datenraten von 11-55 Mbit/s miteinander kommunizieren.
Der genannte Standard beschreibt eine Kurzstrecken-Funktechnik und
ist für
typische Entfernungen zwischen den Netzwerkknoten zwischen 0,2 und
50 m entwickelt worden.
-
Für viele
Anwendungen steht ein geringer Energieverbrauch der Netzwerkknoten
im Vordergrund. So entwickelt die Anmelderin beispielsweise ein
drahtloses Kommunikationssystem zur Überwachung des Gesundheitszustandes
von Patienten mit Hilfe einer Vielzahl biomedizinischer Sensoren.
Dabei handelt es sich um ein körpernahes
Funknetz, in dem verschiedene solcher Sensoren verknüpft sind.
Die Sensorknoten kommunizieren miteinander um gemeinsam den Gesundheitszustand
eines Patienten zu ermitteln. Jeder Sensorknoten enthält einen
oder mehrere Sensoren sowie eine Verarbeitungs- und eine Kommunikationseinheit.
Die Kommunikationseinheit wird hierin auch als Senderempfänger bezeichnet.
-
Die
Stromversorgung der Sensorknoten eines solchen Netzwerks soll über kleine
Batterien über
mehrere Wochen oder Monate ohne Batteriewechsel oder -aufladung
sichergestellt werden. Die demnach zur Verfügung stehende geringe Energiemenge
zur Funkkommunikation stellt sehr hohe Anforderungen an die technische
Umsetzung insbesondere des Protokolls auf der Verbindungssicherungsebene.
-
Geläufige Synonyme
für die
Verbindungssicherungs-Protokollebene (englisch: data link layer)
nach dem OSI-Modell sind die Begriffe Schicht 2, Medienzugriffsebene
(engl. medium access layer), Sicherungsschicht, Abschnittssicherungsschicht,
Verbindungsebene und Prozedurebene. Die Verbindungssicherungs-Protokollebene stellt
eine weitgehend fehlerfreie Übertragung
sicher und steuert einen Zugriff auf das Übertragungsmedium (Schicht
1 oder Bitübertragungsschicht).
Der Bitdatenstrom wird hierfür
in Datenblöcke aufgeteilt.
Weiterhin werden üblicherweise
Block-Folgenummern und Block-Prüfsummen
hinzugefügt.
Das Schicht-2-Protokoll ist ebenfalls dafür zuständig, verfälschte oder verloren gegangene
Blöcke
empfängerseitig durch
Quittungs- und Wiederholungsmechanismen erneut anzufordern. Datenblöcke werden
auch als Frames oder Rahmen bezeichnet.
-
Eine
so genannte Flusskontrolle macht es möglich, dass ein Empfänger dynamisch
steuert, mit welcher Geschwindigkeit die Gegenseite Datenblöcke senden
darf. Nach IEEE enthält
die Verbindungssicherungs-Protokollebene zwei Sub- Ebenen, die für eine logische
Verbindungssteuerung (LLC, Logical Link Control) bzw. eine Medienzugriffssteuerung
(MAC, Media Access Control) zuständig
sind.
-
Nachfolgend
wird die Verbindungssicherungs-Protokollebene nach dem Protokoll
IEEE 802.15.3 näher
beschrieben.
-
Das
IEEE 802.15.3 MAC-Protokoll (IEEE Standard 802, "Part 15.3: Wireless Medium Access Control (MAC)
and Physical Layer (PHY) Specifications for High Rate Wireless Personal
Area Networks," 2003.)
arbeitet nach folgendem Grundprinzip: In einem Funknetz, das nach
diesem Standard arbeitet, gibt es genau einen Koordinator und eine
Reihe von assoziierten Geräten
. Der Koordinator sendet in exakt regelmäßigen Abständen sogenannte Beacon-Datenblöcke an alle
Geräte
im Netz. Diese Beacon-Datenblöcke
enthalten unter anderem Informationen darüber, wann der nächste Beacon
gesendet wird und wie die Geräte
in der Zeit bis zu diesem nächsten
Beacon auf den Kanal zugreifen dürfen.
-
Es
gibt reservierte Zeitschlitze (time slots), die für genau
einen Sender für
eine gewisse Dauer exklusiv zur Verfügung stehen. Als Referenzzeitpunkt
wird der Beginn der Übertragung
des Beacon-Frames benutzt, d. h. die Startzeit der Zeitschlitze
wird in Mikrosekunden nach Start des Beacons angegeben. Außerdem kann der
Koordinator eine Wettbewerbsphase, die unmittelbar dem Beacon folgt,
festlegen. In dieser Wettbewerbsphase dürfen sämtliche Geräte nach einem Backoff-Verfahren
auf den Kanal zugreifen.
-
Im
Protokoll ist festgelegt, dass sämtliche übertragene
Datenblöcke
mit einem Fehlererkennungscode versehen werden. Dafür wird ein
CRC-(Cyclic Redundancy Check) Algorithmus verwendet, der über alle
Datenblockdaten eine 32-bit lange Prüfsumme ausrechnet und an das
Ende des Datenblocks stellt. Die Empfänger des Datenblocks rechnen
ihrerseits die CRC-Prüfsumme über die
empfangenen Datenblockdaten aus und vergleichen das Ergebnis mit
dem mitgeschickten, vom Sender ermittelten, Wert. Stimmen beide
Prüfsummen überein,
ist der Datenblock mit sehr hoher Wahrscheinlichkeit korrekt übertragen
worden, ansonsten wird er als fehlerhaft erkannt und verworfen.
-
Bei
der Mehrzahl der definierten Datenblocktypen, insbesondere der Kommando-Datenblöcke, wird vom
Sender des Datenblocks erwartet, dass der Empfänger eine Bestätigungsnachricht
unmittelbar, d. h. genau 10 Mikrosekunden nach dem Ende des zu bestätigenden
Datenblocks, an den Sender überträgt, falls
der empfangene Datenblock fehlerfrei empfangen wurde.
-
Aus
der Veröffentlichung
PANIC, G. [u.a.]: A System-on-Chip Implementation of the IEEE 802.11a MAC
Layer; in: Proceedings of the Euromicro Symposium an Digital System
Design; ISBN: 0-7695-2003-0; 2003, S. 319-324 ist ein Hardware-Protokollbeschleunigermodul
bekannt.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Hardware-Protokollbeschleunigermodul
für eine Verbindungssicherungs-Protokollebene
eines ersten Senderempfängers
vorgeschlagen, das ausgebildet ist,
über eine Bitübertragungs-Protokollebene
einer externen Empfangseinheit von einem externen zweiten Senderempfänger her
eingehende Datenblöcke
im Hinblick auf eine in den Datenblöcken enthaltene Zieladresse zu
filtern und bezüglich
für den
ersten Senderempfänger
bestimmter Datenblöcke
eine Speicheroperation an einem vorbestimmten externen Speicherplatz
des ersten Senderempfängers
zu veranlassen;
für
den ersten Senderempfänger
bestimmte Datenblöcke
auf erfolgreichen Empfang hin zu überprüfen;
einen erfolgreichen
Empfang eines für
den ersten Senderempfänger
bestimmten Datenblocks an einen externen Prozessor des ersten Senderempfängers zu
signalisieren;
nach erfolgreichem Empfang eines für den ersten
Senderempfänger
bestimmten Datenblocks einen für
den zweiten Senderempfänger
bestimmten Bestätigungsdatenblock
innerhalb einer durch das Verbindungssicherungsprotokoll vorgegebenen
Bestätigungszeitspanne
zu erzeugen und auszugeben;
einem empfangenen Beacon-Datenblock
Zeitschlitzinformation über
einen oder mehrere dem ersten Senderempfänger zugewiesene Sendezeitschlitze
zu entnehmen;
eine Warteschlange zu sendender Datenblöcke zu verwalten
und Datenblöcke
der Warteschlange zum Versenden innerhalb des zugewiesenen Sendezeitschlitzes
auszuwählen;
zum
Versenden ausgewählte
Datenblöcke
aus einem aus der Warteschlange bekannten Speicherplatz auszulesen
und an eine Bitübertragungs-Protokollebene
einer externen Sendeeinheit des ersten Senderempfängers zu übergeben.
-
Das
Hardware-Protokollbeschleunigermodul des ersten Aspekts der Erfindung
beruht auf der Erkenntnis, dass bestimmte zeitkritische Anforderungen
des Protokolls, beispielsweise bei der Übertragung eines Bestätigungsdatenblocks,
welcher exakt 10 μs
nach Ende des zu bestätigenden
Datenblocks ausgesendet werden muss, wie die recht hohe Datenrate,
die unterstützt
werden muss, einen sehr schnellen Prozessor erfordern würden. Abschätzungen
haben ergeben, dass die Taktfrequenz im Bereich oberhalb von 1 GHz
liegen müsste.
-
Damit
ergibt sich jedoch ein sehr hoher Energiebedarf und folglich nur
eine äußerst kurze
Batterielebensdauer.
-
Das
erfindungsgemäße Hardware-Protokollbeschleunigermodul
für die
Verbindungssicherungs-Protokollebene ermöglicht im Gegensatz dazu, den
Prozessor zu entlasten und insbesondere zeitkritische Funktionalitäten der
Verbindungssicherungs-Protokollebene des Senderempfängers auszuüben. Da
diese zeitkritischen Protokollfunktionen nicht mehr vom Prozessor
ausgeführt
werden müssen,
kann dieser bei einer niedrigeren Taktrate betrieben werden und
somit seinen Energieverbrauch reduzieren.
-
Nachfolgend
werden Ausführungsbeispiele
des erfindungsgemäßen Hardware-Protokollbeschleunigermoduls
beschrieben. Die Ausführungsbeispiele
können
miteinander kombiniert werden, soweit nicht ausdrücklich Gegenteiliges
erläutert
ist.
-
Bei
einem Ausführungsbeispiel
enthält
das Hardware-Protokollbeschleunigermodul eine Interrupt-Einheit,
die ausgebildet ist, durch Aussenden eines entsprechenden ersten
Interruptsignals einen erfolgreichen Empfang eines für den ersten
Senderempfänger
bestimmten Datenblocks an einen externen Prozessor des ersten Senderempfängers zu
signalisieren, und die ausgebildet ist, nach Empfang einer Bestätigungsnachricht von
extern über
den erfolgreichen Empfang eines vom ersten Senderempfänger versandten
Datenblocks ein entsprechendes zweites Interruptsignal an den externen
Prozessor zu senden.
-
Bei
einem weiteren Ausführungsbeispiel
ist eine Redundanzprüfungseinheit
vorgesehen, die ausgebildet ist, unmittelbar nach Empfang eines
Datenrahmens nach einem vorbestimmten Algorithmus der zyklischen
Redundanzprüfung
Prüfsummen
eingehender oder ausgehender Datenblöcke oder sowohl eingehender
als auch ausgehender Datenblöcke
zu berechnen und ein dem Prüfungsergebnis
entsprechendes Prüfsignal
innerhalb der Bestätigungszeitspanne
auszugeben.
-
Bei
einem anderen Ausführungsbeispiel
ist das Hardware-Protokollbeschleunigermodul ausgebildet, ein Backoff-Verfahren
in einer protokollarisch vorgesehenen Wettbewerbsphase umzusetzen.
-
Bevorzugt
sind im Hardware-Protokollbeschleunigermodul der vorliegenden Erfindung
unterschiedlichen Operationen des Hardware-Protokollbeschleunigermoduls
jeweils individuelle Schaltkreise zugeordnet. Die Schaltkreise sind
mit einem gemeinsamen Taktgeber verbunden und ausgebildet, im gleichen
Taktzyklus, parallel betrieben zu werden. Auf diese Weise kann auch
die Taktfrequenz für
das Hardware-Protokollbeschleunigermodul niedrig gehalten werden,
was eine weitere Energieersparnis ermöglicht.
-
In
einem weiteren Ausführungsbeispiel
weist das Hardware-Protokollbeschleunigermodul
eine Warteschlangeneinheit auf, die eine Verweisliste auf in einem
zum Hardware-Protokollbeschleunigermodul externen Speicher abgelegte
und auszusendende Datenblöcke
aufweist. Mit dieser Ausbildung der Warteschlangeneinheit entfällt die
Notwendigkeit, separaten Speicherplatz für Datenblöcke im Protokollbeschleunigermodul
vorzusehen, und wird keine zusätzliche
interne Bearbeitungskapazität
für das
Abspeichern und Auslesen von Daten beansprucht. Die Warteschlangeneinheit
ist ausgebildet, die Verweisliste in Form einer Vielzahl von Teil-Verweislisten
anzulegen und zu aktualisieren. Jede Teil-Verweisliste nimmt Verweise auf Datenblöcke nur eines
Datenblock-Typs auf. Auf diese Weise kann der Zugriff auf die jeweiligen
Datenblöcke
eines Typs besonders schnell erfolgen.
-
Vorzugsweise
ist die Warteschlangeneinheit zusätzlich ausgebildet ist, jedem
Eintrag in eine Teil-Verweisliste neben dem erwähnten Verweis auf einen Datenblock
zusätzlich
einen zweiten oder dritten Verweis auf entweder einen nachfolgenden
bzw. einen vorangehenden Eintrag in der betreffenden Teil-Verweisliste
zuzuweisen. In einer Ausführungsform
werden zumindest einem Teil der Einträge in eine jeweilige Teil-Verweisliste
beide genannten zusätzlichen
Verweise zugewiesen.
-
Das
Hardware-Protokollbeschleunigermodul hat in einem weiteren Ausführungsbeispiel
eine Übertragungsdauerberechnungseinheit,
welche ausgebildet ist, anhand einer vorgegebenen Datenblocklänge und
einer vorgegebenen Datenrate die Dauer der Übertragung eines Datenblocks
zu berechnen. Die Übertragungsdauerberechnungseinheit
ist mit dem Scheduler und der Warteschlangeneinheit verbunden.
-
Gemäß einem
zweiten Aspekt der Erfindung wird ein Senderempfänger mit einem Hardware-Protokollbeschleunigermodul
gemäß dem ersten
Aspekt der Erfindung oder einem seiner hierin genannten Ausführungsbeispiele
vorgeschlagen. Der Senderempfänger
des zweiten Aspekts der Erfindung teilt die Vorteile des Hardware-Protokollbeschleunigermoduls
des ersten Aspekts der Erfindung.
-
Gemäß einem
dritten Aspekt der Erfindung wird ein Sensorknoten mit einem Sensor
und einem mit diesem verbundenen Senderempfänger gemäß dem zweiten Aspekt der Erfindung
vorgeschlagen. Der Sensorknoten des zweiten Aspekts der Erfindung
teilt die Vorteile des Hardware-Protokollbeschleunigermoduls des
ersten Aspekts der Erfindung.
-
Nicht
nur aus Gründen
der Energieeffizienz, sondern auch zugunsten des Tragekomforts eines
Patienten wird eine hohe Integration eines Sensorknotens ermöglicht,
der im Idealfall als Ein-Chip-Lösung
realisiert werden kann. Dieser Chip wird im folgenden als Sensorknotenplattform
bezeichnet. Eine Sensorknotenplattform wird beispielsweise einen
Prozessor enthalten, der für
die Abarbeitung einer Anwendungssoftware und auch von nicht zeitkritischen
Teilen des Verbindungssicherungs-Protokolls des Senderempfängers zuständig ist.
-
Bei
bevorzugten Ausführungsbeispielen
des Sensorknotens ist der Sensor ausgebildet, eine einem Blutdruckwert
eines Trägers
des Sensors entsprechende Größe zu erfassen,
ein Elektrokardiogramm eines Trägers
des Sensors zu erfassen, oder eine andere Größe, die einen physiologischen
Zustand oder Prozesses beschreibt, zu erfassen und ein dem Wert
der Größe entsprechendes
Signal auszugeben.
-
Nachfolgend
werden weitere Ausführungsbeispiele
anhand der Figuren erläutert.
Es zeigen:
-
1 ein
schematisches Diagramm eines Body-Area-Networks mit einem Sensorknoten;
-
2 ein
schematisches Blockdiagramm eines Ausführungsbeispiels eines Hardware-Protokollbeschleunigermoduls
für die
Verbindungssicherungs-Protokollebene nach dem Protokoll IEEE 802.15.3
in einem Senderempfänger.
-
Eine
Sensorknotenplattform 100 ist in 1 in Form
eines schematischen Blockdiagramms dargestellt. Beispielhafte Sensoren,
die in 1 dargestellt sind, sind ein Lungentonsensor 102,
ein EKG-Sensor 104, ein Blutdrucksensor 106 und
ein Accelerometer 108. Die im linken Teil der Figur durch
Punkte 102 bis 108 symbo lisierten Sensorknoten 102 bis 108 sind
in Form des Sensorknotens 104 stellvertretend in der rechten Figurenhälfte mit
größerem Detail
dargestellt.
-
Der
Sensorknoten 104 enthält
einen Prozessor 110, vorliegend einen LEON2-Prozessor, der für die Abarbeitung
von Anwendungssoftware sowie von nicht zeitkritischen Teilen der
Verbindungssicherungs-Protokollebene des Protokolls IEEE 802.15.3
ausgebildet ist. Über
einen gemeinsamen AHB-Bus 112 ist der Prozessor mit einem
AHB-Controller 114, einem Speichercontroller 116,
einem Hardware-Protokollbeschleunigermodul 118 (Protocoll
Accelerator), einer Basisband-Prozesssteuerung („Base Band Processing") 120, einem RF-Frontend 122 und
einer AHB/APB-Bridge 124 verbunden. Die AHB/APB-Bridge 124 ist über einen APB-Bus 126 mit
dem Speichercontroller 116 und Timern 128, Interrupt-Request-Steuerungen
(IRQCTRL) 130, einer Eingabe/Ausgabe-Schnittstelle (I/O
Port) 132 und einer UART-Schnittstelle 134 verbunden. Über die
Eingabe/Ausgabe-Schnittstelle 132 und die UART-Schnittstelle 134 wird
mit einem oder mehreren angeschlossenen Sensoren 136 und 138 des
Sensorknotens 104 kommuniziert. Die Sensoren sind im EKG-Sensorknoten 104 an
sich bekannte EKG-Sensoren. Weiterhin enthält der Sensorknoten 104 einen
ersten Speicher 140, beispielsweise einen SRAM-Speicher,
und einen zweiten Speicher, beispielsweise einen PROM-Speicher 142,
die beide über
einen Speicherbus 144 mit dem Speichercontroller 116 verbunden
sind.
-
2 zeigt
ein schematisches Blockdiagramm des Sensorknotens aus 1,
in dem das Hardware-Protokollbeschleuniger-Modul („Protocol
Accelerator") 118 aus 1 detaillierter
dargestellt ist.
-
Die
Aufgaben des Protokollbeschleunigers 118 bestehen darin,
- – Datenblöcke von
der Bitübertragungsschicht 154 entgegen
zu nehmen (Empfangsrichtung), zu filtern, die CRC-Prüfsumme auszurechnen
und über
direkten Speicherzugriff an einer vorher angegebenen Stelle im Speicher
abzulegen,
- – den
Prozessor 110 zu benachrichtigen (per Interrupt), wenn
ein Datenblock erfolgreich empfangen wurde, sodass der Prozessor
die Datenblockauswertung übernehmen
kann,
- – empfangene
Datenblöcke,
für die
eine Bestätigung
(Immediate Acknowledgement Datenblock) gesendet werden muss, nach
10 Mikrosekunden zu bestätigen,
- – einen
Beacon-Datenblock, und zwar sowohl das gesendete im Falle, dass
das Gerät
PNC (Piconet-Controller) ist, als auch das empfangene, hinsichtlich
der reservierten Zeitschlitze auszuwerten,
- – eine
Warteschlange mit notwendigen Information über abzusendende Datenblöcke zu verwalten,
- – entsprechend
der verstrichenen Zeit seit Start des Beacon-Datenblocks und der
im Beacon festgelegten Zeitschlitze zur vorgesehenen Zeit ein Datenblock
aus der Warteschlange zum Absenden zu wählen,
- – das
Backoff-Verfahren in der Wettbewerbsphase umzusetzen,
- – die
Datenblockdaten über
direkten Speicherzugriff zu holen, die CRC-Prüfsumme
zu berechnen, an die Bitübertragungsschicht
zu übergeben,
ggf. auf die Bestätigung
zu warten und den Prozessor per Interrupt über den Erfolg der Datenblockübertragung
zu informieren.
-
Das
in der 2 dargestellte Hardware-Protokollbeschleunigermodul 118 kommuniziert
mit Hilfe eines Empfangsdatencontrollers 150 und eines
Sendedatencontrollers 152 mit Funktionsblöcken einer
relativ zum Hardware-Protokollbeschleunigermodul
externen Bitübertragungsschicht 154 des
Senderempfängers. Beide
Controller 150 und 152 sind mit CRC-Prüfeinheiten 156 bzw. 158 verbunden,
die eine zyklische Redundanzprüfung
nach bekannten Algorithmen durchführen.
-
Über einen
in 2 nicht näher
dargestellten internen Bus sind der Empfangsdatencontroller 150 und der
Sendedatencontroller 152 mit einer Interrupt-Einheit 160 verbunden,
die den LEON2-Prozessor 110 per Interrupt benachrichtigt,
wenn ein Datenblock erfolgreich empfangen wurde, so dass dieser
die Datenblockauswertung übernehmen
kann, oder wenn ein Datenblock erfolgreich an einen zweiten, externen
Senderempfänger übertragen
wurde.
-
Der
Sendedatencontroller 152 und der Empfangsdatencontroller 150 sind über eine
DMA (Direct Memory Access)-Einheit 162, ein Masterinterface 164,
den Systembus, und den Speichercontroller 116 mit dem zum
Protokollbeschleuniger 118 externen Speicher 140 (hier
nicht dargestellt, vgl. jedoch 1) verbunden, und
können über direktem
Speicherzugriff Datenblöcke
an vorbestimmten Stellen im Speicher 140 ablegen, bzw.
Datenblöcke
von vorbestimmten Stellen im Speicher 140 abrufen.
-
Eine
Beacon-Analyseeinheit 166 ist mit dem Empfangsdatencontroller 150 und
dem Sendedatencontroller 152 verbunden und dient zur Auswertung
eines Beacon-Datenblocks und zur entsprechenden Steuerung des Betriebs
des Hardware-Protokollbeschleunigermoduls 118 über einen
Scheduler 168 und einen Timer 170. Der Sendedatencontroller 152 greift über den
Scheduler 168 auf eine Sendewarteschlange 172 zu, und
sorgt dafür,
dass rechtzeitig zum im Beacon-Datenblock
vorbestimmten Zeitschlitz Sendedaten aus der Sendewarteschlange 172 abgerufen
und an die Bitübertragungsschicht 154 zur
Versendung weitergegeben werden.
-
Weiterhin
führt das
Hardware-Protokollbeschleunigungsmodul 118 in der vom IEEE
802.15.3 vorgesehenen Wettbewerbsphase einen Backoff-Verfahren durch.
-
Um
die Funktionsweise des Protokollbeschleunigers und das Zusammenwirken
seiner Komponenten näher
zu erläutern,
wird nachfolgend der Ablauf des Absenden eines Datenblocks dargestellt.
Dabei wird angenommen, dass als Datenblock ein Datenpaket, nachfolgend
auch kurz als Paket bezeichnet, gesendet wird. Die Beschreibung
nimmt Bezug auf das Protokoll IEEE 802.15.3, in dessen Rahmen der
Protokollbeschleuniger 118 zur Beschleunigung der MAC-Ebene
dient.
-
Der
Protokollbeschleuniger 118 sei in einem bereits assoziierten
Gerät im
Einsatz, d. h., es werden regelmäßig Beacon-Pakete
empfangen. Die Daten des Beacons werden, nacheinander jeweils 16
bit, von der Bitübertragungsschicht 154 an
den Empfangsdaten-Controller 150 übergeben. Dieser leitet den
empfangenen Datenstrom in den CRC-Algorithmus 156 und auch über direkten
Speicherzugriff (DMA) an eine vorher vom Prozessor 110 bestimmte
Speicheradresse. Wird erkannt, dass es sich bei dem Paket um einen
Beacon handelt – diese
Information ist im Protokoll-Header enthalten – gehen die Daten zusätzlich an
die Beacon-Analyseeinheit 166.
-
Ähnliches
geschieht im Sendedaten-Controller 152 für den Fall
des Koordinators, der die Beacon-Pakete aussendet und nicht empfängt.
-
In
der Beacon-Analyseeinheit 166 werden u. a. die Informationen über die
Zeitschlitze, zu denen das Gerät
senden darf, extrahiert und lokal in Registern bis zum nächsten Beacon
gespeichert.
-
Der
Scheduler 168 erhält
ein Steuersignal, sobald das Ende des Beacon-Pakets erreicht wurde – jetzt übernimmt
der Scheduler 168 die Kontrolle über die abzusendenden Pakete.
Der Timer 170 wird benötigt,
um den aktuellen Zeitpunkt innerhalb des Superframes ab Beginn der
Beacon-Übertragung
anzuzeigen. Mit dieser Zeitinformation und den Zeitschlitzangaben
aus der Beacon-Analyse fragt der Scheduler 168 bei der
Sendewarteschlange 172 jeweils zu Beginn eines Zeitschlitzes
und nach dem Ende einer Paketübertragung
ein nächstes
zu sendendes Paket an.
-
Gibt
es ein passendes Paket in der Sendewarteschlange 172, so
wird der Sendedaten-Controller 152 mit dessen Übertragung
beauftragt. Es ist dabei möglich,
dass mehrere Paketübertragungen
innerhalb eines Zeitschlitzes erfolgen.
-
Eine
zusätzliche Übertragungsdauerberechnungseinheit 174 (CalcDuration),
berechnet die tatsächliche
Dauer der Übertragung,
basierend auf der Paketlänge
und seiner Datenrate. Dieselbe Übertragungsdauerberechnungseinheit 174 wird
auch von der Sendewarteschlange 172 benutzt, um zu bestimmen,
ob die Übertragung
noch in den Zeitschlitz passt.
-
Die
Zeitsteuerung durch den Timer 170 sorgt dafür, dass
der Scheduler 168 nach der Übertragung das nächste Paket
entweder noch für
denselben oder den nächsten
Zeitschlitz aus der Sendewarteschlange 172 anfragt. Der
Scheduler 168 initiiert auch für das Absenden des Beacons
zu Beginn des nächsten
Superframes.
-
Nachfolgend
wir die Funktionsweise der Sendewarteschlange 172 in näheren Einzelheiten
beschrieben.
-
Das
im Protokollbeschleuniger 118 realisierte automatische
Absenden von Paketen – ohne
die unmittelbare Steuerung des LEON2-Prozessors 110 – im Zusammenspiel
von Scheduler 168, Sendewarteschlange 172 und
direktem Speicherzugriff über
die DMA-Einheit 162 ermöglicht
es, die Verarbeitungsgeschwindigkeit und damit den Energieverbrauch
des Prozessors 110 zu verringern. Eine entscheidende Rolle
spielt dabei die Sendewarteschlange 172.
-
Die
für den
Einsatz im Protokollbeschleuniger 118 vorgesehene Sendewarteschlange 172 enthält eine Liste
oder eine Tabelle mit Informationen über abzusendende Pakete, nicht
jedoch die Pakete selbst. Diese sind im Speicher abgelegt, der relativ
zum Protokollbeschleuniger extern angeordnet ist. Die auf dem LEON2-Prozessor 110 laufende
Protokoll-Software füllt
diese Tabelle entsprechend dem Paketaufkommen. Eine Meldung an den
Prozessor 110 wird abgesendet, sobald ein Paket erfolgreich
gesendet wurde oder mehrmals nicht übertragen werden konnte. Dann
kann der Tabelleneintrag durch den Prozessor 110 durch
einen neuen Eintrag ersetzt werden. Dies muss jedoch nicht sofort
passieren, da noch genügend
andere Pakete in der Sendewarteschlange 172 bereitstehen.
-
Beispielsweise
kann die Sendewartenschlange 172 acht Tabelleneinträge enthalten.
Es könnten
jedoch auch deutlich mehr Tabelleneinträge sein, z. B. 32 oder 64.
Um schneller ein passendes Paket nach Anfrage durch den Scheduler 168 heraussuchen
zu können,
werden Paketlisten für
unterschiedliche Pakettypen, etwa Beacon-Pakete oder solche, die
in der Wettbewerbsphase (Contention Access Period) gesendet werden können, geführt. Der
Anfangslisteneintrag ist gespeichert, von diesem aus kann die ganze
Liste über
Verweise zum nächsten
Listenelement durchlaufen werden. Außerdem gibt es auch Rückverweise
auf das jeweils vorhergehende Element, um auch Löschoperationen effizient unterstützen zu
können.
-
Es
ergibt sich die in der nachfolgenden Tabelle 1 zusammengefasste
Struktur der Tabelleneinträge, die
neben den eigentlichen Paketdaten auch Listenverwaltungsfelder enthält.
| Feldname | Zweck |
| Valid | Gültigkeit
des Eintrags, Paket muss noch gesendet werden. |
| Status | Zustand
der Übertragung
(erfolgreich, abgebrochen) |
| Rate | Datenrate |
| frame_type | Pakettyp
(nach IEEE 802.15.3) |
| src_id,
dest_id | Quelladresse,
Zieladresse |
| stream_index | Identifikator
für isochrone
Datenströme |
| Length | Paketlänge |
| payload_ptr | Adresse
des Pakets im Speicher |
| Offset,
frag_size, frag_num, last_frag_number | Angaben
bei Paketfragmentierung |
| msdu_num | Paketfolgenummer |
| retry_count | Zähler für fehlgeschlagene Übertragungen |
| prev_elem,
next_elem | Verweis
auf nächstes/voriges
Listenelement (Index in die Tabelle) |
| extra_data | Unbenutztes
Datenfeld, das die Software beschreiben kann, um sich bspw. den
Index in eine Software-Tabelle zu merken. |
-
Tabelle 1: In jedem Tabelleneintrag der
Sendewarteschlange enthaltene Informationen
-
In
T. H. Meng, B. McFarland, D. Su, and J. Thomson, "Design and implementation
of an all-CMOS 802.11a wireless LAN chipset," IEEE Commun. Mag., vol. 41, no. 8,
pp. 160-168, Aug. 2003 ist in einem anderen Zusammenhang die Verwendung
von Paketdeskriptoren erwähnt.
Daraus ist es jedoch nicht bekannt, eine Sendewarteschlange in Paketlisten
für unterschiedliche
Pakettypen zu unterteilen.
-
Um
den Hardware-Entwurf des Protokollbeschleunigers 118 nicht
auf eine bestimmte Datenrate und Zeitabstände zwischen den aufeinanderfolgenden
Paketübertragungen
festzulegen, weist der Protokollbeschleuniger 118 software-programmierbare Register 176 bis 180 eingefügt, die
maßgeblich
das Zeitverhalten des Protokollbeschleunigers 118 bestimmen.
Diese Register werden vom Scheduler 168 ausgelesen, wenn dieser
den Zeitpunkt des Absendens des nächsten Paketes bestimmt. Die
Register 176 bis 180 enthalten den SIFS-, MIFS-
bzw. Backoff-Slot-Wert, jeweils angegeben in Mikrosekunden.
-
Außerdem gibt
es ein Register 182, mit dessen Hilfe die weiter oben erwähnte Übertragungsdauerberechnungseinheit 174 die
Dauer der Übertragung
bei gegebener Paketlänge
berechnet: Zeit = Paketlänge/Datenrate.
Die Übertragungsdauerberechnungseinheit 174 kommt
nur einmal im Protokollbeschleuniger vor und wird aber von mehreren
anderen Einheiten über
den (nicht näher
dargestellten) Systembus in Anspruch genommen. Ein Arbitrationsverfahren
sorgt dafür,
dass immer nur höchstens
eine Einheit exklusiven Zugriff auf die Übertragungsdauerberechnungseinheit 174 erhält.