本文档介绍了一种基于STM32和CPLD的双轴运动控制器。制器使用32位STM32f103VET6微控制器执行粗插补计算,数据处理,图形显示和数据通信,而高速CPLD用于精确插值以及快速简便的控制。确引擎。试结果表明,该控制器控制精度高,速度快,运动平稳,可满足大多数双轴连杆控制的需要。值算法;运动控制; STM32; CPLD CLC编号:TP2文档代码:A文章编号:1671-7597(2014)20-0009-02运动控制器已由微控制器或专用芯片(ASIC)处理。
器件已发展成为以DSP / ARM和FPGA为主处理器的开放式运动控制器。速和高精度始终是运动控制技术追求的目标。分利用高速处理器计算能力,复杂运动规划,高速实时多轴插补和误差补偿,使运动控制更加精确,快速,稳定。据应用需求,智能运动控制器的设计将成为市场应用的新方向。统设计该控制器基于ST的STM32f103VET6芯片和Altera的CPLD芯片EPM570T100。用STM32的高速处理能力,它执行粗略插值计算,数据处理,图形显示和数据通信,以及CPLD强大的逻辑处理能力,以实现精确插值电机控制高速,高精度。统原理图如图1所示。1 STM32系统原理图示意图通过MAX232接口从主机接收控制命令或通过键盘输入接收图形轮廓数据然后执行处理相关算法并将计算出的初始插值参数传送到CPLD,CPLD对其进行了细化。值产生脉冲信号,该信号控制两个轴的连接以控制步进电机的运动。
统硬件设计)STM32模块。

32位STM32F103VET6微控制器具有72 MHz芯片,512 KB闪存和64 KB SRAM。持USB接口,网络端口等设备和串行端口,以及运动控制系统的许多资源。

STM32部分必须终止主机控制命令,输入关键轮廓数据,完成近似插值算法,显示当前操作状态,并与CPLD通信。此,STM32芯片的外围电路包括液晶显示模块,阵列键盘模块和串行端口模块。)CPLD模块。

CPLD模块的功能主要由Verilog硬件语言实现。CPLD负责与STM32的通信,并根据数据进行实时脉冲均匀化处理,生成双轴方向和脉冲控制信号,最后控制发动机运行。步一步。计CPLD的内部架构方案如图2所示。要由三个模块组成:STM32通信模块:包括8 * 10数据寄存器和控制接口,参数操作寄存器和控制模块数据,脉冲均匀化处理模块。2 CPLD内部架构图),其他电路模块。统中的其他模块包括主计算机通信模块,电源模块等。于控制器与 5 V提供时,STM32F103VET6芯片,该芯片EPM570T100和LCD显示模块需要3.3 V被供给,使得LM1117系列的芯片被用于转换功率通信模块使用MAX3232电平转换与主机通信,并通过串口从主机接收命令,以相应地控制电机。统软件设计)在STM32中实现粗插值算法。
值原理。据微处理器本身的特性,有许多插值算法。系列端对端连接的微小区段允许接近给定的轮廓。次执行插补周期并且获得插值周期中每个坐标轴的进给量时执行插值计算,并且下一个插值点的控制位置是获得[1]。性插值算法实现。定插补周期T,输入进给速率为F,加速度为a,当前速度为Vi,终点坐标为(Xe,Ye)。得每个插补周期的进给节距长度ΔL= ViT,所需运动的总长度为L =,X轴和Y轴的位移增量为Δx=ΔLXe / L,Δy=△L Ye / L.第i个插值点的位移点坐标为X = X Δx; Y = Y Δy。
此,可以设计线性数据采样内插软件的流程图,如图4所示。3线性插值软件的圆弧插补。执行圆弧插补,必须根据命令中指示的进给率F计算轮廓步长L,然后执行插补计算。了用弧线近似圆弧,两个相邻插值点之间的圆弧长度是轮廓步长的长度,前一个插补点的坐标和轮廓步长用于计算点。值后。限值对应于前一插补点处的前一插补点的两个坐标轴的进给量ΔX,ΔY。
S(X,Y)为当前点,E(X,Y)为插补后的终点,进给率为F,圆的半径为R,插补周期的步长△ L = F * T,根据几何关系,X轴和Y轴的轴为:X = Y =其中,令m =,n =,上述公式可以简化为:X = m Yn X,Y = m X n Y,插值后到达的点E的坐标为X = X X,Y = Y – ΔY[2]。此,可以设计数据采样插值软件流程图,如图4所示。4圆弧插补软件的流程图)STM32和CPLD之间的通信。步STM32和CPLD数据传输协议如图5,图5,恒温阀芯STM32和CPLD数据通信时间线通过10位数据总线数据进行数据传输,启动控制,EN,D信号时钟。CPLD每4 ms在起始信号线上产生一个正脉冲作为STM32中断信号,STM32执行数据传输并计算程序中的下列插值周期数据。断。
输数据由激活信号EN和时钟信号Clock控制。CPLD中精细插值算法的实现。于每个进给轴的进给速率在4 ms的粗略插补循环期间不断变化,为了确保平稳的电机进给运动,输出脉冲必须在每个循环均衡。值。此,我们提出了一种简单有效的脉冲均匀化插值算法。X为每个插值周期T中产生的脉冲数。插值周期T中,CPLD时钟产生的脉冲总数为F,F与X:F具有以下关系: = A * X B = A(X – B) (A 1)B(1)其中A是F / X的商,B是F / X的余数。
表示的物理意义是基于CPLD时钟:首先,在所有脉冲A上发射电源脉冲。共发射脉冲XB,然后在所有脉冲A 1.B脉冲发射电源脉冲。此,完成了在插值周期T中均匀地产生X脉冲的任务。

实际研究中,将插值周期设置为4 ms对应于数据传输时间,同时保持数据接收和运动控制的一致性。动控制的系统时钟为500 kHz。
插值周期T = 4 ms时,系统时钟脉冲数为F = 2000. Quartues II9.0的仿真图如图6所示。6输出脉冲的仿真测试精细插值,输出功率脉冲的速率可以稳定增加到250 kHz。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
