Autosar can协议栈
这篇笔记先说明 CAN 总线通信的基本机制,再梳理 AUTOSAR 中 CAN Driver、CAN Interface 和 CAN Transceiver Driver 的分工。集成与调试部分仍是提纲,尚未整理成可复现的配置步骤。
CAN通信基本原理
CAN通信概述
CAN(Controller Area Network)即控制器局域网络,用于节点之间的数据通信。
CAN 最初由德国 BOSCH 公司面向汽车监测与控制系统设计。发动机控制、制动控制等电子系统需要交换大量数据;采用共享总线可以减少控制器之间逐点布线的需求。
CAN标准及原理图
CAN 是用于 ECU(电子控制单元)等节点之间通信的串行总线。ISO 11898-1 描述数据链路层,ISO 11898-2 描述高速 CAN 物理层;低速容错 CAN 的物理层则见 ISO 11898-3。
以下速率讨论限定为 Classical CAN。其最高位速率为 1 Mbps;高速 CAN 通常采用两端终端匹配的线形拓扑,不能把终端匹配理解为闭环连接。1 Mbps 下约 40 米是理论参考,实际可达长度还受线缆、收发器延迟及采样点等因素约束。
低速容错 CAN 的位速率最高为 125 kbps。速率与长度不能脱离物理层和网络配置给出统一上限,下图中的具体数值也需结合这些条件理解。
CAN特性
- Classical CAN 的最高位速率为 1 Mbps;可达距离取决于位速率与物理层条件
- 通信介质选择灵活(双绞线、同轴电缆、光纤)
- 采用双线差分信号
- 实际节点数量受收发器负载、总线电容及网络设计约束
- 总线上节点的数量可以动态改变,组网灵活
- 短帧结构,传输时间短,受干扰概率低
- 多主站结构,各节点均可发起发送请求;总线空闲时按协议开始发送,同时发送时参与仲裁
- 非破坏性的基于优先级的总线仲裁
- 优先级通过报文的标识符(ID)区分,报文标识符在网络中是唯一的
- 标识符描述了数据的含义
- 某些特定的应用对标识符的分配进行了标准化
- 广播发送报文,报文可以被所有节点同时接收
- 根据需要可进行相关性报文过滤


CAN功能特性
CAN总线上,信号表现为电压形式,通过CAN_H和CAN_L线上的电位差来表示CAN信号,分为显性电平(dominant)和隐性电平(recessive)两种类型。其中显性电平规定为逻辑0,隐性电平则为逻辑1。其具体定义可通过下图来理解。
CAN系统构成
下图保留了早期资料中的节点构成示意。CAN 控制器与收发器可以采用不同的器件组合;是否集成到同一芯片、外部是否有独立收发器,都要以具体硬件方案为准。
AUTOSAR CAN协议栈概述
- Driver:主要包括访问 CAN 控制器硬件的 CAN Driver
- HardwareAbs:包括 CAN Interface 和 CAN Transceiver Driver,分别提供 CAN 通信接口和收发器硬件抽象
- Services:包括 CAN 状态管理以及 PDU、信号处理相关的模块

CAN Driver
- MCU的CAN外设控制模块
- 主要处理 CAN 控制器功能,实现 MCU CAN 模块的数据收发

MCAL相关配置
- CanGeneral:配置一些API的使能函数周期等
- CanController:配置MCU的CAN外设操作功能以及CAN的Filter
- CanHardwareObject:配置CAN的接收发送邮箱以及使用的Filter
CANTrcv
CAN Trcv 模块抽象 CAN 收发器硬件,主要控制外部收发器的工作模式,并向上层提供独立于硬件的接口。它通过 MCAL 层 API 访问收发器,屏蔽 ECU 布局差异。MCU CAN 控制器的逻辑信号与总线电平之间的转换由收发器硬件完成。
CANTrcv 模式切换
- CANTrcv的模式转换主要通过控制Dio或者SPI来控制硬件Trcv
- 上电调用 Init 后的初始模式受配置及驱动实现约束,不能假定能够直接进入任意模式
- AUTOSAR 通过 CanTrcv_SetOpMode 请求模式切换,上层模块经 CAN Interface 访问驱动;MainFunction 是否调用供应商内部的 SetMode,需查看具体实现
- 收发器是否在 Standby 或 Sleep 状态支持唤醒,取决于硬件及配置;常电供电、唤醒引脚与 SBC 的连接方式也需按实际硬件设计确认

MCAL配置
·General:主要配置相关API的使能以及是否支持唤醒等功能
·ConfigSet:根据外部电路配置Trcv的通道,主要分为DIO控制的和SPI控制的,DIO控制的根据使用的PIN关联到DIO通道,SPI控制的要分配SPI的Sequence
AUTOSAR CAN协议栈集成
本节尚未形成可复现的工程记录。实际集成时,需要结合所用 AUTOSAR 版本、MCAL 供应商与 ECU 硬件配置核对调用关系,不能将上述架构说明直接当作项目配置步骤。
AUTOSAR CAN调试策略
本节待补充实际现象、抓包或总线测量证据,以及相应的排查过程。
参考链接
AUTOSAR_TR_FoundationReleaseOverview
AUTOSAR中国官方培训课程