相通电AB相不通电齿3应与C对齐此时转子又向右移过13て此时齿4与A偏移为13て对齐。
如A相通电BC相不通电齿4与A对齐转子又向右移过13て
这样经过A、B、C、A分别通电状态齿4即齿1前一齿移到A相电机转子向右转过一个齿距如果不断地按ABCA……通电电机就每步每脉冲13て向右旋转。如按ACBA……通电电机就反转。
由此可见电机的位置和速度由导电次数脉冲数和频率成一一对应关系。而方向由导电顺序决定。
不过出于对功能、用途的考虑。往往采用AABBBCCCAA这种导电状态这样将原来每步13て改变为16て。甚至于通过二相电流不同的组合使其13て变为112て124て这就是电机细分驱动的基本理论依据。
控制器的设计
控制步进电机方框图如图2。
1脉冲信号的产生。
脉冲信号一般由FPGA时钟信号产生一般脉冲信号的占空比为0304左右电机转速越高占空比则越大。
2信号分配
f龙源期刊网httpwwwqika
comc
电机以二、四相电机为主二相电机工作方式有二相四拍和二相八拍二种具体分配如下二相四拍为步距角为18度二相八拍为步距角为09度。四相电机工作方式也有二种四相四拍为ABBCCDDAAB步距角为18度四相八拍为ABBBCCCDDAB步距角为09度。
2分频器的设计分频器是该控制器实现的关键在这里作为信号的分配模块。系统时钟CLK被分频系数寄存器中值分频后输出CLKOUT作为相位输出状态机的时钟每个CLKOUT到来时步进电机相位产生一次转换步进电机运行一个步距角。以两项电机为例其控制程序如下libraryieeeuseieeestd_logic_1164alle
titystepru
isportdirectori
std_logicstopi
std_logic
resetclki
std_logica
ab
boutstd_logice
darchitectureo
lyofstepru
issig
altempstd_logic_vector0to3typestatesiss0s1s2s3sig
alcurre
t_state
ext_statestatess0variable
i
terger0variableNi
terger6begi
faba
b
process
resetclkbegi
if
reset0the
curre
t_stateelsifclk1a
dckleve
tthe
1curre
t_stateifN
reset0e
dife
dife
dprocessprocesscurre
t_statebegi
casecurre
t_stateiswhe
s0temp
ext_statewhe
s1temp
龙源期刊网httpwwwqika
comc
f龙源期刊网httpwwwqika
comc
ext_statewhe
s2temp
ext_statewhe
s3temp
ext_statewhe
otherstemp0000e
dcasee
dprocesse
do
ly3功能仿真使用Altera公司的FPGA开发工具进行功能仿真结果如图3所示。经分析基本实现了设计所要满足的要求。4结束语本文通过对步进电机的工作原理设计步进电机控制器。整个控制器为分频数和指令脉冲的分频数即可使r