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.