资讯详情

资讯详情

RK3588-Camera:MIPI-CSI调试之通路解析

一、简介本文介绍RK3588平台的Camera:MIPI-CSI调试之通路解析MIPI联盟即移动产业处理器接口Mobile Industry Processor Interface 简称MIPI联盟。MIPI移动产业处理器接口是 MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化从而减少手机设计的复杂程度和增加设计灵活性。CSI DSI•CSI( Camera Serial Interface )摄像头接口•DSI( Display Serial Interface )显示接口二、 名词解释ISP( Image Signal Processor ) 即图像信号处理模块 主要作用是对前端图像传感器输出的信号做后期处理依赖于 ISP 才能在不同的光学条件下都能较好的还原现场细节。VICAP Video capture 视频捕获单元三、RK3588 的camera通路:多sensor支持单路硬件isp最多支持4路复用isp复用情况支持分辨率如下2路复用最大分辨率3840x2160dts对应配置2路rkisp_vir设备。3路或4路复用最大分辨率2560x1536dts对应配置3或4路rkisp_vir设备。硬件支持最多采集7路sensor6mipi 1dvp多sensor软件通路如下下图是RK3588 camera连接链路示意图可以支持7路camera。四、 链路解析图中mipi camera2—csi2_dphy1— mipi2_csi2 — rkcif_mipi_lvds2—rkcif_mipi_lvds2_sditf —rkisp0_vir2对应节点imx415 —csi2_dphy0— mipi2_csi2 — rkcif_mipi_lvds2—rkcif_mipi_lvds2_sditf —rkisp0_vir2链接关系sensor— csi2 dphy----mipi csi host—vicap实线链路解析 Camera sensor — dphy — 通过mipi_csi2模块解析mipi协议— vicap( rkcif节点代表vicap )虚线链路解析vicap — rkcif_mipi_lvds2_sditf — isp每个vicap节点与isp的链接关系通过对应虚拟出的XXX_sditf来指明链接关系。五、RK3588硬件通路框图rk3588支持2个isp硬件每个isp设备可虚拟出多个虚拟节点软件上通过回读的方式依次从ddr读取每一路的图像数据进isp处理。对于多摄方案建议将数据流平均分配到两个isp上。回读指数据经过vicap采集到ddr应用获取到数据后将buffer地址推送给ispisp再从ddr获取图像数据。六、详细解析imx415 : Camera sensorcsi2_dphy0 rk3588支持2个dphy硬件这里我们称之为dphy0_hw/dphy1_hw 两个dphy硬件都可以工作在full mode 和split mode两种模式下。当使用dphy0_hw:full mode节点名称使用csi2_dphy0最多支持4 lane。当dphy0_hw使用full mode时链路需要按照csi2_dphy1这条链路来配置但是节点名称csi2_dphy1需要修改为csi2_dphy0软件上是通过phy的序号来区分phy使用的模式。split mode拆分成2个phy使用分别为csi2_dphy1使用0/1 lane、csi2_dphy2(使用2/3 lane)每个phy最多支持2 lane。当使用dphy1_hw:full mode节点名称使用csi2_dphy3最多支持4 lane。当dphy1_hw使用full mode时链路需要按照csi2_dphy4这条链路来配置但是节点名称csi2_dphy4需要修改为csi2_dphy3软件上是通过phy的序号来区分phy使用的模式。split mode拆分成2个phy使用分别为csi2_dphy4使用0/1 lane、csi2_dphy5(使用2/3 lane)每个phy最多支持2 lane。dcphyrk3588支持两个dcphy节点名称分别为csi2_dcphy0/csi2_dcphy1。每个dcphy硬件支持RX/TX同时使用对于camera输入使用的是RX。支持DPHY/CPHY协议复用需要注意的是同一个dcphy的TX/RX只能同时使用DPHY或同时使用CPHY。其他dcphy参数请查阅rk3588数据手册。使用上述mipi phy节点需要把对应的物理节点配置上。csi2_dcphy0_hw/csi2_dcphy1_hw/csi2_dphy0_hw/csi2_dphy1_hw每个mipi phy都需要一个csi2模块来解析mipi协议节点名称分别为mipi0_csi2~mipi5_csi2。rk3588所有camera数据都需要通过vicap再链接到isp。rk3588仅支持一个vicap硬件这个vicap支持同时输入6路mipi phy及一路dvp数据所以我们将vicap分化成rkcif_mipi_lvds~rkcif_mipi_lvds5、rkcif_dvp等7个节点各个节点的绑定关系需要严格按照框图的节点序号配置。每个vicap节点与isp的链接关系通过对应虚拟出的XXX_sditf来指明链接关系。rk3588支持2个isp硬件每个isp设备可虚拟出多个虚拟节点软件上通过回读的方式依次从ddr读取每一路的图像数据进isp处理。对于多摄方案建议将数据流平均分配到两个isp上。直通与回读模式•直通指数据经过vicap采集直接发送给isp处理不存储到ddr。需要注意的是hdr直通时只有短帧是真正的直通长帧需要存在ddrisp再从ddr读取。•回读指数据经过vicap采集到ddr应用获取到数据后将buffer地址推送给ispisp再从ddr获取图像数据。•在dts配置时一个isp硬件如果只配置一个虚拟节点默认使用直通模式如果配置了多个虚拟节点默认使用回读模式。七、单路Camera的dts配置说明( 以imx415摄像头为例 )案例场景这里使用的是csi2_dphy0的单路camera配置链路配置 imx415 — csi2_dphy0 — mipi2_csi2 — rkcif_mipi_lvds2—rkcif_mipi_lvds2_sditf —rkisp0_vir2i2c3{statusokay;imx415: imx4151a{statusokay;compatiblesony,imx415;reg0x1a;clockscru CLK_MIPI_CAMARAOUT_M3;clock-namesxvclk;pinctrl-namesdefault;pinctrl-0mipim0_camera3_clk;power-domainspower RK3588_PD_VI;pwdn-gpiosgpio1 RK_PB0 GPIO_ACTIVE_HIGH;reset-gpiosgpio4 RK_PA0 GPIO_ACTIVE_LOW;rockchip,camera-module-index0;rockchip,camera-module-facingback;rockchip,camera-module-nameCMK-OT2022-PX1;rockchip,camera-module-lens-nameIR0147-50IRC-8M-F20;port{imx415_out0: endpoint{remote-endpointmipidphy0_in_ucam0;>1234;};};};camera_imx219: camera-imx21910{statusdisabled;compatiblesony,imx219;reg0x10;clocksclk_cam_24m;clock-namesxvclk;rockchip,camera-module-index0;rockchip,camera-module-facingback;rockchip,camera-module-namerpi-camera-v2;rockchip,camera-module-lens-namedefault;port{imx219_out0: endpoint{remote-endpointmipidphy0_in_ucam1;>12;};};};};csi2_dphy0_hw{statusokay;};csi2_dphy0{statusokay;ports{#address-cells 1;#size-cells 0;port0{reg0;#address-cells 1;#size-cells 0;mipidphy0_in_ucam0: endpoint1{reg1;remote-endpointimx415_out0;>1234;};mipidphy0_in_ucam1: endpoint2{reg2;remote-endpointimx219_out0;>12;};};port1{reg1;#address-cells 1;#size-cells 0;csidphy0_out: endpoint0{reg0;remote-endpointmipi2_csi2_input;};};};};mipi2_csi2{statusokay;ports{#address-cells 1;#size-cells 0;port0{reg0;#address-cells 1;#size-cells 0;mipi2_csi2_input: endpoint1{reg1;remote-endpointcsidphy0_out;};};port1{reg1;#address-cells 1;#size-cells 0;mipi2_csi2_output: endpoint0{reg0;remote-endpointcif_mipi2_in0;};};};};rkcif{statusokay;};rkcif_mipi_lvds2{statusokay;port{cif_mipi2_in0: endpoint{remote-endpointmipi2_csi2_output;};};};rkcif_mipi_lvds2_sditf{statusokay;port{mipi_lvds2_sditf: endpoint{remote-endpointisp0_vir0;};};};rkcif_mmu{statusokay;};rkisp0{statusokay;};isp0_mmu{statusokay;};rkisp0_vir0{statusokay;port{#address-cells 1;#size-cells 0;isp0_vir0: endpoint0{reg0;remote-endpointmipi_lvds2_sditf;};};};pinctrl{camera{cam_pwdn_gpio: cam-pwdn-gpio{rockchip,pins1RK_PB0 RK_FUNC_GPIOpcfg_pull_up;};};};八、 调试技巧8.1 i2c设备的通用调试命令查看设备是否挂载到i2c总线下i2cdetect-y38.2 摄像命令Linux系统摄像命令gst-launch-1.0 v4l2srcdevice/dev/video11!video/x-raw,formatNV12,width3840,height2160,framerate30/1!xvimagesinkAndroid系统Android系统自带相机APP。点击APP看摄像画面是否正常显示。8.3 imx415 相关的log信息dmesg|grepimx4158.4 查看拓扑结构media-ctl-d/dev/media0-p8.5 查看节点采集格式查看 video11 支持采集的格式以 video11 为例。v4l2-ctl -d /dev/video11 --list-formats8.6 查看节点支持的分辨率下图为video11节点 imx415 摄像头支持4K(3840x2160)的查询结果。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →