DE102004061803A1 - Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von Daten über ein Kommunikationssystem - Google Patents

Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von Daten über ein Kommunikationssystem Download PDF

Info

Publication number
DE102004061803A1
DE102004061803A1 DE102004061803A DE102004061803A DE102004061803A1 DE 102004061803 A1 DE102004061803 A1 DE 102004061803A1 DE 102004061803 A DE102004061803 A DE 102004061803A DE 102004061803 A DE102004061803 A DE 102004061803A DE 102004061803 A1 DE102004061803 A1 DE 102004061803A1
Authority
DE
Germany
Prior art keywords
code
data word
data
error
word
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.)
Withdrawn
Application number
DE102004061803A
Other languages
English (en)
Inventor
Eberhard Böhl
Michael Böhl
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102004061803A priority Critical patent/DE102004061803A1/de
Priority to PCT/EP2005/051557 priority patent/WO2005099153A1/de
Priority to JP2007506783A priority patent/JP2007533184A/ja
Priority to US11/578,199 priority patent/US20070234174A1/en
Priority to EP05731955A priority patent/EP1735936A2/de
Publication of DE102004061803A1 publication Critical patent/DE102004061803A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/21Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/31Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von codierten Daten in Form wenigstens eines Datenwortes über ein Kommunikationssystem, wobei zu dem wenigstens einen Datenwort ein Codedatenwort nach einer vorgebbaren Codiervorschrift ausgewählt wird, wobei die Daten als Bits, die zwei verschiedene Werte, Einsen und Nullen, annehmen können, dargestellt werden, wobei wenigstens eine laufende digitale Summe derart gebildet wird, dass eine aufsummierte Differenz der Gesamtzahl der Einsen und der Gesamtzahl der Nullen wenigstens über das Codedatenwort gebildet wird und diese laufende digitale Summe übertragen wird, wobei die laufende digitale Summe zum folgenden Codedatenwort bestimmt und mit der dann übertragenen verglichen wird, wobei bei Abweichung auf Fehler erkannt wird.

