摘要:细分驱动技术是解决步进电动机在低速运行状态下转矩脉动、振荡、噪声等缺点的有效手段。设计了一种基于片上可编程系统sopc(svstem on a programmable chip)技术的混合式步进电动机细分控制器。以fpga为载体,以nios ii软棱为中央处理单元,以细分功能模块为片上外围设备,构建了完整的片上系统。配合步进电动机专用驱动芯片,实现了步进电动机的细分驱动。实验结果表明该设汁有效提高了步进电动机在低速状态下的运行性能。
关键词:步进电动机;细分驱动;sopc技术
0引 言
步进电动机以其定位性能良好、运行误差不积累等优点,在运动控制领域得到了广泛应用。但由于其自身结构的特点,步进电动机在低速运行状态下存在转矩脉动、振荡、噪声等问题,所以从步进电动机开始实际应用就提出了抑制振荡提高运行平稳性的课题。细分驱动技术可以有效提高步进电动机运行性能,如抑制振荡,提高定位精度。
随着微电子技术与工艺的发展,sopc技术已经进入到实用阶段。与传统的以dsp或mcu为主控单元的电机控制解决方案相比,以fpga为载体的sopc技术可以为设计提供更大的可靠性和灵活性,并且其并行处理机制在速度上也具有明显的优势。本文重点介绍以fpga为载体的片上系统的构建,各功能模块的划分及实现,niosii软核的软件开发;此外,本文也简要介绍了整个系统的硬件构成。
实验证明本设计具有较好的可靠性,步进电动机运行性能优良。
1细分驱动原理及系统构成
步进电动机的细分控制,从本质上是通过对步进电动机的励磁绕组中电流的控制,使步进电动机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电动机步距角的细分。由电机学理论可以知道,当两相对称绕组中通入两相对称电流时,将产生圆形旋转磁场。由于两相混合式步进电动机两相绕组在空间互差90。电角度,为两相对称绕组,故取其两相电流分别为:
式中:im为电机的额定电流峰值;d为a、b两相合成磁场矢量与a相磁场矢量的夹角。因此细分驱动的本质就是使a、b两相绕组产生相序互差90。的阶梯状正弦电流波形,角度均匀细分,细分度越高,绕组电流越接近正弦波。
本文根据细分驱动的基本原理,设计了一套步进电动机细分驱动器。系统构成框图如图1所示。
按键输入完成系统工作状态的设定,包括转速、转向、细分数等。以fpga为载体,嵌入nios ii处理器并定制系统需要的各个片上外设构成系统主控单元,再通过硬件描述语言实现步进电动机细分功能模块:涉及到步进电动机加减速的给定频率计算等算法相对复杂但实时性要求不高功能由nios ll处理器完成;而算法相对简单,实时性要求较高的细分功能则由硬件逻辑来实现。nios ii处理器、片上外设和细分功能模块均可通过quanus ii开发工具在一片fpga上实现,即简化了设计的复杂
性、降低了成本,也提高了系统的可靠性。由片上二外设的通用i/o单元接收外部按键命令,nios it处理器根据控制命令计算控制脉冲的频率,同时将此时的电机运行状态送显示电路,细分功能模块给出细分电流给定值送至d/a转换电路。d/a转换电路采用pbm3960芯片,该芯片可分时完成两路8位数字信号到模拟信号的转换。驱动电路接收d/a转换电路的电流给定值,完成恒流斩波控制。驱动电路采用两片步进电动机专用驱动芯片lmdl8245,lmdl8245内部具有自检测电流的机制,根据给定值与检测值的关系控制开关管的关断,从而实现恒流斩波控制。 2 s0pc系统的实现及仿真研究
2.1 s0pc系统的模块划分
根据系统功能需求对各个功能单元进行模块划分。本设计中niosii处理器接收按键控制指令,计算出后级需要的控制脉冲的频率,并将当前电机的转速送至led显示单元。细分功能要求的实时性较高,由fpca的逻辑资源通过硬件电路实现。
系统的顶层设计原理图如图2所示。系统采用自顶向下的设计方法,在顶层文件中完成各模块的分功能模块的声明。其中的subdivision模块又包含有细分查表、d/a控制等功能子模块。
2.2 nios ii处理器的定制及软件设计
altera公司提供的sopc builder开发工具可以快速地定制自己的nios ii处理器以及片上外设。
本采用了标准处理器内核,定制了片上ram存储器、jtag、定时器、通用i/0等片上外没,所有外设均挂接在avalon总线上实现与cpu的总线通信。
hal(hardware abstraction laver,硬件描述层)是nios it处理器的软件开发环境,它为nios ii的软件开发提供底层设备驱动、hal api以及c标准库等丰富的资源。。本文根据系统功能编写软件,主要完成的功能包括:按键检测、状态显示、各参数计算、加速起动等功能:由于步进电动机存在起动频率卜限、失步等问题,所以要有一个加速起动的过程。,速度曲线的选择一定程度上影响步进电动机的n生能=主程序主要完成系统初始化、参数计算、按键轮询和状态显示;定时器中断完成cp脉冲的发送,根据电机当前的状态对定时器的寄存器进行刷新,实现加速起动等功能。图3为主程序和中断子程序流程图。
2.3细分功能模块的实现
细分功能模块足本设计的重点,采用vhdl硬件描述语言实现:图4为细分功能模块的rtl视图。该模块主要由脉冲接收、细分查表、d/a控制等功能模块,下面详细介绍。
2.3.1脉冲接收模块
步进电动机又被称为脉冲电机,接收一个控制脉冲运行一步,脉冲接收模块接收由nios ii处理器发送的cp脉冲,由方向信号dir决定a、b两相电流的相序,若电机正转,a相电流****b相电流90。电角度,反之,b相电流****a相电流90。电角度;细分给定信号div决定查找表的增量值,细分数越高,增量值越小,如128细分增量值为1,64细分增量值为2,以此类推。在一个新脉冲到来时,在原地址上加增量值得到新的查表地址。该地址为9位2进制变量,其中****位为正弦电流给定值的符号位,低8位将作为细分查表模块地址信号。
2.3.2细分蠢表模块细分
查表模块由两部分组成,一是片上rom子模块;二是rom读控制子模块。rom子模块由quams ii软件下的megawizard工具定制的一块片卜位宽为8 bit的256字rom,其中存放了o—π正弦波数据。rom读控制子模块根据脉冲接收模块送入的查表地址分时读取a、b两相止弦电流给定值。
2.3.3 d/a控制模块
d/a控制模块主要实现将查表得出的a、b两相电流值送给后级的d/a转换芯片。理论上应在同一时刻刷新“、b两相电流值,但d/a转化芯片只提供一条通路,需要分时将a、b两相电流值送至d/a转换芯片。本文采用有限状态机的设计方法实现d/a转换芯片写时序控制,图5为状态机的状态转换图。系统复位后进入空闲状态idk;在等待cp脉冲的上升沿到来时进入a相写时序的第一个状态a—setup,保持该状态的时间要满足d/a转换芯片的建立时问要求;之后进入a相写时序的第二个状态a—wr,保持该状态的时间要满足d/a转换芯片写使能信号wr的宽度要求;然后进入a—hold状态,在该状态保持的时间应满足d/a转换芯片的保持时间要求。至此a相写时序完成,b相的写时序则与a相相同,如此循环,经仿真验证该设计正确可靠。
2.4仿真验证利用第三方的仿真工具modelsim对没计进行仿真,验证设计的正确性。图6是功能仿真波形,图中cp为控制脉冲信号,dir为转向信号,div为细分给定信号(000代表128细分),ao为d/a芯片的通路选择信号,d为8位电流值。由图5中可见,每有一个cp脉冲a、b两相电流值就刷新一次.由图6可见在脉冲的上升沿后一个时钟周期ao变为零,选通4相通路,此时送a相电流值,满足d/a转换芯片的建立时间后,向写使能信号wt发送一个低脉冲,在满足a相通路的保持时间后,ao变为1,选通b相通路,b相的写时序与a相相同。之后再转为d相的情形,如此重复上述过程,就实现了电流的细分给定功能。
3实验研究
本设计采用altem公司的ep2c:8t114c8的fp—ga为控制核心,选用t。mdl8245步进电动机专用驱动芯片构建了步进电动机细分控制器,对其进行试验研究。图7a、图7b分别给出了4细分和128细分状态下的a、b两相绕组电流波形。从实验结果可见a、b两相绕组电流为互差90。电角度,呈现正弦包络的阶梯波,并且细分数越高,电流波形越接近正弦,电机转矩波动越小,运行越平稳。
4结语
本文在分析了步进电动机驱动技术及存在的问题的基础上,设计了一款基于s0pc技术的步进电动机细分驱动器,该设计方法提高了系统的可靠性和灵活性。文中详细介绍了sopc系统的实现,并对主要的功能模块进行了仿真验证。实验结果表明设计功能正确,稳定可靠,步进电动机在低速下运行性能良好。
|