電子工程網(wǎng)
標(biāo)題: 如何通過RK3576配置MIPI-CSI攝像頭的不同輸出格式 [打印本頁]
作者: 繁花之語 時(shí)間: 2024-7-25 09:57
標(biāo)題: 如何通過RK3576配置MIPI-CSI攝像頭的不同輸出格式
MIPI-CSI是一種在嵌入式系統(tǒng)或移動(dòng)設(shè)備中常見的攝像頭接口,能夠?qū)崿F(xiàn)高速的圖像數(shù)據(jù)傳輸。飛凌嵌入式最新推出的OK3576-C開發(fā)板擁有豐富的資源接口,其中支持5個(gè)CSI-2接口,意味著最多可同時(shí)支持5路攝像頭的輸入。
本篇內(nèi)容就通過OK3576-C開發(fā)板為大家介紹一下RK3576處理器的Camera通路,以及如何配置MIPI-CSI攝像頭的不同輸出格式。

1 RK3576的camera通路
如果只有一個(gè)攝像頭接入,則只開rkispx_vir0 。需要注意的是:
1. vicap和isp并沒有對(duì)應(yīng)關(guān)系;
2. 各個(gè)vir0/vir1這種關(guān)系本質(zhì)是同一個(gè)硬件分時(shí)復(fù)用,效果等同。多個(gè)的時(shí)候盡量使用0,1,2 ... 去配置。
硬件通路框圖如下:

有一個(gè)dcphy接口和兩個(gè)dphy接口,接入路徑如下:
單攝(接第一個(gè)dphy)
sensor0->csi2_dphy0->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir0
雙攝(接兩個(gè)dphy)
sensor0->csi2_dphy0->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir0sensor1->csi2_dphy3->mipi3_csi2->rkcif_mipi_lvds3(sditf)->rkisp_vir1
三攝(接dcphy和2個(gè)dphy)
sensor0->csi2_dcphy0->mipi0_csi2->rkcif_mipi_lvds(sditf)->rkisp_vir0sensor1->csi2_dphy0->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir1sensor2->csi2_dphy3->mipi3_csi2->rkcif_mipi_lvds3(sditf)->rkisp_vir2
五攝(接dcphy,將2個(gè)dphy拆分)
sensor0->csi2_dcphy0->mipi0_csi2->rkcif_mipi_lvds(sditf)->rkisp_vir0sensor1->csi2_dphy1->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir1sensor2->csi2_dphy2->mipi2_csi2->rkcif_mipi_lvds2(sditf)->rkisp_vir2sensor3->csi2_dphy4->mipi3_csi2->rkcif_mipi_lvds3(sditf)->rkisp_vir3sensor4->csi2_dphy5->mipi4_csi2->rkcif_mipi_lvds4(sditf)->rkisp_vir4
下圖是camera各個(gè)通路的連接情況:

(注:如果是RGB數(shù)據(jù)輸入后面還需要跟rkisp_virx)
2 不同平臺(tái)的sensor鏈路情況
yuv422/rgb888輸入
對(duì)于yuv422/rgb888輸入的情況,常見的有三種情況:
1、自帶isp的或者客戶外接isp的攝像頭。輸入yuv422格式;
2、hdmi轉(zhuǎn)mipi csi輸入。一般如rk628d/f,lt6911xxx等芯片,常見的是轉(zhuǎn)換成yuv422,也可以rgb888格式;
3、多路ahd,serdes。這種一個(gè)mipi口,最多可以支持4個(gè)虛擬通道,對(duì)于這幾種情況,是不需要走isp的,只需要到cif即可,所以鏈路為 :
sensor->csi2_dphyX->mipiX_csi2->rkcif_mipi_lvdsX rkcif_mipi_lvdsx_sditf 以及isp節(jié)點(diǎn)有可以disabled掉,里面的X根據(jù)不同平臺(tái)不同硬件的接法而定。
抓圖使用的節(jié)點(diǎn)為rkcif_mipi_lvdsX對(duì)應(yīng)的第一個(gè)video節(jié)點(diǎn),這個(gè)可以通過media-ctl看拓?fù)涞玫�,比如OK3576-C開發(fā)板上的OV5645攝像頭,掛載在media1節(jié)點(diǎn)。
- root@ok3576-buildroot:/# media-ctl -p -d /dev/media1
- Media controller API version 6.1.57
- driver rkcif
- model rkcif-mipi-lvds1
- serial
- bus info platform:rkcif-mipi-lvds1
- hw revision 0x0
- driver version 6.1.57
- Device topology
- - entity 1: stream_cif_mipi_id0 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video11
- pad0: Sink
- <- "rockchip-mipi-csi2":1 [ENABLED]
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 5: stream_cif_mipi_id1 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video12
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 [ENABLED]
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 9: stream_cif_mipi_id2 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video13
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 [ENABLED]
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 13: stream_cif_mipi_id3 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video14
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 [ENABLED]
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 17: rkcif_scale_ch0 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video15
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 [ENABLED]
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 21: rkcif_scale_ch1 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video16
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 [ENABLED]
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 25: rkcif_scale_ch2 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video17
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 [ENABLED]
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 29: rkcif_scale_ch3 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video18
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 [ENABLED]
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 33: rkcif_tools_id0 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video19
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 [ENABLED]
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 []
- - entity 37: rkcif_tools_id1 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video20
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 [ENABLED]
- <- "rockchip-mipi-csi2":11 []
- - entity 41: rkcif_tools_id2 (1 pad, 11 links)
- type Node subtype V4L flags 0
- device node name /dev/video21
- pad0: Sink
- <- "rockchip-mipi-csi2":1 []
- <- "rockchip-mipi-csi2":2 []
- <- "rockchip-mipi-csi2":3 []
- <- "rockchip-mipi-csi2":4 []
- <- "rockchip-mipi-csi2":5 []
- <- "rockchip-mipi-csi2":6 []
- <- "rockchip-mipi-csi2":7 []
- <- "rockchip-mipi-csi2":8 []
- <- "rockchip-mipi-csi2":9 []
- <- "rockchip-mipi-csi2":10 []
- <- "rockchip-mipi-csi2":11 [ENABLED]
- - entity 45: rockchip-mipi-csi2 (12 pads, 122 links)
- type V4L2 subdev subtype Unknown flags 0
- device node name /dev/v4l-subdev1
- pad0: Sink
- [fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb
- crop.bounds:(0,0)/1920x1080
- crop:(0,0)/1920x1080]
- <- "rockchip-csi2-dphy0":1 [ENABLED]
- pad1: Source
- -> "stream_cif_mipi_id0":0 [ENABLED]
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad2: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 [ENABLED]
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad3: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 [ENABLED]
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad4: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 [ENABLED]
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad5: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 [ENABLED]
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad6: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 [ENABLED]
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad7: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 [ENABLED]
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad8: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 [ENABLED]
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad9: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 [ENABLED]
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 []
- pad10: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 [ENABLED]
- -> "rkcif_tools_id2":0 []
- pad11: Source
- -> "stream_cif_mipi_id0":0 []
- -> "stream_cif_mipi_id1":0 []
- -> "stream_cif_mipi_id2":0 []
- -> "stream_cif_mipi_id3":0 []
- -> "rkcif_scale_ch0":0 []
- -> "rkcif_scale_ch1":0 []
- -> "rkcif_scale_ch2":0 []
- -> "rkcif_scale_ch3":0 []
- -> "rkcif_tools_id0":0 []
- -> "rkcif_tools_id1":0 []
- -> "rkcif_tools_id2":0 [ENABLED]
- - entity 58: rockchip-csi2-dphy0 (2 pads, 2 links)
- type V4L2 subdev subtype Unknown flags 0
- device node name /dev/v4l-subdev2
- pad0: Sink
- [fmt:UYVY8_2X8/1920x1080@10000/300000 field:none colorspace:srgb
- crop:(0,0)/1920x1080]
- <- "m01_f_ov5645 3-003c":0 [ENABLED]
- pad1: Source
- -> "rockchip-mipi-csi2":0 [ENABLED]
- - entity 63: m01_f_ov5645 3-003c (1 pad, 1 link)
- type V4L2 subdev subtype Sensor flags 0
- device node name /dev/v4l-subdev3
- pad0: Source
- [fmt:UYVY8_2X8/1920x1080@10000/300000 field:none colorspace:srgb
- crop:(0,0)/1920x1080]
- -> "rockchip-csi2-dphy0":0 [ENABLED]
復(fù)制代碼
如果是多路輸入,就對(duì)應(yīng)前4個(gè),即video11-video14。
RAW格式輸入
從RK3588開始,也就是isp3.0起,瑞芯微處理器的isp便不再有采集功能,而只做圖像處理,所以整個(gè)通路為:
sensor->csi2_dphyX->mipiX_csi2->rkcif_mipi_lvdsX rkcif_mipi_lvdsX_sditf->rkispx_virX
這里需要說明一下:
1、在不跑aiq的時(shí)候,rkcif_mipi_lvdsX是可以拿RAW圖的;
2、如果我們只打開isp節(jié)點(diǎn)的vir0即rkispx_vir0,不打開后面的rkispx_vir1/vir2...,這種就是直通的,不跑aiq,也能拿到nv12圖,但是是未經(jīng)過效果處理,一般是淡綠色;
3、打開其他vir節(jié)點(diǎn),說明isp需要分時(shí)復(fù)用,isp節(jié)點(diǎn)就必須要開啟aiq才能拿圖(aiq會(huì)分時(shí)復(fù)用isp) ,所以如果只有一個(gè)camera,其他isp節(jié)點(diǎn)建議disabled掉。
3 總結(jié)
在配置攝像頭時(shí),首先要確定攝像頭走的通路,并確定攝像頭輸出的格式,如果是RAW圖則需要走rkisp,如果是yuv422/rgb888,則只需要配置到rkcif_mipi_lvdsx。
本文介紹了RK3576處理器的Camera通路,以及如何配置MIPI-CSI攝像頭的不同輸出格式。在后續(xù)的文章中,將會(huì)繼續(xù)為大家?guī)鞷K3576處理器的攝像頭參數(shù)配置和設(shè)備樹配置方法。
歡迎光臨 電子工程網(wǎng) (http://www.qingdxww.cn/) |
Powered by Discuz! X3.4 |
主站蜘蛛池模板:
男女羞羞视频网站
|
日本高清免费一本视频在线观看
|
国产玖玖在线
|
欧美精品 在线观看
|
91欧美视频
|
日本高清在线视频www色下载
|
欧美日韩精品一区二区另类
|
欧美大片va欧美在线播放
|
五月婷婷在线观看
|
国产精品嘿咻嘿咻在线播放
|
天堂在线.www资源在线观看
|
国产精品久久久久久久y
|
亚洲三区视频
|
亚洲精品中文字幕无乱码麻豆
|
亚洲国产一区在线二区三区
|
岛国大片免费
|
青青草91
|
亚洲成人国产
|
aaaa一级片|
天天爽天天干天天操
|
欧美三级视频在线
|
欧美日韩一区二区视频图片
|
日韩欧美精品在线视频
|
欧美成在线播放
|
女人张开腿让男人捅app
|
国产一区二区三区在线免费观看
|
日韩视频免费一区二区三区
|
日韩视频免费在线观看
|
欧美黄色片在线观看
|
国产成人性色视频
|
亚洲成在人天堂在线
|
国产欧美日本亚洲精品五区
|
日韩精品网站
|
国产精品美女网站在线观看
|
成人精品第一区二区三区
|
婷婷色图|
欧美成人香蕉网在线观看
|
国产三级精品91三级在专区
|
99热在线观看免费
|
69香蕉视频
|
久久久久久久国产精品毛片
|