Compulab IOTDIN-IMX8- C 1800QM-D4-N32 CAN performance issues Hello Team, We are currently evaluating CAN communication performance on a CompuLab ARM-based platform using the onboard CAN interface exposed through the terminal I/O block. During our testing, we have observed significantly higher CPU utilization on the ARM platform compared to our x86-based system under similar CAN network conditions: x86 platform: approximately 30% CPU utilization CompuLab ARM platform: approximately 45% CPU utilization For comparison, when using a PEAK USB CAN adapter with compulab, the overall performance appears to be better, and the CPU utilization is lower than with the onboard CAN interface. Our CAN network configuration is as follows: CANopen network with 18 nodes. CAN bitrate used: 250 kbps SocketCAN with txqueuelen set to 2000 Communication consists primarily of PDO messages Message periodicity ranges from 100 ms to 10 seconds The shortest update interval currently used is 100 ms CAN-FD is not enabled The same application software and CAN configuration are used on both x86 and ARM platforms We would like to better understand: What factors could contribute to the higher CPU consumption observed on the ARM platform? Are there any known limitations or optimization recommendations for the onboard CAN controller/driver on this platform? Are there specific CAN driver, interrupt handling, buffering, or kernel-level tuning parameters that should be reviewed? Could differences between the onboard CAN controller and the PEAK USB CAN adapter explain the observed performance gap? Are there any recommended profiling or diagnostic methods that would help identify the primary source of CPU load? Our objective is to achieve performance on the ARM platform comparable to what we observe on x86 systems while maintaining the current network load and message rates. We would greatly appreciate any guidance, recommendations, or best practices for improving CAN performance on this platform. Thank you for your support.
View full article