DE112007001991T5 - Verfahren und System zum Validieren eines Schreibvorgangs für eine Baugruppe auf einem seriellen Bus - Google Patents

Verfahren und System zum Validieren eines Schreibvorgangs für eine Baugruppe auf einem seriellen Bus Download PDF

Info

Publication number
DE112007001991T5
DE112007001991T5 DE112007001991T DE112007001991T DE112007001991T5 DE 112007001991 T5 DE112007001991 T5 DE 112007001991T5 DE 112007001991 T DE112007001991 T DE 112007001991T DE 112007001991 T DE112007001991 T DE 112007001991T DE 112007001991 T5 DE112007001991 T5 DE 112007001991T5
Authority
DE
Germany
Prior art keywords
message
byte
checksum
client
sender
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
DE112007001991T
Other languages
English (en)
Inventor
Robert Forest Grove Dunstan
John Mountain View Horigan
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112007001991T5 publication Critical patent/DE112007001991T5/de
Withdrawn 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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Abstract

Verfahren, das aufweist:
Berechnen eines ersten Prüfsummenbytes durch einen Absender einer Nachricht;
Anhängen des ersten Prüfsummenbytes an eine Nachricht;
Senden der Nachricht von dem Absender an einen Client über einen seriellen Eindraht-Bus;
Bestimmen, durch den Client, einer Gültigkeit der Nachricht von dem Absender, indem das erste Prüfsummenbyte mit einer zweiten Prüfsumme, die von dem Client berechnet wird, verglichen wird.

