通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc...

14
作者:恩智浦半导体 Mahesh Chandra 简介 电子换向 (EC) 电机的控制可以通过多种方式实现。最简单的控制策略是六步或梯形控制,其会依次 对无刷直流 (BLDC) 电机的各个相位进行换向。转子的位置反馈由霍尔传感器或编码器接口提供。 在六步控制中,三相中只有二相供电。无传感器控制可以通过测量末供电浮动相位的感生电压或反 电动势 (EMF) 来实现。 另一种控制方法是利用空间矢量脉冲宽度调制 (SVPWM) 进行正弦控制。这类控制器根据转子角度 改变相位电流,从而消除六步控制的扭矩波动。正弦换向的缺点在于,其试图利用不随时间变化的 比例 - 积分 (PI) 控制器算法控制随时间变化的电机电流,并且没有考虑相位之间的相互作用。这会 在高速工作时导致性能损失。 更高级的方法是磁场定向控制 (FOC)。利用这种控制策略,各相以正弦方式驱动并永久供电,因此 电机内的磁场被调节到最佳值。相电流可以单独测量,同时,利用测量出的两相电流可以计算流经 第三相的电流。 带传感器的 FOC 方案针对转子的位置反馈配有编码器接口。通过使用定时器插入转子角度还可以 应用霍尔传感器来进行位置反馈。通过对电流的估算可以演示无传感器方案的运作。 1. 控制和反馈方法 霍尔 编码器 无传感器: 反电动势测量 无传感器: 电流测量 六步 正弦 •* FOC •* * 必须使用定时器插入角度。 通过 LPC 1500 系列实现 BLDC/PMSM 电机控制的技术

Transcript of 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc...

Page 1: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

作者:恩智浦半导体 Mahesh Chandra

简介

电子换向 (EC) 电机的控制可以通过多种方式实现。最简单的控制策略是六步或梯形控制,其会依次

对无刷直流 (BLDC) 电机的各个相位进行换向。转子的位置反馈由霍尔传感器或编码器接口提供。

在六步控制中,三相中只有二相供电。无传感器控制可以通过测量末供电浮动相位的感生电压或反

电动势 (EMF) 来实现。

另一种控制方法是利用空间矢量脉冲宽度调制 (SVPWM) 进行正弦控制。这类控制器根据转子角度

改变相位电流,从而消除六步控制的扭矩波动。正弦换向的缺点在于,其试图利用不随时间变化的

比例 - 积分 (PI) 控制器算法控制随时间变化的电机电流,并且没有考虑相位之间的相互作用。这会

在高速工作时导致性能损失。

更高级的方法是磁场定向控制 (FOC)。利用这种控制策略,各相以正弦方式驱动并永久供电,因此

电机内的磁场被调节到最佳值。相电流可以单独测量,同时,利用测量出的两相电流可以计算流经

第三相的电流。

带传感器的 FOC 方案针对转子的位置反馈配有编码器接口。通过使用定时器插入转子角度还可以

应用霍尔传感器来进行位置反馈。通过对电流的估算可以演示无传感器方案的运作。

表 1. 控制和反馈方法

霍尔 编码器 无传感器: 反电动势测量

无传感器: 电流测量

六步 • • •

正弦 •* • •

FOC •* • •

* 必须使用定时器插入角度。

通过 LPC 1500 系列实现 BLDC/PMSM电机控制的技术

Page 2: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

定子绕组

定子绕组

转子磁体 N

转子磁体 S

转子磁体 S

轴驱动端

副轴

霍尔传感器

霍尔传感器磁体

NXP White Paper 2

1.0 PMSM 与 BLDC

永磁同步电机 (PMSM) 与 BLDC 电机都是具有相同基本结构的永磁型电机,由转子上的永磁铁和

定子上的绕组组成。PMSM和BLDC电机之间的主要区别是驱动信号。PMSM专为正弦驱动而设计,

BLDC 电机则专为梯形驱动而设计。正弦驱动电机的优点是扭矩波动极小,因此电机在电气和机

