Comparison Study between the CSI-RX drivers implemented for FreeRTOS and Linux Operating Systems
February 14, 2025
CSI (Camera Serial Interface) is a widely adopted, high-speed protocol for transmitting still and video images from image / RADAR / LiDAR sensors to application processors. CSI is used in several far-ranging applications such as mobile, augmented reality, virtual reality, drones, the Internet of Things (IoT), medical devices, industrial systems, automobiles, and client devices such as tablets, notebooks, and all-in-ones. CSI is developed by MIPI Alliance; MIPI CSI v2.0 / v1.3 are some of the most widely used versions of the CSI. CSI specifies behavior for each side of the communication channel, TX and RX, for successful data transmission. The sensors transmitting data over the CSI interface use CSI-TX Hardware IP (hardware) and CSI-TX driver (software) controlling the hardware IP to do so. The application processor receiving the data over the CSI will similarly have the CSI-RX IP and corresponding CSI-RX driver. The CSI-RX driver that runs on the application processor enables CSI-RX hardware IP to capture data from the CSI and provide captured data to the application layer for further processing.
The application processor could run any operating system to support the CSI-RX driver and application software, but each operating system will use a different version of the CSI-RX driver matching operating system requirements. In this white paper, we consider CSI-RX driver implementations on two different operating systems: FreeRTOS and Linux. Each CSI-RX driver implementation is different, and this white paper will give a detailed description of the CSI, the CSI-RX driver implementations for each operating system, and a in-depth comparison of the architectural, kernel-level, and framework differences, with conclusions about suitability for different purposes.