IF-10 AURIX TC3xx SCU系统控制单元深度解析
一、SCU概述
System Control Unit(SCU)是AURIX TC3xx芯片的核心系统控制模块,负责管理复位、看门狗、外部中断、紧急停止等关键系统功能。作为芯片的系统控制中枢,SCU确保了AURIX能够在汽车安全关键应用中稳定可靠地运行。
SCU内部包含七大功能模块:
- RCU – Reset Control Unit(复位控制单元)
- TRAP – Trap Generation(Trap生成单元)
- SRU – System Register Unit(系统寄存器单元)
- WDT – Watchdog Timer(看门狗定时器)
- ERU – External Request Unit(外部请求单元)
- ES – Emergency Stop(紧急停止)
- PMC – Power Management Control(电源管理控制)
二、RCU复位控制单元详解
2.1 复位类型分类
RCU管理四种主要复位类型,每种复位对应不同的系统状态和恢复流程:
| Power-On Reset | 上电/掉电检测 | 全系统 | 系统启动 |
| Cold Reset | 器件复位引脚/调试器 | 除模拟海外的全系统 | 系统初始化 |
| Warm Reset | 软件/看门狗/SMU | CPU子系统 | 异常恢复 |
| Application Reset | 模块级复位请求 | 特定外设 | 外设重启 |
2.2 复位状态寄存器RSTSTAT
RSTSTAT寄存器记录最近一次复位的来源和类型,是系统启动诊断的关键数据源:
// RSTSTAT寄存器位域定义
struct RSTSTAT {
uint32_t PORST : 1; // Power-On Reset Flag
uint32_t CRST : 1; // Cold Reset Flag
uint32_t WRST : 1; // Warm Reset Flag
uint32_t STM0RST : 1; // STM0 Reset Request
uint32_t STM1RST : 1; // STM1 Reset Request
uint32_t … // 更多位
};
2.3 复位配置寄存器RSTCON
通过RSTCON0/1/2/3寄存器,软件可以配置各复位源的触发行为和优先级。
三、看门狗定时器WDT深度剖析
3.1 WDT架构概述
AURIX TC3xx包含两种类型的看门狗:Safety WDT(安全看门狗)和CPU WDT(每个CPU独立)。这种双层看门狗架构满足了ISO 26262 ASIL-D功能安全要求。
3.2 Safety WDT特性
- 独立于CPU运行,无法被CPU停止
- 超时后触发系统复位
- 支持Time-Base Check机制防止计数器被篡改
- 与SMU(Safety Management Unit)深度集成
3.3 CPU WDT工作原理
每个CPU核心都有独立的看门狗计时器,需要定期"喂狗"操作:
// CPU看门狗喂狗操作(需正确密码序列)
void feed_cpu_wdt(uint8_t cpu_id) {
// WDTxCON1中写入特定序列
WDT0CPU0CON1 = 0x00FF; // 清零计数器
WDT0CPU0CON1 = 0xCC00; // 启动新周期
}
3.4 ENDINIT访问保护机制
ENDINIT是AURIX的关键安全机制,防止关键寄存器被意外修改:
// 解除ENDINIT保护(典型模式)
void unlock_config(void) {
// 读取当前密码
uint16_t pwd = WDT0CPU0CON0 & 0x0FFF;
// 构造解锁序列
WDT0CPU0CON0 = pwd | 0x08; // 设置ENDINIT=0
// 执行关键配置
// …
// 重新锁定
WDT0CPU0CON0 = pwd | 0x08 | 0x100; // 同时设置ENDINIT=1
}
四、ERU外部请求单元深度解析
4.1 ERU功能架构
ERU是AURIX连接外部信号的桥梁,支持8个独立输入通道,每个通道可独立配置触发条件:
- EXICON – 外部输入配置寄存器(8通道)
- IGF – Input Gate Filter(输入门控滤波器)
- ERS – External Request Selector(事件选择器)
- ETL – Event Trigger Logic(事件触发逻辑)
- OGU – Output Gating Unit(输出门控单元,4个)
4.2 事件触发与路由
ERU支持灵活的事件路由配置,可以将外部中断路由到:
- 任意CPU的中断控制器
- DMA请求输入
- SMU安全监控单元
// ERU通道配置示例
void eru_init_channel(uint8_t ch, uint8_t input_pin) {
// 配置输入引脚
EXICON[ch].DSEL = input_pin; // 选择输入源
EXICON[ch].LEN = 1; // 使能通道
EXICON[ch].REN = 1; // 上升沿触发
EXICON[ch].FEN = 1; // 使能滤波
// 配置事件路由到OGU0
ERS[ch].EX = 1; // 使能事件
OGU[0].IGE0 = ch; // 路由到OGU0
}
4.3 ETL边沿检测逻辑
ETL支持多种边沿检测模式:
- 上升沿触发(Rising Edge)
- 下降沿触发(Falling Edge)
- 双边沿触发(Both Edges)
- 电平敏感(Level Sensitive)
五、Trap生成单元TRAP
5.1 TRAP机制概述
Trap是TriCore架构的同步异常处理机制,与中断不同,Trap具有更高的优先级且不可屏蔽(某些类型)。SCU的TRAP模块负责生成和管理系统Trap请求。
5.2 TRAP寄存器详解
// TRAPSTAT – Trap状态寄存器
struct TRAPSTAT {
uint32_t CPU0ESR0T : 1; // ESR0 Trap Request
uint32_t CPU0ESR1T : 1; // ESR1 Trap Request
uint32_t SMUART : 1; // SMU Alarm Trap
uint32_t … // 更多Trap源
};
// TRAPSET/CLR – 设置和清除Trap请求
#define TRAP_CLR_ALL() (SCU_TRAPCLR.U = 0xFFFFFFFF)
5.3 Trap与复位的协同
Trap可以作为复位请求的前置条件,当关键系统异常发生时:
六、SRU系统寄存器单元
6.1 芯片识别与配置
SRU提供芯片ID、版本号等关键信息:
// CHIPID寄存器
struct CHIPID {
uint32_t CHID : 4; // Chip ID
uint32_t CHTEC : 2; // Chip Family
uint32_t EEA : 1; // EMEM/ADAS Extension Available
uint32_t … // 更多配置位
};
6.2 LCL本地锁控制
LCL(Local Lockstep Comparator)用于Lockstep CPU对的故障检测:
// LCLCON0 – CPU0/CPU2 Lockstep Control
#define LCL_CON(x) (SCU_LCLCON0.U & (1 << (x)))
// 检测Lockstep不一致
if (LCL_CON(0)) {
// CPU0与CPU1输出不一致,系统安全告警
}
6.3 访问控制ACCEN
ACCEN寄存器控制各模块寄存器的CPU访问权限,防止非法访问。
七、ES紧急停止单元
7.1 紧急停止功能
ES模块提供硬件紧急停止功能,通过专用引脚(P33.8)触发:
// EMSR – Emergency Stop Register
#define EMSR_EST0 (1 << 0) // Emergency Stop 0
#define EMSR_EST1 (1 << 1) // Emergency Stop 1
// 软件触发紧急停止
SCU_ESR.B.EST0 = 1;
// 读取紧急停止状态
uint8_t status = SCU_EMSR.B.EST0;
7.2 紧急停止响应流程
八、PMC电源管理控制
8.1 电源监控
PMC模块监控芯片供电电压,确保在安全范围内运行:
- EVRCORE – 内核电压监控
- EVR33 – 3.3V供电监控
- EVR13 – 1.3V供电监控
8.2 掉电保护
当检测到欠压情况,PMC会:
九、SCU寄存器总结
| RSTSTAT | 0050H | 复位状态寄存器 |
| RSTCON0 | 0088H | 复位配置寄存器0 |
| RSTCON1 | 008CH | 复位配置寄存器1 |
| RSTCON2 | 0090H | 复位配置寄存器2 |
| RSTCON3 | 00F8H | 复位配置寄存器3 |
| TRAPSTAT | 0120H | Trap状态寄存器 |
| TRAPCLR | 012CH | Trap清除寄存器 |
| WDT0CPU0CON0 | 0000H | CPU0看门狗控制0 |
| WDT0CPU0CON1 | 0250H | CPU0看门狗控制1 |
| CHIPID | 0000H | 芯片标识寄存器 |
十、总结
SCU作为AURIX TC3xx的系统控制中枢,承担着系统初始化、运行监控、异常处理等关键职责。其模块化设计使得各功能既相互独立又紧密协作,共同保障了汽车ECU的安全可靠运行。
深入理解SCU的工作原理,对于开发高质量的汽车嵌入式软件至关重要。特别是在功能安全要求日益提高的今天,掌握SCU的复位管理、看门狗机制、Trap处理等核心功能,是每个AURIX开发者的必修课。
推荐阅读:
- IF-09 AURIX TC3xx DMA直接内存访问机制深度解析
- IF-08 AURIX TC3xx时钟系统深度解析
- IF-SAFE系列 AURIX功能安全设计指南
本文基于Infineon AURIX TC3xx User Manual Part1编写,参考文档版本SCUV2.1.27
