3. 车载网络协议栈基础

在RH850网关控制器中,协议栈并不是“软件库的堆叠”,而是由硬件通信外设、中断/DMA通道、驱动层与上层协议处理共同构成的分层映射关系。理解这一点的关键,是把每种总线的“帧/调度/时隙”结构,对应到RH850具体外设的寄存器、缓冲区与触发机制上。本节围绕四类车载网络,梳理其帧格式与调度机制,并说明它们在RH850上的典型映射方式。

一、CAN与CAN FD:从帧格式到RH850的报文RAM映射

经典CAN帧由帧起始SOF、仲裁段(11位标准ID或29位扩展ID)、控制段(DLC)、数据段(0~8字节)、CRC段、ACK段和帧结束EOF组成。CAN FD在此基础上做了三处关键改动:一是数据段扩展到最多64字节;二是引入BRS位,在仲裁结束后切换到更高数据波特率;三是CRC场增强并加入SBC(Stuff Bit Count)计数,以适配更长数据场的位填充校验。

在RH850上,CAN FD通常由RSCANFD或RCANFD模块承载。每个报文缓冲区(Message Buffer)需要配置:ID、IDE(标准/扩展)、DLC、数据场长度、发送/接收方向、以及接收过滤掩码。以RSCANFD为例,发送时把数据写入对应MB的CFDx寄存器组,置位TXREQ;接收时通过接收FIFO或专用MB触发中断,再由驱动把数据搬运到协议栈缓冲区。这里有一个容易忽略的工程点:CAN FD的BRS切换要求收发双方对采样点(Sample Point)和SJW配置一致,否则在数据段高速率下会出现位错误。典型配置示例(示例参数,非实测):仲裁段500 kbps、数据段2 Mbps、采样点80%、SJW=4 Tq。

二、LIN调度表:主节点的时间触发轮询

LIN是单主多从的低速总线,通信完全由主节点的调度表(Schedule Table)驱动。调度表本质上是一张“时隙—帧”对应表,每个时隙指定要发送的帧头(Header),从节点根据帧ID判断是否响应。帧头由同步间隔场、同步场(0x55)和受保护ID场(PID)组成;响应场由1~8字节数据加校验和构成。

在RH850上,LIN通常由RLIN模块实现。主节点需要配置:波特率(典型19.2 kbps)、同步间隔长度、PID校验方式(经典或增强)、以及每个时隙的超时时间。调度表的执行一般由定时器中断或LIN模块的间隔检测触发,逐项推进。工程上要特别注意时隙预算:一帧的传输时间 = 帧头 + 响应 + 帧间间隔,若某时隙超时,主节点应记录错误并跳到下一时隙,而不是阻塞整个调度表。

RH850网关协议栈映射关系总览 CAN / CAN FD ID + DLC + 数据(≤64B) BRS 速率切换 LIN 调度表时隙轮询 帧头 + 响应 FlexRay 静态段 TDMA 动态段 FTDMA 以太网 AVB/TSN gPTP / SRP / Qbv 时间敏感调度 RH850 通信外设 RSCANFD / RCANFD 报文RAM + 接收FIFO RLIN 间隔检测 + 时隙定时 RFLX / FlexRay CC 静态/动态时隙引擎 Ethernet MAC + AVB gPTP硬件时间戳 DMA / 中断控制器 数据搬运与事件触发 上层协议栈与网关处理 CAN 信号层 / 诊断 (UDS) 信号打包、多帧传输 LIN 调度管理 时隙表、从节点配置 FlexRay 通信周期管理 静态段/动态段调度 AVB/TSN 流管理 SRP 流预留、Qbv 门控 网关路由与协议转换 跨总线报文转发、信号映射 中断/DMA 统一调度

三、FlexRay:静态段与动态段的时间触发机制

FlexRay的通信周期由静态段、动态段、符号窗和网络空闲时间组成。静态段采用TDMA,每个节点在固定时隙发送固定长度帧,适合安全关键、周期确定的数据;动态段采用FTDMA(灵活TDMA),时隙按优先级分配,帧长度可变,适合事件型或非周期数据。静态段帧包含帧头、有效载荷(0~254字节)和帧尾,帧头中有帧ID、载荷长度、头部CRC和周期计数。

在RH850上,FlexRay通常通过外部通信控制器(CC)加总线驱动器实现,RH850侧通过SPI或并行接口访问CC的寄存器与消息缓冲区。配置要点包括:通信周期长度(如5 ms)、静态时隙数、静态时隙长度、动态段最小时隙、以及每个节点的时隙分配。工程上,静态段的时隙分配必须在设计阶段确定,动态段则依赖优先级仲裁,因此网关转发时要把安全关键信号放在静态段,把诊断或状态上报放在动态段。

四、以太网AVB/TSN:时间同步与流量调度的映射

车载以太网AVB/TSN的核心是“时间同步 + 流量整形”。gPTP(IEEE 802.1AS)负责全网时间同步,SRP(802.1Qat)负责流预留,Qbv(802.1Qbv)负责时间感知的门控调度。在RH850上,以太网MAC通常支持硬件时间戳,gPTP的Sync/Follow_Up报文在MAC层打时间戳,减少软件抖动。Qbv则通过门控列表控制每个队列的开关时间,把周期性控制流与尽力而为流隔离。

映射到网关处理时,需要注意三点:第一,gPTP时间戳必须与CAN FD、FlexRay的时基建立关联,否则跨总线转发的时间一致性无法保证;第二,Qbv的门控周期要与FlexRay通信周期、LIN调度表周期做相位对齐,避免网关内部排队冲突;第三,SRP预留的带宽要扣除协议开销,不能只按有效载荷计算。

五、跨协议映射的工程要点

四类总线在RH850网关中的映射,最终要落到“时间、缓冲、优先级”三个维度。时间上,FlexRay静态段和Qbv门控是硬时间触发,CAN FD和LIN是事件或轮询触发,网关需要统一时基;缓冲上,CAN FD的64字节数据场与以太网帧的1500字节载荷之间需要分片与重组;优先级上,安全关键信号应映射到高优先级队列或静态时隙,诊断和娱乐流量走动态段或尽力而为队列。

配置检查建议:在RH850上调试跨总线转发时,先用示波器或总线分析仪确认各总线的实际波特率与采样点,再核对gPTP时间戳与CAN FD时间戳的偏差。若偏差超过转发周期的一半,应优先检查gPTP同步状态和Qbv门控相位,而不是直接调整路由表。

理解这四类协议在RH850上的映射关系,是后续做网关路由、时间同步和流量调度的基础。实际项目中,建议把每种总线的帧结构、调度周期和RH850外设寄存器配置整理成一张对照表,作为网关配置和问题排查的参考依据。