Description

  • HINTERGRUND
  • Ein Eindraht-Bus kann verwendet werden, um Daten zwischen Host- und Client-Baugruppen zu kommunizieren. Befehle, die zwischen den Host- und den Client-Baugruppen kommuniziert werden, können in manchen Fällen einen wesentlichen betrieblichen Einfluss auf den Host, die Client-Baugruppen und zugeordnete Baugruppen, Systeme, Plattformen und Betriebsumgebungen haben. Im Allgemeinen können Daten zwischen den Host- und den Client-Baugruppen geschrieben und gelesen werden. In manchen Fällen kann eine Nachricht, die einen Befehl enthält, von dem Host an eine oder mehrere der Client-Baugruppen gesendet werden, um eine Tätigkeit durch die Client-Baugruppen aufzurufen. Aufgrund von Fehlern in der Kommunikation kann es sein, dass eine Nachricht, die über den Eindraht-Bus verschickt wird, nicht richtig von einer Client-Baugruppe erhalten wird, und/oder Daten, die von der Client-Baugruppe zurückgegeben werden, können unrichtig sein.
  • Gemäß einigen Schreib-Lese-Protokollen kann ein Absender einer Nachricht (z. B. ein Host) eine Angabe erhalten, dass eine ins Ziel gefasste Client-Baugruppe die Nachricht richtig empfangen hat und Daten, die von der Client-Baugruppe zurückgegeben werden, richtig sind. Jedoch kann die Client-Baugruppe weiterhin eine ungültige Nachricht akzeptieren und nach ihr handeln, basierend auf einem Kommunikationsfehler, den die Client-Baugruppe selbst nicht erfassen kann.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine beispielhafte Veranschaulichung eines Systems gemäß einigen Ausführungsformen hierin;
  • 2 ist eine beispielhafte Veranschaulichung einer Nachricht in Bezug auf einige Ausführungsformen hierin;
  • 3 ist ein Ablaufdiagramm eines Prozesses gemäß einigen Ausführungsform hierin;
  • 4 ist eine beispielhafte Veranschaulichung einer Nachricht, die sich auf einige Ausführungsformen hierin bezieht;
  • 5 ist ein Ablaufdiagramm eines Prozesses gemäß einigen Ausführungsformen hierin; und
  • 6 ist eine beispielhafte Veranschaulichung eines Systems gemäß einigen Ausführungsformen hierin
  • GENAUE BESCHREIBUNG
  • Die verschiedenen Ausführungsformen, die hierin beschrieben sind, dienen lediglich dem Zweck der Veranschaulichung. Ausführungsformen können jedwede gegenwärtig verfügbaren oder hiernach bekannten Versionen der Elemente, die hierin beschrieben sind, umfassen. Daher werden Fachleute aus dieser Beschreibung erkennen, dass andere Ausführungsformen mit verschiedenen Modifikationen und Abänderungen in die Praxis umgesetzt werden können.
  • Mit Bezug auf 1 ist dort ein beispielhaftes schematisches Schaubild eines Kommunikationssystems 100 gemäß einigen Ausführungsformen hierin mit einem Eindraht-Bus gezeigt. Bei manchen Ausführungsformen kann ein Bus 130 einen seriellen Eindraht-Bus umfassen. Ein Host 105 ist mit dem Bus 130 verbunden. Eine Vielzahl von Client-Baugruppen 110, 115, 120 und 125 ist ebenfalls mit dem Bus 130 verbunden. Der Host 105 und die Client-Baugruppen 110, 115, 120 und 125 können digitale Daten zwischen dem Host und den Client-Baugruppen über den Bus 130 transportieren. Eine oder mehrere Client-Baugruppen, so wie zum Beispiel die Client-Baugruppen 110 und 115, können feste Adressen haben. Eine oder mehrere Client-Baugruppen, so wie zum Beispiel die Client-Baugruppen 120 und 125, können dynamisch zugewiesene Adressen haben. Somit können manche Ausführungsformen des Systems 100 eine Kombination von Client-Baugruppen mit festen und dynamisch zugeordneten Adressen umfassen.
  • Obwohl das System mit einem Eindraht-Bus, das in der 1 gezeigt ist, einen Host und mehrere Client-Baugruppen umfasst, können einige Ausführungsformen eines Systems 100 einen Host und eine Client-Baugruppe umfassen. Bei manchen Ausführungsformen kann das System 100 einen Absender von Nachrichten umfassen und bei anderen Ausführungsformen kann das System 100 mehrere Absender von Nachrichten umfassen.
  • Bei manchen Ausführungsformen entspricht eine Nachricht für den Bus 130 des Systems 100 einem Protokoll, das einen Nachrichtenkopf und Daten umfasst. Das Nachrichtenprotokoll kann die Datengeschwindigkeit der Nachricht einstellen, Information im Hinblick auf die Nachricht zur Verfügung stellen und die Datenintegrität sicherstellen. Zum Beispiel kann eine Zeitverhandlung verwendet werden, um eine Bitrate für die Nachricht einzurichten, eine Adresse einer Ziel-Client-Baugruppe kann festgelegt werden und weitere Eigenschaften der Nachrichten können in dem Nachrichtenkopf der Nachricht zur Verfügung gestellt werden.
  • 2 zeigt ein beispielhaftes Schreib-Lese-Protokoll 200 gemäß einigen Ausführungsformen hierin. Insbesondere sorgt das Schreib-Lese-Protokoll 200 für den Nachrichtentransport zwischen den Baugruppen auf dem Bus 130. Das Schreib-Lese-Protokoll 200 schreibt zunächst Daten zwischen einem Absender einer Nachricht (z. B. dem Host 105) und einem Ziel-Client (z. B. einem oder mehreren der Clients 110, 115, 120 und 125).
  • Entsprechend dem Schreib-Lese-Protokoll 200 umfasst eine Nachricht einen Nachrichtenkopf und Datenkomponenten. Der Nachrichtenkopf umfasst Zeitverhandlungs(TN – Timing Negotiation)-Bits 205 für die Adresse, die die Bitrate für den Adressteil der Nachricht einstellen (2 Bit); eine Ziel-Adresse 210, die die Adresse der Zielbaugruppe festlegt (8 Bit); ein Nachrichtenzeit(MT – Message Timing)-Verhandlungsbit 215, das verwendet wird, um die Zeitplanung zwischen dem Absender der Nachricht und den ins Ziel gefassten (z. B. adressierten) Client-Baugruppe(n) für den verbleibenden Teil der Nachricht zu behandeln (1 Bit); eine Schreiblänge 220, das N Bytes der Daten festlegt, die der Absender plant abzusenden (8 Bit); und eine Leselänge 225, die M Bytes aus Daten festlegt, die der Absender erwartet zu empfangen (8 Bit). Die N Bytes der Schreibdaten 230240 sollen in die Ziel-Baugruppe geschrieben werden und die M Bytes der Lesedaten 250255 sollen von dem Ziel-Client zurückgelesen werden.
  • Bei manchen Ausführungsformen kann sowohl die Schreiblänge als auch die Leselänge Null sein. In einem solchen Fall wird die Nachricht als eine Nullnachricht bezeichnet und definiert einen Baugruppen-'Ping', der von allen Baugruppen unterstützt wird, die mit dem Bus 130 verbunden sind.
  • Die Schreibdaten, die N Bytes mit Daten aufweisen, können als Option einen Befehl enthalten. Bei manchen Ausführungsformen ist der Befehl das erste Byte 230 der Schreibdaten.
  • Bei manchen Ausführungsformen erfordert jede Nachricht wenigstens ein Prüfsummenbyte für einen Frame. Das Prüfsummenbyte stellt einen Mechanismus zur Verfügung, um ein zuverlässiges Austauschen von Daten zwischen dem Absender und dem/den ins Ziel gefassten Client(s) sicherzustellen. Der Absender der Nachricht und die Client-Baugruppe(n) führen beide Prüfsummenberechnungen durch. Bei manchen Ausführungsformen können die Prüfsummenbytes hierin als ein Ergebnis einer Frame-Prüfsequenz (FCS – Frame Check Sequence) in einer zyklischen Redundanzprüfung (CRC – Cyclic Redundancy Check) für 8 Bit bei jedem Datenblock, die der CRC vorangeht, erhalten werden.
  • Bei manchen Ausführungsformen kann die zyklische Redundanzprüfung für 8 Bit, die von der Schreib-FCS und der Lese-FCS verwendet wird, hierin durch das Polynom C(x) = x8 + x2 + x + 1 dargestellt werden. Es sollte verstanden werden, dass die CRC, die bei der Berechnung der Prüfsummen hierin verwendet wird, andere CRCs als das Polynom CRC-8 enthalten kann.
  • Die Schreib-FSC in der Nachricht schließt bei manchen Ausführungsformen die TN-Bits 205 oder die MT-Bits 215 nicht ein. Die Schreib-FCS 245 schließt jedoch das Adressbyte 210, ein Schreiblängenbyte 220 und ein Leselängenbyte 225 bei ihrer Berechnung ein.
  • Bei manchen Ausführungsformen wird ein Byte 245 für die Schreib-FCS an den Absender 105 der Nachricht von dem ins Ziel gefassten Client zurückgegeben, nachdem der Nachrichtenkopf und die N Datenbytes (z. B. 230240) geschrieben sind. Das Schreiblängenbyte in dem Nachrichtenkopf wird von dem ins Ziel gefassten Client verwendet, um zu bestimmen, wann der ins Ziel gefasste Client die Schreib-FCS zurückgeben sollte. Der ins Ziel gefasste Client (z. B. der Client 110) ist aufgefordert, die Schreib-FCS über den Nachrichtenkopf zurückzugeben, selbst wenn das Schreiblängenfeld Null ist (d. h. keine zusätzlichen Datenbytes geschrieben sind).
  • Wenn Daten von dem/den Ziel-Client(s) gelesen werden, folgt den gelesenen Daten (z. B. den Bytes 250255) eine Lese-FCS 260. Das Byte 260 der Lese-FCS wird von dem Ziel-Client getrieben. Das Byte 225 für die Leselänge wird von dem Ziel-Client verwendet, um die Anzahl der Datenbytes zu bestimmen, die der Client an den Absender der Nachricht liefern muss, bevor die Lese-FCS 260 über diese Daten zurückgegeben wird. Die Schreib-FCS 245 und die Lese-FCS 260 sind nicht als ein Teil der Leselänge enthalten.
  • Die Schreib-FCS 245 und die Lese-FCS 260 werden von dem/den Ziel-Client(s) geliefert und getrieben. Diese FCSs, die von dem Ziel-Client an den Absender geliefert werden, versorgen den Absender 105 mit Mechanismen, um festzustellen, ob ein Schreibvorgang erfolgreich ist und ob Lesedaten richtig empfangen worden sind.
  • Bei manchen Ausführungsformen hierin wird eine Prüfsumme 240 über ein gesichertes Schreiben (AW – Assured Write) der FCS an den Nachrichtenkopf und die Schreibdaten angehängt. Die Prüfsumme 240 kann von dem Ziel-Client verwendet werden, um die Inhalte der Nachricht zu validieren, der Ziel-Client kann somit die AW FCS 240 verwenden, um Inhalte der Nachricht zu verifizieren, bevor die Client-Baugruppe aufgrund der Nachricht tätig wird.
  • Bei manchen Ausführungsformen ist die AW (Assured Write) FCS 240 das Ergebnis einer zyklischen Redundanzprüfung (CRC) für 8 Bit. Bei manchen Ausführungsformen kann die AW FCS 240 dasselbe Polynom C(x) = x8 + x2 + x + 1 bei der zyklische Redundanzprüfung für 8 Bit verwenden, das bei der Berechnung der Schreib-FCS 245 und der Lese-FCS 260 verwendet wurde.
  • Es wird angemerkt, dass die CRC, die bei der Berechnung der AW FCS 240 verwendet wird, andere CRCs als das Polynom CRC-8 verwendet kann. Es wird auch angemerkt, dass das Anhängen einer CRC-8 und dann das Neuberechnen einer CRC-8 eine Tautologie ist, die, in dem Fall, dass ein einziger CRC-Generator in der Client-Baugruppe verwendet wird, immer zu einer Null führt. Bei manchen Ausführungsformen hierin kann die Client-Baugruppe zum Beispiel für Zwecke der einfachen Implementierung und/oder von Kostenbeschränkungen einen CRC-Generator enthalten. Bei manchen beispielhaften Fällen kann eine Nachricht von dem Absender 105 der Ziel-Baugruppe für die Nachricht befehlen, eine Tätigkeit auszuführen, so wie zum Beispiel das Konfigurieren des Ziel-Client, über eine Zeitdauer abzuschalten. Ohne irgendein Verfahren, einen Mechanismus oder ein System, um die Inhalte der Nachricht zu verifizieren, kann der Ziel-Client irreversible oder möglicherweise schädliche Tätigkeiten als Antwort auf nicht korrekte oder ungültige Nachrichten ausführen. Die AW FCS 240 vereinfacht es dem Ziel-Client, die Gültigkeit der Nachricht zu verfizieren, bevor der Ziel-Client auf die Nachricht reagiert. Auf diese Weise kann der Ziel-Client des vorangegangenen Beispiels zum Beispiel vermeiden, dass er sich fälschlich selbst vom Bus nimmt.
  • Noch mit Bezug auf die 2 ist die AW FCS 240 in der Nachricht als das Nte Schreibdatenbyte innerhalb der Schreibdaten enthalten. Bei manchen Ausführungsformen wird nach der FCS-Berechnung des (N – 1)ten Schreibdatenbytes eine vorläufige FCS-Berechnung der AW FCS von dem Absender modifiziert. Die vorläufige FCS-Berechnung der AW FCS wird so modifiziert, dass die Schreib-FCS 245, die von der Ziel-Client-Baugruppe in dem nächsten Byte zurückgegeben wird, von Null verschieden ist. Bei Ausführungsformen wird dieselbe CRC-Berechnung sowohl für die AW FCS als auch für die Schreib-FCS verwendet, wobei die Schreib-FCS 245, die von der Ziel-Client-Baugruppe zurückgegeben wird, immer Null sein würde (z. B. 0x00).
  • Bei manchen Ausführungsformen wird die Modifikation der vorläufigen FCS bewerkstelligt, indem das höchstwertige Bit, msb (most significant bit), der FCS-Berechnung des (N – 1)ten Schreibdatenbytes invertiert wird. Auf diese Weise würde, wenn die FCS-Berechnung des (N – 1)ten Datenbytes 0xc4 ist, dann dessen invertiertes msb eine AW FCS gleich 0x44 liefern.
  • Bei manchen Ausführungsformen vermeidet die Verwendung unterschiedlicher CRC-8 Algorithmen, um die AW FCS- und die Schreib-FCS-Werte bei dem Client zu berechnen, das Problem, dass eine Prüfsumme modifiziert werden müsste, um einen anschließenden Prüfsummenwert von Null zu vermeiden. Das heißt, bei manchen Ausführungsformen kann der Client zwei CRC-Generatoren haben, die unterschiedliche CRC-Algorithmen verwenden.
  • Als ein Beispiel kann eine Nachricht mit einem Befehls/Datensatz aus 3 Bytes, 0x(10 e2 39) eine daran angehängte AW FCS haben, um eine vollständige geschriebene Sequenz 0x(20 04 00 10 e2 39 50) zu erhalten, wobei 0x(20 04 00) den Nachrichtenkopf der Nachricht aufweist. Die Ziel-Client-Baugruppe antwortet mit einem Schreib-FCS-Byte 0x89. Die AW FCS erhöht die Schreiblänge der Nachricht um 1, und die AW FCS wird als die CRC-8 des vorigen Bytes (0xd0) hinzugefügt, wobei das msb invertiert wird, so dass sich 0x50 ergibt.
  • 3 veranschaulicht ein beispielhaftes Ablaufdiagramm eines Verfahrens 300 gemäß einigen Ausführungsformen hierin. Im Arbeitsschritt 305 wird ein erstes Prüfsummenbyte von einem Absender einer Nachricht berechnet. Die erste Prüfsumme entspricht der AW FCS 240, die in der 2 veranschaulicht ist. Die erste Prüfsumme wird im Arbeitsschritt 310 an eine Nachricht von dem Absender der Nachricht angehängt. Die Nachricht, einschließlich der ersten Prüfsumme, kann dem Nachrichtenprotokoll entsprechen, das hierin mit Bezug auf die 2 gezeigt und diskutiert worden ist.
  • Im Arbeitsschritt 315 wird die Nachricht von dem Absender an einen Client über einen seriellen Eindraht-Bus verschickt. Der Bus sorgt für die Kommunikation zwischen dem Absender und dem Client. Die Nachricht umfasst einen Nachrichtenkopf und Daten. Bei manchen Ausführungsformen umfassen die Daten N Bytes Schreibdaten, wobei das Nte Schreibdatenbyte die erste Prüfsumme ist.
  • Bei manchen Ausführungsformen kann eine vorläufige Prüfsummenberechnung in einem Prozess des Berechnens der ersten Prüfsumme modifiziert werden. Die Modifikation kann vorgenommen werden, um für eine unmittelbar nachfolgende Prüfsummenberechnung einen von Null verschiedenen Wert zu erhalten. Der Modifikationsprozess kann als ein Teil von oder getrennt von anderen Arbeitsschritten des Prozesses 300 vorgenommen werden, einschließlich des Arbeitsschrittes 305.
  • Im Arbeitsschritt 320 kann eine Feststellung von dem Client im Hinblick auf die Gültigkeit der Nachricht von dem Absender getroffen werden. Die Feststellung kann auf einem Vergleich der ersten Prüfsumme und einer zweiten Prüfsumme, die intern von dem Client erzeugt worden ist, basieren. Eine Übereinstimmung zwischen der ersten Prüfsumme und der zweiten Prüfsumme, die intern von dem Client erzeugt worden ist, kann angeben, dass die Inhalte der Nachricht gültig sind, während eine Nichtübereinstimmung zwischen der ersten Prüfsumme und der zweiten Prüfsumme, die von dem Client erzeugt worden ist, angeben kann, dass die Inhalte der Nachricht ungültig sind. In dem Fall, dass für die Nachricht von dem Client festgestellt wird, dass sie ungültig ist, wobei die erste Prüfsumme verwendet wird, kann der Client antworten, indem er nicht auf die Nachricht hin handelt.
  • Die Verwendung der AW FCS in dem Schreibprotokoll der Nachricht sorgt für einen Mechanismus für den Ziel-Client der Nachricht, ein Maß der Sicherheit zu haben, dass die Daten, die von dem Ziel-Client erhalten worden sind, korrekt/gültig sind, bevor er sich verpflichtet, die Daten zu verwenden.
  • 4 zeigt ein beispielhaftes Schreib-Lese-Protokoll 400 gemäß einigen Ausführungsformen hierin. Insbesondere kann das Schreib-Lese-Protokoll 400 einen Mechanismus zur Verfügung stellen, durch den ein Client folgern kann, ob eine Nachricht nicht korrekt/ungültig ist, basierend auf einem Verhalten des Absenders der Nachricht in einem System mit einem Eindraht-Bus. Das Schreib-Lese-Protokoll 400 kann zunächst Daten zwischen dem Absender einer Nachricht (z. B. dem Host 105) und einem Ziel-Client (z. B. den Clients 110, 115, 120 und 125) schreiben.
  • Gemäß dem Schreib-Lese-Protokoll 400 umfasst eine Nachricht einen Nachrichtenkopf und Datenkomponenten. Der Nachrichtenkopf umfasst TN-Bits 405, eine Zieladresse 410, ein MT-Verhandlungsbit 415, eine Schreiblänge 420, die N Bytes der Daten festlegt, die der Absender zu senden plant; und eine Leselänge 425, die die M Bits der Daten festlegt, die der Absender zu empfangen erwartet. Die N Bytes der Schreibdaten 430440 sollen an die Ziel-Baugruppe geschrieben werden, und die M Bytes der Lesedaten 450455 sollen von der Ziel-Baugruppe zurückgelesen werden.
  • Bei manchen Ausführungsformen, die dem Schreib-Lese-Protokoll 400 entsprechen, kann die Schreiblänge Null sein, jedoch ist die Leselänge wenigstens ein Byte lang.
  • Aspekte des Nachrichtenkopfes und der Datenkomponenten des Nachrichtenprotokolls 400 können ähnlich dem Nachrichtenkopf und den Datenkomponenten sein, die hierin mit Bezug auf die 2 diskutiert worden sind. Demgemäß wird eine Diskussion von ähnlichen Aspekten des Protokolls 400, die bereits an andere Stelle hierin mit Bezug auf die 2 diskutiert worden sind, nicht wieder in Einzelheiten geführt werden. Ein Bezug wird stattdessen hergestellt, indem auf die 2 verwiesen wird.
  • Bei manchen Ausführungsformen, wie sie in dem beispielhaften Ablaufdiagramm 500 der 5 veranschaulicht sind, kann eine Nachricht, die dem Schreib-Lese-Protokoll 400 anhaftet, im Arbeitsschritt 505 von dem Absender an einen Client über einen Eindraht-Bus geschickt werden. Im Arbeitsschritt 510 kann der Absender 105 eine Rückgabe eines nicht gültigen Prüfsummenbytes von dem Client in Erwiderung auf das Abschicken der Nachricht von dem Absender erfassen. Bei manchen Ausführungsformen entspricht die zurückgegebene Prüfsumme der Schreib-Bus FCS 340.
  • Ein gefordertes Verhalten für den Absender beim Empfang einer ungültigen zurückgegebenen Prüfsumme (d. h. der Schreib-FCS) kann sein, eine Master-Abbruchoperation aufzurufen, mit der die Nachricht abgebrochen wird. Weitere Anforderungen können diktieren, dass der Abbruch innerhalb einer vorbestimmten Zeitdauer geschieht. Bei manchen Ausführungsformen entspricht die vorbestimmte Zeitdauer einem unmittelbar nächsten Bytezyklus. Das Abbruchverhalten des Absenders, der mit dem Bus verbunden ist, kann von einem Client, der mit dem Bus verbunden ist, verwendet werden, um daraus zu schließen, dass die Nachricht nicht korrekt/ungültig ist. Umgekehrt kann das Fehlen der Abbruchoperation so ausgelegt werden, dass die Nachricht von dem Absender richtig oder gültig ist.
  • Die vorbestimmte Dauer, während der der Absender feststellen muss, ob die zurückgegebene Prüfsumme (d. h. die Schreib-FCS) gültig ist und die Abbruchoperation aufrufen muss, kann einem Lesebytezyklus entsprechen. Demgemäß wird eine Nachricht von dem Absender versendet und die Prüfsumme wird von der Ziel-Client-Baugruppe zurückgegeben. Während des Lesens des ersten Lese-Datenbytes 345 bestimmt der Absender, ob die zurückgegebene Prüfsumme gültig ist, und ruft die Abbruchoperation auf, wenn sie nicht gültig ist. Somit ist ge zeigt worden, warum bei manchen Ausführungsformen die Schreiblänge wenigstens ein Byte beträgt.
  • 5 veranschaulicht ein beispielhaftes Ablaufdiagramm eines Verfahrens 500 gemäß einigen Ausführungsformen hierin. Im Arbeitsschritt 505 wird eine Nachricht von einem Absender der Nachricht an einen Client über einen seriellen Eindraht-Bus geschickt. Im Arbeitsschritt 510 erfasst der Absender ein ungültiges Prüfsummenbyte (z. B. die Schreib-FCS), das von dem Client in Erwiderung auf die Nachricht, die von dem Absender verschickt worden ist, zurückgegeben worden ist.
  • Nach dem Bestimmen, dass die zurückgegebene Prüfsumme ungültig oder ansonsten nicht richtig ist, bricht der Absender die Nachricht im Arbeitsschritt 515 ab. Der Absender trifft die Feststellung, dass die Nachricht abzubrechen ist, innerhalb einer vorbestimmten Zeitdauer. Basierend auf den Abbruchtätigkeiten für die Nachricht durch den Absender kann die Client-Baugruppe schließen, ob die Schreib-FCS gültig oder ungültig war.
  • 6 ist ein beispielhaftes schematisches Schaubild eines Kommunikationssystems 600 mit einem seriellen Eindraht-Bus gemäß einigen Ausführungsformen hierin. Ein Host 605 ist mit einem Bus 630 verbunden. Eine Vielzahl von Client-Baugruppen 610, 615, 620 und 625 ist ebenfalls mit dem Bus 630 verbunden. Der Host 605 und die Client-Baugruppen 610, 615, 620 und 625 übermitteln Daten zwischen dem Host und den Client-Baugruppen über den Bus 630. Die Client-Baugruppen des Systems 600 können feste oder dynamische Adressen haben. Das System 600 kann in vieler Hinsicht dem System 100 ähnlich sein. Jedoch umfasst das System 600 ein Speichermodul 675, das mit dem Bus 630 verbunden ist. Der Bus 630 kann verwendet werden, um Konfigurationsinformation in das Speichermodul 675 zu schreiben, nicht als ein primärer Kanal zum Lesen/Schreiben von Daten aus/in den Speicher. Das Speichermodul 675 kann zum Beispiel Daten umfassen, aufgrund derer gearbeitet werden kann, in Abhängigkeit von den Tätigkeiten des Host und des Client, und/oder die in einer Nachricht von dem Absender enthalten sind.
  • Bei manchen Ausführungsformen kann das System 600 mit den hierin offenbarten Schreib/Lese-Protokollen kompatibel sein, einschließlich denjenigen, die im Hinblick auf die 2 und 4 diskutiert worden sind.
  • Obwohl das System mit Eindraht-Bus, das in der 1 gezeigt ist, einen Host und mehrere Client-Baugruppen umfasst, können einige Ausführungsformen eines Systems mit Eindraht-Bus hierin einen Host und eine Client-Baugruppe umfassen. Bei manchen Ausführungsformen kann ein System mit Eindraht-Bus einen Absender einer Nachricht umfassen und bei anderen Ausführungsformen kann ein System mit einem Eindraht-Bus mehrere Absender von Nachrichten umfassen.
  • Die voranstehende Offenbarung ist mit Bezug auf bestimmte beispielhafte Ausführungsformen beschrieben worden. Es wird jedoch offensichtlich sein, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne dass man sich von dem breiteren Gedanken und Umfang entfernt, der in den angefügten Ansprüchen definiert ist.
  • ZUSAMMENFASSUNG
  • Verfahren und System, wobei das Verfahren bei manchen Ausführungsformen das Berechnen eines ersten Prüfsummenbytes durch einen Absender einer Nachricht, das Anhängen des ersten Prüfsummenbytes an die Nachricht, das Senden der Nachricht von dem Absender an einen Client über einen eindrahtigen seriellen Bus und das Feststellen, durch den Client, einer Gültigkeit der Nachricht von dem Absender durch Vergleichen des ersten Prüfsummenbytes mit einer zweiten Prüfsumme, die von dem Client berechnet worden ist.

