I am in a project and I have to comply with ISO26262 so I need to verify my CAN frame. I am going to check my frame using the CRC calculation. My question is: Should I do this calculation in my program or does the CAN protocol already do it automatically?
Is CRC already calculated by CAN protocol?
1.5k views Asked by Yasin Ahsen At
2
There are 2 answers
0
Lundin
On
CAN contains a 15 bit CRC on the data-link layer. It is handled by the CAN controller and you don't need to do a thing in software, other than checking for errors reported by the controller.
Application layer CRC could be use in some special cases like when you are transferring large amounts of data such as bootloaders. But it isn't necessary for ordinary communication.
Related Questions in C
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in EMBEDDED
- MSP430F5529 on the MSPEXP430F5529LP: UART is not actually transmitting despite seemingly correct setup. What is wrong?
- A FPGA Project Proposal where I can use both PS and PL
- Program doesn't run after DFU
- Sending struct through queue
- How to generate a VPI warpmap for polynomial distortion correction?
- How to present this example concept in UML: Using 2 LCD displays in C/C++
- CLion: Debug via St-Link
- Portenta H7 Baremetal Development and a Little Guidance on Embedded System Learning Roadmap
- STM32 RTC3 Mixed Mode: Writing TR resets SSR
- Unable to read value from gpio set as input
- Mbed TLS: in-place en-/decryption for OAEP doesn't seem to work
- Shared variable read from low priority thread in preemptive scheduling
- Own Pattern / framework for interfacing with components in C
- Performance Difference Between Global Variable and Local Variable in Embedded Systems
- Comparing analog signal from Electret mic with samples
Related Questions in CAN-BUS
- Automotive: Can we design a secured PDU which is beyond 8 bytes and send it using CAN TP?
- I am trying to write bare metal programming for STM32F407, How to configure registers the steps to initialize the CAN1 to transmit the message
- STM32F103 & TJA1050 CAN Read 500kpbs
- Receive UDS message use peak can. python
- QtSerialBus virtualcan connect using socket and python
- Multiprocessing/ Threading / asyncio for PyQt6 and python-can
- ESP32 Cant receive any message in CAN bus line with any different device
- Can I analyze XCP Variables using my CANalyzer Version 10
- How can I read from a serial port in Android app?
- Can STM32 Blue Pill work with JTA 1050 CAN Transceiver?
- CANbus formula for BRP, Stage1, and stage1
- Problem when creating arduino library with dependencies
- CAN bus HW testing (STM32MP157CAA)
- Canbus communication with Teensy 4.0
- Canopen SdoCommunicationError when trying to read RPDO config
Related Questions in BUS
- What could be causing TPM_RC_COMMAND_SIZE error (0x80010000000a00000142) in response to TPM_GETRANDOM?
- Laravel Vapor - Bus::chain does not work in order
- Using after commit for jobs in bus batch laravel
- How to connect two x16 nor flash to nor flash controller?
- Python gives a "Bus Error" when trying to access the camera
- Simulating a security layer for the LIN bus without physical devices
- usb protocol: my device is not see any next packet after set address request
- Simulate bus-off using CAPL
- What bytes do you receive back from the accelerometer? The I2C bus
- Microprocessor [8086] . Will 8086 reset the output port after every clock cycle?
- Python: How do I bus multiple lines of code in a function so that they can be turned off with a single # to change all to a comment?
- Matlab: Simulink Coder - Generation of header files for every Bus variables
- SOMEIP Service message Received on Canoe with the same timestamp can not be processed
- What does "observed" mean here in the AXI standard?
- Lin Master Cannot read slave response
Related Questions in AUTOMOTIVE
- Generating wakeup and Error frame In LIN bus using CAPL script in Canoe tool
- Automotive: Can we design a secured PDU which is beyond 8 bytes and send it using CAN TP?
- How to decrypt data in arxml
- Adding event procedures using CANoe.NET API in VS studio
- Android automotive | Enable automotive
- Any CAPL function to disable logging block when simulation is ON and activate it back required?
- Need CAPL script to find fin or RST messages over TCP connection - DOIP
- File Structure of AUTOSAR BSW Modules
- Android AOSP Audio Issue
- which DataIdentifier (DID) I need to get the voltage from ECU?
- how read data by identifier use udsoncan library?
- Android Automotive Bring Up from standard Android device tree
- Ways to deploy Python code on Automotive Hardware
- CANDBC and ARXML difference
- Where does the Eventgroup ID in SOME/IP Service Discovery come from
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Actually, you might not just rely on the CAN CRC itself in the case of ISO26262.
Because, the E2E protection (as it is called in AUTOSAR) consisting of CRC + SeqCounter, are done between two SWCs, in an ASIL-context.
The BSW is usually not ASIL. So, between the SWC providing the data to the BSW, and the receiving SWC checking the CRC, anything could happen in between. So, your BSW could put some flipped data into the CAN HW mailbox. The CAN HW will then build the wrong CRC when transmitting that data. Or the receiver might have a bug and flip the received data between the CAN mailbox and the actual receiving SWC end.