3. 中央网关软件架构设计
中央网关的软件架构不是把 AUTOSAR CP 与 AP 简单堆叠,而是围绕“实时性、安全性、算力复用”三个约束做域划分。S32G 系列集成多核 Cortex-A53 与 Cortex-M7,并带有 LLCE、PFE 等硬件加速单元,天然适合承载混合架构:M7 侧运行 AUTOSAR CP,负责 CAN/CAN FD/LIN 报文收发、网关路由、诊断与网络管理;A53 侧运行 AUTOSAR AP 或 Linux/QNX,承载 OTA、日志、应用编排、以太网服务与安全计算。两者之间通过共享内存、IPC 或以太网虚拟通道交换数据,由 Hypervisor 提供隔离与资源分配。
3.1 CP/AP 混合架构的分层与职责
从量产交付角度看,混合架构应明确“谁负责硬实时、谁负责软实时、谁负责非实时”。CP 侧的基础软件由 MCAL、ECU 抽象层、服务层和 RTE 组成,运行在 M7 上,直接绑定 LLCE 的 CAN 通道与 PFE 的以太网端口;AP 侧由 POSIX PSE51 操作系统、ARA::com、ARA::exec、ARA::diag 等组成,运行在 A53 的虚拟机中。网关应用不直接操作寄存器,而是通过 CP 的 PduR/Com 或 AP 的 SOME/IP 服务接口访问网络数据。
一个典型的量产划分是:M7_0 运行 CP 网关与诊断栈,M7_1 运行安全监控与看门狗,A53 的 VM0 运行 AP 应用与 OTA 客户端,VM1 运行 Linux 用于日志与远程信息处理。这样做的原因是,CAN 报文路由的端到端延迟要求通常在 1~5 ms 量级,必须由 CP 的 PduR 直接完成;而 OTA 下载、证书校验、日志上传属于秒级任务,放在 AP 侧更经济。
3.2 Hypervisor 隔离方案
S32G 上常用的隔离方案是基于 ARM 虚拟化扩展的 Type-1 Hypervisor,例如 Jailhouse 或商用 Hypervisor。其核心是把 A53 集群划分为多个 VM,每个 VM 拥有独立的 CPU 核、内存区间、外设访问权限和中断路由。量产中需要重点配置三类资源:
- 内存隔离:通过 Stage-2 页表把每个 VM 的物理内存限定在独立区域,例如 VM0 使用 0x8000_0000~0x8FFF_FFFF,VM1 使用 0x9000_0000~0x9FFF_FFFF,防止越界访问。
- 外设隔离:利用 SMMU 或外设防火墙,把 PFE、LLCE、eDMA 的访问权限分配给指定 VM,避免 AP 侧误写实时域寄存器。
- 中断隔离:通过 GIC 虚拟化把中断注入目标 VM,CP 侧的中断不经过 AP 侧转发,保证实时性。
隔离配置完成后,必须验证“故障不扩散”:在 VM1 中故意触发内存越界或驱动异常,观察 VM0 的 CAN 路由是否仍保持正常。若 VM0 出现丢帧或延迟抖动,说明隔离边界或中断路由存在问题,需要回到 Hypervisor 配置中检查 Stage-2 映射与 GIC 分配。
3.3 实时域与安全域划分
实时域与安全域的划分依据是“时间确定性”和“功能安全等级”。实时域通常由 M7 核承担,运行 CP 的 Com、PduR、CanIf、CanDrv 以及 LLCE 固件,负责周期报文、事件报文和诊断响应的确定性处理。安全域则由 A53 上的独立 VM 或 M7 的锁步核承担,运行安全监控、入侵检测、安全启动校验和密钥管理。
以 CAN 网关路由为例:报文从 LLCE 的 CAN 通道进入,经 CanIf 上传到 PduR,PduR 根据路由表把 PDU 转发到目标总线。整个过程在 M7 上完成,不经过 A53,因此不受 AP 侧负载影响。安全域则通过镜像流量或 IDS 规则对报文做异常检测,检测结果以事件形式通知 AP 侧记录,但不介入实时转发路径。这种“旁路检测、主路实时”的结构,是量产中兼顾安全与实时性的常见做法。
3.4 网关应用与基础软件分层
量产软件组件清单需要按“基础软件—服务层—应用层”三层组织,并明确每个组件的运行域和交付形态。基础软件层包括 MCAL 驱动、LLCE/PFE 固件、Hypervisor、POSIX OS;服务层包括 CP 的 Com/PduR/Dcm/Dem/NvM 和 AP 的 ARA::com/exec/diag/per;应用层包括网关路由应用、OTA 应用、日志应用和安全监控应用。
以网关路由应用为例,其配置输入是路由表,每条路由包含源 PDU、目标 PDU、目标总线、触发方式和超时时间。例如:源 PDU 0x123 来自 CAN0,目标 PDU 0x123 发往 CAN1,触发方式为事件触发,超时 10 ms。PduR 在初始化时加载该表,运行时按表转发。若某条路由在 10 ms 内未完成,应记录超时计数并上报 Dem。这个超时计数就是量产中判断网关健康度的关键观测点。
3.5 量产软件组件清单示例
下表给出一份可参考的量产组件清单,字段包括组件名、所属层、运行域、交付形态和关键配置项。实际项目中应根据车型配置裁剪,但“实时域组件必须由 CP 交付、非实时域组件由 AP 交付”这一原则不应改变。
| 组件名 | 所属层 | 运行域 | 交付形态 | 关键配置项 |
|---|---|---|---|---|
| CanIf / CanDrv | 基础软件 | M7_0 | 静态库 | CAN 通道、波特率、邮箱 |
| PduR | 基础软件 | M7_0 | 静态库 | 路由表、超时、缓冲深度 |
| Dcm / Dem | 服务层 | M7_0 | 静态库 | 诊断服务、DTC、会话 |
| LLCE 固件 | 基础软件 | M7_0 | 二进制 | 通道映射、过滤规则 |
| Hypervisor | 基础软件 | A53 | 二进制 | VM 划分、Stage-2 映射 |
| ARA::com | 服务层 | VM2 | 动态库 | 服务接口、SOME/IP 绑定 |
| OTA 客户端 | 应用层 | VM2 | 可执行文件 | 下载地址、校验策略 |
| IDS 监控 | 应用层 | VM1 | 可执行文件 | 规则集、镜像端口 |
最后需要强调的是,CP/AP 混合架构的交付物不只是代码,还包括域划分说明、Hypervisor 配置、路由表、组件清单和时序验证报告。只有这些文档与二进制同步冻结,中央网关才具备量产可追溯性。