械方面更为安静。电流谐波位于开关频率范围内,因此可降低音频噪声、磁芯损耗以及电流峰值。

缺点是由于需要恒定功率的额外相位,开关损耗较高。

图 1 所示的电机具有两个主要组件:定子绕组和转子永磁体。这是一种同步电机,也就是说,定

子产生的磁场和转子产生的磁场以相同的频率旋转。同步 PMSM 电机不会出现感应电机常见的打

滑问题。

对于无传感器 BLDC 电机,反电动势必须为梯形。因此,转子设计为具有均匀的磁通分布,而不

是 PMSM 的正弦磁通分布。BLDC 电机需要低绕组电感,因此其通常采用表面贴装的转子磁体。

PMSM 的高电感使其不太适合梯形控制。

2.0 BLDC 电机控制

在 BLDC 电机中,电磁体不动。相反,永磁体旋转而三相定子绕组保持静止。这解决了向活动转

子供电的问题。为此,有刷换向器组件换为智能电子控制器。该控制器具有与有刷直流 (BDC) 电

机中相同的功率分布,但其采用固态电路而不是换向器 / 电刷系统。

BLDC 电机产生的扭矩取决于所施加的电流,而电流又取决于所施加的电压。旋转速度将一直加

速到电机的扭矩和负载扭矩相等的状态。有效电流(以及因此产生的扭矩)将因电机产生的反电

动势的快速增加而加速下降,这反应了其速度依赖于施加的电压的特性。

六步换向是控制 BLDC 电机最受欢迎且最有效的方法。这种方法非常适合高速应用以及电机和机

械消除相位间电流切换引发的扭矩波动的应用。

图 1. BLDC/PMSM 电机

Page 3: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

VdC

0

0

0

0

I1

I2

I3

4ππ 2π 3π

Im

I1 I2

I3

V1

V3

V2Mainpower

Rect

SW1 SW2 SW3

SW1 SW2 SW3

32π

34π

38π

310π

VdC

0

0

0

I1

I2

I3

Im

I1 I2

I3

V1

V3

V2Mainpower

Rect

SW1 SW2 SW3

SW1 SW2 SW3

VdC

0

0

0

I1

I2

I3

Im

I1 I2

I3

V1

V3

V2Mainpower

Rect

SW1 SW2 SW3

SW1 SW2 SW3

VdC

0

0

0

I1

I2

I3

Im

I1 I2

I3

V1

V3

V2Mainpower

Rect

SW1 SW2 SW3

SW1 SW2 SW3

VdC

0

0

0

I1

I2

I3

Im

I1 I2

I3

V1

V3

V2Mainpower

Rect

SW1 SW2 SW3

SW1 SW2 SW3

VdC

0

0

0

I1

I2

I3

Im

I1 I2

I3

V1

V3

V2Mainpower

Rect

SW1 SW2 SW3

SW1 SW2 SW3

0 4ππ 2π 3π32π

34π

38π

310π

0 4ππ 2π 3π32π

34π

38π

310π

0 4ππ 2π 3π32π

34π

38π

310π

0 4ππ 2π 3π32π

34π

38π

310π

0 4ππ 2π 3π32π

34π

38π

310π

顺序 0 顺序 1 顺序 2

顺序 3 顺序 4 顺序 5

NXP White Paper 3

BLDC 电机由给定转子位置的电压脉冲驱动。这些电压脉冲必须适当地施加到三相绕组系统的活

动相位上,以便定子磁通与转子磁通之间的夹角保持接近 90°。这会最大限度地提高扭矩。因此,

控制器需要通过某些方法来确定转子(相对于定子线圈)的方向 / 位置。转子位置的检测可以通

过多种技术来实现。最常用的技术是数字霍尔传感器反馈,但是也有一些其它技术,包括使用编

码器或者完全不需要传感器。

图 2 描述如何驱动电机线圈来实现电机旋转的系统方案。线圈内的电流方向决定定子磁通的方向。

