基于ARM的三轴运动控制卡系统设计与实现

时间:2022-10-13 06:43:48

基于ARM的三轴运动控制卡系统设计与实现

摘要:文章以STM32F405VG单片机为核心处理器,研制了一款集成度高、性能好、价格低廉的三轴运动控制系统,该系统可以与计算机组成高性能的运动控制系统,也可以脱机独立运行。文章阐述了运动控制卡的硬件设计和实现方式方案,并针对软件设计方面的整体流程、核心算法和主要功能模块进行了说明。

关键词:STM32;ARM;运动控制卡;串口通信

中图分类号:TP273 文献标识码:A 文章编号:1009-2374(2013)31-0038-03

随着点胶机器人和雕刻机的广泛使用,运动控制卡的需求量越来越大,运动控制中的精确运动控制算法和插补算法需要大量复杂的计算,对系统设计的器件的选型具有很高的要求,市场上常见的运动控制卡大部分基于DSP和FPGA为核心,DSP负责插补运算,FPGA负责脉冲信号的产生和编码器信号的解码处理。

随着ARM单片机的发展,高性能的Cortex-M4具有高效的控制和信号处理功能、高效的信号处理能力,使该系列单片机具有低功耗、低成本和使用简单的优点,能够满足电动机控制、工业自动化、嵌入式音频和汽车电子行业等行业的需求。

本文以采用Cortex-M4为核心的STM32F405VG单片机作为主MCU,研制了一款集成度高、性能好、价格低廉的三轴运动控制系统,该系统可以与计算机组成高性能的运动控制系统,也可以脱机独立运行,脱机独立运行时自动从本地存储器读取运动轨迹文件并按照文件中的指令逐条

执行。

1 系统总体设计

三轴运动控制卡系统需要支持三个电机的独立驱动控制、模拟信号采集、模拟信号输出控制、开关量输出控制、开关量输入监测、串口通信接口等功能。为了方便调试程序和上下位机互联,系统设计了SW接口、RS232串口和USB接口。三个电机控制接口为脉冲和方向信号接口,可以控制三个电机的正反转,并通过脉冲信号控制转速和位移。系统设计了1路RS485接口与其余485接口设备进行串口通信,例如连接组态屏等,16路开关量输入通常有三轴位移限位、三轴原点限位、启动、急停、暂停等按钮信号输入,16路开关量输出通常有气泵开关控制等,8路模拟输入信号用于监测三轴相位电流大小,从而可以防止电机堵转,增强系统安全性,同时系统还设计了模拟输出信号用于驱动控制直流电机转速等,3路编码器输入可以用于组成闭环控制系统。系统框图如图1所示,从硬件功能模块可以分为电源管理模块、MCU核心电路模块、电机驱动模块和接口电路四个模块。

2 核心硬件设计

电源管理模块采用LM2596把24V输入电压转换为直流5.0V电压,使用LM1117把5V电压转换为3.3V,为系统MCU和主要芯片系统工作电源,D4、D5和D6分别为24V、5V和3.3V电源指示灯。如图2所示。

主控MCU电路部分电路图如图3所示,单片机采用的STM32F405VG为ST公司的Cortex-M4内核系列单片机,采用90nm的NVM工艺和自适应实时存储器加速器技术,程序的执行效率最高运行频率可达210DMIPS@168MHz,也高效地发挥了Cortex-M4的性能特点,可以满足复杂的计算和控制。本设计选用的单片机最高速率可达168MHz,具有1204K字节的片内FLASH、192K的SRAM和4K的备份RAM,10个通用定时器满足了系统对PWM和脉冲捕捉的需求,丰富的外设接口比如SPI、I2C、USART、USB等可以使单片机和外设方便地进行互联通信,该芯片采用100引脚LQFP封装,多达82个通用IO,自带12位ADC和12位DAC,可以满足系统对多通道数字模拟通道的采集控制功能。

系统采用8MHz晶振,经过MCU内部倍频到168MHz,J4为单片机提供启动方式,当BOOT0为高时从片内ISP区域开始运行,当BOOT0为低时从应用程序区域开始运行。为了更方便地升级维护程序,本系统设计了IAP程序和应用程序。首次下载IAP引导程序时,把J4短接,使用Flash Loader Demonstrator v2.4.0软件下载,IAP下载成功后,使用超级终端软件升级应用程序。JP1为系统SW调试接口,可以使用JLINK的SW调试功能开发软件。

CAT809S是微控制器监控芯片,在系统上电时产生一个低电平复位信号,可以保证系统稳定可靠的上电复位。AT45DB321D是32M位SPI FLASH,作为外置存储器,用于存储运动轨迹控制文件,从而可以使系统在脱机状态下独立运行已编辑好的轨迹文件。

接口电路模块如图4所示,由于完整的电路图太大,该图只列出了单路信号接口电路,输入信号使用光耦隔离,输出信号先使用光耦隔离再使用继电器驱动输出,从而可以减少外部信号对系统的干扰。DAC输出使用运放大搭建电压跟随器,从而可以增强系统的模拟输出驱动能力。编码器输入为差分信号,使用26LS32把差分信号转换为脉冲信号,然后使用MCU的TIM4定时器的脉冲捕捉功能实现编码器解码计数。ADC输入使用10K滑动变阻器进行分压,从而可以满足多种电压输入的采集监控。RS485电平转换和RS232电平转换分别采用MAX485和MAX232芯片实现,RS485电路采用雪崩二极管消除尖峰脉冲干扰信号,从而起到防止雷击的作用,增强系统稳定性。

电机驱动模块电路如图5所示,单片机输出的为单路脉冲信号和方向信号,通过芯片26LS31把单路信号转换为差分信号输出,从而可以与市面上所有的步进电机或者伺服电机驱动器直接相连,实现对电机转速、位移和方向的控制。因为PWM脉冲输出只能调节脉宽和频率,对已输出脉冲个数无法直接控制,所以本系统设计了采用另外一个定时器通过脉冲捕捉实现计数的功能,即脉冲信号在通过26LS31输出的同时也连接到单片机的TIM1定时器相应通道,从而实现对TIM3输出相应PWM输出脉冲的个数的计数。

3 软件设计和关键算法

为了增强系统程序的模块独立性和软件的实时性,本设计选择了嵌入式操作系统COOS,该操作系统是一款针对ARM Cortex-M系列芯片而设计的实时系统内核,免费且开源,高度可剪裁,支持优先级抢占和时间片流转,中断延时短,支持多种同步通信方式,因此非常适合嵌入式应用。本设计使用COOS实现多个任务的调度、通信控制。系统软件流程框图如图6所示:

系统的关键任务和算法部分是电机控制任务,该任务主要实现加减速控制和联动插补控制。转速的平稳性有利于保证机械系统运行的平稳性和系统的控制精度,特别是在带负载运行的情况下,转速的控制尤为重要。本设计通过控制MCU的TIM3发送3路PWM信号的频率来控制电机的转速,通过中断重新装载预分频器TIM prescale的值改变PWM输出频率,加减速控制算法通过设定的加减速速度值不断减小或者增加预分频器值实现对速度的增加和减小的控制,匀速阶段保持输出脉冲频率的恒定。结合TIM1的PWM脉冲捕捉计数,可以实现精确控制PWM脉冲输出个数和频率,实现位置与速度的协调控制,使电路输出S曲线运动控制脉冲模式的脉冲信号,为了简化实现原理,本设计把S曲线分为三个阶段:第一个阶段加速度递增,第二个阶段加速度匀速,第三个阶段加速度递减,到达设定的匀速运动速度时,加速度为0。

联动插补控制算法可以控制两轴电机实现直线插补和圆弧插补,三轴电机实现直线插补,插补算法的实现本设计选用逐点比较法,鉴于普通逐点比较法每插补一次,即走步方向为+X、-X、+Y、-Y这四个方向之一,也叫四方向逐点比较法,该算法的插补误差为小于或等于一个脉冲当量,为了提高精度,本设计在该算法的基础上进行了改进,通过XY两轴同时进给实现了八方向逐点比较法,该算法以45°折现逼近进给曲线,逼近误差小于或等于半个脉冲当量,使系统运行控制精度提高一倍。

4 应用和发展前景

该设计充分利用了Cortex-M4内核单片机的运算能力强、外设丰富的优点,通过单芯片实现了三轴电机的运动控制,可以用于点胶机机器人、雕刻机、折弯机、包装机等自动化机械设备,具有接口丰富、性能强、价格低、运行可靠的优点,同时既可以与上位机联机使用,也可以独立运行,从而具有更广阔的应用空间。

参考文献

[1] 兰功金.基于STM32的SCARA机器人控制电路研究与设计[D].西南交通大学,2008.

[2] 潘伟维,刘康,杨大志.基于DSP的运动控制卡的硬件设计[J].机床与液压,2012,(18):115-117.

[3] 孙红伟,殷跃红.CPLD在基于DSP的多轴运动控制卡中的运用[J].机电一体化,2012,(5):51-56.

[4] 史晓娟.基于DSP的双轴运动控制卡的设计与实现[J].组合机床与自动化加工技术,2009,(9):49-51.

[5] ST.STM32F4系列:微控制器[J].世界电子元器件,2011,(11):23.

[6] 张慧娟.STM32F4系列抢占Cortex-M4内核先机[J].EDN CHINA电子设计技术,2011,(11):16.

上一篇:影响结直肠癌术后患者预后多因素分析 下一篇:探地雷达在岩溶隧道超前地质预报中的应用