在S3C4510 ARM芯片的引导下步进电机是如何通过interbus现场总线实现加减速控制的

  • 科研进展
  • 2025年01月26日
  • 随着工业的进步,嵌入式技术得到了广泛的应用和成熟。ARM嵌入式处理器作为一种高性能、低功耗的32位RISC芯片,支持多种操作系统、高主频、强运算能力,并可兼容8/16位器件,同时具备海量低价SDRAM数据存储。它因其功能和商业价值而受到各行各业青睐,尤其在控制领域取得了显著成就。在运动控制系统中,以ARM为内核的嵌入式微处理器展现出巨大的发展潜力。 在成本有限的运动控制系统中

在S3C4510 ARM芯片的引导下步进电机是如何通过interbus现场总线实现加减速控制的

随着工业的进步,嵌入式技术得到了广泛的应用和成熟。ARM嵌入式处理器作为一种高性能、低功耗的32位RISC芯片,支持多种操作系统、高主频、强运算能力,并可兼容8/16位器件,同时具备海量低价SDRAM数据存储。它因其功能和商业价值而受到各行各业青睐,尤其在控制领域取得了显著成就。在运动控制系统中,以ARM为内核的嵌入式微处理器展现出巨大的发展潜力。

在成本有限的运动控制系统中,步进电机经常作为执行元件使用,其优势在于开环方式可以进行位置和速度控制。但由于没有反馈信息,步进电机必须准确响应每次励磁变化。如果选择不当,可能导致失步或过冲现象,因此,加减速控制成为保证正常运行的关键。

失步和过冲主要发生在启动和停止时。当启动速度超过极限时可能出现丢步或无法启动,而停止时,由于惯性作用可能产生过冲。因此,在启动或停止过程需要加减速控制,这通常通过软件实现,用来改变输出脉冲时间间隔,使得升速阶段脉冲频率逐渐增加,降速阶段逐渐减少。

采用恒加速度算法易于操作且效果良好。通过定时器中断方式,可以不断改变定时器装载值,从而改变脉冲频率。ARM芯片S3C4510中的定时器负责发出脉冲,其溢出频率应为二倍于控端脉pulse函数如下:

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);

SysDisableInt(INT_TIMER0);

SysSetInterrupt(INT_TIMER0, OnTimer2);

trans = tran;

TMOD = 0x00; // disable timer 1 and timer 2

TDATA1 = (steep+steep); // set up the counter to count down from steep

// steps at a rate of 50 kHz

TMOD = 0x03; // enable timer 1 and timer 2 in interval mode

}

其中f[>i>=sqrt_16(2*A*i+f[>i]*f[>i]);是计算每个转子的位置所需时间;tran是加速或减速过程中的总数;steep则是整个程序段所需总数。此外,该程序还考虑到实时操作系统调度策略,以及与定时器之间不会产生干扰的问题。

结论:以ARM为核心的微处理器因其高主频指令执行速度快,可输出较高脉宽并采用加减速方法使得步进电机能够平稳高速运行,因此非常适合用于经济型数控机床中替代传统基于PC机数控设备,以降低成本。此外,在开发嵌入式实时操作系统(如UC/OS-II)以及选择适当定时器的时候,还需要特别注意避免与其他部分产生互相干扰以确保整体稳定性。

猜你喜欢