Claims (24)

  1. Verfahren, das aufweist: Berechnen eines ersten Prüfsummenbytes durch einen Absender einer Nachricht; Anhängen des ersten Prüfsummenbytes an eine Nachricht; Senden der Nachricht von dem Absender an einen Client über einen seriellen Eindraht-Bus; Bestimmen, durch den Client, einer Gültigkeit der Nachricht von dem Absender, indem das erste Prüfsummenbyte mit einer zweiten Prüfsumme, die von dem Client berechnet wird, verglichen wird.
  2. Verfahren nach Anspruch 1, bei dem der Client feststellt, dass die Nachricht gültig ist, wenn das erste Prüfsummenbyte gleich dem zweiten Prüfsummenbyte ist, und dass die Nachricht ungültig ist, wenn das erste Prüfsummenbyte nicht gleich dem zweiten Byte ist.
  3. Verfahren nach Anspruch 1, bei dem das erste Prüfsummenbyte und das zweite Prüfsummenbyte eine Frame-Prüfsequenz (FCS – Frame Check Sequence) einer zyklischen Redundanzprüfung (CRC – Cyclic Redundancy Check) für 8 Bit von jedem von wenigstens einem Datenbyte, aufweist, die den jeweiligen Prüfsummen vorangeht.
  4. Verfahren nach Anspruch 1, bei dem die Nachricht N Byte Schreibdaten aufweist, in denen das erste Prüfsummenbyte enthalten ist.
  5. Verfahren nach Anspruch 4, bei dem die Nachricht weiter eine Adresse, eine Leselänge und eine Schreiblänge aufweist.
  6. Verfahren nach Anspruch 4, bei dem das erste Prüfsummenbyte berechnet wird, indem ein Ergebnis einer Berechnung des Prüfsummenbytes nach dem (N – 1)ten Schreibdaten byte abgeändert wird und an die Nachricht als das Nte Schreibdatenbyte angehängt wird.
  7. Verfahren nach Anspruch 6, bei dem das Abändern das Invertieren eines höchstwertigen Bits des Ergebnisses der Berechnung der Prüfsummenbytes nach dem (N – 1)ten Schreibbyte aufweist.
  8. Verfahren nach Anspruch 6, bei dem das Modifizieren sicherstellt, dass ein erstes Prüfsummenbyte, das von dem Client an den Absender unmittelbar nach dem Senden der ersten Prüfsumme zurückgegeben wird, einen von Null verschiedenen Wert hat.
  9. Verfahren, das aufweist: Schicken einer Nachricht von einem Absender einer Nachricht an einen Client über einen seriellen Eindraht-Bus; Erfassen, durch den Absender, eines ungültigen Prüfsummenbytes, das von dem Client in Erwiderung auf die Nachricht, die von dem Absender verschickt worden ist, zurückgegeben wird; Abbrechen, durch den Absender, der Nachricht innerhalb eines vorbestimmten Zeitrahmens; und Feststellen, durch den Client, dass die Nachricht ungültig ist, basierend auf dem Abbruch der Nachricht durch den Absender innerhalb des vorbestimmten Zeitrahmens.
  10. Verfahren nach Anspruch 9, bei dem das Prüfsummenbyte eine Frame-Prüfsequenz (FCS) einer zyklischen Redundanzprüfung (CRC) für 8 Bit für jedes aus wenigstens einem Datenbyte, die dem Prüfsummenbyte vorangeht, aufweist.
  11. Verfahren nach Anspruch 9, bei dem die vorbestimmte Zeit eine innerhalb eines ersten Lesedatenbytes ist.
  12. System, das aufweist: einen seriellen Eindraht-Bus; eine Absender-Baugruppe für eine Nachricht, die mit dem Bus verbunden ist, wobei der Absender ein erstes Prüfsummenbyte berechnet, das erste Prüfsummenbyte an eine Nachricht anhängt und die Nachricht von dem Absender an einen Client über den Bus verschickt; und eine Client-Baugruppe, die mit dem Bus verbunden ist, wobei die Client-Baugruppe die Nachricht von dem Absender über den Bus empfangt und eine Gültigkeit der Nachricht von dem Absender feststellt, indem das erste Prüfsummenbyte mit einer zweiten Prüfsumme, die von dem Client berechnet wird, verglichen wird.
  13. System nach Anspruch 11, bei dem der Client feststellt, dass die Nachricht gültig ist, wenn das erste Prüfsummenbyte gleich dem zweiten Prüfsummenbyte ist, und dass die Nachricht ungültig ist, wenn das erste Prüfsummenbyte nicht gleich dem zweiten Prüfsummenbyte ist.
  14. System nach Anspruch 12, bei dem das erste Byte und das zweite Byte eine zyklische Redundanzprüfung (CRC) mit 8 Bit von jedem von wenigstens einem Datenbyte aufweist, die den jeweiligen Prüfsummen vorangeht, aufweist.
  15. System nach Anspruch 12, bei dem die Nachricht N Byte Schreibdaten aufweist, in denen das erste Prüfsummenbyte enthalten ist.
  16. System nach Anspruch 15, bei dem die Nachricht weiter eine Adresse, eine Leselänge und eine Schreiblänge aufweist.
  17. System nach Anspruch 15, bei dem das erste Prüfsummenbyte berechnet wird, indem ein Ergebnis einer Berechnung des Prüfsummenbytes nach dem (N – 1)ten Schreibdatenbyte abgeändert wird und an die Nachricht als das Nte Schreibdatenbyte angehängt wird.
  18. System nach Anspruch 17, bei dem das Abändern das Invertieren eines höchstwertigen Bits des Ergebnisses der Berechnung des Prüfsummenbytes nach dem (N – 1)ten Schreibbyte aufweist.
  19. System nach Anspruch 17, bei dem das Abändern sicherstellt, dass ein erstes Prüfsummenbyte, das von dem Client an den Absender unmittelbar nach dem Senden der Prüfsumme zurückgegeben wird, einen von Null verschiedenen Wert hat.
  20. System, das aufweist: einen seriellen Eindraht-Bus; einen Client, der mit dem Bus verbunden ist; und einen Absender einer Nachricht, der mit dem Bus verbunden ist, wobei der Absender eine Nachricht an einen Client über den Bus sendet und die Nachricht innerhalb eines vorbestimmten Zeitrahmens nach dem Erfassen, dass ein ungültiges Prüfsummenbyte von dem Client in Erwiderung auf die Nachricht, die von dem Absender verschickt worden ist, zurückgegeben wird, abbricht, und wobei der Client basierend auf dem Abbruch der Nachricht durch den Absender innerhalb des vorbestimmten Zeitrahmens feststellt, dass die Nachricht ungültig ist.
  21. System nach Anspruch 20, bei dem das Prüfsummenbyte eine Frame-Prüfsequenz (FCS) in einer zyklischen Redundanzprüfung (CRC) für 8 Bit von jedem von wenigstens einem Datenbyte aufweist, die dem Prüfsummenbyte vorangeht.
  22. System nach Anspruch 20, bei dem die vorbestimmte Zeit innerhalb eines ersten Lesedatenbytes liegt.
  23. System, das aufweist: einen seriellen Eindraht-Bus; eine Absender-Baugruppe für eine Nachricht, die mit dem Bus verbunden ist, wobei der Absender ein erstes Prüfsummenbyte berechnet, das erste Prüfsummenbyte an eine Nachricht anhängt und die Nachricht von dem Absender an einen Client über den Bus verschickt; eine Client-Baugruppe, die mit dem Bus verbunden ist, wobei die Client-Baugruppe die Nachricht von dem Absender über den Bus empfängt und eine Gültigkeit der Nachricht von dem Absender feststellt, indem das erste Prüfsummenbyte mit einer zweiten Prüfsumme, die von dem Client berechnet wird, verglichen wird; und ein Speichermodul in Verbindung mit der Client-Baugruppe.
  24. System nach Anspruch 23, bei dem der Client feststellt, dass die Nachricht gültig ist, wenn das erste Prüfsummenbyte gleich dem zweiten Prüfsummenbyte ist, und dass die Nachricht ungültig ist, wenn das erste Prüfsummenbyte nicht gleich dem zweiten Prüfsummenbyte ist.
