Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
LOGIC CIRCUIT FOR CALCULATING CRC TEST VALUES
Document Type and Number:
WIPO Patent Application WO/2010/025786
Kind Code:
A1
Abstract:
The invention relates to a logic circuit for calculating a CRC test value of a message, wherein the CRC test value has a specifiable length. The logic circuit comprises an input (402) for receiving the message, an input (401) for receiving a freely specifiable CRC polynomial, calculation means (421-426, "&", "=1") for calculating a CRC test value of the message using the CRC polynomial and switching means (430), which connect the calculation means (421-426, "&", "=1") according to a length of the CRC polynomial in such a way that the length of the CRC test value corresponds to the length of the CRC polynomial. Therefore, a hardware circuit can be provided which permits the calculation of test values of different lengths while using any generator polynomials.

Inventors:
SCHULTZE STEPHAN (DE)
Application Number:
PCT/EP2009/004427
Publication Date:
March 11, 2010
Filing Date:
June 19, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
SCHULTZE STEPHAN (DE)
International Classes:
H03K19/003; G06F11/10; H03M13/09
Foreign References:
US4723243A1988-02-02
US6701480B12004-03-02
US6128760A2000-10-03
Attorney, Agent or Firm:
THÜRER, Andreas (DE)
Download PDF:
Claims:
Ansprüche

1. Logikschaltung zur Berechnung eines CRC-Prüfwerts einer Nachricht, wobei der CRC-Prüfwert eine vorgebbare Länge aufweist, umfassend ' einen Eingang (201; 402) zur Aufnahme der Nachricht (203d, 203e) , einen Eingang (201; 401) zur Aufnahme eines frei vorgebbaren CRC-Polynoms (203a) , Berechnungsmittel (421-426, "&", "=1") zur Berechnung eines CRC-Prüfwerts (204b, 204d) der Nachricht (203d, 203e) anhand des CRC-Polynoms (203a) , und

Schaltmittel (430), welche die Berechnungsmittel (421-426, "Sc", "=1") in Abhängigkeit von einer Länge (203b) des CRC- Polynoms (203a) so beschälten, dass die Länge des CRC- Prüfwerts der Länge (203b) des CRC-Polynoms (203a) entspricht .

2. Logikschaltung nach Anspruch 1, wobei die Berechnungsmittel (421-426, "&", "=1") wenigstens ein Schieberegister (421-426) aufweisen, dessen höchstwertiges Bit (422-426) durch die Schaltmittel (430) definiert wird.

3. Logikschaltung nach Anspruch 2 , umfassend einen Eingang (201) zur Aufnahme eines Initialisierungswerts für das Schieberegister (421-426) .

4. Logikschaltung nach Anspruch 2 oder 3, wobei die Schaltmittel wenigstens einen Multiplexer (430) aufweisen, an den wenigstens zwei Bits des wenigstens einen Schieberegisters (421-426) geführt werden.

5. Logikschaltung nach einem der vorstehenden Ansprüche, wobei die Berechnungsmittel (421-426, "&", "=1") wenigstens ein XOR-Gatter ("=1") aufweisen.

6. Logikschaltung nach einem der vorstehenden Ansprüche, wobei ein Eingang (201; 403) zur Aufnahme der Länge (203b) des CRC-Polynoms (203a) vorgesehen ist.

7. Logikschaltung nach einem der vorstehenden Ansprüche, wobei wenigstens ein vorbestimmtes CRC-Polynom integriert ist.

8. Logikschaltung nach einem der vorstehenden Ansprüche, die in einen Kommunikationscontroller integriert ist.

9. Logikschaltung nach einem der vorstehenden Ansprüche, die als integrierter Schaltungsbaustein ausgebildet ist.

10. Vorrichtung zur Berechnung von CRC- Prüfwerten, die wenigstens zwei Logikschaltungen nach einem der vorstehenden Ansprüche aufweist.

11. Verwendung einer Logikschaltung nach einem der Ansprüche 1 bis 9 oder einer Vorrichtung nach Anspruch 10 in einem Feldbus-Kommunikationssystem.

12. Verwendung einer Logikschaltung nach einem der

