关于电机控制方案,DSP、MCU和FPGA各有其优特点。DSP因为数据处理能力强、运算速度快,适用于高端复杂的电机系统控制,但它依赖于软件算法的成熟度和稳定性,对开发者的要求比较高。FPGA通过集成逻辑电路及专用电机驱动电路,能够很好地适用于客户化的电机驱动,但在电机控制的通用性方面略有不足。MCU通常侧重于I/O接口的数量和可编程存储器的大小,非常适用于有大量的I/O操作的场合,所以广泛应用在低成本,低功耗和对精度要求不高的系统中。但由于本身处理能力有限,应用的场合受到了比较大的限制。
为了带大家深入地了解市面上主流的电机控制方案,电子发烧友网站将从MCU,DSP,FPGA三个方向入手,盘点各大厂商推出的电机控制方案。本系列主要针对MCU领域,后续将会慢慢完善其它系列,敬请期待!
MCU是目前市场主流的电机控制方案,适用于高、中、低端电机控制。通过内部集成的电机控制模块,可简化客户对于电机控制的开发;而相对于DSP较强的控制功能,能更好地实现电机的伺服控制和保护功能。目前,8位MCU主要用于电机控制的低成本,低性能场合,16位、32位MCU则用于中/高性能场合。
英飞凌针XMC1000
英飞凌针对中国市场推出全新XMC1000工业单片机,在电机控制领域拥有很高的性价比。XMC1000将ARM Cortex-M0内核与尖端的65nm制程技术结合在一起,克服了当今8位设计的限制,并使当前的8位用户有机会享受32位性能,而无需在价格或易用性方面付出代价。
简介
XMC1000具有最具扩展性的闪存组合,容量从8KB- 200KB不等。XMC1000的三个不同系列涵盖了众多应用领域。XMC1100系列是XMC单片机的入门级选择,该系列器件具有6个12位A/D转换器通道(转换速率高达1.88兆采样/秒)、4个16位定时器(捕获/比较单元4(CCU4))以及宽工作电压范围(1.8V-5.5V)。这些特性使XMC1000可适用于广泛的工业应用领域。X MC1200系列具有面向LED照明和HMI设计的外设,包括一个电容触控和LED显示控制单元,一个BCCU。BCCU可在处理器几乎不介入的情况下,对LED进行无闪烁调光和颜色控制。该系列产品的工作温度范围为-40°C 到105°C。XMC1300系列可满足电机控制或数字电源转换应用的实时控制需求,它集成一个功能强大的捕获/比较单元 CCU8(支持8对互补PWM生成和非对称PWM生成),集成位置接口单元(POSIF),支持精确的电机位置检测。XMC1300系列还集成算术协处理器,支持无传感器FOC(磁场定向控制)解决方案,提高电机运行效率。这是其他基于Cortex-M0的单片机产品所没有的。XMC1300系列的工作温度最高可达105°C 。
XMC1000家族成员特性表
功能框图
XMC1000主要特性
-32位ARM® Cortex™-M0(32MHz)内核
-低端领域最具扩展性的闪存组合,容量从8KB- 200KB不等
-适用于软件IP保护的AES 128位安全加载器
-专利的LED色彩控制引擎
-领先的XMC混合信号和定时器外设
-IEC 60730 class B标准兼容
-面向触控和LED显示控制的外设
-面向高端控制回路(CORDIC / DIVIDE)的64MHz算术协处理器
-温度范围扩展至105°C
单元模块介绍
XMC1000的BCCU-亮度色彩控制单元
1 概述
BCCU是亮度色彩控制单元(Brightness and Color Control Unit),用于控制多至9个不同的LED。
通过12bit的Delta Sigma反变换把亮度控制值转换为比特流。这种结构使得BCCU还可以连接一个外部RC电路作为DAC使用。
XMC1000系列中,XMC1200和XMC1300带有BCCU模块
2 特性
1)包括3个独立的Dimming Engine(亮度控制引擎)
2)Dimming Engine支持12位(4096)不同的亮度输出
3)亮度按照指数曲线调节,且步长可调
4)9个独立的输出通道,输出比特流,可以控制9个不同的LED或作为DAC使用
5)通道可连接一个Linear Walker,它的输出时LED的饱和度(Intensity),支持12位调节
6)通道和Dimming Engine之间可自由连接
7)通道也可连接饱和度调节器和Dimming Engine输出值的乘积
8)每个通道可连接一个Packer,当需要降低开关频率是可用到
9)有两个通道可以连接ADC
3 通道结构
每个通道都是相同的结构,其中左侧是通道的输入(包括Dimming Engine和Linear Walker),右侧BCCU.OUTy是通道的输出,从这个结构框图可以看出BCCU通道的工作分为几步
1)输入的选择和配置
2)输入通过Delta Sigma转换为比特流
3)比特流通过一个可选的Packer,某些LED或其驱动芯片有最短开通时间的限制,Packer可以用于类似的需要降低开关速度的情况。
4)外部使能是否输出
5)同时Delta Sigma的输出可以产生一个Tigger,用以出发ADC转换等
通道的输入可以有两种,这可以通过修改寄存器DBP来选择,其中Linear Walker的输出为饱和度Intensity
1)Dimming Engine输出和Linear Walker输出的乘积
2)Linear Walker的直接输出
XMC1000的随机数生成单元PRNG
1 背景
PRNG(Preeudo Random Number Generator)是随机码生成模块,可以产生8/16位随机码。
2 工作原理
1)框图
2)工作原理
这个模块通过向随机数序列生成器写入Key,来产生8/16位的随机数,其中随机数序列的产生和Key是唯一对应的。随机Key写入完毕后,可以读出随机序列,随机Key写入和随机序列读出的位置都是PRNG_WORD,不过他们在不同的步骤中操作,所以不会产生冲突。
3)使用
a.首先设定KLD=1,进入Key写入模式,写入随机key,key可以是任意位数,推荐80位,分为5个16bit写入PRNG_WORD中。注意,只有当PRNG_CHK.RDV=1时,才能向PRNG_WORD中写入Key
b.Key写完后,把KLD置为0。然后,当PRNG_CHK.RDV=1,可以从PRNG_WORD中读出随机序列。随机序列可以为8、16位数据,这个通过PRNG_CHK.RDBS来控制。
c.若在随机码产生过程中把KLD置为1,则可继续写入Key,新写入的Key会和之前的Key共同作用于随机序列
d.通过RDBS置为00,可以重启该模块
e.若在重启前,记录随机序列至少80位,重新作为key写入,则随机序列会接着上次的输出继续产生。
XMC1300的MATH协处理器
1 XMC1300芯片带有一个MATH协处理器,它包含以下两个子模块
除法器
Cordic协处理器
2 除法器
特性
可做32位/32位,32位/16位,16位/16位除法
操作
-除法器启动,启动方式有两种,通过设定DIVCON.STMODE来选取,
a. 当DIVCON.STMODE=0,写入DVS即启动除法
b. 当DIVCON.STMODE=1,写入DIVCON.ST位即启动除法
-除法器忙,当除法器工作时,DIVST.BSY = 1,这时不要再试图启动其他的除法
-除法器需要35个周期结束,结束时可选择产生中断,并会出现结果置位,这个结果置位需要手动清除。
3 Cordic协处理器
Cordic协处理器可进行三角函数、双曲线函数和一次线性函数,其中函数模式通过CON.MODE来选择。
计算模式包括向量模式和旋转模式,通过CON.ROTVEC来选择
特性
24位精度,
Circula模式
旋转模式
输入X,Y,Z
输出
X= K*[X*cos(Z)-Y*sin(Z)]/MPS
Y= K*[Y*cos(Z)+X*sin(Z)]/MPS
Z=0
其中K=1.646760258121
向量模式
输入X,Y,Z
输出
X= K*sqrt(X^2+Y^2)/MPS
Y= 0
Z=Z+atan(Y/X)
主要应用
-计算sin(z),cos(z),tan(z),ctg(z)等
3) 双曲线模式
- 旋转模式
输入X,Y,Z
输出
X=k[Xcosh(Z)+Ysinh(Z)]/MPS
Y= k[Ycosh(Z)+Xsinh(Z)]/MPS
Z=0
-向量模式
输入X,Y,Z
输出
X=k*sqrt(X^2-Y^2)/MPS
Y= 0
Z=Z+atanh(Y/X)
其中k = 0.828159360960
-主要应用,计算sinh(Z),cosh(Z),tanh(Z),ctgh(Z)等,同时可以计算ln(w),sqrt(W),acosh(w),asinh(W)等
一次线性模式
输入X,Y,Z
输出
X=X/MPS
Y=[Y+X*Z]/MPS
Z=0
-向量模式
输入X,Y,Z
输出
X=X/MPS
Y= 0
Z=Z+Y/X
4 除法器和Cordic的互联
除法器的输入可以由除法器的结果或Cordic的结果直接输入,这样构成了除法器和Cordic的级联。
比如计算tan(z),可以直接把Cordic的输出sin(z)连接到DVD,cos(z)连接到DVS,这样就可以得到tan(z)。
XMC1000的中断控制器
1 概述
XMC1000系列的中断处理器包括32个中断处理节点
每个节点支持4级中断优先级
支持尾链(tail-chaining )
支持软中断
2 中断对应表格,可查相应数据手册活产品手册
3 中断功能
由以上框图可以看出,对应于每个中断,都可以由外部或软件触发产生,不过每个中断又需要单独使能才能最终进入中断处理。
同时中断也可以被软件清除,或者当进入中断处理后,硬件会自动清除。
另外要注意的是,当硬件中断和软件清除同时到来,软件清除会被系统忽略,即硬件中断置位优先级高。
从中断触发到进入中断处理程序,一般要花费21个系统周期。
注:尾链技术(Tail-Chain)
这个技术是ARM推出的可以减小中断等待时间的技术。
一般情况下的中断处理,需要先保存堆栈,再出栈,如果中途有新的更高优先级的中断,则需要重新做上一步骤。如果使用了尾链技术,则第二个中断到来时候,不需要重复保存堆栈,再出栈的过程。
XMC1000电机应用相关外设集
PWM - CCU4
多功能16位定时器组
4个完全相同、独立运行的子单元
实现功能(部分)
― 通用16位定时器
― 独立的16位PWM生成
― 外部信号捕获(周期,占空比),
计数功能
― 与其他外设配合工作,如
―与ADC配合,触发延时电流采样
―与POSIF配合,实现转速、位置计算:
霍尔传感器,增量式编码器
―与比较器配合,实现外部事件触发
PWM生成(PFC)
PWM - CCU8
CCU8 = CCU4++
集成CCU4所有功能
8对互补PWM输出(独立死区)
支持常见的各种电机拓扑PWM生成
― 半桥、全桥、三相全桥、三电平控制等
支持移相PWM:单母线电阻电流采样
与POSIF配合,实现BLDC控制
硬件触发ADC采样
ADC & 比较器
三路独立、高速比较器单元
-3mV 输入偏置电压
-30ns传输延时
-可触发PWM, A/D操作
-回差可调:0mV,15mV,20mV
位置接口单元 - POSIF
-增量编码器
-霍尔传感器
-多通道模式(BLDC 相关)
应用
-与CCU4配合进行位置、速度的检测
-与CCU8配合进行直流无刷电机控制
位置接口单元 - 旋转变压器接口(DSD)
旋转变压器
-环境不敏感
-系统成本较高、精度受限
应用领域
-伺服控制系统
-汽车、电力、冶金等
通讯接口
XMC1000通用的应用领域:
LED 照明
适合领域
-LED 路灯,彩色LED控制,亮度控制等
应用优势
-无闪烁调光及色彩控制
-仅需极少CPU负荷,即可实现调光
-通信接口支持网络连接
数字电源转换
传感器、执行器、通用应用
适合领域
-低端工业、消费类应用
-现有8位微控制器的相关应用
应用优势
-通用、强大
-小封装、大Flash, 大RAM
XMC1000应用在电机控制领域(支持简单控制至无传感器FOC):
支持各种电机应用
-风机,水泵,家电,电动自行车等
电机类型
-直流有刷电机,直流无刷电机,永磁同步电机
控制算法
-梯形波控制
-简单正弦波控制
-磁场定向控制(FOC)
XMC1000的两个电机控制应用实例
电动自行车(Ebike)控制器 - 双模FOC控制
XMC1300双模FOC方案
电动自行车发展
功能列表
结构框图
航模控制器 - 高速无感BLDC控制
航模BLDC特点
-体积小,重量轻
-转速高(几千K/V或更高)
业内最高速度(21,0000RPM/1对极)
-无Hall传感器,减少线材,避免潜在故障点
-宽电压范围工作(电池供电)
对MCU的要求
-最好内置比较器实现过零点检出
-尽量硬件实现换相检测,减少CPU占用
-端电压分压后不滤波直接处理,避免RC延时的影响
XMC1300航模控制器Demo介绍
实物图
结构框图
-内置三个高速比较器,无须输入信号切换
-POSIF单元处理比较器信号,实现硬件换相
-CCU4配合POSIF实现滤除开关毛刺和续流尖峰处理、换相延时。