很多小伙伴第一次接触AUTOSAR概念中SWC、Runnable、Port(Require Port和Provider Port)、Interface(Sender/Receiver和Client/Server)都会被这些抽象概念搞晕,这里以一个实例来理解这些抽象概念,并且和我们熟悉的 普通 Simulink 模型做个对照。
1️⃣ 背景场景
假设我们要开发一个 电控减震器控制器 的功能模块:
- 输入:来自加速度传感器的车身振动信号(Sensor 输入),来自 CAN 的车速信号。
- 输出:给电磁阀的电流控制信号(Actuator 输出)。
- 内部逻辑:简单的阻尼调节算法。
2️⃣ AUTOSAR 概念解释
(1) SWC(Software Component)
- ASWC(Application SWC):就是装你算法的盒子,比如“阻尼控制算法”。
- Sensor/Actuator SWC:专门用来采集传感器数据或驱动执行器的盒子,比如“加速度传感器 SWC”、“电磁阀驱动 SWC”。
👉 在例子里:
- “CDC 阻尼控制逻辑”就是一个 ASWC。
- “车身加速度传感器”对应一个 Sensor SWC。
- “电磁阀执行器”对应一个 Actuator SWC。
对照 Simulink:就是你画的一个 顶层模型/子系统,负责输入输出和算法。
(2) Runnable
-
是 SWC 内部最小的可调度单元(可以理解为函数)。
-
你可以把一个 SWC 拆成多个 Runnable,比如:
Runnable_ReadInputs(读输入信号)Runnable_CalcControl(计算阻尼力)Runnable_WriteOutputs(写输出信号)
👉 在例子里:
- 每 1ms 调度一次
Runnable_CalcControl来执行控制逻辑。
对照 Simulink:Runnable ≈ Step 函数,就是调度器每个采样步调用的算法。
(3) Port
- SWC 的输入输出都通过 Port 定义。
- Require Port (R-Port):需要别人提供的数据(我想要)。
- Provide Port (P-Port):提供数据给别人(我能输出)。
👉 在例子里:
- CDC 控制 SWC 有一个 R-Port,接收加速度和车速。
- CDC 控制 SWC 有一个 P-Port,输出控制电流。
对照 Simulink:Port 就像 输入/输出信号线。R-Port 类似 Inport,P-Port 类似 Outport。
(4) Interface
Port 只是个“插口”,Interface 决定了“插口里传什么样的数据”。
- Sender/Receiver Interface (S/R):数据流式传输(周期性或事件触发),比如传感器数据。
- Client/Server Interface (C/S):函数调用式交互,一个请求一个响应,比如诊断服务。
👉 在例子里:
- 加速度和车速信号用 S/R Interface。
- 假设有一个诊断功能,查询当前阻尼状态 → 用 C/S Interface。
对照 Simulink:
- S/R ≈ 普通信号线(周期性 Sample)。
- C/S ≈ MATLAB Function 调用或 Simulink Function 调用。
3️⃣ 对应关系总结表
| AUTOSAR 概念 | 控制器示例 | Simulink 对应物 |
|---|---|---|
| SWC | 一个完整的控制逻辑组件(如减震器控制) | 一个子系统/顶层模型 |
| Runnable | 控制算法的调度单元(1ms 执行一次) | Step 函数/子系统内的算法 |
| R-Port | 接收加速度、车速 | Inport |
| P-Port | 输出电磁阀电流 | Outport |
| S/R Interface | 周期传输传感器数据 | 普通信号线 |
| C/S Interface | 请求诊断服务 | Simulink Function Call |

2086

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



