在S3C4510 ARM芯片的引导下步进电机能否实现can现场总线加减速控制
随着工业的进步,嵌入式技术得到了广泛的应用和成熟。ARM嵌入式处理器作为一种高性能、低功耗的32位RISC芯片,支持多种操作系统、高主频、强运算能力,并可兼容8/16位器件,同时具有海量低价SDRAM数据存储器。它因其功能和商业价值而受到各行各业青睐,尤其在控制领域取得了显著成就。在运动控制系统中,以ARM为内核的嵌入式微处理器展现出巨大的发展潜力。
在成本有限的运动控制系统中,步进电机经常作为执行元件使用,其优势在于开环方式控制无需反馈即可对位置和速度进行精确控制。不过,由于负载位置没有反馈给控制电路,如果励磁频率不当,步进电机可能无法正确响应,每次励磁变化,从而导致失步或过冲现象。因此,在开环控制系统中防止失步和过冲是关键。
失步和过冲通常发生在启动或停止时。如果直接以要求运行速度启动,而该速度超过极限启动频率,则可能出现丢步甚至不能启动。此外,当达到终点后立即停止脉冲发送会产生惯性作用,使转子到达接近终点平衡位置,然后停下,这便是过冲现象。因此,加减速控制至关重要,其中加速、匀速和减速阶段通过软件实现。
采用微处理器对步进电机进行加减速时,就是改变输出脉冲时间间隔,即升级时脉冲频率逐渐增加,降级时逐渐减少。这可以通过恒加速度算法来实现,如图2所示,该方法易于操作且效果优异。
为了软件实现定时器中断方式,我们需要不断调整定时器装载值大小。当使用ARM芯片S3C4510中的定时器发出脉冲,我们应该将定时器溢出频率设置为二倍的控端脉隆频率。一段具体实现函数如下:
void pulse (REG16 f0, REG16 fmax, REG16 tran, REG16 steep){
UINT16 I;
A = ((fmax-f0)*(fmax+f0))/(2*trans);
for(i=0; i <= trans; i++){
f[i] = sqrt_16(2*A*i+f0*f0);
}
// ...省略代码...
}
其中f0为起始脉波频率,fmax为到达匀速状态后的最大脉波频率,tran为加/减速过程中的过渡数目,而steep则代表程序段总数目。结论显示,以ARM核心微处理器主宰高速运行,加上有效加减速策略,可以适用于经济型数控机床,用以取代传统基于PC平台的设备,从而降低成本。此外,在开发实时操作系统与选择合适计数事件源方面须谨慎考虑,以免引发全局崩溃问题。