去年在朋友实验室看一台四轴eVTOL的电气架构图,系统框图两侧最显眼的,一边是AURIX TC3xx多核微控制器,另一边是CoolSiC功率器件。当时我就有预感,飞行汽车从概念走向试飞,电控这块的“隐形版图”基本是英飞凌在垫底。AURIX负责“大脑”——飞控与电机控制算法的运算与安全监控,SiC负责“肌肉”——把电池直流电高效率地变成驱动螺旋桨的高频交流电。今天就把这张版图摊开,从控制侧的AURIX选型与GTM定时器,到功率侧的SiC驱动与串扰抑制,再到开发环境与编译器以及PMSM驱动系统落地的各种坑,一次性梳理清楚。这篇内容适合正在做eVTOL电驱动、想从汽车电控转航空电控、以及给下一代飞行器做器件选型的人来读,也算是我自己踩过一轮后的项目复盘。
飞行汽车跟汽车最大的不同是,它对“电控”的边界定义完全变了。汽车电控讲的是域控制器、T-Box、ESP这些功能件,飞行汽车电控的核心则是“不落地安全”:推力冗余分配、故障隔离、毫秒级容错。所以你会发现,几乎所有eVTOL厂商的电气架构里,英飞凌AURIX和SiC出现的频率高得惊人,这不是巧合,而是整个技术版图的需求使然。下面我从需求拆解开始,一层层把这张版图讲透。
1. 飞行汽车的电控版图,远比想象的大
1.1 电动飞机身上的“电控”到底指哪些子系统
先说清楚范围。飞行汽车(eVTOL、电动垂直起降飞行器)身上的电控系统,通常可以拆成这么几块:
- 动力电控:电池、电机控制器(逆变器)、PMSM电机,这一块决定飞行动力和能量效率。
- 飞行控制:飞控计算机、舵机/倾转机构、传感器融合、飞行律计算,这一块决定飞机能不能稳定飞。
- 配电与电源管理:高压直流母线、DCDC变换、地面充电、辅助电源,这一块决定能量能不能被可靠地输送到每个用电环节。
- 热管理与安全监控:电机和功率器件温度、绝缘检测、健康管理、故障诊断与冗余切换。
这里面每一项都离不开车规级甚至航空级的半导体支撑。动力电控里的逆变器需要高压大电流开关器件,飞行控制需要高算力、高可靠性微控制器,配电与电源管理需要双向变换的高效功率器件,安全监控需要片上的安全机制和独立的安全核。过去大家在汽车上把这套系统碾磨过很多年,但飞行汽车把每个指标都往上顶了一截:功率等级动不动就是100kW级甚至更高,安全等级从ASIL-D往更严苛的适航标准靠,重量和效率的敏感程度也比汽车苛刻得多。
我在实际项目里最直观的感受是:汽车电控出问题,最坏情况是停路边等救援;飞行汽车电控出问题,没有“路边”这个概念。这就决定了电控系统从架构层面就必须支持冗余、隔离、快速容错,而这恰好是AURIX这类芯片被设计出来时就在做的东西。
1.2 为什么版图的两端,正好落在AURIX与SiC上
先看AURIX。英飞凌AURIX系列是汽车功能安全MCU里的绝对主力,但在飞行汽车项目里被选中的原因,和它在汽车里被选中的原因不完全一样。飞行汽车的控制核心要同时承担三件事:
- 跑飞控算法、电机FOC(磁场定向控制)算法,需要足够的算力与DSP处理能力;
- 做冗余和安全管理,需要多核并行与锁步核(Lockstep)机制,确保某个核出错时另一个核能兜底;
- 与外部功率驱动、传感器、通信网络实时交互,需要大量高精度PWM、ADC触发、捕获接口,并且时序必须是确定性的。
AURIX的TriCore架构天然把CPU、DSP和寻址单元揉进一个核里,FPU支持浮点运算,跑一个PMSM电流环完全可以做到几微秒级中断周期。更关键的是,AURIX的GTM(Generic Timer Module,通用定时器模块)不仅是普通的PWM输出,它可以在CPU不干预的情况下自己产生波形、捕捉输入、做死区控制,这让很多“时序焦虑”在硬件层面就被解决了。
再看SiC。飞行汽车对效率的渴求是“度数级”的:电池能量密度就那么多,逆变器效率哪怕提高2%,航程和载荷都有实打实的收益。SiC MOSFET相比硅基IGBT的主要优势在于高频、高效、耐高温。高频开关可以把电机控制器的体积和重量做下来,而轻量化对飞行汽车来说是刚需。
所以整个版图的逻辑链条是:先进飞控和电机算法需要功能安全MCU,于是选AURIX;为了把MCU算出来的控制信号高效地变成电机电流,需要高频高效的功率级,于是选SiC;中间还必须有一层隔离驱动,把MCU的低压控制信号和功率级的母线高压安全隔开。英飞凌恰好把这三层都握在手里,加上Eclipse开发环境ADS和底层驱动库iLLD,工具链也很成熟。技术版图不是一个芯片的孤岛,而是一条“控制—驱动—功率”的完整链路。
2. AURIX侧:控制核心的选型思路与开发环境搭建
2.1 先看芯片:TC26x到TC3xx,飞行控制核心怎么选
英飞凌AURIX家族这两年大家问得最多的几颗芯片,一是TC264,二是TC375,三是TC397/TC399这类六核大芯片。很多从汽车电控转过来的团队会习惯性选TC397,理由是“我以前的量产项目就是这个,资源熟悉”。但飞行汽车项目里我个人不太建议一上来就用全系最高配,原因后面会说,先聊聊怎么选。
TC264属于TC26x家族,面向入门级控制应用,算力和外设规模都比较克制,核心数少,适合做单电机控制、单路BMS管理这类功能相对单一的主控。我在一个双电机验证平台上就用TC264分别带两个电机,通过SPI和上位机通信,验证算法逻辑是没有问题的。但如果你要在一个核里同时跑飞控律、多电机FOC、健康管理,TC264的浮点性能和中断资源会捉襟见肘。
TC3xx才是真正为“多任务+功能安全”准备的。以TC375、TC397/TC399为例,它们把多核、锁步核、SMU(安全管理单元)、HSM(硬件安全模块)都集成在一起。做飞行汽车控制器时,一个很经典的分配方式是:核0跑飞控主循环,核1跑电机控制算法,核2做信号采集和通信,锁步核用于执行关键安全监控任务。SMU负责收集各路错误信号、触发安全响应,比如过压、过流、时钟失效、内存ECC错误,一旦触发就进入可配置的安全状态。
一个比较实在的选型建议是:先算清楚你有多少个任务能并行、多少个安全监控信号需要进SMU、需要几路独立的GTM/ADC外设,再决定核数。如果只需要控制两台电机加基本飞控,TC26x级别够用;如果要做四发八桨的冗余动力分配,直接上TC3xx六核,否则后面代码越写越多,任务抢占和中断优先级会让你痛苦不堪。我在项目里还发现,TC3xx的HSM可以做Secure Boot,对于适航审查里关于软件完整性和抗篡改的要求,这是一个很好的加分项。
2.2 开发环境:ADS下载安装与编译器选型
说到AURIX开发,绕不开AURIX Development Studio(ADS)。ADS是英飞凌提供的免费IDE,基于Eclipse框架,内置了编译器、调试工具、iLLD示例工程。对刚入门的团队来说,最大的好处是:不用先花几万块买编译器授权,也能把TC264/TC3xx的工程跑起来。
ADS整个下载和安装流程,简单说就三步:
- 去英飞凌官网注册账号,申请下载ADS安装包,选对应Windows或Linux版本。
- 安装过程选默认路径,注意不要放在带中文的目录下,否则后续工程编译容易出路径编码问题。
- 打开ADS后,从Dashboard里能看到官方示例工程,比如基于TC264的GPIO、UART、ADC、GTM PWM等例程,先导入一个PWM例程验证工具链通不通。
编译器这一块,ADS默认会内置GCC工具链,也可以用HighTec或者TASKING。这里我要多说一句TC264的编译器到底怎么选。GCC免费、上手快、社区问题多,适合初期验证;TASKING是老牌商用编译器,代码密度和优化效果好,在汽车量产ECU里用得很多,但它需要授权,而且不同版本对C标准的支持有差异,旧工程迁移时容易出现编译报错。HighTec则两头讨好,既支持AURIX又支持Power Architecture,很多工业团队在用。
我个人初期跑算法原型一直用的是ADS默认GCC,跑通PMSM电流环之后再换TASKING做代码尺寸和性能优化。这样做的好处是,算法逻辑不依赖某个编译器的“特殊语法”,后期移植无痛。如果你一上来就用TASKING,踩到它某些严格语法检查时,排查问题的时间成本会高不少。
2.3 GTM模块:PWM时序的关键角色
AURIX和普通MCU最大的不同,是外设里藏着GTM这个“小计算机”。GTM不是简单的定时器,它有自己的时间基单元(TBU)、通道集群(TOM、ATOM)、输入捕捉(TIM)和复杂信号生成单元(MCS)。对电机控制和飞控来说,GTM带来的价值有两个:第一,生成PWM不占CPU资源;第二,时序是确定的。
我在地下电机测试台架上做双电机对拖实验时,最头疼的是两个电机PWM载波同步。如果用传统定时器中断里翻转IO来生成PWM,CPU负载一高,波形时序就会抖动,电流噪声随之变差。改用GTM的ATOM通道之后,每个通道独立产生中心对齐PWM,CPU只在PWM周期中点触发一次ADC采样,电流波形干净很多。ATOM还支持通过与另一个通道的交叉连接做死区时间插入,这是驱动半桥必须有的功能。
GTM的另一个用途是用TIM模块做输入捕捉,比如旋变解码或编码器A/B信号的周期测量。无论是增量编码器的正交脉冲还是旋变的激磁信号反馈,都可以通过TIM捕捉边沿来计算电机转速和位置,配合DPLL模块可以做到高分辨率的角度估算。对飞行汽车这种对位置环动态响应要求高的场景,这个能力很实用。
一个容易踩的坑是:GTM模块的时钟需要先使能,并且不同子模块之间的时基必须配置成同步关系。我在初学时遇到过PWM波形输出但频率完全不对的情况,最后查到原因是TBU的时钟分频算错了,导致ATOM和预期基时间差了一个数量级。建议你初始化GTM时,先把时间基单元(TBU)的时钟树画清楚,再用示波器验证实际频率,确认无误后再写上层逻辑。
3. SiC侧:功率驱动核心参数与串扰实战
3.1 SiC与IGBT、Si MOSFET的取舍
到了功率级,很多人的第一反应是“汽车上用IGBT挺好的,为什么飞行汽车要用SiC”。我把三者的特点放在一起对比,大家就清楚了。
| 器件类型 | 耐压能力 | 开关频率 | 导通损耗特点 | 高频损耗 | 高温特性 |
|---|---|---|---|---|---|
| 硅IGBT | 600V-6500V,高压有优势 | 较低,一般≤20kHz | 导通压降大,大电流时显著 | 拖尾电流导致开关损耗高 | 高温下性能下降明显 |
| 硅MOSFET | 一般≤900V | 中等 | 导通电阻随温升增大 | 好于IGBT | 结温上限约150°C |
| SiC MOSFET | 650V-3300V可选 | 很高,50kHz-100kHz也能做到 | 高频下损耗优势明显 | 极低 | 结温可达175°C以上 |
飞行汽车动力母线电压普遍做到800V甚至更高,如果用IGBT,开关频率撑死20kHz左右,无源滤波和变压器体积重量都下不来;SiC MOSFET可以轻松工作在30kHz以上,同等功率等级下电感、电容、散热器都能缩小一截。重量就是续航,SiC在这里的优势不是“锦上添花”,而是“直接换航程”。
除了效率,SiC的短路耐受能力和抗辐射能力也是航空场景的加分项。电机控制器发生相间短路时,SiC器件能在极短时间内承受大电流并把故障上报给驱动IC,让保护电路有时间动作。飞行汽车的故障保护时间要求比汽车严格,这一条很关键。
3.2 栅极驱动电路:关键参数怎么定
SiC MOSFET和普通硅MOSFET虽然都是电压驱动型器件,但栅极驱动参数差别很大。最显著的是栅极电压:CoolSiC通常推荐开通栅极电压在+15V到+20V之间(有些器件到+23V可以进一步降低导通损耗),关断则要用负压,常见是-3V到-5V。为什么必须负压关断?因为SiC MOSFET的阈值电压比较低,而且半桥开关时高频的dV/dt会通过米勒电容耦合到栅极,如果没有负压把人死死压在管子关断状态,很容易误导通。
栅极电阻Rg的选取是另一个关键点。Rg直接影响开关速度:Rg越小,dV/dt、dI/dt越大,开关损耗越小,但EMI和过压尖峰越严重;Rg越大,波形更“温柔”,但损耗和发热上升。我在调试逆变器时通常分开设置开通电阻和关断电阻,开通电阻稍大一点控制di/dt和振铃,关断电阻稍小一点让管子快点关断,避免关断损耗过大。英飞凌EiceDRIVER系列的栅极驱动器很多都支持独立的开通/关断输出,配置起来很方便。
再说一个平时容易忽视的细节:栅极回路寄生电感。驱动电路的走线越长,栅极回路寄生电感越大,开通过程中就越容易产生震荡,甚至损坏栅极氧化层。所以SiC驱动电路设计时,一定要把驱动IC尽量靠近SiC MOSFET的栅极引脚,并且用Kelvin源极引脚把功率回路和驱动源地彻底分开。如果器件封装没有Kelvin源极,你就要在PCB布局上人为给驱动回路单独走一条源极回线,不要和主功率电流共用。
3.3 半桥串扰:SiC驱动最典型的坑
“串扰”(Crosstalk)是SiC驱动电路里被问得最多的问题。简单说,一个半桥互补工作,上管开通时瞬间产生很高的dV/dt,这个变化的电场通过下管的米勒电容Cgd耦合,在下管栅极上感应出电压尖峰。如果这个尖峰超过下管的阈值电压,下管就会误导通,上下管一起导通,直接导致直通短路,轻则烧驱动,重则炸功率模块。
串扰不是SiC独有的,硅IGBT也有,只是SiC开关速度更快、dV/dt更大,串扰问题被放大了。解决串扰的办法,业界有几种成熟方案:
- 栅极负压关断:关断时加-3V到-5V负压,让串扰电压尖峰即使抬升也不容易超过阈值,这是最简单有效的手段。
- 增大栅极关断电阻或米勒电容:适当增加Cgs或者降低关断回路阻抗,可以分压掉一部分米勒电流,但代价是关断变慢。
- 有源米勒钳位(AMC):许多SiC专用栅极驱动IC内置这个功能,检测到栅极电压被抬升时,内部主动把栅极钳位到负压或地电位,将误导通概率压到最低。
- 栅极电压钳位二极管:在栅源间并联肖特基二极管,让尖峰被钳住,不让它冲到阈值以上。
我在实测逆变器时,最直接的体会是:不能只看静态驱动电压设置,一定要在满载工作状态下用示波器观察Vgs波形。我遇到过开机静态测试一切正常,但一加到半功率就偶尔出现“啪”一声电流尖峰,排查几个小时,最后发现就是串扰造成某一相的短暂直通。后来把关断负压从-2V调到-4V,并在驱动IC上启用了米勒钳位功能,问题就彻底消失了。所以做SiC驱动,示波器测Vgs是必修课。
4. 从AURIX到SiC:PMSM驱动方案的完整拼图
4.1 电流采样与FOC控制的硬件时序
飞行汽车动力电机大多采用PMSM(永磁同步电机),控制上通常用FOC磁场定向控制。FOC算法的核心是采样三相电流、做Clarke/Park变换、对id/iq进行PI调节、生成SVPWM波形。这套流程看起来不复杂,但做飞行汽车时最难的是“电流采样时刻”和“PWM开关时刻”之间的时序关系。
PMSM驱动系统里,相电流通常用低侧采样电阻或模块内部的分流器来测,由于PWM会在每个开关周期内反复导通占空比,如果采样窗口没有精确落在下管导通的稳定区间,采到的电流就是失真甚至反号。拿AURIX来举例,正确做法是用GTM的ATOM通道生成PWM,同时用另一个GTM/TIM事件在PWM中心点(所有下管导通的时间中心)触发ADC,这个同步关系要保证在任何占空比下都稳定。
我在实际工程里喜欢用ADC的Multiple Trigger模式:GTM在每次PWM周期中点产生一次触发信号,ADC在这个时刻同时采集三相电流和母线电压。这个同步一旦做好,电流采样噪声会明显下降,电流环的PI参数也好调很多。如果采样时刻漂移,你会发现电流波形毛刺多,带宽怎么调都上不去,这时候不要调算法,先回来看触发时序,80%的问题都出在这。
4.2 英飞凌PMSM方案的软件链路
软件链路上,英飞凌的MCore和iLLD库提供了大量底层驱动。你不需要逐行写寄存器来配置GTM、ADC和PWM,只需要调用iLLD的初始化结构体,配置好通道、时钟源、中断优先级,就能最快速度跑出一个能出PWM的示例工程。
一个可复现的落地路径是这样的:
- 从ADS导入官方PWM例程,确认GTM输出占空比固定50%的波形,用示波器验证频率和死区时间。
- 配置ADC模块的同步触发,让电流采样和PWM中点对齐,通过观察电流波形确认采样点有效。
- 加入编码器/旋变角度获取模块,读取转子位置,在中断里实现Clarke/Park变换和SVPWM。
- 电流环PI先跑通,把id控制在0附近、iq输出能跟随给定;再叠加速度环,最后才是位置环和飞控上层指令。
英飞凌官方有对应的电机控制参考文档和示例工程,基本都是这套链路。区别在于,飞行汽车项目里我们会刻意把“电机控制”和“飞控控制”拆到不同核上,用核间中断做数据交换,电机控制核只管电流环、速度环,飞控核只管姿态、位置和推力分配。这样即使飞控任务卡顿,也不影响电机电流环的实时性,这是功能安全架构的一部分。
4.3 冗余架构与适航视角的加分项
飞行汽车不像汽车,单电机失效不能直接停车。所以电控架构里冗余是标配。常见做法是每个电机配独立逆变器,多个逆变器由同一个AURIX的不同核或不同AURIX协同控制。AURIX的多核体系在这里很有优势:一个核跑3台电机,另一个核跑另外3台电机,中间有核间总线做心跳监测,一旦某个核异常,另一个核可以接管所有电机控制,实现“部分功能降级但不断电”。
SiC器件在冗余架构里的角色是“功率域隔离”。每个电机逆变器用独立母线、独立熔断器或固态开关隔离,单个逆变器故障时可以快速从电网中断开,不会拖垮其他通道。当初我们做三余度动力系统时,就强调每个通道都要有独立的驱动IC、独立的辅助电源、独立的栅极电源隔离,这些都是适航审查会看的点。
工具链层面,英飞凌的TASKING编译器、ADS、官方的SafeTlib库(安全库)都是为了满足功能安全和可靠编码而存在的。坦白说,适航认证对软件的流程要求很高,但至少底层物料和技术路线上,用AURIX和SiC会让整个认证过程的“技术债”少很多。
5. 实战排查:常见问题与避坑记录
5.1 SiC串扰的实测与排查
前面讲了串扰原理,这里说实际怎么排查。一台样机在加载测试时出现间歇性的相电流尖峰,我用示波器同时测量上管Vgs和下管Vgs,发现下管关断期间,栅极电压上会叠一个窄尖峰,幅度已经逼近阈值电压。确认串扰后,整改步骤是:
- 先检查关断负压,确保驱动电源的负压轨不是纹波很大,必要时给负压轨加一个低ESR电容。
- 开启驱动IC的有源米勒钳位功能,观察尖峰是否被削平。
- 适当增加关断栅极电阻或给栅极增加一个几纳法的电容,牺牲一点关断速度换取安全性。
- 如果结构允许,把驱动板到功率模块的引线尽量缩短,减少栅极回路寄生电感。
- 最后用热像仪做一次满载温升测试,确认整改后没有带来额外的损耗发热。
这一整套流程做完,基本能把串扰问题从设计阶段堵死。如果你发现Vgs尖峰还是压不住,建议回过来看电路板布局,不要一味加电容,否则多出来的开关损耗可能让你改散热器,代价更大。
5.2 TC264编译器与ADS的连带问题
AURIX工程最常见的报错之一,是编译器和IDE版本不匹配。TC264是老芯片,ADS新版本默认GCC可能和旧工程头文件存在兼容性差异,编译时爆出一堆“unknown type name”。我的建议是,老工程尽量用工程原生的工具链版本,不要随便升级;新工程直接选新版本ADS。如果必须混用,先跑一遍官方例程确认工具链环境,再导入自己的工程。
TASKING编译器这边,常见坑是许可文件和代码优化等级。TASKING的优化在某些老版本会把未初始化变量“优化掉”,导致运行时变量值不对。排查这类问题,先把优化等级降到O0或O1,确认现象消失后再逐步提高优化等级,找到具体是哪一段代码被优化出问题。另外,TASKING对C语言的语法更严格,指针别名、位段操作容易编译失败,初用时要有心理准备。
还有一个容易被忽略的问题:调试器的驱动和固件版本。ADS用的是板载调试器或者miniWiggler,如果你发现连接不上芯片,先确认调试器驱动装没装好,再确认目标板供电,最后再查调试器固件版本。我遇到过一台TC264板子连不上,原因是板上电源轨只有1.8V没起来,跟调试器无关。
5.3 高温与EMI:飞行环境下更严格的设计要求
飞行汽车的工作环境比地面车辆更复杂:高海拔、强温差、高压直流母线带来的电磁干扰。SiC开关频率高,意味同样电压和电流变化率下,EMI频谱会延伸到更高频段,如果滤波设计不跟上,很容易把飞控板“串扰”得逻辑错乱。
我做整机联调时的一个经验是,在SiC逆变器母线输入加共模电感和X/Y电容组合,出线端加dI/dt限制电感和吸收电容,给驱动板电源做三级滤波。飞控板全部用隔离电源,信号传输用差分走线或隔离芯片。这些措施在汽车控制器上可能算“豪华配置”,在飞行汽车上就是“基本配置”。
温度方面,SiC允许175°C以上结温,但驱动IC和MCU并不都能扛高温。飞行器的封闭机舱散热条件不如地面,因此要格外关注热设计中半导体附近的环境温度,不要让MCU旁边紧挨着散热器,必要时加导流风道。我通常会在器件选型阶段就用热仿真软件跑一遍最恶劣工况,确定结温余量,再做实验验证。
6. 一点个人体会
做飞行汽车电控这一年多,我最大的感受是“不要把AURIX和SiC当成两颗芯片,而是当成一条链路的两个端点”。AURIX解决了“脑子够不够用、够不够安全”的问题,SiC解决了“肌肉够不够高效、耐不耐高温”的问题,中间的驱动电路、GTM时序、编译器工具链,才是决定这条链路能不能真正跑起来的关键。
如果让我从零再搭一套飞行汽车电控,我会先做两件事:第一,用一块AURIX开发板加一套SiC驱动评估板,把GTM的PWM输出和半桥双脉冲试验跑通,先把Vgs波形和开关损耗测明白;第二,在只有一台电机的小台架上完成PMSM电流环调试,确认采样同步和FOC算法稳定,再往整机架构上扩展。先把这两个基础打牢,后面的多电机冗余、飞控集成和适航文档都只是时间问题。飞行汽车的路还很长,但电控版图的基础,确实已经有人替你画好了。