基于FPGA的三相混合式步进电机控制器软核
技术领域
本发明涉及电机控制,具体涉及一种基于FPGA的三相混合式步进电机控制器软核。
背景技术
所谓IP核即Intellectual Property(知识产权)就是已经完成并进行验证过的复杂的模块。著名美国Dataquest咨询公司把基于半导体的IP定义为在专用集成电路ASIC或可编程逻辑器件FPGA/CPLD中的预先设计好的电路模块。IP核按照成果形式分为硬核、固核以及软核三种形式。
1.硬核
以提交的可作为库中的元器件作为成果形式,是IP模块的最深层次。其优点是容易得到实现,可集成至单片的系统设计,并且功能可以后期持续优化,面积较小,易于量产。缺点是功能及性能指标固定,灵活性差,用户不能修改模块参数以适应实际需求的变化。
2.固核
以可综合的逻辑模块作为成果形式,是设计实现了门级综合、时序仿真等阶段的功能模块,以门级网表的形式提交用户使用。其优点在于只要用户与固其使用同一个生产线的单元,IP应用的成功率会比较高。缺点是只有局部参数可以调整,灵活性较差。
3.软核
以硬件描述语言代码描述文本作为软核成果的形式其通过了仿真验证,用户可以使用它得到正确的门级网表。其优点是便于携带,不受现实条件的局限,给用户预留最大的创新空间,让用户可以完成更具创意的结构设计。缺点为因不涉及具体实现的载体,所以对模块的预测性较低,增加了用户在后续设计中引入差错的可能性,提高了设计风险。
IP软核的开发工作量与硬核和固核相比相对较少,准入门槛较低,一般开发成本低,柔性较大(如可增加特性以及选择工艺),同时容易从一种工艺向另一种工艺转化,并且性能可提高。IP软核特点如下:
(1)IP软核具有独立的知识产权,是完整IP库的单元基础。
(2)IP软核由硬件描述语言(例如:VHDL、VERILOG等)写成,可读性较好、易于推广、易于升级、具有良好的可持续发展前景。
(3)IP软核的应用能够提高设计效率,大幅缩短产品的开发周期,使超大规模的系统级芯片的设计成为可能。
(4)IP软核的应用在增强企业技术实力和竞争力、提高技术人员水平、提升企业知名度等方面提供强有力的帮助。
根据世界两大主要的FPGA生产厂商Xinlinx和Altera公布的消息,FPGA 即将进入高k金属栅技术的28nm工艺时代,FPGA的作用已经不仅仅是过去系统接口部件,而是将FPGA灵活地应用于系统级核心功能芯片设计之中。在这样的大背景下,国际知名的FPGA厂家在高密度FPGA的发展上,主要强调 FPGA的IP硬核和IP软核两个方面。目前具有IP核的系统级FPGA的研发主要体现在FPGA厂商把完成版图设计功能的单元模块的IP硬核嵌入到FPGA器件中和扩充优化利用硬件描述语言设计并经过验证的功能单元模块的IP软核。用户可以直接使用这些预定义的、经过测试和验证的IP核资源,高效地完成复杂的片上系统设计。
目前国内外对基于IP核的研究开发现多集中于诸如单片机、ARM等通用处理器以及锁相环、乘法器等通用数字器件,而对于专业性较强的特殊控制器和数字部件的IP核的研究较少,相关文章更是寥寥可数。
IP的有效应用是缩短产品设计周期的一个有效途径。从The EDA Consortium的统计数据分析可得IP产品的销售是当今世界EDA工业中增长最快的一个领域。IP应用与复杂系统设计是IC设计业中一个绝对的发展趋势。因此本设计拟采用大规模可编程逻辑器件FPGA,针对三相混合式步进电机,设计一款集转速转向控制与SPWM调制细分控制于一体的控制器IP软核,以改善当前控制器采用手动调节细分数、细分数固定等不合理的方面。
所以,将基于FPGA器件的IP核运用于现代电机控制,进行电机控制器的集成化研究将是未来电机控制领域的一个重要发展方向,它不光具有理论意义,而且具有重要的经济意义。
失步和振荡是混合式步进电机常见的两个问题,它严重的影响着混合式步进电动机的运行性能,以至于使步进电机的应用范围受到了限制,所以提高运行的稳定性和抑制低频振荡是应该得到重视和研究的问题,下面我们分析一下这两个问题。
1.振荡问题
步进电机的转子在到达稳定的平衡位置后往往还会具有额外的转子动能,恰恰就是这些额外的动能就是造成步进电机低频振荡的主要原因。这些多余的转子动能与步进电机的低频振荡现象是成正比关系的。当混合式步进电动机在运行时,它的转子的振荡现象是逐渐衰减的。对于混合式步进电机来说,每次使各相绕组的通电状态改变,它的转子都会转过一个步距角,假如步进电动机的运行存在低频振荡现象,那么因为存在振荡问题,步进电机的转子是不会准确及时的停在平衡位置的,它会根据振荡的频率在平衡位置周围经过几次振荡才会停在平衡位置。在每次有脉冲信号输入时,跃变的转矩曲线就会给混合式步进电动机的转子补充能量。所以,在低频工作时步进电动机的运行就像强迫振荡。
假如步进电机的自由振荡频率与输入的脉冲信号的频率很接近的时候,在首个脉冲信号的作用时间内,步进电动机转子的振荡现象是逐渐衰减的,它会经过一个周期的振荡后回到原来的平衡位置,所以经过这一个周期的振荡,振幅将会被衰减。此时下一个脉冲信号就会到来,转矩曲线也会转过一个步距角,步进电动机的转子也会在上次衰减后的剩余的能量和新获得的能量的共同作用下在新稳定的平衡位置周围做振荡运动,由于不断输入脉冲信号,转子也会不断的做衰减的振荡。而且起始振幅会越来越大,就算第一步不失步,后面也有可能出现失步的可能。
步进电动机的自由振荡参数是固然存在的,所以只要自由振荡频率与输入的脉冲信号的频率很接近时,步进电机就会出现振荡现象。因此我们应尽量不让步进电机工作再低频振荡区内。当步进电机工作在高频区时,在高频运行的一些区域里,有的时候步进电动机会出现比较严重的振荡现象导致步进电机无法正常工作,也出现失步的可能,这就是高频振荡。步进电机出现高频振荡是因为有谐波电磁转矩,步进电机的谐波电磁转矩是很丰富的,而且会发生变化,所以它会更进一步的影响步进电机的振荡现象。对于抑制混合式步进电机的振荡现象也有很多人在研究,主要有以下这些方法:
(1)增加阻尼
(2)采用位置或者速度死循环控制
(3)采用细分驱动技术
2.失步
造成混合式步进电机失步的主要原因有两个:第一个是转子的转速比旋转磁场的速度低。也就是说,步进电机在开始启动时,如果输入脉冲信号的频率比较高,此时步进电机无法获得足够的能量,以至于旋转磁场的速度转子不能达到,所以会出现失步现象,每个步进电机都有启动频率,如果超过启动频率就会出现失步现象,启动频率并不是一个固定的值,我们可以通过改变启动频率来避免失步现象的出现,改变启动频率的方法有减小步距角和减小负载转动惯量;第二个是步进电机转子的平均速度比旋转磁场的速度快。在突然改变转子方向和制动的情况下会出现这种情况,这是因为步进电机的转子会获得过多的能量,而产生过冲,以至于出现失步现象。为了避免失步现象的发生,我们有以下的解决方法:
(1)减小步距角,也就是步距角细分技术;
(2)增强阻尼,将振动的振幅控制在动稳定区内;
(3)提高脉冲信号的频率,将它的触发时刻控制在动稳定区内。
发明内容
为解决上述问题,本发明提供了一种基于FPGA的三相混合式步进电机控制器软核。
为实现上述目的,本发明采取的技术方案为:
基于FPGA的三相混合式步进电机控制器软核,采用数字正弦信号为调制波,数字等腰三角信号为载波信号的双极性SPWM调制方式,内部采用DDS系统作为正弦信号发生器,以及a、b、c三相分时复用乘法器和正弦数据表的电路结构,产生三相六路SPWM脉冲输出;通过调整频率控制字和分频系数实现细分控制和速度控制,通过地址分相模块实现转向控制;系统共有13个输入信号和7个输出信号,输入信号负责从上位机接收控制字信息,输出端负责为三相混合式步进电机的驱动系统输出三相六路SPWM控制信号;整个系统分为 12个模块,包括控制字输入模块、分频模块、相位累加模块、ROM正弦数据表模块、地址发生器模块、地址分相模块、乘法器模块、锁存器模块、比较器模块、延时模块、锁存输出模块。
其中,所述分频模块用于根据接收到的来自单片机的分频系数控制字 fpx,对输入系统时钟信号进行2n+1分频(n=0-7),以供后面的模块三角载波产生、正弦波产生、分相逻辑的使用;具体分频系数为:2、4、8、16、32、 64、128、256分频。
其中,所述三角载波模块用于产生数字三角载波信号,在三角波的一个周期内有509个点,可用加减计数器实现一个周期有509个点的三角载波,其中,计数器的计数脉冲由分频模块提供,其频率为fd,三角载波的频率为 fcarry=fd/509。
其中,所述控制字输入模块采用状态机编程技术,采用Moore型状态机,实现从上位机分7次接收7个8位控制字,并将这7个控制字分别存入寄存器 R1、R2、R3、R4、R5、R6、R7;其中R1至R4为DDS正弦信号频率控制字,共 32位,其中R1为最高8位,R4为最低8位;R5为调制度控制字,R6为脉冲延时控制字,R7为分频系数控制字(实际8级分频,只用了R7的低3位),由仿真图5可得在单片机输出时钟脉冲的控制下,前7个脉冲将7个控制字以正弦信号频率控制字、调制度控制字、脉冲延时控制字、分频系数控制字的顺序输入至FPGA,第8个脉冲上升沿时同时写入寄存器R1至R7。设置控制字模块儿的目的是有效减少所需外部引脚的数量。由仿真时序图5可得该模块在每个 clkchip上升沿时从8位数据接口输入数据,第8个clkchip上升沿时,将7 个控制字寄存输出,由此表明模块可以完成从单片机接收控制字并进行输出的功能。
其中,DDS正弦信号发生模块的ROM地址线位数为11位,相位累加器的位数为32位,包括
相位累加模块,由累加模块和32为控制字模块构成,用于产生DDS系统中相位加法器的计数脉冲,
地址发生器模块,由3个11位加法器构成,用于在地址脉冲的作用下同时输出用于从正弦信号表中读取A、B、C三相正弦信号值的地址;三个加法器由于所输出的A、B、C三相相位相差1/3周期,三个加法器基本结构相同,初始值不同;
所述地址分相模块,用于对同时输入的三相地址进行分时输出,并实现正转时顺序为ABC,反转时顺序为ACB;
ROM正弦数据表模块,用于存储8位1536个点的正弦数据,并在地址分相模块的控制下,分时输出A、B、C相位互差120°的三相正弦信号;包括ROM 存储器和正弦数据初始化文件;ROM存储器由Quartus II的MagaWizard Plug-In Manager定制的ROM宏功能模块实现,包括11位地址线,8位数据线和1位时钟输入线;正弦数据初始化文件由C语言程序生成,并通过DOS操作命令转换成.mif格式文件;
乘法器模块,用于将将正弦信号幅值乘以调制度系数,具体为
其中,AK为由单片机存入控制字模块中寄存器R5中的幅度控制字;AROM为从ROM中取出的正弦值。
其中,所述锁存输出模块用于三相正弦数据的分时输入,同时输出。
其中,所述比较器模块共由3个结构相同的比较器组成,每一个比较器输入为两个8位端口,分别接收来自三角波发生器和正弦信号发生器的载波信号和调制波信号,输出为两个1位端口,分别输出上桥臂和下桥臂PWM脉冲信号。
其中,所述延时模块用于将输入脉冲的上升沿延后一段时间,延后的时间由kongzhizi(kongzhizi为6位,由单片机设定)设定,具体延时时间 tdelay=kongzhizi×tfdiv,而下降沿不做延时处理。
本发明具有以下有益效果:
依据设计的性能指标要求,提出了IP控制软核的结构框架,并对软核系统划分模块,标记出模块之间信号的连接关系。最后,应用VHDL语言,在 Quartus II上完成了对每个子模块的结构设计、模块之间的整合以及各功能模块和整个系统的仿真测试。结果表明该IP软核实现了对三相混合式步进电动机的细分控制,并且可对步进电机的转向和转速进行灵活控制。同时由于设计中对传统DDS结构进行了优化处理,使得三相混合式步进电机的运行平稳性和定位精度得到了进一步的提高。该IP软核的开发设计对于三相步进电机控制器集成化领域的研究深化具有一定的理论及实际应用价值。
附图说明
图1为本发明实施例系统总体框图。
图2为系统外部引脚图
图3分频模块仿真波形。
图4三角载波模块仿真图。
图5控制字输入模块仿真图。
图6三相正弦信号发生器。
图7为相位累加器仿真图。
图8地址发生器仿真图。
图9地址分相器仿真图。
图10乘法器模块仿真图。
图11三相正弦数据锁存器仿真图。
图12比较器器仿真图。
图13脉冲延迟模块仿真图。
图14三相混合式步进电机控制器IP软核。
具体实施方式
为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种基于FPGA的三相混合式步进电机控制器软核,其特征在于,采用数字正弦信号为调制波,数字等腰三角信号为载波信号的双极性SPWM调制方式,内部采用DDS系统作为正弦信号发生器,以及a、b、c 三相分时复用乘法器和正弦数据表的电路结构,产生三相六路SPWM脉冲输出;通过调整频率控制字和分频系数实现细分控制和速度控制,通过地址分相模块实现转向控制;系统共有13个输入信号和7个输出信号,输入信号负责从上位机接收控制字信息,输出端负责为三相混合式步进电机的驱动系统输出三相六路SPWM控制信号;整个系统分为12个模块,包括控制字输入模块、分频模块、相位累加模块、ROM正弦数据表模块、地址发生器模块、地址分相模块、乘法器模块、锁存器模块、比较器模块、延时模块、锁存输出模块。系统总体框图如图1所示。图2为系统外部引脚图,表1为系统各引脚的功能说明。
表1引脚说明
信号名称 |
信号模式 |
信号位宽 |
信号描述 |
VSS |
in |
1 |
地 |
VDD |
in |
1 |
电源 |
data0~data7 |
in |
8 |
数据线 |
FR |
in |
1 |
方向控制 |
clkchip |
in |
1 |
系统时钟 |
CS |
in |
1 |
片选信号 |
EN |
in |
1 |
使能信号 |
ruaidi |
out |
1 |
状态字装入完毕标志 |
PWMah |
out |
1 |
A相上桥臂输出 |
PWMal |
out |
1 |
A相下桥臂输出 |
PWMbh |
out |
1 |
B相上桥臂输出 |
PWMbl |
out |
1 |
B相下桥臂输出 |
PWMch |
out |
1 |
C相上桥臂输出 |
PWMcl |
out |
1 |
C相下桥臂输出 |
本系统中目标器件为Altera公司的Cyclone III系列EP3C40Q240C8芯片,该芯片属于Altera公司第三代中低密度FPGA,性价比很高,芯片内部资源丰富,共有39600个LE、可多达126块M9K(可根据需要配置成RAM、ROM等)、 126个18*18乘法器、4个pII锁相环、240个I/O引脚(EP3C40系列最多可提供535个用户I/O)。开发环境采用的是Altera公司的QuartusII进行综合、布局和布线,运用VHDL硬件描述语言进行编程,采用的是自顶向下的层次化设计方式。
所述分频模块用于根据接收到的来自单片机的分频系数控制字fpx,对输入系统时钟信号进行2n+1分频(n=0-7),以供后面的模块三角载波产生、正弦波产生、分相逻辑的使用;具体分频系数为:2、4、8、16、32、64、128、256 分频,仿真波形如图3所示。
由仿真波形图可得,该模块完成了对系统时钟信号进行2、4、8、16、32、64、128、256的8级分频功能;另外,用户可根据需要,通过端口映射的方式修改参数,增加分频模块的分频级数,最高可扩充至256级。
所述三角载波模块用于产生数字三角载波信号;若采用8位二进制数据表示三角波信号值,采用将正弦波整体上移128个点的做法,则三角载波在一个周期内各个时段的数值范围及相应数据点数为:第一个1/4周期:128-255共 128个点;第二个1/4周期:254-128共127个点;第三个1/4周期:127-0 共128个点;第四个1/4周期:1-127共126个点。
由以上分析可得在三角波的一个周期内有509个点(128+127+128+126),可用加减计数器实现一个周期有509个点的三角载波,其中计数器的计数脉冲由分频模块提供,其频率为fd,三角载波的频率为fcarry=fd/509。仿真波形如图4所示。由仿真波形图可得,该模块根据输入的时钟信号,完成了对三角波数字信号的输出功能。
所述控制字输入模块采用状态机编程技术,采用Moore型状态机,实现从上位机分7次接收7个8位控制字,并将这7个控制字分别存入寄存器R1、 R2、R3、R4、R5、R6、R7;其中R1至R4为DDS正弦信号频率控制字,共32 位,其中R1为最高8位,R4为最低8位;R5为调制度控制字,R6为脉冲延时控制字,R7为分频系数控制字(实际8级分频,只用了R7的低3位),由仿真图5可得在单片机输出时钟脉冲的控制下,前7个脉冲将7个控制字以正弦信号频率控制字、调制度控制字、脉冲延时控制字、分频系数控制字的顺序输入至FPGA,第8个脉冲上升沿时同时写入寄存器R1至R7。设置控制字模块儿的目的是有效减少所需外部引脚的数量。由仿真时序图5可得该模块在每个clkchip上升沿时从8位数据接口输入数据,第8个clkchip上升沿时,将7 个控制字寄存输出,由此表明模块可以完成从单片机接收控制字并进行输出的功能。
所述DDS正弦信号发生模块的ROM地址线位数为11位,相位累加器的位数为32位,并且需要用DDS同时产生三相正弦数据,因此改进后的DDS结构进行相应调整,具体如图6所示。图中各模块的设计如下:
相位累加模块由累加模块和32为控制字模块构成,用于产生DDS系统中相位加法器的计数脉冲,该脉冲特点是决定DDS输出正弦信号的频率;高电平持续的时间是一个系统脉冲的周期(系统时间就是由分频器输出的DDS系统的输入脉冲),高电平持续一个周期的目的是与其它各部件进行同步。相位累加器的仿真图如图7。32位二进制数最大数为4294967296,4294967296/8= 536870912,也就是说如果控制字为536870912,则在置入控制字后每8个脉冲就溢出1次,同时溢出脉冲高电平持续时间为一个clk周期,由仿真图7可得结果正确。
地址发生器模块由3个11位加法器构成,用于在地址脉冲的作用下同时输出用于从正弦信号表中读取A、B、C三相正弦信号值的地址;三个加法器由于所输出的A、B、C三相相位相差1/3周期,所以他们的基本结构相同,但初始值不同。仿真波形如图8所示。
由仿真波形图可得该地址发生器在CLK的作用下同时生成了相位互差120 度地址信号。(注:一个正弦波周期含有1536个点,假设a相从0开始取正弦信号值,则b相滞后a相120度也就是1/3个周期即第511个点,c相滞后b 相240度,也就是2/3个周期即第1023个点)。
由于FPGA内部存储器有限,因此A、B、C三相共用一个正弦数据表,地址分相器的功能就是对同时输入的三相地址进行分时输出,并实现正转时顺序为ABC,反转时顺序为ACB。仿真波形如图9。观察仿真时序图表明本程序实现了用于从ROM中读取正弦数据的A、B、C三相地址的同时输入,分时输出。每一相地址保持时间为1个时钟周期。
ROM正弦数据表模块,用于存储8位1536个点的正弦数据,并在地址分相模块的控制下,分时输出A、B、C相位互差120°的三相正弦信号。模块包括ROM存储器和正弦数据初始化文件。其中ROM存储器由Quartus II的 MagaWizard Plug-In Manager定制的ROM宏功能模块实现,包括11位地址线,8位数据线和1位时钟输入线;正弦数据初始化文件由C语言程序生成,并通过DOS操作命令转换成.mif格式文件。
乘法器
为保证主电路开关器件的安全工作,必须使调制脉冲有个最小脉宽与最小间歇的限制,以保证最小脉冲宽度大于开关器件的导通时间ton,而最小脉冲间歇大于器件的关断时间toff。在脉宽调制时,若n为偶数,调制信号的幅值与三角波相交的两点恰好是一个脉冲的间歇。为了保证最小间歇时间大于toff,必须是调制波的峰值低于三角波的峰值。为此,定义调制信号峰值usine与uΔ之比为调制度,即
M值可在0-1,以调节功率器件输出电压大小。实际上,M总是小于1的,在n较大时,一般取最好的M=0.8-0.9。因数字三角载波和数字正弦波均为8 位,二者峰值相等,所以在将三角波与正弦信号进行比较之前,应将正弦信号幅值乘以调制度系数,具体为:
其中,AK为由单片机存入控制字模块中寄存器R5中的幅度控制字;AROM为从ROM中取出的正弦值。乘法器模块仿真图如图10所示。仿真图中所列为幅度控制字为255、254,正弦值为127、-127、126、-126的结果,由输出波形可得结果正确。
由于A、B、C三相共用一个ROM正弦数据表和乘法器,三相正弦数据不是同时产生,而三相正弦数据必须同时与三角载波比较才能产生正确的PWM调制波形,为此三相正弦数据锁存器需具备对三相正弦数据的分时输入,同时输出的功能。该模块的仿真波形如图11所示;观察仿真时序图A、B、C相正弦数据在CLK上升沿输入,第三个CLK上升沿同时输出,对于第四个CLK,输入的正弦数据无效,A、B、C三相数据从分别输入到同时输出共需4个脉冲,其中前三个CLK为有效脉冲。下一轮即新的A、B、C三相数据从第五个CLK脉冲开始,同时输出的用于和三角载波比较的三项正弦数据保持时间为4个时钟脉冲周期。本程序完成了三相正弦数据分时输入,同时输出的功能。
比较器模块共由3个结构相同的比较器组成,每一个比较器输入为两个8 位端口,分别接收来自三角波发生器和正弦信号发生器的载波信号和调制波信号,输出为两个1位端口,分别输出上桥臂和下桥臂PWM脉冲信号。比较器模块将调制完毕(根据幅度控制字调制)的A、B、C相正弦数据与三角载波信号比较,从而在输出端分别产生三相PWM波形,其仿真波形如图12所示;由图 12的波形可得,比较模块完成了既定功能,即正弦信号值大于等于三角信号上桥臂输出高电平,下桥臂输出低电平。反之,如果正弦信号值小于三角信号,则上桥臂输出低电平,下桥臂输出高电平。
脉冲延迟模块
由于三相混合式步进电机功率驱动模块中功率器件(例如:IGBT)导通速度快,而关断速度慢(toff>ton),为防止驱动电路中上下桥臂两功率管同时呈现导通状态,造成短虑事故,控制模块必须根据所采用的功率器件类型设置相应的“死区时间”,即将输入脉冲的上升沿延后一段时间,延后的时间由 kongzhizi(kongzhizi为6位,由单片机设定)设定,具体延时时间 tdelay=kongzhizi×tfdiv,而下降沿不做延时处理。具体仿真波形如图13所示;由图13可得,输入的控制字为10,最终输出脉冲上升沿滞后输入脉冲上升沿的时间为10个clkfdiv周期(clkfdiv=10Mhz,周期为0.1us即100ns),即输出脉冲上升沿滞后输入脉冲上升沿1us,而对下降沿则不做任何处理。
三相混合式步进电机控制器IP软核
应用VHDL语言中的“例化”,根据系统框图中所标注的信号节点,将以上 12个功能模块整合为一个完整的三相混合式步进电机控制器IP软核系统,如图14所示。本系统共有13个输入信号和7个输出信号,整个系统划分分为12个模块,即控制字输入、分频、相位累加、ROM正弦数据表、地址发生器、地址分相、乘法器、锁存器、地址分相、比较器、延时、锁存输出。
系统工作过程为,首先通过8位数据输入端data、时钟信号输入端clkchip 以及片选信号cs,在状态机的控制下,控制字模块从上位机分时接收正弦信号频率控制字、分频控制字、脉冲延时控制字,并将这三类控制字,共8个字节分别存至寄存器R1至R8中,在控制字装入后系统,将系统输出端ruaidi 置为高电平,通知上位机控制字已装入,上位机在接收到控制字已装好信息后,将系统使能输入端en置为低电平,启动整个系统开始工作。
然后分频模块根据分频控制字对系统时钟进行分频,得到内部时钟信号 clkd,以供给后续模块使用;相位累加器在时钟信号clkd的作用下对输入的 32位频率控制字进行累加,计满后输出高电平持续时间为一个clkd时钟信号周期的同步地址读取脉冲信号add_clks;地址发生模块在接收到地址读取脉冲信号add_clks后,同时输出读取a、b、c三相正弦信号的地址,三个地址的初始值为0、512、1024,以保证从正弦数据表中读出的三相正弦信号相位互差120°;由于三相共用一个正弦数据表,因此地址分相模块采用状态机来实现,作用是将同时来自于地址发生模块的三相地址分时输出,分别送入正弦数据表,间隔读出a、b、c三相正弦数据;正弦数据表由FPGA内部M9K配置构成ROM,容量为2048byte,其中前1536个byte存储8位正弦数据,后512 个字节可用于今后功能扩展;从正弦数据表中读出的数据送入乘法器进行 SPWM调制度的调节;而锁存器是将由乘法器进行幅值调节后分时存入的正弦数据同时输出,送到比较器模块,同时与来自三角波信号发生模块产生的载波信号SPWM所需载波信号进行比较,产生SPWM信号;考虑到功率器件导通时间与关断时间不同,延时模块是根据三相混合式步进电机驱动电路功率器件导通速度快而关断速度慢的特点,将触发脉冲上升沿后延,下降沿保持不变,以防止驱动电路上下桥臂功率管同时导通,造成短路事故,上升沿延后的时间由单片机提供的脉冲延时控制字决定。
由整个系统的仿真波形图7-图9、图11-图13可得,通过从上位机接收不同的控制字信息,该系统完成对三相混合式步进电机的最高1024细分、正反转控制、及旋转速度控制。用户可根据实际需要,通过参数设置来改变系统内部资源的规模,调整相应的结构(这些资源包括控制字输入模块、相位累加模块、地址发生及地址分相模块),以实现频率分辨率等参数的优化和升级。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。