Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
7.10. Trình điều khiển hệ thống đầu vào Intel Image Treatment Unit 6 (IPU6)¶
Bản quyền ZZ0000ZZ 2023--2024 Tập đoàn Intel
7.10.1. Giới thiệu¶
Tệp này ghi lại Intel IPU6 (Bộ xử lý hình ảnh thế hệ thứ 6) Trình điều khiển Hệ thống đầu vào (bộ thu MIPI CSI2) nằm bên dưới trình điều khiển/phương tiện/pci/intel/ipu6.
Intel IPU6 có thể được tìm thấy trong một số SoC Intel nhất định nhưng không có trong tất cả SKU:
Hồ Hổ
Hồ Jasper
Hồ Alder
Hồ Raptor
Hồ sao băng
Intel IPU6 được tạo thành từ hai thành phần - Hệ thống đầu vào (ISYS) và Xử lý Hệ thống (PSYS).
Hệ thống đầu vào chủ yếu hoạt động như bộ thu MIPI CSI-2 nhận và xử lý dữ liệu hình ảnh từ các cảm biến và xuất khung hình vào bộ nhớ.
Có 2 mô-đun trình điều khiển - intel-ipu6 và intel-ipu6-isys. intel-ipu6 là một Trình điều khiển phổ biến IPU6 thực hiện cấu hình PCI, tải và phân tích chương trình cơ sở, xác thực chương trình cơ sở, ánh xạ DMA và IPU-MMU (Đơn vị ánh xạ bộ nhớ trong) cấu hình. intel_ipu6_isys triển khai V4L2, Bộ điều khiển phương tiện và V4L2 giao diện thiết bị phụ. Trình điều khiển IPU6 ISYS hỗ trợ kết nối cảm biến camera đến IPU6 ISYS thông qua trình điều khiển cảm biến thiết bị phụ V4L2.
Lưu ý
See Intel IPU6 Driver for more information about the IPU6 hardware.
7.10.2. Trình điều khiển hệ thống đầu vào¶
Trình điều khiển Hệ thống đầu vào chủ yếu cấu hình CSI-2 D-PHY, xây dựng chương trình cơ sở cấu hình luồng, gửi lệnh đến phần sụn, nhận phản hồi từ phần cứng và phần sụn rồi trả về bộ đệm cho người dùng. ISYS được biểu diễn dưới dạng một số thiết bị phụ V4L2 cũng như các nút video.
IPU6 ISYS media graph with multiple streams support¶
Biểu đồ đã được tạo bằng lệnh sau:
fdp -Gsplines=true -Tsvg < dot > dot.svg
7.10.2.1. Chụp khung hình với IPU6 ISYS¶
IPU6 ISYS được sử dụng để chụp các khung hình từ các cảm biến máy ảnh được kết nối với Cổng CSI2. Các định dạng đầu vào được hỗ trợ của ISYS được liệt kê trong bảng bên dưới:
IPU6 ISYS supported input formats |
|---|
RGB565, RGB888 |
UYVY8, YUYV8 |
RAW8, RAW10, RAW12 |
7.10.2.1.1. Ví dụ¶
Dưới đây là một ví dụ về chụp thô IPU6 ISYS trên máy tính xách tay Dell XPS 9315. Trên này máy, cảm biến ov01a10 được kết nối với cổng 2 IPU ISYS CSI-2, có thể tạo hình ảnh ở sBGGR10 với độ phân giải 1280x800.
Bằng cách sử dụng API của bộ điều khiển phương tiện, chúng ta có thể định cấu hình cảm biến ov01a10 bằng cách media-ctl [1] và yavta [2] để truyền khung hình tới IPU6 ISYS.
# Example 1 capture frame from ov01a10 camera sensor
# This example assumes /dev/media0 as the IPU ISYS media device
export MDEV=/dev/media0
# Establish the link for the media devices using media-ctl
media-ctl -d $MDEV -l "\"ov01a10 3-0036\":0 -> \"Intel IPU6 CSI2 2\":0[1]"
# Set the format for the media devices
media-ctl -d $MDEV -V "ov01a10:0 [fmt:SBGGR10/1280x800]"
media-ctl -d $MDEV -V "Intel IPU6 CSI2 2:0 [fmt:SBGGR10/1280x800]"
media-ctl -d $MDEV -V "Intel IPU6 CSI2 2:1 [fmt:SBGGR10/1280x800]"
Khi đường truyền phương tiện được định cấu hình, cài đặt cụ thể của cảm biến mong muốn (chẳng hạn như cài đặt độ phơi sáng và mức tăng) có thể được đặt bằng cách sử dụng công cụ yavta.
ví dụ
# and that ov01a10 sensor is connected to i2c bus 3 with address 0x36
export SDEV=$(media-ctl -d $MDEV -e "ov01a10 3-0036")
yavta -w 0x009e0903 400 $SDEV
yavta -w 0x009e0913 1000 $SDEV
yavta -w 0x009e0911 2000 $SDEV
Sau khi cài đặt cảm biến mong muốn, việc chụp khung hình có thể được thực hiện như dưới đây.
ví dụ
yavta --data-prefix -u -c10 -n5 -I -s 1280x800 --file=/tmp/frame-#.bin \
-f SBGGR10 $(media-ctl -d $MDEV -e "Intel IPU6 ISYS Capture 0")
Với lệnh trên, 10 khung hình được chụp ở độ phân giải 1280x800 với định dạng sBGGR10. Các khung đã chụp có sẵn dưới dạng tệp /tmp/frame-#.bin.
Đây là một ví dụ khác về IPU6 ISYS RAW và chụp siêu dữ liệu từ máy ảnh cảm biến ov2740 trên laptop Lenovo X1 Yoga.
media-ctl -l "\"ov2740 14-0036\":0 -> \"Intel IPU6 CSI2 1\":0[1]"
media-ctl -l "\"Intel IPU6 CSI2 1\":1 -> \"Intel IPU6 ISYS Capture 0\":0[1]"
media-ctl -l "\"Intel IPU6 CSI2 1\":2 -> \"Intel IPU6 ISYS Capture 1\":0[1]"
# set routing
media-ctl -R "\"Intel IPU6 CSI2 1\" [0/0->1/0[1],0/1->2/1[1]]"
media-ctl -V "\"Intel IPU6 CSI2 1\":0/0 [fmt:SGRBG10/1932x1092]"
media-ctl -V "\"Intel IPU6 CSI2 1\":0/1 [fmt:GENERIC_8/97x1]"
media-ctl -V "\"Intel IPU6 CSI2 1\":1/0 [fmt:SGRBG10/1932x1092]"
media-ctl -V "\"Intel IPU6 CSI2 1\":2/1 [fmt:GENERIC_8/97x1]"
CAPTURE_DEV=$(media-ctl -e "Intel IPU6 ISYS Capture 0")
./yavta --data-prefix -c100 -n5 -I -s1932x1092 --file=/tmp/frame-#.bin \
-f SGRBG10 ${CAPTURE_DEV}
CAPTURE_META=$(media-ctl -e "Intel IPU6 ISYS Capture 1")
./yavta --data-prefix -c100 -n5 -I -s97x1 -B meta-capture \
--file=/tmp/meta-#.bin -f GENERIC_8 ${CAPTURE_META}