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驱动不太一样。

相关推荐
小小程序员mono16 小时前
CI 早已消亡,GitHub 还在固守旧时代
驱动开发
可以飞的话19 小时前
图像格式基础
驱动开发
大江东去浪淘尽千古风流人物4 天前
【Micro-WL Robot】桌面级轮腿机器人全栈解析:LQR平衡控制、SimpleFOC驱动与五连杆腿部机构源码深度拆解
驱动开发·机器人·esp32·lqr·simplefoc·轮腿机器人·平衡控制
咖啡星人k5 天前
自然语言驱动开发(NLDD):全栈开发的新范式与实践指南
驱动开发
阿昭L5 天前
Windows键盘过滤
windows·驱动开发·windows内核·过滤驱动
hai3152475436 天前
# 矩阵算法·算子对齐工具 v6.1 — 技术规格与使用手册
java·开发语言·驱动开发·神经网络·spring·目标检测·矩阵
qq_411262426 天前
sdk不支持分配psarm如何办,能不能象S3一样支持
驱动开发
湉湉家的小虎子7 天前
【科普贴】浅谈UFS接口——偏硬件解析
驱动开发·嵌入式硬件·fpga开发·硬件工程
枳实-叶8 天前
【Linux驱动开发】第18天:I2C驱动深度解析
linux·运维·驱动开发
小此方8 天前
Re:Linux系统篇(二十五)进程篇·十:深度硬核!Linux 进程等待,从 task_struct 源码到位图状态解构
linux·运维·驱动开发