DE102008045813A1 - Logic circuit for calculating CRC test values - Google Patents

Logic circuit for calculating CRC test values Download PDF

Info

Publication number
DE102008045813A1
DE102008045813A1 DE200810045813 DE102008045813A DE102008045813A1 DE 102008045813 A1 DE102008045813 A1 DE 102008045813A1 DE 200810045813 DE200810045813 DE 200810045813 DE 102008045813 A DE102008045813 A DE 102008045813A DE 102008045813 A1 DE102008045813 A1 DE 102008045813A1
Authority
DE
Germany
Prior art keywords
logic circuit
crc
data
circuit according
length
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.)
Ceased
Application number
DE200810045813
Other languages
German (de)
Inventor
Stephan Dr. Schultze
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 DE200810045813 priority Critical patent/DE102008045813A1/en
Priority to PCT/EP2009/004427 priority patent/WO2010025786A1/en
Publication of DE102008045813A1 publication Critical patent/DE102008045813A1/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00315Modifications for increasing the reliability for protection in field-effect transistor circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Es wird eine Logigschaltung zur Berechnung eines CRC-Prüfwerts einer Nachricht vorgeschlagen, wobei der CRC-Prüfwert eine vorgebbare Länge aufweist. Die Logikschaltung umfasst einen Eingang (402) zur Aufnahme der Nachricht, einen Eingang (401) zur Aufnahme eines frei vorgebbaren CRC-Polynoms, Berechnungsmittel (421-426, "&", "=1") zur Berechnung eines CRC-Prüfwerts der Nachricht anhand des CRC-Polynoms und Schaltmittel (430), welche die Berechnungsmittel (421-426, "&", "=1") in Abhängigkeit von einer Länge des CRC-Polynoms so beschalten, dass die Länge des CRC-Prüfwerts der Länge des CRC-Polynoms entspricht. Damit lässt sich eine Hardwareschaltung bereitstellen, die die Berechnung unterschiedlich langer Prüfwerte unter Verwendung beliebiger Genratorpolynome erlaubt.A logic circuit is proposed for calculating a CRC check value of a message, wherein the CRC check value has a predefinable length. The logic circuit comprises an input (402) for receiving the message, an input (401) for receiving a freely definable CRC polynomial, calculation means (421-426, "&", "= 1") for calculating a CRC check value of the message based on the CRC polynomial and switching means (430), which connect the calculation means (421-426, "&", "= 1") to a length of the CRC polynomial such that the length of the CRC check value is equal to the length of the CRC polynomial Corresponds to CRC polynomial. This can be used to provide a hardware circuit that allows the calculation of different length test values using arbitrary genrator polynomials.

Description

Die vorliegende Erfindung betrifft eine Logikschaltung zur Berechnung von CRC-Prüfwerten sowie eine Verwendung einer derartigen Schaltung bei einer Datenübertragung.The The present invention relates to a logic circuit for calculation of CRC test values and a use of such Circuit during a data transmission.

Stand der TechnikState of the art

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.at the cyclic redundancy check (cyclic redundancy check, CRC) is an information technology process for determining a test value for data (eg Network traffic or a file) to errors in the transfer or Recognize duplication of data.

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 check values are often referred to as CRC checksums, although in the true sense it is a test division remainder and not buzz. At the CRC, a block of data is passed through divides a CRC polynomial modulo. The remainder of the division represents the CRC check value represents.

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): 0x104C11DB7
CRC32/4: 11EDC6F41
CAN-CRC: 0xC599
Bluetooth: 0x35
CRC types are distinguished by the CRC polynomial used (generator polynomial). The length of the testable data block depends on the bit length of the polynomials. There are known standard polynomials, such. B .:
CRC-CCITT (CRC-16): 0x11021
IBM CRC-16: 0x18005
IEEE-802 CRC (CRC-32): 0x104C11DB7
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 Terme im Polynom ab, die 1 betragen. In der US 4,723,243 sowie der US 6,253,346 B1 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.It is known to implement CRC logic circuits using a shift register - usually a linear feedback shift register LFSR - with XOR gates provided between the individual bits of the register. The placement of the XOR gates depends on the coefficients of the corresponding terms in the polynomial, which are 1. In the US 4,723,243 as well as the US 6,253,346 B1 Dedicated circuits are disclosed for calculating a CRC-32 checksum. However, these circuits are inflexible because they can only use a given generator polynomial, CRC-32 in the example given.

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.Especially in certain areas of data transmission it is necessary to be able to use different generator polynomials. These must be done either by implementing multiple hardware circuits or software calculated. Both possibilities are expensive. Furthermore, in situations in which the necessary CRC polynomials are not yet known, no (fast) Hardware circuits are used. Instead, you have to slow software solutions are used.

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.outgoing from this prior art is a logic circuit for calculation a CRC check value of a message with the characteristics of Patent claim 1 proposed. Advantageous embodiments are Subject matter of the dependent claims and the description below.

