Linux camera驱动开发(mipi、d/cphy、dsi和csi2)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

说到camera,除了i2c之外,还有一个概念有必要了解下,那就是mipi。当然不仅是mipi,还有d/cphy、dsi、csi。这些概念也有必要了解清楚,这样在后续的开发中才会游刃有余。

1、mipi bus

mipi是一个总线的概念,它和485、usb、pcie这些总线其实是一回事。只不过像485总线,它只有一对差分线,而mipi差分线的数量要多一点。而且,为了实现数据的高速传输,mipi差分线的电压也要低不少。

2、dphy和cphy

dphy和cphy,都是实现mipi的物理协议。**两者最大的区别,就是dphy比cphy多一份clk差分,cphy没有独立的时钟总线,因为它把时钟编码到了数据里面去了。**实际应用中,我们遇到的大多数mipi接口都是使用dphy协议。如果想记得简单一点,可以直接记住dphy,忽视cphy。

本身dphy类似于tcp/ip里面的数据传输层,为上面的应用协议提供数据传输的方法。所以,它不光支持数据的输出,也支持数据的输入。

3、csi2

csi,也就是camera serial interface的意思。csi早期有版本csi1,不过现在几乎不使用了。目前用的最多的这个版本是csi2。大部分camera sensor支持的csi版本,也是csi2。所以,从传输方向上说,csi主要负责的是数据输入,整体结构就是csi2 over dphy。

4、dsi

dsi,全称为display serial interface。它一般用作是数据的输出。前面我们说过,目前使用的dsi协议,底层依赖的物理层都是dphy,也就是说大部分mipi屏幕底层支持的物理层都是dphy。所以就显示这一部分来说,dsi over dphy就是事实上的标准。

5、mipi-d/cphy0-dsi0 & mipi-dcphy0-csi0

很多soc芯片上面,都可以看到类似标题这样的描述。对于我们使用者来说,要学会理解里面的意思。首先,mipi代表mipi协议栈,这点可以pass。接下来是d/cphy,这说明对应接口本身同时支持dphy和cphy,虽然我们不怎么用cphy,但soc自身是支持这个协议的。最后就是dsi0、csi0,很多时候phy只有一套,但是它是用来做屏幕输出,还是camera输入,这个取决于我们自己。也就是说,dsi0和csi0是互斥使用的,你用了dsi0,就不能用csi0,反之亦然。

实际使用的时候,接口做dsi用,还是csi用很容易看出来的,csi通常都是接camera sensor,基本上都会多一个i2c接口。

6、mipi-dphy0-dsi0

除了上面说的第5种,还有一种就是mipi-dphy0-dsi0这种。相对而言,这就比较简单了,意思就是说,当前接口只支持dhpy,不支持cphy,很多cost down的soc都会这么干。

7、mipi驱动部分

mipi驱动和平台相关,大部分都是平台写好的,我们会改、会配置即可,一般不需要自己独立写驱动代码。这一点和camera sensor驱动不太一样。

相关推荐
小此方6 小时前
Re:Linux系统篇(五十四)线程篇 · 七:互斥锁的底层实现原理:从硬件上下文、原子交换指令(Swap)到并发封装实战
linux·运维·驱动开发
芯片设计-曾工2 天前
当精准脉冲遇上清晰视界——CH2205E模块与YL1621的“黄金搭档“
驱动开发·stm32·单片机·51单片机·硬件工程
平凡的小蚂蚁3 天前
Exynos4412-POP-7inLCD裸机开发完整教程(STM32 库风格)
驱动开发·stm32·单片机·嵌入式硬件·嵌入式·硬件工程
小此方4 天前
Re:Linux系统篇(五十二)线程篇 · 五:直击 Linux 内核底层:TCB 与 LWP 一体两面全解析(附自定义线程封装)
linux·运维·驱动开发
胡八一4 天前
虚拟串口com0com安装教程
驱动开发·stm32·单片机
智者知已应修善业4 天前
【三位数字显示计时定时器设计-同步方式】2025-6-30
驱动开发·经验分享·笔记·硬件架构·硬件工程
zhangfeng11334 天前
AI编程范式:从Vibe Coding(氛围编程)向SDD规范驱动开发演进全解析
人工智能·驱动开发·ai编程
JNX_SEMI4 天前
Hi5000Q/H 6.5~75V宽输入——与H5227A完全对等,无缝适配现有电源方案-聚能芯-智芯官方授权一级代理
驱动开发·单片机·嵌入式硬件·物联网·硬件工程
芯片设计-曾工5 天前
远乐YL1628 SSOP28驱动芯片详解
驱动开发·单片机·51单片机·硬件工程
zhangfeng11336 天前
CodeBuddy 是否支持 SDD(Spec-Driven Development 规范驱动开发
人工智能·驱动开发