基于STM32的改进DDA插补器设计与分析
2024-01-02
来源:乌哈旅游
2015年5月 机床与液压 MACHINE TOOL&HYDRAULICS Mav 2015 第43卷第10期 Ve1.43 No.10 DOI:10.3969/j.issn.1001—3881.2015.010.047 基于STM32的改进DDA插补器设计与分析 夏德宏 ,万伟韬 ,刘建胜 (1.江西水利职业学院信息工程系,江西南昌330013;2.南昌师范学院教育培训学院, 江西南昌330029;3.南昌大学机电工程学院,江西南昌330031) 摘要:针对普通DDA进给速度不够快、插补误差较大、插补脉冲分布不均匀等不足,利用改进的DDA算法作为插补 算法,以基于ARM Cortex—M3处理器内核的STM32微控制器为插补控制核心,设计了DDA硬件插补系统,实现了高速高 精度插补。借助Keil uVision4软件开发环境,利用C语言分别设计了普通DDA和改进DDA的算法程序,并对两种方法的 插补结果进行了对比。结果表明:与普通DDA相比,改进DDA在插补速度与插补精度上均有一定的提高,控制器溢出脉 冲分布更加均匀。 关键词:STM32:改进DDA算法;硬件插补 中图分类号:TH16 文献标志码:A 文章编号:1001-3881(2015)10-151-3 Design and Analysis for Improved DDA Interpolation Based on STM32 XIA Dehong .WAN Weitao .LIU Jiansheng (1.Information Engineering Department,Jiangxi Water Resources Institute,Nanchang Jiangxi 330013,China; 2.School of Education and Training,Nanchang Normal University,Nanchang Jiangxi 330029,China; 3.School of Mechanical and Electronic Engineering,Nanchang University,Nanchang Jiangxi 33003 1,China) Abstract:The ordinary DDA interpolation algorithm has the following shortcomings:the feed speed is not fast enough,the inter- pol ̄ion error is too large,the pulse distirbution is uneven.Employing improved DDA as the interpolation algorithm,taking advantage of STM32 microcontorller,which was based on ARM Corter—M3 processor as the interpolation control core,DDA hardware interpolation system was designed,and the high-speed,high—precision interpolation was achieved.Making use of Keil uVision 4,ordinary DDA and improved DDA algorithm programs were designed based on C language,then the interpolation results of the two methods were contras・ ted.The interpolation result shows that:comparing with ordinary DDA,the improved DDA has increased to some extent on the interpo- lation speed and precision,and the distirbution of the controller pulse overflow is more uniform. Keywords:STM32;Improved DDA algorithm;Hardware interpolation 数控技术的出现使机床的性能产生了飞跃,插补 线和圆弧插补的硬件插补器。 技术又是机床数控系统的控制核心,插补就是已知待 1 插补硬件系统设计 加工曲线上的某些数据.按照某种算法计算已知点间 1.1控制芯片 中间点的方法。也称为数据点的密化…。经济型数控 STM32F103采用ARM公司的高性能Cortex.M3 机床因较高的性价比被广泛采用,经常采用数字积分 内核。该内核采用180 nm工艺。基于哈佛结构和三 法(DDA)进行数控加工,但DDA法却存在插补速 级流水线的32位内核,时钟频率高达100 MHz,芯 度低、误差大、进给脉冲分布不均的缺点心]。 片性能高达1.25 DMIPS/MHz,运用基于硬件的中断 同时目前数控系统采用的插补器多为软件插补 处理技术,中断处理时间可以减少70%,同时加入 器.插补过程容易受到计算机软件的影响,对于一些 32位除法指令,除法运算时性能已接近DSP。芯片 要求高速高精度的场合往往很难满足需要,所以开发 中也集成了丰富的片上外设,1个USB—OTG全速设 高速、高精度的硬件插补器将对数控系统的发展和应 备,1个以太网模块,2个DMA控制器,10个定时 用带来极大的影响。。]。 器,2个bxCAN模块,2个USART,3个SPI等。拥 在普通DDA的基础上,利用改进的DDA算法, 有80个UO口,最高72 MHz的工作频率,同时 采用基于ARM Cortex—M3处理器内核的STM32F103 STM32的7个定时器可以产生最多28个精确的PWM 作为硬件插补控制核心。设计了能实现高速高精度直 信号,适合电机的控制和与上位机的通信 ]。 收稿日期:2014—04-09 基金项目:江西省科技厅科技支撑项目(20123BBE50083);江西省教育厅基金项目(GJJ13002) 作者简介:夏德宏(1984一),女,硕士,讲师,主要从事计算机控制研究等。E-mail:22128064@qq.eom。 第10期 夏德宏等:基于STM32的改进DDA插补器设计与分析 ・153・ 器1,停止PWM输出。累加器继续进行累加,直到 n厂]r] r]厂]厂] r]r]几 r]n几 下一次累加器溢出,如此往复到插补终点。插补的方 1 2 3 4 5 6 7 8 9 l0 11 l2 l3 14 l5 16 向由相邻的两个插补点决定,分别利用PE1和PE2 (a)普通DDA直线插补瑚进给脉冲分布 引脚连接伺服驱动器的方向控制接口,PE1、PE2输 l 口 口 口 口 口 口 口 口 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 出高电平,电机正转;输出低电平,电机反转。 (b)普通DDA直线插补l轴进给脉冲分布 口口口口口口口口口口口口 1 2 3 4 5 6 7 8 9 l0 ll 12 (c)改进DDA直线插补^触进给脉冲分布 口 口 口 口 口 口 1 2 3 4 5 6 7 8 9 10 11 12 (d)改进DDA直线插补l轴进给脉冲分布 1 2 3 4 5 6 7 8 9 1oll12l3l4l5l617l8l920 口 口 口 口 口 口口21222 口 3242526 . 口 口2728 (e)普通Db-A- ̄-弧插{ 轴进给脉冲分布 口 口口 口口 口 口 口 口 口 1 2 3 4 5 6 7 8 9 1011121314151617181920 2122232425262728 (f)普通DDA圆弧插补l轴进给脉冲分布 图6直线与圆弧插补进给脉冲分布比较 表1直线插补结果分析 图4 DDA第一象限逆圆弧插补流程图 3插补结果及分析 为了体现出普通DDA与改进DDA两者的特点, 利用MATLAB对两种插补算法进行插补仿真,分别 使用两种算法对第一象限起点(0,0)、终点(12, 6)的直线,第一象限圆心(0,0)、起点(10,0)、 终点(0,10)的逆圆弧进行插补。设普通DDA的 综合分析图5、图6以及表1—2可以看出:利用 累加器., ., 位数为4,则累加器容量为2 ,插补步 改进DDA和普通DDA分别进行直线插补时,虽然插 长均设为1。两种方法直线插补与圆弧插补比较结果 补精度没有得到提高,但是插补的速度提高了;进行 如图5所示。两种方法直线与圆弧插补XY轴脉冲分 圆弧插补时.插补的速度和精度都得到了一定的提 布比较如图6所示。利用文献[7]中插补误差公式 高。与此同时,利用改进DDA插补时,STM32溢出 计算文中两种算法插补误差。结果分析如表l一2所 的进给脉冲分配更加均匀。 示 4结论 (1)利用STM32搭建了分别基于普通DDA和改 进DDA算法的硬件插补系统,利用c语言编写插补 算法程序,能够实现预定的功能,取得了良好的效 直线 果。 (2)同等情况下,直线插补时改进DDA能提高 插补速度25%以上;圆弧插补时,插补速度提高 o 2 4 6 8 lO l2 29%的同时.插补精度提高了38%,改进DDA直线 (a)直线插补 (b)圆弧插补 与圆弧插补的精度均小于0.5个脉冲精度,并且 STM32控制器在沿进给方向上的脉冲分布更加均匀。 图5直线与圆弧插补路径比较 (3)改进DDA只是改变了普通DDA累加器的容 (下转第150页) ・150・ 机床与液压 第43卷 文中自定义了Pushtobuffer()函数,采取了先将部 分代码送人缓冲区.等这部分加工完成后再发送一部 分代码到缓冲区直到最后加工完成。自动加工的控制 过程是首先调GT_StrtList打开缓冲区,将用户传送的 轨迹描述或参数指令放入缓冲区,也可以调用GT— AddList添加新的指令:然后调用GT_StrMtn按照指 令存人的顺序依次执行,指令完成后调用GT—StpMtn 中断缓冲区指令的执行。自动加工的控制过程如图5 所示。 火焰切割机作为一种常用的板材下料切割设备在 机械制造业有广泛的应用。传统的切割机为手动或者 半自动切割方式,切割效率较低,增加了人力成本。 PC+运动控制器模式的数控系统充分利用了PC机的 软硬件资源,PC机可搭载通用的Windows系统,使 开发简单、周期短、效率高。基于PC+运动控制器的 切割机数控系统由于具有很好的开放性.用户可根据 运动控制器函数库提供的函数自行对系统运动控制功 能模块进行设计改造。 参考文献: 从链表中提取数据 调用GTStrList打开缓冲区 —[1]许小明,魏泽峰,胡力明,等.基于PC与运动控制器的开 放式数控系统研究与开发[J].制造业自动化,2012,34 (2):107—110. 将轨迹描述或参数指令放入缓冲区1l [2]李伟.火焰切割机数控系统的研究[D].淄博:山东理工 大学。2012. 调用GT StrMtn启动缓 冲区的连续轨迹运动 调用GTAddList添加指令 —[3]黎建伟,千方建,王硕桂,等.基于运动控制器的数控软 件研究与开发[J].工业控制计算机,2009,22(6):30- 33. ▲ l 进入中断 l < Y N 千. [4]WHEATER Stuart M,LITII ̄Mark C.The Design and Im— plementation of a Framework for Configurable Software 调用GT._slpMtn平滑停止运动 l [c]//Proceeding of the 2006 IEEE,2006:37—42. [5]陈疆,秦现生,顾学民,等.计算机组态数控系统硬件的 构建[J].中国制造业信息化,2008,37(13):43-45. 图5 自动加工的控制过程 [6]固高科技公司.GUC系列运动控制器编程手册[M]. f7]董震.基于运动控制卡的开放式数控火焰切割机设计 [D].石河子:石河子大学,2013. 在数控系统的加工过程中还有其他工作需要同时 进行。比如坐标的实时显示等,因此创建了一个线程 将自动加工在线程中运行[1。。。这样在加工的过程中, 每个独立的动作都创建一个对应的线程负责其运动过 『8 1胡志祖.基于VC的数控G代码解释器的设计与实现 [J].中国重型装备,2009(3):31-34. [9]张航伟,陈婵娟.开放式数控系统中数控代码的解析与 编译[J].机械设计与制造,2011(2):147-148. 程的管理。因为在加工过程中需要随时响应暂停或停 止等优先级比较高的线程。这种方式在多个动作协调 [10]冯代伟,黄大贵,黄小刚.基于运动控制器的动态多线 程加工策略及其实现[J].制造技术与机床,2009(2): 53—57 运动时实现起来逻辑比较清晰、方便。 3结束语 (上接第153页) 量,算法的复杂程度并没有增加,但是却取得了很好 的效果。 [D].成都:西南交通大学,2007. 『4]STM32 Reference Manual[OL].www.st.eom. [5]李恩林.插补原理[M].北京:机械工业出版社,1994. 参考文献: [1]吴祖育,秦鹏飞.数控机床[M].上海:上海科学技术出 版社.2000. [6]叶伯生.计算机数控系统原理、编程与操作[M].武汉: 华中理工大学出版社。1999. [7]杨树莲.快速数字积分插补算法及其实现[J].机床电 器,2003(6):12-15. [2]范希营,郭永环,何成文,等.数控系统中数字积分插补 的研究方向[J].机床与液压,2012,40(11):146-149. [3]杨宏臣.基于FPGA技术的数控插补器算法改进研究 [8]董为民,高贯斌,孙东明,等.插补算法的误差及实时性 研究[J].机械制造与自动化,2006(6):18-21.