Embedded CRC Segmentation for Variable-Length Data Packets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cyclic redundancy check (CRC) methods are inadequate for data packets with variable lengths, as they either use CRC polynomials with insufficient 'Hamming distance' leading to non-unique CRC values or those with excessive 'Hamming distance' resulting in unnecessary computational effort and hardware requirements.

Innovation Solution

A method that dynamically embeds CRC values into data packets based on the number of data units, using a counter to determine when to insert CRC values formed over predetermined amounts of data, ensuring the 'Hamming distance' is always sufficient, thereby optimizing computational effort and hardware usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a CRC polynomial with large Hamming distance is used to cover maximum data packet size, then error detection capability is improved, but computational effort and hardware complexity increase unnecessarily for smaller packets

Engineering Contradiction:
Improveerror detection capabilityVSAvoidhardware complexity of XOR gates
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The data packet is divided into multiple segments, each processed with its own CRC value. Instead of computing one large CRC for the entire packet, the method computes smaller CRCs for individual segments (e.g., 64-byte segments) and combines them. This segmentation allows using smaller Hamming distances for each segment, reducing computational effort and hardware complexity while maintaining overall error detection capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The method dynamically adjusts the number and size of CRC computations based on the actual data packet length. For shorter packets, fewer or smaller segment CRCs are computed; for longer packets, more segment CRCs are computed. This dynamic adaptation ensures that computational effort and hardware resources are optimized according to the actual data size rather than always using the maximum configured size.

Inventive Principle:
Principle #15Dynamics

2Reliability

If a CRC polynomial with large Hamming distance is used, then unique CRC values are ensured for larger data amounts, but unnecessary overhead is generated for smaller data packets

Engineering Contradiction:
Improveuniqueness of CRC valueVSAvoidoverhead of CRC values
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The packet is segmented into multiple smaller units, each with its own CRC. This allows the system to use smaller Hamming distances appropriate for each segment size, reducing the total overhead compared to using one large CRC for the entire packet. The segmentation enables matching the CRC overhead to the actual data size being protected.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The method changes the parameters of CRC computation based on data packet size. Instead of using a fixed large Hamming distance for all packets, the system adjusts the Hamming distance and number of CRC values according to the actual data amount. This parameter adaptation reduces overhead for small packets while maintaining sufficient error detection capability.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If fixed size data packets are used with matching CRC polynomial, then optimal error detection is achieved, but adaptability to variable length packets is lost

Engineering Contradiction:
Improveerror detection accuracyVSAvoidadaptability to variable packet lengths
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The method makes the CRC computation dynamic by adjusting the number of segments and their sizes based on the actual data packet length. For variable length packets, the system dynamically determines how many 64-byte segments are needed and computes the appropriate number of CRC values. This dynamic approach maintains optimal error detection accuracy for each packet size while providing full adaptability to variable lengths.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The segmented CRC approach creates a universal solution that works for all packet lengths. The same segmentation and CRC computation methodology can handle both small and large packets, as well as variable length packets, by simply adjusting the number of segments. This multi-functional approach eliminates the need for different CRC configurations for different packet sizes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3632016B1Embedded cyclical redundancy check values
Publication Date: 2024.02.28 WAGO VERW GMBH
  • EP3632016B1 patent drawingFigure 1~2
  • EP3632016B1 patent drawingFigure 3
  • EP3632016B1 patent drawingFigure 4

AI summary

The invention relates to a method and a device for generating a data packet (1) to be transmitted comprising data (4) and at least one value for a cyclical redundancy check, a CRC value (5, 6), wherein the CRC value (5, 6) is generated using at least one specified polynomial on the basis of at least some of the data (4). The method has the steps of initializing (7) a counter value, counting (8) units of data (4), wherein the counter value changes for each unit of data (4), and adding (12, 14) a CRC value into the data packet (1) when the counter value reaches a reference value or all of the units of data (4) in the data packet (1) have already been counted. The CRC value (5, 6) is generated over the units of data (4) which have been counted since the counter value last reached the reference value or since the counter value was initialized. The invention also relates to a method and a device for checking a corresponding received data packet.