Vorteile der ErfindungAdvantages of the invention

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.By the logic circuit according to the invention can be a Substantial acceleration of the calculation process at large Flexibility can be achieved. The logic circuit is in able to use any CRC polynomials, the maximum number of bits of the polynomial limited only by the design of the circuit becomes. In practice, however, it will offer a maximum Bit number of 32 or 64 to set.

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, ASICs, Gate Arrays usw.). Diese Bausteine beinhalten typenabhängig keine vorbestimmten Logikfunktionalitäten, sondern stellen eine Art ”Logikbaukasten” bereit. Durch Programmierung dieser Bausteine kann eine erwünschte Funktionalität vorgegeben werden.It is advantageous if the logic circuit has an interface functionality, for example, an API. This procedure allows the fast calculation of CRC test values in particular of data blocks in a data telegram at variable positions. The logic circuit can be an integrated circuit or part of a be formed integrated circuit. It can also be called ASIC or FPGA, etc. may be formed. In the prior art there are logic circuits in most cases not anymore like before hard-wired logic, but from flexibly programmable components (FPGAs, EPLDs, ASICs, Gate Arrays, etc.). These blocks include Depending on the type, no predetermined logic functionalities, but provide a kind of "logic kit" ready. By programming these blocks, a desired Functionality can be specified.

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.conventional Logic modules have a predetermined, manufacturing or type-related Capacity up. In many cases, existing circuits are Logic modules already exist whose capacity is still not fully occupied. In this case, the inventive Logic circuit can be implemented particularly advantageous because only small or no circuit changes necessary are. Thus, a cost saving can be achieved. In the Data transfer to the data blocks to the Logic circuit passed, which then independently calculated the corresponding CRC test values. The handover can for example be serial or parallel, via registers etc. take place.

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^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”.The checksum of a data stream can be calculated in bits or bytes, etc., and attached to the data by the sender. The calculation of the checksum per se is preferably done over be knew methods, in particular use of shift registers for processing a bit data stream, as described, for example, in the cited prior art. Conveniently, the most significant bit of the shift register is defined by the switching means. Advantageously, the switching means for this purpose at least one multiplexer, are passed to the at least two bits of the shift register. Furthermore, the calculating means expediently comprise at least one XOR gate. By means of XOR gates, a polynomial division can be implemented particularly easily in hardware. The length dependence can then be achieved, for example, by selecting one of the bits of the shift register via the multiplexer and feeding it as feedback into the XOR block. For example, with a 32-bit checksum, the multiplexer requires five control inputs that select one of 2 ^ 5 (= 32) inputs as the CRC register bit to feed back. Alternatively, a chain of 31 AND gates could be used, with each AND gate having two inputs, each with a CRC register bit and a configurable bit. In this case one needs, for example, 31 control bits (instead of 5 control bits in comparison with a MUX), of which only exactly one AND gate is provided with a "1", all others have the value "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^16 + x^12 + x^5 + 1 als Startwert ”1” in jedem Registerbit verwendet. Der Startwert kann aber auch jeden beliebigen Wert, insbesondere auch ”0” annehmen.Preferably the logic circuit has an input for receiving an initialization value or start value for the shift register. Dependent on The used CRC polynomial has different initialization values proved to be advantageous, the advantageous of the logic circuit also be fed from the outside. For example for CRC-16 according to CCITT with the polynomial x ^ 16 + x ^ 12 + x ^ 5 + 1 as Start value "1" used in each register bit. The starting value can also be any value, in particular also accept "0".

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.advantageously, At least one predetermined CRC polynomial is integrated. It lends itself to the intended use needed and / or the known, in the description of the Prior art polynomials already firmly in the circuit to integrate, which in particular the external circuitry can be reduced. In particular, a choice may be made be provided to use one of the predetermined CRC polynomials for use select. It is also possible, only a predetermined one Integrate CRC polynomial, which, for example, then used automatically if no freely specifiable CRC polynomial is present at the input. It makes sense, for each predetermined CRC polynomial also one to predetermine initialization value.

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.It is useful if a length of the CRC polynomial can be specified externally. It is also possible to change the length of the externally given CRC polynomial within the circuit determine, but by the external specification of the length the complexity of the circuit can be reduced. By the determination of the length within the circuit is it possible to reduce the external circuit complexity.

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.It is particularly useful when the inventive Logic circuit is integrated in a communication controller. Communication controllers are used for data transmission used and set different functionalities for the data transfer ready. By the additional Integration of the logic circuit can be a beneficial space saver be achieved. It is understood that the inventive Logic circuit can also be integrated into other logic devices.

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.As well It is advantageous if the inventive Logic circuit is designed as an integrated circuit module. This allows it in addition to existing building blocks or Controllers are used and used in existing systems become.

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.It is useful if the inventive Logic circuit for Ethernet-based data transmission is used. Ethernet-based data transmission is now widely used and forms a standard embodiment the data transmission. The inventive Logic circuitry can be advantageously integrated into existing systems become.

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.In In a particularly preferred embodiment, the inventive Logic circuit in a fieldbus network, in particular in one Network used according to a SERCOS standard. For example, can a network to be used according to the SERCOS III standard, the the use of Ethernet components in a SERCOS connection allowed.

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.Conveniently, the logic circuit according to the invention for Real-time data transmission or real-time communication used. Especially with real-time communication, the accelerated effect CRC check value calculation advantageous.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further Advantages and embodiments of the invention will become apparent from the Description and attached drawing.

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.It is understood that the features mentioned above and those yet to be explained not only in the combination specified, but also in other combinations or alone, without the To leave the scope of the present invention.

