控制/MCU
摘 要:介绍一种基于DMA控制器的步进电机软件环形脉冲分配器的设计。该设计具有容易实现,占用CPU资源少,速度快等优点。
步进电机是数字控制系统中重要的执行元件,广泛应用于各种控制系统中。步进电动机的作用是将脉冲电信号转换成机械角位移,每当电机绕组输入一个电脉冲,电机转子便转动一个步进角,电机转动的角位移和角速度分别由输入电脉冲和电脉冲的频率确定,控制精度在一般情况下,由步进角决定。由于步进电机的工作原理是各绕组必须按一定的顺序通电变化才能正常工作(A AB B BC C CA A AB B ……),完成这种通电顺序变化规律的部分称为环形脉冲分配器。步进电机的环形分配器设计通常可以采用硬件和软件两种方法。软件分配器的特点是可以充分利用计算机资源降低硬件成本,适用多相脉冲分配,但将占用计算机运行时间,可能影响步进电机的运行速度。本文通过利用 DMA 控制器,设计了响应速度快,占用 CPU 时间少的脉冲分配器。
微机控制的步进电机驱动电路原理框图如图1 所示,系统由单片机,环形脉冲分配器,功率放大器等组成。步进电机的控制过程一般由单片机和环形脉冲分配器来完成,功率放大器按照控制规律驱动控制电机运转。从计算机或环形分配器输出的脉冲信号,其电流和功率较小,不能直接驱动步进电机转动,脉冲信号必须经功率放大才能驱动步进电机转动。采用微机对步进电机进行控制,控制线路简单,控制方案改变容易,适应性强。
图 1 步进电机驱动原理框图
环形脉冲分配器的软件分配方法即完全由软件编程来实现步进电机相序信号分配,直接从微机输出信号端口输出控制信号实现脉冲分配的方法。软件分频就是利用查表或计算软件进行控制脉冲分频,按一定顺序读取数据(正向读取或反向读取数据控制电机正反转),并通过输出接口输出相应的电信号,经功率放大提供给相应的电机绕组控制电机运转。电机的转速由输入的脉冲信号频率决定,也就是说,电机转速控制是通过控制输入脉冲信号的频率实现。电机的转向可以通过控制励磁信号加载的顺序来实现。
软件脉冲分配器要依据脉冲频率和转向控制要求来产生电机绕组的控制波形。以二相步进电机为例,其正转和反转的励磁状态转换如表 1 所示。可以把上述转换表存入内存表中,以一定频率按顺序循环读取数据,并输出相应的脉冲信号。
表 1 步进电机绕组通电状态转换表
DMA 即直接存储器存取,是一种快速传送数据机制。DMA 技术的重要性在于,利用它进行数据存取时不需要 CPU 进行干预,可提高系统执行应用程序的效率。利用 DMA 传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。DMA 对总线控制的优先级比 CPU 更高,所以能在 DMA 请求发生后非常短的时间内,就可把数据从源地址送到目的地址 。
为了保证步进电机的控制精度,必须把内存表中的四位数据按等时间间隔同时发送到输出端口。纯软件的实现方法因为软件执行的不确定性较难保证时间控制的精确度。有些文献采取较常见的外接 EPROM[2]的方式实现。但是外接EPROM 的方法必须增加一个器件,就加大了电路设计的复杂度,也增加了成本。
DMA 控制器是通常的单片机都具备的片内资源。以定时器中断为 DMA 请求因子,使 DMA控制器把内存表数据直接传送到端口输出,实现了类似外接 EPROM 一样的控制精度,也不会增加使用CPU进行数据传输带来的额外时间和资源的消耗。
以瑞萨的 MCU M16C/62P[2]为例,原理如图2所示。先把表1的正转和反转状态转换表分别存入内存表中。然后,开始初始化 DMA 控制器:设置 DMA 请求因子为定时器B4中断,DMA 数据源为上述内存表的起始地址,传输目的为连接外部功率放大电路的 4 位通用 I/O 端口;再根据状态表的长度设置 DMA 计数器,使其循环输出这一块内存区域。最后,初始化 TmerB4:设置 TimerB4 工作在定时器模式,以 3MHz 时钟为例作为输入参考时钟,根据转速要求计算并设置定时器的计数值。在初始化完成之后,就可以通过控制定时器B4,产生步进电机的控制信号了。控制电机旋转时,打开定时器 B4 开始计数,达到计数值时就产生一次中断。每当定时器 B4 发生一次中断,就产生一次 DMA 请求;这时 DMA 控制器就从内存表中读出4位数据,传输到输出端口,对应步进电机就前进一步;同时,指向内存表的指针也相应的前进一步,指向下一个要输出的状态向量。定时器的计数值也需要在中断时重新载入,用来产生下一次中断。定时器以一定频率产生中断,就不断产生脉冲输出,电机就按一定的速度运转起来了。要控制电机停止时,停止定时器的计数,即停止了脉冲的输出,电机就停止转动。
图 2 基于 DMA 的软件环形脉冲分配器原理图
根据所选用电机的使用手册,可以查出该电机的步距角。步距角对应一个脉冲信号,由此可以计算得到输入脉冲频率和电机转速的对应关系。例如,某款电机步距角为 7.5 度,即表示输入一个脉冲信号对应电机旋转 7.5 度。为了控制该电机输出 1200rpm 的转速,计算出该电机达到1200rpm 要求输入的脉冲频率是 955HZ。脉冲频率对应于定时器中断产生的频率。因此,以定时器输入频率为 3MHZ 为例,定时器的计数应设置为:3000000/955-1 =3140。
修改定时器的计数值就改变了定时器中断发生的频率,即也改变了脉冲输出的频率,从而改变了步进电机的转速。因此,控制步进电机的转速可通过修改控制定时器的计数值来实现。在实际控制系统中,电机的转速变化通常不是在瞬时完成,而需要一个逐渐上升或下降的控制过程;可以把速度变化的过程分解成几个离散的步骤,逐步实现速度的变化。这时就可以按各个步骤的速度控制要求修改定时器的计数值,实现转速的变化控制。同时,电机启动时设置 DMA 数据源指针指向正转或反正表,就能控制电机的转向。系统的软件框图如图3所示。
图3 软件框图
本文提出的方法,已经成功地应用于复印机产品的控制中。采用该方法,节省了硬件脉冲分配器件的成本。实践表明,该方法具有控制响应速度快,节省 CPU 运行时间等优点。同时,该方法只要修改状态表,就可以适用于多相脉冲分配。由于通常单片机都具有 DMA 控制器,因而,该方法容易在不同的平台上实现,易于推广。
图 4 速度分布示意图
图 5 带台阶的斗叶背面简图
水斗的侧面、即水斗出水边背面,也曾经有过遭到剥蚀破坏的情况,受破坏的原因仍然是水斗出水的周期性冲击作用所致,只是由于出水的能量甚小,因此破坏力不大。若前一个水斗的出水不磨擦到后一个水斗的侧面,此类破坏几乎可以完全避免,这就是几乎所有冲击式水轮机的水斗很少受到这种破坏的原因。要防止该情况的发生,主要是要设计合理的型线,并保证良好的加工工艺就能满足。
总之,经过该电站的处理,今后在产品的设计过程中,只要保证正确的设计,合理的选型,选择合适的材料,合理的工艺,就基本能杜绝该现象的发生。但由于电站运行水头有越来越高的趋势,因此在水斗型线的改善,材料性能的提高,铸造工艺的完善上都有待于进一步的提高。
全部0条评论
快来发表一下你的评论吧 !