0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK3588-Camera:MIPI-CSI調(diào)試之通路解析

jf_30051736 ? 來(lái)源:jf_30051736 ? 作者:jf_30051736 ? 2023-06-10 10:29 ? 次閱讀

一、簡(jiǎn)介

  • 專(zhuān)欄總目錄

  • 本文介紹RK3588平臺(tái)的Camera:MIPI-CSI調(diào)試之通路解析

  • MIPI聯(lián)盟,即移動(dòng)產(chǎn)業(yè)處理器接口(Mobile Industry Processor Interface 簡(jiǎn)稱(chēng)MIPI)聯(lián)盟。MIPI(移動(dòng)產(chǎn)業(yè)處理器接口)是 MIPI聯(lián)盟發(fā)起的為移動(dòng)應(yīng)用處理器制定的開(kāi)放標(biāo)準(zhǔn)和一個(gè)規(guī)范。

    目的是把手機(jī)內(nèi)部的接口如攝像頭、顯示屏接口、射頻/基帶接口等標(biāo)準(zhǔn)化,從而減少手機(jī)設(shè)計(jì)的復(fù)雜程度和增加設(shè)計(jì)靈活性。

  • CSI & DSI

    ? CSI ( Camera Serial Interface ):攝像頭接口

    ? DSI ( Display Serial Interface ):顯示接口

二、 名詞解釋?zhuān)?/h1>
  • ISP ( Image Signal Processor ): 即圖像信號(hào)處理模塊, 主要作用是對(duì)前端圖像傳感器輸出的信號(hào)做后期處理,依賴(lài)于 ISP 才能在不同的光學(xué)條件下都能較好的還原現(xiàn)場(chǎng)細(xì)節(jié)。
  • VICAP( Video capture ):視頻捕獲單元

三、RK3588 的camera通路:

多sensor支持:

  • 單路硬件isp最多支持4路復(fù)用,isp復(fù)用情況支持分辨率如下:
  • 2路復(fù)用:最大分辨率3840x2160,dts對(duì)應(yīng)配置2路rkisp_vir設(shè)備。
  • 3路或4路復(fù)用:最大分辨率2560x1536,dts對(duì)應(yīng)配置3或4路rkisp_vir設(shè)備。
  • 硬件支持最多采集7路sensor:6mipi + 1dvp,多sensor軟件通路如下:

下圖是RK3588 camera連接鏈路示意圖,可以支持7路camera。

在這里插入圖片描述

四、 鏈路解析:

在這里插入圖片描述

  • 圖中:mipi camera2---> csi2_dphy1 ---> mipi2_csi2 ---> rkcif_mipi_lvds2--->rkcif_mipi_lvds2_sditf --->rkisp0_vir2

  • 對(duì)應(yīng)節(jié)點(diǎn):imx415 ---> csi2_dphy0 ---> mipi2_csi2 ---> rkcif_mipi_lvds2--->rkcif_mipi_lvds2_sditf --->rkisp0_vir2

  • 鏈接關(guān)系:sensor---> csi2 dphy---->mipi csi host--->vicap

  • 實(shí)線鏈路解析: Camera sensor ---> dphy ---> 通過(guò)mipi_csi2模塊解析mipi協(xié)議---> vicap ( rkcif節(jié)點(diǎn)代表vicap )

  • 虛線鏈路解析:vicap ---> rkcif_mipi_lvds2_sditf ---> isp

    每個(gè)vicap節(jié)點(diǎn)與isp的鏈接關(guān)系,通過(guò)對(duì)應(yīng)虛擬出的XXX_sditf來(lái)指明鏈接關(guān)系。

五、RK3588硬件通路框圖

在這里插入圖片描述

  • rk3588支持2個(gè)isp硬件,每個(gè)isp設(shè)備可虛擬出多個(gè)虛擬節(jié)點(diǎn),軟件上通過(guò)回讀的方式,依次從ddr讀取每一路的圖像數(shù)據(jù)進(jìn)isp處理。對(duì)于多攝方案,建議將數(shù)據(jù)流平均分配到兩個(gè)isp上。
  • 回讀:指數(shù)據(jù)經(jīng)過(guò)vicap采集到ddr,應(yīng)用獲取到數(shù)據(jù)后,將buffer地址推送給isp,isp再?gòu)膁dr獲取圖像數(shù)據(jù)。

六、詳細(xì)解析:

  1. imx415 : Camera sensor
  2. csi2_dphy0 : rk3588支持2個(gè)dphy硬件,這里我們稱(chēng)之為dphy0_hw/dphy1_hw ,,兩個(gè)dphy硬件都可以工作在full mode 和split mode兩種模式下。

當(dāng)使用dphy0_hw:

  • full mode:節(jié)點(diǎn)名稱(chēng)使用csi2_dphy0,最多支持4 lane。
    當(dāng)dphy0_hw使用full mode時(shí),鏈路需要按照csi2_dphy1這條鏈路來(lái)配置,但是節(jié)點(diǎn)名稱(chēng)csi2_dphy1需要修改為csi2_dphy0,軟件上是通過(guò)phy的序號(hào)來(lái)區(qū)分phy使用的模式。
  • split mode:拆分成2個(gè)phy使用,分別為csi2_dphy1(使用0/1 lane)、csi2_dphy2(使用2/3 lane),每個(gè)phy最多支持2 lane。

當(dāng)使用dphy1_hw:

  • full mode:節(jié)點(diǎn)名稱(chēng)使用csi2_dphy3,最多支持4 lane。
    當(dāng)dphy1_hw使用full mode時(shí),鏈路需要按照csi2_dphy4這條鏈路來(lái)配置,但是節(jié)點(diǎn)名稱(chēng)csi2_dphy4需要修改為csi2_dphy3,軟件上是通過(guò)phy的序號(hào)來(lái)區(qū)分phy使用的模式。
  • split mode:拆分成2個(gè)phy使用,分別為csi2_dphy4(使用0/1 lane)、csi2_dphy5(使用2/3 lane),每個(gè)phy最多支持2 lane。
  1. dcphy:
    rk3588支持兩個(gè)dcphy,節(jié)點(diǎn)名稱(chēng)分別為csi2_dcphy0/csi2_dcphy1。每個(gè)dcphy硬件支持RX/TX同時(shí)使用,對(duì)于camera輸入使用的是RX。支持DPHY/CPHY協(xié)議復(fù)用;需要注意的是同一個(gè)dcphy的TX/RX只能同時(shí)使用DPHY或同時(shí)使用CPHY。其他dcphy參數(shù)請(qǐng)查閱rk3588數(shù)據(jù)手冊(cè)。

  2. 使用上述mipi phy節(jié)點(diǎn),需要把對(duì)應(yīng)的物理節(jié)點(diǎn)配置上。
    (csi2_dcphy0_hw/csi2_dcphy1_hw/csi2_dphy0_hw/csi2_dphy1_hw)

  3. 每個(gè)mipi phy都需要一個(gè)csi2模塊來(lái)解析mipi協(xié)議,節(jié)點(diǎn)名稱(chēng)分別為mipi0_csi2~mipi5_csi2。

  4. rk3588所有camera數(shù)據(jù)都需要通過(guò)vicap,再鏈接到isp。rk3588僅支持一個(gè)vicap硬件,這個(gè)vicap支持同時(shí)輸入6路mipi phy,及一路dvp數(shù)據(jù),所以我們將vicap分化成rkcif_mipi_lvds~rkcif_mipi_lvds5、rkcif_dvp等7個(gè)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)的綁定關(guān)系需要嚴(yán)格按照框圖的節(jié)點(diǎn)序號(hào)配置。

  5. 每個(gè)vicap節(jié)點(diǎn)與isp的鏈接關(guān)系,通過(guò)對(duì)應(yīng)虛擬出的XXX_sditf來(lái)指明鏈接關(guān)系。

  6. rk3588支持2個(gè)isp硬件,每個(gè)isp設(shè)備可虛擬出多個(gè)虛擬節(jié)點(diǎn),軟件上通過(guò)回讀的方式,依次從ddr讀取每一路的圖像數(shù)據(jù)進(jìn)isp處理。對(duì)于多攝方案,建議將數(shù)據(jù)流平均分配到兩個(gè)isp上。

  7. 直通與回讀模式:
    ?直通:指數(shù)據(jù)經(jīng)過(guò)vicap采集,直接發(fā)送給isp處理,不存儲(chǔ)到ddr。需要注意的是hdr直通時(shí),只有短幀是真正的直通,長(zhǎng)幀需要存在ddr,isp再?gòu)膁dr讀取。

    ?回讀:指數(shù)據(jù)經(jīng)過(guò)vicap采集到ddr,應(yīng)用獲取到數(shù)據(jù)后,將buffer地址推送給isp,isp再?gòu)膁dr獲取圖像數(shù)據(jù)。

    ?在dts配置時(shí),一個(gè)isp硬件,如果只配置一個(gè)虛擬節(jié)點(diǎn),默認(rèn)使用直通模式,如果配置了多個(gè)虛擬節(jié)點(diǎn)默認(rèn)使用回讀模式。

七、單路Camera的dts配置說(shuō)明:( 以imx415攝像頭為例 )

  • 案例場(chǎng)景:這里使用的是csi2_dphy0的單路camera配置:
  • 鏈路配置: imx415 —> csi2_dphy0 —> mipi2_csi2 —> rkcif_mipi_lvds2—>rkcif_mipi_lvds2_sditf —>rkisp0_vir2
&i2c3 {
	status = "okay";

	imx415: imx415@1a {
		status = "okay";
		compatible = "sony,imx415";
		reg = < 0x1a >;
		clocks = < &cru CLK_MIPI_CAMARAOUT_M3 >;
		clock-names = "xvclk";
		pinctrl-names = "default";
		pinctrl-0 = < &mipim0_camera3_clk >;
		power-domains = < &power RK3588_PD_VI >;
		pwdn-gpios = < &gpio1 RK_PB0 GPIO_ACTIVE_HIGH >;
		reset-gpios = < &gpio4 RK_PA0 GPIO_ACTIVE_LOW >;
		rockchip,camera-module-index = < 0 >;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "CMK-OT2022-PX1";
		rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";
		port {
			imx415_out0: endpoint {
				remote-endpoint = < &mipidphy0_in_ucam0 >;
				data-lanes = < 1 2 3 4 >;
			};
		};
	};

	camera_imx219: camera-imx219@10 {
		status = "disabled";
		compatible = "sony,imx219";
		reg = < 0x10 >;

		clocks = < &clk_cam_24m >;
		clock-names = "xvclk";

		rockchip,camera-module-index = < 0 >;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "rpi-camera-v2";
		rockchip,camera-module-lens-name = "default";

		port {
			imx219_out0: endpoint {
				remote-endpoint = < &mipidphy0_in_ucam1 >;
				data-lanes = < 1 2 >;
			};
		};
	};
};

&csi2_dphy0_hw {
	status = "okay";
};

&csi2_dphy0 {
	status = "okay";

	ports {
		#address-cells = < 1 >;
		#size-cells = < 0 >;

		port@0 {
			reg = < 0 >;
			#address-cells = < 1 >;
			#size-cells = < 0 >;

			mipidphy0_in_ucam0: endpoint@1 {
				reg = < 1 >;
				remote-endpoint = < &imx415_out0 >;
				data-lanes = < 1 2 3 4 >;
			};

			mipidphy0_in_ucam1: endpoint@2 {
				reg = < 2 >;
				remote-endpoint = < &imx219_out0 >;
				data-lanes = < 1 2 >;
			};
		};

		port@1 {
			reg = < 1 >;
			#address-cells = < 1 >;
			#size-cells = < 0 >;

			csidphy0_out: endpoint@0 {
				reg = < 0 >;
				remote-endpoint = < &mipi2_csi2_input >;
			};
		};
	};
};

&mipi2_csi2 {
	status = "okay";

	ports {
		#address-cells = < 1 >;
		#size-cells = < 0 >;

		port@0 {
			reg = < 0 >;
			#address-cells = < 1 >;
			#size-cells = < 0 >;

			mipi2_csi2_input: endpoint@1 {
				reg = < 1 >;
				remote-endpoint = < &csidphy0_out >;
			};
		};

		port@1 {
			reg = < 1 >;
			#address-cells = < 1 >;
			#size-cells = < 0 >;

			mipi2_csi2_output: endpoint@0 {
				reg = < 0 >;
				remote-endpoint = < &cif_mipi2_in0 >;
			};
		};
	};
};

&rkcif {
	status = "okay";
};

&rkcif_mipi_lvds2 {
	status = "okay";

	port {
		cif_mipi2_in0: endpoint {
			remote-endpoint = < &mipi2_csi2_output >;
		};
	};
};

&rkcif_mipi_lvds2_sditf {
	status = "okay";

	port {
		mipi_lvds2_sditf: endpoint {
			remote-endpoint = < &isp0_vir0 >;
		};
	};
};

&rkcif_mmu {
	status = "okay";
};

&rkisp0 {
	status = "okay";
};

&isp0_mmu {
	status = "okay";
};

&rkisp0_vir0 {
	status = "okay";

	port {
		#address-cells = < 1 >;
		#size-cells = < 0 >;

		isp0_vir0: endpoint@0 {
			reg = < 0 >;
			remote-endpoint = < &mipi_lvds2_sditf >;
		};
	};
};

&pinctrl {
	camera {
		cam_pwdn_gpio: cam-pwdn-gpio {
			rockchip,pins = < 1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up >;
		};
	};
};

八、 調(diào)試技巧

8.1 i2c設(shè)備的通用調(diào)試命令:查看設(shè)備是否掛載到i2c總線下:

i2cdetect -y 3

8.2 攝像命令

  • Linux系統(tǒng)攝像命令:
gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160, framerate=30/1 ! xvimagesink
  • Android系統(tǒng):

    Android系統(tǒng)自帶相機(jī)APP。點(diǎn)擊APP,看攝像畫(huà)面是否正常顯示。

8.3 imx415 相關(guān)的log信息

dmesg | grep imx415

8.4 查看拓?fù)浣Y(jié)構(gòu)

media-ctl -d /dev/media0 -p

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    瑞芯微RK3588開(kāi)發(fā)板RK3588 EVB和RK3588S EVB解讀

    瑞芯微RK3588開(kāi)發(fā)板RK3588 EVB和RK3588S EVB解讀 瑞芯微旗艦芯RK3588系列開(kāi)發(fā)板受到廣大開(kāi)發(fā)者伙伴的關(guān)注和問(wèn)詢(xún)。針對(duì)相關(guān)的開(kāi)發(fā)板功能、操作指南等問(wèn)題,我們一
    的頭像 發(fā)表于 09-22 15:54 ?1.8w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>開(kāi)發(fā)板<b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    RK3588編解碼盒子RTL8211FS-CG光口調(diào)試

    本文是基于RK3588平臺(tái),SDK版本:RK3588_ANDROID12.0 RTL8211FS-CG光口調(diào)試總結(jié)。
    的頭像 發(fā)表于 06-10 09:00 ?2661次閱讀
    <b class='flag-5'>RK3588</b>編解碼盒子<b class='flag-5'>之</b>RTL8211FS-CG光口<b class='flag-5'>調(diào)試</b>

    rk3588調(diào)試imx415攝像頭

    RK3588調(diào)試了imx415攝像頭
    的頭像 發(fā)表于 06-09 19:08 ?4583次閱讀
    <b class='flag-5'>rk3588</b><b class='flag-5'>調(diào)試</b><b class='flag-5'>之</b>imx415攝像頭

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSILCD上電初始化時(shí)序

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSILCD上電初始化時(shí)序
    的頭像 發(fā)表于 06-10 10:32 ?4654次閱讀

    RK3588-WIF/BT調(diào)試AP6256

    RK3588-WIF/BT調(diào)試AP6256
    的頭像 發(fā)表于 06-10 10:33 ?3786次閱讀
    <b class='flag-5'>RK3588</b>-WIF/BT<b class='flag-5'>調(diào)試</b><b class='flag-5'>之</b>AP6256

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI屏參配置

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI屏參配置
    的頭像 發(fā)表于 06-10 10:36 ?2308次閱讀
    <b class='flag-5'>RK3588-MIPI</b>屏幕<b class='flag-5'>調(diào)試</b>筆記:<b class='flag-5'>RK3588-MIPI</b>-DSI<b class='flag-5'>之</b>屏參配置

    RK3588-HDMIRX

    HDMI IN功能可以通過(guò)橋接芯?的?式實(shí)現(xiàn),將HDMI信號(hào)轉(zhuǎn)換成MIPI信號(hào)接收,RK3588芯?平臺(tái)?帶
    的頭像 發(fā)表于 06-13 10:45 ?1591次閱讀
    <b class='flag-5'>RK3588</b>-HDMIRX

    Banana Pi BPI-W3 ArmSoM-W3RK3588-MIPI-DSI屏幕調(diào)試筆記

    本文是基于RK3588平臺(tái),MIPI調(diào)試總結(jié)。硬件環(huán)境: ArmSoM-W3 RK3588開(kāi)發(fā)板、MIPI-DSI顯示屏( ArmSoM官
    的頭像 發(fā)表于 11-02 09:27 ?1481次閱讀
    Banana Pi BPI-W3 ArmSoM-W3<b class='flag-5'>之</b><b class='flag-5'>RK3588-MIPI</b>-DSI屏幕<b class='flag-5'>調(diào)試</b>筆記

    飛凌嵌入式RK3576開(kāi)發(fā)板的MIPI-CSI調(diào)試——通路解析

    本文介紹了RK3576處理器的Camera通路,以及如何配置MIPI-CSI攝像頭的不同輸出格式。
    的頭像 發(fā)表于 07-19 13:43 ?1880次閱讀
    飛凌嵌入式<b class='flag-5'>RK</b>3576開(kāi)發(fā)板的<b class='flag-5'>MIPI-CSI</b><b class='flag-5'>調(diào)試</b>——<b class='flag-5'>通路</b><b class='flag-5'>解析</b>

    基于RK3588J的6路MIPI CSI視頻采集案例分享,多路視頻系統(tǒng)必看!

    等比例拼接形式采集畫(huà)面,且攝像頭幀率需統(tǒng)一,因此攝像頭分辨率幀率均使用1920x1080@30fps。 RK3588J的MIPI CSI介紹RK3588J的
    發(fā)表于 08-22 11:51

    RK3588 EVB 開(kāi)發(fā)板介紹

    、MIPI TX、VGA、SATA、PCIe30x4、TYPEC、2xRJ45 等外設(shè)接口,尺寸為18cmX18cm。RK3588 EVB 系統(tǒng)框圖RK3588 EVB配備的豐富外設(shè)接口(如圖),適用于各類(lèi)
    發(fā)表于 03-16 16:39

    【BGA封裝】基于RK3588,小而強(qiáng)大的ArmSom-W3 CORE

    ArmSom-W3 CORE 是一款采用新一代旗艦級(jí)八核64位處理器Rockchip RK3588,最大可配置32GB內(nèi)存;支持8K視頻編解碼;采用了LGA封裝;體積更小更穩(wěn)定;可適用于智能座艙
    發(fā)表于 05-26 20:38

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI
    的頭像 發(fā)表于 06-10 10:31 ?4024次閱讀
    <b class='flag-5'>RK3588-MIPI</b>屏幕<b class='flag-5'>調(diào)試</b>筆記:<b class='flag-5'>RK3588-MIPI</b>-DSI

    rk3588rk3588s的區(qū)別

    rk3588rk3588s的區(qū)別 Rockchip是一家專(zhuān)業(yè)的半導(dǎo)體公司,成立于2001年,總部位于中國(guó)深圳,主要從事集成電路的設(shè)計(jì)、開(kāi)發(fā)和銷(xiāo)售。他們的熱門(mén)產(chǎn)品RK3588RK3588
    的頭像 發(fā)表于 08-15 16:44 ?1.4w次閱讀

    ArmSom--攝像頭開(kāi)發(fā)指南(一)

    一.簡(jiǎn)介RK3588從入門(mén)到精通開(kāi)發(fā)板:ArmSoM-W3Kernel:5.10.160OS:Debian11本?主要介紹在Rockchip平臺(tái)下Camera相關(guān)代碼配置,MIPI-CSI調(diào)試
    的頭像 發(fā)表于 11-03 14:56 ?1416次閱讀
    ArmSom--攝像頭開(kāi)發(fā)指南(一)