Figurenbeschreibungfigure description

Im Folgenden sollen die Erfindung und insbesondere deren Vorteile anhand eines in den Figuren dargestellten Ausführungsbeispiels näher erläutert werden.in the The following is intended to illustrate the invention and in particular its advantages an embodiment shown in the figures be explained in more detail.

Es zeigtIt shows

1a ein Flussdiagramm einer Datenübertragung, bei der Datenfelder mit CRC-Prüfwerten versehen werden, im Stand der Technik; 1a a flowchart of a data transmission in which data fields are provided with CRC check values, in the prior art;

1b ein Flussdiagramm entsprechend 1a, wobei eine Ausgestaltung einer erfindungsgemäßen Logikschaltung verwendet wird; 1b a flowchart corresponding 1a wherein an embodiment of a logic circuit according to the invention is used;

2 eine schematische Darstellung einer Ausführungsform einer erfindungsgemäßen Logikschaltung; 2 a schematic representation of an embodiment of a logic circuit according to the invention;

3 den Aufbau eines Masterdatentelegramms nach dem SERCOS III-Standard, das unter Verwendung einer Ausführungsform der erfindungsgemäßen Logikschaltung erzeugt ist; und 3 the construction of a master data telegram according to the SERCOS III standard, which is generated using an embodiment of the logic circuit according to the invention; and

4 eine schematische Darstellung der Schaltelemente einer Ausführungsform einer erfindungsgemäßen Logikschaltung. 4 a schematic representation of the switching elements of an embodiment of a logic circuit according to the invention.

In 1a wird ein Flussdiagramm einer Datenübertragung im Stand der Technik gezeigt, wobei ausgewählte Datenfelder mit CRC-Prüfwerten versehen werden.In 1a A flow chart of data transmission in the prior art is shown wherein selected data fields are provided with CRC check values.

Im Verfahrensschritt 100 werden die zu übertragenden taten vorbereitet. Dazu gehört unter anderem die Einteilung der Daten in Datenblöcke, wobei einzelne Datenblöcke in Datentelegrammen übertragen werden.In the process step 100 the actions to be transferred are prepared. Among other things, this includes the division of the data into data blocks, whereby individual data blocks are transmitted in data telegrams.

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.In step 101 For each data block, the corresponding CRC check value is calculated. This is done in the prior art by software routines that take a relatively long period of time due to the described requirements.

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 the process step 102 then the data blocks are combined with the calculated CRC check values. The summarized data is finally in the process step 103 passed to the communication controller. The communication controller performs the subsequent data transfer largely independently.

In 1b ist ein dem in 1a gezeigten Flussdiagramm entsprechendes Flussdiagramm dargestellt, wobei eine bevorzugte Ausgestaltung einer erfindungsgemäßen Logikschaltung verwendet wird.In 1b is a the in 1a shown flowchart corresponding flow chart, wherein a preferred embodiment of a logic circuit according to the invention is used.

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.In step 110 In turn, the data to be transmitted is divided into individual data blocks. In the process step 111 the logic circuit dedicated to calculating CRC check values is initialized and configured. Among other things, the logic circuit is informed of the CRC polynomial to be used, the length of the CRC polynomial to be used and the position of the data blocks for which CRC test values are to be calculated.

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.In the process step 112 are only the data blocks of the logic circuit or a communication controller having an integrated logic circuit to pass. Before the subsequent data transmission, the logic circuit or the logic circuit integrated into the communication controller independently carries out the CRC test value calculation. In this way, the process can be accelerated.

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.By the use of a logic circuit according to the invention In particular, communication controllers can be provided be used for different transmission protocols, especially different fieldbus systems are suitable. For example becomes a 16bit checksum on a SERCOS I / II or CAN bus whereas in a SERCOS III, safety SERCOS or EtherCAT bus a 32bit checksum is used.

In 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.In 2 an embodiment of a logic circuit according to the invention is shown roughly schematically and overall with 200 designated. The logic circuit 200 has an entrance 201 and an exit 202 on. The entrance 201 and the exit 202 can be designed for serial or parallel data transmission, as is well known in the art. It is understood that it is at the entrance 201 and the exit 202 not physically designed in this form components such. B. plug, etc. must act, but that also inputs and outputs of a logical interface description are included in this description.

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.At the entrance 201 become input data 203 provided. The input data 203 contain different data areas or data blocks 203a to 203e , In this schematic representation, the subdivision corresponds to the input data 203 in individual blocks not necessarily a temporal, spatial or other subdivisions, but above all represents a schematic subdivision.

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.The input data blocks 203a to 203e contain on the one hand the configuration data required for initialization and configuration of the logic circuit 200 and on the other hand the data for which a CRC check value calculation is to take place. For example, the input data block contains 203a the CRC polynomial to use, the input data block 203b the length of the CRC polynomial to use, the input data block 203c the amount or number of data for which the CRC check value calculation is to take place and the input data blocks 203d and 203e the data for which the CRC check value calculation is to take place.

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.A start value for a shift register within the logic circuit may also be preferred 200 over the entrance 201 be predeterminable. Usually, different start values, for example, "111111 .... 1"("1" in each register bit) or "0"("0" in each register bit) depending on the selected CRC polynomial have proven to be advantageous. The starting value can be within the input data 203 be specified as a further data area or data block (not shown).

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.The input data blocks 203a to 203e be as input data 203 to the entrance 201 to hand over. The logic circuit 200 then calculates the associated CRC check values according to their configuration for the transferred data.

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.The logic circuit 200 finally stops at its exit 202 the output data 204 ready. In this embodiment, the output data includes 204 Output data blocks 204a to 204d , The number of output data blocks is preferably determined by the number of input data blocks. In this example, for the two input data blocks 203d and 203e each calculated a CRC test value. The input data blocks 203d and 203e are called output data blocks 204a respectively. 204c output, with the associated CRC check values 204b respectively. 204d each inserted as additional output data blocks.

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 3 erläutert wird.In this way, a fast CRC check value calculation for variable data blocks can be achieved, as they occur in particular in the case of data transmission according to the SERCOS III standard, as described in more detail 3 is explained.