DE112007001991T 2006-09-29 2007-09-28 Verfahren und System zum Validieren eines Schreibvorgangs für eine Baugruppe auf einem seriellen Bus Withdrawn DE112007001991T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/540,837 2006-09-29
US11/540,837 US8165160B2 (en) 2006-09-29 2006-09-29 Method and system to validate a write for a device on a serial bus
PCT/US2007/079987 WO2008042808A1 (en) 2006-09-29 2007-09-28 Method and system to validate a write for a device on a serial bus

Publications (1)

Publication Number Publication Date
DE112007001991T5 true DE112007001991T5 (de) 2009-06-10

Family

ID=39262227

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007001991T Withdrawn DE112007001991T5 (de) 2006-09-29 2007-09-28 Verfahren und System zum Validieren eines Schreibvorgangs für eine Baugruppe auf einem seriellen Bus

Country Status (5)

Country Link
US (1) US8165160B2 (de)
CN (1) CN101512990B (de)
DE (1) DE112007001991T5 (de)
GB (1) GB2454439B (de)
WO (1) WO2008042808A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176970B (zh) * 2011-12-20 2018-05-29 深圳市世纪光速信息技术有限公司 一种检索方法及检索系统
DE102013208730A1 (de) * 2013-05-13 2014-11-13 Robert Bosch Gmbh Gesicherte Übertragung einer Folge von zu übertragenden Daten
US20170269841A1 (en) * 2013-12-20 2017-09-21 Empire Technology Development Llc Data storage in degraded solid state memory
US9513990B2 (en) * 2014-09-23 2016-12-06 Empire Technology Development Llc Memory controller with read unit length module
DE102016212816A1 (de) * 2016-07-13 2018-01-18 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Bussystems
CN108573007A (zh) * 2017-06-08 2018-09-25 北京金山云网络技术有限公司 检测数据一致性的方法、装置、电子设备及存储介质
CN109525363B (zh) * 2018-09-29 2021-07-06 深圳市元征科技股份有限公司 数据传输方法及装置
CN115189971B (zh) * 2022-09-13 2022-12-20 中科物栖(北京)科技有限责任公司 数据传输加密方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4835731A (en) * 1987-08-14 1989-05-30 General Electric Company Processor-to-processor communications protocol for a public service trunking system
AU695562B2 (en) * 1994-07-28 1998-08-13 Koninklijke Philips Electronics N.V. Method of and system for communicating messages
US5710756A (en) * 1995-02-13 1998-01-20 Netro Corporation Burst-error resistant ATM microwave link and network
US5964845A (en) * 1995-04-18 1999-10-12 International Business Machines Corporation Processing system having improved bi-directional serial clock communication circuitry
US6385210B1 (en) * 1998-04-17 2002-05-07 Ford Global Technologies, Inc. Method for detecting and resolving data corruption in a UART based communication network
US6327688B1 (en) 1998-08-07 2001-12-04 Analog Devices, Inc. Data bus with automatic data integrity verification and verification method
KR20010011471A (ko) 1999-07-28 2001-02-15 서평원 암호화 장비에서의 대국 상태 점검 방법
US6460163B1 (en) 2000-04-05 2002-10-01 International Business Machines Corporation Software and method for digital content vending and transport
US20020080416A1 (en) * 2000-12-27 2002-06-27 Quine Douglas B. Appparatus for verifying a facsimile document via the internet
US7383490B2 (en) * 2005-04-14 2008-06-03 International Business Machines Corporation Methods and apparatus using commutative error detection values for fault isolation in multiple node computers
CN1328663C (zh) * 2003-06-20 2007-07-25 佛山市顺德区顺达电脑厂有限公司 自动检测校验和的系统及方法
US7558954B2 (en) * 2003-10-31 2009-07-07 Hewlett-Packard Development Company, L.P. Method and apparatus for ensuring the integrity of data
GB2410161B (en) 2004-01-16 2008-09-03 Btg Int Ltd Method and system for calculating and verifying the integrity of data in data transmission system
US20050257117A1 (en) 2004-05-12 2005-11-17 Weirong Chiang Method and circuit for determining an ending of an ethernet frame
JP2005348338A (ja) 2004-06-07 2005-12-15 Alps Electric Co Ltd 混信判定方法及び端末装置
US7607070B2 (en) 2004-09-13 2009-10-20 National Instruments Corporation System and method for in-line consistency checking of packetized data
US7653681B2 (en) * 2005-01-14 2010-01-26 International Business Machines Corporation Software architecture for managing a system of heterogenous network processors and for developing portable network processor applications
US7626935B2 (en) 2005-05-02 2009-12-01 Analog Devices, Inc. Data bus with client-aborted message handling method
US7587662B2 (en) * 2005-09-29 2009-09-08 Fisher-Rosemount Systems, Inc. Detection of noise within an operating frequency on a network
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7836220B2 (en) * 2006-08-17 2010-11-16 Apple Inc. Network direct memory access

