基于STM32F103VCT6的微位移控制系统设计
扫描二维码
随时随地手机看文章
摘要:为实现X-Y-Z三维工作台的精确定位,设计了一种基于STM32F103VCT6单片机和步进电机的三维微位移控制系统。该系统可与上位机实现串口通信,接收上位机命令并把处理结果反馈给上位机;根据光栅传感器提供的位置反馈信息,系统可以通过对步进电机的方向、速度调节来实现精确定位;采用匀加速和匀减速方式对步进电机的速度进行调节,避免了因步进电机的突然加速和急停所带来的丢步和冲击现象。控制系统的测量实验结果表明,步进电机运行平稳,噪音低,定位精度高,控制系统性能稳定可靠。
关键词:STM32F103VCT6;串口通信;位移反馈;速度控制
0 引言
微位移控制系统是一种集机械、光学、电子和计算机等多种技术于一体的智能化仪器。在先进制造技术与科学研究中有着极其广泛的应用,也是现代工业检测、质量控制和制造技术中不可或缺的测量设备。微位移控制系统一般由微定位机构、微位移检测装置和控制器组成。控制器是微位移系统的指挥中心,它按照一定的控制算法控制微定位平台,使其按照一定的规律运动,来实现精确定位。
传统的三维微位移控制系统一般采用步进电机驱动滚珠丝杠来实现定位。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即每施加一个脉冲信号,电机就转动一个步距角,因此脉冲数与电机转动的总步进角度是呈线性关系的。另外,步进电机只有周期性的误差而无累积误差,使得在速度、位置等控制领域用步进电机控制变得非常简单。步进电机开环控制系统主要优点是结构简单,在控制精度要求不高的场合应用较为广泛,但是在实际应用中,若步进电机升、降速控制不合理,会造成步进电机丢步或过冲;在开环控制系统中,由于步进电机丢步现象的存在,无法获知它是否精确地到达了预定位置,也就无法实现高精度的定位。
为实现三维工作台的精确定位,系统采用步进电机闭环控制系统。系统中,利用光栅传感器的输出作为微位移控制系统的位置反馈信号,实现闭环控制。光栅传感器的分辨率为1μm,自带读数头,可直接输出TTL电平或正弦波信号,为信号处理和与控制系统连接提供了便利。控制系统通过光栅传感器反馈信号来判断是否达到了预定位置,进而做出相应的调整动作。从而达到精确定位的目的。
1 硬件电路设计
1.1 微位移控制系统总体设计
根据微位移控制系统的设计要求,首先应保证控制系统的定位精度,其次应尽量做到结构简单,成本低,操作简便。基于上述考虑,本文设计了如图1所示的微位移控制系统。其中,采用STM32F103VCT6单片机作为控制核心和数据处理器,基于THB7128驱动芯片设计驱动电路;定位系统采用电动平移台,由步进电机驱动滚珠丝杠进行定位,重复定位精度可以达到3μm;上位机采用VB进行程序设计,实现各种控制命令的发送、数据处理、数据显示等功能;通信方式采用RS 232串行通信,协议简单,操作方便。
1.2 控制系统外围电路设计
STM32系列单片机是基于嵌入式ARM Cortex-M3内核的32位微处理器,工作频率为72 MHz,内置高速存储器(包括256 KB的闪存和48 KB的SRAM),含有丰富的增强型I/O端口和连接两条APB总线的外设,还包含3个12位的ADC、4个通用16位定时器和2个PWM定时器,还包含标准和先进的通信接口:2个I2C,3个SPI,2个I2S,1个SDIO,3个USART,1个USB和1个CAN。控制系统外围电路图如图2所示。
控制系统驱动的步进电机为两相四线制步进电机,硬件配置上,E口的12~14脚负责控制步进电机的运动方向,A口的1,8脚和B口的0脚作为步进电机脉冲输出。输出信号通过74LV245进行输出,提高相应的驱动能力;D口的8~13脚为限位开关输入,B口的6,7脚为光栅反馈信号输入,输入信号通过光电耦合的方式输入,具有良好的电绝缘能力,同时也提高系统工作的稳定性。
1.3 步进电机驱动电路设计
步进电机驱动电路基于THB7128进行设计,如图3所示。具有以下特点:采用双全桥MOSFET驱动,低导通电阻RoN=0.53 Ω;最高耐压为40 VDC,最大电流为3.3 A(峰值);多种细分可选(1,1/2,1/4,1/8,1/16,1/32,1/64,1/128);自动半流锁定功能;内置混合
式衰减模式;内置输入下拉电阻;内置温度保护及过流保护。
1.4 反馈电路
STM32单片机的定时器有对于反馈信号特定的工作模式,即编码器接口模式。编码器接口模式基本上相当于使用了一个带有方向选择的外部时钟。这意味着计数器只在0到TIMx_ARR寄存器的自动装载值之间连续计数(根据方向,或是0到ARR计数,或是ARR到0计数)。所以在开始计数之前必须配置TIMx_ARR;同样,捕获器、比较器、预分频器、触发输出特性等仍正常工作。在这个模式下,计数器依照增量编码器的速度和方向被自动地修改,因此计数器的内容始终指示着编码器的位置。计数方向与相连的传感器旋转的方向对应。
图4是一个计数器操作的实例,显示了计数信号的产生和方向控制,还显示了当选择双边沿时,输入抖动是如何被抑制的;抖动可能会在传感器的位置靠近一个转换点时产生。在这个例子中,假定配置如下:
CC1S=01 (TIMx_CCMR1寄存器,IC1FP1映射到TI1)
CC2S=01 (TIMx_CCMR2寄存器,IC2FP2映射到TI2)
CC1P=0 (TIMx_CCER寄存器,IC1FP1不反相,IC1FP1=TI1)
CC2P=0 (TIMx_CCER寄存器,IC2FP2不反相,IC2FP2=TI2)
SMS=011 (TIMx_SMCR寄存器,所有的输入均在上升沿和下降沿有效),
CEN=1 (TIMx_CR1寄存器,计数器使能)
2 系统软件设计
2.1 上位机软件设计
上位机界面基于VB进行设计,包括初始状态设定,步进电机命令输入,运行模式选择,调频的实现,限位开关,反馈显示,如图5所示。
2.2 下位机软件设计
下位机程序基于RealView MDK开发环境进行开发。RealView MDK集成了业内最领先的技术,包括μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成FLASH烧写模块,强大的Simulation设备模拟,性能分析等功能。程序采用模块化设计,在主函数中实现系统的时钟配置、中断配置、通用输入/输出配置、硬件初始化和用户函数的调用。用户函数包括步进电机运动程序、反馈信号处理程序、限位信号处理程序、频率调节程序等。驱动步进电机所需的脉冲由定时器中断产生。定时器工作模式的向上计数模式,当计数器溢出时产生更新事件。所有的寄存器都被更新,计数器重新开始计数。在程序中设置脉冲启动频率为50 Hz,加减速频率为50 Hz/脉冲,可以改善步进电机运动的平稳性,流程图如图6所示。
2.3 串口通信协议的编写
上位机与下位机通信采用串口通信,波特率为9 600 b/s、8位数据、一个停止位、无校验、无流量控制、接收发使能。
上位机与下位机之间的控制命令采用9个字节每帧,包括电机选择、命令、数据、校验等。
3 实验
在微位移系统测量实验过程中,采用步进电机步进角为1.8°;步进电机驱动器为8细分;定位机构滚珠丝杠导程为4 mm;光栅传感器分辨率为1μm。理论上每发一个脉冲丝杠移动2.5μm。发送为20 000个脉冲,脉冲频率2 000 Hz。理论上光栅传感器产生50 000个脉冲。控制系统对反馈信号进行计数,并发送偏差命令进行实时修正直到最后达到预定位置。同时也进行了速度调节实验,步进电机运行平稳,验证了系统的可靠性。
4 结论
基于STM32F103VCT6单片机的微位移控制系统实现了对上位机命令的响应、处理及数据交互。通过接收上位机发送的各种命令,STM32F 103VCT6单片机控制系统产生相应的控制信号,并通过步进电机带动滚珠丝杠完成规定的动作。同时通过处理位置反馈信号来判断运动是否到位,使三维微位移系统的运动精度大大提高。而且步进电机采用升、降速控制,避免了步进电机的直接启动与急停,大大地改善了步进电机运动的平稳性,而且输出脉冲频率可以在20 kHz以内调节,具有很宽的速度范围,具有很强的适应性。整体上满足了微位移控制系统的要求。