In 3 ist der Aufbau eines beispielhaften Masterdatentelegramms (MDT) nach dem SERCOS III-Standard schematisch gezeigt.In 3 the construction of an exemplary Master Data Telegram (MDT) according to the SERCOS III standard is shown schematically.

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.at SERCOS is a standardized servo drive interface with fieldbus couplers. The range of applications includes machining Machining technologies also other automation solutions z. As in the field of assembly robots, as well as printing and packaging machines.

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.Of the Access to the transmission medium is by a time slot method realized. Each participant is assigned a time, on which he exclusively the right of access to the transmission medium has.

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.Of the Communication cycle is through the master synchronization telegram (MST) of the master, z. As a control system started. The slaves, z. For example, drive systems or I / O stations send one at a time a drive telegram (AT) with its current actual values. Subsequent sends the master sends the master data telegram (MDT) with the setpoints. This Sequence repeats itself in every communication cycle. All data telegrams are received by all slaves. An MDT therefore contains Data for all the slaves to be controlled.

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.An MDT field (MDT data field) 300 has three areas 301 . 302 . 303 on, the area being 301 as "MDT hotplug field", the area 302 as "MDT service channel field" and the area 303 is called "MDT realtime data field". The area 303 (MDT realtime data field) contains the real-time data, which is transmitted to all the slaves to be controlled.

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.In the example shown, the. Area 303 three inner areas 304 . 305 and 306 which each contain real-time data for different connected slaves. This example contains data for three connected slaves, which is why the ranges 304 . 305 and 306 be referred to as "realtime data 1", "realtime data 2" and "realtime data 3". The number of slaves for which data is transferred may change each transmission cycle.

Abhängig vom Verwendungszweck der angesprochenen Slaves weisen die Bereiche 304, 305, 306 wiederum einen unterschiedlichen inneren Aufbau auf.Depending on the intended use of the addressed slaves, the areas indicate 304 . 305 . 306 again a different internal structure.

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.In the example shown, the area points 304 (realtime data 1) two areas 304a and 304b referred to as "standard realtime data 1" (SRD 1) and "safe data container 1" (SDC 1).

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.The area 305 (realtime data 1) has an area 305a (SRD 1) on, the area 306 (realtime data 3) indicates an area 306a (SRD 3) and an area 306b (SDC 3).

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.In the fields of 304a (SRD 1), 305a (SRD 2) and 306a (SRD 3) contain the data for the respective slaves, which do not have to have increased error safety. In the fields of 304b (SDC 1) and 306b (SDC 3), on the other hand, contains the data that has increased error safety. to To provide increased error security, CRC check values are added.

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 Übertragungszyklus. 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.In the prior art, the CRC test values for the ranges 304b and 306b calculated via software routines. The content of the areas 304a . 305a . 306a and the areas 304b and 306b usually varies with each transmission cycle. Also, the subdivisions of the area 303 (MDT realtime data field) into the areas 304 (real-time data 1), 305 (realtime data 2) and 306 (realtime data 3) only by way of example and also vary from application to application. Also, the number of subdivisions mentioned is not constant.

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.Out For these reasons, the CRC test values be recalculated in each transmission cycle. This takes a long time in every transmission cycle to complete.

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.By Use of a preferred embodiment of the invention Method for calculating the CRC test values included in the varying areas "SDC" added can be achieved, a significant time savings.