Ansprüche 1 bis 9 oder einer Vorrichtung nach Anspruch 10 in einem Netzwerk nach einem SERCOS-Standard.

13. Verwendung einer Logikschaltung nach einem der Ansprüche 1 bis 9 oder einer Vorrichtung nach Anspruch 10 für Echtzeitdatenübertragung.

Description:
324753

04.09.2008 - Kauth

Robert Bosch GmbH, Stuttgart

Logikschaltung zur Berechnung von CRC-Prüfwerten

Beschreibung

Die vorliegende Erfindung betrifft eine Logikschaltung zur Berechnung von CRC-Prüfwerten sowie eine Verwendung einer derartigen Schaltung bei einer Datenübertragung.

Stand der Technik

Bei der zyklischen Redundanzprüfung (cyclic redundancy check, CRC) handelt es sich um ein Verfahren aus der Informationstechnologie zur Bestimmung eines Prüfwerts für Daten (z.B. Netzwerkverkehr oder eine Datei), um Fehler bei der Übertragung oder Duplizierung von Daten erkennen zu können .

CRC-Prüfwerte werden häufig auch als CRC-Prüfsummen bezeichnet, obwohl es sich im eigentlichen Sinne um Prüfdivisionsreste und nicht um Summen handelt. Bei der CRC wird ein Datenblock durch ein CRC-Polynom modulo dividiert. Der Divisionsrest stellt den CRC- Prüfwert dar.

CRC-Typen werden anhand des verwendeten CRC- Polynoms (Generatorpolynom) unterschieden. Nach der Bitlänge der Polynome richtet sich die Länge des prüfbaren Datenblocks. Es existieren bekannte Standard- Polynome, wie z.B. :

CRC-CCITT (CRC-16) : 0x11021 IBM-CRC-16: 0x18005

IEEE-802 CRC (CRC-32) : 0xl04CllDB7 CRC32/4 : 11EDC6F41 CAN-CRC: 0xC599 Bluetooth: 0x35

