1. Linux
    +关注
    关注 20
    文章 2058
    浏览量 80532
  2. 数控系统
    +关注
    关注 0
    文章 101
    浏览量 10044

QT+Linux+Microblaze实现的三轴数控系统

88lifa利发国际娱乐网工程师 2018-02-11 14:29 次阅读
高速化、高精度、低成本、小型化数控控制系统已经成为数控机床加工行业的发展趋势。本文提出QT+Linux+Microblaze的设计方法,由QT设计人机交互数控加工软件,以供绘制加工所需的图形以及获得图形数据,将此软件通过Linux向Microblaze移植;加工数据信息通过UART发送给下位机数控加工模块;在下位机FPGA模块上配置出UART模块、插补IP核以及脉冲发生IP核,最后控制三轴电机联动走出需要的加工轨迹。简要介绍了项目的背景和设计原理,详细说明了系统中三个最主要的部分:三轴数控驱动模块,抗干扰自适应波特率UART模块,基于QT的加工作图上位机软件,并给出了这三个模块的各自功能效果,最后分析了该项目的改进方向以及应用前景。实验证明,该系统非常适合当今数控行业对控制模块的运行速度、加工精度和体积的要求。 1项目背景及简介 数控机床广泛应用于国防、航空航天和国民经济各个部门,是自动化加工行业中最基本的装备,也关系到国家的安全和工业生产能否健康地增长。突破国家装备制造业发展的技术瓶颈,高速、高精度的数控机床要先行。嵌入式系统在功能、可靠性、成本、体积、功耗等方面的巨大优点,已使它逐渐被广泛应用于具有高速化、小型化需求的数控加工控制系统。 目前的中高档机床的数控加工系统的载体是以由传统PC机衍生出的工控机为主,而一些小型数控工作装置的控制系统则主要是PC机(上位机)+下位机的控制方式。第一种方法,由于采用了类似于PC机顺序执行命令代码方式,限制了加工速度的提高,尤其是现代加工行业对加工精度的高要求导致了大量传感器及其外围电路的应用,这就需要系统CPU具备高速运算处理的能力。第二种方法,由于需要在下位机和上位机之间频繁的传送数据,外围电路比较简单,难于外接较多的辅助传感模块,主要应用于对加工精度和速度要求均不高的数控装置。 针对数控机床控制系统的需求和现状,本文提出并进行相关实验验证了以QT+Linux+Microblaze的数控控制系统设计方式,利用QT美观的图形界面及其良好的绘图功能,进行数控加工软件的设计,用于绘制加工图形,并获得图形数据;结合Linux的移植能力,将QT数控软件先在Linux中运行通过,再移植到Microblaze(考虑到芯片无PowerPC,移植入PowerPC效果可能将会更好);最后由Verilog HDL语言编写的并行执行模块根据加工图形数据控制数控设备。本方案将兼具高速运算处理能力以及图形化友好操作界面。 2系统实现原理及总体设计 系统实现原理如图1所示,左侧虚线框表示原先设计方案即QT编写的数控加工软件通过Linux开发工具最终移植到Microblaze处理器,由于我们团队还未能成功实现Linux向Microblaze的移植,所以将QT数控软件放在PC机上运行实现,由PC机与FPGA模块通过串口交换数据。FPGA内部的功能模块以及外围所需控制的器件如图1所示。 图1系统实现原理框图 本文所述系统的总体设计框图可以表示如图2所示。 图2 总体设计框图 图3 系统硬件平台 图4 系统软硬件配合工作图
 
  3系统主要模块设计及实现功能   由图2可知项目涉及到的系统主要由三大部分组成:下位机部分由FPGA处理器配置出三轴数控驱动模块;用于上位机和下位机通信的抗干扰波特率自适应UART模块;基于QT设计的数控加工软件。为了体现出系统的处理速度优势,各模块的设计均采用Verilog HDL语言设计。   3.1 三轴数控驱动模块设计   该模块主要具有插补计算功能和脉冲发生功能。该模块通过UART模块获取信息,先判断图形形状(目前能加工出正方形、任意角度的折线以及圆弧),然后提取出图形尺寸信息如边长(起始点)、角度、弧度、半径等信息,进而计算出X、Y轴的运行方向、运行的总位移以及脉冲数,接着驱动脉冲发生模块工作发出脉冲控制三轴电机,最终走出加工所需要的轨迹。   直线插补方法:逐点比较法是一种代数运算,其特点是能逐点计算和判别运动偏差,并逐点就在以逼近理论轨迹。逐点比较法的理论误差是一个脉冲当量。   整个插补过程中没走一步需要完成四个工作节拍:(1)偏差判别,判别当前运动点偏离理论曲线的位置。(2)进给控制,确定进给坐标及进给方向。(3)新偏差计算,计算新的偏差值。(4)终点判别,线段均有终点。结束,则停止插补;否则,继续插补进给,重复(1)~(4)工作节拍。直线插补示例如图5所示:    图5 直线插补示例   图5 直线插补示例   圆弧插补和直线插补类似,每走一步也分四个工作节拍: (1)偏差判别,X2+Y2=R2;令Fi=X2+Y2-R2(i=0,1,2,…,N);Fi=0,点在圆上; Fi《0,点在圆外;Fi》0,点在圆内。(2)进给控制,当Fi≥0时,进给-ΔX;当Fi《0时,进给ΔY。(3)偏差计算,①进给-ΔX后, Fi+1=(Xi-1)2+Yi2-R2= Fi -2Xi+1;②进给ΔY后,Fi+1=Xi2+(Yi+1)2-R2= Fi +2Yi+1。(4)终点判别,计数长度法,令M=|X|或者|Y|,这样X方向(Y方向)每走一步,M就减1;双向计数法,令M=|X|+|Y|,这样X方向或Y方向每走一步,M就减1。圆弧插补示意图如图6所示。    图6 圆弧插补示意图   图6 圆弧插补示意图    图7 三轴数控插补加工设计界面   图7 三轴数控插补加工设计界面   3.2 抗干扰自适应波特率UART模块设计   本文利用电路板上的UART进行下位机与上位机之间的通信。通用异步收发器(UART)常运用于多MCU的总线通信系统中进行数据交换。为了应对多种波特率通信需求,本文设计了一个波特率自适应UART,UART模块可以根据通信需求自动改变下位机波特率,波特率更新过程如图8所示。根据上位机按新波特率发送的特殊数据(该字节数据保证2bit高电平,如0x18H),UART接收到此数据后即可计算出新的波特率,并更新自身波特率与上位机通信波特率,表1列举了采用该方法计算出的波特率值与理想波特率的误差值。目前利用FPGA设计UART多采用16倍频码元中部采样法,即对一个码元采样16次,将中间采样作为本码元的有效电平,这样可以消除边缘噪声的影响,但是没能解决随机噪声问题。码元受到噪声干扰示意图如图9所示。对于UART抗干扰问题,常用16倍频码元中部采样法抗随机干扰差,本文设计引入数字相关器对UART进行抗干扰设计,并采用流水线设计方法对数字相关器进行了优。图10所示为两位数字相关器运算数据流图。实验表明该方法设计的UART具有灵活、可靠的优点。    图8 波特率变更流程图   图8 波特率变更流程图   波特率(bit/s)分频计数值误差   240026030.0448%   96006510.16%   192003250.16%   115200540.4672%   200000310.8%   500000124%   65000096.4%    图9 含噪声干扰码元采样示意   图9 含噪声干扰码元采样示意图   表1 各波特率误差表    图10 相关器运算数据流图   图10 相关器运算数据流图   图11、图12、图13表示波特率自适应过程,并能以新的波特率正常通信。    图11 串口调试助手显示及数码管显示(波特率9600bit/s)   图11 串口调试助手显示及数码管显示(波特率9600bit/s)    图12 发送06H通知下位机改变波特率(新波特率115200bit/s)   图12 发送06H通知下位机改变波特率(新波特率115200bit/s)    图13 以新波特率正常通信(波特率115200bit/s)   图13 以新波特率正常通信(波特率115200bit/s)   3.3 基于QT的加工作图模块设计(上位机部分)   利用QT软件良好的界面效果来设计数控加工软件。可以在这个软件界面下绘制加工图,如图14所示:    图14 数控加工软件界面   图14 数控加工软件界面   在图中,先绘制出加工图,目前可以绘制直线、折现、四边形、圆等图形,然后点击菜单栏中“机械加工”,则软件会自动提取图形的起点、折点或者凸点、终点以及每个加工段的插补值,然后通过串口发送给下位机。   如图13和图14所示,下位机驱动三轴电机在布上(下面是海绵)画正方形,因为海绵会变形,所以轨迹不是笔直的。      图15 图16   4 结论   本项目利用了嵌入式体积小的优点,结合QT良好的界面效果设计了一套简易数控加工系统。由于未能成功将QT软件移植到Microblaze,故在上位机运行QT数控软件,获得加工信息后将有关数据发送到基于FPGA处理器的下位机,进而控制三轴数控平台进行加工。将FPGA器件用于数控加工,可以有效解决目前由于运算速度低带来的加工技术瓶颈(由于目前数控处理器运算不高,部分计算量较大的提高加工精度的算法未能付诸应用),可以促进FPGA在数控加工领域的应用。

