1. 引言
PSoC4为Cypress在2013年推出的可编程片上系统PSoC(Programmable System on Chip)系列的最新产品,采用ARM Cortex-M0作为处理核心。PSoC4完全继承了PSoC芯片家族本身的高度可编程的灵活性,并融合Cortex M0高性价比的处理器核架构,使得PSoC4系列产品成为一个具有高度可扩展性的处理器平台,在性价比、功耗等方面优势显著。更值得一提的是,PSoC4针对电机控制提供了完整和极具特色的片内资源,工程师在PSoC4上开发电机控制系统时将更加直观与快捷。
PSoC4产品系列目前推出的是CY8C4100和CY8C4200两个入门级产品系列。本文即以CY8C4200为例,介绍如何在PSoC4上开发两相HB型步进电机控制系统。
2. PSoC4架构及片内资源简介
PSoC 4 是基于ARMCortex-M0CPU(处理器)的可编程嵌入式系统控制器家族,为嵌入式应用提供了强大的可编程平台。它集合了可编程模拟资源、可编程内部互联、用户可编程数字逻辑、通用的固定功能外设计以及高性能的ARM Cortex-M0 CPU子系统。
PSoC 4系列包括以下特性:
●高性能Cortex-M0 CPU内核
●固定功能以及可配置的数字模块
●高度可编程的数字逻辑
●高性能模拟系统
●灵活可编程的内部互连
图1是PSoC4的系统框图。限于篇幅,本文将主要概括与电机控制相关的片内资源特性,详细内容可以参考Cypress网站上的PSoC4的数据手册。
●高达48MHz,43 DMIPS的32位Cortex-M0 CPU,支持单周期乘法
●多达32 KB Flash及4KB SRAM内存
●四个独立的可支持中央对齐的TCPWM,支持互补的可编程死区及同步ADC操作
●两个低功耗比较器
●两个电流数模转换器(IDAC),可以输出给内部模块,或通过GPIO输出到外部成为可定制的用户电流源。
●两个支持比较器模式及SAR ADC输入缓冲功能的运算放大器
●四个可编程数字逻辑模块(UDB)
图1: PSoC4芯片系统框图
PSoC4在开发环境方面与PSoC家族的上一代产品保持一致,仍然为PSoC Creator,延续了将片内资源抽象为模块化Component的开发方法,控制系统架构清晰具体,简单快捷。用户可以更多关注产品的功能开发,而较少的注意芯片的硬件结构细节。PSoC Creator的详细信息可以在Cypress网站上获得。
3. 步进电机控制原理及主要商用控制方案分析
① 步进电机控制原理
两相HB型步进电机是步进电机家族中应用最为广泛的一种,具有分辨率高,转矩大和性价比高的优点。其缺点是低速时的振动大和高速时的噪音。采用细分步进驱动是降低振动和噪音的有效手段。
图2表示两相HB型步进电机的4细分微步进的各相电流基准波形。各相电流值的峰值相等,相位偏差90°,电机相电流将跟踪此基准波形,由于电机实际相电流的连续性,其平均曲线将变成正弦波。
图2:4细分微步进的电流基准波形
② 步进电机主要商用控制方案分析
目前市场上比较成熟的步进电机控制方案大致有两种,区别主要在产生细分正弦波的方式上,分别为偏硬件和偏软件的方案。偏硬件的方案由CPLD和DAC产生基准正弦波,偏软件的方案由MCU及其内部PWM产生基准正弦波。
1)基于CPLD的偏硬件方案分析
图3为基于CPLD的偏硬件方案控制框图,CPLD根据双四拍时序控制双全桥驱动电路的开通。其内部存储有基准正弦波的细分值数字表,此细分表有DAC转换成模拟电压与电机相电流的采样值进行比较后控制双全桥驱动电路,可以使电机相电流准确跟踪正弦基准值。
图3:基于CPLD的偏硬件方案控制框图
2)基于MCU的偏硬件方案分析
图4为基于MCU的偏软件方案控制框图,MCU对电机两相电流进行实时采样,进行ADC转换后与细分正弦波的基准值进行比较,根据比较的结果决定PWM的开通,从而使电机产生细分正弦的相电流。
图4:基于MCU的偏软件方案控制框图
综合上述两种方案不难看出,CPLD方案可以产生100K以上的pps(pulse per second),但系统所需器件多,成本较高。MCU方案成本有所降低,但由于ADC采样带来的相位滞后和闭环控制算法耗时较长限制了电机的pps,一般在50K以下,如果要继续提高,需要采用高档的MCU或DSP,也会增加成本。
4. 基于PSoC4的步进电机控制架构及优势
PSoC4片内集成有两个电流数模转换器 (IDAC),分别为最大7位和8位精度。均取为7为精度,因此可以产生最大为128细分的阶梯状正弦波。图5表示由IDAC产生的两路16细分基准正弦波。
图5:16细分基准正弦波
图6为基于PSoC4的步进电机控制架构框图。
图6:步进电机控制框图
对电机的两相电流分别进行采样,经放大和高频滤波后与IDAC产生的电流基准由PSoC4的内部比较器 进行比较,当实际相电流超过基准值时,将由PSoC4关闭驱动电机的PWM输出一个周期,这样就可以迫使电机的实际相电流跟踪IDAC产生的电流基准,实现正弦波细分驱动。
对比PSoC4控制架构于前述的商用方案可以发现,由于PSoC4内部集成了IDAC、可编程的CPLD(UDB)和比较器,因此具备CPLD方案的所有性能与优势,同时其内部的高性能Cortex-M0核又使其可以完成MCU的控制功能,并具有其低成本的特点。因此,基于PSoC4的步进电机控制方案在性价比上有很大的提高。
5. 基于PSoC4 的步进电机控制设计实例
①控制原理图设计
图7为PSoC Creator环境下的步进电机控制原理图,虚线框内的部分即为依据图4构建的电机相电流细分驱动电路。两路电流独立控制,相位相差90。。内部低功耗比较器的同向端接电机向电流经采样、放大和滤波后的电压信号;反向端节内部IDAC输出的细分正弦信号。比较器输出高电平将关闭TCPWM一个周期,迫使电机相电流跟踪IDAC的电流基准波形,实现步进电机的细分驱动控制。
图中的定时器用于设计细分步长,通过在软件中修改其周期值可以实时改变电机的转速。图中的ADC可以读入模拟的速度输入信号,作为电机的给定转速。
图7:步进电机控制原理图
②控制系统软件设计
1)主程序设计
控制主程序首先初始化和配置PSoC4的内部资源,在主循环中检测用户的起停命令和速度给定,决定运行或锁定步进电机。图8为控制主程序的流程图。
图8:主程序流程图
2)中断函数设计
本文的细分步进驱动算法主要在设定细分步长的定时器溢出中断函数中完成。中断函数处理正弦波1/2周期判断,绕组驱动区间推进,两相绕组电流细分基准值更新和细分微步推进等。图9为中断函数的流程图。
图9: 中断函数流程图
③控制系统实验结果
在PSoC Creator环境编译步进电机控制工程,连接PSoC4开发板,双全桥驱动板与两相HB型步进电机,电机可正常运行。图8显示电机运行时的三个关键波形。通道2为相电流实际波形,通道3为相电流经采样放大滤波后的信号波形,通道4为IDAC输出的相电流基准波形。
由图可以看出,电机相电流为平滑的正弦波,且能很好的跟踪细分正弦电流基准。
图10: 电机运行时的三个关键波形
6. 小结
本文主要介绍了如何在PSoC4平台上开发步进电机控制系统。作为PSoC家族的最新成员,PSoC4保留了PSoC系列丰富的片内资源和高度的灵活性,而且提供了针对电机控制的富有特色的外设。本文开发完成的实例显示了在PSoC4平台上开发步进电机控制系统不仅直观快捷,而且具有优越的性能和较低的成本。用户可以使用PSoC4设计出优秀的步进电机控制系统和产品。
参考文献
[1]. PSoC 4: PSoC 4200 Family Datasheet
[2]. PSoC 4 Architecture TRM
[3]. PSoC 4100/4200 Family PSoC 4 Registers TRM (Technical Reference Manual)
[4]. AN56551 - PSoC 3 Stepper Motor Control with Precision Microstepping
[5]. 坂本正文著. 王自强 译. 步进电机应用技术. 北京: 科学出版社,2010
作者:王锐
Cypress 高级应用工程师