Es ist bekannt, CRC-Logikschaltungen unter Verwendung eines Schieberegisters - üblicherweise, ein Schieberegister mit linearer Rückkopplung LFSR (linear feedback ' shift register) - zu realisieren, wobei XOR-Gatter zwischen den einzelnen Bits des Registers vorgesehen sind. Dabei hängt die Plazierung der XOR-Gatter von den Koeffizienten der entsprechenden Tenne im Polynom ab, die 1 betragen. In der US 4,723,243 sowie der US 6,253,346 Bl werden dedizierte Schaltungen zum Berechnen einer CRC-32 Prüfsumme offenbart. Diese Schaltungen sind jedoch unflexibel, da sie nur eine vorgegebenes Generatorpolynom verwenden können, im genannten Beispiel CRC-32.

Insbesondere in bestimmten Bereichen der Datenübertragung ist es notwendig, unterschiedliche Generatorpolynome verwenden zu können. Diese müssen entweder durch Implementierung mehrerer Hardwareschaltungen oder softwareseitig berechnet werden. Beide Möglichkeiten sind aufwändig. Weiterhin können in Situationen, in denen die notwendigen CRC-Polynome noch nicht bekannt sind, keine (schnellen) Hardwareschaltungen verwendet werden. Statt dessen müssen langsame Softwarelösungen zum Einsatz kommen. Ausgehend von diesem Stand der . Technik wird eine Logikschaltung zur Berechnung eines CRC- Prüfwerts einer Nachricht mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche und der nachfolgenden Beschreibung.

Vorteile der Erfindung

Durch die erfindungsgemäße Logikschaltung kann eine wesentliche Beschleunigung des Berechnungsverfahrens bei großer Flexibilität erreicht werden. Die Logikschaltung ist in der Lage, beliebige CRC-Polynome zu verwenden, wobei die maximale Bitzahl des Polynoms nur durch die Ausgestaltung der Schaltung begrenzt wird. In der Praxis wird es sich jedoch anbieten, eine maximale Bitzahl von 32 oder 64 anzusetzen.

Es ist vorteilhaft, wenn die Logikschaltung eine Schnittstellenfunktionalität, beispielsweise eine API, bereitstellt. Dieses Verfahren ermöglicht die schnelle

Berechnung von CRC-Prüfwerten insbesondere von Datenblöcken in einem Datentelegramm an variablen Positionen. Die Logikschaltung kann als integrierte Schaltung oder Teil einer integrierten Schaltung ausgebildet sein. Sie kann ebenso als ASIC oder FPGA usw. ausgebildet sein. Im Stand der Technik bestehen Logikschaltungen in den meisten Fällen nicht mehr wie früher aus festverdrahteter Logik, sondern aus flexibel programmierbaren Bausteinen (FPGAs, EPLDs, ÄSICs, Gate Arrays usw.) . Diese Bausteine beinhalten typenabhängig keine vorbestimmten Logikfunktionalitäten, sondern stellen eine Art "Logikbaukasten 11 bereit. Durch Programmierung dieser Bausteine kann eine erwünschte Funktionalität vorgegeben werden. Herkömmliche Logikbausteine weisen eine vorbestimmte, herstellungs- oder typenbedingte Kapazität auf. In vielen Fällen sind bei bestehenden Schaltungen bereits Logikbausteine vorhanden, deren Kapazität noch nicht vollständig belegt ist. In diesem Fall kann die erfindungsgemäße Logikschaltung besonders vorteilhaft implementiert werden, da nur geringe oder keine schaltungstechnischen Veränderungen notwendig sind. Damit kann eine Kosteneinsparung erreicht werden. Bei der Datenübertragung werden die Datenblöcke an die Logikschaltung übergeben, die dann selbständig die entsprechenden CRC- Prüfwerte berechnet. Die Übergabe kann beispielsweise seriell oder parallel, über Register usw. erfolgen.

Die Prüfsumme eines Datenstroms kann bit- oder byteweise usw. berechnet und vom Sender an die Daten angehängt werden. Die Berechung der Prüfsumme an sich erfolgt vorzugsweise über bekannte Methoden, insbesondere

Verwendung von Schieberegistern zur Verarbeitung eines Bit- Datenstroms, wie es bspw. im zitierten Stand der Technik beschrieben ist. Zweckmäßigerweise wird das höchstwertiges Bit des Schieberegisters durch die Schaltmittel definiert. Vorteilhafterweise weisen die Schaltmittel dazu wenigstens einen Multiplexer auf, an den wenigstens zwei Bits des Schieberegisters geführt werden. Weiterhin umfassen die Berechnungsmittel zweckmäßigerweise wenigstes wenigstens ein XOR-Gatter. Mittels XOR-Gattern kann eine Polynomdivision besonders leicht in Hardware implementiert werden. Die Längenabhängigkeit kann dann beispielsweise dadurch erreicht werden, dass eines der Bits des Schieberegisters über den Multiplexer ausgewählt und als Rückkopplung in den XOR-Block geführt wird. Bei einer 32bit- Prüfsumme benötigt der Multiplexer dann bspw. fünf Steuereingänge, die einen von 2 A 5 (=32) Eingängen als rückzukoppelndes CRC-Registerbit auswählen. Alternativ könnte auch eine Kette von 31 AND-Gattern verwendet werden, wobei jedes AND-Gatter zwei Eingänge aufweist, an denen jeweils ein CRC-Registerbit und ein konfigurierbares Bit anliegt. In diesem Fall benötigt man bspw. 31 Steuerbits (anstatt 5 Steuerbits im Vergleich bei einem MUX) , von denen nur genau ein einziges UND-Glied mit einer "1" versehen wird, alle anderen haben den Wert "0".

Vorzugsweise weist die Logikschaltung einen Eingang zur Aufnahme eines Initialisierungswerts bzw. Startwerts für das Schieberegister auf . In Abhängigkeit vom verwendeten CRC-Polynom haben sich haben sich verschiedene Initialisierungswerte als vorteilhaft erwiesen, die vorteilhaft der Logikschaltung ebenfalls von außen zuführbar sind. Beispielsweise wird bei CRC- 16 nach CCITT mit dem Polynom x A 16 + x A 12 + x A 5 + 1 als Startwert "1" in jedem Registerbit verwendet. Der Startwert kann aber auch jeden beliebigen Wert , insbesondere auch "0" annehmen.

Vorteilhafterweise ist wenigstens ein vorbestimmtes CRC- Polynom integriert ist. Es bietet sich an, die für den geplanten Verwendungszweck benötigten und/oder die bekannten, bei der Beschreibung des Stands der Technik genannten Polynome bereits fest in die Schaltung zu integrieren, wodurch insbesondere der externe Schaltungsaufwand reduziert werden kann. Insbesondere kann eine Auswahlmöglichkeit vorgesehen sein, um eines der vorbestimmten CRC- Polynome zur Verwendung auszuwählen. Ebenso ist möglich, nur ein vorbestimmtes CRC-Polynom zu integrieren, das bspw. dann automatisch verwendet wird, wenn kein frei vorgebbares CRC-Polynom am Eingang anliegt. Es bietet sich an, zu jedem vorbestimmten CRC-Polynom auch einen initialisierungswert vorzubestimmen.

Es ist zweckmäßig, wenn eine Länge des CRC-Polynoms extern vorgebbar ist. Ebenso ist es möglich, die Länge des extern vorgegebenen CRC- Polynoms innerhalb der Schaltung zu bestimmen, wobei jedoch durch die externe Vorgabe der Länge die Komplexität der Schaltung vermindert werden kann. Durch die Bestimmung der Länge innerhalb der Schaltung ist es möglich, den externen Schaltungsaufwand zu vermindern.

Es ist besonders zweckmäßig, wenn die erfindungsgemäße Logikschaltung in einen Kommunikationscontroller integriert ist. Kommunikationscontroller werden für die Datenübertragung verwendet und stellen verschiedene Funktionalitäten für die Datenübertragung bereit. Durch die zusätzliche Integration der Logikschaltung kann eine vorteilhafte Platzersparnis erzielt werden. Es versteht sich, dass die erfindungsgemäße Logikschaltung ebenso in andere Logikbausteine integrierbar ist.

Ebenso vorteilhaft ist es, wenn die erfindungsgemäße Logikschaltung als integrierter Schaltungsbaustein ausgebildet ist. Dadurch kann sie zusätzlich zu vorhandenen Bausteinen oder Controllern verwendet werden und in bestehende Systeme eingesetzt werden.

Es ist zweckmäßig, wenn die erfindungsgemäße Logikschaltung für ethernetbasierte Datenübertragung verwendet wird. Ethernetbasierte Datenübertragung ist mittlerweile weit verbreitet und bildet eine Standardausführungsform der Datenübertragung. Die erfindungsgemäße Logikschaltung kann vorteilhaft in bestehende Systeme integriert werden.

In einer besonders bevorzugten Ausführungsform wird die erfindungsgemäße Logikschaltung in einem Feldbus -Netzwerk, insbesondere in einem Netzwerk nach einem SERCOS-Standard verwendet. Beispielsweise kann ein Netzwerk nach dem SERCOS III-Standard verwendet werden, der die Verwendung von Ethernet -Komponenten bei einer SERCOS-Verbindung erlaubt.

Zweckmäßigerweise wird die erfindungsgemäße Logikschaltung für EchtZeitdatenübertragung bzw. Echtzeitkommunikation verwendet. Besonders bei der Echtzeitkommunikation wirkt sich die beschleunigte CRC- PrüfWertberechnung vorteilhaft aus.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung . .

Es versteht sich, daß die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.

Figurenbeschreibung

Im Folgenden sollen die Erfindung und insbesondere deren Vorteile anhand eines in den Figuren dargestellten Ausführungsbeispiels näher erläutert werden. Es zeigt

Figur Ia ein Flussdiagramm einer Datenübertragung, bei der

Datenfelder mit CRC- Prüfwerten versehen werden, im Stand der Technik;

Figur Ib ein Flussdiagramm entsprechend Figur Ia, wobei eine Ausgestaltung einer erfindungsgemäßen Logikschaltung verwendet wird;

Figur 2 eine schematische Darstellung einer

Ausführungsform einer erfindungsgemäßen Logikschaltung ;

Figur 3 den Aufbau eines Masterdatentelegramms nach dem SERCOS III-Standard, das unter Verwendung einer Ausführungsform der erfindungsgemäßen Logikschaltung erzeugt ist; und

Figur 4 eine schematische Darstellung der Schaltelemente einer Ausführungsform einer erfindungsgemäßen Logikschaltung .

In Figur Ia wird ein Flussdiagramm einer Datenübertragung im Stand der Technik gezeigt, wobei ausgewählte Datenfelder mit CRC- Prüfwerten versehen werden.

Im Verfahrensschritt 100 werden die zu übertragenden Daten vorbereitet. Dazu gehört unter anderem die Einteilung der Daten in Datenblöcke, wobei einzelne Datenblöcke in Datentelegrammen übertragen werden. - S -

Im Schritt 101 wird zu jedem Datenblock der zugehörige CRC- Prüfwert berechnet. Dies erfolgt im Stand der Technik durch Softwareroutinen, die auf Grund der beschriebenen Anforderungen eine relativ lange Zeitdauer in Anspruch nehmen .

Im Verfahrensschritt 102 werden dann die Datenblöcke mit den berechneten CRC-Prüfwerten zusammengefasst . Die zusammengefassten Daten werden schließlich im Verfahrensschritt 103 an den Kommunikationscontroller übergeben. Der Kommunikationscontroller führt die anschließende Datenübertragung weitgehend selbständig durch .

In Figur Ib ist ein dem in Figur Ia gezeigten Flussdiagramm entsprechendes Flussdiagramm dargestellt, wobei eine bevorzugte Ausgestaltung einer erfindungsgemäßen Logikschaltung verwendet wird.

In Schritt 110 werden wiederum die zu übertragenden Daten in einzelne Datenblöcke unterteilt. Im Verfahrensschritt 111 wird die zur Berechnung von CRC- Prüfwerten dedizierte Logikschaltung initialisiert und konfiguriert. Dabei wird der Logikschaltung u.a. das zu verwendende CRC-Polynom, die Länge des zu verwendenden CRC- Polynoms und die Position der Datenblöcke mitgeteilt, für die CRC-Prüfwerte berechnet werden sollen.

Im Verfahrensschritt 112 sind nur noch die Datenblöcke der Logikschaltung bzw. einem Kommunikationscontroller, der eine integrierte Logikschaltung aufweist, zu übergeben. Vor der anschließenden Datenübertragung führt die Logikschaltung bzw. die in den Kommunikationscontroller integrierte Logikschaltung die CRC- PrüfWertberechnung selbständig durch. Auf diese Weise kann das Verfahren beschleunigt werden.

Durch die Verwendung einer erfindungsgemäß Logikschaltung können insbesondere Kommunikationscontroller bereitgestellt werden, die für unterschiedliche Übertragungsprotokolle, insbesondere unterschiedliche Feldbussysteme, geeignet sind. Beispielsweise wird bei einem SERCOS I/II- oder CAN- Bus eine 16bit-Prüfsumme verwendet, wohingegen bei einem SERCOS III, safety SERCOS oder EtherCAT-Bus eine 32bit- Prüfsumme verwendet wird.

In Figur 2 ist eine Ausführungsform einer erfindungsgemäßen Logikschaltung grob schematisch dargestellt und insgesamt mit 200 bezeichnet. Die Logikschaltung 200 weist einen Eingang 201 und einen Ausgang 202 auf. Der Eingang 201 und der Ausgang 202 können für serielle oder parallele Datenübermittlung ausgebildet sein, wie es im Stand der Technik hinreichend bekannt ist. Es versteht sich, dass es sich bei dem Eingang 201 und dem Ausgang 202 nicht um physikalisch in dieser Form ausgebildete Bauteile wie z.B. Stecker usw. handeln muss, sondern dass ebenso Ein- und Ausgänge einer logischen Schnittstellenbeschreibung von dieser Beschreibung umfasst sind.

An den Eingang 201 werden Eingabedaten 203 bereitgestellt. Die Eingabedaten 203 enthalten verschiedene Datenbereiche bzw. Datenblöcke 203a bis 203e. In dieser schematischen Darstellung entspricht die Unterteilung der Eingabedaten 203 in einzelne Blöcke nicht unbedingt einer zeitlichen, räumlichen oder andersartigen Unterteilungen, sondern stellt vor allem eine schematische Unterteilung dar. Die Eingabedatenblöcke 203a bis 203e enthalten zum einen die Konfigurationsdaten, die zur Initialisierung und Konfiguration der Logikschaltung 200 notwendig sind, und zum anderen die Daten, für die eine CRC- PrüfWertberechnung stattfinden soll. Beispielsweise enthält der Eingabedatenblock 203a das zu verwendende CRC-Polynom, der Eingabedatenblock 203b die Länge des zu verwendenden CRC- Polynoms, der Eingabedatenblock 203c die Menge oder Anzahl der Daten, für die die CRC- PrüfWertberechnung erfolgen soll, und die Eingabedatenblöcke 203d und 203e die Daten, für die die CRC-PrüfWertberechnung erfolgen soll.

Vorzugsweise kann auch ein Startwert für ein Schieberegister innerhalb der Logikschaltung 200 über den Eingang 201 vorgebbar sein. Üblicherweise haben sich verschiedene Startwerte, bspw. "111111....1" ("1" in jedem Registerbit) oder "0" ("0" in jedem Registerbit) in Abhängigkeit vom ausgewählten CRC-Polynom als vorteilhaft erwiesen. Der Startwert kann innerhalb der Eingabedaten 203 als weiterer Datenbereich bzw. Datenblock (nicht gezeigt) vorgegeben werden.

Die Eingabedatenblöcke 203a bis 203e werden als Eingabedaten 203 an den Eingang 201 übergeben. Die

Logikschaltung 200 berechnet dann entsprechend ihrer Konfiguration für die übergebenen Daten die zugehörigen CRC-Prüfwerte .

Die Logikschaltung 200 stellt schließlich an ihrem Ausgang 202 die Ausgabedaten 204 bereit. In diesem Ausführungsbeispiel enthalten die Ausgabedaten 204 Ausgabedatenblöcke 204a bis 204d. Die Anzahl der Ausgabedatenblöcke wird vorzugsweise durch die Anzahl der Eingabedatenblöcke bestimmt. In diesem Beispiel werden für die zwei Eingabedatenblöcke 203d und 203e jeweils ein CRC- Prüfwert berechnet. Die Eingabedatenblöcke 203d und 203e werden als Ausgabedatenblöcke 204a bzw. 204c ausgegeben, wobei die zugehörigen CRC- Prüfwerte 204b bzw. 204d jeweils als weitere Ausgabedatenblöcke eingefügt werden.

Auf diese Weise kann eine schnelle CRC-PrüfWertberechnung für variable Datenblöcke erreicht werden, wie sie insbesondere bei einer Datenübertragung nach dem SERCOS III-Standard auftreten, wie näher anhand Figur 3 erläutert wird.

In Figur 3 ist der Aufbau eines beispielhaften Masterdatentelegramms (MDT) nach dem SERCOS III -Standard schematisch gezeigt.

Bei SERCOS handelt es sich um eine standardisierte Servoantriebsschnittstelle mit Feldbuskopplern. Das Anwendungsspektrum umfasst neben spanenden Bearbeitungstechnologien auch andere Automatisierungslösungen z.B. auf dem Gebiet der Montageroboter, sowie von Druck- und Verpackungsmaschinen.

Der Zugriff auf das Übertragungsmedium wird durch ein Zeitschlitzverfahren realisiert. Dabei wird jedem Teilnehmer ein Zeitpunkt zugeordnet, an dem er exklusiv das Zugriffsrecht auf das Übertragungsmedium besitzt.

Der Kommunikationszyklus wird durch das

Mastersynchronisationstelegramm (MST) des Masters, z.B. ein Steuerungssystem, gestartet. Die Slaves, z.B. Antriebssysteme oder E/A-Stationen, senden nacheinander jeweils ein ' Antriebstelegramm (AT) mit ihren momentanen Istwerten. Im Anschluss sendet der Master das Masterdatentelegramm (MDT) mit den Sollwerten. Dieser Ablauf wiederholt sich in jedem Kommunikationszyklus. Alle Datentelegramme werden von allen Slaves empfangen. Ein MDT enthält daher Daten für alle anzusteuernden Slaves.

Ein MDT Feld (MDT data field) 300 weist drei Bereiche 301, 302, 303 auf, wobei der Bereich 301 als "MDT hotplug field", der Bereich 302 als "MDT Service Channel field" und der Bereich 303 als "MDT realtime data field" bezeichnet wird. Der Bereich 303 (MDT realtime data field) enthält die Echtzeitdaten, die an alle anzusteuernden Slaves übertragen werden.

In dem gezeigten Beispiel weist der Bereich 303 drei innere Bereiche 304, 305 und 306 auf, die jeweils Echtzeitdaten für unterschiedliche angeschlossene Slaves beinhalten. In diesem Beispiel sind Daten für drei angeschlossene Slaves enthalten, weshalb die Bereiche 304, 305 und 306 als "realtime data 1", "realtime data 2" und "realtime data 3" bezeichnet werden. Die Anzahl der Slaves, für die Daten übertragen werden, kann sich bei jedem Übertragungszyklus ändern.

Abhängig vom Verwendungszweck der angesprochenen Slaves weisen die Bereiche 304, 305, 306 wiederum einen unterschiedlichen inneren Aufbau auf.

In dem gezeigten Beispiel, weist der Bereich 304 (realtime data 1) zwei Bereiche 304a und 304b auf, die als "Standard realtime data 1" (SRD 1) und "safe data Container 1" (SDC 1) bezeichnet werden.

Der Bereich 305 (realtime data 1) weist einen Bereich 305a (SRD 1) auf, der Bereich 306 (realtime data 3) weist einen Bereich 306a (SRD 3) und einen Bereich 306b (SDC 3) auf.

In den Bereichen 304a (SRD 1) , 305a (SRD 2) und 306a

(SRD 3) sind die Daten für die jeweiligen Slaves enthalten, die keine erhöhte Fehlersicherheit aufweisen müssen. In den Bereichen 304b (SDC 1) und 306b (SDC 3) hingegen sind die Daten enthalten, die eine erhöhte Fehlersicherheit aufweisen. Zur Bereitstellung der erhöhten Fehlersicherheit werden CRC-Prüfwerte hinzugefügt.

Im Stand der Technik werden die CRC-Prüfwerte für die Bereiche 304b und 306b über Softwareroutinen berechnet. Der Inhalt der Bereiche 304a, 305a, 306a und der Bereiche 304b und 306b variiert normalerweise bei jedem Übertragungs- zyklus. Auch sind die Unterteilungen des Bereichs 303 (MDT realtime data field) in die Bereiche 304 (realtime data 1) , 305 (realtime data 2) und 306 (realtime data 3) nur beispielhaft und variieren ebenfalls von Anwendung zu Anwendung. Auch ist die Anzahl der genannten Unterteilungen nicht konstant.

Aus diesen Gründen müssen die CRC- Prüfwerte in jedem Übertragungszyklus erneut berechnet werden. Dies nimmt in jedem Übertragungszyklus eine lange Zeitdauer in Anspruch.

Durch Verwendung einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens zur Berechnung der CRC- Prüfwerte, die in die variierenden Bereichen "SDC" hinzugefügt werden, kann eine wesentliche Zeitersparnis erreicht werden.

In Figur 4 ist eine bevorzugte Ausführungsform einer erfindungsgemäßen Logikschaltung schematisch dargestellt und insgesamt mit 400 bezeichnet. Die Logikschaltung 400 weist einen ersten Eingang 401 zur Aufnahme eines Generatorpolynoms auf . Weiterhin weist die Logikschaltung 400 einen zweiten Eingang 402 zur Aufnahme einer Nachricht auf. Weiterhin weist die Logikschaltung 400 einen dritten

Eingang 403 zur Aufnahme der Länge des zu verwendenden CRC- Polynoms auf. Schließlich weist die Logikschaltung 400 einen Ausgang 404 zur Ausgabe des berechneten CRC-Prüfwerts auf.

Die Nachricht wird einem Schieberegister innerhalb der Logikschaltung 400 zugeführt, welches über eine bei Ausgestaltung der Logikschaltung frei wählbare Anzahl von Bits verfügt. In dem dargestellten Ausführungsbeispiel verfügt das Schieberegister über sechs Bits 421 bis 426. Die frei wählbare Anzahl der Bits des Schieberegisters bestimmt die maximale Größe des mit der Logikschaltung verwendbaren CRC-Polynoms .

Die Logikschaltung 400 verfügt weiterhin über

Speichermittel zur Aufnahme des CRC-Polynoms. Die Speichermittel speichern die einzelnen Bits 411 bis 416 des Generatorpolynoms und können beispielsweise als Flipflops ausgebildet sein. Die Anzahl der Speichermittel entspricht vorzugsweise der Anzahl der Schieberegisterplätze.

Beispielsweise bietet es sich an, eine Anzahl von 32 oder 64 Bits vorzusehen, wobei dann CRC-Prüfsummen mit maximal 32 bzw. 64 Bit berechnet werden können. Optional weist die Logikschaltung auch einen Eingang (nicht gezeigt) zur Aufnahme eines Presets bzw. Initialisierungswertes für das Schieberegisters auf. In Abhängigkeit vom verwendeten CRC- Polynom haben sich haben sich verschiedene Initialisierungswerte als vorteilhaft erwiesen, die vorteilhaft der Logikschaltung ebenfalls von außen zuführbar sind.

Zur Bestimmung des CRC- Prüfwerts ist jedes der Polynombits 411 bis 416 über ein AND-Gatter "&" mit einem XOR-Gatter ("=1") verbunden. Die einzelnen XOR-Gatter "=1" sind zwischen den Bits des Schieberegisters angeordnet. Die prinzipielle Funktionsweise einer derartigen Schaltung ist dem Fachmann bekannt und soll daher an dieser Stelle nicht weiter erläutert werden. Beispielsweise kann eine Invertierung stattfinden usw.

Erfindungsgemäß können in der Logikschaltung 400 CRC- Polynome variabler Länge verwendet werden. Dazu ist jeweils ein Eingang der AND-Gatter "&" mit einer Multiplexer- Schaltung 430 verbunden, die mittels der über den Eingang 403 zugeführten Länge des CRC-Polynoms ein Bit des Schieberegisters auswählt und als höchstwertiges Bit definiert.

Am Ende der Berechnung des CRC- Prüfwerts ist dieser in den Bits 421, 422, ... inklusive des ausgewählten höchstwertigen Bits abgelegt. Der Prüfwert kann dort beispielsweise seriell ebenfalls über die Multiplexer- Schaltung 430 oder auf andere Weise (beispielsweise parallel) entnommen werden, wozu der Ausgang 404 vorgesehen ist. Obwohl in der dargestellten Ausführungsform die Länge des CRC- Polynoms über den Eingang 403 zugeführt wird, kann dieser Eingang auch intern mit einer Berechnungsschaltung verbunden sein, die die Länge des Polynoms anhand der Bits 411 bis 416 bestimmt.

Es versteht sich, dass in den dargestellten Figuren nur beispielhafte Ausführungsformen der Erfindung dargestellt ist. Daneben ist jede andere Ausführungsform denkbar, ohne den Rahmen dieser Erfindung zu verlassen. Beispielsweise kann die Funktionalität der AND-Gatter in Figur 4 auch durch Multiplexer realisiert sein. Umgekehrt kann die Funktionalität des Multiplexers 430 auch durch AND-Gatter erreicht werden.

Bezugszeichen

101 - 103 Verfahrensschritt

110 - 112 Verfahrensschritt 200 Logikschaltung

201 Eingang

202 Ausgang

203 Eingabedaten

203a - 203e Eingabedatenblock 204 Ausgabedaten

204a - 204d Ausgabedatenblock

300 MDT Feld

301 MDT hotplug field

302 MDT service Channel field 303 MDT realtime data field

304 realtime data 1

304a Standard realtime data 1

304b safe data Container 1

305 realtime data 2 305a Standard realtime data 2

306 realtime data 3

306a Standard realtime data 3

306b safe data Container 3

400 Logikschaltung 401, 402, 403 Eingang

404 Ausgang

411 - 416 Generatorpolynombits

421 - 426 Schieberegisterbits

430 Multiplexer & AND-Gatter

=1 XOR-Gatter