通过按顺序驱动或牵引流过线圈的电流,转子也会受到驱动或牵引。BLDC 电机以这样一种方式

实现驱动,即通过六步切换定子线圈中的电流而引发电气循环。如图所示,每一相的电流分两个

连续的步骤推挽式流过每一相的驱动器。具体步骤如表 2 所示。

图 2. BLDC 电机绕组的驱动原理(V1、V2、V3 分别是相位 A、B、C 的电压)

Page 4: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

定子

转子 λr

F

扭矩 = 最大 扭矩 = 0

F

λr转子

定子

N

N

N S

S

S

定子

S

定子

N

NXP White Paper 4

表 2. 换向步骤示例

顺序号 开关间隔相电流

开关闭合A B C

0 0° – 60° + - 关 SW1、SW2

1 60° – 120° + 关 - SW1、SW3

2 120° – 180° 关 + - SW2、SW3

3 180° – 240° - + 关 SW2、SW1

4 240° – 300° - 关 + SW3、SW1

5 300° – 360° 关 - + SW3、SW2

BLDC 电机也可以使用 FOC 方法进行控制,如下所述。

3.0 PMSM 控制

PMSM 电机是高效率、高性能电机。PMSM 最受欢迎的两个控制方法是直接扭矩控制 (DTC) 和

FOC。这两种都是基于矢量的控制方法。DTC 根据扭矩和磁通的参考值与估计值之间的误差直接

控制逆变器状态。DTC具有低复杂性和良好的动态扭矩响应,但也具有相对较高的扭矩和磁通波动。

FOC 在低速时性能更好。

4.0 FOC 基础

FOC 的基本工作原理是测量和调节电机内的磁场。当转子的永久磁场方向与定子绕组的感应磁场

方向互相垂直时,磁力的利用率达到最佳。这会在转子轴上产生最大扭矩。原理如图 3 所示。

图 3. 不同磁场方向的扭矩

Page 5: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

SVPWMPark 反变换DQ -> α β

高速 ADC

位置传感器PMSM电机

PID调节器

扭矩设定

磁通设定

D Q

误差 D 误差 Q

α

β

2H

3H

1L

1H

2L

3L

3 相逆变器

PI 调节器PI 调节器

A

A B C

B

C

α β

D

Q

_

_

+

+

DA B C E

F

G

H

IJ

ABC -> α β

α β -> DQ

速度

恒定 0

3 相电流与电压

Clarke 变换

Park 变换

NXP White Paper 5

感应磁场的方向和强度等于不同相位的电流矢量和。因此,通过测量流经各个相位的电流,可以

计算出总电流矢量。由于 PMSM 是三相电机,每个相位相隔 120°。

图 4 显示 FOC 速度控制的详细流程,表 3 则提供图中所示子系统的定义。

图 4. FOC 模块框图

表 3. 子系统定义

子系统 说明 功能

A Park 反变换 将 Vq 和 Vd 设定值转换为静态参考系

B 空间矢量脉冲宽度调制 (SVPWM) 根据参考电压矢量从 SVPWM 开始为 逆变器生成 PWM 信号

C 3 相逆变器 将 PWM 信号施加于 PMSM 电机上

D 无刷电机 (PMSM) 电机

E 位置传感器 获取转子位置—FOC 变换和速度计算所需

F 相电流测量 用于电流测量的高速 ADC

G 电流矢量重构 不同相的电流矢量重构

H Clarke 变换 从三相到两相系统的变换

I Park 变换 变换为不随时间变化的 PI 调节器的动态 参考系

Page 6: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

扭矩输入

‘0’

Id

Iq

Ia

Ib

Ic

VβPark 反变换

Park 变换 Clarke 变换

位置传感器

空间矢量调制器

包括修正的 Clarke

反变换

转子角度

NXP White Paper 6

FOC的关键是调节磁场,以使其垂直于定子的磁场。通过向电机绕组施加电压矢量,实现磁场控制。

该电压矢量由 SVPWM 系统转化为分别针对各相的三个占空比 PWM 波。电压矢量的两个轴都通

