了解恩智浦如何采用SCT改善电机控制

描述

如今,电动马达无处不在,从洗衣机和健身跑步机到商业建筑的加热和冷却系统等各个方面都在推动着运动。不幸的是,所有这些电机都消耗了相当多的能量。一些专家估计,美国产生的所有电力中约有60%是由电动机消耗的。设计人员降低功耗的一种方法是转向更新的电机技术,如无刷直流和交流电机。

与刷漆同类产品相比,无刷电机更可靠,更安静,产生的电磁辐射更少,更安全,因为它们消除了与电刷及其换向器相关的火花。它们也更有效率,这意味着它们使用更少的能量。另一方面,无刷电机还需要更复杂的电子设备来管理其操作,并且设计该电路可以增加开发时间并提高总系统成本。

作为工业应用和白色家电的长期供应商,恩智浦半导体非常熟悉与电机控制相关的问题。设计挑战包括寻找提高精度,提高速度,降低功耗,限制电磁干扰(EMI),降低成本以及扩展系统可执行任务数量的方法。为了应对这些挑战,我们的32位ARM Cortex-M3和Cortex-M4微控制器(MCU)包括用于电机控制的专用外设。状态可配置定时器(SCT)是一种独特的,正在申请专利的外设,可为设计人员提供电机控制操作的新级别可编程性。

状态可配置定时器(SCT)

SCT是一种复杂且易于配置的定时功能,可提供前所未有的灵活性。它允许设计人员配置高级定时操作 - 包括复杂电机控制功能所需的操作 - 同时满足严格的开发时间表。从架构的角度来看,它是一个定时器捕获单元,配有高度灵活的事件驱动状态机。它为时序区域带来了两个熟悉的概念,即事件和状态,因此可以进行各种操作,包括时序,计数,输出调制和输入捕获。

电机

图1:恩智浦的SCT外设将定时器捕获单元与状态机相结合。

表1介绍了SCT的五个基本构建块:定时器,事件,状态,输入和输出。

块支持说明定时器向上或向上/向下计数两个16位计数器或一个32位计数器,具有向上或向上/向下计数器功能,并由总线时钟或所选输入提供时钟。事件最多16个发生预定义条件时发生的转换(计数器状态,输出生成,状态更改等)。状态最多32个条件,用于定义评估已定义事件的上下文。输入最多由SCT评估的8个信号。他们可以为活动的产生做出贡献。输出SCT生成的最多16个信号。他们可以为活动的产生做出贡献。

在根据定时匹配,I/O信号或两者的组合验证可编程条件时,可以将事件编程为激活(即执行操作)。事件在SCT控制寄存器中定义。每个硬件事件都可以配置为驱动输出信号,触发中断请求(IRQ),执行DMA传输或影响定时器本身的行为(通过停止,启动,重置或挂起定时器)。

专用影子寄存器,用于保存计数器匹配值,用于定义基于时间的事件或基于时间和I/O的组合事件的基于时间的部分。应用程序在运行时可以更改影子寄存器的内容以修改匹配点。当相关定时器达到其极限时(在向上计数模式下复位为零,或者在向上/向下计数模式下定时器反转其方向时),新值将加载到寄存器中。 SCT的这一部分实质上是高级计时器。

添加状态概念使SCT能够提供更复杂的排序。每个定时器通过状态寄存器与状态机相关联。可以对事件进行编程,以在操作期间触发状态机从一种状态到另一种状态的跳转。用户定义的状态还可以配置为过滤所有可能的预定义SCT事件的特定子集。换句话说,事件只能在特定状态下激活。设计人员可以将SCT的行为与状态机算法相关联,从而使系统根据SCT的当前状态对某些事件做出不同的反应。这种定义更复杂事件序列的能力使SCT比传统定时器或PWM生成块更复杂。它允许SCT通过状态机随时间自动演进,以响应基于时间或I/O定义的事件。对于电机控制应用,由于SCT可以处理硬件中的大部分控制序列,因此需要较少的CPU干预。

SCT的另一个特性是它可用于定义评估输入信号电平或边沿的事件。如果没有SCT,设计人员必须通过定期轮询CPU的输入线来检测更改,从而在软件中执行此任务。使用SCT执行任务可卸载CPU并简化编程。