In 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.In 4 a preferred embodiment of a logic circuit according to the invention is shown schematically and in total with 400 designated. The logic circuit 400 has a first entrance 401 for receiving a generator polynomial. Furthermore, the logic circuit 400 a second entrance 402 to record a message. Furthermore, the logic circuit 400 a third entrance 403 to record the length of the CRC polynomial to be used. Finally, the logic circuit points 400 an exit 404 to output the calculated CRC check value.

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.The message becomes a shift register within the logic circuit 400 fed, which has a freely selectable in configuration of the logic circuit number of bits. In the illustrated embodiment, the shift register has six bits 421 to 426 , The arbitrary number of bits of the shift register determines the maximum size of the CRC polynomial usable with the logic circuit.

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.The logic circuit 400 also has storage means for receiving the CRC polynomial. The storage means store the individual bits 411 to 416 the generator polynomial and may be formed for example as flip-flops. The number of storage means preferably corresponds to the number of shift register locations. For example, it is advisable to provide a number of 32 or 64 bits, in which case CRC checksums with a maximum of 32 or 64 bits can be calculated.

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.optional the logic circuit also has an input (not shown) Recording a preset or initialization value for the shift register. Depending on the used CRC polynomial have become different initialization values proved to be advantageous, the advantageous of the logic circuit also be fed from the outside.

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.To determine the CRC check value, each of the polynomials is 411 to 416 connected via an AND gate "&" to an XOR gate ("= 1"). The individual XOR gates "= 1" are arranged between the bits of the shift register. The basic mode of operation of such a circuit is known to the person skilled in the art and will therefore not be explained further here. For example, an inversion may occur, etc.

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.According to the invention, in the logic circuit 400 CRC polynomials of variable length can be used. For this purpose, in each case one input of the AND gate "&" with a multiplexer circuit 430 connected by means of the entrance 403 length of the CRC polynomial selects one bit of the shift register and defines it as the most significant bit.

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.At the end of the calculation of the CRC check value, this is in the bits 421 . 422 , ... including the selected most significant bit. The test value can there, for example, also in series via the multiplexer circuit 430 or otherwise (for example, in parallel), including the output 404 is provided.

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.Although in the illustrated embodiment, the length of the CRC polynomial is across the input 403 This input can also be internally connected to a calculation circuit which determines the length of the polynomial based on the bits 411 to 416 certainly.

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 4 auch durch Multiplexer realisiert sein. Umgekehrt kann die Funktionalität des Multiplexers 430 auch durch AND-Gatter erreicht werden.It is understood that in the illustrated figures, only exemplary embodiments of the invention is shown. In addition, any other embodiment is conceivable without departing from the scope of this invention. For example, the functionality of the AND gate in 4 also be realized by multiplexer. Conversely, the functionality of the multiplexer 430 also be reached by AND gates.

101–103101-103
Verfahrensschrittstep
110–112110-112
Verfahrensschrittstep
200200
Logikschaltunglogic circuit
201201
Eingangentrance
202202
Ausgangoutput
203203
Eingabedateninput data
203a–203e203a-203e
EingabedatenblockInput data block
204204
Ausgabedatenoutput data
204a–204d204a-204d
AusgabedatenblockOutput data block
300300
MDT FeldMDT field
301301
MDT hotplug fieldMDT hotplug field
302302
MDT service channel fieldMDT service channel field
303303
MDT realtime data fieldMDT real-time data field
304304
realtime data 1realtime data 1
304a304a
standard realtime data 1default realtime data 1
304b304b
safe data container 1safe data container 1
305305
realtime data 2realtime data 2
305a305a
standard realtime data 2default realtime data 2
306306
realtime data 3realtime data 3
306a306a
standard realtime data 3default realtime data 3
306b306b
safe data container 3safe data container 3
400400
Logikschaltunglogic circuit
401, 402, 403401 402, 403
Eingangentrance
404404
Ausgangoutput
411–416411-416
GeneratorpolynombitsGeneratorpolynombits
421–426421-426
SchieberegisterbitsShift register
430430
Multiplexermultiplexer
&&
AND-GatterAND gate
= 1= 1
XOR-GatterXOR gate

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • - US 4723243 [0005] US 4723243 [0005]
  • - US 6253346 B1 [0005] - US 6253346 B1 [0005]

