2. EyeQ芯片通信外设与资源映射

EyeQ系列SoC(以EyeQ4、EyeQ5为代表)并不是一颗“通用MCU加几个外设”的芯片,而是一颗围绕视觉感知与安全域控设计的异构SoC。理解它的通信外设,关键不是背外设清单,而是搞清楚三件事:这些控制器挂在哪个域、由谁访问、能承载什么类型的流量。EyeQ内部大致可分为感知计算域(多个MIPS/加速器簇)、安全与实时域(含锁步核与安全岛)、以及通用外设与连接域。CAN/CAN-FD、LIN、以太网、SPI、UART等控制器主要分布在通用外设与连接域,但它们的访问路径、DMA能力、中断归属和时钟域各不相同,这直接决定了工程上“哪个口接什么、谁来收发、能不能满足实时性”。

先看整体分布关系。EyeQ的通信外设并非全部对等:以太网控制器通常具备独立DMA与专用交换/路由能力,是面向高带宽感知数据与诊断(DoIP)的主干;CAN/CAN-FD控制器数量较多,用于车身、底盘、动力等实时控制报文;LIN一般作为CAN的补充,用于低速执行器与传感器;SPI和UART更多承担板内器件互联、调试与辅助通信。下图给出一个典型的资源映射与访问关系示意,帮助建立“控制器—总线—访问主体—典型用途”的整体印象。

EyeQ SoC 通信外设资源映射与访问关系(示意) 感知计算域 MIPS 簇 / 视觉加速器 处理图像、目标、规划 通过 NoC 访问外设 高带宽、非硬实时 安全与实时域 锁步核 / 安全岛 看门狗、安全监控 直接控制关键外设 低延迟、确定性优先 通用外设与连接域 以太网控制器 独立 DMA / 交换路由 100/1000BASE-T1 CAN / CAN-FD 控制器 多路,报文 RAM 分区 经典 CAN 与 FD 可配 LIN 控制器 主/从模式,低速 常与 CAN 网关配合 SPI 控制器 板内器件互联 外挂收发器/存储 UART 控制器 调试、日志、辅助 低速率、点对点 使用约束要点 • 中断/DMA 归属固定 • 时钟域与引脚复用 • 安全域访问权限 • 带宽与实时性分级 • 报文 RAM 容量限制

从图中可以看到,以太网与CAN/CAN-FD是EyeQ对外通信的两条主线,但它们的“性格”完全不同。以太网控制器通常带独立DMA,能把大块数据直接搬进/搬出内存,适合摄像头原始数据回传、点云、DoIP诊断和OTA。它的约束在于:带宽虽高,但协议栈处理、交换路由和TSN配置会消耗CPU与内存带宽,且PHY侧需要匹配100/1000BASE-T1的车规链路。CAN/CAN-FD则相反,单帧数据量小,但要求确定性和低延迟。EyeQ上多路CAN控制器往往共享或分区使用报文RAM,FD模式下单帧最多64字节,若把大量诊断或标定流量挤到同一路CAN上,就可能出现报文丢失或延迟抖动。工程上常见的做法是:安全相关报文走独立CAN通道,诊断与标定走另一路,避免相互干扰。

LIN在EyeQ中通常不是主角,但它的存在有明确意义:当某个执行器或传感器不需要CAN的带宽和可靠性时,用LIN可以降低成本。EyeQ的LIN控制器支持主/从模式,实际项目中多作为主节点去轮询从节点。约束在于LIN的调度表必须与CAN网关的转发节奏对齐,否则会出现“CAN侧已经更新,LIN侧还没读到”的时序错位。SPI和UART则更多出现在板内:SPI用于连接外挂收发器、安全芯片或存储,UART用于调试串口和日志输出。它们的使用约束主要是引脚复用和时钟频率——EyeQ的引脚往往一个管脚可复用为多种功能,一旦在硬件设计阶段把某组引脚分配给以太网PHY,就不能再同时用作SPI,这需要在原理图阶段就锁定。

更深入一层,资源映射的核心是“访问主体”和“中断/DMA归属”。在EyeQ中,外设并不是所有核都能平等访问的。安全岛或锁步核通常直接控制与安全相关的CAN通道和看门狗,感知计算域的核则更多通过NoC访问以太网和SPI。这意味着在软件架构上,通信任务不能随意放在任意核上:如果把安全CAN的收发放在非安全核,就可能破坏功能安全假设。同样,中断控制器和DMA通道的分配也决定了实时性——以太网大流量若占用过多DMA带宽,可能挤压CAN的报文搬运,导致CAN延迟增大。因此,实际工程中需要做通信资源预算:先列出每路总线的周期、帧长、帧数,估算负载率,再映射到具体控制器和核。

下面给出一个简化的CAN-FD负载估算示例,用于说明“为什么资源映射不能只看外设数量”。假设某路CAN-FD用于底盘控制,周期报文共20帧,其中10帧为64字节、10帧为16字节,波特率仲裁段500kbps、数据段2Mbps。粗略估算:64字节帧在FD下的位时间约为仲裁段开销加数据段,单帧约250~300微秒;16字节帧约120~150微秒。若10帧64字节加10帧16字节,每周期总时间约(10×280)+(10×135)=4150微秒,即约4.15毫秒。若周期为10毫秒,负载率约41.5%,尚可;若周期为5毫秒,负载率超过80%,就需要拆分到两路CAN或调整周期。这个例子说明,外设数量够用不等于带宽够用,映射时必须做定量估算。

示例:CAN-FD 负载估算(假设值,非实测)
仲裁段 500 kbps,数据段 2 Mbps
帧A:64 字节,单帧约 280 us
帧B:16 字节,单帧约 135 us
每周期总时间 = 10×280 + 10×135 = 4150 us
周期 10 ms → 负载率 ≈ 41.5%
周期 5 ms  → 负载率 ≈ 83%  → 需分流或调整周期

以太网侧的资源约束则体现在队列与优先级上。EyeQ的以太网通常支持多队列和VLAN/优先级标记,工程上会把诊断、控制、感知数据分到不同优先级队列。若所有流量都走同一队列,大块感知数据会阻塞诊断报文,导致DoIP响应超时。因此,映射时要明确:哪路以太网口接诊断仪、哪路接域内交换、哪些流量走TSN调度。SPI和UART虽然简单,但也要注意:SPI从设备的片选和时钟极性必须与EyeQ控制器配置一致,UART的波特率误差在高速下会累积,调试口若被复用为功能口,就要提前规划好日志输出通道。

资源映射检查建议:先按“安全等级”划分外设归属,再按“带宽/延迟”选择总线类型,最后按“引脚复用与时钟域”锁定硬件配置。三步顺序不要颠倒,否则容易出现软件已定、硬件无法改的被动局面。

最后需要强调,EyeQ不同型号(EyeQ4、EyeQ5、EyeQ6)的外设数量和具体映射存在差异,上述分布是工程上的典型结构,具体项目必须以对应型号的数据手册和引脚复用表为准。但无论哪一代,判断逻辑是一致的:先看访问主体,再看带宽与实时性,最后看物理约束。把这三层理清,才能在域控通信设计中做出合理的资源分配,而不是等到集成阶段才发现某路CAN负载过高或某组引脚已被占用。