TL;DR: LinCAN, a CAN driver system for Linux developed at the Department of Control Engineering of the Czech Technical University in Prague, is introduced and a thorough comparison with SocketCAN is presented, indicating that LinCAN seems better suited for hard real-time applications.
Abstract: The aim of this paper is to introduce LinCAN, a CAN driver system for Linux, developed at the Department of Control Engineering of the Czech Technical University in Prague, and to provide a thorough comparison with SocketCAN, which is the most common CAN solution for Linux nowadays. Thorough timing analysis and performance comparison with Socket CAN are presented, with several case-studies and applications of LinCAN shown in the end. LinCAN has been developed since 2003 and supports many CAN controllers from various manufacturers. It is designed with emphasis on strict real-time properties and reliability, making it ideally suitable for networked control systems (as is also demonstrated in the case-studies). LinCAN is also portable to other Operating Systems and can be used even system-less (without any OS) on less-powerful microcontrollers. A timing analysis and performance tests of both drivers were performed using various types of load with several recent Linux kernels. Obtained results indicate that LinCAN seems better suited for hard real-time applications, its performance being either better or on-par with SocketCAN in presented tests. Both LinCAN and SocketCAN drivers are completely open-source as well as our testing tools, so any researcher interested in our results is welcome to download all relevant source codes, check our testing methodology in detail and perhaps recreate our results or extend them by performing other test, providing valuable feedback and independent verification of our work.
TL;DR: It is concluded that WCCD is an extremely high-performance embedded Linux CAN driver which can match or outperform the compared existing implementations.
Abstract: Use of Linux in embedded systems has become vastly popular. On hardware platforms, the ARM processor cores have a strong foothold. To address the needs of Linux-based embedded automation systems, Wapice has implemented custom highperformance CAN driver architecture. The Wapice Custom Can Driver (WCCD) is targeted for embedded Linux and optimized for ARM-based platforms. In this paper, we present our findings made during the development process and methods we used to optimize the driver performance. Performance measurements, comparing the effects of optimizations, are also presented. We discuss how CAN message buffering algorithms affect the bus performance, show how Linux kernel version affects the interrupt latencies, and present challenges related to SPI-based CAN transceiver chip usage. To evaluate our design, we present the performance of Wapice Custom CAN driver (CPU load, CANmsg/s) and compare it against SocketCAN and LinCAN implementations. We also show results of a brief study on porting WCCD to other processor platform. Based on the results, we conclude that WCCD is an extremely high-performance embedded Linux CAN driver which can match or outperform the compared existing implementations.
TL;DR: This paper targets to relate the latency and performance among the Linux CAN drivers that is Socket CAN and RTCAN which are the open source CAN drivers to prove that it is better than the most preferred Socket CAN so that the developer's interest will be switched over RTCan for more advanced and desired research based on their applications.
Abstract: This paper targets to relate the latency and performance among the Linux CAN drivers that is Socket CAN and RTCAN which are the open source CAN drivers. Linux is one of the open source kernel which is moreover a cost effective and is the best alternative compared with other expensive patented RTOS. Socket CAN is added to Linux kernel mainline which is idealized by most CAN developers, however RTCAN is an emerging trend in the field of development in which research work is in emergent phase. Here in this paper we are focusing on analysis of RTCAN to prove that it is better than the most preferred Socket CAN so that the developer's interest will be switched over RTCAN for more advanced and desired research based on their applications, which is solely dependent on the results obtained. Basically for the above mentioned analysis we perform virtual CAN analysis and hardware testing. The analysis of performance, latency and timing is compared between both SocketCAN and RTCAN. From the compared results, we will finally benchmark.