同样,定义一个中断来检测输入上的信号变化会在系统级引入过多的延迟。 SCT通过在一个SCT时钟周期内保证对输入信号的无抖动响应,提供了一种有效的方法。通常,SCT的时钟速度与CPU相同(通常为150 MHz),分辨率高达6.67 ns,反应时间(检测信号变化)为13.3 ns。

SCT工具

如上所述,硬件寄存器用于配置状态,事件和计时器值。在LPC1800和LPC4300中,这增加了超过290个寄存器。为了简化配置,恩智浦开发了一个基于状态机绘图工具的工具集,允许设计人员在图形环境中配置SCT。绘图工具称为SCT-Tool,它使用熟悉的气泡和箭头作为对象,表示状态和转换(图2)。相应状态和转换的属性输入到易于使用的表中(图3)。 SCT-Tool使用表条目以及物理I/O和计时器值的分配来创建SCT的所有必需设置。 SCT-Tool以C代码输出寄存器设置。不需要状态机代码,因为SCT的状态机功能完全是硬连线的。

电机

图2:SCT-Tool使用熟悉的气泡和箭头来定义状态机。

电机

图3:I/O和计时器值输入到一个简单的表中。

SCT-Tool使用简单的两步设计流程。第一步是绘制状态图并指定其属性,第二步是在C中分配I/O和定时器值。从那里,设计人员只需编译LPC1800或LPC4300器件的应用框架,包括SCT组件作为项目的一部分。 SCT-Tool可以轻松嵌入到各种开发工具的标准工作流程中,包括KEILμVision,IAR EWARM或Code Red基于Eclipse的Red Suite。这使得作为较大应用程序的一部分,可以轻松地测试,调试和修改SCT代码。

为了帮助设计人员快速掌握,SCT-Tools包括各种应用程序的项目示例。这些示例提供了对状态机设计原理的深入了解,它们可以作为设计者自己想法的起点。 SCT-Tool以及信息丰富的培训视频可以从恩智浦网站下载。

示例配置:FOC算法

为了演示SCT的使用,我们设计了一个使用LPC1850 Cortex-M3 MCU的示例应用程序来控制无刷AC(BLAC)电机。我们的示例BLAC电机有两个主要部件:定子绕组和永磁体。它是同步电动机,这意味着定子和转子产生的磁场具有相同的角频率。这意味着电机不会像交流感应电机那样滑动。

对于控制操作,我们选择了磁场定向控制(FOC)算法(也称为矢量控制),因为它可以更有效地控制电机速度。 FOC算法还有助于减少电机尺寸,成本和功耗。 FOC的基本操作理论是测量和调节电动机的磁场。当转子的永磁场的方向垂直时,即与定子绕组的感应磁场成90°角时,实现对磁力的最佳杠杆作用。这在转子轴上产生了最大可实现的扭矩。

图4给出了FOC算法的框图和时序设置。通过向电动机绕组施加电压矢量来控制定子场。该电压矢量转换为六个PWM信号,每个电机相位两个。该转换由称为SVPWM的算法完成。 (有关FOC算法的更多信息,请参阅恩智浦的应用笔记AN10899)。

电机

电机

图4:FOC算法。

图5给出了FOC算法的硬件实现。所有需要的信号和连接都可以用硬件实现。输出信号是六个PWM。输入信号包括两个电流测量值,通过同相分流电阻,以及一个用于总电机电流的分流测量。

电机

图5:硬件实现。

考虑如何使用MCU上的各种外设实现FOC算法非常重要。例如,FOC算法需要在精确时间测量电机相电流。这需要非常准确但灵活的ADC采样。具有用于触发ADC功能的正确结构使得可以在没有软件中的附加信号滤波的情况下对相电流进行采样,并且可以节省大量CPU资源。

为了支持FOC算法,我们将SCT配置为实现四个高级功能:

六条电源线(桥接相位)中的每一条的专用和独立激活/停用点

定时器将配置为递增计数模式,生成的PWM波形不必相对于PWM周期的中间对称。这使得可以在三个阶段中的每个阶段的激活和停用点中插入小的时移(偏移)。这反过来又提高了分流电阻上的采样电流精度。此外,如果需要,死区时间可以在每对相位上不同。

每个ADC触发信号的一个激活(采样)点

算法需要采样两个电流值,通过测量放置在电机电流回路绕组上的三个分流电阻中的两个上的电压降来确定(第三个值在数学上来自两个测量值)。

一个专用中断触发点

用于通知应用层(CPU)激活点(匹配寄存器)中的配置更改,用于驱动电机相位和/或ADC采样点。

八条输出线

六条输出线用于将生成的PWM信号传送到桥式驱动器。两条额外的输出线用作ADC触发信号,通过片上多路复用器在内部路由到芯片。

具有16位分辨率的计数器可能足以满足大多数PWM波形要求,因此我们进行了配置SCT只使用其两个16位定时器中的一个。我们定义了总共16个事件:

12用于定义何时激活或停用六个PWM阶段中的每一个

2触发ADC转换

1触发CPU中断

1确定PWM周期长度

注意,每个定义的事件都能触发中断。通过将一个事件专门用于中断生成,我们可以独立于其他基于时间的事件定义中断触发点。所有16个事件都是基于时间的,因此需要16个匹配寄存器。

FOC算法实际上并不需要我们定义不同的状态,因为没有外部输入可以确定特定的应用程序状态。所以我们只有一个入口状态(L_ENTRY),如图6所示。在运行时,应用程序将更改匹配寄存器值以适当地修改时序。

电机

图6:L_ENTRY状态。

六个PWM输出信号为AH,AL,BH,BL,CH和CL。每个都由专用事件控制,该事件定义单独的激活(_ACT)和停用(_DEACT)点。用于ADC转换的触发点由ADC0_TRIG和ADC1_TRIG表示。生成应用程序中断的事件是IRQ_point,与每个PWM周期关联的事件是Period_end。它会在下一个PWM开始之前清除ADC触发信号。由于没有状态更改,因此所有已定义的事件都会循环回进入状态。

图7显示了一个伪状态,称为L_ALWAYS,未映射到SCT的任何物理状态。这是一种图形方便,用于避免为所有状态指定相同的事件。这在定义多个状态时特别有用。该图表示始终处于活动状态的事件,与当前状态无关。 (由于此应用程序仅使用一个状态,L_ALWAYS图可能已包含在L_ENTRY图中。)

电机

图7:L_ALWAYS状态。

表2列出了状态机的相关设置。所有数值(trans1,trans2,trigger_ADC0等)都是用户选择的名称,这些名称在应用程序代码中定义。 SCT工具提供C宏来访问值。

电机

表2:状态机设置。

LPCXpresso电机控制套件

为了支持电机控制应用的快速上市,恩智浦提供低成本的LPCXpresso电机控制套件,这是一个与Embedded Artists合作创建的通用开发平台。它是对电机控制项目进行原型设计或简单探索电机控制功能的理想方式。它支持无刷直流(BLDC),无刷交流(BLAC),步进和双刷直流电机的控制。

电路板有两个完整的H桥,因此可以控制多达四个相位,占空比高达100%。可以在三相上测量相电压以及同相电流,也可以测量虚拟接地电压和公共低侧电流。为了安全和保护,存在输入过流跳闸保护。为了提高设计灵活性,有多种通信接口,包括USB,以太网,CAN,RS-422/485和UART-to-USB桥接器。该板还具有带操纵杆的小型图形用户界面(96x64像素OLED),可实现简单,直观的人机交互。

该板可由LPCXpresso LPC1114/LPC1343/LPC1768目标板和未来的LPC1850/4350 Hitex板直接控制。该套件包括LPCXpresso电机控制板,带LPC-Link JTAG的LPCXpresso LPC1114目标板(由LPCXpresso IDE支持),带霍尔传感器的BLDC电机和24 V/60 W电源。该套件可通过恩智浦的分销网络获得。

今天更小,更高效的无刷电机需要复杂的控制电子设备。 32位MCU提供的计算能力是开发这些控制功能的不错选择,但仍有一些设计挑战需要克服。恩智浦32位ARM MCU正面临这些挑战,专用的电机控制外设可在提高效率的同时简化设计。选项包括专为电机控制而设计的多通道PWM,QEI功能,特别是一项名为状态可配置定时器(SCT)的正在申请专利的新功能。

SCT将计时器计数器与状态机结合在一起。它为设计人员提供了前所未有的电机控制功能可编程性,包括先进的FOC算法,并且使用简单的图形界面易于配置。 SCT可在恩智浦的LPC1800 Cortex-M3和LPC4300 Cortex-M4器件上使用。恩智浦还提供与嵌入式艺术家合作开发的低成本LPCXpresso电机控制套件,以帮助快速启动设计。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分