Also Published As

Publication number Publication date
US20080082544A1 (en) 2008-04-03
GB2454439A (en) 2009-05-06
GB2454439A8 (en) 2009-05-06
CN101512990B (zh) 2013-02-13
GB2454439B (en) 2011-05-18
CN101512990A (zh) 2009-08-19
WO2008042808A1 (en) 2008-04-10
GB0904298D0 (en) 2009-04-22
US8165160B2 (en) 2012-04-24

Similar Documents

Publication Publication Date Title
DE112007001991T5 (de) Verfahren und System zum Validieren eines Schreibvorgangs für eine Baugruppe auf einem seriellen Bus
DE69433098T2 (de) Vorrichtung zur Übertragung von Daten
DE2342009C2 (de) Prüfsystem
EP2160857B1 (de) Prüfverfahren und elektronische schaltung zur sicheren seriellen übertragung von daten
EP2028797B1 (de) Verfahren zur Datenübertragung
EP3977682B1 (de) Fehlererkennung-testeinrichtung für eine teilnehmerstation eines seriellen bussystems und verfahren zum testen von mechanismen zur fehlererkennung bei einer kommunikation in einem seriellen bussystem
DE3736550A1 (de) Verfahren und vorrichtung zum simultanen datenverkehr
DE102005053103A1 (de) Verfahren sowie System zur Übertragung von zyklischen und azyklischen Daten
EP1574004A2 (de) Verfahren zur übertragung von daten auf einem bus
EP1469625B1 (de) Verfahren und Vorrichtung zum Paket-orientierten Übertragen sicherheitsrelevanter Daten
DE112021001452T5 (de) Kommunikationssystem
EP1357707B1 (de) Verfahren zur Übertragung von Nachrichten auf einem Bussystem
EP2567485A1 (de) Verfahren und vorrichtung zur absicherung von über eine schnittstelle zu übertragenden datenpaketen
EP0985305A1 (de) Verfahren und vorrichting zur übertragung eines kontinuierlichen datenstroms in paketierter form
DE102012110712A1 (de) Verfahren und System zur Funktionsprüfung einer Fehlererkennungseinheit einer CAN-Bus-Controllereinheit
EP1609266B1 (de) Verfahren und messgerät zum ermitteln einer fehlerrate ohne inkrementale redundanz
DE69900971T2 (de) Unidirektionale Prüfung von bus-basiertem System
DE10243319B4 (de) Sichere Datenübertragung
DE69836937T2 (de) Verfahren zur Störungsbeseitigung und Kommunikationssystem
EP1400063A2 (de) Fehlertoleranter verbindungstest
EP3917048B1 (de) Verfahren sowie vorrichtungen zum übertragen von daten
EP3987697B1 (de) Verfahren zum betreiben eines kommunikationsnetzwerks, kommunikationsnetzwerk und teilnehmer für ein kommunikationsnetzwerk
DE10252109B4 (de) Verfahren zur Parametrierung
EP0642078A2 (de) Verfahren und Vorrichtung zur Fehlerprüfung und zur Fehlerkorrektur in Speicherbausteinen
DE10347381B4 (de) Verfahren und Vorrichtung zur fehlerabgesicherten Übertragung von Nutzdaten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012560000

Ipc: H04L0012700000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012560000

Ipc: H04L0012700000

Effective date: 20121120

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee