The MIPI Camera Command Set (CCS) specification defines a standard control interface for raw image sensors compatible with MIPI Camera Serial Interface 2 (MIPI CSI-2). MIPI CCS supports basic image sensor features such as sensor identification, binning, cropping, and gain and exposure time configuration, as well as advanced features such as phase detection auto focus, single-frame HDR mode, and bracketing. All kinds of image sensors are supported through means of capability and limit enumeration. Together with a standardized control interface, this reduces software effort as no driver changes are needed to support new image sensors. Similarly, there is no need for per-sensor driver software maintenance efforts. CCS Static Data further facilitates MIPI CCS image sensor development by allowing moving capability and limit information out of the sensor’s registers, which also enables an easy update path for model-specific registers, capabilities and limit values. It makes hardware implementation easier by providing a uniform method of describing a sensor’s limits and capabilities outside of hardware.
MIPI CCS Tools complements CCS by providing users with a common toolset that can be used across vendors, devices, and operating systems. In this way, CCS Tools eliminates having to create specific tools or debug solutions for a multitude of different implementations, which is especially applicable to the highly dynamic, highly varied IoT use case with its large numbers of involved operating systems, designs, and replacements.
MIPI CCS Tools defines two formats for MIPI CCS Static Data used to store static information related to a given image sensor, such as capability and limit information, as well as MSRs: a YAML-based format and a binary format. The YAML-based format is human-readable and editable, and can be generated by custom R&D tools; whereas the binary format is space-efficient and better suited for parsing by driver-level software. CCS Tools supports converting data in the YAML-based format into CCS Static Data binary format, and also includes a parser for the binary format, which can be used, for example, in driver software. Furthermore, a generic CCS driver is present in the upstream Linux kernel, supporting virtually any image sensor compliant with MIPI CCS. This way, driver software development is cut out of the sensor-integration process entirely.
*This article is based on a blog entry from the MIPI Alliance.