CAN Protocol CRC End-to-End Integrity Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing solutions for protecting data integrity in automotive vehicle networks, particularly for high Automotive Safety Integrity Level (ASIL D) applications, do not provide end-to-end protection and are challenging due to performance and cost constraints, as they either reduce bandwidth or increase processing overhead.
Innovation Solution
Implementing a protocol CRC that is generated and stored by the CAN protocol controller, allowing for verification at the application layer by comparing it with a reconstructed CRC, thereby providing additional integrity checks without embedding a CRC in the payload, and using a hardware lookup table to identify frames requiring additional protection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a CRC code is inserted in the CAN payload data to protect upper layers, then data integrity protection is improved, but bandwidth is reduced and processing overhead is increased
Solution Approach 1:
The patent uses the existing CRC value from the data link layer as a copy for upper layer verification. Instead of calculating a separate CRC for the payload, the system retrieves and reuses the CRC already computed by the CAN controller, eliminating redundant calculations and preserving bandwidth while maintaining integrity protection.
Solution Approach 2:
The patent makes the CRC value generated for data link layer error detection serve a dual purpose by making it available to the application layer for end-to-end integrity verification. This multi-functional use of the same CRC value eliminates the need for separate protection mechanisms, avoiding bandwidth reduction and processing overhead.
2Reliability
If a CRC code is inserted in the CAN payload data to protect upper layers, then data integrity protection is improved, but processing overhead is increased
Solution Approach 1:
The patent retrieves the CRC value that has already been calculated by the CAN controller and stores it in a buffer accessible to the application layer. This copying approach eliminates the need for the application layer to independently calculate CRC values, significantly reducing processing overhead while maintaining comprehensive integrity protection.
Solution Approach 2:
The patent performs the CRC calculation at the data link layer before the application layer processes the data. By preparing the CRC value in advance and making it available to upper layers, the system avoids redundant calculations, reducing processing overhead at the application layer while ensuring integrity protection is already in place.
3Reliability
If redundancy is added to hardware elements that modify and store messages, then data integrity is improved, but die size and power consumption are increased
Solution Approach 1:
The patent enables the existing CRC hardware in the CAN controller to serve dual purposes: data link layer error detection and application layer end-to-end integrity verification. By making the CRC buffer accessible to the application layer, the same hardware infrastructure provides comprehensive protection without requiring additional redundant hardware elements, thus avoiding increased die size.
4Reliability
If redundancy is added to hardware elements that modify and store messages, then data integrity is improved, but power consumption is increased
Solution Approach 1:
The patent copies the CRC value from the CAN controller's buffer to the application layer for verification purposes. This approach reuses existing hardware resources without activating additional redundant components, thereby maintaining data integrity protection while avoiding increased power consumption that would result from enabling extra hardware redundancy.
Data Source
AI summary
A system, method, and apparatus are provided for processing packets received over Controller Area Network (CAN) interface where a CAN protocol controller computes a CRC value from header and payload values in a received CAN data frame to verify frame integrity of the received CAN data frame across a physical media layer, and then stores the header and payload values and the CRC value in a memory buffer of the CAN protocol controller so that a host core can compute a reconstructed CRC value from the header and payload values retrieved from the memory buffer, and then compare the reconstructed CRC value to the CRC value retrieved from the memory buffer to verify frame integrity of the received CAN data frame at a transaction layer.