88lifa利发国际娱乐网工程师 技术专区

  1. 锂离子电池正极材料的制备方法
  2. 百度发布四季度财报 AI先行成绩斐然
  3. 浅谈聚酯薄膜生产中的金属检测技术
  4. 习近平出席“中韩商务论坛” 李彦宏、马云、任正非等参与论坛
  5. 华为助美国Clearwire通信部署首个全国性WiMAX网络
关注88lifa利发国际娱乐微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

浅谈Linux touch命令实例

touch命令可以用来修改文件的访问/修改时间戳,使用touch命令创建一个空白文件,需要的语法是“....
的头像 人间烟火123 发表于 02-13 14:08 次阅读 0条评论
浅谈Linux touch命令实例

linux发行版排行 2018大盘点

2018年最受欢迎的 Linux 发行版本将会是什么呢?近日2018 最佳 Linux 发行版排行榜....
的头像 人间烟火123 发表于 02-13 13:52 次阅读 0条评论
linux发行版排行 2018大盘点

进入Linux命令行的简单方法 ​为什么要这样做?

需要访问 GRUB 启动菜单时,需要选择 Linux 发行版条目,按下 e 编辑引导参数。如何进入进....
的头像 人间烟火123 发表于 02-13 13:14 次阅读 0条评论
进入Linux命令行的简单方法 ​为什么要这样做?

