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模块的间隔检测触发,逐项推进。工程上要特别注意时隙预算:一帧的传输时间 = 帧头 + 响应 + 帧间间隔,若某时隙超时,主节点应记录错误并跳到下一时隙,而不是阻塞整个调度表。
三、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外设寄存器配置整理成一张对照表,作为网关配置和问题排查的参考依据。