过 PI 控制器进行调节。控制器的输入是单个电流矢量轴,而输出与等效电压矢量轴相匹配。由于

电机以高速旋转,磁场必须以同样的高频率旋转。PI 控制器只能针对固定频率进行优化校准。对

于宽调速范围的电机,需要额外步骤使 PI 控制器有效工作。绕组静态参考坐标系 (α,β) 中的电流

矢量可以转换到旋转永久磁体的动态参考坐标系 (d,q),以形成可由PI控制器进行调节的恒速系统。

Park 变换用于将静态参考坐标系转换为动态参考坐标系。在零速状态下,交轴分量 (q) 产生扭矩,

而直轴分量 (d) 仅在电机轴承中产生无用力。对于较高的速度范围,直轴分量可以用于削弱直轴永

磁磁场。

图 5. 带位置传感器的 FOC 子系统

Clarke 变换用于将 3 相坐标系转换为 2 相坐标系。该坐标系称为静态参考坐标系。图 5 显示

Clarke 变换,其中每相中的电流分别用 la、lb 和 lc 表示。

5.0 LPC1500 微控制器

恩智浦 LPC1500 系列微控制器基于 32 位 ARM® Cortex ™ -M3 内核,其 CPU 工作频率可高达

72 MHz。LPC1500 器件包括多达 256 kB 的闪存、4KB EEPROM 和多达 36 kB 的 SRAM。

Page 7: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

NXP White Paper 7

LPC1500 架构包括以下外设:

• � 一个 12 Mbps USB 2.0 设备

• 两个 SPI 接口

• 三个 USART

• 一个快速加模式 I2C 总线接口

• 一个 C_CAN 模块

• 一个 PWM/ 定时器子系统,具有四个可配置的多用途状态可配置定时器 SCTimer/PWM,带

输入预处理单元

• 一个具有独立电源和专用振荡器的实时时钟模块

• 两个 12 通道 /12 位、2 Msps ADC

• 一个 12 位、500 ksps DAC

• 四个具有内部基准电压源的电压比较器

• 一个温度传感器

片上 DMA 引擎可用于大多数外设。

LPC1500 能够灵活地将数字外设分配到引脚,因此特别容易使用。这可以帮助设计人员使用相同

硬件来实现不同应用,最终有助于更快地设计样机。

用于电机控制的特殊功能

LPC1500 微控制器拥有许多可用于电机控制应用的适用功能,可简化电机控制算法的软件实现并

减少 CPU 负载。

• SCTimer/PWM 和 ADC 子系统确保可以轻松而可靠地实现时序要求严格的外设的控制。其内

部机制可以实现从硬件上将 ADC 与 PWM 进行同步,从而使其采样时刻得到精确控制。

• 为了将 SVPWM 与电流矢量重构结合使用,LPC1500 系列中的 PWM 模块可以灵活地实现全

部占空比范围的工作。PWM 的匹配寄存器都有一个对应的影子寄存器(匹配重载寄存器),

以允许自动更改 PWM 匹配值而不干扰当前生成的 PWM 输出。PWM 匹配寄存器的自动更新

会减少 CPU 开销。每个匹配寄存器具有相应的匹配重载寄存器,并且为了确保无故障运行,

匹配载入寄存器接收来自 SCTimer/PWM 模块的新值。SCTimer/PWM 模块可用于生成双边

PWM,从而减少电机内的谐波。

• 双高速 ADC 可用于同时采样两个相电流。可以高达 50MHz 的采样速率在两个时钟周期内对

信号进行采样并以 2M 的速率转换为 12 位值。这种快速采样方法有助于获得采用 FOC 算法

时所需的采样值。正交编码器接口 (QEI) 使用硬件寄存器检测转子位置和转速,而且不会产生

中断。

• LPC1500系列采用具有专用指令和数据总线的Cortex-M3内核,以确保获得CPU的最佳性能。

• LPC1500 系列的 ARM Cortex-M3 内核具有 32 位处理能力和功能强大的指令集,适用于需要

