1. 课程导入与平台总览
嵌入式视觉并不是把摄像头接到处理器上就能自然成立的技术。它要求在有限的功耗、体积和成本预算内,稳定完成图像采集、预处理、特征提取、目标判断与结果输出这一整条链路。Lattice FPGA之所以在这个领域占有一席之地,核心原因在于它把“可编程并行硬件”和“低功耗小封装”这两件事结合到了一起:一方面,像素级运算、卷积、阈值分割、帧缓存调度这类任务天然适合用并行逻辑实现;另一方面,Lattice 的 Nexus、CertusPro-NX、CrossLink-NX 等器件在待机功耗、封装尺寸和接口灵活性上,适合放在摄像头模组旁边、工业相机内部或电池供电的边缘节点中。
从系统定位看,Lattice FPGA通常不单独承担“完整智能视觉”的全部任务,而是处在传感器与主控之间的关键位置。它可以直接接收 MIPI CSI-2、LVDS、DVP 等图像接口,完成去马赛克、坏点校正、自动曝光统计、白平衡统计、缩放、色彩空间转换、帧差、二值化、连通域标记、简单卷积或模板匹配,再把结构化结果通过 SPI、I2C、UART 或 PCIe 送给 MCU、SoC 或上位机。这样做的价值是:主控不必被高带宽像素流拖住,系统可以在更低主频、更低功耗下获得确定的实时性。
本课程的平台设计目标不是做一个“能跑通摄像头”的演示,而是建立一个可复现、可扩展、可调试的嵌入式视觉处理平台。具体包括:以 Lattice FPGA 为核心,构建从图像输入、缓存、处理到输出的完整数据通路;用 Verilog/SystemVerilog 描述像素级流水线,并理解时序收敛与资源占用的关系;掌握 MIPI/LVDS 接收、DDR 帧缓存、跨时钟域处理、图像算法硬件化、结果输出与上位机联调等关键环节;最终能够根据分辨率、帧率、位宽和功耗约束,做出合理的架构取舍。
整体学习路径按“先通链路,再优算法,后做系统”推进。第一阶段建立平台认知:明确 FPGA 在视觉链路中的位置,理解像素时钟、行有效、帧有效、消隐区等基本时序,完成最小图像直通实验。第二阶段进入接口与缓存:掌握 MIPI CSI-2 或 LVDS 接收、DDR 读写调度、乒乓缓存与行缓存设计,解决跨时钟域和带宽匹配问题。第三阶段做算法硬件化:从灰度化、阈值、Sobel、中值滤波到简单卷积,理解流水线、并行度、行缓冲和乘加资源之间的权衡。第四阶段做系统集成:加入 ROI、多路视频、结果上报、参数在线配置和调试观测,形成可交付的视觉处理平台。
为了让平台设计有明确的工程抓手,可以把关键参数先固定成一组“教学基线”,后续章节再按需调整。例如:输入分辨率 1280×720,帧率 60 fps,像素格式 RAW10 或 YUV422,像素时钟约 74.25 MHz;FPGA 内部采用 8 bit 灰度处理,行缓存深度 3 行,卷积窗口 3×3;DDR 帧缓存按 2 帧乒乓分配,每帧约 1280×720×1 Byte ≈ 0.92 MB,两帧约 1.84 MB;输出结果通过 UART 以 115200 bps 上报目标坐标和计数,或通过 SPI 以 10 MHz 回读状态寄存器。这些数值不是唯一答案,而是帮助读者建立“分辨率—带宽—缓存—资源—功耗”之间量化关系的起点。
判断平台是否达到设计目标,不能只看“图像有没有出来”。至少应观察四类证据:第一,时序是否稳定,像素时钟、行有效、帧有效与消隐区是否符合传感器手册;第二,数据是否完整,帧计数是否连续、有无丢行丢帧、DDR 读写是否溢出;第三,处理结果是否正确,用已知测试图验证阈值、卷积、连通域标记的输出是否符合预期;第四,资源与功耗是否可接受,LUT、寄存器、EBR、DSP 的占用率以及静态/动态功耗是否落在目标器件范围内。只有这四类证据同时成立,平台才具备继续扩展的基础。