linux之父是谁_linux之父简介

林纳斯·托瓦兹,linux之父是一位著名的电脑程序员、黑客。Linux内核的发明人及该计划的合作者。....
的头像 lhl545545 发表于 02-10 10:10 次阅读 0条评论
linux之父是谁_linux之父简介

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹的步骤解析

使用 Shell 脚本在 Linux 服务器上能够控制、毁坏或者获取任何东西,通过一些巧妙的攻击方法....
的头像 马哥Linux运维 发表于 02-09 15:23 次阅读 0条评论
使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹的步骤解析

VI 编辑器的命令、模式和选项介绍

VI 编辑器是一个基于命令行的、功能强大的文本编辑器,最早为 Unix 系统开发,后来也被移植到许多....
的头像 Linux爱好者 发表于 02-09 15:11 次阅读 0条评论
VI 编辑器的命令、模式和选项介绍

解析修改CentOS7网卡名字的步骤

CentOS7网卡名字不再是之前版本的eth0,eth1这样的名字了,而是enoxxx,比较长,不太....
的头像 阿铭linux 发表于 02-09 09:09 次阅读 0条评论
解析修改CentOS7网卡名字的步骤

简单介绍MySQL延迟主从复制

MySQL 5.6 已经支持延迟复制, 可设置备节点的延迟时间, 延迟复制是有意义的,例如防止主节点....
的头像 阿铭linux 发表于 02-09 09:05 次阅读 0条评论
简单介绍MySQL延迟主从复制