Claims (13)

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 (421426, ”&”, ”= 1”) zur Berechnung eines CRC-Prüfwerts (204b, 204d) der Nachricht (203d, 203e) anhand des CRC-Polynoms (203a), und Schaltmittel (430), welche die Berechnungsmittel (421426, ”&”, ”= 1”) in Abhängigkeit von einer Länge (203b) des CRC-Polynoms (203a) so beschalten, dass die Länge des CRC-Prüfwerts der Länge (203b) des CRC-Polynoms (203a) entspricht.Logic circuit for calculating a CRC check value of a message, the CRC check value having a predeterminable length, comprising an input ( 201 ; 402 ) to receive the message ( 203d . 203e ), an entrance ( 201 ; 401 ) for receiving a freely definable CRC polynomial ( 203a ), Calculation means ( 421 - 426 , "&", "= 1") to calculate a CRC check value ( 204b . 204d ) of the message ( 203d . 203e ) based on the CRC polynomial ( 203a ), and switching means ( 430 ), which the calculation means ( 421 - 426 , "&", "= 1") depending on a length ( 203b ) of the CRC polynomial ( 203a ) such that the length of the CRC check value is equal to the length ( 203b ) of the CRC polynomial ( 203a ) corresponds. Logikschaltung nach Anspruch 1, wobei die Berechnungsmittel (421426, ”&”, ”= 1”) wenigstens ein Schieberegister (421426) aufweisen, dessen höchstwertiges Bit (422426) durch die Schaltmittel (430) definiert wird.Logic circuit according to claim 1, wherein the calculating means ( 421 - 426 , "&", "= 1") at least one shift register ( 421 - 426 ) whose most significant bit ( 422 - 426 ) by the switching means ( 430 ) is defined. Logikschaltung nach Anspruch 2, umfassend einen Eingang (201) zur Aufnahme eines Initialisierungswerts für das Schieberegister (421426).Logic circuit according to claim 2, comprising an input ( 201 ) for receiving an initialization value for the shift register ( 421 - 426 ). Logikschaltung nach Anspruch 2 oder 3, wobei die Schaltmittel wenigstens einen Multiplexer (430) aufweisen, an den wenigstens zwei Bits des wenigstens einen Schieberegisters (421426) geführt werden.Logic circuit according to claim 2 or 3, wherein the switching means comprise at least one multiplexer ( 430 ), to the at least two bits of the at least one shift register ( 421 - 426 ). Logikschaltung nach einem der vorstehenden Ansprüche, wobei die Berechnungsmittel (421426, ”&”, ”= 1”) wenigstens ein XOR-Gatter (”= 1”) aufweisen.Logic circuit according to one of the preceding claims, wherein the calculation means ( 421 - 426 , "&", "= 1") have at least one XOR gate ("= 1"). Logikschaltung nach einem der vorstehenden Ansprüche, wobei ein Eingang (201; 403) zur Aufnahme der Länge (203b) des CRC-Polynoms (203a) vorgesehen ist.Logic circuit according to one of the preceding claims, wherein an input ( 201 ; 403 ) for receiving the length ( 203b ) of the CRC polynomial ( 203a ) is provided. Logikschaltung nach einem der vorstehenden Ansprüche, wobei wenigstens ein vorbestimmtes CRC-Polynom integriert ist.Logic circuit according to one of the preceding claims, wherein at least one predetermined CRC polynomial is integrated. Logikschaltung nach einem der vorstehenden Ansprüche, die in einen Kommunikationscontroller integriert ist.Logic circuit according to one of the preceding claims, which is integrated in a communication controller. Logikschaltung nach einem der vorstehenden Ansprüche, die als integrierter Schaltungsbaustein ausgebildet ist.Logic circuit according to one of the preceding claims, which is designed as an integrated circuit module. Vorrichtung zur Berechnung von CRC-Prüfwerten, die wenigstens zwei Logikschaltungen nach einem der vorstehenden Ansprüche aufweist.Apparatus for calculating CRC test values, the at least two logic circuits according to one of the preceding Claims. Verwendung einer Logikschaltung nach einem der Ansprüche 1 bis 9 oder einer Vorrichtung nach Anspruch 10 in einem Feldbus-Kommunikationssystem.Use of a logic circuit according to one of the claims 1 to 9 or a device according to claim 10 in a fieldbus communication system. Verwendung einer Logikschaltung nach einem der Ansprüche 1 bis 9 oder einer Vorrichtung nach Anspruch 10 in einem Netzwerk nach einem SERCOS-Standard.Use of a logic circuit according to one of the claims 1 to 9 or a device according to claim 10 in a network according to a SERCOS standard. Verwendung einer Logikschaltung nach einem der Ansprüche 1 bis 9 oder einer Vorrichtung nach Anspruch 10 für Echtzeitdatenübertragung.Use of a logic circuit according to one of the claims 1 to 9 or a device according to claim 10 for real-time data transmission.
DE200810045813 2008-09-05 2008-09-05 Logic circuit for calculating CRC test values Ceased DE102008045813A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200810045813 DE102008045813A1 (en) 2008-09-05 2008-09-05 Logic circuit for calculating CRC test values
PCT/EP2009/004427 WO2010025786A1 (en) 2008-09-05 2009-06-19 Logic circuit for calculating crc test values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810045813 DE102008045813A1 (en) 2008-09-05 2008-09-05 Logic circuit for calculating CRC test values

Publications (1)

