当前位置
首页 > 数控加工案例
BOB半岛:一种基于STM32和FPGA的多轴运动的设计与实现
2024-12-23 11:14:05
来源:BOB半岛官网入口 作者:BOB半岛官方网站

  数控系统在工矿领域已得到广泛应用,计算机数控系统通过对数字化信息的处理和运算,并转化成脉冲信号,实现对电机的控制,进而控制数控机床动作和零件加工。随着嵌入式技术的发展,我们可以设计规模更小,成本更低,功能更特定的嵌入式系统来完成传统计算机数控系统所完成的工作。

  本系统以嵌入式处理器STM32和FPGA芯片为核心,运动控制方案中的处理部分都放在FPGA内部实现。这是1种硬件软化的方案,即具有软件可编程、可重构的特点,又有硬件那样高性能、高可靠、高一致性的优点。其系统原理框图如图1所示。

  STM32从SD卡中读取数据文件并进行相关算法处理,通过键盘扫描电路设置系统加减速的初始速度、最大速度、加速度的初始值以及一些控制参数。将相应参数传送到FPGA进行处理,最后由FPGA控制输出脉冲和脉冲间延时,通过高光耦隔离后输出,控制电机的运转。通过RS232实现和上位机数据通信以及驱动LCD完机交互工作。FPGA主要用来实现指令和数据处理模块、加减速模块、插补功能模块(包括直线插补和圆弧插补)等运动控制算法。

  为避免电机在启动、运行以及换速过程中使各轴产生超程、冲击、失步和振荡的现象,保证运动机构的平稳和准确定位,这就要求电机在各程序段转接时具有一个加减速的过程,使其平滑的过渡。大多运动控制系统都拥有梯形加减速和S型加减速功能。由于梯形加减速算法简单,系统响应快,效率高等优点,结合本课题要解决的主要问题以及应用的相关领域,课题在传统梯形加减速的基础进行改进来实现脉冲的输出。梯形加减速算法采用脉冲叠加的方法在FPGA内部的实现,即:以某一时钟为基准,将其进行n次分频后产生互不重叠的不同频率的n种脉冲,然后提取所需要的几种脉冲以式(1)进行叠加,从而输出连续可调的、不同频率的脉冲来完成加减速运算。式(1)如下所示:

  由式(1)可知f0/2n为对基准脉冲的分频,分频过程中通过对分频计数器的位数进行设置来产生不同频率且不重叠的脉冲。系数a[N:0]是单位时间产生的脉冲数,即脉冲速率。由此可以得出该方法下的系统逻辑结构电路图如图2所示。

  在图2中,系统主要包括时钟发生器、脉冲速率发生器、脉冲发生器和叠加器(包括n位寄存器、n个与逻辑和n个或逻辑)4个单元。时钟发生器主要对系统时钟进行分频产生基准脉冲;脉冲速率发生单元主要产生每单位时间输出的脉冲数,即脉冲输出速率单元,以及在里面完成加减速的判断等功能;叠加单元主要将来自脉冲速率发生器的每单位时间脉冲数存储在n位的寄存器中,然后完成和n种互不重叠的脉冲叠加的过程。

  图3为本设计在QuartusII中的仿真波形,值得说明的是为加快仿真速度,仿真前对某些参数进行过修改。

  如果所选取的脉冲当量足够小,函数的积分运算就变成了变量的求和运算,则用求和运算来代替积分运算所引起的误差可以不超过容许的数值。这样,可以采取2个寄存器(被积函数寄存器Jv和余数寄存器Jr)和1个全加器Q构成数字积分器。比值积分法取累加次数等于终点坐标值中最大的1个,如进行累加运算,则该坐标累加和每次皆为1,每次皆发一个进给脉冲,作为进给脉冲。从而使每次的进给速度达到最大且均匀,所以加工的效率、加工的质量都大为提高。比值积分法直线 比值积分法直线插补逻辑DDA直线插补在QuartusII中的仿线)的直线中x,y为输入,D为累加寄存器,D1为溢出脉冲,D2为余数寄存器。xpp,ypp为输出脉冲。将插补的结果与实际图形比较如图6所示。

  放起点坐标Yq和Xq。插补过程中,每当Y轴溢出一个脉冲,JVx应修正为JVx+1;而每当X轴溢出一个脉冲,JVy应修正为JVy-1。当圆弧由起点S(Xq,Yq)移动到终点E(Xe,Ye)时,X积分器JVx中的Y值将由Yq变为Ye,Y积分器JVy中的X值将有Xq变为Xe。对于修正过程中,加减1的取值要根据不同的曲线所在的象限和走向来决定。

  DDA圆弧插补也是由被积函数和余数累加器够成的[6,9??12]。对于被积函数寄存器和余数寄存器的位数确定现在以第I象限逆圆为例来分析圆弧插补的被积函数和余数。对于圆弧插补,其被积函数是变量,是变动的值,换句话说它的被积函数寄存器中的值要不断进行修正,并且圆弧插补时JVx对应Y轴坐标,JVy对应X轴坐标。例如,对图7所示的插补来讲,在插补开始时,JVx和JVy中分别存放起点坐标Yq和Xq。插补过程中,每当Y轴溢出一个脉冲,JVx应修正为JVx+1;而每当X轴溢出一个脉冲,JVy应修正为JVy-1。当圆弧由起点S(Xq,Yq)移动到终点E(Xe,Ye)时,X积分器JVx中的Y值将由Yq变为Ye,Y积分器JVy中的X值将有Xq变为Xe。对于修正过程中,加减1的取值要根据不同的曲线所在的象限和走向来决定。

  DDA圆弧插补在QuartusII中的仿线 仿 线中x,y为输入,xsum,ysum为累加寄存器,xD,yD为余数寄存器。xpp,ypp为输出脉冲。将插补的结果与实际图形比较如图9所示。

  为验证所设计芯片的插补功能,编写了STM32粗插补程序,将产生的粗插补坐标增量发给FPGA进行插补实验,得到了理想的插补输出脉冲,控制步进电机的运转从而雕刻我们所需要的补轨迹图形。又编写了STM32脉冲处理程序,读回了FPGA的输出脉冲,并由串口发送给PC。最后通过编写PC的串口通信程序以及根据插补脉冲绘图的程序,把FPGA的输出脉冲绘制成了插补轨迹图形。最终绘图结果显示,在20M输入时钟频率下,由插补脉冲生成的插补轨迹图形正确,验证了本文设计的插补算能的正确性。插补芯片达到了高速插补功能要求。

  上一篇:采用DSP与STM32的智能型伺服的软硬件设计及性能测试分析下一篇:一种基于STM32的多功能精密电子秤推荐阅读最新更新时间:2024-01-11 08:31

  随着人们生活质量的提高,对于生活环境的问题,人们的关注度进一步提高,同时政府部门采取了许多措施来改善环境状况。但是总体上来说我国的环境监测技术水平比较落后,传统上的监测手段比较单一,监测数据也不够准确,耗尽了大量的人力和财力,却成效不高。 针对上述缺点,当前文章综合了嵌入式处理技术、传感器技术、无线网络通信等技术,设计了一个基于STM32的无线环境监测系统,系统主要实现了对湿度、温度、有毒气体、烟雾浓度、空气质量等参数进行实时监测的功能。为了实现无线数据传输功能,采用了无线wifi技术。系统的测试分析表明系统整体数据采集性能良好,数据传输稳定性可靠,到达了预期目标。 系统与传统的监测技术相比,具有监测数据准确,监测范围广,

  芯片,是最近的热门话题,我们要关注的不仅仅是手机芯片,也要关注汽车芯片,更何况智能网联汽车业需要大量的芯片,其中,最重要的就是自动驾驶计算平台需要用到的芯片。 北京时间5月21日,总部位于美国加州圣克拉拉市的半导体公司Achronix,在中国深圳举办交流会,宣布推出全新的7nm FinFETSpeedster7t系列产品,该产品可以满足人工智能/机器学习(AI/ML)和高带宽数据加速应用的需求。 人工智能和机器学习的一大应用就是自动驾驶,领头羊Waymo采用的是英特尔CPU+Altera FPGA的方案来解决自动驾驶所需要的数据融合和算法处理,因为PFGA作为硬件加速器,可以作为GPU的有效补充,应用为汽车主控芯片。

  芯片 /

  最近在做一个工作,就是使用stm32将数据通过internet传输到远端连接的服务器上,考虑到的问题是,首先,是需要使用FTP传输数据的,其次,是怎么找到网络服务器的一个特定的文件夹,然后将数据封装到这个文件夹下的一个文件中,这个应该如何实现?就收集了一些相关的资料。 1、BSD TCP/IP协议栈 BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开

  互联网的广大网友,大家早上中午晚上好、EXTI、、、故名思义、、EX表外,出、、I表示Intrrupt、、所以合起来就是外部中断、、、说到这、、我觉得我最近的六级水平(背单词)又进了一步,稍微自夸了下下、、英语重要呀、、所以各位要多读英语呀、、、 之前的51单片机也有外部中断0和外部中断1、咦?强大的STM32怎么能输给51呢是吧、、根据“葵花宝典”第STM32篇参考手册中明文规定:112通用I/O端口以下图的方式连接到16个外部中断/事件线上: 有看出点什么猫腻来没??看出来的有赏喔、、世上最残酷的惩罚就是放一大堆美女和金钱在你面前却不是你的、、、好了、、这么久没人回答、我就当你们看不出了哈,我来说说:为什么是只有16

  之EXTI——外部中断 /

  10月20日,全球可编程逻辑解决方案领导厂商赛灵思公司 (Xilinx, Inc. (NASDAQ: XLNX))与ARM公司宣布正式开展合作,在赛灵思FPGA中应用ARM处理器与互联技术。赛灵思公司目前已经开始采用ARM Cortex处理器IP,利用性能优化的ARM数字单元库(cell library)和嵌入式存储器,为未来的可编程平台提供支持。此外,两家公司还共同对下一代ARM® AMBA®互联技术进行定义,以增强并优化FPGA架构。 未来赛灵思对于PowerPC架构的态度,赛灵思官方表示为:为了满足下一代嵌入式处理的需求,赛灵思将会继续为使用Virtex-II Pro、Virtex-4 FX以及Virtex-5

  STM32的定时器的分类: 1. 高级定时器 TIME1,TIME8 2. 通用定时器 TIME2~TIME5 3. 基本定时器 TIME6,TIME7 本章讲解通用定时器,参考《开发指南》第13,14,15章以及《中文参考手册》第14章。 一。 计数器的计数模式 1. 向上计数模式 2. 向下计数模式 在向下模式中,计数器从自动装入的值(TIMx_ARR计数器的值)开始向下计数到。