🟢 入门理解

TCU的软件就像一个多层蛋糕。 最底层是硬件(芯片和电路板),中间层是操作系统(负责管理CPU、内存等资源),再往上是中间件(负责把各层连接起来),最顶层是应用程序(真正干活的:远程控制、OTA升级、诊断等)。

操作系统管理硬件资源,中间件提供通信桥梁,应用程序实现具体业务功能——三层各司其职,共同构成TCU的软件世界。


4A 软件栈全景

4A.1 分层架构概览

TCU软件栈从底到顶可分为五层:

层次

典型技术

职责

BSP/HAL

芯片厂商SDK、MCAL

屏蔽硬件差异,提供统一硬件访问接口

操作系统

FreeRTOS、Linux、QNX

任务调度、内存管理、进程/线程隔离

AUTOSAR CP/AP

Classic BSW、Adaptive Platform

标准化基础软件框架,提供COM/Diag/NvM等服务

中间件

SOME/IP、DDS、MQTT Client

面向服务通信、云端连接、消息路由

应用层

SWC(CommM、OTAM等)

实现具体业务逻辑

4A.2 完整软件栈架构图

4A.3 多核与多OS部署策略

现代TCU SoC通常采用异构多核架构:

  • 安全核(Lock-step MCU:运行FreeRTOS + AUTOSAR CP,处理CAN通信、UDS诊断等安全关键任务

  • 性能核(Application Core):运行Linux/QNX + AUTOSAR AP,处理OTA、V2X、AI推理等复杂应用

  • 通信核(Modem Core):运行专用RTOS,管理4G/5G蜂窝链路


4B AUTOSAR Classic Platform

4B.1 BSW模块全景

AUTOSAR Classic Platform的BSW(Basic Software)是标准化的基础软件框架,按层次组织:

服务层(Services Layer):

模块

全称

功能

COM

Communication

信号级通信抽象,I-PDU打包/解包

PduR

PDU Router

PDU路由,连接COM与底层通信栈

DCM

Diagnostic Communication Manager

UDS诊断服务处理(0x10/0x22/0x27/0x2E/0x31/0x34-0x37等)

DEM

Diagnostic Event Manager

DTC存储、冻结帧管理、事件去抖

NvM

Non-volatile Memory Manager

非易失存储管理,支持ROM/EEPROM/Flash抽象

EcuM

ECU State Manager

ECU启动/关机/睡眠状态管理

BswM

BSW Mode Manager

模式仲裁,根据条件切换系统模式

ComM

Communication Manager

通信通道状态管理(Full/No/Silent Com)

FiM

Function Inhibition Manager

基于DTC的功能抑制

ECU抽象层 & MCAL:

模块

接口

功能

CanIf

CAN Interface

CAN驱动抽象

EthIf

Ethernet Interface

以太网驱动抽象

CanSM

CAN State Manager

CAN通道状态机(Bus-Off恢复等)

TcpIp

TCP/IP Stack

TCP/UDP/IP协议栈

SoAd

Socket Adaptor

Socket抽象层,连接PDU Router与TCP/IP

DoIP

Diagnostics over IP

ISO 13400协议实现

CanMCAL

CAN Driver

CAN控制器寄存器级驱动

EthMCAL

Ethernet Driver

以太网MAC/PHY驱动

SpiMCAL

SPI Handler

SPI通信驱动

UartMCAL

UART Driver

串口驱动

4B.2 RTE与SWC

RTE(Runtime Environment) 是AUTOSAR的核心,它为SWC提供虚拟总线接口,使SWC与底层BSW解耦:

SWC接口类型:

接口类型

通信模式

典型场景

Sender-Receiver (S/R)

数据驱动,单向/周期

车速信号、温度数据

Client-Server (C/S)

请求-响应,同步/异步

诊断请求、NvM读写

Mode-Switch

模式通知

系统模式切换

Trigger

事件触发

周期任务启动

4B.3 TCU典型SWC分解

一个典型TCU的SWC(Software Component)分解如下:

SWC

职责

关键接口

CommM(通信管理)

管理与TSP云端的通信链路,维护心跳,处理上下行消息路由

S/R:网络状态;C/S:发送/接收请求

DiagM(诊断管理)

管理UDS诊断会话,处理远程诊断请求,管理DTC上报

C/S:UDS服务调用;S/R:DTC事件

OTAM(OTA管理)

接收云端升级指令,管理差分包下载、校验、刷写流程

C/S:升级控制;S/R:进度/状态上报

RemoteCtrlM(远程控制)

解析远程指令(锁车/解锁/启动空调等),映射为CAN信号

C/S:指令执行;S/R:执行结果

GNSSM(定位管理)

读取GNSS模块数据,解析NMEA,计算位置/速度/时间

S/R:经纬度、速度、UTC时间

PowerM(电源管理)

管理TCU休眠/唤醒策略,KL15/KL30状态监控

S/R:电源状态;Mode-Switch:模式切换

LogM(日志管理)

管理运行日志的采集、存储、上传

C/S:日志写入/查询;S/R:日志状态


4C AUTOSAR Adaptive Platform

4C.1 平台架构

AUTOSAR Adaptive Platform(AP)面向高性能SoC,基于POSIX操作系统(Linux或QNX),支持C++14/17开发:

4C.2 关键功能集群详解

ara::com — 面向服务通信框架

ara::com是AP的核心通信中间件,实现SOME/IP协议栈:

  • Service Discovery:自动发现网络上可用的服务实例

  • Proxy/Skeleton模式:客户端通过Proxy发起请求,服务端通过Skeleton接收请求

  • 通信模式:Method(同步/异步请求-响应)、Event(发布-订阅)、Field(可读写属性)

ara::ucm — 更新与配置管理

ara::ucm负责软件包的生命周期管理:

功能

说明

Software Package Transfer

从外部源接收软件包

Software Package Installation

安装/卸载软件组件

Activation/Deactivation

激活或停用已安装的软件

Rollback

安装失败时回退到上一版本

ara::exec — 执行管理

管理应用的完整生命周期:


Off → Starting → Running → Terminating → Off
                      ↕
                 Updating (via ara::ucm)

4C.3 AP vs CP 对比

维度

Classic Platform

Adaptive Platform

操作系统

AUTOSAR OS / FreeRTOS

Linux / QNX(POSIX)

编程语言

C

C++14/17

通信模型

信号(Signal)

服务(Service)

动态性

静态配置

动态部署、运行时更新

适用场景

安全关键、低延迟

复杂计算、高带宽

典型用例

CAN/UDS/NM

OTA/V2X/AI/HMI


4D Hybrid AUTOSAR(CP+AP共存)

4D.1 为什么需要混合架构

单一平台无法满足TCU的全部需求:

  • CP的优势:确定性调度、低延迟(<1ms)、ASIL-B/D安全认证成熟

  • AP的优势:动态部署、高算力利用、丰富的生态(Linux库、AI框架)

  • TCU的现实需求:CAN诊断(CP) + OTA升级(AP) + 远程控制(CP映射CAN) + V2X(AP)

4D.2 双系统架构方案

4D.3 IPC跨域通信

CP与AP之间需要可靠的进程间通信(IPC)机制:

IPC方案

特点

适用场景

共享内存 + 信号量

最低延迟,需手动同步

高频数据交换(传感器数据)

虚拟串口(VirtIO)

标准化,Hypervisor支持好

中等频率命令/响应

RPC over VirtIO Ethernet

类网络通信,可复用TCP/IP栈

ara::com跨域调用

OpenAMP(RPMsg)

轻量级AMP框架,适合MCU-SoC

MCU核与AP核通信

典型数据流示例:远程锁车命令


Cloud → MQTT → [AP域] ara::com → IPC(VirtIO) → [CP域] RemoteCtrlM → COM → CAN → BCM ECU → 锁车

4E SOA与面向服务通信

4E.1 SOME/IP协议

SOME/IP(Scalable service-Oriented MiddlewarE over IP) 是车载以太网的主流SOA协议:

特性

说明

Service Discovery (SD)

服务提供方广播Offer Service,消费方Find Service

Method Call

支持Request/Response和Fire&Forget

Event

发布-订阅模型,支持Notification

Field

Getter/Setter/Notifier组合

SOME/IP报文结构:


┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│ Message ID │ Length    │ Request ID │ Protocol │ Interface │ Message  │
│ (16b)     │ (32b)    │ (16b)     │ Ver(8b)  │ Ver(8b)   │ Type(8b) │
├──────────┴──────────┴──────────┴──────────┴──────────┼──────────┤
│ Return Code (8b)                                      │ Payload  │
└───────────────────────────────────────────────────────┴──────────┘

SOME/IP-SD 服务发现流程:

4E.2 DDS(Data Distribution Service)

DDS是另一种面向实时系统的发布-订阅通信中间件:

特性

DDS

SOME/IP

发现机制

自动发现(SPDP/SEDP)

SD协议

通信模型

以数据为中心的发布-订阅

以服务为中心

QoS策略

丰富的QoS(可靠性、持久化、Deadline等)

基本QoS

实时性

强实时保障

中等

典型应用

V2X、传感器融合

域控通信

4E.3 SOA vs 传统CAN信号通信

维度

CAN信号通信

SOA(SOME/IP/DDS)

寻址方式

信号ID(静态DBC/LDF配置)

Service ID + Method/Event ID

通信模式

周期广播

按需请求/事件驱动

带宽

CAN: 500kbps / CAN-FD: 8Mbps

100Mbps~1Gbps以太网

扩展性

新增信号需改DBC + 重刷所有ECU

动态服务发现,热插拔

适合场景

实时控制、传感器数据

信息娱乐、OTA、V2X


4F 云端连接(V2C)

4F.1 通信协议对比

协议

传输层

模式

带宽

适用场景

MQTT

TCP

发布-订阅

低(<1KB报文)

心跳、事件上报、远程指令下发

HTTPS

TCP (TLS)

请求-响应

文件下载(OTA包)、批量数据上传

DDS

UDP/TCP

发布-订阅

实时遥测、V2X

MQTT QoS等级选择:

QoS

可靠性

延迟

TCU典型用途

0

最多一次

最低

遥测数据上报

1

至少一次

远程控制指令

2

恰好一次

最高

OTA升级确认

4F.2 消息序列化格式

格式

可读性

体积

编解码速度

典型用途

JSON

API交互、配置下发

Protobuf

低(二进制)

高频遥测、大批量数据

CBOR

低(二进制)

嵌入式受限场景

4F.3 设备影子与数字孪生

设备影子(Device Shadow) 是云端维护的设备状态副本:


{
  "state": {
    "reported": {
      "firmware_version": "3.2.1",
      "battery_voltage": 12.4,
      "gnss_latitude": 39.9042,
      "gnss_longitude": 116.4074,
      "door_lock_status": "locked",
      "last_ota_time": "2026-06-15T08:30:00Z"
    },
    "desired": {
      "target_firmware_version": "3.3.0",
      "climate_on": true
    }
  }
}

  • reported:TCU上报的实际状态

  • desired:云端期望的目标状态,TCU读取后执行

  • delta:reported与desired的差异,驱动OTA/控制动作

4F.4 主流IoT平台集成

平台

协议

特点

阿里云IoT

MQTT (TLS)

设备影子、OTA服务、规则引擎、国内合规

AWS IoT Core

MQTT (TLS)

Device Shadow、Greengrass边缘计算

华为IoTDA

MQTT/CoAP

设备接入、全球SIM联接、OTA


4G 远程服务实现(RVC)

4G.1 远程控制命令列表

命令

CAN目标ECU

CAN信号示例

前置条件

远程锁车

BCM(车身控制模块)

DoorLockCmd = LOCK

车速 = 0, 挡位 = P

远程解锁

BCM

DoorLockCmd = UNLOCK

车辆处于驻车状态

远程启动空调

HVAC / EMS

ClimateStartReq = ON

电池电压 > 11.5V

远程鸣笛

BCM

HornReq = ON(限时5s)

车速 = 0

远程闪灯

BCM

HazardLightReq = ON(限时10s)

4G.2 命令执行全链路

4G.3 安全机制

安全层

机制

说明

传输层

TLS 1.3

MQTT/HTTPS加密传输

应用层认证

Token + 签名

每条命令携带HMAC-SHA256签名

防重放

Timestamp + Nonce

命令带时间戳(±30s窗口)+ 一次性随机数

TCU内部

Secure Element

密钥存储在HSM/SE中,不暴露于软件层

ECU层

SecOC

CAN报文级认证(可选)


4H 诊断子系统

4H.1 UDS over IP(DoIP, ISO 13400)

DoIP将以诊断协议(UDS)封装在以太网/IP之上,实现高带宽诊断:

DoIP会话建立流程:


1. Vehicle Identification Request (UDP广播)
2. Vehicle Identification Response (TCU应答VIN/EID)
3. TCP连接建立
4. Routing Activation Request (认证)
5. Routing Activation Response (确认)
6. Diagnostic Message (UDS over TCP)

4H.2 DTC管理

功能

说明

DTC存储

DEM模块将故障码存入NvM,断电不丢失

冻结帧

DTC触发时记录当时的环境数据(车速、温度等)

去抖机制

防止偶发故障触发DTC(去抖计数器+时间窗口)

DTC上报

通过MQTT/DoIP上报云端或诊断仪

OTA诊断

升级前后自动扫描DTC,确保升级未引入新故障

4H.3 诊断服务典型用例

UDS服务

SID

TCU典型用途

DiagnosticSessionControl

0x10

切换诊断会话(默认/编程/扩展)

ReadDataByIdentifier

0x22

读取软件版本、硬件序列号

SecurityAccess

0x27

获取刷写/标定权限(Seed-Key)

WriteDataByIdentifier

0x2E

写入配置参数

RoutineControl

0x31

执行校验/擦除/完整性检查

RequestDownload

0x34

OTA刷写:请求下载

TransferData

0x36

OTA刷写:传输数据块

RequestTransferExit

0x37

OTA刷写:传输完成

ClearDTC

0x14

清除故障码

ReadDTCInformation

0x19

读取故障码列表及快照数据


4I 启动链(Boot Chain)

4I.1 三阶段启动架构

4I.2 Secure Boot验证流程

每个阶段启动时执行以下验证:

1. 读取待执行镜像的数字签名(RSA-2048 / ECDSA-P256)
2. 从HSM/Secure Element获取对应公钥
3. 计算镜像SHA-256哈希值
4. 用公钥验证签名与哈希匹配
5. 验证通过 → 跳转执行
6. 验证失败 → 进入恢复模式 / 回退到上一版本

启动阶段

存储位置

可更新性

签名验证

失败策略

Primary BL

ROM

不可更新

N/A(ROM可信)

Secondary BL

Flash Bank A/B

OTA可更新

PBL验证

回退到备用Bank

Application

Flash Bank A/B

OTA可更新

SBL验证

回退到上一版本

4I.3 A/B分区与回退机制

回退策略:

  • 启动计数器:Application启动后N秒内需上报Watchdog,否则SBL判定启动失败

  • 连续失败阈值:连续3次启动失败则回退到上一版本

  • 云端通知:回退事件通过MQTT上报云端


本章小结

主题

核心要点

软件栈全景

BSP → OS → AUTOSAR → Middleware → App 五层架构

AUTOSAR CP

BSW模块(COM/DCM/DEM/NvM等)+ RTE + SWC,面向CAN/UDS安全关键域

AUTOSAR AP

POSIX OS + ara::com/diag/ucm,面向高性能计算域

混合架构

CP处理安全关键,AP处理复杂应用,通过Hypervisor+IPC共存

SOA通信

SOME/IP服务发现+方法/事件,DDS实时发布-订阅

云端连接

MQTT为主协议,设备影子管理状态,支持阿里/AWS/华为IoT平台

远程服务

全链路安全:TLS+Token+防重放+HSM,命令经CP域映射CAN信号执行

诊断子系统

DoIP(UDS over IP) + DTC管理 + OTA诊断

启动链

三级安全启动 + A/B分区回退保障升级安全


下一章预告: 第五章将深入讲解通信协议栈,包括CAN/CAN-FD/LIN/以太网的协议细节与测试方法。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