Description

  • Die Erfindung geht aus von einem Verfahren und einer Vorrichtung zur Fehlerbehandlung bei der Übertragung von codierten Daten in Form wenigstens eines Datenwortes über ein Kommunikationssystem mit wenigstens zwei Teilnehmern sowie einem entsprechenden Teilnehmer des Kommunikationssystems und einem entsprechenden Computerprogramm und Computerprogrammprodukt gemäß den Oberbegriffen der Ansprüche.
  • Codes für die Übertragung von Daten über ein Kommunikationssystem, insbesondere über serielle Busse unterscheiden sich, je nach dem Übertragungsmedium, der Bitrate und dem Erfordernis einer Taktrückgewinnung und der EMV-Kennwerte. Für die Übertragung von Daten mit bis zu 25 Mbits/s wurde zum Beispiel im MOST-System eine optische Übertragung vorgesehen, um die EMV-Verträglichkeit zu garantieren. Dabei sind elektrisch-optische Wandler aber sehr teuer und die benutzten Plastik-Optikfasern haben spezielle Anforderungen an die Verlegung in der Karosserie. Zu diesem Zweck sind die Signale im MOST-Bus nach dem Bi-Phase marc Code (Bi-Frequenz-Code) codiert. Jedes Informationsbit wird dabei durch zwei Codebits dargestellt. Haben beide Codebits den gleichen Wert, dann entspricht das dem Wert des Informationsbits 0. Durch unterschiedliche Werte der Codebits wird eine 1 dargestellt. Zusätzlich erfolgt nach den zwei Codebits immer ein Wechsel des Pegels, unabhängig von dem Informationswert:
    Codebits 00 10 10 11 00 11 01 01 ..
    Info-bits 0 1 1 0 0 0 1 1 ...
  • Dabei hat der Code im Verhältnis zu den Nutzbits 100%-ige Redundanz. Überträgt man aber eine solche Codebitfolge über elektrische Leitungen, so erfolgt wegen der häufigen Änderung des Pegels eine hohe EMV-Abstrahlung entsprechend der Bitrate (bei vorzugsweise Nullen) und der doppelten Bitrate (bei vorzugsweise Einsen). Für die Übergänge zwischen Einsen und Nullen ergeben sich im Frequenzspektrum auch andere Frequenzwerte, ohne aber die dominierenden zwei Frequenzen wesentlich zu dämpfen. Das kommt dadurch zu Stande, weil an den Bitgrenzen durch die Codevorschrift immer ein Pegelwechsel gefordert ist. Überträgt man die Daten ohne Redundanz, d.h. in einer Binär-Codierung mit den Wertigkeiten 1, 2, 4 , 8 usw., z.B. auch darstellbar in einer hexadezimalen Codierung (0x0 entspricht binär 0000 und 0xF entspricht binär 1111), so hat man den Nachteil, dass es zum einen nicht notwendig Pegelwechsel geben muss (ständig 0x0 oder 0xF) oder diese in einer ähnlichen Häufigkeit wie oben bei jedem Bit erfolgen, sofern ständig 0x5 oder 0xA gesendet wird. Da hier jedoch keine Code-Redundanz vorliegt, sondern alle Bits Informationsbits sind, kann die Übertragungsfrequenz auf den halben Wert gesenkt werden. Damit kann dieser verwendete Code aber nicht gleichstromfrei sein und bietet gleichzeitig nicht die Möglichkeit der Taktrückgewinnung mittels einer PLL (phase locked loop), da es keine vorgebbare maximale Bitanzahl ohne Pegelwechsel gibt. Eine PLL benötigt zur Einsynchronisierung mindestens aller n Bits einen Pegelwechsel. Damit zeigt der Code, wie soeben beschrieben, einige unerwünschte Nachteile.
  • Teilweise können die Nachteile durch Verwendung eines bekannten Blockcodes, wie beispielsweise in "A new 8B10B Blockcode for High Speed Data Transmission Over Unshielded Twisted Pair Channels", von Alistair Coles, Hewlett Packard, Oktober 1996, vermieden werden. Hierbei liegt die Coderedundanz bei 25%, da an Stelle der 8 Informationsbits 10 Codebits übertragen werden. Der Code ist im Durchschnitt gleichstromfrei, weil in Abhängigkeit von der Anzahl der übertragenen Einsen im Vergleich zu den Nullen (running digital sum – RDS) das Codewort entweder invertiert oder nichtinvertiert übertragen wird. Die maximale Anzahl gleicher Codebitwerte (maximum run length MRL) ist 17. Damit wäre prinzipiell noch ein Anschluss einer PLL zur Taktrückgewinnung möglich, wobei hier aber hohe Anforderungen an die Stabilität der PLL gestellt werden und die Einschwingzeiten erheblich länger werden.
  • Ein außerordentlicher Nachteil von den Blockcodes ist, dass es kein systematischer Code ist und somit keine Codiervorschrift wie zum Beispiel bei einem Hexadezimalcode mit einer Wertigkeitszuordnung der entsprechenden Codebits entsprechend ihrer Position gibt.
  • Das wirkt sich insbesondere bei der Realisierung eines Incrementers oder auch Vergleichers aus, weil zunächst, insbesondere beim Incrementer, das gesamte Codewort empfangen werden muss, der Codewert durch Decodieren mittels einer Tabelle ermittelt werden muss und für den um 1 erhöhten Codewert das entsprechende Codewort mittels Tabelle generiert wird, welches dann erst wieder ausgesendet werden kann, synchronisiert durch mindestens ein Flip-Flop. Für den oben genannten Blockcode ergibt sich damit eine Verzögerung von mindestens 11 Takten; bei der Abspeicherung der Codetabellen in synchronem RAM ergeben sich sogar mindestens 13 Takte Verzögerung.
  • Wie soeben dargestellt, zeigt der genannte Stand der Technik nicht in jeder Hinsicht optimale Eigenschaften.
  • Aufgaben und Vorteile der Erfindung
  • Insbesondere die Summe der Eigenschaften, dass der verwendete Code gleichstromfrei sein sollte und wegen der benötigten Taktrückgewinnung häufige Flanken enthalten sollte, sowie die Möglichkeit der seriellen Incrementierung bieten sollte, um die Netzwerkposition eines Knotens durch einfache Incrementierung eines speziellen Kontrollbytes zu erzeugen und ohne große Verzögerung weiter zu leiten. Dabei ist es insbesondere wünschenswert, eine elektrische Lösung zu finden, die deutlich geringere Kosten aufweist, d.h. insbesondere ohne die Notwendigkeit einer Abschirmung im Rahmen der EMV-Verträglichkeit eingesetzt werden kann.
  • Dabei sind die Codes zur Fehlerbehandlung, also zur Fehlererkennung und/oder Fehlerkorrektur je nach Mächtigkeit, insbesondere Mächtigkeit der Korrekturmöglichkeiten, mit einer unterschiedlichen Coderedundanz zu versehen, die es ermöglicht, Codewörter von Nicht-Codewörtern bzw. Nicht-Codedatenwörtern zu unterscheiden. Nicht-Codewörter sind dann eben die Codewörter, die nicht nach der Codiervorschrift, die zur Codierung der Daten vorgesehen ist, codiert wurden und sich von diesen unterscheiden lassen. Bei einem geringen Hammingabstand, also Fehlerabstand des empfangenen Nicht-Codewortes oder Nicht-Codedatenwortes zu genau einem Codedatenwort ermöglicht die unterschiedliche Coderedundanz, darauf zu schließen, dass es sich um das betreffende Codedatenwort handelt, welches auf der Übertragungsstrecke in beispielsweise einem Bit verfälscht wurde. Diese Korrekturmöglichkeit setzt voraus, dass alle Codewörter mindestens einen Hammingabstand von 2 zueinander haben, wenn Einzelbitfehler erkannt und mindestens einen Hammingabstand von 3 haben wenn Einzelfehler korrigiert werden sollen. Dabei ist es zunehmend schwierig, diese Bedingung einzuhalten, wenn zu einem Datenwort mehrere Codierungsmöglichkeiten bestehen, d. h. in Abhängigkeit von anderen Bedingungen entweder das eine oder das andere Codedatenwort gesendet wird.
  • Bei gleichbleibender Coderedundanz wird die Hammingdistanz entsprechend kleiner, wenn mehr Codedatenwörter benutzt werden. Die alternative Sendung von verschiedenen Codewörtern wird benötigt, wie bereits genannt, wenn beispielsweise ein Code im Mittel gleichstromfrei sein muss. Das ist beispielsweise bei unterschiedlichen Übertragungsmöglichkeiten über verschiedene Übertragungsmedien (elektrisch, optisch) erforderlich und möglich. Dabei wird dann zugelassen, dass zur Erzielung der Gleichstromfreiheit beispielsweise das invertierte Codedatenwort für das eigentliche Codedatenwort genau dann gesendet wird, wenn es die Anzahl der bisher gesendeten Einsen und Nullen bedingt durch die Darstellung der Daten als Bits (Eins oder Null) besser ausgleicht. Bei einem vollständig gleichstromfreien Code sollte die Anzahl der gesendeten Einsen und Nullen zu jeweils 50% aufgeteilt sein. Mit den erfindungsgemäßen alternativen Codewörtern erreicht man dies im Durchschnitt, insbesondere mit einem Codewort 1 und einem dazu inversen Codewort 2, wenn man sich die Differenz der bisher gesendeten Bitwerte merkt, insbesondere also eine laufende Summe bildet. Sind eben bisher mehr Einsen gesendet, wird man das Codedatenwort mit mehr Nullen auswählen oder umgekehrt.
  • Um nun eine Codeerkennung mit anschließender Codekorrektur zu ermöglichen, ist mindestens ein Hammingabstand von drei zwischen zwei beliebigen Codedatenwörtern erforderlich. Das setzt voraus, dass im Coderaum für n (n aus N) mögliche Codeworte 2n Nicht-Codedatenworte zur Verfügung stehen. Sollen nun m Datenworte (m aus N) übertragen werden, so muss n mindestens gleich 2m sein, um die alternative Codeauswahl zu ermöglichen. Es müssen demnach 2m Codedatenworte und 2 mal 2m Nicht-Codedatenworte im Coderaum genauso untergebracht werden, d. h. 6m Code- und Nicht-Codedatenworte so untergebracht werden, dass immer der Hammingabstand 3 zwischen zwei Codedatenworten gewährleistet ist. Wird nun zur Codierung eines Datenwortes, also zur Erzeugung eines Codedatenwortes mit k Bits (k aus N) zusätzlich eine Anzahl von 3 Bits zur Codierung verwendet, ergibt sich theoretisch die Möglichkeit, in dem 2(k+3) Coderaum diese Bedingungen zu erfüllen. Für ein Datenwort mit 4 Bits werden deshalb mindestens 75% Coderedundanz (3Bits) benötigt.
  • In der praktischen Durchführung scheitert man jedoch häufig an zusätzlichen Randbedingungen für die Codierung, wie z. B. für EMV-gerechte Codierung mit möglichst wenigem Bitwechseln/Pegelwechseln im Codedatenwort oder an den Codedatenwortgrenzen. Dadurch kann sich die Coderedundanz noch erhöhen. Auch kommen zu den Codedatenworten gegebenenfalls noch Steuercodeworte hinzu, die besondere Funktionen erfüllen und nicht mit Codedatenworten verwechselt werden dürfen. Deshalb sind Codes mit 100% Coderedundanz ebenfalls in der Anwendung, insbesondere bei kurzen Datenworten.
  • Die nachfolgend im Detail ausgeführte diese Überlegungen fortführende, erfindungsgemäße Lösung kann die oben genannten Nachteile des Standes der Technik vermeiden und gleichzeitig die geforderten Eigenschaften wenigstens für einen Teil der Daten bieten, insbesondere einen gewünschten vorgebbaren Hammingabstand zu erzielen (insbesondere Hammingabstand 2 oder 3) bei gleichzeitig deutlich geringerem Aufwand.
  • Um im Mittel gleichstromfrei zu übertragen, existiert eine erfindungsgemäße Vorschrift, die eine Auswahl des Codedatenwortes im Sender, insbesondere in dem ersten Teilnehmer vorschreibt. Wenn der Empfänger, insbesondere der zweite Teilnehmer, vorteilhafter Weise über die gleichen Informationen wie der Sender verfügt, ist es ihm auch möglich zu entscheiden, ob eine Invertierung des Codedatenwortes vorgenommen werden müsste oder nicht. Dazu muss dem Empfänger nur erfindungsgemäß mitgeteilt werden, unter welchen Bedingungen der Sender die Codierung vorgenommen hat. Geht man davon aus, dass der Empfänger nicht alle Daten des Senders empfangen hat, weil er bei einer kontinuierlichen Übertragung sich erst später dazugeschaltet hat oder im Falle einer Störung ein Teil der Daten verlorengegangen ist, so würde der Empfänger nicht über diese Information verfügen.
  • Kern der Erfindung ist deshalb eine Möglichkeit der Übertragung dieser Information zusätzlich zu den Daten insbesondere mittels Nicht-Codedatenwörtern.
  • Solche Nicht-Codedatenwörter werden üblicherweise benötigt, um z. B. den Beginn einer Übertragung zu kennzeichnen oder die Art der nachfolgenden Daten zu unterscheiden und bei einer kontinuierlichen Übertragung auch die Möglichkeit der Einsynchronisation der neu hinzugefügten Empfänger zu ermöglichen. So gibt es beispielsweise Bussysteme, also Kommunikationssysteme, bei denen die Daten in Rahmen, sogenannten Frames organisiert sind, die mit einer Präambel beginnen. Diese Präambel muss sich von den Codedatenworten unterscheiden. Wenn die Codierungskriterien für den Empfänger bekannt sind, braucht er nicht mehr alle Codedatenworte bei einer erforderlichen Fehlererkennung oder Fehlerkorrektur einzubeziehen, sondern nur noch die Hälfte. Damit ist zweckmäßiger Weise zwischen den verbleibenden Codeworten der geforderte Hammingabstand besser einzuhalten, ohne die Coderedundanz zu erhöhen.
  • Somit geht die Erfindung vorteilhafter Weise von einem Verfahren zur Fehlerbehandlung bei der Übertragung von codierten Daten in Form wenigstens eines Datenwortes über ein Kommunikationssystem mit wenigstens zwei Teilnehmern aus, wobei zu dem wenigstens einen Datenwort ein Codedatenwort nach einer vorgebbaren Codiervorschrift ausgewählt wird, wobei die Daten als Bits, die zwei verschiedene Werte, Einsen und Nullen annehmen können, dargestellt werden. Zweckmäßiger Weise wird dabei eine laufende digitale Summe, die sogenannte running digital sum RDS derart gebildet, dass eine aufsummierte Differenz der Gesamtzahl der Einsen und der Gesamtzahl der Nullen wenigstens über das Codedatenwort gebildet wird und diese laufende digitale Summe RDS vom ersten zum zweiten Teilnehmer übertragen wird, wobei der zweite Teilnehmer die laufende digitale Summe zum folgenden Codedatenwort des ersten Teilnehmers bestimmt und mit der dann übertragenen vergleicht, wobei bei Abweichung auf Fehler erkannt wird. D. h. es wird vorteilhafter Weise die Entscheidung für das aktuelle Codedatenwort von der aktuellen running digital sum rds abhängig gemacht. Durch die Übertragung ist dieser RDS Wert dem Empfänger, also insbesondere einem zweiten Teilnehmer bekannt, wodurch dann die Auswahl der möglichen Codedatenworte auf c.a. die Hälfte beschränkt werden kann. Es wird deshalb vorteilhafter Weise vorgesehen, die RDS insbesondere periodisch zu übermitteln und im Empfänger, also insbesondere im zweiten Teilnehmer auf dieser Basis weiter zu berechnen bis zur nächsten Aktualisierung. Dann kann erfindungsgemäß mit dem neu empfangenen RDS-Wert die Richtigkeit der bisherigen Codedatenworte respektive der schon vorgenommenen Datenkorrekturen bestätigt werden oder gegebenenfalls bei Abweichung auf Fehler erkannt werden.
  • Zweckmäßiger Weise werden neben den codierten Daten auch wenigstens ein Nicht-Codedatenwort zwischen dem ersten Teilnehmer und dem wenigstens zweiten Teilnehmer übertragen, welches nicht nach der vorgebbaren Codiervorschrift codiert ist und die laufende digitale Summe wenigstens als Teil des Nicht-Codedatenwortes übertragen wird.
  • Dabei wird zweckmäßiger Weise, wie oben genannt, ein Codewort oder Codedatenwort ausgewählt entsprechend der vorgebbaren Codiervorschrift, welches jeweils einem ersten oder zweiten Codedatenwort entspricht, die zueinander invertierte Codedatenworte darstellen.
  • Vorteilhafter Weise wird entsprechend der vorgebbaren Codiervorschrift das Codedatenwort aus mehreren, also wenigstens zwei verschiedenen Codedatenwortsätzen ausgewählt.
  • Vorteilhafter Weise wird bei Erkennen auf Fehler ein Fehlersignal des Teilnehmers erzeugt, der den Fehler erkannt hat und dieses Fehlersignal wenigstens zum Teilnehmer übertragen wird, von dem der Fehler übertragen wurde.
  • Als Fehlerreaktion werden zweckmäßiger Weise bei Erkennen auf Fehler die fehlerhaften Daten verworfen und der diese übertragende Teilnehmer erhält ein Anforderungssignal, diese Daten erneut zu senden.
  • Weiterhin vorteilhaft ist, dass neben den codierten Daten auch wenigstens ein Nicht-Codedatenwort zwischen dem ersten Teilnehmer und dem wenigstens zweiten Teilnehmer übertragen wird, welches nicht nach der vorgebbaren Codiervorschrift codiert ist und die laufende digitale Summe auch über das Nicht-Codedatenwort gebildet wird.
  • Weiterhin zweckmäßig wird erfindungsgemäß eine Korrektur des Fehlers vorgenommen, in dem abhängig von der laufenden digitalen Summe, also der running digital sum RDS die folgende RDS erneut ermittelt wird und abhängig davon die fehlerhaften Daten ersetzt werden.
  • Vorteilhafter Weise erfolgt abhängig von der Anzahl der Fehler eine Strategievorgabe zur Fehlerbehandlung. Dabei kann die Strategie neben der Fehlerkorrekturt auch vorsehen, unter vorgebbaren Voraussetzungen keine Fehlerkorrektur erfolgt oder aber dass eine Korrektur des Fehlers derart vorgenommen wird, indem das fehlerhafte Datenwort durch ein bestimmtes fesgelegtes Datenwort ersetzt wird.
  • Insbesondere vorteilhaft ist es, das erfindungsgemäße Verfahren im Rahmen eines Computerprogramms oder eines Computerprogrammprodukts mit Programmcode, der auf einem Datenträger gespeichert ist, darzustellen, wobei das Verfahren ausgeführt wird, wenn das Programm in einem computergestützten Kommunikationssystem, wie oben genannt, ausgeführt wird. Als Datenträger des Computerprogrammprodukts ist dabei jeder mögliche Datenträger einsetzbar, wie z.B. ROM, CD-ROM, EPROM, EEPROM, Flash-EPROM, PROM, DVD, Diskette, RAM, usw. D.h. die Wahl des Datenträgers hängt von Computersystem ab in dem das Verfahren ablaufen soll, hat aber keinerlei limitierenden Effekt bezüglich der Erfindung.
  • Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus der Beschreibung sowie den Merkmalen der Ansprüche.
  • Zeichnung
  • Die Erfindung wird im Weiteren anhand der in der Zeichnung dargestellten Figuren und der Tabelle näher erläutert. Dabei zeigt
  • 1 ein Kommunikationssystem mit Teilnehmern.
  • 2, 2a, 3 und 4 sowie 4a zeigen schematisch die Wandlung eines Eingangscodes in einen Ausgangscode mit Hilfe eines Codegenerators (2), Decodierer – „Pfeilrichtung umgekehrt"(2a), eines Incrementers (3) oder eines Komparators, also Vergleichers (4) sowie eine Arbitrierungseinheit mit Comparator (Vergleicher ) und Umschalteinheit (4a)
  • Ein erfindungsgemäßes serieller Incrementer ist in 5 dargestellt.
  • 6 zeigt einen erfindungsgemäßen seriellen Komparator oder Vergleicher.
  • 7 zeigt einen seriellen Sender als Schnittstelle des oder zum Kommunikationssystem(s).
  • Ein entsprechender serieller Empfänger ist in 8 dargestellt.
  • 9 zeigt noch einmal in den 9a und 9b einen Codegenerator mit alternativen Codedatenwörtern und deren Übertragung über eine Übertragungsstrecke sowie den entsprechenden Empfänger mit Decodierer und der Rückgewinnung der Zusatzinformation aus dem RDS.
  • 10 zeigt ein Beispiel für erfindungsgemäße Frames mit den unterschiedlichen Präambeln.
  • 11 schließlich zeigt noch einmal einen Decoder mit Fehlerkorrektur nach einer vorgebbaren Strategie und Anpassungsfähigkeit.
  • Tabelle 12 zeigt ein Beispiel für eine Codekorrekturvorschrift für eine partielle Korrektur bei geringer Coderedundanz.
  • Die Erfindung wird im weiteren anhand der Ausführungsbeispiele näher erläutert.
  • Ausführungsbeispiele
  • Dabei zeigt 1 Kommunikations- oder Bussystem 100 mit Eingangsschnittstellen 110, 108 und 112, also Empfängern oder Empfangsbausteinen und Ausgangsschnittstellen 109, 107, 111, also Sendern oder Sendebausteinen. Mit diesen Sendern und Empfängern sind Teilnehmer 101, 102 und 103 mittels des Kommunikationssystems 100 miteinander verbunden. Mit 106 ist eine Verarbeitungseinheit dargestellt, die entsprechend der Erfindung die Funktion der Codegenerierung und/oder Decodierung und/oder Incrementierung und/oder des Vergleichs, respektive der Arbitrierung ausführt. Mit 104 ist eine dem Kommunikationssystem 100 externe Einheit dargestellt, die uni- oder bidirektional über die Schnittstelle 105 mit einem Teilnehmer, insbesondere hier Teilnehmer 101, verbunden ist. Diese externe Einheit 104 steht stellvertretend für die Anbindung weiterer Geräte, Einheiten oder Elemente über Schnittstellen oder Bus- oder Kommunikationssysteme an einzelnen Teilnehmern.
  • Hierbei soll nun bei Übertragung der Daten über serielle Busse, also insbesondere das Kommunikationssystem 100, entsprechend der gestrichelten Übertragungspfeile bei der Übertragung der codierten Daten, insbesondere eine Incrementierung oder auch eine Arbitrierung, also ein Vergleich, erfolgen. Gleichermaßen ist es aber auch möglich, über einen externen Teilnehmer 104 Daten an den Teilnehmer 101 einzugeben und diese dann codiert, beispielsweise hier an den Teilnehmer 103, wieder entsprechend der gestrichelten Pfeile weiterzuleiten, oder auch codierte Daten vom Teilnehmer 102 an den Teilnehmer 101 zu empfangen und diese dann an einen externen Teilnehmer 104 decodiert weiter zu leiten.
  • Insbesondere soll aber auf dem Kommunikationssystem 100, hier beispielsweise von Teilnehmer 102 zu Teilnehmer 101 und dann zu Teilnehmer 103 eine Weiterleitung der codierten Daten, eben unter Einbeziehung von Incrementierung oder Vergleich, respektive Arbitrierung, erfolgen.
  • Bei Verwendung eines Bi-Frequenzcodes zur Codierung sind zur seriellen Incrementierung nur 2 Takte Verzögerung nötig, wenn man beispielsweise das niederwertigste Bit eines Datenwortes, also das LSB (Least Significant Bit) zuerst überträgt. Dabei ist nur notwendig zu wissen, welchen Wert der momentan empfangene Code-Bitwert und der vorherige haben, um den auszusendenden, also den weiter zu leitenden Wert des jeweiligen Bits zu bestimmen.
  • Es wird nun erfindungsgemäß vorgeschlagen, eine Codierung von zwei Informationsbits mit drei Codebits in folgender Weise vorzunehmen (Vorschrift 1):
    Figure 00100001
  • Damit wird hier mit einer Coderedundanz von 50% erreicht, dass die Codeworte 010 und 101 vermieden werden, wodurch der Einfluss der hohen Spektralanteile im Codewort verringert wird. Während den Informationsbits von links die Werte 21 bzw. 20 zugeordnet werden, sind die Gewichte aller Codebits 20. Zur Unterscheidung der Einzelbits im Code wird hier von links nach rechts die Nomenklatur 20(3), 20(2) bzw. 20(1) verwendet Entsprechend den nachfolgenden Vorschriften 2, 3 und 4. Damit ist eine systematische Codiervorschrift gegeben, die auch von jedem anderen Code ausgehend funktioniert. Hat man zum Beispiel eine one-hot Codierung, so sind die 4 Codeworte 0001, 0010, 0100 und 1000 ebenfalls den Werten 0, 1 ,2 und 3 zuordenbar, wie bei einem Graycode 00, 01, 11 und 10.
  • Aus einem Eingangscodewort oder Eingangsdatenwort EC2 entsprechend 2 ist damit immer eindeutig eine Codegenerierung durch den Codegenerator 200 CG in ein Ausgangscodewort oder Ausgangsdatenwort AC2 möglich. Gleichermaßen ist in 2a eine Decodierung eines Datenwortes EC2a in ein Datenwort AC2a durch den Decodierer DC 201 gezeigt. Dieser erfindungsgemäße Code eignet sich nun auch dafür, eine serielle Incrementierung durchzuführen, wie dies im Weiteren noch erläutert wird. Entsprechend der Vorschriften 2, 3 und 4 (nachfolgend) können nun diese Einzelbits im Code von links nach rechts entsprechend der die Nomenklatur 20(3), 20(2) bzw. 20(1) unterschieden werden, wobei der incrementierte Wert angegeben ist und entsprechend der Übertrag oder Overflow OF entsteht. Dieser generierte Übertrag oder Overflow OF wird bei einer seriellen Codierung benutzt, wie nachfolgend Vorschrift 5 oder dargestellt in 5. Vorschrift 2
    Figure 00110001
    Vorschrift 3:
    Figure 00110002
    Vorschrift 4:
    Figure 00110003
  • So wird aus einer Eingangsbitfolge oder eines Eingangsdatenwortes oder Eingangscodewortes EC3 gemäß 3 durch den Incrementer INC 300 eine Ausgangsfolge AC3 erzeugt. Dies ist auch gemäß 4 im Rahmen eines Vergleiches durch den Komparator COMP 400, insbesondere bei Arbitrierung aus der Eingangscodefolge oder des Eingangsdatenwortes EC4 in das Ausgangsdatenwort AC4 gemäß 4 möglich.
  • Der Wechsel von Incrementierung zu Arbitrierung erfolgt dabei in der Richtungsumschaltung, und zwar dahingehend, dass entweder das LSB, also das Least Significant Bit, das niedrigstwertige Bit, zuerst ausgewertet wird, wie dies für die Incrementierung erforderlich ist, oder, bei einem Wechsel der Senderichtung, das Most Significant Bit, MSB, also das höchstwertige Bit zuerst ausgewertet wird und somit zum Vergleich, insbesondere der Arbitrierung führt. Dies wird später noch anschaulich erläutert. Der Codegenerator in 2 CG 200 führt also eine Zuordnung nach Vorschrift 1 durch, der Incrementer nach 3 eine Zuordnung nach den Vorschriften 2, 3 und 4, wobei bei 2 aus dem Eingangscode EC2 der generierte erfindungsgemäße Ausgangscode AC2 erzeugt wird und in 3 aus dem schon codierten Eingangscode EC3 der incrementierte erfindungsgemäße Ausgangscode AC3.
  • Die serielle Incrementierung wird nun anhand 5 mit den jeweiligen Werten c oder u, x, y, z, w gemäß Vorschrift 5 näher erläutert: Vorschrift 5
    Figure 00120001
  • 5 zeigt den Incrementer 300 gemäß 3 mit einem Incrementierbaustein 306 INC, einem Incrementmittel 301 und einem Rückkoppelzweig, der ein Flip-Flop 305 enthält. Weitere Flip-Flops sind mit 302, 303 und 304 dargestellt. Diese Flip-Flops können durch beliebige taktgesteuerte Speicherelemente realisiert werden. In diesem Incrementer 300, also dem Incrementiermittel 301 mit Rückkopplung, wird nun zum einen eine Eingangsbitfolge EBF entsprechend eines Datenwortes oder Datenrahmens mit mehreren, wenigstens zwei, Datenworten, wie dargestellt, eingebracht, gleichzeitig der Übertrag, also Overflow OF, wie dargestellt, berücksichtigt und in eine erfindungsgemäße incrementierte Ausgangsbitfolge ABF oder Ausgangsdatenwort oder auch Ausgangsdatenrahmen gewandelt. Für die serielle Incrementierung des Codes ist zur Erzeugung des Codebits x immer die Information über das nächstfolgende Codebit y erforderlich, wenn man mit dem Least Significant Bit LSB, also dem niederwertigsten Bit der Bitfolge, die Übertragung beginnt. Der Code muss deshalb um mindestens einen Takt verzögert weitergeleitet werden. Zur Synchronisation der empfangenen und der zu sendenden Datenbitfolge wird vorteilhafter Weise jeweils am Eingang und Ausgang ein Flip-Flop, also 302 und 304 eingefügt. Die Incrementierung erfolgt für den Eingangsübertrag oder Overflow OF ist c, den Zwischenübertrag u, die Eingangsbits x und y nach Vorschrift 5 für das Ausgangsbit z sowie den generierten Zwischenübertrag w. Damit ist es nun möglich, auch größere Codewörter unter gegebenenfalls mehrfacher Ausnutzung der Vorschrift 1 für jeweils Teile des Codewortes zusammenzusetzen, oder auch Teile ohne weitere Codierung, eben die Informationsbits in Vorschrift 1, direkt einzufügen, wie dies in Vorschrift 6 näher erläutert ist. Vorschrift 6:
    Figure 00130001
    Figure 00140001
  • Gegenüber der Incrementierung eines Blockcodes (die, wie schon gezeigt wurde, seriell nicht möglich ist) ergibt sich mit der Anordnung nach 5 auch im Falle von Vorschrift 6 immer nur eine Verzögerung um 3 Takte, da beide Codeteile nacheinander verarbeitet werden. Der Code von Vorschrift 6 verarbeitet ein Halbbyte, also vier Informationsbit = 1 Nibbel als Informationswort. Die Coderedundanz beträgt 50%. Nachteilig ist hierbei allerdings, dass durch Aneinanderreihung der Werte 0 oder 7 größere Blöcke ohne Pegelwechsel entstehen können und der Code nicht gleichstromfrei ist.
  • Um dies zu beheben wird zunächst ein Code nach Vorschrift 7 gewählt, welcher nur 25% Coderedundanz aufweist, wenn man einen Teil des Originalcodes unverändert übernimmt. Vorschrift 7:
    Figure 00140002
  • Um den Code nach Vorschrift 7 gleichstromfrei zu gestalten, fügt man unterhalb des Least Significant Bit, also des niedrigwertigsten Bits, noch ein Invertierungsbit ein, das zunächst den Wert 0 hat. Die Invertierung des gesamten Codewortes, also einschließlich des Invertierungsbits), führt dann nicht zu einer Änderung des Wertes. Damit gibt es zwei Codeworte mit dem gleichen Wert, die mit unterschiedlichem Bitwert beginnen. Bei einer Folge von Nullen kann man dann abwechselnd das Codewort 000000 und 111111 senden. Damit erhält man eine vollständige Kompensation der Gleichstromanteile, also unterschiedliche Anzahl von Einsen und Nullen nach jeweils zwei Codeworten. Weiterhin liegt hier bei jedem Beginn eines Codewortes ein Pegelwechsel vor, der für eine Taktrückgewinnung mittels PLL genutzt werden kann. Damit ergibt sich nun, wie nachfolgend dargestellt, Vorschrift 8. Vorschrift 8:
    Figure 00150001
  • Vorschrift 9 nachfolgend zeigt nun alle Datenworte mit ihren zwei möglichen Varianten. Vorschrift 9 (für das Aussenden mit dem LSB zuerst):
    Figure 00160001
  • Vorschrift 9 stellt ein vorzugsweises Ausführungsbeispiel für die Aussendung des Codes mit dem LSB zuerst dar. Wird bei der Übertragung ständig die Anzahl der Einsen addiert und davon die Anzahl der Nullen subtrahiert, so erhält man die RDS, die running digital sum, die Aufschluss darüber gibt, ob mehr Einsen oder Nullen übertragen werden. Mit Codeworten, die eine unterschiedliche Anzahl von Einsen und Nullen enthalten, lässt sich damit die RDS durch die Wahl zwischen Codewort 1 und Codewort 2 beeinflussen. Günstigerweise versucht man den Wert RDS = 0 zu erreichen und damit den Code im Durchschnitt gleichstromfrei zu gestalten. Dabei sind aber auch geringe Abweichungen von dieser Regel möglich und denkbar, wenn man entweder zwischen den Codeworten einen Pegelwechsel erzwingen will, z.B. wegen der Taktrückgewinnung, also der PLL, oder aber vermeiden will, z.B. wegen des Frequenzspektrums.
  • Wird das Eingangscodewort nach Vorschrift 9 im Incrementer seriell incrementiert, also vom Wert her verändert, so kann es zu einer Änderung des RDS-Wertes nach dem incrementierten Datenwert gegenüber dem ursprünglichen Wert kommen. Für das zu sendende incrementierte Datenwort besteht dabei nicht die Möglichkeit, das inverse Codewort zu wählen, weil das Invertierungsbit schon gesendet werden muss, bevor das gesamte Codewort empfangen wurde. Eine Korrektur ist hier durch nachfolgende Nicht-Daten Kodeworte möglich, die zum Beispiel den Anfang eines Daten-Rahmens kennzeichnen, wenn eine Auswahl aus mehreren Werten mit unterschiedlichen RDS-Werten bei gleicher Bedeutung bezüglich der Rahmenkennzeichnung zulässig ist.
  • Der erfindungsgemäße Code kann aber auch für Arbitrierungszwecke, also Vergleichszwecke Verwendung finden. So ist der beschriebene Code, insbesondere nach Vorschrift 9, auch für Arbitrierungszwecke mit variablen Prioritäten einsetzbar. Dazu ist es erforderlich, mit dem Senden des höchstwertigen Bits, also des Most Significant Bits, zu beginnen, während für das Incrementieren, wie vorher erwähnt, mit dem Least Significant Bit, also dem LSB, dem niedrigstwertigen Bit, begonnen wird. Das Invertierungsbit wird jedoch auch dann zuerst übertragen (Vorschrift 10). Vorschrift 10 für das Senden mit dem MSB zuerst:
    Figure 00170001
  • Eine Schaltung zu diesem Vergleich oder Arbitrierung ist mit dem Komparator 400 gemäß 6 und 6a dargestellt. Darin ist ein Komparatorbaustein 401 bzw. 408 mit dem eigentlichen Komparator 405 bzw. 409 COMP dargestellt, wobei hier lediglich je zwei Flip-Flops 402, 403 bzw. 412, 413 für die Verögerung und Synchronisation der beiden zu vergleichenden Eingansbitfolgen erforderlich sind, die auch hier durch beliebige taktgesteuerte Speicherelemente darstellbar sind. Für die Arbitrierung des Codes ist zur Entscheidung über die Aussendung des Codebits x oder r in 6 oder 6a im allgemeinen Fall wieder die Information über das nächstfolgende Codebit y oder s erforderlich. Hier, wenn man mit der MSB, also dem Most Significant Bit die Übertragung beginnt. Auch hier muss der Code deshalb um mindestens einen Takt verzögert weitergeleitet werden. Zur Synchronisation der empfangenen und der zu sendenden Datenbitfolge wird auch hier vorteilhafter Weise jeweils am Eingang und Ausgang ein Flip-Flop 402 bzw. 412 und 404 eingefügt. Nach der erfindungsgemäßen Vorschrift wird hierbei nun aus den Eingangbits x und y bzw. r und s das Ausgangsbit z und somit die Auswahl der Eingangsbitfolge EBF bzw. EBF1 oder EBF2 und deren Umsetzung in die Ausgangsbitfolge ABF im Rahmen der Arbitrierung durchgeführt. Die Komparatorentscheidung bleibt dabei in 6a in dem Speicherelement 406 gespeichert, bis die Entscheidung mittels einer Steuereinheit 407 zurückgesetzt wird. Die einmal getroffene Komparatorentscheidung kann auch im folgenden Verlauf der Datenübertragung benutzt werden, um eine weitere Umschaltung zwischen den beiden Eingangsbitfolgen gezielt vorzunehmen. Dazu wird die aktuell getroffene Komparatorentscheidung an die Steuereinheit 407 übermittelt und dort gespeichert. Mit Hilfe dieser Information kann das Speicherelement 406 von 407 beliebig gesetzt und rückgesetzt werden. In 6a ist weiterhin ein Schalter bzw. Umschalteinheit S2 vorgesehen, der einen Wechsel zwischen den Eingangsbitfolgen EBF1 und EBF2 ermöglicht bei weiterer Abfolge wie eben zu 6 und 6a beschrieben.
  • 4a zeigt diesen Wechsel, diese Schaltung mittels Schalter bzw. Umschalteinheit S1 für zwei Eingangsdatenworte EC4 und EC5 für einen Vergleicher 401 gemäß 4 und einem Ausgangsdatenwort AC4.
  • Incrementieren und Arbitrieren schliessen sich gleichzeitig in einem Datenwort aus. Es kann aber im Rahmen der Umstände, unter denen entweder zu Arbitrieren oder zu Inkrementieren ist, ein Wechsel der Übertragungsreihenfolge oder Sendereihenfolge vorgenommen werden. Abhängig von der Senderichtung ergibt sich nun zu Vorschrift 9, dem vorzugsweisen Ausführungsbeispiel eben die LSB first und damit die Incrementierungsvariante oder die MSB first mit Vorschrift 10 und damit die Arbitrierungsvariante. Dabei sind nun die ersten beiden Bits des Datums entsprechend der Zweibit- in Dreibitcodierung umgesetzt und die zweiten Zweibit, also Bit 3 und 4 des Datums uncodiert übernommen. Gleichzeitig ist das Invertierungsbit, also das Bit, das anzeigt, ob es sich um die invertierte oder nicht invertierte Variante handelt, nach Vorschrift 9 als Least Significant Bit in Codewort 1 und Codewort 2, also ganz rechts, angefügt. Bezüglich der MSB-Seite stellt es sich nun ähnlich dar, so dass die ersten beiden Bit des Datums jeweils im mittleren Dreierblock in die Dreierbits codiert sind und die beiden letzten Bits des Codeworts 1 oder 2 einfach Bit 3 und 4 des Datums übernommen ist. Das die Invertierung anzeigende Bit ist hierbei allerdings als höchstwertiges Bit, MSB, jeweils links am Codewort 1 und Codewort 2 der MSB-Variante angefügt.
  • Als Beispiel eignet sich hier auch zur Darstellung wieder ein Bus, bei dem wie beim MOST-Bus die Daten in Rahmen fester Länge übertragen werden, wobei je nach Rahmen (Frame-) Position ein Wechsel der Übertragungsreihenfolge oder Senderichtung vorgenommen werden kann. Soll zum Beispiel das Senden einer Control-Frame-Information nach einer Priorisierung entschieden werden, indem die empfangene Priorität mit der eigenen Priorität verglichen wird, so ist es vorteilhaft, das MSB zuerst zu senden. Damit kann man wie in 6a gezeigt, eine unmittelbare Umschaltung vornehmen. Wenn dagegen die Netzwerkposition bestimmt werden soll und gleichzeitig (ohne Zwischenspeicherung) dem nachfolgenden Knoten übermittelt werden soll, dann muss das entsprechende Controlbyte mit dem LSB zuerst gsendet werden, um seriell incrementieren zu können (gemäss 5). Da die Control-Frame Information immer an einer festen Stelle im Datenrahmen, also dem Frame übertragen wird, bei MOST immer das 61. Und 62. Byte, wird hier vorteilhafterweise in Abhängigkeit vom Wortzähler oder Byte- bzw. Bitzähler innnerhalb eines Datenrahmens, also Zähler, die Übertragungsreihenfolge geändert.
  • Dabei ist grundsätzlich, also nicht nur für den MOST-Fall, zu beachten, dass erfindungsgemäß immer das Invertierungsbit zuerst gesendet wird, also unabhängig davon, ob mit dem LSB oder dem MSB begonnen wird.
  • Bezogen auf die vorgenannte Vorschrift 1, welche die günstigste systematische Lösungsvariante zur erfindungsgemäßen Codierung von zwei Informationsbits in drei Codebits hinsichtlich der EMV-Eigenschaften darstellt, sind auch nachfolgende Varianten für die Vorschrift 1 denkbar und möglich:
    Figure 00200001
  • Dabei besitzt die Codevorschrift nach 1d im Vergleich zu Vorschrift 1 die wenigsten Nachteile.
  • Entsprechend der bevorzugten Ausführungsvariante nach Vorschrift 1 respektive der daraus entwickelten Vorschriften 9 und 10 können nun besondere Sende- und Empfangsbausteine gemäß 7 und 8, also Sender und Empfänger, dargestellt werden. 7 zeigt einen seriellen Sender, bei dem paralleler Dateninput, PDI, also beispielweise nBit parallel in ein Register und Codegenerator 705 eingebracht werden. In diesem Beispiel ist n vorzugsweise 4. Mittels eines Schieberegisters 704, das k Bit aufnehmen kann, wobei hier k vorzugsweise 6 ist, kann dann eine Ausgangsbitfolge ABF auf das Kommunikationssystem 100 ausgegeben werden. Dabei enthält der Sendebaustein 700 nun optionale Elemente 701 bis 703, die noch erläutert werden. Wird beispielsweise bei der Umschaltung zwischen LSB und MSB first, also zwischen Incrementierung und Arbitrierung in Abhängigkeit von einem Wortzähler oder Zähler die Überragungsreihenfolge geändert, ist ein solcher Zähler 701 erforderlich. Gleichzeitig ist eine Kontrollschaltung 703 erforderlich, die insbesondere die Invertierungskontrolle, also die Vorgabe des Invertierungsbit entsprechend LSB und MSB gemäß Vorschrift 9 bzw. 10 steuert. Gleichzeitig kann eine Überwachung des RDS-Wertes, respektive Vorgabe, durch diese Schaltung 703 erfolgen. Block 702 dient zum Einsetzen von Nicht-Datenworten, die später noch erläutert werden. Ebenso kann in Block 703 noch die Funktion der D-Kontrolle implementiert sein, was auch später noch näher erläutert wird.
  • Entsprechend dem Sendebaustein 700 zeigt 8 mit 800 einen Empfangsbaustein oder seriellen Empfänger. Eine Eingangsbitfolge EBF wird einem Schieberegister 804 mit k Bit, auch hier vorzugsweise k = 6, in diesem Ausführungsbeispiel zugeführt. Mit 803 ist der entsprechende Decoderbaustein, insbesondere mit Register, dargestellt. Um eine parallele Bitfolge erfindungsgemäß, also PDO, beispielsweise n Bit mit n = 4 auszugeben, wird wieder vom der Umschaltung Gebrauch gemacht und beispielsweise in Abhängigkeit vom Wortzähler die Übertragungsreihenfolge geändert, ist auch hier dieser Zähler 801 optional eingesetzt. Block 802 dient wieder des Einsatzes der Nicht-Datenworte, also zur Codierung derselben, wodurch ein partielles Setzen des Zählers erfolgen kann, wie dies später noch erläutert wird. D.h. Sender und Empfänger gemäß 7 und 8 können erfindungsgemäß die vollständige Codierung bzw. Decodierung vornehmen.
  • Die schon angesprochenen Nicht-Datenworte in Zusammenhang mit den Elementen 702 und 802 werden nun näher erläutert. Der Coderaum für 6 Codebits lässt 26 = 64 verschiedene Möglichkeiten zu, von denen nach Vorschrift 9 nur 32 Daten-Codeworte zugeordnet sind. Für manche Anwendungsfälle ist es sinnvoll, einige nicht-Daten Codeworte oder nicht-Daten Worte mit weiteren Informationen, insbesondere mit Steuerinformationen, zu Steuerzwecken zu vereinbaren. Damit kann man zum Beispiel den Beginn einer Übertragung kennzeichnen oder andere Steuerfunktionen, wie zum Beispiel Übergang in einen anderen Betriebsmodus veranlassen, sowie die Übertragung von besonderer Folgeinformation einleiten. Diese nicht-Daten Codeworte können beispielsweise eine Blockpräambel oder eine Datenrahmenpräambel, also eine Frame-Präambel, sein. Beispiele hierfür sind in Tabelle 1 angegeben, wobei diese Tabelle nicht abschließend ist. Tabelle 1:
    Figure 00210001
  • Eine besondere Rolle bei den nicht-Daten Codeworten spielt die Bitfolge 010101 bzw. invertiert 101010. Diese Bitfolge wird zur Synchronisation verwendet und sollte nicht ungewollt, auch durch Kombination von zwei Datenworten hintereinander, entstehen. Ohne zusätzliche Bedingung entsteht die Folge nach Vorschrift 9 beispielsweise durch die Verbindung der Datenworte D (Codewort 1) nach 4, 5, 6 oder 7 (aus Codewort 1) : 111010 100xx0 bei einer Übertragung von LSB beginnend, wobei ein Pegelwechsel zwischen diesen beiden Datenworten durch die RDS-Vorschrift vorgesehen ist. Die Erzeugung dieses Bitmusters durch eine Kombination von Datencodeworten wird vermieden, wenn unter Missachtung der RDS-Vorschrift immer bei Übertragung eines D dafür gesorgt wird, dass kein Pegelwechsel stattfindet. Im obigen Beispiel nach Vorschrift 9 erhält man damit die Bitfolge 000101 100xx0 und die ausgewählte Bitfolge kann nicht entstehen. Dies kann unter Umständen kurzzeitig zur Erhöhung des Gleichstromanteils führen. Es ist aber ausgeschlossen, dass das mehrfache Aufeinanderfolgen der Aussenden von D zu einer ständigen Erhöhung von RDS führt, weil dann genau immer zwischen Codewort 1 und Codewort 2 entsprechend Vorschrift 9 gewechselt wird. Sorgt man darüber hinaus dafür, dass bei einem allen auf den Wert D folgenden Codeworte mit gleichgewichtiger Anzahl von Nullen und Einsen (7, 9, A, C und nicht-Daten Codeworte) immer ein Pegelwechsel stattfindet (so lange nicht ein ungleichgewichtiges Codewort diese Regel unterbricht), so wird die RDS auch bei danach nochmals gesendeten Datenwert D nicht aufsummiert, da dann das andere Codewort von D benutzbar ist und nach obiger Vorschrift auch zwingend eingesetzt wird. Eine spezielle Steuereinheit im Sender steuert die Aussendung des Datenwortes D, wie dies in 7 im Block 703 implementierbar ist. Eine weitere Vorschrift ist, dass bei RDS = 0 der RDS-Wert erhöht wird, so dass RDS nicht negativ nach Null wird und damit Eindeutigkeit gegeben ist.
  • Unter diesen Randbedingungen erlaubt die Übertragung des besonderen Codewortes 010101 und dessen Invertierung die Auslösung von speziellen Steuersignalen im Empfänger, die zu einem ausgewählten Systemzustand führen. Das kann zum Beispiel das Setzen eines Zählers im Empfänger sein, wie beispielsweise durch Block 802 im Zähler 801 in 8. Wenn nicht-Daten Codeworte oder nicht-Daten Worte nur an regelmäßigen Zeitpunkten erlaubt sind, da sie zum Beispiel den Beginn eines Daten-Rahmens mit konstanter Länge markieren, ist es auch sinnvoll alle anderen nicht-Daten Worte nur bei einem Vielfachen oder Bruchteil dieser Zeitpunkte zu erlauben. Dann kann man diese Codeworte nicht mit Datenworten verwechseln oder für Muster, die aus zwei aufeinanderfolgenden Datenworten gebildet werden und mit der Bitfolge des nicht-Daten-Codewortes übereinstimmen, nicht mit diesem speziellen Steuersignal verwechseln. Damit ist auch eine eingeschränkte Möglichkeit der Fehlererkennung realisierbar. Außer den gezeigten Codevarianten mit Vorzugsvarianten nach den Vorschriften 9 oder 10 sind weitere Komponenten oder Zusammensetzungen von Vorschrift 1, also eine Mehrfachverwendung dieser Vorschrift und direkter Binärcodierung, ebenfalls mehrfach möglich. Der Code der vorzugsweisen Ausführungsbeispiele vermeidet das einsame Spektrum einer Bi-Phase marc Codierung. Er ist im Durchschnitt gleichstromfrei und hat eine maximale run length von ca. 9, wenn man keine nachträglichen Datenänderungen durch Incrementierung berücksichtigt. Diese Datenänderuingen kann man aber durch nachfolgende Nicht-Daten Codeworte wieder kompensieren. Vorzugsweise nicht-Daten Codeworte sind beispielsweise entsprechend der Tabelle 101010, 001110, 001100, 011110, 011100 sowie die dazu inversen Werte, aber auch alle anderen nicht-Daten Worte sind prinzipiell einsetzbar.
  • Die Vorschriften zur Vermeidung der Bitfolge 101010 durch Zusammensetzen von codierten Datenwörtern gemäß Ausführungsbeispiel der Vorschrift 9 sind bei einer Umschaltung von Incrementierung und Arbitrierung entsprechend anzupassen:
    Wird von LSB-first auf MSB-first gewechselt, ergibt sich keine Vorschrift bezüglich Invertierung, außer Reduzierung des RDS-Wertes im Betrag.
  • Zwischen zwei MSB -first Werten muss ein Pegelwechsel (anstelle vor „D") nach dem Hexadezimalwert „A" vermieden werden.
  • Für alle gleichgewichtigen Codeworte nach einem „A" gibt es hier keine Vorschrift, da „A" selbst gleichgewichtig ist (keine RDS-Wert-Veränderung mit A, womit keine Vorschrift für mittelbar aufeinanderfolgende „A"s erforderlich ist.
  • Für einen Übergang von MSB-first zu LSB-first ist ein Pegelwechsel generell zu verhindern, sofern die letzten 3 Bits alternierend waren (nach 2, 6, A, D).
  • Für ein folgendes „D" gelten die gleichen Bedingungen wie sonst, also kein Pegelwechsel.
  • Zur Fehlererkennung und Fehlerkorrektur wird nun erfindungsgemäß die Entscheidung für das aktuelle Codedatenwort von der aktuellen running digital sum RDS, also der laufenden digitalen Summe abhängig gemacht. Wenn dieser Wert dem Empfänger, insbesondere dem zweiten Teilnehmer bekannt wäre, dann kannn wie gesagt die Auswahl der möglichen Codedatenworte auf ca. die Hälfte beschränkt werden. Es wird deshalb erfindungsgemäß vorgesehen, die RDS insbesondere periodisch zu übermitteln und diese in dem Empfänger auf dieser Basis weiter zu berechnen bis zur nächsten Aktualisierung. Dann könnte auch mit dem neu empfangenen RDS-Wert die Richtigkeit der bisherigen Daten und/oder Datenkorrekturen bestätigt werden oder gegebenenfalls ein Fehlersignal generiert werden, das die Richtigkeit der vorangegangenen Daten in Frage stellt. Diese Daten, die dann als fehlerhaft erkannt werden, können dann nochmals überprüft oder auch verworfen werden mit der Anforderung an die nochmalige Sendung der Daten vom Sender, also insbesondere dem ersten Teilnehmer. Legt man z. B. einen Code für die EMV-reduzierte elektrische Übertragung zu Grunde, wie er in der bereits genannten Vorschrift 9 beschrieben ist, ergeben sich die Möglichkeiten für Informationsbits Codewort 1, Codewort 2 und Wertzuordnung (hexadezimal), wie bereits zu Vorschrift 9 beschrieben. Dieser Code der Vorschrift 9 hat eine Coderedundanz von 50% und ist ohne zusätzliche Information über die RDS nicht in der Lage, Fehler zu korrigieren. Im Gegenteil können Einzelbitfehler hier schon zu einem anderen Codewort führen. Nimmt man z. B. das Codewort 1 des Hexadezimalwertes C mit 111000 und verfälscht lediglich das letzte Bit, so erhält man das Codewort 2 des Hexadezimalwertes 3 mit 111001. Entsprechend ergeben sich hier folgende Nachbarschaftsbeziehungen zwischen Codedatenworten:
    Figure 00240001
  • Das hätte zur Folge, wenn gerade das letzte Codebit verfälscht würde, das mit einer massiven Änderung des Wertes ohne Fehlererkennungsmöglichkeit gerechnet werden muss, sofern man nicht die erfindungsgemäße Übertragung der Zusatzinformation gewährleistet.
  • 9a zeigt noch einmal symbolisch in einem Block 900 einen Codegenerator mit alternativen Codewörtern und geringer Coderedundanz, aber verschiedenen Nicht-Codedatenwörtern. Mit 901 ist eine Übertragungsstrecke ohne zusätzliche Ressourcen (Leitungen/Daten) dargestellt: Die Information wird durch Wahl der alternativen Steuerworte übermittelt. Block 902 schließlich zeigt den Empfänger mit Decodierer, welcher die Information, also die RDS über die Codegeneratorentscheidungskriterien zurückgewinnt, insbesonderen aus den Nicht-Codedatenworten bzw. den Steuerworten, wodurch die Codedatenwortauswahl aus der Teilmenge der gesamten Codedatenworte möglich wird, um eine Fehlererkennung und Fehlerkorrektur durchzuführen.
  • In 9b ist dies noch einmal detaillierter dargestellt. Darin sind wieder mit 900 der Codegenerator, mit 902 der Empfänger mit Decodierer und mit 901 die Übertragungsstrecke dargestellt, wobei zusätzlich im Codegenerator 900 verschiedene alternative Codewortdatensätze 903 bis 905 dargestellt sind, welche die Codedatenwortsätze 1, 2 bis n repräsentieren. Mit 906 ist der eigentliche Codierer dargestellt und mit Block 907 die Auswerte- respektive Generierungseinheit für die Zusatzinformation, eben den RDS-Wert, durch welchen dann ein bestimmter Codedatenwortsatz und daraus ein bestimmtes Codedatenwort über einen Auswahlbaustein 908 auswählbar ist.
  • Analog ist nun der Empfänger 902 mit Decodierer aufgebaut, in dem ebenfalls die alternativen Codedatenwortsätze 1, 2 bis n mit 909, 910 und 911 dargestellt sind und über den Auswerte- oder Rückgewinnungsbaustein 912 Zusatzinformation aus dem RDS-Wert, insbesondere aus dem Nicht-Codedatenwort ermittelt wird und somit insbesondere zur Korrektur des Fehlers ein korrektes Codedatenwort aus den entsprechenden Codedatenwortsätzen über den Auswahlbaustein 913 ausgewählt wird. Der eigentliche Decoder ist mit 914 dargestellt.
  • Werden nun die Daten über die Übertragungsstrecke im Rahmen entsprechend 10 und 10a, also Frames zu je i-Bytes übertragen, wobei i beispielsweise 1, 8, 16, 32, und vorzugsweise 64, 128, 256 usw. ist und jeder Rahmen, also Frame mit einer Präambel FP beginnt, die insbesondere ein Nicht-Codedatenwort darstellt, ergeben sich folgende Möglichkeiten: Eine besonders ausgezeichnete Präambel, eben die Rahmenpräambel FP hat die Aufgabe, zur ersten Synchronisation mit dem Frame- oder Rahmensystem und darf deshalb nicht mit einer Kombination von Daten erzielt werden. Diese reservierte Präambel hat beispielsweise den Code 101010 oder 010101. Da diese Präambel mit ihren ständigen Wechseln von Bitwerten bei der elektrischen Übertragung eine hohe EMV-Aktivität verursacht, kann diese vorteilhaft auch insbesondere nicht für jeden Frame, sondern beispielsweise nur nach einer festen Anzahl von Frames, z. B. zu Beginn eines Blocks aus j Frames F1, F2, Fj (j beispielsweise 1, 8, vorzugsweise 16, 32, 64 usw.) benutzt werden. Erst wenn diese Präambel einmal erkannt wurde, stellen sich interne Zähler im Empfänger so ein, dass genau bekannt ist, wann ein Frame und auch ein Block beginnt. Am Beginn der Blockpräambel BP ist ein Bitwechsel zu vermeiden, um eine exakte Einsynchronisation zu gewährleisten. Da nach dem ersten Einsynchronisieren bekannt ist, wann ein neuer Frame beginnt, wird die Frame-Präambel FP schon erwartet und kann entsprechend decodiert werden, ohne mit einem Datenwort oder mit einer Kombination von Teilen zweier nacheinander gesendeter Datenworte verwechselt zu werden. Die Frame-Präambel braucht deshalb nicht dem Anspruch zu genügen, nicht im Datenmuster aufzutauchen. Als Frame-Präambel wird deshalb zunächst der folgende Code vorgeschlagen: 101110 und/oder 010001. Dieser Wert sollte genau dann als Präambel gesendet werden, wenn RDS gleich Null ist. Da die obigen Datencodeworte eine gerade Bit-Anzahl (speziell hier 6) haben, kommt mit jeder Übertragung eines Datenworts entweder 0, 2, 4 bzw. 6 zum RDS-Wert dazu oder der RDS-Wert wird um diesen Wert vermindert. Es kann somit maximal der Betragswert 8 (+/–8) auftreten, und der RDS-Wert kann nicht ungerade werden. Weitere Frame-Präambeln geben an, wie der RDS-Wert des Senders vor dem Senden der Präambel war:
    Figure 00260001
  • Alle Präambeln mit RDS-Information sollten voneinander den Hammingabstand von mindestens 2 haben, um einen Einzelbitfehler in der Präambel erkennen zu können. Das ist notwendig, weil bei der Übermittlung des RDS-Wertes ein Fehler sich auf die nachfolgenden Korrekturen auswirkt. Weiterhin sollte bei RDS = 0 beispielsweise immer ein positives RDS oder 0 folgen, wobei das hier einer willkürlichen Codevorschrift als beispiel zur Eindeutigkeitserzielung entspricht. Daneben können weitere Präambel angewendet werden, wie beispielsweise:
    Figure 00260002
  • Wenn nun aufgrund der RDS-Information ein RDS-Zähler gestellt wird und in den folgenden Datenworten ein Nicht-Codedatenwort gefunden wird, so kann leicht entsprechend der Codevorschrift bestimmt werden, ob es ein Codewort 1 oder ein Codewort 2 sein muss, d. h. entsprechend Vorschrift 9 ist das least significant bit LSB bestimmt. Alternativ funktioniert dieses natürlich ebenso für Vorschrift 10, so dass dann das most significant bit MSB bestimmt ist. D.h. das anhand Vorschrift 9 dargestellte Verfahren funktioniert natürlich analog für Vorschrift 10 und ist aus Aufwandsgründen nicht nochmals explizit dargestellt.
  • Bei Erhöhung des zu spendierenden Aufwands kann nun erfindungsgemäß eine weitere Verbesserung erzielt werden, weil z.B. in dem Code der Vorschrift 9 aber nun beispielsweise nicht alle Einzelbitfehler, selbst wenn die genannte Fehlerkorrekturinformationsübermittlung mittels RDS durchgeführt wird, berücksichtigt werden können. Es wird immer Fehlermöglichkeiten geben über den bereits beschriebenen Fall hinaus. So ist z.B. für manche Codewörter ein Fehler nicht erkennbar, wenn zwei Datenworte sich nur in einem Bit unterscheiden, also ein Hammingabstand von 1 auftritt. Das ist z. B. der Fall für eine Veränderung der Bits 1 oder 2. Es ändert sich so z. B. der Datenwert 0 in den Datenwert 2 durch einen Fehler im Bit 2 des Codewortes 1 gemäß Vorschrift 9.
  • Um eine vollständige Korrekturmöglichkeit zu bieten, müsste dann die Coderedundanz soweit erhöht werden, dass alle Datenworte zueinander mindestens den Hammingabstand 3 besitzen. Dazu wären mehr Codebits bei entsprechend erhöhter Frequenz zu übertragen, um den gleichen Informationsgehalt pro Zeiteinheit zu gewährleisten.
  • So ist nun im Rahmen einer Weiterentwicklung nach einer Möglichkeit zu suchen, bei nicht erhöhter Coderedundanz eine sichere Erkennung oder auch Korrektur vorzunehmen. Je nach Anwendung kann dabei auch eine Korrektur vorgenommen werden, die nicht eindeutig ist. Bei einer Vielzahl möglicher Korrekturworte sollte nach einer vorgebbaren Strategie entschieden werden, welches der möglichen Codeworte ausgewählt wird, oder ob z. B. auch ein Kompromiss gefunden wird, der keines der möglichen Codeworte auswählt und stattdessen der arithmetische Mittelwert der Werte aller möglichen Codeworte benutzt wird. Eine nicht eindeutige Zuordnung bei der Korrektur muss dabei signalisiert werden, und Bestandteil der Strategie ist auch, dass die Korrektur verhindert werden kann. Das kann durch Wahl einer Option erfolgen oder auch automatisch, wenn zu viele Korrekturen bisher schon vorgenommen wurden.
  • Damit soll erfindungsgemäß weiterhin die Fehlererkennung im Rahmen zer Weiterentwicklung differenziert gehandhabt werden, und zwar in mehreren Stufen:
    • (0) Es liegt kein Fehler vor oder ist ist zumindest kein Fehler erkennbar.
    • (1) Fehlererkennung und Korrektur sind auf einen eindeutigen Wert möglich (gemäß Hamming).
    • (2) Es liegen mehrere Codeworte vor, die sich um genau 1 Bit von dem empfangenen Bitmuster unterscheiden und gleichzeitig die Bedingungen bezüglich der RDS und den genannten Pegelwechsel erfüllen. In diesem Fall (2) erfolgt die Korrektur nach einer wählbaren Strategie, wie beispielsweise – minimaler Wert der möglichen Codeworte – maximaler Wert der möglichen Codeworte – arithmetisches Mittel aus den möglichen Codeworten (Ergebnis muss nicht zwangsläufig mit dem empfangenen Bitmuster korrelieren) – Interpolation der Datenwerte (Zusammenhang mit vorher bereits empfangenen Werten) – Impulsunterdrückung (Störung im Bitmuster ausblenden, beispielsweise durch Tiefpassfunktion) – Flankenverschiebung für Bitmuster mit jeweils mehr als einem konstanten Bitwert (Ausgleich von Tiefbass- oder Hochbassverhalten der Übertragungsstrecke) – Impulsgenerierung als Ausgleich des Tiefpasscharakters der Übertragungsstrecke – Keine Korrektur, sondern Signalisierung eines Fehlers und Senden eines festen vorgegebenen Datenwertes, beispielsweise 0.
    • (3) Fehlererkennung ohne Korrekturmöglichkeit, z. B. Mehrfachbitfehler (Signalisierung des Fehlers gegebenenfalls differenziert zu Punkt 2) und Senden eines vorgegebenen Datenwertes (z. B. 0) oder eines Wertes, der dem empfangenen Wert ohne Beachtung des RDS-Wertes bzw. der Pegeländerungsvorschrift nahekommt.
  • Im Punkt (0) liegt kein Fehler vor oder ein Fehler, z. B. Einzel- oder Mehrfachbitfehler ist nicht erkennbar, weil ein anderes Datencodewort entsteht.
  • Im Punkt (1) wird ein Fehler erkannt, und es gibt genau ein Codewort, das durch Änderung von einem Bit aus dem empfangenen Wort entsteht (nur ein Codewort innerhalb der Hammingdistanz 1).
  • Im Punkt (2) gibt es mehrere Datencodeworte, die der Hammingdistanz 1 zu dem empfangenen Wort entsprechen. Aus diesem Satz der möglichen Codeworte wird ein Wert gemäß einer wählbaren Strategie ausgesucht. Zu beachten ist z. B. die Interpolation: Es ist beispielsweise sinnvoll, wenn man die Signaleigenschaften eines Signals kennt und beispielsweise bei Sensorsignalen oder auch Audiosignalen weiß, dass sich nur in einem begrenzten Umfang von Sensorwert zu Sensorwert oder von Abtastwert zu Abtastwert gemäß Grenzfrequenz Änderungen ergeben können.
  • Dazu ist im Fehlerfall ein Abspeichern der aktuellen Decodierungsbedingungen sinnvoll und eine Nachbehandlung des Wertes, z. B. mittels Interrupt an den Controller gemäß 11 möglich. Auch sollten die Anzahl und Art der Korrekturen gespeichert werden und gegebenenfalls beim Übersteigen einer vorgebbaren Anzahl von solchen Korrekturen keine weitere Korrektur gemäß Punkt (2) durchgeführt werden. Dieser Fehlerspeicher kann ganz oder teilweise gelöscht werden, sobald eine neue RDS-Information übertragen wird, gegebenenfalls auch nur dann, wenn bei dem Vergleich der intern berechneten RDS-Information mit dem neu empfangenen Wert keine oder zumindest keine große Abweichung festgestellt wird. Die Fehlerkorrektur kann damit einen adaptiven Charakter annehmen. Die Änderung der Strategie ist aber auch beliebig anders möglich und jederzeit durch den Anwender beeinflussbar. So kann z. B. auch in einer Lernphase unter realistischen Umgebungsbedingungen die beste Korrekturmöglichkeit selbst ermittelt werden.
  • Die Strategie sollte insbesondere dann auf Signalisierung eines Fehlers geändert werden, wenn ein oder gar mehrere Mehrfachbitfehler aufgetreten sind. Dann kann man sich auf den im Empfänger berechneten RDS-Wert nicht mehr verlassen. Die Fehlerkorrektur nach Punkt (2) kann dann ausgesetzt werden, eben zumindest bis wieder ein neuer aktueller RDS-Wert empfangen wurde und keine neuen Mehrfachfehler detektiert werden.
  • Nicht erkannte Einzelbitfehler in den oberen drei Bits bewirken eine Wertänderung von maximal 25% des Wertebereichs. Änderungen des LSB können eine totale Wertänderung von 1 auf F bewirken. Das ist ausgeschlossen, wenn die Zusatzinformation, also RDS zur Decodierung verfügbar ist und die entsprechenden Codierungsbedingungen vorliegen, also Fehlerkorrekturinfomationsübermittlung durch RDS-Übertragung. In Verbindung mit der beschriebenen RDS-Übermittlung kann in manchen Fällen auch entschieden werden, in welche Richtung eine Korrektur erfolgen muss. Damit kann es zu einer eindeutigen Korrektur kommen.
  • Folgende Einzelbitfehler werden bei Nichtcodedatenworten sicher festgestellt und sind korrigierbar:
    • – Fehler im Bit 5 (MSB), sofern Bit 4 aktiv ist.
    • – Fehler im Bit 4 (zweithöchstes Bit), sofern Bit 5 nicht aktiv ist.
    • – Fehler im Bit 3 (dritthöchstes Bit), sofern Bit 4 nicht aktiv ist.
  • Aktiv bedeutet hierbei „1" im Codewort 1 und „0" im Codewort 2.
  • Alle anderen Einzelbitänderungen können nicht entdeckt oder korrigiert werden, wenn man nur ein Codewort betrachtet. Setzt man jedoch voraus, dass die Codegenerierungsvorschrift genau bekannt ist, so kann man auch aus der Information über den Pegelwechsel an der Wortgrenze im Zusammenhang mit der RDS-Information eine Korrektur vornehmen. Dabei muss nach Codevorschrift ein Pegelwechsel nach einem Datenwort D immer dann stattfinden, wenn ein gleichgewichtiges Codewort gesendet wird. Das trifft auch zu, wenn mehrere gleichgewichtige Datenworte nach D aufeinander folgen. Dadurch wird ein Aufsummieren der RDS durch mehrere Datenworte D (mittelbar oder unmittelbar) nacheinander verhindert. Bei allen anderen Datenworten wird der Pegelwechsel durch die RDS-Information geregelt.
  • Bei RDS = 0 darf durch das Codewort kein negativer Wert für RDS entstehen, sondern ein möglichst minimaler positiver Wert. Trotz der geringen Coderedundanz sind damit weitere Korrekturen oder Hinweise auf Änderungen bei Einzelbitfehlern möglich. Bei jeder Korrektur eines gültigen Codewortes in ein anderes wird zusätzlich eine Fehlerinformation übertragen. Mit einer zusätzlich Option könnten die damit verbundenen Korrekturen verhindert werden. Es wird dann nur die Information auf einen Fehler ausgegeben. Alle Korrekturen haben höchsten 25% Änderung des Wertebereichs des Datenwortes zur Folge.
  • Bei einem Mehrfachfehler wird z.B. ein fester vorgegebener Wert gesendet (und Interrupt). Bei der Möglichkeit der Entscheidung unter mehreren Datenworten entscheidet die Strategie. Wechsel der Strategie ist durch den Fehlerzähler in 11 möglich. Dann wird ggf. auch eine Korrektur verhindert, also keine Korrektur durchgeführt, sondern ein fester Wert genommen. Der Zähler in 11 wird durch Aktualisierung des RDS Wertes zurückgesetzt. 11 zeigt dazu nochmals den Empfänger 902 mit Decodierer 914 und Übertragungsstrecke 901 in symbolischer Darstellung mit Ablaufvorgang.
  • Zunächst wird die RDS Information isbesondere aus dem Nicht-Codedatenwort (bzw. Steuerwort) extrahiert. RDS wird über Block 915 und Block 916 (entspricht Block 912 in 9b) mit der ermittelten RDS Information verglichen. Incremet/Decrement wird dabei laufend durchgeführt. Anschließend erfolgt eine periodische Aktualisierung mit Vergleich (Block 916). Ist das Datenwort einschließlich RDS fehlerfrei (Block 917) wird das Datenwort ausgegeben. Ansonsten gelangt man zur Fehlerkorrektur 918 aus der ein korrigiertes Datenwort oder eine festes Datenwort (vgl. auch Tabelle 12) hervorgeht. Im Falle das keine Korrektur möglich ist erfolgt eine Unterbrechung (Interrupt 919) insbesondere mit Signalisierung, dass keine Korrektur möglich und Fehleranzeige. Bei fehlerhaftem Vergleich der RDS wird ebenfalls ein Interrupt generiert, insbesondere mit Fehleranzeige (920). Mittels Fehlerzähler 921 kann dann die besagte Strategievorgabe in Block 922 aus der Anwendung mit Anpassungs- oder Adaptionsmöglichkeit erfolgen. Schließlich wird bei RDS Aktualisierung der Fehlerzähler 921 zurückgesetzt (reset) wie bereits oben beschrieben.
  • Dazu wird abschließend in Tabelle 12 eine Codekorrekturvorschrift als Beispiel für eine partielle Korrektur bei geringer Coderedundanz beschrieben.
  • Dabei bedeuten:
  • MF:
    Mehrfachbitfehler gemäss Punkt (3) liegt vor (Fehler erkannt, aber im allgemeinen keine Korrekturmöglichkeit)
    OK:
    Kein Fehler erkennbar (Punkt (0))
    PV:
    Pegelwechsel vorgesehen für gleichgewichtiges Codewort (unmittelbar oder mittelbar nach D)
    PE:
    Pegelwechsel liegt vor: aktuelles LSB ungleich Letzter Bitwert (last bit value)
    X.1:
    Codewort 1 für Datenwort X (z.B. D.1 für D, C.1 für C, 5.1 für 5 usw)
    X.2:
    Codewort 2 für Datenwort X ( z.B. F.2 für F, E.2 für E, 6.2 für 6 usw)
    n.d.:
    kein Datencodewort, also Nicht-Codedatenwort: An Stelle einer Präambel gelten besondere Bedingungen
  • Bei einigen Bitwerten ist ein Fehler in einem der Werte möglich (Korrektur nach Punkt (2) oder Punkt (1))
  • Nachfolgend werden die Spalten in Tabelle 12 beschrieben:
    • 1. Spalte: alle Codeworte
    • 2 Spalte: Bedeutung als Datenwort (Codedatenwort) oder Nichtdatenwort (nicht-Codedatenwort)
    • 3. Spalte: Bedingung war hier rds <= 0, für gleichgewichtiges Codewort ist Pegelwechsel vorgeschrieben (PV), es liegt ein Pegelwechsel vor (PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 4. Spalte: Bedingung war hier rds <= 0, für gleichgewichtiges Codewort ist Pegelwechsel vorgeschrieben (PV), es liegt kein Pegelwechsel vor (/PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 5. Spalte: Bedingung war hier rds <= 0, für gleichgewichtiges Codewort ist kein Pegelwechsel vorgeschrieben (/PV), es liegt ein Pegelwechsel vor (PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 6. Spalte: Bedingung war hier rds <= 0, für gleichgewichtiges Codewort ist kein Pegelwechsel vorgeschrieben (/PV), es liegt kein Pegelwechsel vor (/PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 7. Spalte: Bedingung war hier rds > 0, für gleichgewichtiges Codewort ist Pegelwechsel vorgeschrieben (PV), es liegt ein Pegelwechsel vor (PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 8. Spalte: Bedingung war hier rds > 0, für gleichgewichtiges Codewort ist Pegelwechsel vorgeschrieben (PV), es liegt kein Pegelwechsel vor (/PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 9. Spalte: Bedingung war hier rds > 0, für gleichgewichtiges Codewort ist kein Pegelwechsel vorgeschrieben (/PV), es liegt ein Pegelwechsel vor (PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)
    • 10. Spalte: Bedingung war hier rds > 0, für gleichgewichtiges Codewort ist kein Pegelwechsel vorgeschrieben (/PV), es liegt kein Pegelwechsel vor (/PE), Korrekturmöglichkeit auf angegebene Codeworte (oder OK, MF)

Claims (15)

  1. Verfahren zur Fehlerbehandlung bei der Übertragung von codierten Daten in Form wenigstens eines Datenwortes über ein Kommunikationssystem, wobei zu dem wenigstens einen Datenwort ein Codedatenwort nach einer vorgebbaren Codiervorschrift ausgewählt wird, wobei die Daten als Bits, die zwei verschiedene Werte, Einsen und Nullen, annehmen können dargestellt werden, dadurch gekennzeichnet, dass wenigstens eine laufende digitale Summe derart gebildet wird, dass eine aufsummierte Differenz der Gesamtzahl der Einsen und der Gesamtzahl der Nullen wenigstens über das Codedatenwort gebildet wird und diese laufende digitale Summe übertragen wird, wobei die laufende digitale Summe zum folgenden Codedatenwort bestimmt und mit der dann übertragenen verglichen wird, wobei bei Abweichung auf Fehler erkannt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass neben den codierten Daten auch wenigstens ein Nicht-Codedatenwort zwischen dem ersten Teilnehmer und dem wenigstens zweiten Teilnehmer übertragen wird, welches nicht nach der vorgebbaren Codiervorschrift codiert ist und die laufende digitale Summe wenigstens als Teil des Nicht-Codedatenwortes übertragen wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das nach der vorgebbaren Codiervorschrift ausgewählte Codewort jeweils einem ersten oder zweiten Codewort entspricht die zueinander invertierte Codewörter darstellen.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das nach der vorgebbaren Codiervorschrift ausgewählte Codewort aus wenigstens zwei verschiedenen Codewortsätzen entsprechend der Codiervorschrift ausgewählt werden kann.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei Erkennen auf Fehler ein Fehlersignal des ersten Teilnehmers erzeugt wird, der den Fehler erkannt hat und das Fehlersignal wenigstens zum zweiten Teilnehmer übertragen wird.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei Erkennen auf Fehler die fehlerhaften Daten verworfen werden und der diese übertragende Teilnehmer ein Anforderungssignal erhält die Daten erneut zu senden.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass neben den codierten Daten auch wenigstens ein Nicht-Codedatenwort zwischen dem ersten Teilnehmer und dem wenigstens zweiten Teilnehmer übertragen wird, welches nicht nach der vorgebbaren Codiervorschrift codiert ist und die laufende digitale Summe auch über das Nicht-Codedatenwort gebildet wird.
  8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Korrektur des Fehlers vorgenommen wird, indem abhängig von der laufenden digitalen Summe die folgende laufende digitale Summe erneut ermittelt wird und abhängig davon die fehlerhaften Daten ersetzt werden
  9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass abhängig von der Anzahl der Fehler eine Strategievorgabe zur Fehlerbehandlung erfolgt.
  10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Strategie vorsieht unter vorgebbaren Voraussetzungen keine Fehlerkorrektur vorzunehmen.
  11. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Korrektur des Fehlers vorgenommen wird, indem das fehlerhafte Datenwort durch ein bestimmtes festgelegtes Datenwort ersetzt wird.
  12. Vorrichtung zur Fehlerbehandlung bei der Übertragung von codierten Daten in Form wenigstens eines Datenwortes über ein Kommunikationssystem, wobei zu dem wenigstens einen Datenwort ein Codedatenwort nach einer vorgebbaren Codiervorschrift ausgewählt wird, wobei die Daten als Bits, die zwei verschiedene Werte, Einsen und Nullen, annehmen können dargestellt werden, dadurch gekennzeichnet, dass wenigstens eine laufende digitale Summe derart gebildet wird, dass eine aufsummierte Differenz der Gesamtzahl der Einsen und der Gesamtzahl der Nullen wenigstens über das Codedatenwort gebildet wird und diese laufende digitale Summe übertragen wird, wobei die laufende digitale Summe zum folgenden Codedatenwort bestimmt und mit der dann übertragenen verglichen wird, wobei bei Abweichung auf Fehler erkannt wird.
  13. Teilnehmer mit einer Vorrichtung zur Fehlerbehandlung bei der Übertragung von codierten Daten in Form wenigstens eines Datenwortes über ein Kommunikationssystem, wobei zu dem wenigstens einen Datenwort ein Codedatenwort nach einer vorgebbaren Codiervorschrift ausgewählt wird, wobei die Daten als Bits, die zwei verschiedene Werte, Einsen und Nullen, annehmen können dargestellt werden, dadurch gekennzeichnet, dass wenigstens eine laufende digitale Summe derart gebildet wird, dass eine aufsummierte Differenz der Gesamtzahl der Einsen und der Gesamtzahl der Nullen wenigstens über das Codedatenwort gebildet wird und diese laufende digitale Summe übertragen wird, wobei die laufende digitale Summe zum folgenden Codedatenwort bestimmt und mit der dann übertragenen verglichen wird, wobei bei Abweichung auf Fehler erkannt wird.
  14. Computerprogramm-Produkt mit Programmcode, der auf einem Datenträger gespeichert ist, zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 10, wenn das Programm in einem computergestützten Kommunikationssystem ausgeführt wird
  15. Computerprogramm mit Programmcode zur Durchführung aller Schritte nach einem der Ansprüche 1 bis 10, wenn das Programm in einem computergestützten Kommunikationssystem ausgeführt wird.
DE102004061803A 2004-04-08 2004-12-22 Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von Daten über ein Kommunikationssystem Withdrawn DE102004061803A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102004061803A DE102004061803A1 (de) 2004-04-08 2004-12-22 Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von Daten über ein Kommunikationssystem
PCT/EP2005/051557 WO2005099153A1 (de) 2004-04-08 2005-04-07 Fehlerbehandlung bei datenübertragung über ein kommunikationssystem
JP2007506783A JP2007533184A (ja) 2004-04-08 2005-04-07 通信システムを介してデータを伝送する際にエラー処理する方法および装置
US11/578,199 US20070234174A1 (en) 2004-04-08 2005-04-07 Method and Device for Error Handling in the Transmission of Data Via a Communications System
EP05731955A EP1735936A2 (de) 2004-04-08 2005-04-07 Fehlerbehandlung bei datenübertragung über ein kommunikationssystem

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102004018082 2004-04-08
DE102004018082.2 2004-04-08
DE102004061803A DE102004061803A1 (de) 2004-04-08 2004-12-22 Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von Daten über ein Kommunikationssystem

Publications (1)

Publication Number Publication Date
DE102004061803A1 true DE102004061803A1 (de) 2005-10-27

Family

ID=34963861

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004061803A Withdrawn DE102004061803A1 (de) 2004-04-08 2004-12-22 Verfahren und Vorrichtung zur Fehlerbehandlung bei der Übertragung von Daten über ein Kommunikationssystem

Country Status (5)

Country Link
US (1) US20070234174A1 (de)
EP (1) EP1735936A2 (de)
JP (1) JP2007533184A (de)
DE (1) DE102004061803A1 (de)
WO (1) WO2005099153A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005012069A1 (de) * 2005-03-16 2006-09-21 Robert Bosch Gmbh Verfahren zur Fehlerbehandlung
JP5250505B2 (ja) * 2009-08-14 2013-07-31 アンリツ株式会社 移動体通信用デバイス試験システム及び試験方法
JP6657690B2 (ja) 2015-09-10 2020-03-04 富士ゼロックス株式会社 復号化装置、プログラム、及び情報伝送システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844939A (en) * 1997-02-14 1998-12-01 Hewlett-Packard Company Low-cost phaselocked local oscillator for millimeter wave transceivers
US6427219B1 (en) * 1998-06-24 2002-07-30 Conexant Systems, Inc. Method and apparatus for detecting and correcting errors using cyclic redundancy check
US20030174766A1 (en) * 2001-12-17 2003-09-18 Nahum Don Signal quality indicator
WO2004001747A2 (en) * 2002-06-20 2003-12-31 Koninklijke Philips Electronics N.V. Balanced disparity channel code for dc control

Also Published As

Publication number Publication date
EP1735936A2 (de) 2006-12-27
WO2005099153A1 (de) 2005-10-20
WO2005099153A9 (de) 2005-12-08
US20070234174A1 (en) 2007-10-04
JP2007533184A (ja) 2007-11-15

Similar Documents

Publication Publication Date Title
EP2740042B1 (de) VERFAHREN UND VORRICHTUNG ZUR VERBESSERUNG DER DATENÜBERTRAGUNGSSICHERHEIT IN EINER SERIELLEN DATENÜBERTRAGUNG MIT FLEXIBLER NACHRICHTENGRÖßE
DE19815597B4 (de) Datenübertragungssystem, mobile Station und Verfahren zum Verringern der Rahmenfehlerrate bei einer in Form von Datenrahmen erfolgenden Datenübertragung
DE69226361T2 (de) TCM-Schema mit nichtganzzahligen Datenraten, Rahmensignalen und Konstellationsumformung
DE69529522T2 (de) Verfahren und gerat zur implementierung eines kodierers und dekodierers vom typ 8b6t
EP0827312A2 (de) Verfahren zur Änderung der Konfiguration von Datenpaketen
DE10254187A1 (de) Dekodiereinrichtung mit einem Turbodekodierer und einem RS-Dekodierer in Reihenschaltung und hiermit Durchgeführtes Dekodierverfahren
EP2908473B1 (de) Kommunikationsnetzwerk zur übertragung von nachrichten
DE69128937T2 (de) Datenübertragungsverfahren zur Übertragung eines Haupt- und eines Hilfsbitstroms mithilfe einer Mehrzahl von Codierverfahren
DE69527935T2 (de) Gleichtaktfreier ternärer Kode
DE19927751A1 (de) Vorrichtung und Verfahren zum Vorsehen eines Gleichstromsymmetrischen digitalen Codes
DE69032076T2 (de) Einrichtung für Datenkodierung und Vorwärts-Fehlerkorrektur für eine niedrige Offset-Gleichspannung und eine kurze Lauflänge
DE102004026800B4 (de) Verfahren zum Verändern einer Tiefe einer Interleaver-Vorrichtung oder Deinterleaver-Vorrichtung sowie entsprechende Interleaver-Vorrichtung, Deinterleaver-Vorrichtung und Kommunikationseinrichtung
WO2005099153A1 (de) Fehlerbehandlung bei datenübertragung über ein kommunikationssystem
DE2461581C3 (de) Adaptives Deltamodulationssystem
DE2838228A1 (de) Verfahren und anordnung zur synchronisation von datenbitfolgen
DE3412986A1 (de) Digitales nachrichtenuebertragungssystem mit integrierter uebertragung einer zusatzinformation mit geringer bitfolgefrequenz
DE69419035T2 (de) Gerät zur erkennung von zellengrenzen in einem bitstrom und crc-generierung
DE102004062010A1 (de) Verfahren und Vorrichtung zur Codeerzeugung bei der Übertragung von Daten über ein Kommunikationssystem
DE69120252T2 (de) Verfahren zur Nachrichtenübertragung über einen Fernsehkanal mit dem Teletextsystem
DE102004041418A1 (de) Verfahren zur Codierung eines ersten und zweiten Datenwortes und Verfahren zur Decodierung eines codierten Datenwortes
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
DE102005029515A1 (de) Verfahren zur Berechnung von CRC-Prüfwerten und Logikschaltung
DE3107602A1 (de) Verfahren zur codierung von analogsignalen
DE2625527A1 (de) Verfahren zur kompression redundanter digitaler quellsignale
EP4250572A2 (de) Verfahren und systemanordnung zum berechnen einer vorwärtsfehlerkorrektur mit reduzierter gatteranzahl bei fec-kodierern

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee