RK3568配置摄像头的不同情况
目录
1)像素字节转换层(Pixel/Byte Packing/Unpacking Layer)
一. MIPI和CSI以及DSI
MIPI这个标准包含了手机所要使用的很多的功能,比如摄像头,显示屏,wifi,存储,路由等。RK3568一般都配置为MIPI
MIPI的物理层有C-PHY, D-PHY和M-PHY,RK3568用的最基础的D-PHY,仅支持摄像头和显示器。
参考这篇文章:
https://zhuanlan.zhihu.com/p/599531271
MIPI对应于OSI模型的三层:
1. 物理层(PHY Layer)
就是PHY层,指定了传输媒介,在电气层面从串行bit流中捕捉“0”与“1”,同时生成SoT与EoT等信号。 就是把0,1这种信号转换成低压差分信号
2. 协议层(Protocol Layer)
CSI-2协议可以使用SOC上的一个物理接口实现多条数据流的传输。协议层规定了如何对多条数据流进行标记和交织,从而使每条数据流能够正确地重建。物理层有时候分好几个lane把数据发过来的,得把这几个lane里的数据还原回原来的顺序,并形成字节流。
1)像素字节转换层(Pixel/Byte Packing/Unpacking Layer)
CSI-2能够支持多种多样的像素格式,对于发送方,在数据发送之前,需要根据像素格式,将像素数据转换为对应的字节流;对于接收方,在将数据提供给应用层之前,需要将字节流数据转换为像素数据。
2)低级协议层(Low Level Protocol)
LLP指的是SoT与EoT之间的数据包字节流协议,LLP的最小单元为字节。
3)Lane管理器(Lane Management)
为了适应不同场景下对带宽的要求,CSI-2规定了Lane的数量是可拓展的。因此,在面临多Lane同时传输时,发送方需要对字节流进行公平分流(distributor),接收方则需要对多Lane数据进行合并(merger)。
3. 应用层(Application Layer)
该层主要用于不同场景对数据的处理过程,对于发送方,多为camera生成数据,对于接收方,多为SOC对数据进行处理。
二. 只通过MPI配置一个摄像头
RK3568如果只配置一个摄像头,那它的配置很简单,就按照如下顺序:
参考文档:
Camera | 7.瑞芯微rk3568平台摄像头控制器MIPI-CSI驱动架构梳理_vicap cis-CSDN博客
具体DTS的配置也见这篇文章。
说明:
MIPI DPHY是物理层,有4个lane,主要负责接收低压差分信号,并把它变成字节流。
MIPI CSI2 HOST Controller是控制器,将通过 MIPI D-PHY 传输的信号重新组合。MIPI D-PHY 接收的是通过多个 lane(通道)传输的数据,CSI-2 HOST controller 负责根据时序恢复这些数据,确保数据顺序正确,并将它们重新组合成完整的数据流。
VICAP(Video Capture)是处理数据流,恢复成帧。如果摄像头给的是RAW格式,就送给ISP进一步处理,如果前边送过来的信号已经处理过了(比如HDMI的摄像头经过转接芯片送进来的信号已经是YUV格式了),那就直接通过VICAP送进内存了。
ISP 主要用硬件进行图像处理,这样就不占用CPU或GPU的资源了,实时性比较高,同时也具备一定的数据输入处理能力,如时序恢复和数据处理功能。这个图说明,ISP2.1还经过MIPI接口的优化,使它直接能对接从DPHY口输进来的信号。ISP有4个口可以输入信号,比如MIPI, DVP,DEBAYER_in和YUV-IN。不同阶段的数据从不同的口输进来。如果是RAW数据,可以从debayer_in这个口输入,如果已经是YUV数据了,则可以从YUV-IN这边进来。
参考文章:https://download.csdn.net/blog/column/12021233/127825318
三. 通过HDMI配置一个摄像头
RK3568支持HDMI输出,但是不支持HDMI输入,如果是接摄像头输入视频信号的话,要使用转接芯片转为MIPI(或者BT1120)。信号仍然要经过CSI的DPHY和CSI controller,然后进入VICAP,但是HDMIIN转接芯片一般直接输出YUV422的格式,所以不需要经过3A调试,因此从VICAP出来之后就直接进内存了,不经过ISP。
链路为:HDMI-LT6911UXC-CSI_DPHY0-MIPI_CSI2-RKCIF_MIPI_LVDS
如果是RK3588,自带HDMI RX模块,则直接接收HDMI信号,无需桥接芯片
可以参考文章:
RK3568平台(显示篇)HDMIIN_rk3568 hdmi in-CSDN博客
RK3568-RK628D调试之HDMI-IN_ArmSoM的技术博客_51CTO博客
四. 双摄像头配置
DPHY的4个lane可以同时给一个摄像头用,配一路时钟,也可以同时给两路摄像头用,配两路时钟。
参考文章:
RK3568/RK3566 mipi双摄调试(gc2093+gc2053)-CSDN博客
①双摄硬件连接
需要使用到MIPI的 CLK0 和 CLK1:
MIPI_RX_CLK0 和 MIPI_RX_D0-1 一组,使用CLK0
MIPI_RX_CLK1 和 MIPI_RX_D2-3 一组,使用CLK1
②dts配置
链接关系 1: sensor1->csi2_dphy1->isp_vir0
链接关系 2: sensor2->csi2_dphy2->mipi_csi2->vicap ......->isp_vir1
第一路信号从DPHY1中输出,然后进入ISP的最左边的MIPI接口,经过完整的处理输出到内存中去。
第二路信号从DPHY2中输出,该数据先经过 VICAP 对帧数据进行整理,再通过 AIQ 框架调整,最后进入 ISP 进行处理。在这个过程中,AIQ 回读模式的数据流会从 yuv_in(图中靠近 "YUV 422" 位置的节点)输入 ISP2.1,经过 YNR、CNR、锐化和颜色调整等处理流程。就是说在这些数据转化为YUV422之前,是CPU,GPU或者NPU在对图像进行处理。
图参考:Camera | 7.瑞芯微rk3568平台摄像头控制器MIPI-CSI驱动架构梳理_vicap cis-CSDN博客