AUTOSAR 精华中的精华 —— CAN 协议栈(CAN Stack)。
它不仅是 AUTOSAR BSW(基础软件)的核心组成,也是理解“分层通信架构思维”的最佳入口。
一、前言:一帧 CAN 消息的旅程
假设你有这样一个最小 ECU,它需要周期性地发送一个温度数据帧。
裸机写法可能是这样的👇:
CanMessage msg = { .id = 0x100, .dlc = 2, .data = { temp & 0xFF, temp >> 8 } };
HAL_CAN_Send(&msg);
简单直接,但在量产车的世界里,这样写会有致命问题:
-
上层应用和硬件紧耦合;
-
不能统一诊断、传输控制;
-
没法进行系统级调度和通信抽象;
-
无法与其他通信协议(LIN、Ethernet)兼容。
于是 AUTOSAR 定义了一整套通信栈,
让数据从“信号”到“帧”再到“位流”都层层解耦、有序传递。
二、AUTOSAR CAN Stack 总览
在 AUTOSAR 中,CAN 通信栈由以下层次组成:
Application (COM)
↓
PduR (PDU Router)
↓
CanIf (CAN Interface)
↓
Can Driver (MCAL)
↓
CAN Controller (硬件)
再加上 CanTp(CAN Transport Protocol),
就可以实现多帧传输(ISO-TP)。
📘 一句话理解:<

最低0.47元/天 解锁文章
2032

被折叠的 条评论
为什么被折叠?