密集数学运算的 FOC 算法。

• 片上 4KB 的 EEPROM 可用于存储调整参数

Page 8: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

NXP White Paper 8

SCTimer/PWM 单元

LPC1500 SCTimer/PWM 单元同时具有定时器和状态机的功能,因此能够在各种复杂的数字控制

领域开发出解决方案。

SCTimer/PWM 单元可在电机控制应用中减少 CPU 的占用,同时还可缩短开发时间。SCTimer/

PWM 与模拟外设高度集成。集成的开关矩阵支持 SCTimer/PWM 灵活设置输入输出引脚。

SCTimer/PWM 模块提供多达 16 个独立的可编程硬件资源输入(称为“事件”),这些事件可配置

为在基于时钟匹配、I/O 信号或两者结合的可编程条件得到满足时进入激活状态(执行动作)。这

些条件在控制寄存器中针对每个硬件事件进行定义。

每个硬件事件可配置为驱动输出信号、触发 IRQ、DMA 传输请求或控制定时器(停止、启动、复

位或暂停定时器)。

为了定义基于时间的事件,或基于时间和 I/O 的组合事件中的基于时间的部分,SCTimer/PWM

提供了专用寄存器来存储计数器匹配值。这些寄存器与影子寄存器相关联。影子寄存器可以在运

行时由应用程序进行更改,以修改匹配点。关联定时器受限时(计数器在向上计数模式中重置为零,

或在向下计数模式中逆转方向时),新值从影子寄存器载入匹配寄存器。

通过引入状态的概念,SCTimer/PWM 还能够实现更复杂的事件序列功能。运行期间,每个事件

都能够让状态机(通过状态寄存器与每个定时器关联)从一种状态跳到另一种状态。每个用户定

义的状态可以进行配置,以从为 SCTimer/PWM 定义的所有可能事件中过滤出特定子集。通过这

种方式,可将事件配置为仅在特定状态中激活。

因此,可将 SCTimer/PWM 的行为与状态机图进行关联,然后系统可以根据当前 SCTimer/PWM

状态对某些事件作出不同反应。

不同于传统定时器或 PWM 模块,SCTimer/PWM 可以跟踪更复杂的事件序列,并且随着时间的

推移,可以对基于时间或 I/O 的事件做出相应改进。这个过程通常仅需要很少的 CPU 干预,因

为 SCTimer/PWM 能够在硬件中处理大部分控制序列。在恒速状态下,没有 PID 控制器,不需要

CPU 干预,因此 Cortex M3 内核可用于执行其它功能或在此期间休眠。

此外,SCTimer/PWM 可以定义事件来捕获输入信号的电平或边沿。在某些情况下,通过软件执

行该任务代价过于高昂,因为利用 CPU 通过定期轮询输入线路来检测会占用过多的 CPU 资源。

即使定义中断来检测输入上的信号改变也可能会在系统级上引入过多的延时,才能响应相应的事

件。SCTimer/PWM 可以快速的对这些信号进行响应,可以有效解决这一问题。

Page 9: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

SW1SCT0_OUT1

SCT0_OUT0

SCT0_OUT3

SCT0_OUT6

SCT0_OUT3

SCT0_IN0

SCT0_IN1

SCT0_IN2

SCT0_OUT2

SW3 SW5

VDC

BLDC 电机

霍尔传感器

LPC1549 电源开关驱动器

SW2 SW4 SW6

N S

S N

NXP White Paper 9

6.0 使用 LPC1500 对 BLDC 电机进行六步控制

六步控制法具有以下高级要求:

1. 每个电源线对(桥相)都有一个专门的时间激活(停用)点。在六步中任何一步里面,均有两

相 PWM 处于激活状态。

2. 能够电机旋转过程中检测步间转换,以便改变 PWM 由另外的相输出。这可以通过监视霍尔传

感器输入来实现,因此总共需要三路霍尔传感器输入。

3. 总共六条数字输出线,每个 PWM 相位一条。

SCTimer/PWM 模块可以产生多达 28 个 PWM,其状态机可以自主切换状态,而无需 Cortex M3

内核的任何干预。图 6 显示使用 LPC1549 微控制器的 BLDC 电机控制应用。

图 6. 使用 LPC1549 的 BLDC 电机控制

图 7 是产生六步换向的详细状态图。SCTimer/PWM 输入 / 输出信号以绿色显示,SCTimer/PWM

事件由箭头表示,事件名称以橙色显示,输出效果和信号以蓝绿色显示。某个事件激活时,会在

定义的信号上执行一些动作。

Page 10: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

SW1 = SW6 = 1

EV1

pwm_duty

pwm_duty

EV3

SW1 = SW4 = 1

SW3 = SW2 = 1

EV4

pwm_duty

SW3 = SW6 = 1

EV5

pwm_duty

pwm_duty

EV2

SW5 = SW4 = 1

ABORT

EV13

SW1 = SW2 =SW3 = SW4 =SW5 = SW6 = 0

pwn_end

EV0

AUTOLIMIT = 1

SW1 = SW2 =SW3 = SW4 =SW5 = SW6 = 0

pwm_duty

EV6

SW5 = SW2 = 1

EV9

H2 & pwm_end

H2 & pwm_end

EV10

EV12

5

101ph 1 ph 4

ph 2 ph 3

ph 6 ph 52

010

6

110

4

100

3

011

1

001

H3 & pwm_end

EV8

H1 & pwm_end

事件

状态

pwm_duty -> match 1pwm_end -> match 0

H1 & pwm_end

EV7

H3 & pwm_end

EV11

ALL0

ERR

NXP White Paper 10

图 7. 六步换向状态图

表 4 显示每个霍尔传感器信号的状态和事件分配。

表 4. 状态和事件分配

相 霍尔 状态 事件 驱动

H1 H2 H3

1 1 0 1 5 3 SW1 SW4

2 1 0 0 4 1 SW1 SW6

3 1 1 0 6 5 SW3 SW6

4 0 1 0 2 4 SW3 SW2

5 0 1 1 3 6 SW5 SW2

6 0 0 1 1 2 SW5 SW4

关联状态机的状态由气泡表示,状态分配包含在圆圈内。ALL 状态是 32 位 SCTimer/PWM 的默

认入口状态。状态机负责管理 PWM 信号的生成并监视霍尔传感器输入以检测各相的跳转。

从一相移动到下一相时,由于霍尔传感器以一定方式在电机上的物理连接,使得始终只有一个传

感器电平发生更改。应用程序可以通过适当更改 match1 重载寄存器值调节电机转速,以便修改

每个事件的计时(也就是其占空比)。

Page 11: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

NXP White Paper 11

要在这种应用中启动电机,霍尔电平必须在电机还处于停止时进行检测,而 SCTimer/PWM 状态

机必须预置为相应的状态(相)。然后,SCTimer/PWM 将开始驱动相应 PWM 信号,以旋转电机。

SCTimer/PWM 开始计数。在状态 ALL 中触发基于时间的事件“EV0”时,SW1 至 SW6 的所有

开关都为断开状态(逻辑 0)。match1 重载寄存器会载入占空比值并与载入 PWM 周期值 (pwm_

end) 的 match0 重载寄存器共同管理 PWM 信号的产生。假设电机最初处于状态 1 (001) 并触发

事件 EV2。PWM 周期 (pwm_end) 结束时,事件 (H1&&pwm end) 会被捕获。霍尔传感器 H1 电

平从低变为高时,状态从状态 1 (001) 更改为状态 5 (101)。在状态 5 (101) 中,会触发事件 EV3。

PWM 周期结束时,事件 (!H3&pwm_end) 会被捕获。霍尔传感器 H3 电平从高变为低时,状态

更改为状态 4 (100) 并触发事件 EV1。PWM 周期结束时,事件 (H2& pwm_end) 会被捕获,然

后当霍尔传感器 H2 从低变为高时,状态更改为状态 6 (110) 并触发事件 EV5。通过这种方式,