Publication Number Publication Date
DE102008045813A1 true DE102008045813A1 (en) 2010-03-11

Family

ID=41319526

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810045813 Ceased DE102008045813A1 (en) 2008-09-05 2008-09-05 Logic circuit for calculating CRC test values

Country Status (2)

Country Link
DE (1) DE102008045813A1 (en)
WO (1) WO2010025786A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723243A (en) 1985-12-02 1988-02-02 Advanced Micro Devices, Inc. CRC calculation machine with variable bit boundary
US6253346B1 (en) 1997-11-29 2001-06-26 Korea Telecommunication Authority Data transmission circuit having cyclic redundancy check circuit and data rate control circuit
DE102005029515A1 (en) * 2005-06-25 2006-12-28 Bosch Rexroth Aktiengesellschaft Method for calculating CRC test values and logic circuit
WO2007008419A1 (en) * 2005-07-13 2007-01-18 Microchip Technology Incorporated Method and apparatus for configuring a cyclic redundancy check (crc) generation circuit to perform crc on a data stream

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128760A (en) * 1998-10-13 2000-10-03 Lsi Logic Corporation Method and apparatus for calculating a CRC remainder
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723243A (en) 1985-12-02 1988-02-02 Advanced Micro Devices, Inc. CRC calculation machine with variable bit boundary
US6253346B1 (en) 1997-11-29 2001-06-26 Korea Telecommunication Authority Data transmission circuit having cyclic redundancy check circuit and data rate control circuit
DE102005029515A1 (en) * 2005-06-25 2006-12-28 Bosch Rexroth Aktiengesellschaft Method for calculating CRC test values and logic circuit
WO2007008419A1 (en) * 2005-07-13 2007-01-18 Microchip Technology Incorporated Method and apparatus for configuring a cyclic redundancy check (crc) generation circuit to perform crc on a data stream

Also Published As

Publication number Publication date
WO2010025786A1 (en) 2010-03-11

Similar Documents

Publication Publication Date Title
EP0847165B1 (en) Digital data transmission network and method for operating a data transmission network
DE3802254C2 (en)
WO2019001718A1 (en) Method for reserving transmission paths having maximum redundancy for the transmission of data packets, and apparatus
DE4104601A1 (en) Reception data processing circuit for local transmission network - has storage of data extracted from received data sequence in data store
DE102010025515A1 (en) Communication system for connecting field devices with a higher-level control device
EP1631013B1 (en) Main station and auxiliary station in a switched data network and method for transmitting data in such a network
DE1537146B2 (en) METHOD FOR TRANSMISSION OF SIGNALS FROM SEVERAL TRANSMISSION CHANNELS
EP1461910A1 (en) Cyclical time-based communication system, user in such a system and transmission method
DE112007000820B4 (en) Highly responsive master-slave valve setting
EP1509005A1 (en) Method and apparatus for transmitting data over a bus-network using broadcast
EP0732823B1 (en) Method for clock recovery of a digital signal on the reception side
EP0201634B1 (en) Digital word generator for automatically generating periodic permanent signals from n bit words of all weights and their permutations
DE1252727B (en) Procedure for the interference-free reception of transmitted data
EP1737132A1 (en) Method for calculation of CRC-checksums and logic device
EP3632049B1 (en) Status signal output
DE102008045813A1 (en) Logic circuit for calculating CRC test values
DE2127216B2 (en) MULTI-LEVEL TIME MULTIPLEX COUPLING FIELD
EP3632016B1 (en) Embedded cyclical redundancy check values
EP2605457A1 (en) Method for transferring user data
DE102010063528B4 (en) Method for connecting bus lines to buses and device for carrying out the method
EP0720411B1 (en) Method and system for policing an ATM-cell stream
DE2126456B2 (en) Circuit arrangement for use in a data processing system
DE2163105A1 (en) PROCEDURE AND CIRCUIT ARRANGEMENT FOR DECODING AND CORRECTING A SO-CALLED CONVOLUTIONAL CODE
AT390703B (en) CONVERTER CIRCUIT FOR INTERMEDIATING BETWEEN DIGITAL AND PULSAMPLITUDE-MODULATED SIGNALS AND FOR SELECTING MODIFICATION OF THE DIGITAL SIGNALS
EP3632066B1 (en) Pre-loading of instructions

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20120322