基于DMA控制器的软件环形脉冲分配器设计

  摘 要:介绍一种基于DMA控制器的步进电机软件环形脉冲分配器的设计。该设计具有容易实现,占用CPU资源少,速度快等优点。

  1 引言

  步进电机是数字控制系统中重要的执行元件,广泛应用于各种控制系统中。步进电动机的作用是将脉冲电信号转换成机械角位移,每当电机绕组输入一个电脉冲,电机转子便转动一个步进角,电机转动的角位移和角速度分别由输入电脉冲和电脉冲的频率确定,控制精度在一般情况下,由步进角决定。由于步进电机的工作原理是各绕组必须按一定的顺序通电变化才能正常工作(A AB B BC C CA A AB B ……),完成这种通电顺序变化规律的部分称为环形脉冲分配器。步进电机的环形分配器设计通常可以采用硬件和软件两种方法。软件分配器的特点是可以充分利用计算机资源降低硬件成本,适用多相脉冲分配,但将占用计算机运行时间,可能影响步进电机的运行速度。本文通过利用 DMA 控制器,设计了响应速度快,占用 CPU 时间少的脉冲分配器。

  2 基于 DMA 控制器的脉冲分配器设计

  2.1 微机控制的步进电机驱动原理

  微机控制的步进电机驱动电路原理框图如图1 所示,系统由单片机,环形脉冲分配器,功率放大器等组成。步进电机的控制过程一般由单片机和环形脉冲分配器来完成,功率放大器按照控制规律驱动控制电机运转。从计算机或环形分配器输出的脉冲信号,其电流和功率较小,不能直接驱动步进电机转动,脉冲信号必须经功率放大才能驱动步进电机转动。采用微机对步进电机进行控制,控制线路简单,控制方案改变容易,适应性强。

基于DMA控制器的软件环形脉冲分配器设计

  图 1 步进电机驱动原理框图

  环形脉冲分配器的软件分配方法即完全由软件编程来实现步进电机相序信号分配,直接从微机输出信号端口输出控制信号实现脉冲分配的方法。软件分频就是利用查表或计算软件进行控制脉冲分频,按一定顺序读取数据(正向读取或反向读取数据控制电机正反转),并通过输出接口输出相应的电信号,经功率放大提供给相应的电机绕组控制电机运转。电机的转速由输入的脉冲信号频率决定,也就是说,电机转速控制是通过控制输入脉冲信号的频率实现。电机的转向可以通过控制励磁信号加载的顺序来实现。

  软件脉冲分配器要依据脉冲频率和转向控制要求来产生电机绕组的控制波形。以二相步进电机为例,其正转和反转的励磁状态转换如表 1 所示。可以把上述转换表存入内存表中,以一定频率按顺序循环读取数据,并输出相应的脉冲信号。

基于DMA控制器的软件环形脉冲分配器设计

  表 1 步进电机绕组通电状态转换表

  2.2 DMA 控制器基本原理

  DMA 即直接存储器存取,是一种快速传送数据机制。DMA 技术的重要性在于,利用它进行数据存取时不需要 CPU 进行干预,可提高系统执行应用程序的效率。利用 DMA 传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。DMA 对总线控制的优先级比 CPU 更高,所以能在 DMA 请求发生后非常短的时间内,就可把数据从源地址送到目的地址 。

  为了保证步进电机的控制精度,必须把内存表中的四位数据按等时间间隔同时发送到输出端口。纯软件的实现方法因为软件执行的不确定性较难保证时间控制的精确度。有些文献采取较常见的外接 EPROM[2]的方式实现。但是外接EPROM 的方法必须增加一个器件,就加大了电路设计的复杂度,也增加了成本。

  DMA 控制器是通常的单片机都具备的片内资源。以定时器中断为 DMA 请求因子,使 DMA控制器把内存表数据直接传送到端口输出,实现了类似外接 EPROM 一样的控制精度,也不会增加使用CPU进行数据传输带来的额外时间和资源的消耗。

  2.3 基于 DMA 控制器的脉冲分配器系统设计

  2.3.1 系统工作原理

  以瑞萨的 MCU M16C/62P[2]为例,原理如图2所示。先把表1的正转和反转状态转换表分别存入内存表中。然后,开始初始化 DMA 控制器:设置 DMA 请求因子为定时器B4中断,DMA 数据源为上述内存表的起始地址,传输目的为连接外部功率放大电路的 4 位通用 I/O 端口;再根据状态表的长度设置 DMA 计数器,使其循环输出这一块内存区域。最后,初始化 TmerB4:设置 TImerB4 工作在定时器模式,以 3MHz 时钟为例作为输入参考时钟,根据转速要求计算并设置定时器的计数值。在初始化完成之后,就可以通过控制定时器B4,产生步进电机的控制信号了。控制电机旋转时,打开定时器 B4 开始计数,达到计数值时就产生一次中断。每当定时器 B4 发生一次中断,就产生一次 DMA 请求;这时 DMA 控制器就从内存表中读出4位数据,传输到输出端口,对应步进电机就前进一步;同时,指向内存表的指针也相应的前进一步,指向下一个要输出的状态向量。定时器的计数值也需要在中断时重新载入,用来产生下一次中断。定时器以一定频率产生中断,就不断产生脉冲输出,电机就按一定的速度运转起来了。要控制电机停止时,停止定时器的计数,即停止了脉冲的输出,电机就停止转动。

基于DMA控制器的软件环形脉冲分配器设计

  图 2 基于 DMA 的软件环形脉冲分配器原理图

  • 基于DMA控制器的软件环形脉冲分配器设计已关闭评论
    A+
发布日期:2019年07月14日  所属分类:参考设计