3. Kria硬件接口与视觉外设连接

Kria SOM 把 Zynq UltraScale+ MPSoC 的 PS 侧高速接口与 PL 侧可编程 I/O 引出到载板连接器,视觉外设能否稳定工作,取决于“接口电气特性是否匹配、设备树是否描述正确、Linux 是否枚举到设备”这三件事同时成立。本节围绕 MIPI CSI-2、USB、DisplayPort、以太网和 GPIO 五类接口,说明它们的电气约束与物理接入方法,并给出设备识别的判断依据。

一、先分清接口的电气归属

Kria KV260 载板上,MIPI CSI-2 来自 PL 侧的 HP/HD Bank,通过 1.2V 差分对引出到 15 针或 22 针 FPC 座;USB 3.0 由 PS 的 GTR 收发器经 USB 集线器扩展为 Type-A 口;DisplayPort 由 PS 的 DisplayPort 控制器经电平转换输出到 DP 座;以太网由 PS 的 GEM3 经 RGMII 接 PHY 再到 RJ45;GPIO 则分布在 40 针 Raspberry Pi 兼容排针和 PMOD 座上,电平为 3.3V LVCMOS。理解“谁在 PS、谁在 PL、谁需要设备树覆盖”是后续所有连接工作的前提。

Kria KV260 视觉外设接口拓扑与电气归属 Kria K26 SOM Zynq UltraScale+ MPSoC PS 侧 PL 侧 MIPI CSI-2 摄像头 2-lane / 4-lane 差分 1.2V 电平 · FPC 15/22pin PL HP Bank USB 摄像头 USB 3.0 Type-A UVC 免驱 · 5V 供电 PS GTR DisplayPort 显示器 DP 1.2a · 4 lane HPD 热插拔检测 PS DP 控制器 千兆以太网 RGMII → PHY → RJ45 PoE 可选 · 1000BASE-T PS GEM3 GPIO / PMOD 扩展 40pin 排针 · 3.3V LVCMOS 触发信号 / 补光灯 / 编码器 PL EMIO / MIO

二、MIPI CSI-2 摄像头的物理接入

以常见的 IMX219(Raspberry Pi Camera V2)为例,它使用 2 条数据 lane 加 1 条时钟 lane,差分阻抗 100Ω,供电 3.3V。接入 KV260 时,需要一根 15pin 转 22pin 的 FPC 排线,注意排线金手指方向:摄像头模组一侧金手指朝上,载板 FPC 座一侧金手指朝下,插反会导致 lane 极性颠倒,表现为 I2C 能识别但无图像。插入后压下 FPC 座黑色卡扣,用万用表确认 3.3V 与 GND 无短路再上电。

上电后先确认 I2C 通信:

# 查看 I2C 总线上的摄像头
i2cdetect -y -r 6
# 预期在 0x10 地址看到 UU 或 10(IMX219 默认地址)

# 加载设备树覆盖
sudo xmutil unloadapp
sudo xmutil loadapp kria-vitis-platforms
# 或使用官方 sensor 覆盖
sudo dtoverlay imx219

若 i2cdetect 无响应,优先检查 FPC 是否插反、3.3V 是否到位;若 I2C 正常但 /dev/video0 未出现,则问题在设备树或 PL 端 CSI 接收 IP 未加载。可用 v4l2-ctl --list-devices 和 media-ctl -p 查看 media pipeline 是否把 sensor、CSI2 RX、DMA 串成一条链路。

三、USB 摄像头的接入与识别

USB 摄像头走 UVC 协议,接入后内核自动枚举,无需设备树改动。插入 Type-A 口后执行:

lsusb
# 预期看到类似:Bus 001 Device 003: ID 046d:0825 Logitech, Inc. Webcam C270

v4l2-ctl --list-devices
# 预期输出:HD Webcam: HD Webcam (usb-xhci-hcd.0.auto-1):
#           /dev/video0

v4l2-ctl -d /dev/video0 --list-formats-ext
# 查看支持的分辨率与帧率,如 MJPG 1920x1080@30

USB 摄像头常见问题是带宽不足:多个摄像头共用一条 USB 3.0 总线时,1080p MJPG 每路约需 200Mbps,若同时开 4 路可能掉帧。此时应降低分辨率或改用 MJPEG 压缩格式。另外,USB 供电能力有限,长线或高功耗摄像头建议使用带外部供电的 USB Hub。

四、DisplayPort 与以太网

DisplayPort 用于本地预览和调试界面。KV260 的 DP 口支持 DP 1.2a,最大 4K@30。接入显示器后,若 xrandr 或 modetest 看不到输出,先检查 HPD 信号:

modetest -c
# 查看 connector 状态,预期看到 DP-1 connected

# 若显示 disconnected,检查线缆与显示器输入源选择

以太网用于远程登录和图像流传输。KV260 的 RJ45 默认通过 DHCP 获取地址,用 ip addr show eth0 查看。工业现场若使用固定 IP,可在 /etc/netplan/ 下配置静态地址。千兆链路下,1080p 原始图像流约 3Gbps,建议使用压缩或降帧传输。

五、GPIO 的电气约束与使用

40 针排针的 GPIO 为 3.3V LVCMOS,单脚驱动电流约 8mA,不可直接驱动继电器或大功率补光灯,需经三极管或光耦隔离。使用 gpiod 工具操作:

gpiodetect
# 查看 gpiochip 列表

gpioinfo gpiochip0
# 查看各引脚方向与电平

gpioset gpiochip0 12=1
# 将第 12 脚置高,用于触发补光灯

若用于相机硬触发,需注意触发信号与曝光时序的配合:通常先置触发脚,再等待传感器曝光完成,最后读图。触发脉冲宽度建议不小于 1ms,避免抖动误触发。

设备识别速查:MIPI 看 i2cdetect 与 media-ctl;USB 看 lsusb 与 v4l2-ctl;DP 看 modetest;以太网看 ip addr;GPIO 看 gpioinfo。五类接口的识别命令不同,但判断逻辑一致:先确认物理层连通,再确认内核枚举,最后确认应用层可访问。

六、接入检查清单

接口物理检查识别命令正常标志
MIPI CSI-2FPC 方向、3.3V 无短路i2cdetect -y -r 60x10 出现设备
USB 摄像头Type-A 插紧、供电充足lsusb / v4l2-ctl --list-devices/dev/video0 存在
DisplayPort线缆、显示器输入源modetest -cDP-1 connected
以太网网线、链路灯ip addr show eth0获得 IP 地址
GPIO电平 3.3V、负载隔离gpioinfo gpiochip0引脚方向可配置

完成上述接入后,建议用一条最小验证链路收尾:MIPI 摄像头采集一帧,经 DP 显示,同时通过以太网把图像传到上位机,GPIO 输出触发脉冲。若四者同时工作且无丢帧,说明接口层已打通,可以进入下一阶段的视觉流水线开发。