SCTimer/PWM 的状态根据霍尔传感器输入发生更改。表 5 显示相关事件、状态转变和开关动作。

通过这种方法,系统在状态之间自主切换并保持电机旋转,无需任何软件干预。转速与占空比成

比例,从而使匹配值由应用程序在运行时进行编程。

每个事件都可以修改其计数器的 STATE 值。如果在指定的时钟周期内发生了与同一计数器相关的

多个事件,则仅会发生为最大编号事件指定的状态更改。

LPC1500 微控制器具有四个 SCTimer/PWM 模块,每个都能够产生六个或更多独立的 PWM 信号。

这意味着,单个 LPC1500 器件可以驱动四个 BLDC 电机。

表 5. 事件、状态转变和开关动作

事件 条件 状态 操作 新状态

0 pwm_end match 0 ALL SW1/6 = 0 AUTOLIMIT

无变化

1 pwm_duty match 1 4 SW1 = SW6 = 1 1(无变化)

2 pwm_duty match 1 1 SW5 = SW4 = 1 2(无变化)

3 pwm_duty match 1 5 SW1 = SW6 = 1 3(无变化)

4 pwm_duty match 1 2 SW3 = SW2 = 1 4(无变化)

5 pwm_duty match 1 6 SW3 = SW6 = 1 5(无变化)

6 pwm_duty match 1 3 SW5 = SW2 = 1 6(无变化)

7 H1 && pwm_end SCT0_IN0 && match 0 1 — 状态 + 4

8 !H1 && pwm-end !SCT0_IN0 && match 0 6 — 状态 – 4

9 H2 && pwm_end SCT0_IN1 && match 0 4 — 状态 + 2

10 !H2 && pwm_end !SCT0_IN1 && match 0 3 — 状态 – 2

11 H3 && pwm_end SCT0_IN2 && match 0 2 — 状态 + 1

12 !H3 && pwm_end !SCT0_IN2 && match 0 5 — 状态 – 1

13 ABORT !SCT0_IN3 ALL SW1/6 = 0 HALT = 1

0(错误状态)

Page 12: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

数字信号输入/输出引脚

模拟信号输入/输出引脚

内部数字信号

内部模拟信号

模拟外设

数字外设

输入

多路

复用

开关

矩阵

开关

矩阵

温度传感器

VDDA 分频器

触发

ADC0/ADC1

模拟

输入

ACMP0

ACMP1

ACMP2

ACMP3

输出

SCT IPU

模拟

输入

TIMER0MATCH/

MATCHRELOADSCT0输出

TIMER1MATCH/

MATCHRELOADSCT1输出

TIMER2MATCH/

MATCHRELOADSCT2输出

MATCH/MATCHRELOAD

SCT3输出

8 x PWM OUT

8 x PWM OUT

6 x PWM OUT

6 x PWM OUT

SCT0/1/2/3

阈值

中断

TIMER3

基准电压源

4

NXP White Paper 12

此外,电机以恒定速度运行时不需要 PID 调节,也就无需 CPU 干预,因为 SCTimer/PWM 会自

主管理控制功能。CPU 可以进入休眠模式,降低系统功耗。

7.0 使用 LPC1500 对 PMSM 进行 FOC 控制

本节介绍以 QEI 传感器模式控制 PMSM。图 8 给出 LPC1500 PWM 模拟子系统的功能框图,其中

显示了 SCTimer/PWM、ADC 和模拟比较器之间的互连。输入和输出通过开关矩阵连接,并以橙

色显示。

图 8. LPC1500 SCTimer/PWM 模拟子系统

LPC1500 微控制器配有四个 SCTimer/PWM 模块,凭借其四个独立的 32 位计数器,每个都能够

产生自己的独立 PWM。这使得其能够产生至少四组独立的 PWM 信号。SCTimer/PWM 输入处理

单元或 SCT IPU 模块(如图 8 所示)可用于结合输入中止信号并向 SCTimer/PWM 模块发送中止

信号。

图 9 显示用于对 PMSM 进行 FOC 控制的 Cortex M3 内核和外设。SCTimer/PWM 模块用来产生

六个 PWM 信号以驱动 PMSM。

Page 13: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

保护

PWM1

PWM2

PWM3

PWM4

PWM5

PWM6

A 相电流

触发器

B 相电流

Cortex M3 内核

SCTimer0/PWM 模块

比较器 (4)

ADC0

ADC1

QEI

UART

PWM1 PWM2 PWM3

VDC

PMSM 电机

PWM4

Q2 Q4 Q6

R1 R2 R3

Q1 Q3 Q5

A 相

A 相

B 相

B 相

C 相

C 相

PWM5 PWM6

NXP White Paper 13

图 9. 使用 LPC1500 的 FOC

如上文第 4 节中所述,FOC 需要检测电机相电流。相电流测量仅在特定时刻进行。为使其成为经

济有效的解决方案,将使用低成本分流电阻来测量电机电流。

图 9 显示由三相逆变器供电的三相 PMSM 电机。三个用于检测电流的分流电阻(R1、R2 和 R3)

置于三相桥下臂底部。底部晶体管 Q2、Q4 和 Q6 导通时,ADC 对各个相电流采样。这需要

SCTimer/PWM 操作和 ADC 转换之间进行同步。双高速 ADC(ADC0 和 ADC1)用于对三相系

统中任何两个电流信号或所有三个电流信号进行采样。然后,Cortex M3 内核使用这些信号执行

FOC 算法。除产生占空比可变的信号的输出电压外,SCTimer/PWM 模块还为两个 ADC 产生触

发信号。为每个 ADC 产生两个独立的触发。ADC 触发延迟可以使用 SCTimer/PWM 模块的一个

匹配重载寄存器来编程。

Page 14: 通过 LPC 1500 系列实现 BLDC/PMSM - nxp.com€¦ · 图2. bldc 电机绕组的驱动原理(v1、v2、v3 分别是相位a、b、c ... 图4 显示foc 速度控制的详细流程,表3

一旦定义好 SCTimer/PWM 触发延迟,触发和转换工作将在硬件中自主进行。通过这种方式,可

在精确时间获得电流样本,而无需 CPU 干预。LPC1500 的高速比较器用于提供保护功能,如过流

和过热保护。比较器的输出可与 SCT IPU 和 / 或 SCTimer/PWM 模块直接连接。SCTimer/PWM

信号可以通过该互连切断,而不涉及 Cortex M3 内核,因此中止动作可以实时迅速发生,为功率

器件增加额外的保护。

LPC 1500 的 QEI 模块帮助测量电机转速和转子位置,这在电机启动和低速运行时至关重要。集

成的 UART 可用于与终端或基于 GUI 的调试系统进行通信。

类似方案可用于对交流感应电机进行 FOC 控制。PMSM 或交流感应电机的 DTC 使用类似方法,

因此 LPC 1500 也可用于这些应用。

结论

LPC 1500 是一款高度灵活且可编程的微控制器,专用于电机控制应用。其先进的模拟子系统包括

SCTimer/PWM、2 Msps ADC、快速比较器以及 QEI,让工程师可以异常轻松地设计适合有传感

器或无传感器 ACIM、BLDC 和 PMSM 电机的控制算法。LPC1500 能够同时驱动多台电机,为客

户节省 BOM 成本,缩短上市时间,其还包括实现快速原型设计的开关矩阵。有关详细信息,请

访问 www.nxp.com。

www.nxp.com

©2014 恩智浦半导体

保留所有权利。未经版权所有人事先书面许可,严禁复制本文之全部或部分内容。本文中出现的信息不构成任何报价或合同的一部分。本公

司已尽最大努力保证本文内容准确可靠,如有变更,恕不另行通知。出版方不承担因使用本文件产生的任何责任。本出版物并不明示或暗示

授权任何专利权或其他行业产权或知识产权。

发布日期:2014 年 2 月

发布地点:美国