-
TECHNISCHES GEBIET
-
Verschiedene
hier beschriebene Ausführungsbeispiele
beziehen sich allgemein auf Kommunikationen einschließlich Vorrichtungen,
Systemen und Verfahren, die zum Übertragen
und Empfangen von Information über
drahtlose Netzwerke und andere Kommunikationskanäle verwendet werden.
-
HINTERGRUND
-
Bei
einem digitalen Kommunikationssystem kann eine Ausgangseinheit eine
Information an eine Bestimmungseinheit entsprechend einem auf einem Rahmen
basierenden Datenübertragungsprotokoll aussenden.
Da der Kommunikationskanal verrauscht und unzuverlässig sein
kann, kann das Datenübertragungsprotokoll
ein Rahmenaustauschprotokoll implementieren, um es der Ausgangseinheit
zu erlauben zu bestimmen, ob ein gesendeter Rahmen erfolgreich von
der Bestimmungseinheit empfangen worden ist. Das Protokoll kann
zwei Rahmen aufweisen: 1) einen ausgesendeten Rahmen, der einen Rahmen
beinhaltet, der von der Ausgangseinheit an die Bestimmungseinheit
ausgesendet ist und 2) einen Antwortrahmen, der ein Anerkenntnis
(ACK) der Bestimmungseinheit einschließt, dass der gesendete Rahmen
richtig empfangen worden ist.
-
Um
es der Bestimmungseinheit zu ermöglichen
zu bestimmen, ob ein Rahmen richtig empfangen worden ist, kann die
Quelleinheit eine Rahmenprüfsequenz
und möglicherweise
eine Kopfprüfsequenz
gemeinsam mit dem ausgesendeten Rahmen codieren und aussenden. Wenn
die Auswertung der Rahmenprüfsequenz
und der Kopfprüfsequenz durch
die Bestimmungseinheitsbewertung angibt, dass der ausgesendete Rahmen
richtig empfangen worden ist, kann die Bestimmungseinheit einen
ACK Rahmen an die Ausgangseinheit senden. Wenn die Auswertung ergibt,
dass der gesendete Rahmen mit Fehlern empfangen worden ist, kann
die Bestimmungseinheit es unterlassen, den ACK Rahmen auszusenden.
In diesem Fall kann die Quelleinheit bei dem Ablauf eines Anerkennungszeitgebers
den gesamten gesendeten Rahmen erneut an die Bestimmungseinheit
aussenden. Dieses Übertragungsverfahren
kann zu einer robusteren Kommunikation führen. Für erheblich eingeschränkte Kanäle können die Kommunikationen
also erhebliche Beträge
der Systembandbreite verbrauchen, insbesondere bei Kommunikationen,
die relativ große
Rahmen beinhalten.
-
KURZE ERLÄUTERUNG DER ZEICHNUNGEN
-
1 ist
ein vereinfachtes Blockdiagramm eines Kommunikationssystems in Übereinstimmung mit
einem beispielhaften Ausführungsbeispiel,
-
2 ist
ein vereinfachtes Blockdiagramm eines Kommunikationssystems, das
einen Codierer/Sender und einen Empfänger/Decodierer in Übereinstimmung
mit einem beispielhaften Ausführungsbeispiel
der Erfindung wiedergibt,
-
3 ist
ein vereinfachtes Blockdiagramm, das funktionale Elemente einer
Ausgangseinheit und einer Bestimmungseinheit in Übereinstimmung mit einem beispielhaften
Ausführungsbeispiel
der Erfindung wiedergibt,
-
4 ist
ein Diagramm, das einen ursprünglichen
Datenrahmen in Übereinstimmung
mit einem Ausführungsbeispiel
der Erfindung wiedergibt,
-
5 ist
ein Diagramm, das eine Botschaft, die einen beschädigten Block
in Übereinstimmung mit
einem Ausführungsbeispiel
der Erfindung wiedergibt,
-
6 ist
ein Diagramm, das einen antwortenden Datenrahmen in Übereinstimmung
mit einem beispielhaften Ausführungsbeispiel
wiedergibt,
-
7 ist
ein Flussdiagramm, das ein Verfahren für eine Bestimmungseinheit zum
Korrigieren eines Datenrahmens in Übereinstimmung mit einem beispielhaften
Ausführungsbeispiel
wiedergibt, und
-
8 ist
ein Flussdiagramm eines Verfahrens für eine Ausgangseinheit zum
selektiven Übertragen
identifizierter Datenblöcke
in Übereinstimmung
mit einem beispielhaften Ausführungsbeispiel.
-
EINGEHENDE BESCHREIBUNG
-
Verschiedene
Ausführungsbeispiele
des Erfindungsgegenstands, der unten beschrieben ist, weisen eine
Vorrichtung und Art und Weisen zum Kommunizieren von Datenrahmen
in einer robusten Weise ein. Verschiedene Ausführungsbeispiele können in
Systemen und Einheiten implementiert sein, etwa dem System und der
Einheit, die in Verbindung mit den 1 und 2 beschrieben
worden ist. Verschiedene Ausführungsbeispiele
können
weiter in anderen Systemen und Einheiten implementiert sein, die
eine unterschiedliche Ausbildung haben, wie es sich für den Fachmann
basierend auf dieser Beschreibung ergibt.
-
1 ist
ein vereinfachtes Blockdiagramm eines Kommunikationssystems 100 in Übereinstimmung
mit einem beispielhaften Ausführungsbeispiel. Das
System 100 weist mehrere Kommunikationseinheiten 102, 104 auf.
Obwohl nur zwei Einheiten 102, 104 zum Zwecke
der Vereinfachung dargestellt sind, kann das System 100 viele
Kommunikationseinheiten aufweisen.
-
Eine
Einheit 102, 104 kann mobil, tragbar oder ortsfest
sein. Beispielsweise kann eine Einheit 102, 104 ein
Laptop, ein Desktop, ein Server, ein Mainframe-Computer, ein Handy,
ein Personal Data Assistant (PDA), ein Drucker, ein drahtloses Peripheriegerät für einen
Computer (beispielsweise eine Tastatur, eine Maus usw.), ein tragbares
Radio, eine Intermediate Communications Device (beispielsweise ein
Router, ein Zugangspunkt usw.), ein elektronisches Gerät eines
Verbrauchers (beispielsweise ein Fernseher, ein Spielgerät, ein Peripheriegerät für ein Spielsystem
usw.) oder jede andere elektronische Einrichtung mit der Fähigkeit
zum Kommunizieren mit einem auf einem Rahmen basierenden Kommunikationsprotokoll
sein.
-
Die
Einheiten 102, 104 können miteinander direkt kommunizieren,
etwa über
eine direkte drahtlose Link 106 oder ein verdrahtetes Link 108.
Alternativ oder zusätzlich
dazu können
die Geräte 102, 104 miteinander
indirekt über
ein drahtloses Netzwerk 112 oder ein verdrahtetes Netzwerk 116 über drahtlose Links 110 bzw.
verdrahtete Links 114 kommunizieren. Beispielsweise können Netzwerke 112, 116 ein Local
Area Network (LAN) beinhalten, ein Wide Area Network (WAN), ein
drahtloses LAN (WLAN), ein Radio Area Network (RAN), ein Personal
Area Network (PAN) (beispielsweise ein Bluetooth-Netz), ein Handy-Netz,
ein Satelliten-Netz oder jede Kombination daraus. Beispielsweise
können,
ohne darauf eingeschränkt
zu sein, Ausführungsbeispiele
in jedem WLAN System oder Gerät
implementiert sein, das ein Institute of Electrical and Electronics
Engineers (IEEE) 802.x Standard unterstützt (beispielsweise IEEE Std.
802.11-1997, 802.11a, 802.11e, 802.15, 802.16, 802.2, usw.).
-
Die
Einheiten 102, 104 können miteinander oder mit Netzen 112, 116 über unidirektionale
oder bi-direktionale Links kommunizieren. Entsprechend kann jede
Einheit 102, 104 dazu eingerichtet sein, als ein
Ausgangsgerät,
ein Bestimmungsgerät
oder beides zu arbeiten.
-
2 ist
ein vereinfachtes Blockdiagramm eines Kommunikationsgeräts 200 in Übereinstimmung
mit einem beispielhaften Ausführungsbeispiel. Die
Einheit 200 weist wenigstens ein Prozessorelement 202,
einen Codierer/Sender 204 und einen Empfänger/Decodierer 206 auf.
Das Prozessorelement 202 kann einen oder mehrere Prozessoren
für allgemeine
Zwecke oder spezielle Zwecke, anwendungsspezifische integrierte
Schaltkreise (ASIC) oder diskrete oder integrierte Schaltkreise
oder Kombinationen daraus aufweisen. Das Prozessorelement 202 kann
jede aus einer Anzahl von Funktionen ausführen, einschließlich, nicht
aber begrenzt auf, unter anderem Datenverarbeitung (beispielsweise
Erzeugen, Verbrauchen oder andere Datenverarbeitung), Sprachverarbeitung,
Kommunikationssteuerfunktionen und Gerätesteuerfunktionen.
-
Da
das Gerät 200 sowohl
einen Codierer/Sender 204 als auch einen Empfänger/Decodierer 206 aufweist,
kann das Gerät 200 bi-direktionale Kommunikationen
unterstützen.
Bei anderen Ausführungsbeispielen
kann das Gerät 200 nur
einen Codierer/Sender oder einen Empfänger/Decodierer, nicht aber
beide, aufweisen. Bei derartigen Ausführungsbeispielen kann das Gerät 200 als
eine Ausgangseinheit bzw. eine Bestimmungseinheit arbeiten, kann aber
nicht bi-direktionale Kommunikationen unterstützen.
-
Bei
einem Ausführungsbeispiel
weist das Gerät 200 eine
Kommunikationshardware 208 auf, die es der Einheit 200 erlaubt,
Datenrahmen über
einen oder mehrere Kommunikationslinks 210 auszusenden
und zu empfangen. Bei einem besondern Ausführungsbeispiel weist die Kommunikationshardware 208 eine
oder mehrere Antennen auf (beispielsweise einen Dipole, einen Patch,
eine omni-direktionale Antenne oder andere Typen von Antennen),
die Kommunikationen über
ein drahtloses Link 210 (beispielsweise über eine
Funkschnittstelle ermöglicht). Wenn
eine infrarote Spezifikation implementiert wird, können die
Kommunikationshardware 208 eine oder mehrere lichtemittierende
Dioden (LED) (nicht gezeigt) oder andere optische Übertragungseinheiten aufweisen.
Bei alternativen Ausführungsbeispielen kann
die Kommunikationshardware 208 einen Zugriff zu einem (nicht
dargestellten) verdrahteten Link erlauben.
-
Die
Einheit 200 kann eine oder mehrere Datenspeicherelemente 212 aufweisen,
die zugreifbar sind für
das Prozessorelement 202, den Codierer/Sender 204 und/oder
den Empfänger/Decodierer 206.
Die Datenspeicherelemente 212 können, beispielsweise, einen
oder mehrere flüchtige
oder nicht-flüchtige
Speichermedien, einschließlich
Read Only Memory (ROM) Speicher mit wahlfreiem Zugriff (RAM), eine
Festspeicherplatte, ein entfernbares Speichermedium (zum Beispiel
CD ROM, ein digitalen Videospeicher, ein Floppydisk), Magnetkassetten,
Speicherkarten oder Sticks, andere Speichermedien oder Kombinationen
aus diesen. Datenspeicherelemente 212 können dauerhaft oder zeitweise,
beispielsweise Daten und computerausführbare Befehle ausführen usw.
-
Bei
einem Ausführungsbeispiel
kann die Einheit 200 eine oder mehrere Verwenderschnittstellen 214 aufweisen.
Beispielsweise kann, ohne darauf beschränkt zu sein, eine Verwenderschnittstelle 214 eine
Tastatur, ein Keypad, eine Maus oder Auswahleinrichtung, ein Lautsprecher,
ein Mikrofon, ein Display oder Kombinationen aus diesen aufweisen.
Weiter kann das Gerät 200 eine
oder mehrere Batterieaufnahmen 216 aufweisen. Entsprechend
kann das Gerät 200 mit
einer geeignet geladen installierten Batterie ohne einen Zugriff
auf ein kontinuierliches Netzteil (beispielsweise in dem Fall eines
tragbaren elektronischen Gerätes)
arbeiten oder kann arbeiten, wenn eine Unterbrechung eines Netzteils
auftritt. Bei verschiedenen Ausführungsbeispielen
kann das Gerät
zusätzliche
oder unterschiedliche Elemente als diejenige, die in 2 gezeigt
sind, aufweisen, die Elemente können
auch unterschiedlich angeordnet sein.
-
3 ist
ein vereinfachtes Blockdiagramm, das funktionale Elemente einer
Ausgangseinheit 202 und einer Bestimmungseinheit 304 in Übereinstimmung
mit einer beispielhaften Ausführung
zeigt. Wie zuvor erwähnt,
kann eine bestimmte Einheit dazu eingerichtet sein, sowohl als Ausgangseinheit
als auch als Bestimmungseinheit zu arbeiten. Zur Verdeutlichung
der Erläuterung
wurden die Funktionalitäten
einer Ausgangseinheit und einer Bestimmungseinheit in 3 aufgeteilt
in separate Einheiten 302, 304.
-
Elemente
der Vorrichtung und Prozesse entsprechen verschiedener Ausführungsbeispiele
des Erfindungsgegenstandes weisen auf: 1) eine Ausgangseinheit,
die einen ursprünglichen
Datenrahmen, der mehrere Blöcke
aufweist, über
einen Kommunikationskanal zu einer Bestimmungseinheit aussendet;
2) die Bestimmungseinheit den empfangenen Rahmen speichert und beschädigte Blöcke innerhalb
des gespeicherten Rahmens erkennt; 3) die Destinationseinheit eine
Botschaft an die Ausgangseinheit sendet, die die beschädigten Blöcke kennzeichnet;
4) die Ausgangseinheit einen entsprechenden Datenrahmen an die Bestimmungseinheit
aussendet, die einen oder mehrere Datenblöcke entsprechend dem einen
oder mehreren beschädigten Datenblöcken erneut
aussendet, und 5) die Bestimmungseinheit einen korrekten Datenrahmen
von dem einen oder mehreren erneut ausgesendeten Datenblöcken und
den zuvor gesendeten, nicht beschädigten Datenblöcken erzeugt.
Es versteht sich, dass basierend auf dieser Beschreibung die Implementation verschiedener
Ausführungsbeispiele
das erneute Übertragen
von geschädigten
Datenblöcken
erlaubt, nicht also nur das erneute Aussenden vollständiger Rahmen.
Entsprechend kann eine robuste Kommunikation unter Beibehalten der
Bandbreite, die zum erneuten Aussenden der beschädigten Information erreicht
werden.
-
Zum
Erleichtern des Verständnisses
des Verarbeitungsflusses entsprechend der verschiedenen Ausführungsbeispiele
beginnt die nachfolgende Beschreibung von 3 mit einer
Beschreibung einer Ausgangseinheit 302, geht über in eine
Beschreibung der Bestimmungseinheit 304, kehrt zu einer weiteren
Beschreibung der Ausgangseinheit 302 zurück und kehrt
sodann zu einer weiteren Beschreibung der Ausgangseinheit 304 zurück.
-
Bei
einem Ausführungsbeispiel
weist eine Ausgangseinheit 302 eine Eingangsdatenquelle 310, einen
Codierer 312, ein Datenerzeugungsmodul 314, einen
Modulator/Sender 316, einen Empfänger/Demodulator/Decoder 318,
ein Rahmenwiederherstellmodul 320 und ein Rahmenmanagementmodul 322 auf.
-
Die
Eingangsdatenquelle 310 kann, beispielsweise, eine oder
mehrere adressierbare Datenspeicherlemente aufweisen, innerhalb
derer die Quelleninformation gespeichert ist. Die schließliche Quelle
von Daten kann höher
sein als das in der Quelleneinheit implementierte Pegelprotokoll
oder kann dieselbe andere lokale oder entfernte Quelle von Daten
sein. In Antwort auf eine oder mehrere Datenselektionsbefehle, die
bestimmte in dem Rahmen vorgesehene Daten kennzeichnen, kann die
Eingangsdatenquelle 310 eine Quelleninformation an das
Datenerzeugungsmodul 314 liefern. Bei einem Ausführungsbeispiel
können
die Datenselektionsbefehle von einem Datenmanagementmodul, das später beschrieben
werden wird, oder durch ein anderes Modul geschaffen werden.
-
Diese
Quelleninformation für
einen bestimmten Rahmen wird von dem Rahmenerzeugungsmodul empfangen.
Bei einem Ausführungsbeispiel
dient das Rahmenerzeugungsmodul 314 zum Zusammensetzen
eines ursprünglichen
Datenrahmens zur Übertragung
auf eine Bestimmungseinheit. Die ursprünglichen Datenrahmen weisen
eine Mehrzahl von codierten Datenblöcken auf und einen Rahmenkopf.
Bei einem Ausführungsbeispiel
kann der Datenkopf von dem Rahmenmanagementmodul 322, das später beschrieben
werden wird oder einem anderen Modul empfangen wird.
-
Bei
einem Ausführungsbeispiel
berechnet das Rahmenerzeugungsmodul 314 einen Prüfsummenwert
für die
Quelleninformation, die für
den Rahmen empfangen worden ist, der hier als Datenprüfsummenwert
bezeichnet wird. Bei einem weiteren Ausführungsbeispiel berechnet das
Rahmenerzeugungsmodul einen Prüfsummenwert
für den
Header, der hier als Headerprüfsummenwert
bezeichnet wird. Bei alternativen Ausführungsbeispielen können entweder
einer oder beide der Headerprüfsummenberechnung
oder der Datenchecksummenberechnung aufgeschlossen sein.
-
Der
Codierer 312 empfängt
die Quelleninformation aus dem Rahmenmanagementmodul 322 (oder
aus der Eingangsdatenquelle 310) und den Datenprüfsummenwert
und codiert die Quelleninformation und den Datenprüfsummenwert,
was zu einer Mehrzahl von codierten Datenblöcken führt. Weiter empfängt bei
einem Ausführungsbeispiel
der Codierer 312 den Kopf und den Headerprüfsummenwert und
codiert diese.
-
Bei
einem Ausführungsbeispiel
implementiert der Codierer 312 eine Blockcodecodierungstechnik
zum Codieren von Daten (hier auch als „Blockcodieren" bezeichnet. Beispielsweise,
nicht aber einschränkend,
kann die Blockcodiertechnik einen Low Density Parity Check (LDPC)
Codiertechnik. Andere Blockcodierungstechniken können bei anderen Ausführungsbeispielen
verwendet werden. Um einen zusätzlichen
Mechanismus zum Prüfen
auf Fehler und, in einigen Fällen,
um Fehler zu korrigieren, führt
das Blockcodieren eine Redundanz in einem Block von Daten hinzu.
Das Blockcodieren, das in einem Block von Daten ausgebildet wird,
erzeugt ein „Codewort" oder einen „codierten
Datenblock". Wegen
der hinzugefügten
Redundanz kann der blockcodierte Datenblock mehr Bits als der Eingangsblock
von Daten, aus denen der codierte Datenblock erzeugt worden ist,
aufweisen.
-
Der
Codierer 312 liefert die Mehrzahl von codierten Datenblöcken an
das Rahmenerzeugungsmodul 314, das den Eingangsdatenrahmen
zusammensetzt. 4 ist ein Diagramm, das einen
Eingangsdatenrahmen 400 in Übereinstimmung mit einem Ausführungsbeispiel
zeigt. Der hier verwendete Begriff „Rahmen" bedeutet eine Dateneinheit, die einen
Rahmenheader 402 und einen Rahmenkörper 404, bei einem
Ausführungsbeispiel,
aufweist. Der Rahmenkörper
kann ein Feld mit variabler Länge oder
fester Länge
haben und kann einen oder mehrere codierte Blöcke 410, 411, 412, 413 aufweisen. Weiter
kann jeder Block eine oder mehrere Bytes von Daten beinhalten. Beispielsweise
kann der Rahmenkörper 28 die
Blöcke
aufweise, wobei jeder Block 56 Bytes aufweisen kann. Die
beispielhaften Ziffern sind willkürlich gewählt, ein Rahmenkörper kann
mehr oder weniger Blöcke
aufweisen und ein Block kann mehr oder weniger Bytes aufweisen.
Weiter weisen einige oder alle Blöcke innerhalb eines Rahmens eine
unterschiedliche Anzahl von Bytes auf.
-
Bei
einem weiteren Ausführungsbeispiel kann
ein Rahmen 400 auch eine Rahmenprüfsequenz oder eine Headerprüfsequenz
(nicht dargestellt) aufweisen. Bei einem Ausführungsbeispiel kann die Rahmenprüfsequenz
und die Headerprüfsequenz
das Ergebnis des Aufbringens von mathematischen Algorithmen beinhalten
(beispielsweise eine CCITT CRC-16 oder CRC-32 Polynominal) an dem Rahmenkörper 404 bzw.
dem Rahmenheader 402. Bei einem Ausführungsbeispiel wird die Rahmenprüfsequenz
mit den Rahmendaten codiert (beispielsweise dem letzten Block 413 oder
mit einem anderen Block) und die Headerprüfsequenz wird mit dem Rahmenheader
(beispielsweise dem Header 402) codiert.
-
Bei
einem weiteren Ausführungsbeispiel kann
der Rahmen 400 eine Medium Access Control (MAC) Protokolldateneinheit
oder MPDU sein, wie in einer Standardspezifikation definiert, etwa
einem IEEE Std. 802.11 Spezifikation, zum Beispiel. Bei einem Ausführungsbeispiel
kann die MPDU einen MAC Header (beispielsweise dem Header 402),
einen Rahmenkörper
(beispielsweise den Körper 404) und
ein FCS aufweisen. Der Rahmenkörper
kann wiederum einen oder mehrere codierte Blöcke einschließlich MAC
Servicdateneinheiten (MSDU) oder Protocol Service Data Units (PSDU)
von Protokollführerschichten
aufweisen.
-
Es
wird jetzt wieder auf 3 Bezug genommen. Das Rahmenerzeugungsmodul 314 erzeugt eine
digitale Darstellung des ursprünglichen
Datenrahmens. Die ursprünglichen
Datenrahmen können vor
der Übertragung
verschlüsselt
sein, muss dies aber nicht. Beispielsweise kann, ohne darauf begrenzt
zu sein, ein Rahmen unter Verwendung von Wired Equivalent Privacy
(WEP)-Algorithmen oder einem anderen Typ von Verschlüsselungsalgorithmen
verschlüsselt
sein.
-
Der
Modulator/Sender 316 empfängt die ursprünglichen
Datenrahmen, moduliert den Rahmen und überträgt den Rahmen über ein
Kommunikationslink 350 (beispielsweise einem verdrahteten
oder einem drahtlosen Link). Entsprechend kann der ursprüngliche
Datenrahmen auch bezeichnet werden als ursprünglich ausgesendeter Datenrahmen.
-
Der
Modulator/Sender 316 kann eines oder mehrere Filter, einen
Modulator und andere Vorrichtungen zum Implementieren der besonderen
physikalischen Schichtspezifikationen, die durch die Quelleneinheit 302 unterstützt werden,
aufweisen. Weiter kann bei einem Ausführungsbeispiel, in dem die Quelleneinheit 302 eine
drahtlose Einheit ist, der Modulator 316 eine oder mehrere
Antennen aufweisen (beispielsweise Dipol, Patch, omni-direktionale
Antennen oder andere Arten von Antennen, nicht dargestellt) zum Übertragen
der modulierten Daten über die
Funkschnittstelle. Bei anderen Ausführungsbeispielen, bei denen
die Quelleneinheit 302 über
verdrahtete Verbindungen kommuniziert, kann der Modulator/Sender
eine Netzschnittstelle aufweisen, die geeignet ist zum Aufbringen
von Informationen auf das verdrahtete Netz.
-
Bei
einem Ausführungsbeispiel
weist die Bestimmungseinheit 304 einen Empfänger/Demodulator 330,
einen Decodierer 332, ein Rahmenrestaurationsmodul 334,
ein Validationsmodul 336 für den gespeicherten Rahmen,
ein Blockspeicherelement 338, ein Botschaftserzeugungsmodul 340,
einen Codierer/Modulator/Sender 342, ein Verarbeitungsmodul 344 für den korrigierten
Rahmen und ein Validationsmodul 346 für den korrigierten Rahmen auf.
-
Der
Empfänger/Demodulator 330 empfängt Information
von dem Kommunikationslink 352. Bei einem Ausführungsbeispiel
kann die Information, die der Empfänger/Demodulator 330 über der
Link 352 empfängt,
einen Header aufweisen und die codierten Datenblöcke, die dem ursprünglich ausgesendeten Datenrahmen
zugehörig
ist, der von der Quelleneinheit 302 geliefert worden ist.
-
Der
Link 352 kann derselbe Link sein wie der Link 350.
Eine direkte Verbindung kann, mit anderen Worten, zwischen der Quelleneinheit 302 und
der Bestimmungseinheit 304 vorgesehen sein. Es versteht sich
jedoch weiter, dass, obwohl nur Links 350, 352 zwischen
dem Modulator/Sender 316 und der Bestinnungseinheit 304 dargestellt
sind, bei anderen Ausführungsbeispielen
ein oder mehrere Netze und/oder Zwischeneinheiten zwischen der Quelleneinheit 302 und
der Bestimmungseinheit 304 vorgesehen sein können.
-
Der
Empfänger/Demodulator 330 kann
ein oder mehrere Filter, einen Demodulator, eine Zeitgeberrückgewinnungseinheit
und eine weitere Vorrichtung zum Implementieren der bestimmten physikalischen
Schichtspezifikationen, die von der Bestimmungseinheit 304 unterstützt werden.
Weiter kann bei einem Ausführungsbeispiel,
bei dem die Bestimmungseinheit eine drahtlose Einheit ist, der Empfänger/Demodulator 330 eine
oder mehrere Antennen aufweisen (beispielsweise ein Dipol, ein Patch,
eine omni-direktionale oder andere Typen von Antennen, nicht gezeigt)
zum Empfangen der demodublierten Rahmen von der Funkschnittstelle.
Bei anderen Ausführungsbeispielen,
bei denen die Bestimmungseinheit 304 über verdrahtete Verbindungen
kommuniziert, kann der Modulator/Sender 330 eine Netzschnittstelle
aufweisen, die geeignet ist, um Information von dem verdrahteten
Netz zu empfangen.
-
Der
Empfänger/Demodulator 330 liefert
demodublierte, codierte Datenblöcke
an den Decoder 332. Der Decodierer 332 dient zum
Codieren der codierten Datenblöcke,
was zu einer Vielzahl von decodierten Datenblöcken führt. Bei einem Ausführungsbeispiel
implementiert der Decodierter 332 Blockdecodiertechniken
(beispielsweise das LDPC Decodieren) um Daten zu decodieren.
-
Wenn
Signale, die von gesendeten, codierten Datenblöcken stammen, empfangen und
verarbeitet werden, kann die redundante Information, die in den
codierten Datenblöcken
vorhanden ist, verwendet werden zum Identifizieren und/oder Korrigieren
von Fehlern in oder entfernte Distortion, gemeinsam bezeichnet als „Syndrome" aus den empfangenen
Signalen, um die originalen eingegebenen Blöcke von Daten zurückzugewinnen.
Bei einem Ausführungsbeispiel
kann das Fehlerprüfen
und/oder Korrigieren implementiert sein durch den Decodierer 312 während des
Decodiervorgangs. Bei dem Fehlen von Fehlern oder in dem Fall von
korrigierbaren Fehlern oder Distortion kann das Decodieren verwendet werden
um die ursprünglichen
Eingangsblöcke
von Daten rückzugewinnen,
die durch den Codierer 312 codiert worden sind. In dem
Fall von nicht korrigierbaren Fehlern oder Distortion in einem empfangenen Datenblock
kann der Decodierer 332 eine Anzeige erzeugen, dass die
Originaldaten für
den Datenblock nicht vollständig
rückgewonnen
werden können.
Bei einem Ausführungsbeispiel
kann diese Anzeige, die hier als „fehlerhafter Block-Anzeige" bezeichnet werden
wird, zum Initiieren eines erneuten Übertragens des initialen Eingangsdatenblocks
entsprechend den nicht rückgewinnbaren
Datenblöcken
verwendet werden, wie das weiter unten eingehender beschrieben werden
wird.
-
Der
Decodierter 332 schafft eine Vielzahl von codierten Datenblöcken und
die Anzeigen der fehlerhaften Blöcke,
wenn solche vorhanden sind, an das Rahmenrestaurationsmodul 334.
Das Rahmenrestaurationsmodul 334 dient zum Herstellen aus
der Vielzahl von codierten Datenblöcken einer rückgewonnenen
Version des ursprünglichen
Datenrahmens.
-
Bei
einem Ausführungsbeispiel
erzeugt das Rahmenrestaurationsmodul 334 die rückgewonnene Version
des ursprünglichen
Datenrahmens an das Validationsmodul 336 für den rückgewonnenen
Rahmen. Das Validationsmodul 336 für den rückgewonnenen Rahmen dient zum
Ausführen
eines Validationsvorgangs an der rückgewonnenen Version des ursprünglichen
Datenrahmens. Bei einem Ausführungsbeispiel
weist der Validationsvorgang das Berechnen einer neuen Rahmenprüfsequenz
für die rückgewonnenen
Datenblöcke
auf und das Vergleichen des neuen Werts mit der empfangenen Rahmenprüfsequenz
in der rückgewonnenen
Version des ursprünglichen
Datenrahmens (d. h., welcher Wert, falls nicht beschädigt, gleich
der Rahmenprüfsequenz
sein sollte, die berechnet ist durch die Quelleneinheit und gemeinsam
mit dem ursprünglichen Datenrahmen
ausgesendet ist). Ein ähnlicher
Validationsvorgang kann für
den Header durchgeführt
werden unter Verwendung der Headerprüfsequenz. Bei einem Ausführungsbeispiel
ist die wiederhergestellte Version an eine Rahmenaufnahme 348 zu
liefern, wenn der Validationsvorgang erfolgreich ist. Bei einem
Ausführungsbeispiel
kann die Rahmenaufnahme 330 ein Element der Bestimmungseinheit 304 sein
oder aber kann ein Teil eines separaten elektronischen Gerätes sein.
-
Wenn
der Validationsvorgang nicht erfolgreich ist, zeigt das Validationsmodul 336 für den rückgewonnenen
Rahmen bei einem Ausführungsbeispiel
das ungültige
Ergebnis. Bei einem Ausführungsbeispiel
dient das Rahmenrestaurationsmodul 334 zum Empfangen der
Anzeige für
ein ungültiges Ergebnis
und in Antwort darauf zum Initiieren eines Blockfehleranzeigevorgangs.
Bei einem anderen Ausführungsbeispiel
kann ein anderes Modul einen Blockfehleranzeigevorgang initiieren,
wenn der Validationsvorgang nicht erfolgreich ist. Bei noch einem anderen
Ausführungsbeispiel
kann der Blockfehleranzeigevorgang unabhängig von dem Ausgang des Validationsvorgangs
implementiert werden (beispielsweise können die Fehlererkennung und
die Validationsvorgänge
parallel zueinander ausgeführt werden.
-
Bei
einem Ausführungsbeispiel
dient das Rahmenrestaurationsmodul 334 zum Ausführen eines
Blockfehleranzeigevorgangs zum Identifizieren unbeschädigter Datenblöcke und
beschädigter
Datenblöcke
innerhalb der wiederhergestellten Version. Bei einem Ausführungsbeispiel
identifiziert das Rahmenrestaurationsmodul 334 beschädigte Datenblöcke basierend
auf den Anzeigen der beschädigten Blöcke, die
empfangen sind von dem Decodierer 332. Bei einem alternativen
Ausführungsbeispiel identifiziert
das Restaurationsmodul beschädigte
Datenblöcke
basierend auf einer Evaluation des Datenprüfsummenwerts, der der empfangenen
Information in dem Rahmenkörper
zugehörig
ist.
-
Bei
einem Ausführungsbeispiel
werden die beschädigten
Blöcke
an ein Blockspeicherelement 334 ausgesendet. Das Blockspeicherelement 338 dient
zum Speichern unbeschädigter
Datenblöcke, die
in der wiederhergestellten Version des ursprünglichen Datenrahmens identifiziert
sind. Zusätzlich werden
bei einem Ausführungsbeispiel
der ursprüngliche
Datenrahmenheader, die Headerprüfsequenz und
der Rahmenprüfsequenzwert
in einem Blockspeicherelement gespeichert.
-
Beschädigte Blöcke oder
Anzeigen von beschädigten
Blöcken
werden zu dem Botschaftserzeugungsmodul 340 gesendet. Das
Botschaftserzeugungsmodul 340 dient zum Erzeugen wenigstens
einer Botschaft, die die beschädigten
Datenblöcke identifiziert
(d. h., welcher einen Untersatz aus der Mehrzahl von codierten Datenblöcken von
den wiederhergestellten ursprünglichen
Datenrahmen angibt) zur Übertragung
an die Quelleinheit 302. Bei einem Ausführungsbeispiel wird eine einzige
Botschaft durch das Botschaftserzeugungsmodul 340 erzeugt zum
Identifizieren der beschädigten
Datenblöcke
in einem empfangenen und einem wiederhergestellten Rahmen. Obwohl
dieses Ausführungsbeispiel
hier beschrieben wird, versteht es sich, dass bei anderen Ausführungsbeispielen
mehr als eine Botschaft erzeugt werden kann zum Identifizieren der
beschädigten
Datenblöcke
innerhalb eines wiederhergestellten ursprünglichen Datenrahmens.
-
5 ist
ein Diagramm, das eine Anzeigebotschaft 500 für einen
beschädigten
Block angibt in Übereinstimmung
mit einem Ausführungsbeispiel. Bei
einem Ausführungsbeispiel
weist eine Anzeigebotschaft für
einen beschädigten
Block einen Botschaftsheader 502 und einen Botschaftskörper 504 auf.
Der Botschaftskörper 504 kann
ein Rahmenidentifikations (ID) Feld 508 und eine oder mehrere
Blockidentifikationen 510, 512 aufweisen, die
die Blöcke angeben,
die als korrupt bestimmt worden sind. Bei einem anderen Ausführungsbeispiel
kann die Botschaft 500 auch eine Botschaftskörperprüfsequenz und/oder
eine Botschaftsheaderprüfsequenz
aufweisen, wie mit dem Botschaftskörper 505 bzw. dem Header
codiert sind, um die Quelleneinheit 302 in die Lage zu
versetzen, Validationsvorgänge
an dem Botschaftskörper 504 und
dem Header 502 auszuführen.
-
Das
Rahmenidentifikationsfeld 508 kann einen Wert beinhalten,
der es der Quelleneinheit 302 erlaubt zu bestimmen, welcher
zuvor ausgesendeter Rahmen des Identifizierers für beschädigte Blöcke sie entspricht. Beispielsweise,
nicht aber einschränkend,
kann das Rahmenidentifikationsfeld 508 eine Sequenzzahl
aufweisen, die dem Rahmen zugehörig ist
(beispielsweise eine Sequenzzahl, die in dem Rahmenheader beinhaltet
ist. Zusätzlich
kann, wenn der Rahmen in Fragmenten ausgesendet worden ist, das
Rahmenidentifikationsfeld 408 weiter eine Frequenzzahl
aufweisen.
-
Die
Blockidentifikationen 510, 512 können die
Blockzahlen innerhalb des neu erstellten ursprünglichen Datenrahmens entsprechend
den beschädigten
Blöcken
beinhalten. Beispielsweise kann, unter Bezugnahme erneut auf 4,
dann, wenn die Bestimmungseinheit 304 bestimmt, dass die
Blöcke 410 und 412 beschädigt sind,
die Blockidentifikationen 510, 512 die Werte 1
und 3 beinhalten, die angeben, dass der erste und der dritte Block
beschädigt sind.
Obwohl in 5 nur zwei Blockidentifikationen 510, 512 dargestellt
sind, können
mehr oder weniger Blockidentifikationen in der Botschaft 500 beinhaltet sein,
entsprechend der Anzahl der Blöcke,
die als beschädigt
erkannt worden sind.
-
Es
wird wieder auf 3 Bezug genommen. Ein Botschaftserzeugungsmodul 340 schafft
eine Botschaft einer Blockidentifikation für den Encoder/Modulator/Sender 342.
Der Encoder/Modulator/Sender 342 codiert, moduliert und übersendet
die Botschaft über
ein Link 360. Zum Zwecke der Vereinfachung ist der Codierer/Modulator/Sender 342 als ein
einzelnes Modul gezeigt. Es versteht sich jedoch, dass das Codieren,
Modulieren und Aussenden durch gesonderte Module ausgeführt werden
kann.
-
Es
wird wieder auf 3 Bezug genommen. Das Botschaftserzeugungsmodul 340 erzeugt
eine Identifikationsbotschaft für
einen beschädigten
Block an den Codierer/Modulator/Sender 342. Der Codierer/Modulator/Sender 342 codiert,
moduliert und sendet die Botschaft über ein Link 360.
Zur Vereinfachung der Darstellung ist der Codierer/Modulator/Sender 342 als
ein einziges Modul dargestellt. Es versteht sich jedoch, dass das
Codieren, Modulieren und Aussenden durch gesonderte Module ausgeführt werden
kann.
-
Es
wird wieder zu der Quelleneinheit 302 zurückgekehrt.
Der Empfänger/Demodulator/Decoder 318 empfängt die
Information entsprechend der Identifikationsbotschaft für einen
beschädigten
Block von dem Kommunikationslink 362. Der Link 362 kann dasselbe
oder ein anderes als der Link 360 sein, wie zuvor in Verbindung
mit den Links 350, 352 beschrieben. Der Empfänger/Demodulator/Decoder 318 moduliert
und decodiert bei einem Ausführungsbeispiel die
Information.
-
Die
decodierte Information wird von dem Rahmenrestaurationsmodul 320 bei
einem Ausführungsbeispiel
empfangen, das zum Wiederherstellen der Identifikationsbotschaften
für den
beschädigten Block
dient. Bei einem Ausführungsbeispiel
kann die Botschaft weiter ausgewertet werden.
-
Die
Identifikationsbotschaft für
den beschädigten
Block dient zum Aussenden eines Rahmenbotschaftsmoduls 322,
das zum Verarbeiten der Botschaft dient. Bei einem Ausführungsbeispiel
identifiziert das Rahmenmanagementmodul 322 die zuvor ausgesendeten
Quelleninformation basierend auf der Rahmenidentifikation und der
einen oder den mehreren Blockidentifikationen, die von der Botschaft
eingeschlossen sind. Bei einem Ausführungsbeispiel legt das Rahmenmanagementmodul 322 einen
Datenselektionsbefehl zur Eingabe in die Datenquelle 310 an,
das die Daten angibt, die dem Rahmen und den Blockidentifikationen
zugehörig
sind. Die Dateneingangsquelle 310 wiederum erzeugt die ausgewählte Quelleninformation
für das
Rahmenerzeugungsmodul 314.
-
Das
Rahmenerzeugungsmodul 314 kann einen Datenprüfsummenwert
für die
Information berechnen und liefert die Information und die Prüfsumme (wenn
berechnet) an den Codierer 312. Bei einem Ausführungsbeispiel
codiert der Codierer 312 Informationen und liefert die
codierten Datenblöcke an
das Rahmenerzeugungsmodul 314. Diese Datenblöcke können als
rückübertragende
Datenblöcke bezeichnet
werden. In einem alternativen Ausführungsbeispiel kann die Quelleneinheit
zuvor gespeicherte codierte Versionen in Datenblöcke haben und kann die codierten
Versionen rückgewinnen,
statt diese wieder zu codieren. Das Rahmenerzeugungsmodul 314 dient
zum Zusammensetzen eines entsprechenden Datenrahmens zur Übertragung
zu der Bestimmungseinheit 304.
-
6 ist
ein Diagramm, das einen responsiven Datenrahmen 600 in Übereinstimmung
mit einem Ausführungsbeispiel
zeigt. Der responsive Datenrahmen 600 weist bei einem Ausführungsbeispiel einen
Rahmenheader 602 und einen Rahmenkörper 604 auf. Zusätzlich kann
der responsive Datenrahmen 600 weiter eine Rahmenprüfsequenz
und/oder eine Headerprüfsequenz
aufweisen, die mit dem Rahmenkörper 604 bzw.
dem Rahmenheader 602 codiert ist, um es der Bestimmungseinheit
zu ermöglichen,
den Rahmenkörper 604 und/oder
den Rahmenheader 602 des responsiven Datenrahmens 600 zu
validieren.
-
Der
Rahmenheader 602 kann eine Angabe beinhalten, dass der
responsive Datenrahmen 600 rückübertragene Datenblöcke beinhaltet.
Diese Anzeige kann inherent sein, beispielsweise in einem Botschaftsartfeld
(beispielsweise einem Rahmensteuerfeld), der in dem Rahmenheader 602 eingeschlossen
ist.
-
Der
Rahmenkörper 602 weist
ein Identifikationsfeld 608 für den ursprünglichen Datenrahmen und einen
oder mehrere codierte Blöcke 610, 612, bei
einem Ausführungsbeispiel,
auf. Das Identifikationsfeld für
den ursprünglichen
Datenrahmen kann einen Wert einschließen, um es der Destinationseinheit 304 zu
erlauben, die rückübertragenen
Blöcke
mit zuvor gespeicherten, nicht beschädigten Datenblöcken zu
korrelieren (beispielsweise Blöcken,
die in einem Blockspeicherelement 338 gespeichert sind, 3). Beispielsweise
kann das Identifikationsfeld 608 für ursprüngliche Datenrahmen eine Sequenzzahl
des zuvor ausgesendeten ursprünglichen
Datenrahmens beinhalten. Codierte Blöcke 610, 612 entsprechen den
Datenblöcken,
die als beschädigt
in der Identifikationsbotschaft für beschädigte Blöcke identifiziert worden ist,
bei einem Ausführungsbeispiel.
Obwohl nur zwei codierte Blöcke 610, 612 dargestellt
sind, kann der Körper 608 mehr
oder weniger Blöcke
aufweisen.
-
Es
wird jetzt wieder Bezug auf 3 genommen.
Das Rahmenerzeugungsmodul 314 erzeugt eine digitale Darstellung
des responsiven Datenrahmens. Der responsive Datenrahmen kann verschlüsselt sein
vor der Übertragung,
muss dies aber nicht. Der Modulator/Sender 316 empfängt den
responsiven Datenrahmen, moduliert den Rahmen und überträgt den Rahmen über ein
Kommunikationslink 350.
-
Es
wird wieder auf die Bestimmungseinheit 304 Bezug genommen.
Der Empfänger/Demodulator 330 empfängt Information über das
Kommunikationslink 352. Bei einem Ausführungsbeispiel kann die Information,
die der Empfänger/Demodulator 330 über der
Link 352 empfängt,
den Header und codierte Datenblöcke
beinhalten, die den responsiven Datenrahmen zugehörig sind,
der von der Quelleneinheit 302 geschaffen ist. Der Empfänger/Demodulator 330 liefert
die modulierten codierten Datenblöcke an den Decoder 332.
Der Decoder 332 dient zum Decodieren der codierten Datenblöcke, was
zu einem oder mehreren codierten, rückübertragenen Datenblöcken führt. Der
Decodierer 302 liefert den einen oder die mehreren decodierten, übertragenen
Datenblöcke
an das Rahmenrestaurationsmodul 334 bei einem Ausführungsbeispiel.
Das Rahmenrestaurationsmodul 334 dient zum Zusammensetzen
einer restaurierten Version des responsiven Datenrahmens.
-
Bei
einem Ausführungsbeispiel
kann das Restaurationsmodul 334 die restaurierte Version
des responsiven Datenrahmens an das Verarbeitungsmodul 344 für den korrigierten
Rahmen liefern. Das Verarbeitungsmodul 344 für den korrigierten
Datenrahmen dient zum Erzeugen eines korrigierten Datenrahmens.
Bei einem Ausführungsbeispiel
identifiziert das Verarbeitungsmodul 344 für den korrigierten Rahmen
die zuvor empfangenen ursprünglichen
Datenrahmen basierend auf der Information in dem ursprünglichen
Datenrahmenidentifikationsfeld (beispielsweise dem Feld 608, 6)
und gewinnt die zuvor gespeicherten, nicht beschädigten Datenblöcke zurück, wenn
vorhanden, die den zuvor empfangenen ursprünglichen Datenrahmen entsprechen. Zusätzlich gewinnt
bei einem Ausführungsbeispiel das
Verarbeitungsmodul 344 für den korrigierten Rahmen den
zuvor gespeicherten Header, die Headerprüfsequenz und die Rahmenprüfsequenz
für den zuvor
empfangenen, ursprünglichen
Datenrahmen zurück.
Das Verarbeitungsmodul 344 für den korrigierten Rahmen setzt
sodann einen korrigierten Rahmen aus dem Header, der jeder Prüfsequenz,
der Rahmenprüfsequenz,
den nicht beschädigten
Datenblöcken
und den anderen erneut übertragenen
Datenblöcken
zusammen.
-
Bei
einem Ausführungsbeispiel
sendet das Verarbeitungsmodul 344 für den korrigierten Rahmen den
korrigierten Rahmen an das Validationsmodul 346 für den korrigierten
Rahmen zur Validation. Bei einem alternativen Ausführungsbeispiel
sendet das Verarbeitungsmodul 344 für die korrigierten Rahmen einen
korrigierten Rahmen an das Validationsmodul 366 für die wiederhergestellten
Rahmen. Wenn der Validationsvorgang nicht erfolgreich ist, erzeugt
bei einem Ausführungsbeispiel
die Bestimmungseinheit 304 eine Anforderung zur erneuten Übertragung
des Rahmens und er sendet diese an die Quelleneinheit 302.
In Antwort darauf kann die Quelleneinheit 302 den gesamten
Rahmen erneut übertragen.
Bei einem anderen Ausführungsbeispiel
kann, statt eine Anforderung zur erneuten Übertragung eines Rahmens auszusenden,
der korrigierte Rahmen von dem Rahmenrestaurationsmodul 334 verarbeitet
werden, der wiederum beschädigte
Blöcke
erkennen kann, nicht beschädigte
Blöcke
speichern und eine weitere Identifikationsbotschaft für einen
beschädigten
Block zu der Quelleinheit 302 senden, der gesamte Vorgang kann
iterieren. Wenn der Validationsvorgang erfolgreich ist, ist der
korrigierte Rahmen an den Rahmenempfänger 348 zu liefern.
Die Bestimmungseinheit 304 kann eine Rahmenanerkennungsbotschaft
an die Quelleneinheit 302 senden um anzugeben, dass der
Rahmen ohne Fehler empfangen worden ist.
-
Es
versteht sich, dass die Module und Elemente, die in 3 gezeigt
sind, vorgesehen sind, um die Erläuterungen der verschiedenen
Ausführungsbeispiele
zu erleichtern. 3 soll daher die Darstellungen
von Elementen, die sich auf andere Funktionen beziehen, die von
den Einheiten 302, 304 ausgeführt werden können, ausschließen (beispielsweise
Sprach- oder Datenverarbeitungsfunktionen, Verwenderschnittstellen
usw.). Zusätzlich
versteht es sich, dass, obwohl verschiedene Module und Elemente
in 3 als voneinander getrennt dargestellt sind, einige
dieser Module und Elemente durch eine gemeinsame Hardware (beispielsweise
Prozessoren, ASIC usw.) ausgeführt
werden können.
Obwohl verschiedene Module und Elemente in 3 dargestellt
sind, kann die Quelleneinheit 302 und/oder die Bestimmungseinheit 304 mehr,
weniger und/oder unterschiedliche Module und Elemente bei anderen Ausführungsbeispielen
aufweisen, die Module und Elemente können unterschiedlich angeordnet
und kombiniert sein, um im wesentlichen dieselben Ergebnisse zu
erzeugen.
-
Die 7 und 8 weisen
Flussdiagramme von Verfahren auf, die von einer Bestimmungseinheit
(beispielsweise der Einheit 304, 3) und einer
Quelleneinheit (beispielsweise der Einheit 302, 3)
ausgeführt
werden. Insbesondere ist 7 ein Flussdiagramm eines Verfahrens
für eine
Bestimmungseinheit zum Korrigieren eines Datenrahmens in Übereinstimmung
mit einem Ausführungsbeispiel.
-
Das
Verfahren beginnt in Block 702, wenn eine Bestimmungseinheit
von einer Quelleneinheit ein Signal empfängt, das einem Rahmen von codierten
Datenblöcken
entspricht, das über
einen Kommunikationskanal empfangen wird. Bei dem Empfang decodiert
die Einheit die codierten Datenblöcke, was zu einer Mehrzahl
von decodierten Datenblöcken führt. Bei
einem Ausführungsbeispiel
kann der Decodiervorgang eine oder mehrere Angaben von beschädigten Datenblöcken ergeben.
Aus der Mehrzahl von decodierten Datenblöcken setzt die Einheit eine restaurierte
Version eines initialen Datenrahmens zusammen.
-
In
dem Block 707 wird ein Validationsvorgang ausgeführt. Bei
einem Ausführungsbeispiel schließt dies
das Berechnen einer Rahmenprüfsequenz
für den
Rahmenkörper
der restaurierten Version des initialen Datenrahmens auf und das
Vergleichen der berechneten Rahmenprüfsequenz in einer empfangenen
Rahmenprüfsequenz
für den
Rahmen. Ein ähnlicher
Validationsvorgang kann für
den Header ausgeführt
werden unter Verwendung der Headerprüfsequenz. Wenn der Rahmen als
gültig
bestimmt worden ist, wird dieser zu dem Rahmenempfänger geliefert
in dem Block 706, das Verfahren endet.
-
Wenn
der Rahmen als nicht gültig
erkannt wird, werden in dem Rahmen 708 beschädigte Datenblöcke in der
restaurierten Version identifiziert. Bei einem Ausführungsbeispiel
werden die beschädigten Daten
als Datenblöcke
identifiziert entsprechend dem einen oder den mehreren Angaben von
beschädigten
Datenblöcken,
die Angaben werden während des
Decodiervorgangs erzeugt.
-
In
dem Block 710 werden, falls vorhanden, nicht beschädigte Datenblöcke gespeichert.
Zusätzlich
werden bei einem Ausführungsbeispiel
der Header, die Headerprüfsequenz
und die Rahmenprüfsequenz
von der wiedergewonnenen Version des initialen Datenrahmens für eine nachfolgende
Verwendung gespeichert. In dem Block 712 wird wenigstens eine
Identifikationsbotschaft für
einen beschädigten Block
erzeugt und an die Quelleneinheit gesendet. Die Botschaft identifiziert
einen Teilsatz aus der Mehrzahl von codierten Datenblöcken, wobei
der Teilsatz den beschädigten
Datenblöcken,
die in dem Block 708 identifiziert worden sind entspricht.
Bei einem Ausführungsbeispiel
wird die Identifikation des Teilsatzes von beschädigten Datenblöcken identifiziert
durch Einschließen
eines Rahmenfrequenzwerts und der Blockzahl für die beschädigten Datenblöcke in der
Botschaft.
-
In
dem Block 710 empfängt
die Bestimmungseinheit von der Quelleneinheit eine Information entsprechend
einem responsiven Datenrahmen. Die Information wird decodiert und
der responsive Datenrahmen wird zusammengesetzt. Bei einem Ausführungsbeispiel
weist der responsive Datenrahmen einen oder mehrere rückübertragene
Datenblöcke
auf (d. h., diejenigen Blöcke,
die den identifizierten beschädigten
Blöcken
entspricht). Bei einem Ausführungsbeispiel
wird ein Validationsvorgang durchgeführt für den responsiven Datenrahmen.
In Block 716 kann, wenn bestimmt wird, dass der responsive
Datenrahmen nicht gültig
ist, das Verfahren iterieren durch Identifizieren von beschädigten Datenblöcken (Block 708)
Speichern von nicht beschädigten
Datenblöcken
(Block 710), Erzeugen und Senden von Identifikationsbotschaften
für beschädigte Block
(Block 712) usw. Dieses Verfahren ist für eine begrenzte Anzahl von
Iterationen wiederholbar, bevor eine Anforderung für den gesamten
Rahmen ausgesendet wird oder der Rahmen fallengelassen wird.
-
In
dem Block 716 werden, falls bestimmt wird, dass der responsive
Datenrahmen gültig
ist, die zuvor gespeicherten, nicht beschädigten Blöcke rückgeholt, wenn solche gespeichert
worden sind, im Block 718. Bei einem Ausführungsbeispiel
können auch
der vorher gespeicherte Header, die Headerprüfsequenz und die Rahmenprüfsequenz
rückgeholt werden.
-
Ein
korrigierter Rahmen wird sodann in dem Block 720 erzeugt
durch Zusammensetzen des rückgewonnenen
Headers, der Headerprüfsequenz,
der Rahmenprüfsequenz
und der nicht beschädigten Blöcke und
der erneut ausgesendeten Blöcke.
Bei einem Ausführungsbeispiel
wird ein Validationsvorgang anhand des korrigierten Rahmens ausgeführt. In
Block 722 wird bestimmt, ob der korrigierte Rahmen gültig ist,
der korrigierte Rahmen kann sodann an den Rahmenempfänger in
Block 706 übermittelt werden,
das Verfahren endet.
-
Wenn
in dem Block 722 bestimmt wird, dass der korrigierte Rahmen
nicht gültig
ist, erzeugt die Bestimmungseinheit eine Anforderung zur erneuten Übertragung
des Rahmens und sendet diese in dem Block 722, das Verfahren
endet. Bei einem alternativen Ausführungsbeispiel kann die Bestimmungseinheit
beschädigte
Blöcke
in dem korrigierten Rahmen bestimmen und kann den Vorgang zum Identifizieren von
beschädigten
Datenblöcken
wiederholen (Block 708), nicht beschädigte Datenblöcke korrigieren (Block 710)
Identifikationsbotschaften für
beschädigte
Blöcke
erzeugen und Aussenden (Block 712) usw. Dieses Verfahren
kann für
eine begrenzte Anzahl von Iterationen wiederholbar sein, bevor eine
Anforderung für
den gesamten Rahmen ausgesendet wird oder der Rahmen fallen gelassen
wird.
-
8 ist
ein Flussdiagramm eines Verfahrens für eine Quelleneinheit (beispielsweise
die Einheit 302, 3) zum selektiven
erneuten Übermitteln von
identifizierten Datenblöcken
in Übereinstimmung mit
einem Ausführungsbeispiel.
Bei einem Ausführungsbeispiel
beginnt das Verfahren in Block 802 durch Auswählen von
Quelleninformation entsprechend einem Rahmen von einer Eingangsdatenquelle
durch die Quelleneinheit und Erzeugen einer Mehrzahl von codierten
Datenblöcken.
Bei einem Ausführungsbeispiel
weist das Codieren das Anwenden eines Blockcodierverfahrens an der
Quelleninformation auf. Bei anderen Ausführungsbeispielen können andere
Codierverfahren verwendet werden.
-
In
dem Block 804 setzt die Quelleneinheit einen initialen
Datenrahmen zusammen, der einen Header und die codierten Datenblöcke aufweisen kann.
Der initiale Datenrahmen wird sodann moduliert und an die Bestimmungseinheit übermittelt.
Die Quelleneinheit kann sodann auf eine Antwort von der Bestimmungseinheit
warten.
-
Bei
einem Ausführungsbeispiel
wird in Block 806 bestimmt, ob eine Zeitdauer, innerhalb
einer Antwort erwartet wird, abgelaufen ist. Ist dies der Fall, sendet
die Quelle den Initialdatenrahmen in Block 808 erneut aus
und das Verfahren iteriert wie gezeigt. Falls nicht, wird in einem
Block 810 bestimmt, ob eine Rahmenbestätigungsbotschaft empfangen
worden ist, die angibt, dass der Rahmen ohne Fehler empfangen worden
ist. Ist dies der Fall, endet das Verfahren.
-
Wenn
eine Rahmenanerkennungsbotschaft nicht vor Ablauf der Zeit empfangen
worden ist, wird im Block eine weitere Bestimmung 812 gemacht,
ob eine Identifikationsbotschaft für einen beschädigten Block
empfangen worden ist. Falls nicht, iteriert das Verfahren wie gezeigt.
-
Wenn
eine Identifikationsbotschaft für
einen beschädigten
Block empfangen worden ist, verarbeitet die Quelleneinheit in Block 814 diese
Botschaft. Bei einem Ausführungsbeispiel
schließt
dies das Auswählen
eines Teilsatzes von initialer Eingangsinformation von der Eingangsdatenquelle
ein, wobei der Teilsatz den beschädigten Datenblöcken entspricht,
die von der Bestimmungseinheit in der Identifikationsbotschaft für beschädigte Blöcke bestimmt worden
ist. In Block 816 erzeugt die Quelleneinheit einen oder
mehrere codierte Datenblöcke
zur erneuten Übertragung.
Diese Datenblöcke
können
als erneut übermittelte
Datenblöcke bezeichnet
werden. Bei einem alternativen Ausführungsbeispiel kann die Quelleneinheit
zuvor gespeicherte codierte Versionen der Datenblöcke haben
und können
die codierten Versionen rückgewinnen,
nicht also diese erneut codieren.
-
In
Block 818 setzt die Quelleneinheit einen responsiven Datenrahmen
zusammen, der einen Header und die erneut übertragenen Datenblöcke bei einem
Ausführungsbeispiel
zusammensetzt. Diese Quelleneinheit moduliert und überträgt den responsiven
Datenrahmen, das Verfahren iteriert, wie in 8 gezeigt.
-
Die
oben unter Bezugnahme auf die dargestellten und die beschriebenen
Verfahren beschriebenen Vorgänge
können
in einer Reihenfolge, die von der offenbarten abweicht, ausgeführt werden. Auch
versteht es sich, dass, obwohl einige Verfahren beschrieben worden
sind, mit einem „Ende" diese kontinuierlich
ausgeführt
werden können.
-
Verschiedene
Ausführungsbeispiele
von Verfahren, Vorrichtungen und Systemen wurden beschrieben, die
eine robuste Datenkommunikation unter Bewahrung der Bandbreite erlauben.
Die vorangehende Beschreibung von bestimmten Ausführungsbeispielen
zeigt die allgemeine Natur des Erfindungsgegenstandes ausreichend,
so dass andere bei Anwendung der geläufigen Kenntnisse diese geeignet
modifizieren und/oder für
die verschiedenen Anwendungen anpassen können, ohne sich von dem allgemeinen
Konzept zu lösen.
Solche Anpassungen und Modifikationen liegen daher innerhalb der
Bedeutung und dem Bereich von Äquivalenten
der offenbarten Ausführungsbeispiele.
Die Begriffe oder Terminologie, die hier verwendet wird, ist für den Zweck
der Beschreibung bestimmt und nicht einschränkend. Entsprechend erfasst
der Erfindungsgegenstand derartige Alternativen, Abwandlungen, Äquivalenten
und Variationen, die innerhalb des Gedankens und des breiten Schutzbereiches
der beiliegenden Zeichnungen liegen.
-
Die
verschiedenen hier beschriebenen Verfahren können in Hardware, Firmware
oder Software ausgeführt
sein. Eine Softwareimplementation kann einen Mikrocode, einen Maschinensprachecode
oder einen Hochsprachencode verwenden. Der Code kann in einem flüchtigen
oder nicht flüchtigen
maschinenlesbaren Medium gespeichert sein während der Ausführungen
oder zu anderen Zeiten. Dieses computerlesbare Medium kann Festplatten, entfernbare
Magnetplatten, entfernbare optische Platten, magnetische Kassetten,
Speicherkarten oder Sticks, digitale Videoscheiben, RAM, ROM oder
dergleichen aufweisen.
-
In
der vorangehenden Beschreibung verschiedener Ausführungsbeispiele
wird auf die beiliegenden Zeichnungen Bezug genommen, die einen Teil
der Beschreibung bilden und illustrativ bestimmte Ausführungsbeispiele
zeigen, in denen der Erfindungsgegenstand verwirklicht werden kann.
Verschiedene Ausführungsbeispiele
werden in ausreichenden Einzelheiten beschrieben um es dem Fachmann
zu erlauben, den Erfindungsgegenstand zu verwirklichen, es versteht
sich, dass andere Ausführungsbeispiele
verwendet werden können
und dass verfahrenstechnische oder mechanische Änderungen ausgeführt werden
können,
ohne sich von dem Schutzbereich des Erfindungsgegenstandes zu lösen.
-
Solche
Ausführungsbeispiele
des erfinderischen Gegenstands können
einzeln und/oder kollektiv hier durch den Begriff „Erfindung" nur zur Bequemlichkeit
verwendet werden und ohne den Schutzbereich dieser Erfindung auf
eine einzelne Erfindung oder auf ein erfinderisches Konzept zu beschränken, falls
mehr als dieses offenbart ist. Es versteht sich, dass die Verfahren
der verschiedenen Ausführungsbeispiele
in der Praxis kombiniert werden können, entweder gleichzeitig
oder nacheinander. Verschiedene Abwandlungen und Kombinationen ergeben sich
für den
Fachmann.
-
ZUSAMMENFASSUNG
-
Bei
einem Ausführungsbeispiel
codiert eine Quelleinheit einem Rahmen entsprechende Quelleninformation
unter Bildung einer Mehrzahl von codierten Datenblöcken, setzt
einen initialen Datenrahmen, der die codierten Datenblöcken aufweist,
zusammen und überträgt diese
zu einer Bestimmungseinheit. Die Bestimmungseinheit decodiert die
codierten Datenblöcke
und setzt eine wieder hergestellte Version der initialen Datenrahmen
zusammen. Die Bestimmungseinheit identifiziert die beschädigten Datenblöcke und
die nicht beschädigten
Datenblöcke
in der wieder erstellten Version, speichert die nicht beschädigten Datenblöcke, erzeugt
eine Botschaft, die die beschädigten
Datenblöcke
identifiziert und übermittelt
die Botschaft an die Quelleneinheit. In Antwort darauf codiert die
Quelleneinheit Quelleninformation entsprechende den beschädigten Datenblöcken, die in
der Botschaft identifiziert sind, setzt einen responsiven Datenrahmen
zusammen und übersendet
den responsiven Datenrahmen an die Bestimmungseinheit. Die Bestimmungseinheit
erzeugt einen korrigierten Datenrahmen aus den erneut übermittelten
Datenblöcken
und den zuvor gespeicherten nicht beschädigten Datenblöcken.