DE69733346T2 - Verfahren und gerät zur datenrückgewinnung in arq-übertragungssystemen - Google Patents

Verfahren und gerät zur datenrückgewinnung in arq-übertragungssystemen Download PDF

Info

Publication number
DE69733346T2
DE69733346T2 DE69733346T DE69733346T DE69733346T2 DE 69733346 T2 DE69733346 T2 DE 69733346T2 DE 69733346 T DE69733346 T DE 69733346T DE 69733346 T DE69733346 T DE 69733346T DE 69733346 T2 DE69733346 T2 DE 69733346T2
Authority
DE
Germany
Prior art keywords
data unit
data
bit
majority
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69733346T
Other languages
English (en)
Other versions
DE69733346D1 (de
Inventor
J. Timothy DOIRON
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ericsson Inc
Original Assignee
Ericsson Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Inc filed Critical Ericsson Inc
Application granted granted Critical
Publication of DE69733346D1 publication Critical patent/DE69733346D1/de
Publication of DE69733346T2 publication Critical patent/DE69733346T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein das Gebiet einer Datenverarbeitung und einer Datenübertragung, und im Besonderen eine Rückgewinnung von über einen Kommunikationskanal übertragenen oder von einem Speicher abgerufenen Daten.
  • HINTERGRUND UND ZUSAMMENFASSUNG DER ERFINDUNG
  • In digitalen Systemen ist es sowohl für in einem Speicher gespeicherte Daten als auch für über einen Kommunikationskanal übertragene Daten üblich durch Fehler verfälscht zu sein. Es gibt zahlreiche Techniken, die typischerweise eingesetzt werden zum Detektieren von Fehlern und/oder zum Korrigieren von detektierten Fehlern. Ein Beispiel einer Fehlerdetektionstechnik ist die gut bekannte zyklische Redundanzcode (cyclic redundancy code) (CRC) Überprüfung. Andere Techniken, die Blockcodes und Faltungscodes verwenden, erlauben sowohl eine Fehlerdetektion als auch eine Fehlerkorrektur. Für eine Fehlerdetektion und -Korrektur werden zusätzliche Codierbits zu den Datenbits hinzugefügt. Wenn die Daten über den Kommunikationskanal empfangen werden oder von dem Speicher abgerufen werden, werden die empfangenen/abgerufenen Daten dekodiert unter Verwenden der zusätzlichen Bits auf eine Weise zum Detektieren, ob einige der Daten fehlerhaft sind. Eine Art des Vorstellens dieser Dekodierprozeduren ist, eine Analogie zwischen diesen und der menschlichen Fähigkeit zum Korrigieren von Buchstabierfehlern während eines Lesens eines gedruckten Textes herzustellen. Da Wörter ausreichend unterschiedlich voneinander sind, weiß der Leser intuitiv, welches Wort gemeint ist.
  • Diese Fehlerdetektions- und/oder -Korrekturcodiertechniken fügen, zu einem gewissen Grad, redundante Information hinzu. Je mehr Redundanz in einer Einheit von Daten gebildet wird, desto wahrscheinlicher können Fehler genau detektiert werden, und in einigen Fällen korrigiert werden. Während die Anzahl von Codierbits bzw. redundanten Bits zunimmt, nimmt der Gesamtdaten-"Durchsatz" leider ab. Der tatsächlich pro Zeiteinheit übertragene Dateninhalt wird folglich reduziert. Während die Anzahl von Codier-/Redundanz-Bits zunimmt, nimmt zusätzlich die Komplexität der Codier/Decodier-Algorithmen zu, was begrenzte Datenverarbeitungsressourcen verbraucht und eine Datenverarbeitungszeit verlangsamt.
  • In einigen relativ "sauberen" Umgebungen, wo es unwahrscheinlich ist, dass Daten verfälscht werden, können weniger Codier/Redundanz-Bits verwendet werden in Verbindung mit einfacheren Fehlerdetektions- und/oder Korrekturprozeduren. In feindlichen Umgebungen jedoch, wo es beträchtliches Rauschen, Interferenz etc. gibt, ist solch eine Vereinfachung normalerweise keine Option. Man betrachte zum Beispiel eine Umgebung einer Funkkommunikation bzw. einer drahtlosen Kommunikation. Der Funkfrequenzkommunikationskanal ist einem Sperrfeuer von verfälschenden Faktoren unterworfen einschließlich eines immer vorliegenden Rauschens, sich nahezu fortwährend ändernden Kommunikationskanaleigenschaften, Mehrwege-Fading, Intersymbol-Interferenz (intersymbol interference) (ISI) erzeugende Zeitdispersion, Interferenz von Nachbarkanalkommunikationen, und einer Unmenge von anderen Faktoren.
  • Ein zum Schützen gegen diese verschiedenen Verfälschungsfaktoren verwendetes Kommunikationsprotokoll (das heißt eine Prozedur) ist ein Transaktionsverarbeiten einer automatischen Wiederholungsanforderung (automatic repeat request) (ARQ). Ein reines ARQ-System verwendet nur eine Fehlerdetektion – eine Fehlerkorrektur wird nicht verwendet. Genauer genommen werden Datenpakete mit einem Typ von Fehlerdetektionsbits/Codierung von einem Sender zu einem Empfänger über einen Kommunikationskanal übertragen. Jedes empfangene Datenpaket wird durch den Empfänger verarbeitet mit Verwenden der in den Datenpaketen eingeschlossenen Fehlerdetektionsbits, um zu bestimmen, ob das Datenpaket korrekt empfangen wurde. Wenn das Paket sicher und genau empfangen wurde, überträgt der Empfänger ein Bestätigungssignal (acknowledgement signal) (ACK) zurück an den Sender. Wenn Fehler detektiert werden, sendet der Empfänger eine negative Bestätigung (negative acknowledgement) (NAK) zurück an den Sender, verwirft das Datenpaket, und wartet auf eine erneute Übertragung desselben Datenpaketes von dem Sender. Zusätzlich wird ein vorbestimmtes Zeitfenster gesetzt, um dem Sender eine ausreichende Zeit zum Übertragen von Information zu ermöglichen, dem Empfänger zum Empfangen und Verarbeiten der Information, und dann Übertragen eines ACK- oder NAK-Signals zu dem Sender. Wenn der Sender kein ACK-Signal innerhalb des vorbestimmten Fensters empfängt, oder wenn er ein NAK-Signal während des Fensters empfängt, überträgt der Sender erneut das Datenpaket.
  • In einer Rauschumgebung oder einer anderweitig Daten verfälschenden Umgebung wie drahtlosen Kommunikationen, kann eine große Anzahl von erneuten Übertragungen auftreten, bevor Daten korrekt empfangen sind. Es ist von Bedeutung, dass, egal wie viele Male ein Datenpaket übertragen/erneut übertragen wird, der Sender nicht "schlauer" wird hinsichtlich dessen, wie die korrekte Information von einem später übertragenen Datenpaket zu dekodieren ist. Mit anderen Worten, die Wahrscheinlichkeit des korrekten Empfangens eines Paketes bei einer bestimmten erneuten Datenpaketübertragung ist nicht besser als die Wahrscheinlichkeit der vorherigen erneuten Übertragung von diesem Paket.
  • Eine mögliche Option zum Verbessern dieses ARQ-Protokolls ist ein Hinzufügen von Vorwärts-Fehler-Korrektur (forward error correction) (FEC) Bits zu den Datenpaketen zum Erlauben eines gewissen Grades einer Bitkorrektur. Ein Beispiel einer solchen "hybriden" Technik würde sein, CRC-Fehlerdetektionsbits mit Bose-Chaudhuri-Hocquenghem (BCH) Paritätsüberprüfungsbits zu ersetzen. Wenn fehlerhafte Bits durch den Empfänger korrigiert werden könnten, könnte eine Bestätigung zu dem Sender gesendet werden, ohne die Erfordernis für weitere erneute Übertragungen. Selbst bei Verwenden einer solchen hybriden Technik, wo eine begrenzte Anzahl von Fehlermustern korrigiert werden kann, macht eine solche hybride Technik (wie das reine ARQ-Protokoll) keinen Gebrauch der in den zuvor empfangenen Paketen enthaltenen Information. Fehlerhafte Datenpakete in dem reinen ARQ-Protokoll oder Datenpakete, die Fehler haben, die unter Verwenden der hybriden Technik nicht korrigierbar sind, werden einfach verworfen, was eine fortwährende Folge von erneuten Übertragungen erfordert.
  • WO-93/06671 beschreibt einen erweiterten Fehlerkorrekturprozess zum Korrigieren einer Datennachricht, die mehrmals übertragen worden ist. Der Prozess empfängt zuerst die Datennachricht mindestens zweimal, wobei die erste und zweite empfangene Nachricht logisch kombiniert werden zum Bilden eines Fehleranzeigewortes. Das Fehleranzeigewort wird dann verwendet zum Lokalisieren der Fehlerorte in jeder Nachricht, nachdem einige der Fehler vervollständigt sind, abhängig von der totalen Anzahl von gefundenen Fehlern. Eine Nachricht wird dann decodiert und verwendet zum Übertragen von Leistungsveränderungen, einer erneuten Zuweisung eines Kanals oder zum Freigeben eines Anrufs.
  • In US-A-4 375 102 werden digitale Codewörter detektiert durch Vergleichen von Bitpositionen in mehreren Datenblöcken.
  • In US-A-4 132 975 wird eine Mehrheitsentscheidung hergenommen für Bitpositionen von mehreren empfangenen Wörtern.
  • Es wird eine zum Beispiel auf ARQ-Protokolle anwendbare Datenrückgewinnungstechnik benötigt, die in zuvor übertragenen Paketen enthaltene Information verwendet, das heißt, die fehlerhafte Datenpakete eher verwendet als diese zu verwerfen, so dass die aktuell empfangene erneute Übertragung des Datenpaketes korrigiert werden kann unter Verwenden der Information von den zuvor empfangenen Datenpaketen. Es ist wahrscheinlich, dass viele der Bits der früher übertragenen Pakete korrekt sind, und dass nur eines oder wenige der Bits in den meisten Fällen verfälscht sind. Ein Hauptziel dieser Erfindung ist ein Nutzen der korrekten Information, die aus früheren Übertragungen des Paketes angesammelt ist, um ein korrektes Datenpaket zu erzeugen. Solch eine Technik sollte jedoch nicht zuviel Verarbeitungszeit verbrauchen und sollte, wenn möglich, die Menge des für solch ein Verarbeiten erforderlichen Speichers minimieren, so dass die Technik in verschiedenen Umgebungen verwendet werden kann, wo Speicherressourcen begrenzt sind, zum Beispiel bei tragbaren/mobilen Funkgeräten. Es wäre deshalb wünschenswert, eine Vorwärts-Fehler-Korrektur in einem ARQ-Protokoll zu haben, ohne die Erfordernis des Hinzufügens von Vorwärts-Fehler-Korrektur-Bits zu jedem Datenpaket.
  • Es ist ein Ziel der vorliegenden Erfindung, ein Datenrückgewinnungssystem bereitzustellen, in dem eine korrekte Dateneinheit rückgewonnen wird unter Verwenden von Information, die in zuvor empfangenen/übertragenen aber nicht annehmbaren Dateneinheiten enthalten ist.
  • Es ist ein Ziel der vorliegenden Erfindung, solch eine Datengewinnungstechnik bereitzustellen in einer Transaktionsumgebung einer automatischen Wiederholanforderung (automatic repeat request) (ARQ), so dass Daten korrigiert werden können, ohne dass zusätzliche Vorwärts-Fehler-Korrektur-Bits den Dateneinheiten hinzugefügt werden müssen.
  • Es ist ein weiteres Ziel der Erfindung, eine Fehlerrückgewinnungstechnik bereitzustellen, die wirkungsvoll ist im Rückgewinnen von Daten in einer feindlichen Umgebung, ohne Erfordern des Hinzufügens von Vorwärts-Fehler-Korrektur-Bits zu den Datenpaketen, komplexen Vorwärts-Fehler-Datenkorrektur-Decodierungsprozeduren, oder signifikanten Speicherressourcen.
  • Die vorliegende Erfindung löst die oben erwähnten verschiedenen Probleme und erfüllt diese und andere Ziele. In einem Datenübertragungssystem einer automatischen Wiederholanforderung, wo Dateneinheiten empfangen werden, auf Fehler überprüft werden, und erneut übertragen werden, wenn Fehler detektiert werden, so dass eine Menge von Dateneinheiten erzeugt wird, führt die vorliegende Erfindung eine erste Wiederherstellungsoperation auf abwechselnden Dateneinheiten in der Sequenz bzw. Folge durch und eine zweite Wiederherstellungsoperation auf den anderen Dateneinheiten in der Sequenz, um eine annehmbare Dateneinheit wiederherzustellen. Eine der Wiederherstellungsoperationen kann ein Bestimmen einer mehrheitsgewählten Dateneinheit enthalten basierend auf einer gegenwärtig empfangenen Dateneinheit und zuvor empfangenen Dateneinheiten in der Sequenz. Die andere Wiederherstellungsoperation kann einen direkten Vergleich der mehrheitsgewählten Daten mit einer gegenwärtig empfangenen Dateneinheit durchführen, um die Bitpositionen zu identifizieren, die unterschiedliche Bitwerte haben. Ein oder mehrere Bitwerte bei diesen Bitpositionen werden geändert, in der Hoffnung eines Erzeugens einer korrekten Dateneinheit. Diese abwechselnde Anwendung von Wahl- und Paketvergleichswiederherstellungs-Techniken auf eine Umgebung einer reinen automatischen Wiederholanforderung (automatic repeat request) (ARQ) (das heißt, eine ohne Vorwärts-Fehler-Korrektur) ist sehr bedeutsam, weil eine Kommunikationseinheit ihre Leistung signifikant verbessern kann in Umgebungen einer hohen Bitfehlerrate, und die Wahrscheinlichkeit eines korrekten Empfangens eines übertragenen Paketes in kürzeren Zeitperioden erhöhen kann.
  • In der bevorzugten beispielhaften Ausführungsform mit Verwenden von abwechselnden Mehrheitswahl- und Paketvergleichsdateneinheit-Wiederherstellungs-Techniken, ist ein Mehrheitswählen weniger wirkungsvoll, wenn bei der Wahl eine gerade Anzahl von Paketen vorliegt, in dem Sinn, dass es schwer ist, "Gleichstands"-Wahlen aufzulösen. Wenn zum Beispiel vier Pakete gewählt sind, welcher Wert sollte dann einer Bitposition zugewiesen werden, wo zwei der Pakete "1en" für diese Bitposition haben und die anderen zwei Pakete "0en" für diese Bitposition haben? Eher als willkürlich Auswählen einer "1" oder "0", verwendet die bevorzugte beispielhafte Ausführungsform der vorliegenden Erfindung eine Mehrheitswahl nur für ungerade Anzahlen von empfangenen Datenpaketen und für einen direkten Vergleich des gegenwärtig empfangenen Datenpakets mit dem mehrheitsgewählten Datenpaket für gradzahlig nummerierte Pakete, um dieses Dilemma eines Gleichstandsaufbrechens zu vermeiden. Sowohl in der Mehrheitswahl als auch in der direkten Vergleichstechnik wird Information von zuvor empfangenen Datenpaketen verwendet, was die Wahrscheinlichkeit eines Erhaltens eines korrekten Paketes erhöht.
  • Weil die Operationen einer Mehrheitswahl und eines direkten Vergleichs relativ einfach durchzuführen sind, werden relativ geringe Mengen von Datenverarbeitungsressourcen und Zeit verbraucht. Überdies stellt die vorliegende Erfindung eine neue Technik bereit zum Verwenden von in zuvor empfangenen aber dennoch fehlerhaften Paketen enthaltener Information mit minimalem Speicher. Während die Information von zuvor empfangenen fehlerhaften Paketen bewahrt wird, werden die Pakete selbst nicht gespeichert. Anstelle dessen akkumuliert die vorliegende Erfindung für jede entsprechende Bitposition in dem wieder hergestellten Datenpaket eine Summe von Bits in dieser Position von jeder empfangenen Dateneinheit. Ein Schwellenwert wird dann bestimmt basierend auf der Anzahl von erneut übertragenen Dateneinheiten in der Sequenz bzw. Folge, und jede akkumulierte Summe wird mit dem Schwellenwert verglichen. Wenn die akkumulierte Summe geringer als oder gleich dem Schwellenwert ist, wird der Bitwert der entsprechenden Bitposition des wiederhergestellten Datenpaketes zu 0 gesetzt. Andernfalls wird der Bitwert der entsprechenden Bitposition des wiederhergestellten Datenpaketes zu 1 gesetzt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Ziele der vorliegenden Erfindung als auch spezifische beispielhafte Ausführungsformen der Erfindung werden nun in Verbindung mit den folgenden Zeichnungen beschrieben werden, in denen ähnliche Bezugsziffern auf ähnliche Elemente verweisen:
  • 1 ist ein Funktionsblockdiagramm eines Datenkommunikationssystems gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 2 ist ein Flussdiagramm, das ein Verfahren gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 3A3Cveranschaulichen beispielhafte Datennachrichten und in der Datennachricht enthaltene Datenpakete;
  • 4 veranschaulicht ein mehrheitsgewähltes Paket;
  • 5 veranschaulicht eine Bitakkumulationsfunktion gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung;
  • 6 veranschaulicht einen direkten Vergleich eines empfangenen Datenpaketes mit dem mehrheitsgewählten Paket;
  • 7 ist eine schematische Veranschaulichung eines Multistandort-Bündelfunk-Kommunikationssystems, in dem die vorliegende Erfindung eine besondere Anwendung haben kann;
  • 8 ist ein Funktionsblockdiagramm eines Funkdatennetzwerks, in dem die vorliegende Erfindung verwendet werden kann;
  • 9 ist ein Funktionsblockdiagramm einer tragbaren/mobilen Funk-Transceiver-Einheit, die gemäß der vorliegenden Erfindung verwendet werden kann;
  • 10 ist ein Flussdiagramm, das eine Datenrückgewinnungsprozedur gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 11 ist ein Flussdiagramm, das eine direkte Vergleichsoperation veranschaulicht, die gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung durchgeführt werden kann; und
  • 12 ist ein Flussdiagramm einer Mehrheitswahlprozedur, die gemäß einer beispielhaften Ausführungsform des Datenrückgewinnungsschemas gemäß der vorliegenden Erfindung durchgeführt werden kann.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • In der folgenden Beschreibung, zum Zweck der Erklärung und nicht einer Einschränkung, werden spezifische Details bekannt gemacht, so wie bestimmte Schaltkreise, Schnittstellen, Techniken etc., um ein eingehendes Verständnis der vorliegenden Erfindung bereitzustellen. Es wird jedoch dem Fachmann ersichtlich sein, dass die vorliegende Erfindung in anderen Ausführungsformen betrieben werden kann, die von den spezifischen Details abweichen. In anderen Fällen sind detaillierte Beschreibungen von wohlbekannten Verfahren, Geräten und Schaltkreisen weggelassen, um die Beschreibung der vorliegenden Erfindung nicht mit unnötigen Details unverständlich zu machen.
  • Die vorliegende Erfindung ist zum Zwecke eines Beispiels nur in dem Kontext eines Datenkommunikationssystems beschrieben. Nachfolgende Ausführungsformen beschreiben eine Anwendung der vorliegenden Erfindung im Besonderen auf eine Funkkommunikationsumgebung. Jedoch ist die vorliegende Erfindung nicht auf Funkkommunikationen oder irgendeinen Typ von Funkkommunikationen beschränkt. Andere Anwendungen der vorliegenden Erfindung können auf irgendeine Art eines Datenverarbeitungssystems gerichtet sein, das Daten empfangen und/oder darauf zugreifen muss, die möglicherweise verfälscht sind einschließlich zum Beispiel verschiedener Daten, die zu oder von einem Speichergerät übermittelt werden.
  • Dem gemäß beschreibt 1 ein Datenkommunikationsnetzwerk eines drahtgebundenen Typs, das einen Sender 12, so wie einen Datenprozessor 20, einschließt, der Pakete von Daten über einen Netzwerkbus 16 an einen Datenempfänger 14 sendet, der ein anderer Datenprozessor oder ein anderes Gerät, zum Beispiel ein Perpheriegerät, sein kann. Beide Datenprozessoren 24 und 26 haben ihre jeweiligen Speicher 22 und 28 und beide Datenprozessoren beinhalten jeweilige Transceiver 24 und 30 zum Kommunizieren von Paketinformation über den Netzwerkbus 16. Datenprozessor 20 und Transceiver 24 formatieren Daten, um dem geeigneten Protokoll zu folgen, das zur Übertragung über den Netzwerkbus 16 verwendet wird, einschließlich eines Aufteilens von Daten in Dateneinheiten oder Datenpakete als auch die Einbeziehung/Codierung von Fehlerdetektionsbits. Datenprozessor 26 verarbeitet die in Transceiver 30 empfangenen Dateneinheiten gemäß in Speicher 28 gespeicherten Algorithmen, um zu detektieren bzw. zu erfassen, ob jede Dateneinheit korrekt empfangen ist. In einer besonders vorteilhaften Anwendung der vorliegenden Erfindung wird ein Protokoll einer automatischen Wiederholanforderung (automatic repeat request) (ARQ) eingesetzt zwischen Sender und Empfänger, so dass, wenn eine Dateneinheit korrekt durch Empfänger 14 empfangen ist, der Empfänger 14 eine Bestätigung (acknowledgment) (ACK) zurück zum Sender 12 über den Netzwerkbus 16 überträgt. Wenn die Dateneinheit inkorrekt empfangen ist und nicht korrekt wiederhergestellt werden kann gemäß der vorliegenden Erfindung, überträgt Empfänger 14 eine negative Bestätigung (negative acknowledgment) (NAK) über das Netzwerk 16 an Sender 12, der als Antwort dieselbe Dateneinheit erneut überträgt.
  • Die Datenrückgewinnungstechnik, die durch den Empfänger/Datenprozessor 26 verwendet wird, um eine Dateneinheit von einer Sequenz von erneut übertragenen Versionen dieser Dateneinheit wiederherzustellen, wird nun in 2 beschrieben. Obwohl die Sequenz bzw. Folge von Dateneinheiten hier im nachfolgenden in dem Kontext von erneuten Übertragungen über einen Kommunikationskanal (drahtgebunden oder drahtlos) beschrieben wird, könnte die Folge von Dateneinheiten ebenso durch mehrere Zugriffe von einem Datenspeichergerät derselben Dateneinheit erzeugt sein. Die Anzahl von erneuten Übertragungen oder Zugriffen ist selbstverständlich ein Entwurfsparameter in irgendeinem System. Eine hohe Anzahl von erneuten Übertragungen oder Zugriffen könnte in einem fehleranfälligeren System gesetzt sein, während eine niedrigere Grenze in einem relativ fehlerfreien System/Umgebung gesetzt sein könnte.
  • In der Datenrückgewinnungsprozedur 40 wird eine Dateneinheit empfangen und auf Fehler überprüft (Block 41). Wenn die aktuelle Dateneinheit ohne Fehler empfangen wird (oder alternativ innerhalb einer annehmbaren Bitfehlerrate für Anwendungen so wie digitaler Sprache, die manche Bitfehler tolerieren kann), wird eine Bestätigung (acknowledgement) (ACK) zurück von dem Empfänger 14 zu dem Sender 12 übertragen (Block 47), und die nächste empfangene Dateneinheit wird auf Fehler überprüft (Block 41). Andernfalls wird eine Entscheidung getroffen, ob dieses die erste Übertragung der Dateneinheit ist (Block 43). Wenn dies so ist, fordert der Empfänger 14 eine erneute Übertragung der Dateneinheit an (Block 44) und kehrt zum Empfangen der erneut übertragenen Dateneinheit und zum Überprüfen auf Fehler zurück (Block 41).
  • Wenn dieses eine erneute Übertragung der Dateneinheit ist, wird eine Entscheidung getroffen, ob diese Dateneinheit eine "abwechselnde" Dateneinheit ist (Block 48). Als ein Beispiel können abwechselnde Dateneinheiten den "ungeraden" Übertragungen derselben Dateneinheit entsprechen, das heißt Übertragung 1, erneute Übertragung 3, erneute Übertragung 5, etc. Andererseits können abwechselnde Dateneinheiten "geraden" Übertragungen entsprechen, das heißt erneute Übertragung 2, erneute Übertragung 4, erneute Übertragung 6, etc. Wenn die Dateneinheit eine abwechselnde Dateneinheit ist, wird eine erste Dateneinheit-Wiederherstellungsoperation durchgeführt (Block 50). Andernfalls wird eine zweite Dateneinheit-Wiederherstellungsoperation durchgeführt (Block 52).
  • Wenn eine der ersten oder zweiten Dateneinheit-Wiederherstellungsoperationen durchgeführt wird, wird eine Entscheidung in Block 54 getroffen, ob die wiederhergestellte Dateneinheit gültig ist, zum Beispiel ob die wiederhergestellte Dateneinheit frei von Bitfehlern oder unterhalb eines vorbestimmten Bitfehlerschwellenwertes ist. Wenn dies so ist, kehrt die Steuerung zu Block 47 zurück, wo der Empfänger 14 eine Bestätigung zurück zu dem Sender 12 sendet. Andernfalls kehrt die Steuerung zu Block 44 zurück zum Anfordern einer erneuten Übertragung der Dateneinheit.
  • Die vorliegende Erfindung kann angewendet werden auf irgendein Datenformat, wo Daten in Einheiten gesendet werden. Zum Beispiel zeigt 3A ein beispielhaftes Format für eine digitale Datennachricht. Die Nachricht kann mit einem Kopfabschnitt von Bits beginnen, irgendeiner Anzahl von Funktionen zugeordnet, einschließlich eines Starts einer Datennachricht, Sender- und/oder Empfängeradressinformation, Länge der Nachricht, etc. Ein Beispiel eines solchen Kopfes bzw. Headers ist der Standard Internetprotokoll (Internet protocol) (IP) Header. Dem Header folgen in 3A gezeigte Pakete von Daten als Paketnummer 1, Paketnummer 2, Paketnummer 3 ....
  • Wie in 3B gezeigt beinhaltet jedes Paket sowohl Daten als auch Fehlerdetektionsbits. Mit anderen Worten, nicht alle Bits in jedem Paket entsprechen der wesentlichen zu übertragenden Information. Es wird richtig eingeschätzt werden, dass während der Begriff Datenpaket manchmal bei der vorliegenden Erfindung verwendet wird, die vorliegende Erfindung auf irgendeine Einheit von Daten angewendet werden kann und nicht notwendiger Weise auf Datenpakete beschränkt ist.
  • Eine spezifische beispielhafte Konfiguration eines Datenpakets ist in 3C gezeigt. Eine vorbestimmte Anzahl von Datenbits in einem ersten Abschnitt des Datenpakets wird gefolgt durch einen zweiten Abschnitt von Bits einer zyklischen Redundanzüberprüfung (cyclic reduncancy check) (CRC). Eine zyklische Redundanzüberprüfung stellt nur eine Fehlerdetektion bereit – sie wird nicht verwendet zum Korrigieren von Fehlern. Beispiele von wohlbekannten CRCs beinhalten CRC-CCITT und CRC-16. Die vorliegende Erfindung kann auch mit einer Vorwärts-Fehlerdetektion und Korrekturbits so wie BCH-Paritäts-Überprüfungsbits verwendet werden. Jedoch ist einer der Vorteile der vorliegenden Erfindung, dass Vorwärts-Fehler-Korrekturbits und Codier/Decodieralgorithmen nicht in einer Datenrückgewinnung eingesetzt werden brauchen.
  • Eine der ersten und zweiten Dateneinheit-Wiederherstellungsoperationen kann eine Mehrheitswahloperation sein, die nun in Verbindung mit der beispielhaften Veranschaulichung von 4 beschrieben wird. In einer bevorzugten Ausführungsform wird die Mehrheitswahltechnik angewendet auf abwechselnde ungerade Datenpaketübertragungen. In dem einfachen in 4 gezeigten Beispiel wird deshalb die Mehrheitswahloperation auf drei Übertragungen des Datenpaketes durchgeführt. Jedes Datenpaket kann in diesem nichtbeschränkenden Beispiel 32 Datenbits und 16 CRC-Bits beinhalten. Wenn zwei oder drei der Bits in einer bestimmten Bitstelle denselben Wert haben, wird dieser Wert dieser Bitposition in dem mehrheitsgewählten Datenpaket zugewiesen. Die zwei Beispiele in dem ersten 8-Bit-Byte der drei Datenpakete zeigen, dass in der vierten Bitposition eine Mehrheitswahl von 1, 1, und 0 in einer 1 resultiert. Im Gegensatz dazu resultiert in der siebten Bitposition eine Mehrheitswahl von Bitwerten 0, 1 und 0 in einer 0, die dieser siebten Bitposition zugewiesen wird. Obwohl nicht veranschaulicht, könnte irgendein Abschnitt von Bits des Datenpaketes verwendet werden zum Durchführen der Mehrheitswahloperation. Jedoch wird mehr Information erzielt durch Durchführen der Mehrheitswahl über das gesamte Datenpaket einschließlich aller 32 Datenbits und aller 16 CRC-Bits.
  • Das mehrheitsgewählte Paket kombiniert in einem einzelnen Datenpaket die kumulative Bitinformation von dem ersten, zweiten und dritten Datenpaket. Viele dieser Bits, wie in 4 gezeigt, werden genau empfangen (alle "0en" oder alle "1en" in einer bestimmten Bitposition). Selbst in den Bitpositionen, die eine Mehrheitswahlentscheidung zwischen sich unterscheidenden Bitwerten erfordern, gibt es eine hohe Wahrscheinlichkeit, dass das Mehrheitswahlergebnis dem korrekten Bitwert entspricht. Nach Erzeugen des mehrheitsgewählten Paketes wird die CRC-Operation durchgeführt auf dem Datenpaket, um zu bestimmen, ob es korrekt ist oder innerhalb einer annehmbaren Toleranz.
  • Eine besonders vorteilhafte aber nicht-einschränkende Implementierung der vorliegenden Erfindung ist die Verwendung eines neuen Bitakkumulationsmerkmals, das in dem Mehrheitswahlbestimmungsprozess verwendet wird. Eher als Speichern jedes empfangenen Datenpaketes im Speicher und dann Abrufen jedes dieser gespeicherten Datenpakete für eine Mehrheitswahloperation wird Speicher gespart und eine Komplexität reduziert durch Erzeugen und Unterhalten bzw. Aufrechterhalten von Bitakkumulatoren für jede Bitposition in dem Datenpaket. Jedes Bit des empfangenen Datenpakets wird einem entsprechenden Bitakkumulator hinzugefügt. Wenn 48 Bits in jedem Datenpaket vorliegen, würde das Datenpaket somit 48-Bitakkumulatoren haben, wobei die Größe eines jeden Akkumulators 1-Byte ist. Ein Bitwert von "1" resultiert darin, dass eine "1" zu dem Bitakkumulator für diese Bitposition hinzugefügt wird, und ein Bitwert von "0" resultiert in keiner Änderung des entsprechenden Bitakkumulatorwertes. Dadurch wird eine laufende Summe der gesamten Anzahl von "1en" in jeder Bitposition des Datenpaketes unterhalten bzw. aufrecht erhalten. Der Gesamtsummenwert in jedem Bitakkumulator wird mit der Anzahl von empfangenen Datenpaketen verglichen. Wenn der Gesamtsummenwert des Bitakkumulators einen Schwellenwert überschreitet, wird das mehrheitsgewählte Bit zu "1" gesetzt; andernfalls wird das mehrheitsgewählte Bit zu "0" gesetzt. Der Schwellenwert kann gleich der Hälfte der Anzahl von empfangenen Paketen gesetzt werden.
  • Solch ein Bitakkumulator ist besonders vorteilhaft in Umgebungen, wo eine große Anzahl von erneuten Paketübertragungen erforderlich sein kann. Zum Beispiel, wenn eine gesamte Anzahl von 255 erneuten Paketübertragungen zugelassen ist, kann jeder Bitakkumulator als ein einzelnes 8-Bit (das heißt ein Byte) Feld definiert sein. Mit anderen Worten, jedes Byte ist ein einzelner Datenpaketakkumulator. Mit Verwenden dieser Konfiguration wird ein Datenpaket mit 16 Daten-Bytes und 2 CRC-Bytes 144 Bitakkumulatoren (das heißt a 144 Bytes) erfordern, entsprechend so vielen wie 255 erneuten Datenpaketübertragungen. Dies stellt signifikante Einsparungen im RAM bereit, verglichen zum individuellen Speichern jeder erneuten Paketübertragung im RAM. Wenn das Paket 255 mal gesendet worden wäre, würde ein individuelles Speichern von jedem Paket 255 × 18 Bytes = 4.590 Bytes von RAM erfordern. Mit dem bei der vorliegenden Erfindung verwendeten Bitakkumulatorverfahren werden nur 144 Bytes für beträchtliche Einsparungen an Speicher benötigt. Eine andere Konfiguration würde sein, nur 15 gesamte erneute Datenpaketübertragungen zu erlauben und ein 4 Bit (Nibble) Bitakkumulatorfeld zu verwenden. Diese Konfiguration erlaubt ein einzelnes Byte von RAM zum Unterstützen von 2 Bitakkumulatoren.
  • In dem Fall von ungeraden Datenpaketempfängen, werden die Bitwerte bei jeder Bitposition des empfangenen Datenpakets zu dem entsprechenden Bitakkumulator hinzugefügt, um ein neues mehrheitsgewähltes Datenpaket zu schaffen. Dieses neue mehrheitsgewählte Datenpaket wird dann mit Verwenden des CRC-Algorithmus verarbeitet. Wenn es eine CRC-Verifikation passiert, wird das mehrheitsgewählte Datenpaket angenommen, und eine Bestätigung an den Sender wird erzeugt, die einen richtigen Paketempfang anzeigt. Wenn das mehrheitsgewählte Paket immer noch fehlerhaft ist, wird eine negative Bestätigung an den Sender übertragen, so dass das Paket erneut übertragen werden kann.
  • Während die Mehrheitswahl auf geradzahlige Paketempfänge angewendet werden könnte, ist diese Technik nicht so wirkungsvoll aufgrund der Gegenwart von möglichen "Gleichständen", zum Beispiel werden vier Pakete mit zwei "1en" und zwei "0en" in einer einzelnen Bitposition empfangen. Anstelle dessen wird in der bevorzugten beispielhaften Ausführungsform der vorliegenden Erfindung ein gerades Datenpaket (empfangen mit einem nicht annehmbaren Fehler) direkt mit dem mehrheitsgewählten Datenpaket verglichen, das bei dem vorherigen ungeraden Datenpaketempfang berechnet ist. Die Datenpaketbitwerte des geraden Datenpakets werden wie oben beschrieben zu den Datenpaketbitakkumulatoren hinzugefügt. Eine Mehrheitswahl selbst wird jedoch nicht durchgeführt, so dass das mehrheitsgewählte Paket (mit dem ein direkter Vergleich durchgeführt ist) dasselbe bleibt, wie beim vorherigen ungeraden Datenpaketempfang berechnet.
  • Ein Beispiel der direkten Vergleichsdateneinheit-Wiederherstellungstechnik ist in 6 veranschaulicht. Ein direkter Vergleich wird zum Beispiel mit Verwenden einer exklusiven-ODER (XOR) Operation implementiert, wo Bits, die unterschiedlich sind zwischen den zwei verglichenen Datenpaketen, in einer binären "1" resultieren, und Bits, die denselben Wert haben, in einer binären "0" resultieren. Wie mit Mehrheitswählen kann ein direkter Vergleich durchgeführt werden auf einem Abschnitt der Bits in dem Datenpaket, oder vorzugsweise auf allen Datenbits in dem Paket. Zum Implementieren des Letzteren würden zum Beispiel alle Datenbits und CRC-Bits des veranschaulichten empfangenen Datenpakets mit allen Datenbits und CRC-Bits des mehrheitsgewählten Datenpaketes verglichen werden.
  • Wenn die Anzahl von Bitunterschieden einen Schwellenwert überschreitet, dann kann es aus den oben beschriebenen Gründen vernünftig sein, das Paket zu verwerfen und eine negative Bestätigung an den Sender zu senden. Wenn sich die Pakete jedoch nur bei wenigen Bitstellen unterscheiden, dann werden diese sich unterscheidenden Bits systematisch auf alle möglichen Kombinationen gesetzt, wobei der CRC-Algorithmus für jede mögliche Kombination durchlaufen wird zum Überprüfen der Genauigkeit der Daten. Mit anderen Worten, wenn eine der sich unterscheidenden Bitstellen aktuell zu "1" gesetzt ist, wird sie zu "0" geändert, und der CRC-Algorithmus wird überprüft. Wenn sich zwei Bitstellen unterscheiden, dann werden vier mögliche unterschiedliche Bitkombinationen versucht. Für drei Bitstellen, werden 8 mögliche Bitkombinationen versucht und so weiter. Somit gleicht die Anzahl von möglichen Bitkombinationen 2bitdifs, wobei "bitdifs" der Anzahl von sich unterscheidenden Bits gleicht. Wenn irgendeine dieser Bitkombinationen eine gültige CRC-Überprüfung produziert, dann wird eine Bestätigung durch den Empfänger erzeugt, und das korrigierte Paket wird angenommen. Wenn kein gültiges Paket rückgewonnen wird, dann wird eine negative Bestätigung übertragen.
  • Der Prozess eines Abwechselns zwischen den zwei Dateneinheit-Wiederherstellungstechniken, zum Beispiel zwischen einer geraden und ungeraden Anzahl von Paketempfängen, fährt fort, bis das Paket entweder positiv bestätigt worden ist, oder bis die maximale Anzahl von erneuten Versuchen erreicht worden ist. In der oben beschriebenen beispielhaften Konfiguration mit Verwenden von 8-Bit Akkumulatoren ist die maximale Anzahl von erlaubten erneuten Versuchen/erneuten Übertragungen 255.
  • Beim Definieren des Schwellenwertes der direkten Vergleichstechnik gibt es eine praktische Begrenzung der Anzahl von Bitunterschieden, die erlaubt sein können. Das erste Problem ist die Menge der beim Berechnen von CRCs für alle möglichen Kombinationen beanspruchten Verarbeitungszeit. Diese Verarbeitungszeit muss begrenzt sein zum Sicherstellen, dass der Empfänger eine Art einer positiven Bestätigung/negativen Bestätigung dem Sender innerhalb einer vorbestimmten Zeitmenge, zum Beispiel einem Bruchteil einer Sekunde, bereitstellt. Wenn der Empfänger zuviel Zeit verbringt beim Versuchen aller möglichen Bitkombinationen, könnte dieses ACK/NAK-Übertragungszeitfenster sehr wohl überschritten werden. Das zweite Problem ist ein Annehmen eines Paketes als genau, das nicht das durch den Sender tatsächlich Übertragene ist, das heißt eines "Verfälschens". Wenn die Anzahl von Bitunterschieden zwischen den zwei Paketen groß ist, nimmt die Wahrscheinlichkeit eines Korrigierens des Paketes zu einem inkorrekten Wert zu, der dennoch eine CRC-Verifikation passiert. Deshalb sind Kompromisse zum Annehmen von mehr Bitunterschieden in der direkten Vergleichstechnik eine größere Datenverarbeitungszeit, ein erhöhter Leistungsverbrauch, und eine erhöhte Wahrscheinlichkeit eines "Verfälschens".
  • Ein signifikantes Merkmal der vorliegenden Erfindung ist, dass wichtige Information von fehlerhaften Datenpaketen nicht verloren wird durch Verwerfen dieser Pakete, wenn sie fehlerhaft oder nicht korrigierbar sind. Ganz im Gegensatz bewahrt und verwendet die vorliegende Erfindung diese wichtige Information unter Verwenden sowohl der Mehrheitswahltechnik als auch der direkten Vergleichsfehler-Korrekturtechnik.
  • Man betrachte zum Beispiel eine Umgebung einer zweiprozentigen Bitfehlerrate (bit error rate) (BER), wo ein Datenpaket aus 4 Bytes von Daten und 2 Bytes von CRC-Code-Bits mit insgesamt 48 Bits besteht. In dieser Umgebung ist die Wahrscheinlichkeit hoch (62%), dass jede Übertragung dieses Datenpakets ein oder mehrere Fehler enthalten wird. Bei der Abwesenheit der vorliegenden Erfindung kann die Wahrscheinlichkeit eines Empfangens irgendeiner Übertragung eines Datenpaketes ohne Fehler bestimmt werden gemäß der folgenden Gleichung: Pgutes Paket = (Pkorrektes Bit)Anzahl von Bits (1)
  • Dem gemäß wird die Wahrscheinlichkeit eines Empfangens irgendeines Paketes mit einem oder mehreren Bitfehlern gemäß der folgenden Gleichung bestimmt: PFehlerpaket = 1 – (Pkorrektes Bit)Anzahl von Bits (2)
  • In dieser Umgebung einer zweiprozentigen Bitfehlerrate ist die Wahrscheinlichkeit, dass ein einzelnes Bit korrekt empfangen wird, 98% (das heißt Pkorrektes Bit = 98%). Wenn jedoch die gesamte Anzahl von Datenbits in dem Paket von 4 auf 16 Bytes erhöht wird (zu insgesamt 144 Bits), dann wird die Wahrscheinlichkeit, dass ein Paket einen Fehler enthält, sehr hoch (94,5%). Als ein Ergebnis ist die aktuelle Technologie, die Datenpakete mit Fehlern einfach verwirft und hofft, dass die nächste Übertragung fehlerfrei ankommen wird, unrealistisch und unwirksam. Ohne den Gewinn der Datenrückgewinnungs-/Wiederherstellungstechniken gemäß der vorliegenden Erfindung ist die Wahrscheinlichkeit eines erfolgreichen Empfangens eines annehmbaren Datenpaketes in zwei Datenübertragungen wie folgt: PErfolg = Pgutes Paket + (PFehlerpaket)(Pgutes Paket) (3)
  • In der Umgebung eines zweiprozentigen Bitfehlers mit 48 Bit-Paketen ist die Wahrscheinlichkeit eines erfolgreichen Empfangens des Paketes bei zwei Versuchen 61,8%, was nicht besonders vielversprechend ist selbst bei einer Umgebung mit dieser relativ niedrigen Bitfehlerrate.
  • Durch Hinzufügen des direkten Vergleichs von geradzahligen Übertragungen und Mehrheitswählen auf ungradzahligen Übertragungen gemäß einer bevorzugten beispielhaften Ausführungsform der vorliegenden Erfindung wird die Wahrscheinlichkeit eines korrekten Empfangens eines mehrfach übertragenen Datenpaketes jedoch signifikant verbessert. Die folgenden Wahrscheinlichkeitsberechnungen für jede der zwei Korrekturtechniken hilft die Verbesserung zu quantifizieren.
  • Unter der Annahme, dass für die direkte Vergleichstechnik nur 2 Bitunterschiede erlaubt sind, wird die Wahrscheinlichkeit eines erfolgreichen Decodierens des gerade zweimal übertragenen Paketes gemäß den folgenden Gleichungen bestimmt: PErfolgmit direktem Vergleich hinzugefügt = Pgutes Paket + (PFehlerpaket)(Pgutes Paket) + (PFehlerpaket)(PFehlerpaket) (P1-Bitpaketfehler)(P1-Bitpaketfehler(nicht selbiger wie vorheriges Paket)) (4)wobei P1-Bitpaketfehler = 48(1 – Pkorrektes Bit)(Pkorrektes Bit)Anzahl von Bits-1 (5)
    und P1-Bitpaketfehler (nicht selbiger wie vorheriges Paket) =47(1 – Pkorrektes Bit) (Pkorrektes Bit)Anzahl von Bits-1 (6)
  • Die Wahrscheinlichkeit eines korrekten Empfangens eines Datenpaketes, wenn die direkte Vergleichstechnik eingeschlossen wird, erhöht sich von ungefähr 62% auf 67%. Dieser Zuwachs ist bescheiden, weil nur erlaubt wird, dass das empfangene Paket und das mehrheitsgewählte Paket sich durch 2 Bits in diesem Szenario unterscheiden. Mit anderen Worten, jedes der zwei Pakete kann nur einen Bitfehler haben, und die einzelnen Bitfehler in den zwei Paketen dürfen nicht an derselben Stelle sein. Wenn die Anzahl von erlaubten Bitunterschieden erweitert würde zum Einschließen von drei oder vier Bitunterschieden, dann würde jedoch die Wahrscheinlichkeit eines erfolgreichen Empfangs signifikant zunehmen.
  • Ein Hinzufügen von Mehrheitswählen oben zu dem Datenrückgewinnungsprozess verbessert die Wahrscheinlichkeit eines Korrigierens eines Paketes, das dreimal übertragen worden ist. Unter Verwenden der obigen Formel für die Wahrscheinlichkeit eines korrekten Empfangens einer Paketübertragung ist die Wahrscheinlichkeit eines Empfangens eines Paketes mit drei Übertragungen ohne Mehrheitswählen wie folgt: PErfolg = Pgutes Paket + (PFehlerpaket)(Pgutes Paket) + (PFehlerpaket)2 (Pgutes Paket) (7)
  • In einer Umgebung einer zweiprozentigen Fehlerrate mit 48 Bitdatenpaketen ist PErfolg = 78,4%. Wenn Mehrheitswählen eingeschlossen wird, ist die Wahrscheinlichkeit eines korrekten Empfangens des Paketes über drei Übertragungen wie folgt: PErfolg = Pgutes Paket + (PFehlerpaket)(Pgutes Paket) + (PFehlerpaket)2(Pgutes Paket) + (PFehlerpaket)3(Pgute Mehrheitswahl) (8) wobei Pgute Mehrheitswahl = [3(Pkorrektes Bit)(1 – Pkorrektes Bit) + (Pkorrektes Bit)3] Anzahl von Bits (9)
  • Die Wahrscheinlichkeit eines korrekten Empfangens eines Paketes mit Verwenden von Mehrheitswählen ist 98,7%.
  • Wenn sowohl die direkte Vergleichstechnik als auch die Mehrheitswahltechnik hinzugefügt werden, ist die Wahrscheinlichkeit eines korrekten Dekodierens des empfangenen 48 Bitpaketes in einer Umgebung einer zweiprozentigen Bitfehlerrate, gerade dreimal übertragen, nahezu 100%. Bedeutsamerweise wird dieser Zuwachs in einer Wahrscheinlichkeit eines korrekten Rückgewinnens eines Datenpaketes erreicht ohne zusätzliche zu den Datenpaketen hinzugefügte Vorwärts-Fehlerkorrektur-Bits. Die vorliegende Erfindung erzieht anstelle dessen den Empfänger und macht ihn "schlauer" unter Verwenden von wertvoller Information von zuvor empfangenen Datenpaketen zum Korrigieren eines aktuell empfangenen Datenpaketes. Überdies erfordern die direkte Vergleichstechnik und die Mehrheitswahltechnik nur minimale Zeit, Berechnungs- und Speicherressourcen. Selbst in besonders rauschhaften Umgebungen, die mehr als drei Übertragungen erfordern, kommt die vorliegende Erfindung näher und näher an ein richtiges Rückgewinnen des übertragenen Datenpaketes mit jedem neuen Empfang.
  • Eine mögliche Verwendung für die vorliegende Erfindung, wo Datenverarbeitungsressourcen begrenzt sind, mit Speicherraum sparsam umgegangen werden muss, und wo die Kommunikationsumgebung typischerweise feindlich ist (hohe Bitfehlerraten), ist das Gebiet von Funkkommunikationen. Ein Beispiel eines Kommunikationssystems ist das in 7 gezeigte Bündelfunkrelaissystem 100. Das Bündelfunkrelaissystem 100 ist ein "Mehrstandort"-System, wo Standortsteuereinheit S1 einen Anruf von einem Mobilfunk- und Verbreitungsgebiet A1 empfängt, einen Kanal zum Kommunizieren mit einem spezifischem Angerufenen oder einer Gruppe von Angerufenen anfordernd. Der Anrufer fordert den Kanal an durch Drücken der Sprechtaste (push-to-talk) (PTT) von seinem tragbaren/mobilen Funktransceiver. Dieses informiert die Standortsteuereinheit S1 über eine über den zugewiesenen Funksteuerkanal übertragene ankommende digitale Steuernachricht, dass ein Audiobetriebskanal benötigt wird. Die Standortsteuereinheit S1 teilt einen Betriebskanal an den Anrufer zu und instruiert die Funkeinheit des Anrufers zum Schalten von dem Steuerkanal zu dem zugewiesenen Betriebskanal. Dieser zugewiesene Betriebskanal unterstützt Kommunikationen innerhalb des durch den Standort abgedeckten Gebietes.
  • Zusätzlich kann die Standortsteuereinheit eine Steuernachricht senden, die den Betriebskanal enthält, der einer Multi-Standortvermittlung 104 zugewiesen ist. Dann sendet die Vermittlung eine Kanalanforderung an andere Standortsteuereinheiten und leitet Audiosignale wahlweise so, dass ein Audiosignalpfadweg zwischen der dem Anrufer dienenden Funkstandort-Relaisstation und der/den dem/den Angerufenen dienenden Funkstandort-Relaisstation(en) geschaffen wird. Zusätzlich können Audiosignalpfadwege ebenso auf ähnliche Weise aufgebaut werden, so dass eine oder mehrere Verschickkonsolen 106 und Bodenleitungsteilnehmer (über eine Zentraltelefon-Zusammenschaltvermittlung 108) an der Kommunikation beteiligt werden können. Beim Empfangen einer Kanalanforderungsnachricht können diese sekundären Standortsteuereinheiten jede einen Funkbetriebskanal dem Anruf zuweisen (zum Beispiel wenn ein durch die Kanalanforderungsnachricht des Anrufers gekennzeichneter Angerufener innerhalb des durch den verknüpften Funk-Transceiver-Standort bedienten Verbreitungsgebietes physikalisch lokalisiert ist). Unterdessen stellt Multi-Vermittlung 200 sicher, dass das Audiosignal des Anrufers von dem aktiven Funkempfänger von Standort S1 zu aktiven Sendern von jedem der anderen an dem Anruf teilnehmenden Standorte wahlweise geleitet worden ist. Weitere Details werden zum Beispiel in U.S. Patent 5,200,954 bereitgestellt.
  • Datenübertragungen können durchgeführt werden unter Verwenden von tragbaren/mobilen Funkeinheiten über Datennetzwerke. 8 zeigt zum Beispiel zwei unterschiedliche Typen von Netzwerken, die ein Ethernet-Netzwerk 110 und ein Funkdatennetzwerk 112 einschließen. Das Ethernet-Netzwerk 110 und das Funknetzwerk 112 sind "wechselseitig vernetzt" mit Verwenden eines Daten-Gateways 114 und eines Datenschnittstellenmoduls 126. Das Daten-Gateway 114 stellt die Schnittstelle zum Übersetzen von Nachrichten zwischen beiden Netzwerken bereit. Daten-Gateway 114 ist verbunden mit Host-Computern 116, 118, und 120 mit Koaxialkabel eines Ethernet-Netzwerkes 114 mit Verwenden von zum Beispiel einem Standardprotokoll, so wie TCP/IP. In dem Funkdatennetzwerk 112 ist das Datenschnittstellenmodul 126 mit einer Mehrzahl von Standorten 122 und 124 verbunden, die über Funkfrequenzkommunikationskanäle mit einer oder mehreren Funkeinheiten 128 und 130 kommunizieren. Funkdatenendgeräte 132 und 134 (zum Beispiel Laptop PCs) können mit Funkgeräten 128 bzw. 130 zum Durchführen von Datenkommunikationen verbunden sein.
  • Zum Erwirken einer Kommunikation von einem Funkdatenendgerät 132 zu Host A 116, informiert Funkgerät 128 Standort 122 über den Funksteuerkanal, dass es eine Nachricht hat und fordert einen Funkbetriebskanal an. Standort 122 weist einen verfügbaren Funkbetriebskanal zu und informiert das Funkgerät 128. Der Standort 122 sendet dann eine Anrufzuweisung zu dem Dateninterfacemodul 126, das sie wahlweise zu dem Daten-Gateway 114 leitet, zum Aufbauen eines Datenpfades zwischen dem Daten-Gateway und dem Funkbetriebskanal. Das Funkgerät 128 zerlegt die Nachricht in Pakete und sendet Pakete weiter zum Standort 122 über den Funkbetriebskanal. Der Standort 122 leitet die Datenpakete weiter zu Daten-Gateway 114 über Datenschnittstellenmodul 126, wie empfangen. Nachdem das Daten-Gateway 114 ein Bündel bzw. einen Stoß von Nachrichtenpaketen empfängt, überprüft dieses zum Erkennen, ob sie korrekt empfangen worden sind, und sendet ein oder mehrere Bestätigungssignale zurück zu dem Funkgerät über den Funkbetriebskanal. Wenn ein Datenpaket nicht genau empfangen ist, wird ein negatives Bestätigungssignal zu dem Funkgerät übertragen und das Funkgerät überträgt erneut ein anderes Bündel, das Pakete enthält, dass das Daten-Gateway nicht korrekt empfing. Dieses geht solange weiter, bis das Daten-Gateway 114 die gesamte Nachricht empfängt, oder bis das Funkgerät seine Wiederholungsversuche ausschöpft. Wenn das Daten-Gateway 114 erfolgreich die Datennachricht empfängt, sendet das Daten-Gateway 114 die Nachricht weiter zum Host-Computer 116 über den Bus 114.
  • Die allgemeine Architektur einer geeigneten mobilen/tragbaren Funkeinheit zum Gebrauch in der vorliegenden Erfindung ist Mikroprozessor-basiert, wie in 9 dargestellt. Mikroprozessor 150 ist mit einem geeigneten Speicher 152 und Eingabe/Ausgabe (input/output) (I/O) Schaltkreisen 154 bereitgestellt, um eine Schnittstelle mit der Funkanzeige-Einheit, dem Tastaturblock, der Sprechtaste (PTT), als auch dem Audioschaltkreis 168 zu bilden, der Audioausgaben an einen Lautsprecher bereitstellt und analoge Audioeingaben von einem Mikrofon annimmt. Ein Modem 156 funktioniert als eine digitale Schnittstelle zur Sprachverschlüsselung, Fahrzeuglokalisierung, der Multi-Standortvermittlung, und anderen Typen von digitalen Kommunikationsuntersystemen einschließlich dem Funkdatenendgerät 132. In einigen Fällen kann es wünschenswert sein, dass der Fehlerdetektionsalgorithmus, so wie eine CRC-Überprüfung, in Hardware, gegensätzlich zu Software, durchgeführt wird. Wenn dies der Fall ist, kann das Modem 156 einen Hardware-Schaltkreis beinhalten, um Fehlerdetektions- und/oder Korrekturfunktionen zusätzlich zu Modulations/Demodulationsfunktionen durchzuführen. I/O-Schaltkreis 154 erlaubt auch eine geeignete Programmsteuerung durch Mikroprozessor 150 des Funkempfängers 162 und Übertrager 160, welche, über einen konventionellen Signalkombinierer 164, eine Duplexkommunikation über eine gemeinsame Antenne 166 erlauben, wie vom Fachmann klar erkannt werden wird. Funkdatenendgerät 132 kommuniziert mit dem Funkgerät 128 über ein mit dem Modem 156 verbundenes RS-232-Kabel 158.
  • Die vorliegende Erfindung wird nun detaillierter beschrieben werden, wie sie zum Beispiel in dem oben beschriebenen Funkkommunikationsnetzwerk implementiert werden kann. Im Besonderen wird nun eine beispielhafte Datenrückgewinnungsprozedur beschrieben, die durch einen Funkempfänger durchgeführt wird, der über einen Funkkanal übertragene Datenpakete empfängt, in Verbindung mit dem in 10 veranschaulichten Flussdiagramm. Zuerst wird eine Paketzählvariable PAKETCNT gleich Null gesetzt (Block 180). Ein Datenpaket wird empfangen (Block 182), und die Paketzählvariable wird inkrementiert (Block 184). Unter der Annahme, dass das Datenpaket ein Format hat ähnlich zu dem in den 46 gezeigten, wird eine CRC-Überprüfungsoperation durchgeführt auf dem empfangenen Paket zum Detektieren irgendwelcher Fehler (Block 186). Wenn die CRC-Überprüfung bestätigt, dass das Paket korrekt empfangen wurde (Block 188), überträgt der Empfänger ein Bestätigungssignal (Block 202) über den Funkkommunikationskanal und die Steuerung kehrt zum Block 182 zurück, um das nächste Datenpaket zu empfangen. Andernfalls werden die empfangenen Datenpaket-Bitwerte zu den für dieses Datenpaket unterhaltenen entsprechenden Bitakkumulatoren hinzugefügt (Block 190). Eine Entscheidung wird getroffen im Block 192, ob der aktuelle Paketzähler bzw. Paketzählstand ungerade ist, das heißt, ob eine gerade oder ungerade erneute Übertragung dieses Datenpaketes vorliegt. Wenn es eine ungerade Übertragung ist, wird ein Algorithmus einer Mehrheitswahl-Dateneinheit-Rückgewinnung durchgeführt (Block 194), der detaillierter in 11 veranschaulicht ist. Wenn es eine gerade Übertragung ist, wird die in 12 veranschaulichte Prozedur einer direkten Vergleichsdaten-Rückgewinnung durchgeführt (Block 196). Nach Durchführen einer der beiden in 11 und 12 detaillierter gezeigten Datenrückgewinnungsoperationen kehrt die Steuerung zum Entscheidungsblock 198 zurück, um zu bestimmen, ob das Paket erfolgreich decodiert ist mit Verwenden der CRC-Überprüfung. Wenn nicht, wird ein erneuter Versuch angefordert im Block 200 mit einem Zurückkehren der Steuerung zum Block 182, um das erneut übertragene Paket zu empfangen. Andernfalls ist das wiederhergestellte Datenpaket annehmbar, und ein Bestätigungssignal wird übertragen (Block 202) mit dem nächsten substantiellen Datenpaket, das in Block 204 verarbeitet wird.
  • Der direkte Vergleichsalgorithmus (Block 210) wird nun in Verbindung mit dem in 11 veranschaulichten Flussdiagramm beschrieben. Das Mehrheitsdatenpaket, das für die ungerade Übertragung des Datenpaketes berechnet wurde, unmittelbar vorhergehend vor der aktuell empfangenen geraden Übertragung des Datenpakets, wird exklusiv-ODER-verknüpft mit dem aktuell empfangenen, geraden Datenpaket (Block 212), auf ähnliche Weise zu der in 6 gezeigten Art. Die Summe der Anzahl von Bits, die sich als ein Ergebnis des exklusiv-ODER-Vergleichs unterscheiden (das heißt, die Bitpositionen, die eine exklusiv-ODER-Ausgabe von "1" haben) wird Variable BITDIF zugewiesen (Block 214). Eine Entscheidung wird getroffen, ob die Variable BITDIF geringer als oder gleich einem vordefinierten Schwellenwert ist (Block 216). Wie oben erwähnt ist der Schwellenwert ein Kompromiss zwischen einer verbesserten Datenrückgewinnungsleistung und der Datenverarbeitungszeit/Ressourcen, die erforderlich sind zum Berechnen von CRCs für die vorgeschlagene Anzahl von Bitkombinationen, die aus dieser Anzahl von Bitunterschieden resultieren. Wenn die Anzahl von sich unterscheidenden Bits den Schwellenwert überschreitet, wird ein Erfolgs-Flag auf falsch gesetzt (Block 218). Die Steuerung kehrt zu 10 zurück, und eine Anforderung eines erneuten Versuchs wird gemacht, so dass das Datenpaket erneut übertragen wird. Andernfalls werden verschiedene Bitkombinationen verwendet zum Erzeugen einer Liste von möglichen Versuchsdatenpaketen (Block 220). Eines von diesen möglichen Versuchsdatenpaketen wird ausgewählt (Block 222), und eine CRC-Überprüfungsberechnung wird durchgeführt (Block 224). Wenn die CRC-Überprüfung zufriedenstellend ist (Block 226), wird das Erfolgs-Flag auf wahr gesetzt (Block 232), und die Steuerung kehrt zu 10 zurück, wo ein Bestätigungssignal übertragen wird. Andernfalls wird in Block 228 eine Entscheidung getroffen, ob alle möglichen Versuchs-Datenpaket-Kombinationen analysiert worden sind. Wenn nicht, kehrt die Steuerung zu Block 222 zurück zum Auswählen eines anderen der noch nicht analysierten möglichen Versuchs-Datenpakete. Andernfalls, produzierten alle möglichen Versuchs-Datenpakete unannehmbare Ergebnisse. Das Erfolgs-Flag wird auf falsch gesetzt (Block 230), und die Steuerung kehrt zu 10 zurück zum Senden einer negativen Bestätigung, wodurch bewirkt wird, dass das Datenpaket erneut übertragen wird.
  • Der Mehrheitswahlalgorithmus (Block 250) wird nun in Verbindung mit dem in 12 veranschaulichten Flussdiagramm beschrieben. In Block 252 wird eine der gesamten Anzahl von Bits in dem Datenpaket entsprechende Variable TOTALBITS gesetzt. Dem in dieser Beschreibung verwendeten nicht einschränkenden Beispiel folgend, wird die gesamte Anzahl von Bits zu 48 gesetzt. Der Bitakkumulator wird initialisiert, wie auch eine Variable BITNUM, die auf eine der Bitpositionen in dem Datenpaket "zeigt". In Block 254 wird eine Schwellenwert-Variable T gesetzt. Ein beispielhaftes Verfahren zum Berechnen des Schwellenwertes ist ein Teilen des Paketzählstandes durch zwei und Abschneiden ("TRUNC") des Rests.
  • Eine Entscheidung wird in Block 256 getroffen, ob die Bitsumme in dem Bitakkumulator für die aktuelle Bitposition, auf die gezeigt wird, den Schwellenwert T überschreitet (Block 256). Ist dies der Fall, dann wird der Bitwert dieser Bitnummer in dem Mehrheitsdatenpaket zu eins gesetzt (Block 258). Ist dies nicht der Fall, dann wird der Bitwert für diese Bitposition in dem Mehrheitsdatenpaket zu Null gesetzt (Block 260). In Block 262 wird dann die Variable BITNUM um eins inkrementiert, um auf die nächste Bitposition/Bitakkumulator zu zeigen. Eine Entscheidung wird getroffen in Block 264, ob die neue Bitposition (BITNUM) geringer als die gesamte Anzahl von Bits in dem Datenpaket ist. Wenn dies so ist, dann werden die Prozeduren in Blöcken 256 bis 264 wiederholt. Andernfalls wird die Mehrheitswahloperation für dieses Datenpaket vollendet, und eine CRC-Überprüfung wird in Block 266 durchgeführt. Wenn die Ergebnisse der CRC-Überprüfung gut sind (Block 268), wird das Erfolgs-Flag gleich wahr gesetzt (Block 272); andernfalls wird das Erfolgs-Flag auf falsch gesetzt (Block 270). Die Steuerung kehrt dann zu 10 zurück, um entweder eine Bestätigung zu übertragen (Block 202) oder einen erneuten Versuch anzufordern (Block 200).
  • Die vorliegende Erfindung gewinnt Datennutzinformation zurück aus zuvor empfangenen Datenpaketen, um ein Datenpaket wiederherzustellen mit einer ständig zunehmenden Wahrscheinlichkeit eines Wiederherstellens des tatsächlich übertragenen Datenpaketes, unter Annahme einer Bitfehlerrate von weniger als 50%. Mit jedem neuen Empfang bringt die akkumulierte Information den Empfänger näher an ein Erhalten des tatsächlich übertragenen Datenpaketes. Diese Verwendung von Information, die andernfalls verworfen werden könnte, erlaubt eine hoch effiziente und wirkungsvolle Bitfehlerkorrektur, die besonders nützlich ist in feindlichen Kommunikationsumgebungen für Transceiver mit begrenzten Datenverarbeitungs- und/oder Speicher-Ressourcen.
  • Während die Erfindung mit Verweis auf besondere Ausführungsformen davon beschrieben worden ist, erstreckt sich der Bereich der Erfindung als auch ihre Anwendung und Merkmale auf andere Ausführungsformen und ist nur durch die folgenden Ansprüche beschränkt.

Claims (19)

  1. Ein Datenverarbeitungsverfahren mit: Empfangen einer Folge von fehlerhaften Versionen einer Dateneinheit, wobei die Folge eine erste Version und eine oder mehrere erneut gesendete Versionen beinhaltet; Wiederherstellen der Dateneinheit mit Verwenden der Folge mit. – Bestimmen (48), ob eine gegenwärtig empfangene fehlerhafte Version ein ungeradzahliges oder geradzahliges Glied der Folge ist; – Durchführen einer ersten Dateneinheit-Wiederherstellungsoperation (50) oder einer zweiten Dateneinheit-Wiederherstellungsoperation (52) abhängig von dem Resultat des Bestimmungsschrittes (48); – wobei die erste Dateneinheit-Wiederherstellungsoperation (50) Durchführen einer Mehrheitswahloperation auf den Versionen in der Folge umfasst, um eine mehrheitsgewählte Dateneinheit zu erzeugen, die die wiederhergestellte Dateneinheit für die erste Dateneinheit-Wiederherstellungsoperation (50) ist; – wobei die zweite Dateneinheit-Wiederherstellungsoperation (52) Vergleichen der mehrheitsgewählten Dateneinheit einer vorher durchgeführten ersten Dateneinheit mit der gegenwärtig empfangenen Version, Identifizieren einer oder mehrerer Positionen mit unterschiedlichen Bitwerten und Verändern einer oder mehrerer dieser Bitwerte umfasst, wobei die Dateneinheit mit dem einen oder mehreren geänderten Bitwerten die wiederhergestellte Dateneinheit für die zweite Dateneinheit-Wiederherstellungsoperation (52) ist; – Überprüfen (54) der wiederhergestellten Dateneinheit auf Fehler; und – wenn die wiederhergestellte Dateneinheit als annehmbar befunden wird in dem Überprüfungsschritt (54), Übertragen (47) eines Bestätigungssignals.
  2. Das Verfahren nach Anspruch 1, wobei die zweite Dateneinheit-Wiederherstellungsoperation Durchführen einer exklusiv-ODER-Operation auf der mehrheitsgewählten Dateneinheit einer vorher durchgeführten ersten Dateneinheit-Wiederherstellungsoperation und der gegenwärtig empfangenen Version beinhaltet.
  3. Das Verfahren nach Anspruch 1 oder 2, wobei die zweite Dateneinheit-Wiederherstellungsoperation Vergleichen der Anzahl von unterschiedlichen Bitwerten mit einem Schwellenwert und Durchführen des Veränderungsschritts beinhaltet, wenn die Anzahl von unterschiedlichen Bitwerten geringer als der Schwellenwert ist.
  4. Das Verfahren nach einem der Ansprüche 1 bis 3, wobei die zweite Dateneinheit-Wiederherstellungsoperation (52) ferner umfasst: Bestimmen, ob die wiederhergestellte Dateneinheit für die zweite Dateneinheit-Wiederherstellungsoperation (52) annehmbar ist, und wenn nicht, Verändern eines anderen der unterschiedlichen Bitwerte.
  5. Das Verfahren nach Anspruch 1, wobei die Dateneinheit Datenbits und Fehlerdetektionsbits beinhaltet, und wobei der Überprüfungsschritt (54) Durchführen einer zyklischen Redundanzcode Berechnung auf der wiederhergestellten Dateneinheit beinhaltet.
  6. Das Verfahren nach Anspruch 4, ferner beinhaltend: Anfordern einer erneuten Übertragung der Dateneinheit, wenn ein unannehmbarer Fehler in dem Überprüfungsschritt (54) erfasst wird.
  7. Das Verfahren nach Anspruch 1, wobei die Mehrheitswahloperation ferner Vergleichen einer Anzahl von nicht-passenden Bits mit einem Schwellenwert umfasst.
  8. Das Verfahren nach Anspruch 1, wobei die Mehrheitswahloperation den Schritt eines Unterhaltens eines Bitakkumulators für jede entsprechende Bitposition in der Dateneinheit beinhaltet, so dass jeder Bitakkumulator den Bitwert an der entsprechenden Bitposition von jeder der Versionen der Dateneinheit summiert.
  9. Das Verfahren nach Anspruch 8, wobei die mehrheitsgewählte Dateneinheit in Übereinstimmung mit den folgenden Schritten bestimmt wird: Akkumulieren für jede entsprechende Bitposition in der Dateneinheit einer Summe der Bitwerte in der entsprechenden Bitposition von jeder Version in der Folge; Bestimmen eines Schwellenwertes basierend auf der Anzahl von Versionen in der Folge; Vergleichen jeder akkumulierter Summe mit dem Schwellenwert; wenn die akkumulierte Summe geringer als oder gleich dem Schwellenwert ist, Setzen des Bitwertes für die entsprechende Bitposition der mehrheitsgewählten Dateneinheit auf 0, und wenn die akkumulierte Summe größer als der Schwellenwert ist, Setzen des Bitwertes für die entsprechende Bitposition der mehrheitsgewählten Dateneinheit auf 1.
  10. Das Verfahren nach Anspruch 9, wobei der Schwellenwert-Bestimmungsschritt beinhaltet: Teilen der Anzahl von Datenbits in der Sequenz durch 2, und Trunkieren des resultierenden Quotienten.
  11. Das Verfahren nach Anspruch 9, wobei die Schritte für jede Bitposition in der wiederhergestellten Dateneinheit durchgeführt werden.
  12. Das Verfahren nach Anspruch 9, wobei die Schritte für nur einen Teil von Bitpositionen in der wiederhergestellten Dateneinheit durchgeführt werden.
  13. Das Verfahren nach Anspruch 1, wobei die Dateneinheit Datenbits und Fehlerdetektionsbits beinhaltet, aber keine Fehlerkorrekturbits.
  14. Das Verfahren nach einem der vorhergehenden Ansprüche, wobei die erste Dateneinheit-Wiederherstellungsoperation (50) durchgeführt wird, wenn die gegenwärtig empfangene fehlerhafte Version ein ungeradzahliges Glied der Folge ist, und die zweite Dateneinheit-Wiederherstellungsoperation (52) durchgeführt wird, wenn die gegenwärtig empfangene fehlerhafte Version ein geradzahliges Glied der Folge ist.
  15. Ein Empfänger zum Gebrauch in einem Datenkommunikationssystem, wo ein Sender eine Dateneinheit mehrmals über eine Datenkommunikationsverbindung überträgt, und dadurch eine Folge von fehlerhaften Versionen der Dateneinheit erzeugt, wobei der Empfänger einen Datenprozessor und einen Transceiver, an die Datenkommunikationsverbindung zum Empfangen der Folge gekoppelt, beinhaltet, wobei der Datenprozessor zum Wiederherstellen der Dateneinheit angeordnet ist mit: – einer Vorrichtung zum Bestimmen (48), ob eine gegenwärtig empfangene fehlerhafte Version ein ungeradzahliges oder geradzahliges Glied einer Folge ist; – einer Vorrichtung zum Durchführen einer ersten Dateneinheit-Wiederherstellungsoperation (50) oder einer zweiten Dateneinheit-Wiederherstellungsoperation (52) abhängig von einer durch die Bestimmungsvorrichtung (48) durchgeführten Bestimmung, wobei die erste Dateneinheit-Wiederherstellungsoperation (50) Durchführen einer Mehrheitswahloperation auf den Versionen in der Folge umfasst zum Erzeugen einer mehrheitsgewählten Dateneinheit, die die wiederhergestellte Dateneinheit für die erste Dateneinheit-Wiederherstellungsoperation (50) ist, und wobei die zweite Dateneinheit-Wiederherstellungsoperation (52) Vergleichen der mehrheitsgewählten Dateneinheit einer vorher durchgeführten ersten Dateneinheit-Wiederherstellungsoperation mit der gegenwärtig empfangenen Version, Identifizieren einer oder mehrerer Positionen mit unterschiedlichen Bitwerten und Verändern einer oder mehrerer dieser Bitwerte umfasst, wobei die Dateneinheit mit dem einen oder mehreren geänderten Bitwerten die wiederhergestellte Dateneinheit für die zweite Dateneinheit-Wiederherstellungsoperation (52) ist; – einer Vorrichtung zum Überprüfen (54) der wiederhergestellten Dateneinheit auf Fehler; und – einer Vorrichtung zum Übertragen (47) eines Bestätigungssignals, wenn die wiederhergestellte Dateneinheit als annehmbar befunden wird in dem Überprüfungsschritt (54).
  16. Der Empfänger nach Anspruch 15, wobei der Empfänger eine tragbare Funkeinheit ist und die Datenkommunikationsverbindung ein drahtloser Funkkanal ist.
  17. Der Empfänger nach Anspruch 15, wobei der Datenprozessor angeordnet ist zum Unterhalten eines Bitakkumulators für eine oder mehrere Bitpositionen in der wiederhergestellten Dateneinheit für die erste Dateneinheit-Wiederherstellungsoperation (50), zum Speichern einer Summe der Bitwerte für die entsprechende Bitposition von jeder der Versionen in der Folge.
  18. Der Empfänger nach Anspruch 17, wobei der Datenprozessor angeordnet ist zum Bestimmen eines Schwellenwertes basierend auf der Anzahl von Versionen in der Folge, Vergleichen jeder akkumulierten Summe mit dem Schwellenwert, und wenn die akkumulierte Summe geringer als oder gleich dem Schwellenwert ist, Setzen des Bitwertes für die entsprechende Bitposition der mehrheitsgewählten Dateneinheit auf 0, und wenn die akkumulierte Summe größer als der Schwellenwert ist, Setzen des Bitwertes für die entsprechende Bitposition der mehrheitsgewählten Dateneinheit auf 1.
  19. Der Empfänger nach Anspruch 15, wobei der Datenprozessor angeordnet ist, so dass, wenn die wiederhergestellte Dateneinheit für die zweite Dateneinheit-Wiederherstellungsoperation (52) unannehmbar ist, ein oder mehrere der unterschiedlichen Bitwerte geändert werden zum Erzeugen einer neuen wiederhergestellten Dateneinheit für die zweite Dateneinheit-Wiederherstellungsoperation (52).
DE69733346T 1996-04-01 1997-03-28 Verfahren und gerät zur datenrückgewinnung in arq-übertragungssystemen Expired - Lifetime DE69733346T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/626,008 US5968197A (en) 1996-04-01 1996-04-01 Method and apparatus for data recovery
US626008 1996-04-01
PCT/US1997/004693 WO1997037459A1 (en) 1996-04-01 1997-03-28 Method and apparatus for data recovery in arq systems

Publications (2)

Publication Number Publication Date
DE69733346D1 DE69733346D1 (de) 2005-06-30
DE69733346T2 true DE69733346T2 (de) 2006-02-02

Family

ID=24508571

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69733346T Expired - Lifetime DE69733346T2 (de) 1996-04-01 1997-03-28 Verfahren und gerät zur datenrückgewinnung in arq-übertragungssystemen

Country Status (12)

Country Link
US (1) US5968197A (de)
EP (1) EP0891662B1 (de)
JP (1) JP3775800B2 (de)
KR (1) KR100355523B1 (de)
CN (1) CN1236579C (de)
AU (1) AU715820B2 (de)
BR (1) BR9708584A (de)
DE (1) DE69733346T2 (de)
HK (1) HK1018559A1 (de)
MY (1) MY117296A (de)
PL (1) PL182761B1 (de)
WO (1) WO1997037459A1 (de)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5959613A (en) * 1995-12-01 1999-09-28 Immersion Corporation Method and apparatus for shaping force signals for a force feedback device
FI103540B (fi) * 1997-04-28 1999-07-15 Nokia Mobile Phones Ltd Menetelmä pakettikytkentäisen datan siirtoon matkapuhelinjärjestelmäss ä
FI103541B (fi) * 1997-04-28 1999-07-15 Nokia Mobile Phones Ltd Menetelmä pakettikytkentäisen datan siirtoon matkapuhelinjärjestelmäss ä
FI972987A (fi) * 1997-07-14 1999-01-15 Nokia Telecommunications Oy Lähetetyn datakehyksen uudelleenmuodostaminen
US6101168A (en) * 1997-11-13 2000-08-08 Qualcomm Inc. Method and apparatus for time efficient retransmission using symbol accumulation
JP3754824B2 (ja) * 1998-01-26 2006-03-15 キヤノン株式会社 印刷システム、制御方法、情報処理装置及び出力装置
US6581177B1 (en) * 1998-05-01 2003-06-17 Texas Instruments Incorporated Multi-access, collision-based communications
US6980543B1 (en) * 1998-06-19 2005-12-27 Juniper Networks, Inc. Interconnect network for operation within a communication node
US7058077B1 (en) * 1998-08-17 2006-06-06 Nortel Networks Limited Flexible frame structure for a CDMA wireless network
KR100354745B1 (ko) * 1998-11-02 2002-12-18 삼성전자 주식회사 비디오코딩및디코딩방법
US6209111B1 (en) * 1998-11-09 2001-03-27 Microsoft Corporation Error correction on a mobile device
US6462648B1 (en) * 1999-03-13 2002-10-08 Code Systems, Inc. Vehicle security system
US6357028B1 (en) * 1999-03-19 2002-03-12 Picturetel Corporation Error correction and concealment during data transmission
JP2000349742A (ja) * 1999-03-31 2000-12-15 Matsushita Electric Ind Co Ltd 通信端末装置、基地局装置及び無線通信方法
US6772215B1 (en) * 1999-04-09 2004-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Method for minimizing feedback responses in ARQ protocols
US6850559B1 (en) * 1999-06-28 2005-02-01 At&T Corp. System and methods for transmitting data
US6523148B1 (en) * 1999-08-19 2003-02-18 Koninlijke Philips Electronics N.,V. Majority decision method for improved frame error rate in the digital enhanced cordless telecommunications system
JP3640844B2 (ja) * 1999-09-17 2005-04-20 株式会社東芝 エラー処理機能を備えた伝送装置及びエラー処理方法
US6651184B1 (en) * 1999-11-03 2003-11-18 Hewlett-Packard Development Company, L.P. Isochronous transfer mode on a universal serial bus with error correction algorithms
JP4330767B2 (ja) * 2000-06-26 2009-09-16 株式会社エヌ・ティ・ティ・ドコモ 自動再送要求を行う通信方法及び基地局装置
KR100719895B1 (ko) * 2000-08-25 2007-05-18 에스케이 텔레콤주식회사 무선 비동기 전송 모드 망을 위한 패킷 결합 장치 및 방법
KR100525384B1 (ko) * 2000-10-31 2005-11-02 엘지전자 주식회사 무선 통신 시스템에서의 패킷 재전송 제어 방법
US7010730B1 (en) * 2000-11-01 2006-03-07 Sunrise Telecom Incorporated System and method for testing the upstream channel of a cable network
US7095729B2 (en) * 2000-12-22 2006-08-22 Intel Corporation Method for multimedia communication over packet channels
US20030084020A1 (en) * 2000-12-22 2003-05-01 Li Shu Distributed fault tolerant and secure storage
US6691273B2 (en) * 2001-01-17 2004-02-10 Telefonaktiebolaget Lm Ericsson (Publ) Error correction using packet combining during soft handover
US6763491B2 (en) * 2001-02-07 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for avoiding unnecessary retransmissions associated with automatic retransmission query schemes in radiocommunication systems
US6944123B1 (en) * 2001-03-21 2005-09-13 Cisco Technology, Inc. Redundant packet selection and manipulation in wireless communications systems
JP3476788B2 (ja) * 2001-05-11 2003-12-10 シャープ株式会社 通信方式ならびに送信装置、受信装置およびこれらを備えた通信システム
US7203508B2 (en) * 2001-06-13 2007-04-10 Ntt Docomo, Inc. Mobile communication systems, mobile communication methods, base stations, mobile stations, and signal transmission methods in the mobile communication systems
US20030039226A1 (en) 2001-08-24 2003-02-27 Kwak Joseph A. Physical layer automatic repeat request (ARQ)
US7889742B2 (en) * 2001-09-29 2011-02-15 Qualcomm, Incorporated Method and system for improving data throughput
US8089940B2 (en) 2001-10-05 2012-01-03 Qualcomm Incorporated Method and system for efficient and reliable data packet transmission
KR20030040932A (ko) * 2001-11-17 2003-05-23 엘지전자 주식회사 무선 단말의 에러 데이터 완성 방법
US7171493B2 (en) * 2001-12-19 2007-01-30 The Charles Stark Draper Laboratory Camouflage of network traffic to resist attack
US7099318B2 (en) 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
US7191375B2 (en) * 2001-12-28 2007-03-13 Intel Corporation Method and apparatus for signaling an error condition to an agent not expecting a completion
US6944617B2 (en) * 2001-12-28 2005-09-13 Intel Corporation Communicating transaction types between agents in a computer system using packet headers including an extended type/extended length field
US7184399B2 (en) * 2001-12-28 2007-02-27 Intel Corporation Method for handling completion packets with a non-successful completion status
US7581026B2 (en) * 2001-12-28 2009-08-25 Intel Corporation Communicating transaction types between agents in a computer system using packet headers including format and type fields
EP2343891B1 (de) 2002-01-02 2013-09-18 Sony Electronics, Inc. Teilweise Verschlüsselung und PID-Abbildung
US8051443B2 (en) * 2002-01-02 2011-11-01 Sony Corporation Content replacement by PID mapping
US7007219B2 (en) * 2002-01-11 2006-02-28 Ncr Corporation Methods and apparatus for error detection and correction of an electronic shelf label system communication error
US7036065B2 (en) 2002-03-18 2006-04-25 Harris Corporation ARQ combining holdoff system and method
CA2393502A1 (en) * 2002-07-15 2004-01-15 Mark J. Frazer System and method for reliable transport in a computer network
US7573958B2 (en) * 2002-07-18 2009-08-11 Motorola, Inc. Receiver for and method of recovering transmitted symbols in a H-ARQ packet retransmission
US8818896B2 (en) 2002-09-09 2014-08-26 Sony Corporation Selective encryption with coverage encryption
KR101038489B1 (ko) * 2003-03-05 2011-06-01 삼성테크윈 주식회사 Cdma 통신망을 이용한 영상 전송장치 및 방법
GB2399719A (en) * 2003-03-18 2004-09-22 Nokia Corp Transmission of data with forward error correction information
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
US7188292B2 (en) * 2003-09-26 2007-03-06 Nortel Networks Limited Data mirroring system
US7971121B1 (en) * 2004-06-18 2011-06-28 Verizon Laboratories Inc. Systems and methods for providing distributed packet loss concealment in packet switching communications networks
CN104301079A (zh) * 2004-12-22 2015-01-21 艾利森电话股份有限公司 使用重复确认的数据流控制
KR20060079570A (ko) * 2004-12-31 2006-07-06 삼성전자주식회사 통신 시스템에서 데이터 재전송 장치 및 방법
JP2006197173A (ja) * 2005-01-13 2006-07-27 Oki Electric Ind Co Ltd 無線通信装置、無線通信システム、及び無線通信方法
US20060179392A1 (en) * 2005-02-08 2006-08-10 Takaaki Ota Handshakeless retransmission protocol
US20060291452A1 (en) * 2005-06-24 2006-12-28 Motorola, Inc. Method and apparatus for providing reliable communications over an unreliable communications channel
JP4571893B2 (ja) * 2005-07-26 2010-10-27 日本放送協会 デジタル信号受信装置及びデジタル信号受信プログラム
JP2007104423A (ja) * 2005-10-05 2007-04-19 Oki Electric Ind Co Ltd 連送方式による誤り訂正方法、通信システム及び受信装置
KR100880171B1 (ko) * 2005-12-29 2009-01-23 삼성전자주식회사 무선 통신 시스템에서 단말의 디코딩 장치 및 방법
US7555464B2 (en) * 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
JP2008103991A (ja) * 2006-10-19 2008-05-01 Oki Electric Ind Co Ltd データ伝送方法
DE102007014997B4 (de) * 2007-03-28 2013-08-29 Continental Automotive Gmbh Redundante Signalübertragung
US8169992B2 (en) 2007-08-08 2012-05-01 Telefonaktiebolaget Lm Ericsson (Publ) Uplink scrambling during random access
TW201123793A (en) * 2009-12-31 2011-07-01 Ralink Technology Corp Communication apparatus and interfacing method for I/O control interface
US8392810B2 (en) * 2010-01-25 2013-03-05 Qualcomm Incorporated Majority vote error correction
US8522121B2 (en) * 2010-02-19 2013-08-27 Broadcom Corporation Low complexity error correction using cyclic redundancy check (CRC)
US20110283155A1 (en) * 2010-05-11 2011-11-17 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in a communication system
DE102011053883B4 (de) * 2011-09-23 2022-03-10 Rp-Technik Gmbh Notlichtbeleuchtungsanlage mit Datenkommunikationsfähigkeiten
US8689049B2 (en) * 2011-11-03 2014-04-01 Hewlett-Packard Development Company, L.P. Corrective actions based on probabilities
CN106502624B (zh) 2011-11-30 2019-10-18 英特尔公司 用于提供向量横向多数表决功能的处理器、设备和处理系统
TW201401042A (zh) * 2012-06-18 2014-01-01 Hon Hai Prec Ind Co Ltd 顯卡故障處理系統及方法
GB2504522B (en) 2012-08-01 2014-12-17 Canon Kk Data processing method and apparatus for processing a plurality of received data copies
US10567489B2 (en) * 2013-03-15 2020-02-18 Time Warner Cable Enterprises Llc System and method for seamless switching between data streams
US9680606B2 (en) * 2014-11-20 2017-06-13 Aviat U.S., Inc. Managing integrity of framed payloads using redundant signals
US10205562B1 (en) * 2017-01-03 2019-02-12 Mbit Wireless, Inc. Method and apparatus for error correction
US10636286B2 (en) * 2017-05-05 2020-04-28 Tyco Safety Products Canada Ltd Signal reconstruction using recursive data and signal recovery using previous known signals
US10868662B2 (en) * 2018-11-30 2020-12-15 Ciena Corporation Virtualized synchronous Ethernet interfaces
CN110134552B (zh) * 2019-05-09 2023-04-14 中国航空工业集团公司西安航空计算技术研究所 一种基于经验学习的容错方法
CN111628780B (zh) * 2020-05-07 2023-04-25 中国科学院微电子研究所 数据编码、解码方法及数据处理系统
US11290209B2 (en) * 2020-07-17 2022-03-29 Audiowise Technology Inc. Wireless communication method and wireless communication device which uses the wireless communication method
US11580396B2 (en) 2020-10-13 2023-02-14 Aira Technologies, Inc. Systems and methods for artificial intelligence discovered codes
US11088784B1 (en) 2020-12-24 2021-08-10 Aira Technologies, Inc. Systems and methods for utilizing dynamic codes with neural networks
US11483109B2 (en) 2020-12-28 2022-10-25 Aira Technologies, Inc. Systems and methods for multi-device communication
US11575469B2 (en) 2020-12-28 2023-02-07 Aira Technologies, Inc. Multi-bit feedback protocol systems and methods
US11477308B2 (en) 2020-12-28 2022-10-18 Aira Technologies, Inc. Adaptive payload extraction in wireless communications involving multi-access address packets
US11368251B1 (en) 2020-12-28 2022-06-21 Aira Technologies, Inc. Convergent multi-bit feedback system
US11191049B1 (en) 2020-12-28 2021-11-30 Aira Technologies, Inc. Systems and methods for improving wireless performance
US20220291955A1 (en) * 2021-03-09 2022-09-15 Intel Corporation Asynchronous input dependency resolution mechanism
US11489623B2 (en) * 2021-03-15 2022-11-01 Aira Technologies, Inc. Error correction in network packets
US11496242B2 (en) * 2021-03-15 2022-11-08 Aira Technologies, Inc. Fast cyclic redundancy check: utilizing linearity of cyclic redundancy check for accelerating correction of corrupted network packets

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662338A (en) * 1970-02-01 1972-05-09 Radiation Inc Modified threshold decoder for convolutional codes
US4128809A (en) * 1976-08-31 1978-12-05 Nippon Electric Co., Ltd. Time diversity receiver for processing repeatedly received signal bits in consideration of a maximum-level and/or a favorably received signal bit
JPS5910099B2 (ja) * 1976-10-27 1984-03-07 日本電気株式会社 多数決決定回路
NL7905968A (nl) * 1979-08-03 1981-02-05 Philips Nv Werkwijze voor het detecteren van een digitaal code- woord en codedetector voor het uitvoeren van de werkwijze.
FR2503965B1 (fr) * 1981-04-08 1987-07-24 Thomson Csf Procede de protection contre les erreurs de transmission des messages radio-telegraphiques et dispositif de mise en oeuvre
JPS61198931A (ja) * 1985-02-28 1986-09-03 Nec Corp 表示機能付無線選択呼出受信機
US5241548A (en) * 1991-05-23 1993-08-31 Motorola, Inc. Method for error correction of a transmitted data word
WO1993006671A1 (en) * 1991-09-20 1993-04-01 Motorola, Inc. Extended error correction of a transmitted data message
US5321703A (en) * 1992-03-13 1994-06-14 Digital Equipment Corporation Data recovery after error correction failure
US5404374A (en) * 1993-07-12 1995-04-04 Apple Computer, Inc. Method and apparatus for transmitting and receiving encoded data using multiple frequency coding
US5426653A (en) * 1993-07-28 1995-06-20 Motorola, Inc. Method and apparatus for performing error correction on a signal received by a radio communication device
CA2129206C (en) * 1993-08-10 1998-07-14 Mark Thurman Integration of tv video with ir tracker features
US5745502A (en) * 1996-09-27 1998-04-28 Ericsson, Inc. Error detection scheme for ARQ systems
US5870406A (en) * 1997-02-19 1999-02-09 Ericsson Inc. Automatic repeat request(ARQ) data communications method and apparatus

Also Published As

Publication number Publication date
AU715820B2 (en) 2000-02-10
JP2000507777A (ja) 2000-06-20
HK1018559A1 (en) 1999-12-24
WO1997037459A1 (en) 1997-10-09
KR100355523B1 (ko) 2003-01-24
PL182761B1 (pl) 2002-02-28
JP3775800B2 (ja) 2006-05-17
PL329110A1 (en) 1999-03-15
KR20000004998A (ko) 2000-01-25
BR9708584A (pt) 1999-08-03
US5968197A (en) 1999-10-19
AU2422397A (en) 1997-10-22
CN1236579C (zh) 2006-01-11
EP0891662A1 (de) 1999-01-20
DE69733346D1 (de) 2005-06-30
MY117296A (en) 2004-06-30
CN1214828A (zh) 1999-04-21
EP0891662B1 (de) 2005-05-25

Similar Documents

Publication Publication Date Title
DE69733346T2 (de) Verfahren und gerät zur datenrückgewinnung in arq-übertragungssystemen
DE69727325T2 (de) Fehlerdetektion für ARQ Systeme
DE60035773T2 (de) Datenwiederübertragungsverfahren in einem sprach-über-datenkommunikationssystem
DE69630629T2 (de) Diversity-Funkübertragungssystem
CN100591000C (zh) 基站中多用户反馈信息的分类组合传送方法
DE60002884T2 (de) Verfahren und system zur datenempfangsquittierung
DE10007602A1 (de) Verfahren zum Übertragen von Paketdateninformationen in einem Funk-Kommunikationssystem
DE602004010433T2 (de) Verfahren, system und vorrichtung zur arq-datenübertragung
DE69725305T2 (de) Verfahren und vorrichtung für punkt-zu-mehrpunkt-datenübertragung mit arq
EP1457085A1 (de) Verfahren zum paketvermittelten datenübertragung bei funkzellenwechsel
DE60108501T2 (de) Funksystem und -stationen für und verfahren zur multicast-kommunikation
CN111246428A (zh) 一种网络可靠通信方法、系统、装置及存储介质
DE602005000124T2 (de) Verfahren zum Empfangen von paketorientierter Information mit automatischer Wiederholungsaufforderung
EP1281253B1 (de) Übertragung von kodierten datenpaketen, bei der der empfänger durch explizite signalisierung die kodierung der datenpakete entscheidet
DE19722201A1 (de) Verfahren und Vorrichtung zur Verifizierung einer Datenübertragung
DE10031677B4 (de) Verfahren bzw. Kommunikationssystem mit einer robusten Diversitäts-Kombinierung
DE102009032640B4 (de) Datenkorrektur-Vorrichtung, Datenkorrektur-Verfahren und maschinenlesbares Medium
DE102021123723A1 (de) Bitfehlerkorrektur für bluetooth low energy
EP1609266A1 (de) Verfahren und messgerät zum ermitteln einer fehlerrate ohne incremental redundancy
EP0473869A1 (de) Verfahren zur automatischen Sendewiederholung eines Telegramms bei dessen fehlerhaftem Empfang
DE102020127970A1 (de) Vorrichtung und Verfahren für HARQ in einem Funknetzwerk
EP0978166A2 (de) Endgeräat für den digitalen mobilfunk und verfahren zum auswerten von in einem solchen endgerät empfangenen daten
JPH01119135A (ja) データ伝送方式
DE10029756A1 (de) Verfahren und Kommunikationssystem zum Überprüfen rekonstuierter Headerinformation oder Transportformat-Kombinationsindikatoren bei ARQ mit Diversitätskombinierung
EP1295429A1 (de) Verfahren zum gleichzeitigen übertragen mehrerer teildatenströme und vorrichtung zum korrigieren von übertragungsfehlern durch automatische wiederholunganforderung (arq)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition