基于STM32运动控制器的研究

2018年12月07日 23:34来源于:科技创新与应用

徐旋

摘 要:文章提出了一种基于STM32的运动控制器,主要进行控制器的硬件电路设计分析以及简单的介绍了控制器采用的数据采样插补的算法。在简易的实验运动平台应用表明该控制器满足了设计的要求。

关键词:STM32;运动控制器;算法

1 概述

随着科学技术飞速发展,运动控制技术在工业机器人、自动化设备等领域中发挥作用越发明显。目前市面上的运动控制器大多采用ARM/DSP+FPGA架构,该类型控制器开发起来比较复杂而且成本昂贵。而事实上大多数时候对于运动控制系统的运动精度并没有非常严格的要求。因此在这种情况下,文章提出了一种基于STM32的运动控制器,由于成本比较低廉,该控制器广泛应用于简易的实验运动平台。

2 控制器的设计

控制器采用STM32F103x单片机为核心。控制器采用三轴设计,最多控制三个电机运动。可以实现点位、连续、联动等功能。同时该控制器采用RS232和485两种通讯方式与上位机进行通讯,以此得到控制信号以及发送控制器运行状态。控制器有12路输入和15路输出,输入输出均采用光耦芯片进行隔离。控制器的电机接口单元采用差分输出方式进行输出。总体方案如图1所示。

2.1 硬件设计

(1)主控单元电路设计。该运动控制器主控单元采用基于

Cortex-M3处理核的微控制器STM32F103x。该处理器为32位处理器,内核频率高达72MHz,1.25DMips/MHz处理能力,具备16个可编程优先等级中断,256K字节存储以及64K的SRAM,具有两个高级的定时器和6个基本的定时器。该控制器采用定时器的输出比较,输入捕获来实现脉冲PWM的输出以及编码器的计数。其I/O端口均与两条外设总线相连,同时该微控制器具有丰富的外设,如USART接口等。这里主要使用了USART外设与上位机进行通讯。在仿真接口的设计上,主控电路采用SWM方式,只需要4根线就能实现程序的下载及在线调试,与传统的JTAG调试相比,在确保可靠性的同时可以缩小控制器的大小。主控单元电路如图2所示。

(2)其它模块的设计。控制器采用DC24V输入,由于主控芯片供电电压为3.3V。因此使用DC24V转DC5V电源隔离模块,该电源模块为18V-36V宽电压输入,同时可是实现主板电源与外部电源的隔离。从电源模块输出5V电压再采用AMS117电源芯片进行降压,得到STM32所使用的3.3V电压。

控制器的输入接口主要接收运动装置回原点信号以及一些位置信号。目前大部分输入的信号为24V。由于控制器芯片所采用的位3.3V电压,因此在设计中采用EL357光耦隔离芯片实现输入信号与内部信号隔离。输出信号主要控制一些气动等线圈装置。为了提高输出能力我们采用的光耦隔离芯片与晶体管进行输出,光耦实现与输出的隔离,晶体管提高输出的驱动能力。

控制器的通讯接口方式采用了232通讯和485通讯两种方式。电路设计中采用SP32332芯片实现232通讯,采用sp485芯片实现485通讯。232通讯主要应用于单个控制器的控制。而采用485通讯主要是为了扩展的方便,在一些大型的机器装置中,由于电机的个数比较多,这样就需要多个控制器同时工作才能满足控制要求。在通讯接口上设计了高速通讯隔离光耦和TVS保护芯片,这样保证了通讯的安全可靠。

控制与电机的驱动器接口单元采用了差分输出方式,采用常用的四线差动驱动芯片AM26LS31输出差分信号,可将单端输出信号转换为差分信号进行输出,以此提高接口的驱动能力和抗干扰的能力。同时采用AM26LS32将编码器的输入信号转换为单端信号。

2.2 控制算法研究

运动控制器设计中难点在与插补运算,目前插补算法有很多种,如DDA算法等。本控制器采用的是数据采样插补法。该方法是按照采样时间将运动轨迹分割成若干微小的线段,线段的长度为采样时间的速度与采样周期的乘积。下面以S曲线进行表述。

S加减速方式根据加速度变化可分为:加加速、匀加速、加减速、匀速、减加速、匀减速和减减速阶段。各阶段对应的时间为t1、t2、t3、t4、t5、t6、t7。

一般一段轨迹的起始和终止的速度为零,加加速j为定值。为保障起始点与减加速段末端的加加速度为零,则有T1=T2,为简化计算令T3=T1=T2,T5=T6=T7。同时为了保证加减速的对称性,则有Tm=T1=T2=T3=T5=T6=T7(Tm可以根据给定速度以及加加速度来确定)。由上位机通过串口给控制器发送数据,在通过CPU转换为相对应的位移和速度,之后计算出每段时间段的大小。

用STM32生成S型加减速轨迹,选择STM32的基本定时器作为分割后采样周期发生器,在采样周期内定时器产生中断,在中断过程中计算出相应阶段的加速度ai,之后用速度迭代公式进行计算,得出相对应采样周期的速度Vi。迭代公式如下:

将所得的Vi转化为对应频率脉冲值,写入STM32的高级定时器的寄存器内,由定时器比较后输出PWM脉冲。写入定时器的寄存器装载值为脉冲值的一半,用Ni表示,则有Ni=fclk/2Vi,其中fclk表示基本定时器的基准时钟。

3 结束语

文章研究的STM32的运动控制器,实现了电机的点动、连续、联动等基本功能。脉冲输出频率可以达到100KHz。采用数据采样插补法解决了传统单片机脉冲输出效率偏低的问题。通过在提花织机上的使用,能够控制提花织机运转。基本上满足设计要求,同时该控制器也需要进行一定的改进,需要设计模拟量输入接口和模拟量输出接口。

参考文献

[1]李向如,俞建定,汪沁.基于STM32的机械手运动控制器的实现[J].微型机与应用,2015,34(21):7-8.

[2]赵从富,陈安,胡跃明.基于STM32的点对点运动控制器设计[J].计算机测量与控制,2012,20(4):994-995,1007.

[3]谢鹏程.基于STM32和FreeRTOS的独立式运动控制器设计与研究[D].华南理工大学,2012.

[4]石川,赵彤,叶佩青,等.数控曲线S曲线加减速规划研究[J].中国机械工程,2007,18(12):1421-1422.

 
免责声明:

     本文仅代表作者/企业观点,与【名品家电网】无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,仅供读者参考,并自行核实相关内容。

     【名品家电网】刊载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

      如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行;新闻纠错: lwl#youngchina.cn

关键词: 运动 文章 控制器