1. 项目概述与核心价值
在汽车电子领域,尤其是电机驱动系统中,栅极驱动器扮演着“指挥官”与“执行者”的双重角色。它位于微控制器(MCU)和功率开关(通常是MOSFET)之间,核心任务是将MCU发出的、仅有几毫安驱动能力的PWM逻辑信号,安全、高效、精准地放大为足以快速开启和关断大功率MOSFET的“强电流”信号。这个过程的优劣,直接决定了电机控制的效率、响应速度、电磁干扰(EMI)水平,乃至整个系统的长期可靠性。尤其是在12V/24V汽车电池供电的严苛环境下,电压波动、负载突变、高温、高湿以及复杂的电磁环境都是常态,对驱动芯片的鲁棒性提出了极高要求。
TI的DRV8343-Q1正是为应对这些挑战而生的。它不仅仅是一个简单的电平转换器,更是一个高度集成的“智能栅极驱动单元”。其核心价值在于,它将三个独立的半桥驱动器、三个高精度的电流检测放大器(CSA)、一个为高侧驱动供电的电荷泵、一个为逻辑电路供电的3.3V LDO,以及一整套全面的保护机制,全部集成在了一颗芯片里。这意味着,设计一个三相无刷直流(BLDC)或有刷直流(BDC)电机驱动板时,你不再需要为每一相单独配置驱动芯片、运放和复杂的保护电路,大大简化了系统设计,减少了PCB面积,并显著提升了系统的整体可靠性。其符合AEC-Q100 Grade 1标准(-40°C 至 125°C环境温度)的身份,更是其征战汽车前装市场的“通行证”。
对于从事汽车水泵、燃油泵、散热风扇、电动尾门、电子涡轮增压器等电机驱动开发的工程师而言,深入理解并掌握DRV8343-Q1的应用,意味着能够设计出更紧凑、更可靠、性能更优的解决方案。本文将从一个资深硬件工程师的视角,拆解这颗芯片的设计思路、关键特性、实战配置要点以及那些数据手册上不会明说,但在实际调试中至关重要的“坑”与技巧。
2. 核心架构与功能模块深度解析
要驾驭DRV8343-Q1,必须先吃透其内部架构。你可以把它想象成一个高度专业化的“电机驱动指挥中心”,内部由几个协同工作的核心部门构成。
2.1 智能栅极驱动引擎:不只是开关,更是“软着陆”
栅极驱动部分是其核心。它包含三个独立的半桥驱动器,每个都能驱动一个高侧和一个低侧N沟道MOSFET。其“智能”体现在可编程的驱动强度和转换率控制上。
驱动电流(IDRIVE)的可配置性:通过SPI寄存器或硬件(H/W)引脚的外接电阻,你可以将峰值拉电流(Source)从1.5mA精细调节到1A,峰值灌电流(Sink)从3mA调节到2A。这个功能极其重要。为什么需要调节?因为驱动电流直接决定了MOSFET栅极电容的充电速度(dv/dt = I_gate / C_iss)。电流越大,开关速度越快,开关损耗越低。但过快的开关速度会带来严重的电压尖峰和EMI问题。因此,你需要根据所选MOSFET的栅极电荷(Qg)和系统对EMI的要求来折衷选择。例如,驱动一个Qg=30nC的MOSFET,若希望上升时间在100ns以内,则需要的峰值电流至少为I = Qg / t = 30nC / 100ns = 0.3A。此时,你可以将IDRIVE设置为提供约300-500mA的档位。
主动栅极下拉与关断路径:芯片内部在GHx和SHx(高侧)、GLx和PGND(低侧)之间,集成了约280kΩ的关断态保持电阻(ROFF)。这个电阻确保了在控制器输入信号悬空或初始化期间,MOSFET的栅极被可靠地拉低,避免意外导通。更关键的是,在发生过流等故障时,驱动器会启用一个强下拉电路(ISTRONG),以最快速度(纳秒级)将MOSFET栅极电压拉低,实现“硬关断”,保护功率管免受损坏。
可调死区时间(Dead Time):在SPI版本中,死区时间可以在500ns到4000ns之间编程。死区时间是同一桥臂上下管均关闭的时间,用于防止“直通”(Shoot-Through)——即上下管同时导通导致的电源短路灾难。设置死区时间需要平衡安全性和效率:时间太短不足以防止直通,太长则会增加体二极管导通时间,导致额外的导通损耗和发热。通常,需要根据MOSFET的开关特性(特别是关断延迟时间)来设定,一般建议为MOSFET关断延迟时间的1.5到2倍,并留有一定裕量。
2.2 集成电流检测放大器(CSA):实现闭环控制的“眼睛”
这是DRV8343-Q1的另一大亮点。它在每一相的低侧MOSFET源极都集成了一路CSA,用于检测流过采样电阻(Shunt Resistor)的电流。
工作原理与连接:CSA采用差分输入架构。以A相为例,SPA引脚连接到采样电阻的高电位端(即MOSFET源极),SNA引脚连接到低电位端(地侧)。放大器将采样电阻两端的微小压差(通常为几十到几百毫伏)放大,并从SOA引脚输出一个以VREF引脚电压为基准的单端电压信号。这个信号可以直接送入MCU的ADC进行采样,从而实现电流环的闭环控制(如FOC算法中的电流采样)。
增益灵活配置:CSA的增益可通过SPI或硬件引脚设置为5、10、20或40 V/V。增益选择是一门艺术,核心原则是充分利用ADC的量程。假设你的采样电阻为5mΩ,电机峰值电流为20A,则采样电阻上的峰值电压为20A * 5mΩ = 100mV。如果选择20倍增益,CSA输出电压摆幅为100mV * 20 = 2V。若VREF设置为3.3V(作为ADC的参考电压),且CSA输出偏置在VREF/2(1.65V),则输出信号将在1.65V ± 1V之间摆动,完美匹配ADC的输入范围,实现了最高的信噪比和分辨率。切忌增益设置过高导致输出饱和,或过低导致信号太小易受噪声干扰。
双向电流检测与偏置:CSA支持双向电流检测。当CSA_FET位(SPI版本)或硬件连接使能时,输出偏置电压为VREF/2。这意味着零电流时,SOx输出为1.65V(假设VREF=3.3V);正电流时输出高于1.65V,负电流时低于1.65V。这种设计非常适合需要检测电流方向的应用(如FOC)。如果只需要单向检测,可以配置为以VREF为偏置(零电流时输出接近VREF)。
2.3 全面的保护机制:系统的“安全卫士”
汽车应用对安全性要求极高,DRV8343-Q1内置了多层保护,构成了一个纵深防御体系。
电源监控:
- VM欠压锁定:当主电源VM电压低于约5.2V(典型值)时,芯片会关闭所有栅极驱动输出,防止MOSFET在电压不足时工作在线性区而过热。
- 电荷泵欠压:监控为高侧驱动供电的电荷泵输出电压(VCP)。如果VCP不足以完全开启高侧MOSFET,也会触发保护。
功率级保护:
- MOSFET VDS过流保护:这是最核心的保护之一。芯片通过
DLx引脚(低侧)或SHx引脚(高侧)实时监测MOSFET的漏-源电压(Vds)。当MOSFET导通时,Vds应等于I_d * Rds(on),这是一个很小的值(通常几十毫伏)。如果由于电机堵转、短路等原因导致电流剧增,Vds会迅速升高。当监测到的Vds超过通过VDS引脚或SPI设置的阈值时,芯片会立即关闭所有输出,并在nFAULT引脚拉低报警。阈值可从低至6mV到高达2.07V可调,你需要根据MOSFET的Rds(on)和需要保护的电流值来精确计算。例如,若MOSFET的Rds(on)为10mΩ,希望50A时触发保护,则Vds阈值为50A * 10mΩ = 500mV。你应选择一个略高于此值的档位,如0.6V。 - 电池短路与接地短路保护:在离线诊断模式下(通过
nDIAG引脚或SPI配置),芯片可以检测电机相线对电池正极或对地的短路故障。 - 开路负载诊断:可以检测电机绕组是否断开连接。
- MOSFET VDS过流保护:这是最核心的保护之一。芯片通过
热管理与故障处理:
- 热警告与热关断:结温超过150°C(典型值)时,会先触发热警告(可通过SPI读取状态);若温度继续升至170°C,则触发热关断,强制关闭输出。温度回落20°C后自动恢复。
- 故障恢复与重试:发生VDS过流等故障后,芯片可以配置为锁存模式(需要MCU干预复位)或自动重试模式。在自动重试模式下,经过一个可配置的延时(2-8ms)后,芯片会自动尝试重新启动驱动。这在应对瞬间过载(如电机启动瞬间)时非常有用,可以避免不必要的系统停机。
3. 硬件设计实战与关键外围电路
理解了内部原理,我们来看如何将它“落地”到PCB上。外围电路的设计直接决定了最终性能的稳定性和可靠性。
3.1 电源与去耦网络:稳定的基石
VM主电源:输入范围5.5V至60V,必须能承受汽车负载突降(Load Dump)等瞬态高压。建议在靠近芯片VM和PGND引脚处,并联放置一个至少10μF的电解电容或固态电容(用于储能和低频滤波),以及一个100nF的陶瓷电容(用于高频去耦)。电容的耐压值必须留有充足裕量,建议选择80V或100V规格。
电荷泵电路:这是为高侧驱动器供电的关键。需要在CPH和CPL引脚之间连接一个飞跨电容(Flying Capacitor),典型值为100nF,建议使用X7R或X5R材质的陶瓷电容,耐压至少16V。同时,在VCP和VM引脚之间连接一个储能电容,典型值为1μF,同样建议使用低ESR的陶瓷电容。这个电容的容量直接影响高侧MOSFET持续导通(100%占空比)的能力,容量越大,维持时间越长。
DVDD与VREF:DVDD是内部3.3V LDO的输出,最大可提供30mA电流,可以为外部MCU或逻辑电路供电。必须在DVDD和AGND之间紧贴芯片放置一个至少1μF的陶瓷去耦电容。VREF是电流检测放大器的参考电源和输出偏置基准,其稳定性直接影响电流采样精度。建议使用一个低噪声、高精度的LDO(如TPS7A系列)单独为VREF供电,并在其输出端并联一个1μF和一个100nF的陶瓷电容到AGND。如果CSA输出直接接MCU ADC,最好让VREF与MCU的ADC参考电压源一致,以消除共模误差。
3.2 栅极驱动回路:速度与振铃的博弈
从芯片的GHx/GLx引脚到MOSFET栅极的走线,是整个PCB布局中优先级最高的部分。这条路径必须尽可能短、粗,并形成最小的环路面积,以降低寄生电感和电阻。
栅极电阻的选择:虽然芯片内部驱动强度可调,但通常仍建议在驱动输出和MOSFET栅极之间串联一个小的栅极电阻(Rg),典型值在0-10Ω之间。这个电阻有三大作用:1)与MOSFET的输入电容(Ciss)和走线电感构成一个阻尼网络,抑制栅极电压振铃;2)轻微降低开关速度,优化EMI;3)在极端情况下(如Vgs过冲)限制流入栅极的电流,保护驱动芯片。你可以通过以下步骤初步确定Rg值:
- 根据EMI和效率要求确定目标开关时间
t_sw(如100ns)。 - 查阅MOSFET数据手册,获取总栅极电荷
Qg。 - 计算所需平均栅极驱动电流
I_avg = Qg / t_sw。 - 根据DRV8343的驱动能力曲线,找到能提供此电流的IDRIVE设置下,驱动器的等效输出阻抗
R_drv。 - 栅极回路的总电阻
R_total = V_drv / I_avg,其中V_drv约为11V(Vgs)。 - 外部栅极电阻
Rg = R_total - R_drv。 在实际调试中,通常先用一个较小的电阻(如2.2Ω),用示波器观察栅极波形,如果有严重振铃,再逐步增大Rg直到振铃被抑制在可接受范围内。
米勒钳位与栅源电阻:对于高侧MOSFET,建议在GHx和SHx之间靠近MOSFET的地方,并联一个约10kΩ的电阻(栅源电阻),确保在驱动器失效或初始化时MOSFET可靠关断。对于低侧MOSFET,在GLx和PGND之间同样建议并联一个栅源电阻。
3.3 电流采样网络:精度与抗干扰的艺术
电流采样回路是模拟小信号路径,必须精心处理以避免噪声污染。
采样电阻的选择:选择低电感、高功率的贴片采样电阻,如锰铜或合金电阻。阻值选择需权衡:阻值大,信号强,但功耗和发热也大;阻值小,功耗低,但对放大器和ADC的噪声要求高。汽车电机驱动中,常用1-5mΩ的阻值。功率计算必须基于最恶劣情况(如堵转电流):P = I_peak^2 * R_shunt。例如,5mΩ电阻,50A峰值电流,功耗为50^2 * 0.005 = 12.5W!必须选择足够功率的电阻并做好散热设计。
Kelvin连接:这是保证采样精度的黄金法则。必须使用独立的、细长的走线(“Sense Trace”)将采样电阻的两端直接连接到芯片的SPx和SNx引脚。这条走线绝对不能与承载大电流的功率地(PGND)或功率路径共享。它应该形成一个独立的、干净的“传感岛”,直接回到芯片的AGND引脚。AGND和PGND应在芯片下方或附近通过一个单点(通常是0Ω电阻或磁珠)连接,以避免功率地的大电流噪声窜入敏感的模拟地。
滤波与布局:在SPx和SNx引脚处,可以各放置一个小的RC滤波器(如100Ω电阻串联10nF电容到AGND),用于滤除开关噪声。但需注意,这会引入相移,影响动态响应,在需要高带宽电流环(如FOC)的应用中需谨慎计算。采样电阻应尽可能靠近MOSFET的源极和芯片,缩短大电流回路。
4. 软件配置与驱动逻辑实现
对于SPI版本的DRV8343S,其强大功能需要通过寄存器配置来解锁。硬件版本(DRV8343H)则通过引脚电平配置,相对简单但灵活性不足。这里我们重点讨论SPI版本的配置流程。
4.1 上电初始化序列
一个稳健的初始化流程是避免上电“放烟花”的关键。
- 硬件准备:确保MCU的GPIO和SPI接口已正确配置。
nSCS(片选)引脚初始化为高电平(不选中)。ENABLE引脚保持低电平,使芯片处于睡眠模式。 - 电源建立:给VM引脚上电(5.5V-60V)。等待VM电压稳定,并超过欠压锁定阈值(约5.4V)。
- 唤醒芯片:将
ENABLE引脚拉高至少1ms(t_WAKE时间),等待芯片内部LDO、电荷泵等电路稳定。 - SPI通信测试:先尝试读取芯片的器件ID寄存器(如地址0x00)。这是一个良好的习惯,可以验证SPI物理连接和通信协议是否正确。
- 关键配置写入:在使能驱动输出之前,必须完成所有关键安全参数的配置。这通常包括:
- 驱动电流设置:根据MOSFET的Qg和EMI要求,配置
IDRIVEP和IDRIVEN寄存器。 - 死区时间设置:根据MOSFET特性配置
DEAD_TIME。 - 保护阈值设置:配置
VDS_LVL(过流阈值)、OCP_DEG(消隐时间)、TRETRY(重试时间)等。 - CSA配置:设置
CSA_GAIN(增益)和CSA_FET(偏置模式)。 - 故障响应配置:配置故障后的行为,如是否锁存、是否自动重试。
- 驱动电流设置:根据MOSFET的Qg和EMI要求,配置
- 清除潜在故障:读取故障状态寄存器,并写入1来清除任何可能的上电瞬态导致的故障标志。
- 使能驱动:最后,通过配置控制寄存器,使能栅极驱动器输出。此时,芯片开始响应
INHx和INLx的PWM输入信号。
4.2 PWM输入模式解析与配置
DRV8343支持多种PWM输入模式,极大简化了与不同MCU PWM模块的接口。
- 6x PWM模式:需要6个独立的PWM信号(INHA, INLA, INHB, INLB, INHC, INLC),分别控制三个半桥的上下管。这是最灵活的模式,MCU可以完全控制每个MOSFET的开关时序和死区时间。适用于需要复杂控制算法(如FOC)或自定义死区补偿的场景。
- 3x PWM模式:只需要3个PWM信号(INHA, INHB, INHC)来控制三个高侧MOSFET,三个低侧MOSFET由芯片内部逻辑自动生成互补信号,并插入由
DEAD_TIME寄存器设定的死区时间。这是驱动BLDC电机最常用的模式,大大节省了MCU的PWM输出资源。 - 1x PWM模式:仅使用INHA一个PWM信号,芯片内部逻辑生成六步换向(Six-Step Commutation)所需的全部6路栅极信号。此模式需要配合
MODE引脚或SPI寄存器来设定电机的旋转方向。适用于对成本极其敏感、MCU资源有限的简单BLDC方波驱动应用。 - 独立模式:每个半桥完全独立工作,适用于驱动三个独立的负载,如电磁阀。
配置建议:对于大多数三相BLDC或PMSM电机驱动项目,3x PWM模式是首选。它将死区时间生成和互补信号生成的负担从MCU转移到了专门优化的驱动芯片上,既减少了软件复杂度,又提高了死区时间的精度和一致性。你只需要在MCU中生成三路中心对齐或边沿对齐的PWM,并确保它们之间的相位差为120度(对于BLDC方波驱动)或按SVPWM算法实时计算(对于FOC驱动)。
4.3 电流采样与ADC同步策略
要实现高性能的电流环控制(如FOC),精确且同步的电流采样至关重要。
采样时机:在典型的三相逆变器中,我们通常采样两相电流,第三相通过计算得出(Ia + Ib + Ic = 0)。最理想的采样时刻是在PWM周期的中心点,即当低侧MOSFET导通、相电流通过采样电阻稳定流动时。对于3x PWM模式,这意味着当某相的低侧PWM信号为高时(即该相下管导通),对该相的CSA输出进行采样。
ADC触发:可以利用MCU的PWM模块的触发输出功能,在计数器达到特定值(如周期中心点)时,自动触发ADC转换序列,对两路CSA输出(SOx)进行同步采样。这种硬件自动触发的方式,避免了软件延迟带来的采样时刻抖动,是实现高带宽、高稳定性电流环的基础。
软件滤波与校准:ADC采样值需要进行软件滤波以抑制噪声。简单的移动平均滤波或一阶低通滤波是常用方法。此外,还需要进行偏移校准:在电机停止、PWM输出均为低(所有MOSFET关断)时,读取所有CSA通道的ADC值,这个值就是零电流偏置(Offset),将其存储起来,在后续的电流计算中减去。
5. 调试心得与典型故障排查
纸上得来终觉浅,绝知此事要躬行。以下是一些在实验室里“踩坑”后总结出的实战经验。
5.1 上电无反应或驱动输出异常
- 症状:芯片
ENABLE后,nFAULT引脚立即拉低,或测量栅极输出无电压。 - 排查步骤:
- 查电源:首先用万用表和示波器检查所有电源引脚电压:VM是否在5.5V以上?DVDD是否为稳定的3.3V?VCP电压是否约为
VM + 10V?电荷泵电容和飞跨电容焊接是否正确? - 查地线:用万用表蜂鸣档检查
AGND和PGND是否与系统地可靠连接,两者之间的单点连接是否完好。 - 查配置:如果是SPI版本,确认SPI通信是否成功,关键寄存器(如控制寄存器1)是否已正确写入。可以尝试读取所有寄存器,与写入值对比。
- 查保护:读取故障状态寄存器(FAULT_STATUS1/2),看具体是哪种故障被触发。常见的是VDS过流保护阈值设得太低,或VM欠压。
- 查MOSFET:断开电机负载,甚至可以先不接MOSFET,仅测量芯片栅极输出引脚对地的波形,看PWM信号是否正常。如果正常,再接上MOSFET测试。
- 查电源:首先用万用表和示波器检查所有电源引脚电压:VM是否在5.5V以上?DVDD是否为稳定的3.3V?VCP电压是否约为
5.2 电机运行噪音大、振动或效率低
- 症状:电机能转,但声音刺耳、抖动剧烈,或发热严重。
- 排查步骤:
- 观波形:这是最重要的手段。用示波器同时观察一路PWM输入(INHx)和对应的栅极输出(GHx)波形。
- 上升/下降沿过冲或振铃:说明栅极驱动回路寄生电感过大或栅极电阻Rg太小。优化布局,缩短走线,或适当增大Rg。
- 上升/下降沿过于缓慢:说明栅极驱动电流(IDRIVE)设置太小,或栅极电阻Rg太大。增大IDRIVE设置或减小Rg。
- 查死区:用双通道示波器测量同一桥臂的上下管栅极信号(GHx和GLx),确保存在设定的死区时间,且没有重叠。死区时间不足是导致“直通”短路、MOSFET爆炸的元凶。
- 查电流采样:观察CSA输出(SOx)的波形。在电机匀速运行时,它应该是比较平滑的、与反电动势形状类似的模拟波形。如果波形毛刺很多,或出现异常的尖峰,检查采样电阻的Kelvin连接是否被干扰,
VREF是否稳定,ADC采样时机是否在开关噪声较大的时刻。
- 观波形:这是最重要的手段。用示波器同时观察一路PWM输入(INHx)和对应的栅极输出(GHx)波形。
5.3 电流采样值不准或不稳定
- 症状:ADC读回的电流值漂移、跳动大,或与钳形表测量值差异大。
- 排查步骤:
- 校准偏移:务必在每次上电或初始化后,进行CSA偏移电压校准。将
CAL引脚拉高(或通过SPI设置),此时芯片内部将CSA输入短接,输出应为设定的偏置电压(VREF或VREF/2)。读取此时的ADC值作为零偏校准值。 - 检查VREF:用高精度万用表测量
VREF引脚电压,确保其稳定且精确。如果使用芯片的DVDD作为VREF,需注意DVDD的负载是否过重导致电压波动。 - 检查增益:通过注入一个已知的小电流(如1A),测量采样电阻两端压差和CSA输出电压,反推实际增益,与设定增益对比。
- 布局复查:这是最常见的问题根源。再次严格检查
SPx/SNx走线是否远离功率环路,是否采用Kelvin连接,模拟地(AGND)是否干净。
- 校准偏移:务必在每次上电或初始化后,进行CSA偏移电压校准。将
5.4 频繁触发过流保护
- 症状:电机启动或加载时,容易触发VDS过流保护,nFAULT报警。
- 排查步骤:
- 调整阈值和消隐时间:VDS保护阈值可能设置得太接近正常工作时的Vds电压。计算正常最大工作电流下的Vds(
I * Rds(on)),将保护阈值设置为该值的1.5-2倍。同时,适当增加消隐时间(OCP_DEG),避开MOSFET刚开通时Vds下降过程中的毛刺。 - 检查续流路径:在电机驱动中,当MOSFET关断时,电机绕组的电感会产生反电动势,电流需要通过MOSFET的体二极管或外部的续流二极管续流。如果续流路径不顺畅,会导致电压尖峰,可能误触发保护。确保每个MOSFET两端都并联了快速恢复二极管(如果MOSFET体二极管性能不足),且功率回路电感尽可能小。
- 软启动:在软件中实现电流环或速度环的软启动,避免给电机施加阶跃式的指令,导致瞬间电流过大。
- 调整阈值和消隐时间:VDS保护阈值可能设置得太接近正常工作时的Vds电压。计算正常最大工作电流下的Vds(
6. 进阶应用与性能优化
当基本功能调通后,可以考虑以下进阶优化,以提升系统性能。
利用SPI实现实时监控与动态调整:SPI版本的优势在于运行时可以灵活调整参数。例如,可以在电机启动阶段使用较大的驱动电流(IDRIVE)以实现快速启动,在高速平稳运行时切换到较小的驱动电流以降低开关噪声和EMI。也可以根据温度传感器反馈,动态调整过流保护阈值(温度高时,MOSFET的Rds(on)增大,相同电流下Vds更高,可能需要调高阈值)。
多芯片并联驱动更大功率电机:对于功率超过单芯片驱动能力的电机,可以考虑使用多片DRV8343并联驱动。需要特别注意同步问题:所有芯片应使用同一个PWM信号源,并通过菊花链或独立的片选信号控制。电流采样则需要谨慎处理,可以将各芯片的CSA输出通过运算放大器进行求和或选通后送入MCU。
低功耗睡眠模式与唤醒:在汽车应用中,静态电流至关重要。当电机不工作时,可以通过拉低ENABLE引脚将DRV8343置于睡眠模式,此时功耗可低至20μA(典型值)。唤醒时间约为1ms,需要系统设计时考虑此延迟。
热设计与PCB布局的终极法则:尽管芯片集成了过热保护,但良好的热设计是长期可靠性的保证。务必按照数据手册要求,将芯片底部的Thermal Pad(散热焊盘)通过多个过孔牢固地焊接在PCB的大面积铜皮上,并尽可能连接到外部散热器。功率地(PGND)的铜皮面积要足够大,以承载大电流和散热。信号地与功率地的分割与单点连接必须严格执行。