介绍两种方法来避免正在执行中的任务中断

有时我们也许会有这样的需求:要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就....
的头像 阿铭linux 发表于 02-09 08:56 次阅读 0条评论
介绍两种方法来避免正在执行中的任务中断

执行rsync的任务的2种方式解析

前面介绍的rsync 5种方式当中,第二、第三(1个冒号)就属于通过ssh的方式,这种方式其实就是让....
的头像 阿铭linux 发表于 02-09 08:48 次阅读 0条评论
执行rsync的任务的2种方式解析

分享解决No input file specified问题的方法

解决No input file specified问题的方法是, 修改php.ini中的cgi....
的头像 阿铭linux 发表于 02-09 08:41 次阅读 0条评论
分享解决No input file specified问题的方法

分享nginx 502的解决方法

还好,我印象中多年前遇到过一次类似的问题,不过是linux代理linux,症状和该问题基本类似,当时....
的头像 阿铭linux 发表于 02-09 08:37 次阅读 0条评论
分享nginx 502的解决方法

介绍一个不太常见的概念:嵌入文档

今天介绍一个不太常见的概念 -- 嵌入文档,英文名叫做Here Documents。也就是你在she....
的头像 阿铭linux 发表于 02-09 08:33 次阅读 0条评论
介绍一个不太常见的概念:嵌入文档

基于SLUB的DEBUG功能,如何帮忙检测内存越界和访问已经释放的内存

SLAB内存分配器-SLUB的DEBUG功能,如何帮忙检测内存越界(out-of-bounds)和访....
的头像 Linuxer 发表于 02-08 14:11 次阅读 0条评论
基于SLUB的DEBUG功能,如何帮忙检测内存越界和访问已经释放的内存

介绍 Nginx的基本概念,性能,SSL 安装

我们会告诉你 Nginx 如何工作及其背后的理念,还有如何优化以加快应用的性能,如何安装启动和保持运....
的头像 Linux爱好者 发表于 02-08 09:12 次阅读 0条评论
介绍 Nginx的基本概念,性能,SSL 安装

如何在windows和linux平台使用RT-Thread QEMU BSP,并运行RT-ThreadGUI示例

本文的目的 和背景嵌入式软件开发离不开开发板,在没有物理开发板的情况下,可以使用QEMU等类似的虚....
的头像 RTThread物联网操作系统 发表于 02-08 08:50 次阅读 0条评论
如何在windows和linux平台使用RT-Thread QEMU BSP,并运行RT-ThreadGUI示例

学习使用 8 种 Linux 原生命令或第三方实用程序来生成随机密码

在这篇文章中,我们将引导你通过几种不同的方式在 Linux 终端中生成随机密码。其中几种利用原生 L....
的头像 Linux爱好者 发表于 02-08 08:26 次阅读 0条评论
学习使用 8 种 Linux 原生命令或第三方实用程序来生成随机密码

学习ARM + Linux之前要讲解用ADS或RealViewMDK去调试ARM开发板的原因

掌握 ARM 体系结构。ARM 是一种计算机,掌握其体系结构也就是掌握ARM的工作原理。在大学里一般....
的头像 21ic电子网 发表于 02-07 13:36 次阅读 0条评论
学习ARM + Linux之前要讲解用ADS或RealViewMDK去调试ARM开发板的原因

基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案

为了适应嵌入式设备外设的多样性,本文以特殊矩阵键盘为例,设计了一套完整的驱动 控制模块 。硬件电路设....
发表于 02-07 09:44 次阅读 0条评论
基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案

通过操作命令来统计 Linux 中文件和文件夹/目录的数量

在本教程中,我们将向您展示如何使用多个命令,并使用 ls、egrep、wc 和 find 命令执行一....
的头像 Linux爱好者 发表于 02-07 08:24 次阅读 0条评论
 通过操作命令来统计 Linux 中文件和文件夹/目录的数量

88lifa利发国际娱乐

百度360搜索搜狗搜索