C2000 ePWM数字比较子模块:硬件级快速保护与同步控制详解
1. 数字比较子模块从信号到动作的精密转换器在电机驱动、开关电源这些对实时性和可靠性要求极高的领域工程师们常常需要处理一个核心问题如何让微控制器MCU的“大脑”快速、准确地感知并响应外部世界的“危险信号”比如电机相电流瞬间过冲或者电源输出电压异常升高。如果等CPU通过ADC采样、软件计算、再判断黄花菜都凉了功率器件可能已经损坏。这时候就需要一个能独立于CPU、在硬件层面实现“感知-决策-执行”的快速反应部队。德州仪器TIC2000系列微控制器中的增强型脉宽调制器ePWM模块其数字比较Digital Compare DC子模块正是为此而生的精锐力量。简单来说你可以把数字比较子模块想象成一个高度可配置的“硬件哨兵”。它紧盯着从芯片引脚输入的几个关键数字信号通常是来自外部比较器的过流、过压标志一旦发现信号状态符合预设的“警戒条件”比如由低变高它不会去请示CPU而是立刻根据你事先设定好的“应急预案”自动执行一系列操作可能是立刻关断PWM输出保护电路也可能是触发一次高优先级的硬件中断让CPU来处理或者是精准地启动一次ADC转换来捕获故障瞬间的模拟量。这一切都在纳秒级的时间内完成完全由硬件逻辑驱动为系统提供了软件无法企及的响应速度和确定性。今天我们就来彻底拆解这个“硬件哨兵”的内部构造、工作流程以及如何用它来构建更健壮、更智能的功率控制系统。2. 核心架构与信号通路全景解析要驾驭数字比较子模块首先得看清它的全貌。它并非孤立存在而是ePWM这座“精密时钟城堡”中的一个关键功能单元与时间基准TB、动作限定AQ、事件触发ET和故障保护TZ等子模块紧密协作。2.1 输入源信号从何而来数字比较的“眼睛”是三个专用的故障保护输入引脚TZ1、TZ2和TZ3。在传统的故障保护应用中这些引脚直接连接到PWM输出驱动一旦信号有效就无条件拉低PWM输出。但在数字比较模式下它们的角色更丰富了。通过DCTRIPSEL数字比较触发选择寄存器我们可以灵活地将TZ1/TZ2/TZ3引脚映射为数字比较A高/低DCAH/DCAL和数字比较B高/低DCBH/DCBL信号的来源。关键配置点DCTRIPSEL寄存器的配置决定了外部信号进入数字比较模块的路径。例如你可以设置DCTRIPSEL.DCAH 0x1这意味着TZ1引脚的电平将直接决定DCAH信号的状态。这里需要注意TZ引脚的有效电平高有效或低有效是在Trip-Zone子模块的TZCTL寄存器中独立配置的数字比较模块看到的是经过极性处理后的信号。2.2 事件生成从信号到事件当DCAH/L和DCBH/L信号就绪后下一步是进行“事件限定”。这是通过TZDCSELTrip-Zone数字比较选择寄存器完成的。这个寄存器非常关键它定义了在何种条件下一个信号跳变会被认定为一次有效的“事件”。例如TZDCSEL.DCAEVT1SEL字段可以配置为00禁用DCAEVT1事件。01当DCAH信号为高电平时产生DCAEVT1事件。10当DCAL信号为高电平时产生DCAEVT1事件。11当DCAH或DCAL信号为高电平时产生DCAEVT1事件即任一信号有效即触发。这里就产生了数字比较模块的四个核心事件DCAEVT1、DCAEVT2、DCBEVT1和DCBEVT2。事件1和事件2是独立的允许你对同一个输入信号源如DCAH定义两种不同的触发条件比如一个用于立即保护一个用于预警中断大大增强了灵活性。2.3 输出动作事件的四重奏一个有效的事件生成后可以触发四种不同类型的动作分别通向ePWM的其他子模块强制触发.force这是最直接、最快的保护动作。DCAEVT1.force或DCAEVT2.force信号会直接送入Trip-Zone子模块。你可以通过配置TZCTL[DCAEVT1]等位指定当该强制事件发生时对应的PWM输出引脚EPWMxA应执行什么动作高阻态Hi-Z、强制拉高或强制拉低。这实现了纳秒级的硬件保护完全无需CPU干预。DCBEVT1/2.force则对应控制EPWMxB引脚。中断触发.interDCAEVT1.inter等信号会置位Trip-Zone中断标志寄存器TZFLG中的相应位。如果我们在TZEINT寄存器中使能了该事件的中断就会产生一个EPWMxTZINT中断让CPU能够及时知晓事件发生并进行后续处理如记录故障日志、调整控制策略。中断产生后必须在中断服务程序中手动清除TZCLR寄存器中的对应位来清除标志。ADC启动转换.soc这是实现精准采样同步的关键。DCAEVT1.soc和DCBEVT1.soc信号可以连接到事件触发ET子模块。通过配置ETSEL[SOCASEL]或ETSEL[SOCBSEL]可以将这些事件选为ADC启动转换ASOCA或BSOCB的触发源。这意味着当外部比较器检测到过流点的那一刻硬件可以自动、零延迟地触发ADC对电流进行采样完美捕获峰值消除了软件触发的抖动和延迟。同步脉冲.syncDCAEVT1.sync和DCBEVT1.sync信号会被“或”逻辑连接到时间基准TB子模块的同步输入。这允许一个ePWM模块的外部事件如过零点检测去同步另一个或多个ePWM模块的计数器实现多个功率级之间的精确相位同步在多相交错并联或三相逆变器应用中至关重要。2.4 优先级与冲突处理当一个事件同时尝试触发多种动作或者多个事件试图控制同一个PWM引脚时优先级规则就起作用了。对于PWM输出引脚的控制强制信号的优先级从高到低依次为EPWMxA: TZA传统Trip-Zone最高优先级 DCAEVT1.force DCAEVT2.forceEPWMxB: TZB DCBEVT1.force DCBEVT2.force这意味着如果DCAEVT1和DCAEVT2的强制动作都发生且配置冲突DCAEVT1的配置将覆盖DCAEVT2。这种明确的优先级保证了在最复杂的故障情况下保护逻辑依然是确定性的。3. 事件滤波在噪声中捕捉真实信号在实际的电力电子环境中信号线路上充斥着开关噪声、振铃和毛刺。一个短暂的噪声脉冲如果被误判为故障事件将导致系统不必要的保护或误动作。数字比较子模块的“事件滤波”功能或者说“消隐窗口”Blanking Window逻辑就是为了解决这个问题而设计的精密滤波器。3.1 消隐窗口的工作原理消隐窗口的核心思想非常简单在已知容易产生噪声的特定时间段内暂时“捂住耳朵”忽略所有输入事件只在“安全”的时间段内才重新“倾听”事件。它的工作流程如下选择滤波源通过DCFCTL[SRCSEL]位选择要对哪一个数字比较事件DCAEVT1, DCAEVT2, DCBEVT1, DCBEVT2进行滤波。其他未选择的事件则直接绕过滤波逻辑。确定窗口起点消隐窗口的开启时刻需要与PWM的周期对齐以滤除每个开关周期固定位置出现的噪声例如功率管开关瞬间的干扰。通过DCFCTL[PULSESEL]位我们可以选择窗口是基于“CTRPRD”计数器达到周期值还是“CTR0”计数器归零这个时间点来对齐。设置偏移量DCFOFFSET寄存器定义了一个以TBCLK为单位的偏移值。窗口并不是在CTRPRD或CTR0的那一刻立即开始而是在这个时间点之后再延迟OFFSET个TBCLK周期才开始。这允许你将窗口精确地定位到噪声实际出现的时段。设置窗口宽度DCFWINDOW寄存器定义了消隐窗口持续的宽度同样以TBCLK周期数为单位。在窗口持续期间所有来自被选事件源的事件都会被忽略。输出滤波后事件经过消隐窗口逻辑处理后的信号称为DCEVTFILT。这个信号可以替代原始事件信号去触发后续的强制、中断、SOC或同步动作。3.2 配置实例与避坑指南假设我们有一个峰值电流模式控制的Buck电路主开关管在CTR0时开通。开通瞬间的电流尖峰和电压振铃可能会在电流采样比较器输出端产生一个持续约100ns的噪声毛刺。我们希望滤除这个毛刺但在此之后需要能正常检测过流事件。系统时钟TBCLK 100MHz (周期10ns)PWM频率500kHz (周期2000ns)噪声时段CTR0之后的0-100ns。配置步骤如下设置DCFCTL[PULSESEL] 0选择窗口与CTR0对齐。设置DCFOFFSET 0窗口紧接CTR0之后开始。设置DCFWINDOW 10(100ns / 10ns 10个TBCLK周期)。使能滤波DCFCTL[BLANKE] 1。选择事件源例如DCFCTL[SRCSEL] 00选择DCAEVT1。重要提示消隐窗口的OFFSET和WINDOW值是基于TBCLK计数的。如果PWM周期TBPRD设置得很小务必确保OFFSET WINDOW的值不超过TBPRD。虽然数据手册提到窗口可以跨越周期边界但为了逻辑清晰和避免意外通常建议将窗口完全包含在一个PWM周期内。另外DCFOFFSETCNT和DCFWINDOWCNT是只读寄存器分别反映了当前偏移计数器和窗口计数器的实时值可用于调试。3.3 计数器捕获功能除了滤波该模块还有一个非常实用的调试功能计数器捕获。通过设置DCCAPCTL[CAPE] 1可以使能捕获功能。当被选择的数字比较事件同样由DCFCTL[SRCSEL]选择发生时当前时间基准计数器TBCTR的值会被锁存到DCCAP寄存器中。这个功能的价值在于当故障发生时你可以精确地知道它发生在PWM周期的哪个时刻。例如在电机控制中如果过流发生在PWM周期的中间可能是控制算法问题如果总是发生在开关瞬间则可能是硬件布局或死区时间不足的问题。捕获到的TBCTR值为故障分析提供了至关重要的时间线索。4. 多模块同步与相位控制实战数字比较模块的.sync输出为多个ePWM模块之间的协同工作打开了新的大门。在复杂的多相电源或电机驱动系统中我们经常需要多个PWM通道以特定的相位关系运行以实现交错并联降低输入输出纹波或生成多相电机驱动波形。4.1 同步信号流ePWM模块的同步链路由SYNCI同步输入和SYNCO同步输出构成。数字比较事件DCAEVT1.sync和DCBEVT1.sync被送入一个“或”门与外部SYNCI信号以及软件强制同步信号SWFSYNC进行逻辑或。其结果作为本模块时间基准的同步输入。这意味着一个模块的数字比较事件可以作为同步源去触发其他模块的计数器同步。4.2 主-从同步配置案例假设我们有两个Buck变换器需要交错并联工作相位差180度以减小输入电容的电流应力。目标EPWM1作为主模块自由运行。EPWM2作为从模块其计数器在收到同步脉冲时从特定相位值开始计数从而与EPWM1形成固定相位差。EPWM1主模块配置TBCTL.SYNCOSEL TB_CTR_ZERO设置SYNCO信号在CTR0时产生。这样EPWM1每个周期开始都会送出一个同步脉冲。TBCTL.PHSEN TB_DISABLE禁止相位加载因为它不需要被同步。EPWM2从模块配置TBCTL.SYNCOSEL TB_SYNC_IN设置SYNCO信号直接透传SYNCI输入这样它可以将同步信号继续传递给下游模块如果需要。TBCTL.PHSEN TB_ENABLE使能相位加载。当SYNCI有效时将TBPHS寄存器的值加载到TBCTR。TBPHS TBPRD / 2这是关键假设TBPRD1000设置TBPHS500。当EPWM2收到来自EPWM1的同步脉冲时它的计数器不是从0开始而是从500开始。由于计数器是循环的从500开始计数到1000然后归零再到500其波形相对于从0开始的EPWM1正好产生了180度500/1000 * 360°的相位差。4.3 利用数字比较事件进行条件同步上面的例子是周期性的硬同步。而数字比较的.sync事件可以实现“条件同步”或“事件驱动同步”。例如在一个功率因数校正PFC电路中我们希望当输入电压过零时同步所有PWM模块的计数器以确保调制波与电网电压同步。将输入电压过零比较器的输出连接到某个TZ引脚如TZ1。配置数字比较模块将TZ1映射为DCAH信号并配置当DCAH为高时产生DCAEVT1事件。使能DCAEVT1.sync输出通过DCACTL[EVT1SYNCE]位。将产生DCAEVT1事件的ePWM模块配置为同步主模块SYNCO选择为DCAEVT1.sync其他模块配置为从模块。这样每当输入电压过零主模块就会产生一个同步脉冲所有从模块的计数器都会被同步到预设的相位通常为0实现了与电网电压的锁相。实操心得在多模块同步系统中务必注意同步脉冲的宽度。数据手册要求同步信号有效宽度至少为3个TBCLK周期以确保被可靠锁存。如果使用数字比较事件这类异步信号作为同步源需要确保该事件信号的有效宽度满足要求否则可能无法触发同步。在调试时可以用示波器同时观察同步源信号和从模块的计数器波形验证同步是否按预期发生。5. 寄存器配置详解与代码实战理解了原理最终要落到代码上。数字比较模块的配置涉及多个寄存器需要按逻辑顺序进行设置。5.1 核心寄存器清单与功能以下是数字比较子模块相关的关键寄存器摘要寄存器名称地址偏移是否影子寄存器核心功能描述TZDCSEL0x24否Trip-Zone数字比较选择。定义TZ1/2/3信号如何映射到DCAH/L和DCBH/L信号。DCACTL0x60否数字比较A控制寄存器。控制DCAEVT1和DCAEVT2的事件源选择、滤波旁路、以及SOC/SYNC输出使能。DCTRIPSEL0x60否数字比较触发选择寄存器。选择哪些TZ信号作为数字比较A和B的输入源。DCFCTL0x64否数字比较滤波控制寄存器。控制消隐窗口的使能、信号源选择、对齐脉冲选择和滤波信号反相。DCBCTL0x64否数字比较B控制寄存器。功能同DCACTL但对应DCBEVT1/2事件。DCFOFFSET0x68写操作有效滤波偏移寄存器。设置消隐窗口起始的延迟TBCLK数。DCCAPCTL0x68否捕获控制寄存器。使能/禁用计数器捕获功能选择捕获模式。DCFWINDOW0x6C否滤波窗口寄存器。设置消隐窗口的宽度TBCLK数。DCFOFFSETCNT0x6C否滤波偏移计数器只读。实时反映当前偏移计数器的值。DCCAP0x70是计数器捕获寄存器。当捕获事件发生时锁存当前的TBCTR值。DCFWINDOWCNT0x70否滤波窗口计数器只读。实时反映当前窗口计数器的值。5.2 完整配置流程示例假设我们需要实现以下功能使用TZ1引脚输入过流信号当信号为高时立即强制EPWM1A输出为高阻态Hi-Z进行保护同时产生一个中断通知CPU并启动一次ADC转换以记录故障电流。为了抗噪声需要在每个PWM周期开始后的前1us内启用消隐窗口。// 假设系统定义 #define EPWM1_BASE 0x0000F000 // EPWM1模块基址 #define TBCLK_FREQ_HZ 100000000 // 100 MHz #define BLANKING_TIME_US 1.0f // 消隐时间1us void EPWM1_DigitalCompare_Config(void) { volatile struct EPWM_REGS* ePwm1 (volatile struct EPWM_REGS*)EPWM1_BASE; // **步骤1: 全局初始化防止虚假中断** EALLOW; // 解除寄存器保护 // 禁用全局中断在实际系统中需根据RTOS或中断管理情况调整 // DINT; // 禁用ePWM特定中断此处为Trip-Zone中断 ePwm1-TZEINT.bit.DCAEVT1 0; ePwm1-TZEINT.bit.DCAEVT2 0; ePwm1-TZEINT.bit.DCBEVT1 0; ePwm1-TZEINT.bit.DCBEVT2 0; // **步骤2: 配置时间基准TB和比较CC模块此处略去基础PWM配置** ePwm1-TBPRD 1200; // 假设PWM周期对应1200个TBCLK ePwm1-CMPA.half.CMPA 400; // 占空比设置 // ... 其他TB, CC, AQ配置 // **步骤3: 配置数字比较输入源** // 选择TZ1作为数字比较A高DCAH的信号源 ePwm1-DCTRIPSEL.bit.DCAHCOMPSEL 1; // 1 对应 TZ1 (具体值查数据手册) // 注意TZ1引脚本身的有效极性在TZCTL中配置例如配置为高有效 ePwm1-TZCTL.bit.TZA TZ_FORCE_HI; // TZ1动作配置此处非重点 // **步骤4: 配置事件生成条件 (TZDCSEL)** // 当DCAH信号为高时产生DCAEVT1事件 ePwm1-TZDCSEL.bit.DCAEVT1SEL 1; // 01b: DCAH high // **步骤5: 配置消隐窗口滤波** uint16_t blank_ticks (uint16_t)(BLANKING_TIME_US * 1e-6 * TBCLK_FREQ_HZ); ePwm1-DCFOFFSET 0; // 偏移量0窗口紧接对齐脉冲后开始 ePwm1-DCFWINDOW blank_ticks; // 窗口宽度 ePwm1-DCFCTL.bit.PULSESEL 0; // 0: 窗口与 CTR0 对齐 ePwm1-DCFCTL.bit.BLANKE 1; // 使能消隐窗口 ePwm1-DCFCTL.bit.SRCSEL 0; // 00: 对DCAEVT1进行滤波 // **步骤6: 配置事件动作 (DCACTL)** // 选择经过滤波后的事件DCEVTFILT作为DCAEVT1的源 ePwm1-DCACTL.bit.EVT1SRCSEL 1; // 1: 选择滤波后信号 // 使能DCAEVT1触发SOC和SYNC根据需求 ePwm1-DCACTL.bit.EVT1SOCE 1; // 使能SOC触发 ePwm1-DCACTL.bit.EVT1SYNCE 0; // 本例不需要同步禁用 // 强制信号选择同步路径推荐与TBCLK同步更稳定 ePwm1-DCACTL.bit.EVT1FRCSYNCSEL 1; // 1: 同步强制 // **步骤7: 配置Trip-Zone动作** // 当DCAEVT1强制事件发生时将EPWM1A置为高阻态 ePwm1-TZCTL.bit.DCAEVT1 TZ_FORCE_HIZ; // 高阻态 // 在TZSEL寄存器中将DCAEVT1选择为Cycle-By-Cycle (CBC) 或 One-Shot (OSHT) 触发源 // 例如配置为CBC模式故障解除后下一个周期自动恢复 ePwm1-TZSEL.bit.DCAEVT1 TZ_EVENT_CBC; // CBC 模式 // **步骤8: 配置事件触发ET子模块将DCAEVT1.soc链接到ADC** // 选择DCAEVT1作为ADC SOCA的触发源 ePwm1-ETSEL.bit.SOCASEL ET_CTR_DCAEVT1; // 具体值查数据手册例如0x4 ePwm1-ETPS.bit.SOCAPRD 1; // 每发生一次事件产生一个SOC脉冲 // **步骤9: 使能中断并清除可能的虚假标志** ePwm1-TZCLR.bit.DCAEVT1 1; // 清除DCAEVT1中断标志位 ePwm1-TZEINT.bit.DCAEVT1 1; // 使能DCAEVT1中断 // 清除ET和TZ可能存在的虚假标志位... // ePwm1-ETCLR.bit.SOCA 1; // ePwm1-TZCLR.all 0xFFFF; (谨慎使用会清除所有标志) EDIS; // 恢复寄存器保护 // 最后使能全局中断 // EINT; }5.3 中断服务程序ISR处理当数字比较事件触发中断后需要在ISR中进行处理。__interrupt void epwm1_tz_isr(void) { volatile struct EPWM_REGS* ePwm1 (volatile struct EPWM_REGS*)EPWM1_BASE; // 1. 检查中断源 if(ePwm1-TZFLG.bit.DCAEVT1 1) { // 2. 执行故障处理逻辑 // 例如读取ADC结果寄存器获取故障时的电流值 // uint16_t fault_current AdcaResultRegs.ADCRESULT0; // 或者置位一个全局故障标志供主循环处理 // g_system_fault_flag | FAULT_OVERCURRENT; // 3. 清除中断标志至关重要 ePwm1-TZCLR.bit.DCAEVT1 1; // 4. 如果是CBC模式硬件会自动在下一个PWM周期清除强制动作。 // 如果是OSHT模式可能需要软件干预来清除锁存状态。 // ePwm1-TZCLR.bit.OST 1; // 清除单次触发锁存 } // 检查其他TZ中断源... // 5. 确认中断应答根据具体MCU的中断控制器要求 PieCtrlRegs.PIEACK.all PIEACK_GROUP2; // 例如C2000中应答PIE组2中断 }6. 常见问题排查与调试技巧即使配置看起来正确数字比较功能也可能因为一些细微的问题而无法工作。以下是一些常见的坑点和调试方法。6.1 问题速查表现象可能原因排查步骤事件完全不触发1. TZ引脚输入信号无效或极性错误。2.DCTRIPSEL寄存器配置错误信号未路由到DC模块。3.TZDCSEL寄存器中事件选择条件配置错误。4. 消隐窗口DCFWINDOW设置过大覆盖了整个周期。1. 用示波器确认TZ引脚实际电平。2. 检查DCTRIPSEL和TZCTL极性配置。3. 核对TZDCSEL.DCAEVT1SEL等位的值是否符合预期逻辑。4. 暂时禁用消隐窗口DCFCTL.BLANKE0测试。强制动作(Force)不生效1.TZSEL寄存器中未将DCAEVT1/2或DCBEVT1/2选为CBC/OSHT源。2.TZCTL中对应对DCAEVT1等的动作配置为“无操作”。3. 存在更高优先级的强制信号如TZA始终有效。1. 确认TZSEL.DCAEVT1等位已使能值为1或2。2. 确认TZCTL.DCAEVT1等位配置为期望的动作Hi-Z, Low, High。3. 检查TZA/TZB引脚状态及相关配置。中断不产生1.TZEINT寄存器中未使能对应事件中断。2. 全局中断或PIE中断未使能。3. 中断标志位在ISR中未清除。4. 中断向量表配置错误。1. 检查TZEINT.DCAEVT1等位是否为1。2. 检查CPU INTM位、IER寄存器及PIE配置。3. 在ISR中确认已写TZCLR对应位为1。4. 核对链接器cmd文件与中断函数声明。ADC SOC未触发1.DCACTL.EVT1SOCE未使能。2.ETSEL.SOCASEL未选择正确的数字比较事件源。3. ADC模块本身的SOC配置或触发源选择错误。4. 事件被消隐窗口过滤掉了。1. 确认DCACTL.EVT1SOCE1。2. 确认ETSEL.SOCASEL的值对应DCAEVT1。3. 检查ADC的SOC触发源配置是否对应ePWM的SOCA/B。4. 检查DCFOFFSET和DCFWINDOW值是否导致事件被屏蔽。同步功能异常1.DCACTL.EVT1SYNCE未使能。2. 从模块的TBCTL.PHSEN未使能。3. 同步脉冲宽度可能不足3个TBCLK。4. 主模块的SYNCO未正确输出。1. 确认同步输出使能位已置1。2. 确认从模块TBCTL.PHSEN1。3. 确保数字比较事件信号宽度足够。可考虑用PWM周期信号作为同步源先测试通路。4. 用示波器测量主模块的SYNCO引脚是否有输出。6.2 高级调试技巧利用计数器捕获DCCAP当事件触发行为不符合预期时使能捕获功能。在中断服务程序中读取DCCAP的值可以精确判断事件是在PWM周期的哪个TBCLK时刻被识别的。这有助于区分是信号问题、滤波问题还是逻辑问题。监控滤波计数器DCFOFFSETCNT和DCFWINDOWCNT是只读的实时计数器。通过在线调试器如Code Composer Studio的Expressions窗口观察它们的变化可以验证消隐窗口的时序是否与你的计算一致。软件强制测试在完全理解硬件行为前可以先使用软件强制寄存器TZFRC来模拟数字比较事件。向TZFRC.DCAEVT1写1可以手动产生一个DCAEVT1.force信号用于测试后续的强制动作、中断或SOC触发是否正常从而隔离前端信号采集的问题。分步验证法不要试图一次性配置所有功能。建议的验证顺序是GPIO/TZ输入-数字比较事件生成可通过读TZFLG看标志位-强制动作-中断-SOC触发-同步-最后启用滤波。每完成一步用简单的方法如点亮LED、翻转GPIO验证功能。数字比较子模块是连接外部模拟世界与内部数字控制逻辑的坚固桥梁。它的正确使用能将系统的保护响应时间从微秒级提升到纳秒级将ADC采样与关键事件对齐到同一个时钟边沿让多个功率模块像训练有素的军队一样协同工作。花时间深入理解其机制精心设计其配置你的电力电子系统将在鲁棒性、精度和性能上获得质的飞跃。