第一篇:沈阳理工大学plc课设报告(步进电机的运动控制)
摘 要
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。步进电机是将电脉冲信号变换成机械角位移的一种装置,每个脉冲使转轴步进一个步距角增量,输出角位移与输入脉冲数成正比,转速与输入脉冲成正比,转速与输入脉冲频率成正比。
步进电机的控制方式简单,属于开环控制,且无累积定位误差,有较高的定位精度,而PLC作为一种工业控制微机,是实现电机一体化的有力工具,因此基于PLC的步进电机控制技术已广泛用于数字定位控制中。本控制系统的设计,由硬件设计和软件设计两部分组成。其中,硬件设计主要包括步进电机的工作原理、步进电机的驱动电路设计、PLC的输入输出特性、PLC的外围电路设计以及PLC与步进电机的连接与匹配等问题的实现。软件设计包括主程序以及各个模块的控制程序,最终实现对步进电机转动方向及转动速度的控制。本系统具有智能性、实用性及可靠性的特点。
本文主要介绍了西门子S7-200在步进电机控制方面的应用。
关键词: 步进电机、PLC、西门子S7-200
目录
1.概述...........................................................................................................................1 2.硬件设计.....................................................................................................................2 2.1控制要求..........................................................................................................2 2.2选择PLC型号................................................................................................2 2.2.1 I/O点数的估计..................................................................................3 2.2.2 用户存储器容量的估算.....................................................................3 2.2.3 CPU功能与结构的选择....................................................................3 2.2.4机型选择..............................................................................................4 2.3 系统设计流程示意图....................................................................................4 2.4 I/O分配表.......................................................................................................5 2.5 I/O接线图.......................................................................................................5 3.软件设计....................................................................................................................6 3.1设计梯形图.....................................................................................................6 3.3.1 梯形图编程语言概述.........................................................................6 3.3.2 梯形图指令程序................................................................................6 3.2设计指令表......................................................................................................8 4.调试..........................................................................................................................10 5.结束语.......................................................................................................................11 6.参考文献...................................................................................................................12
I
1.概述
在电气信息时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。无论是在工农业生产还是在日常生活中的家用电器,都大量地使用着各种各样的电动机。因此对电动机的控制变得越来越重要了。电动机的控制技术的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、微机应用技术的最新发展成就。正是这些技术的进步使电动机控制技术化。
步进电机是机电控制中一种常用的执行机构,其原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
PLC全称可编程控制器,是在电器控制技术和计算机技术的基础上开发出来的,并逐渐发展成为以微机处理器为核心,把自动化技术、计算机技术、通信技术融为一体的新型工业控制装置。随着PLC性价比的不断提高,其应用领域还将不断扩大。PLC对步进电机具有良好的控制能力,利用其高速脉冲输出功能或运动控制功能,即可实现对步进电机的控制。利用PLC控制步进电机,其脉冲分配可以由软件实现,也可由硬件组成。
2.硬件设计
2.1控制要求
在步进电机单元完成本实验。
使用移位寄存器指令,可以大大简化程序设计。移位寄存器指令所描述的操作过程如下,若在输入端输入一串脉冲信号,在移位脉冲作用下,脉冲信号依次移位到各个寄存器的内部继电器中,并将这些内部继电器的状态输出,每个内部继电器可在不同的时间内得到由输入端输入的一串脉冲信号。
图2.1 步进电动机控制的模拟实验面板图
2.2选择PLC型号
选择合适的机型是PLC控制系统硬件配置的关键问题。目前,国内外生产PLC的厂家很多,不同的厂家的PLC场频随谈基本功能相似,但有些特殊功能、价格、服务及使用的编程指令和编程软件都不同。而同一厂家生产的PLC产品又有不同的系列,同一系列中又有不同的CPU型号,不同系列、不同型号的。因此,如何选择合适的机型至关重要。
PLC的选择主要应从PLC 的机型、容量、I/O模块、电源模块、特殊功能模 2
块、通信联网能力等方面加以综合考虑。PLC机型选择的基本原则是在满足功能要求及保证可靠、维护方便的前提下,力争最佳的性能价格比。选择时应主要考虑到合理的结构型式,安装方式的选择,相应的功能要求,响应速度要求,系统可靠性的要求,机型尽量统一等因素。
2.2.1I/O点数的估计
I/O点数是PLC的一项重要指标.合理选择I/O点数计可使系统满足控制要求,又可使系统总投资量最低。PLC的输入输出总点数和种类应根据被控对象所需控制的模拟量、开关量等输入/输出设备情况来确定,一般一个输入/输出元件要占用一个输入/输出点。考虑到今后的调整和扩充,一般应在估计的总点数上再加上20%到30%的备用量。
2.2.2 用户存储器容量的估算
PLC常用的内存有EPROM、EEPROM和带锂电池供电的RAM。一般微型和小型PLC的存储容量是固定的,介于1-2KB之间。用户应用程序占用多少内存与许多因素有关,如I/O点数、控制要求、运算处理量、程序结构等。因此在程序设计之前只能粗略的估算。
2.2.3 CPU功能与结构的选择
PLC的功能日益强大,一般PLC都具有开关量逻
辑运算、定时、计数、数据处理等基本功能,有些PLC还可扩展各种特殊功能模块,如通信模块、位置控制模块等,选型时可考虑以下几点:
1)功能与任务相适应
2)PLC的处理速度应满足实时控制的要求 3)PLC结构合理、机型统一 4)在线编程合理和离线编程的选择
2.2.4机型选择
综上所述,可知本次步进电动机控制的模拟中PLC型号选择:I/O点数的统计:输入1点(SD);输出4点(A、B、C、D),控制步进电机。SD为启动按钮。估计PLC用户程序长度:为I/O点数的(10-20)倍,选用S7-200 CPU226 CN AC/DC/RLY输出的PLC即能满足要求。
2.3 系统设计流程示意图
图2.2 系统设计流程图
2.4 I/O分配表
表2.1 I/O分配表
2.5 I/O接线图
图2.3 I/O接线图
3.软件设计
3.1设计梯形图 3.3.1 梯形图编程语言概述
梯形图(LAD)是与电气控制电路图相呼应的图形语言。它沿用了继电器、触点、串并联等术语和类似的图形符号,并简化了符号,还增加了一些功能性的指令。梯形图是融逻辑操作、控制于一体,面向对象的、实时的、图形化的编程语言。梯形图信号流向清楚、简单、直观、易懂,很适合电气工程人员使用。梯形图(LAD)在PLC中使用得非常普遍,通常各厂家,各型号PLC都把它作为第一用户语言。
3.3.2 梯形图指令程序
3.2设计指令表
指令语句表(STL)使用助记符来表达PLC的各种控制功能的。它类似于计算机的汇编语言,但比汇编语言直观易懂,编程简单,因此也是应用很广泛的一种编程语言。这种编程语言可使用简易编程器编程,但比较抽象,一般于梯形图语言配合使用,互为互补。目前,大多数PLC都有语句表编程功能,但各厂家生产PLC的语句表(STL)所用的助记符互不相同,不能兼容。
Network 1 // 网络标题
LD T40 EU SHRB M0.0, M20.0, +4
Network 2 LD M20.4 ON I0.0 R M20.0, 4
Network 3 LD M20.3 ON I0.0 R M0.1, 1
Network 4 LD M20.0 S M0.1, 1 Network 5 LD I0.0 AN M0.1 = M0.0 Network 6 LD I0.0 AN T41 TON T40, +1
Network 7 LD T40 TON T41, +1
Network 8 LD M20.0 = Q0.0
Network 9 LD M20.1 = Q0.1
Network 10 LD M20.2 = Q0.2
Network 11 LD M20.3 = Q0.3
4.调试
步进电机的控制系统由可编程控制器和步进电机功率驱动器组成,控制系统中PLC用来产生控制脉冲;通过PLC编程输出一定数量的方波脉冲,控制步进电机的转角;同时通过编程控制脉冲频率。
在输入端输入一串脉冲信号(1000),在移位脉冲作用下,此脉冲信号依次移位(1000-0100-0010-0001-1000-…...)至各个寄存器的内部继电器(Q0.0-Q0.1-Q0.2-Q0.3-Q0.0-……)中,并将这些内部继电器的状态输出(LED灯A亮-B亮-C亮-D亮-A亮-……)。
若将梯形图网络三中复位指令的指令操作数M0.1改为M0.2或M0.3,各个寄存器的内部继电器的状态输出将发生改变(1000-0100-0010-0001,即A亮-B亮-C亮-D亮),不会循环移位;
若将梯形图网络四中置位指令的指令操作数M0.1改为M0.2或M0.3,各个寄存器的内部继电器的状态输出将发生改变(1000-1100-1110-1111,即A亮-AB亮-ABC亮-ABCD亮),不会循环移位。
5.结束语
这次课程设计我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。
课程设计是对学校所学知识的全面总结和综合应用,对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力。
在不断的努力下我的课程设计终于完成了。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
总之,通过这次课程设计大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
6.参考文献
[1] 刘顺禧.电气控制技术.北京:北京理工大学出版社,1995 [2] 袁任光.可编程序控制器(PLC)应用技术与实例.第2版.广州:华南理工大学出版社,2000 [3] 谢剑英.微型计算机控制技术.第3版.北京:国防工业出版社,2001 [4] 西门子公司.SIMATIC S7-200可编程序控制器系统手册,2000 [5] 邓则名.电器与可编程序控制器应用技术.机械工业出版社,1997 [6] 廖常初.PLC编程及应用.北京:机械工业出版社,2002 [7] 陈在平.可编程控制器技术与应用系统设计.机械工业出版社,2002 [8] 何衍庆.可编程序控制器原理及应用技巧.北京:化学工业出版社,2000 [9] 谭浩强.PLC程序设计教程.北京:清华大学出版社,2000
第二篇:三菱PLC与步进电机控制练习题 1
三菱PLC与步进电机控制练习题 1
1.参数设置与工作要求。
按照自己设计的电气图设置,主回路由一个带星-三角降压启动的正反转电机控制回路【正、反转启动时,星形运行时间 4秒,再转换成三角运行;正、反转转换时的时间间隔为5 秒】、变频器控制的单速电机三速段变速控制回路【设置参数:变频器设置为第一速段为25Hz加速时间 2 秒,第二速段为35Hz、第三速段为50 Hz】、步进电机控制回路【设置参数:步进电机,第一次动作为正向旋转4 圈,脉冲频400Hz;第二次动作为正向旋转 3圈脉冲频率400Hz;第三次动作为反向向旋转6圈,脉冲频率600Hz:步进驱动器设置为4 细分,电流设置为1.5A。】组成。竞赛以电机旋转“顺时针旋转为正向,逆时针为反向”为准。
(1)整个动作实现过程应采用无人工干预的方式,由PLC控制实现。
(2)整个动作实现过程不考虑任何特殊情况下的如紧急停车或自动恢复。
(3)使用SB1作为起动、SB2停止的控制方式,并有工作状态指示。
(4)整个控制电路(含主回路与控制回路),必须按自己设计的图纸连接实现。
(5)热继电器FR1、FR2的整定电流均为0.4A。
2.工艺过程实现。
按下启动按钮SB1后,M1按降压启动模式(星形)正转;4 s后,转入三角形运转(为保证转换时不出现短路,应在程序上使KMY转成KM△的时间间隔为0.2秒)。同时,步进电机M3第一次正向旋转 4 圈停车;停2s后,变频器所控电机M2以第二速段正向旋转 6s停车(时间包含加速时间),第一次动作过程结束。停 1.5s后,步进电机M3第二次正向旋转 3圈停止;此时再停 2s 后,变频器所控电机M2按第一速段反向旋转 8s停车,当变频器所控电机M2停车的同时电机M1停转(在停转前的过程中电机M1一直保持三角形运转),第二次动作过程结束。停5s 后,M1按降压启动模式(星形)反转;4 s后,转入三角形运转(为保证转换时不出现短路,应在程序上使KMY转成KM△的时间间隔为 0.2秒)。同时,步进电机M3第三次反向旋转6圈停止;再停2s后,变频器所控电机M2按第三速段正向旋转,按下停止按钮SB2后,整个动作过程结束。
二、不考虑特殊情下系统故障的问题
在编程时考虑例如紧急停止、突然断电情况下系统当时的运行状态,重新启动时,按下启动按钮系统从当时状态恢复并继续运行、按下复位按钮再按启动按钮系统重新开始从头运行。
第三篇:ARM的步进电机细分控制报告
基于ARM的步进电机细分驱动控制设计
一、ARM简介
ARM 公司是一家IP供应商,其核心业务是IP核以及相关工具的开发和设计。半导体厂商通过购买ARM公司的IP授权来生产自己的微处理器芯片。由此以来,处理器内核来自ARM公司、各芯片厂商结合自身已有的技术优势以及芯片的市场定位等因数使芯片设计最优化,从而产生了一大批高度集成、各据特色的SOC芯片。
ARM微处理器具有以下特点:采用RISC指令集、使用大量寄存器、ARM/THUMB指令支持、三/五级流水线具有低功耗、低成本、高性能等。
到目前为止,ARM公司的IP核已经由ARM7,ARM9发展到今天的ARM11版本,ARM微处理器及技术的应用已经广泛深入到国民经济的各个领域, 如工业控制领域、网络应用、消费类电子产品及成像和安全产品等领域。
鉴于ARM7所具备的强大功能完全可以满足本次设计要求,本次设计仍使用ARM7系列芯片。
二.步进电机细分控制方案
1、步进电机细分技术简介
细分驱动技术在七十年代中期由美国学者首次提出,基本原理是将绕组中的电流细分。由常规的矩形波供电改为阶梯波供电,此时绕组中的电流将按一定的阶梯顺序上升和下降,从而将每一自然步进行细分。步进电机细分控制的本质是通过对励磁绕组中的电流控制,使步进电机合成磁场为均匀离散化的圆形旋转磁场。采用细分驱动技术可以改善步进电机的运行品质,减少转矩波动、抑制振荡、降低噪音、提高步距分辨率。
2、硬件框图设计
系统总体硬件框图设计如图2-1所示:
0
图2-1总体设计框图
3、软件总体设计流程图
图2-2 软件设计流程图
4、步进电机
图2-3 28BYJ-48-5VDC步进电机
中间部分是转子,由一个永磁体组成,边上的是定子绕组。当定子的一个绕组通电时,将产生一个方向的电磁场,如果这个磁场的方向和转子磁场方向不在同一条直线上,那么定子和转子的磁场将产生一个扭力将定子扭转。依次改变绕组的磁场,就可以使步进电机正转或反转(比如通电次序为A->B->C->D正转,反之则反转)。而且按照通电顺序的不同,可分为单四拍(A-B-C-D)、双四拍(AB-BC-CD-DA)、单双八拍(A-AB-B-BC-C-CD-D-DA)三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
由于步进电机的驱动电流较大,单片机不能直接驱动,一般都是使用ULN2003达林顿阵列驱动,当然,使用下拉电阻或三极管也是可以驱动的,只不过效果不是那么好,产生的扭力比较小。
5、电机驱动ULN2003简介
ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
图2-4 ULN2003芯片引脚图
该电路的特点如下: ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。其接线图如下所示:
图2-5 步进电机驱动电路 6、12864液晶显示简介
12864是128*64点阵液晶模块的点阵数简称。液晶屏类型:STN FSTN;模块显示效果:黄绿底黑字、蓝底白字、白底黑字;驱动方式:1/64 DUTY 1/9 BIAS;背光:LED白色、LED黄绿色;控制器:KS0108或兼容 ST7920 T6963C;数据总线:8 位并口/6800 方式 串口;工作温度:-20℃~+70℃;储藏温度:-30℃~+80℃;点阵格式:128 x 64;现实角度:6:00直视;基本用途:该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。其接线图如下所示:
图2-6 12864液晶显示与LPC2131接口接线图
三、硬件电路图
图2-7 系统硬件电路图
四、总结
此次基于ARM的步进电机细分驱动控制设计,由于掌握知识及时间有限,我们目前只实现了对步进电机正反转控制以及三种运行方式(单四拍、双四拍、单双八拍)的选择控制,并且实现了在12864液晶显示屏上显示相关的信息。连接好硬件电路,上电复位,程序开始运行。此时步进电机不转动,按下启停键,步进电机开始转动,初始值设为正传,按反转键开始反转,再按正传键则开始正传。当按下加速键时电机开始加速,当按下减速键时电机开始减速。
当然,此次课程设计还存在很多问题,实现的功能较简单,这都需要以后不断加强相关知识的学习从而不断提高自己。
最后,感谢李红岩老师和黄梦涛老师的辛勤教诲。
五、心得体会
这次课程设计的硬件部分由我来完成,虽然不用焊接电路,但是在画硬件图的过程中仍遇到很多问题。例如对Protel软件的不熟悉,许多操作需要多次尝试,才能正确完成;还有就是在电路的连接过程中,由于自己的马虎,线路有错连和少连的现象。但是经过自己的不断努力,最终还是完成了任务。
通过这次课程设计,我从一开始对系统的不太熟悉,到能开发一个简单的系
统,在这整个过程中我学到了很多东西,掌握了一些常用的开发技能,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
在本次ARM课程设计训练中,不仅锻炼了自己的动手能力,也在向同学老师请教的过程中学到了不少东西,十分感谢老师和同学的帮助。通过本次课程设计,我最深的感触便是,许多东西都需要自己亲自去做去实践去学习,才能真正的弄懂,才能真正的学到东西。
在整个的设计和实践过程中,通过老师的指导和同学的帮助,我们组最终在最后时间完成了任务。通过这次课程设计,才知道自己需要学习的东西还有很多,下来之后一定得加紧学习。平常我们都只是在课堂上学习,通过这次课程设计,实现了从理论到实践的飞跃。增强了认识问题,分析问,解决问题的能力。
最后感谢老师对我们此次课设的耐心指导和帮助!
经过这次ARM课程设计,使我对这学期ARM课程做了全面的复习,并学会将其应用于实践,在这次基于ARM的步进电机细分控制中,我对于ARM、步进电机、液晶显示及相关软件都有了进一步的认识,也是我发现团队合作的重要性,更激起了我对于电子设计方面的热情。
不过,通过这次课程设计,我同样感受到了自身知识的缺乏,如不太熟悉使用上位机进行监控、ARM的掌握不够透彻、还不能脱离参考资料独立进行软硬件设计等,这些都需要我以后不断加强学习锻炼加以增强,这将对于我今后进一步的学习打下基础,我以后会不断根据自身缺点进行学习锻炼,使自己不断提高。最后,感谢老师的辛勤教诲!
六、参考文献
1.ARM嵌入式系统基础教程[第2版] 主编 周立功 北京航空航天大学出版社.2008 2.步进电动机及其驱动控制系统 主编 刘宝廷 哈尔滨工业大学出版社.1997
附录
#include“config.h” #define
MOTOA
1<<10
// P0.10
#define
MOTOB
1<<11
// P0.11
#define
MOTOC
1<<12
// P0.12 #define
MOTOD
1<<13
// P0.13 #define
key1
1<<17
// 加速 #define
key2
1<<18
// 减速 #define
key3
1<<19
//正反转 #define
key4
1<<20
//启停
#define
KEYCON 0x001e0000 // LED控制字 #define
MOTOCON 0x00003c00 // MOTO控制字
#define
GPIOSET(PIN)IO0SET = PIN
// 方便修改置位端口 #define
GPIOCLR(PIN)IO0CLR = PIN
// 方便修改清位端口 #define
RS
1<<9
//P0.9 #define
SID
1<<6
//P0.6 #define
E
1<<4
//P0.4 #define
PSB
1<<2
//P0.2并行或串行,选择低电平串行模式 #define
RST
1<<25
//P1.25,复位脚
unsigned char DAT1[64]=“低速—单四拍A-B-C-D运行方式”;unsigned char DAT2[64]=“中速—双四拍AB-BC-CD-DA运行方式”;unsigned char DAT3[64]=“高速—单双八拍A-AB-B-BC-C-CD-D-DA运行方式”;unsigned char DAT4[64]=“低速反转—单四拍D-C-B-A运行方式”;unsigned char DAT5[64]=“中速反转—双四拍AD-DC-CB-BA运行方式”;unsigned char DAT6[64]=“高速反转—单双八拍D-CD-C-BC-B-AB-A-DA运行方式”;unsigned char DAT7[64]=“
停
止
”;unsigned char DAT8[64]=“步进电机细分控制测控1002班:刘怡楠&石娟利”;
void TransferCom(unsigned char data0);void TransferData(unsigned char data1);void delay(unsigned int m);void lcd_mesg(unsigned char *adder1);void SendByte(unsigned char Dbyte);void init(void);void LCD12864_init(void);void DelayNS(uint32 dly);void MOTO_Mode1(uint8 i);
// A-B-C-D void MOTO_Mode10(uint8 i);void MOTO_Mode2(uint8 i);
// AB-BC-CD-DA-AB void MOTO_Mode20(uint8 i);void MOTO_Mode3(uint8 i);
// A-AB-B-BC-C-CD-D-DA-A void MOTO_Mode30(uint8 i);
int main(void){
unsigned int t=0;//启停标志
unsigned int f=0;//正反转标志
unsigned int i=0;//电机运行模式标志
PINSEL0=0x00000000;
PINSEL1=0X00000000;
PINSEL2&=~(0x00000006);//设置所有I/O口为普通GPIO口
IO0DIR =MOTOCON;// 配置I/O输入输出方向
LCD12864_init();//液晶端口初始化
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{ init();
lcd_mesg(DAT8);
//显示界面
}
while(1)
{
if(t==0)//电机停止
{ init();
lcd_mesg(DAT7);
IO0CLR=MOTOCON;
if((IO0PIN&key4)==0)t=!t;//key4控制启停转换
} else if(t==1)//电机启动
{ if((IO0PIN&key1)==0)//key1控制加速
{ if(i>=2)i=2;
else i++;
DelayNS(10);
}
if((IO0PIN&key2)==0)//key2控制减速
{ if(i<=0)i=0;
else i--;
DelayNS(10);
}
if((IO0PIN&key3)==0)f=!f;//key3控制正反转
if((IO0PIN&key4)==0)t=!t;
if(f==0)
//正转
{ if(i==0)MOTO_Mode1(10);//低速
else if(i==1)MOTO_Mode2(10);//中速
else if(i==2)MOTO_Mode3(10);//高速
}
else if(f==1)//反转
{ if(i==0)MOTO_Mode10(10);//低速
else if(i==1)MOTO_Mode20(10);//中速
else if(i==2)MOTO_Mode30(10);//高速
} }
}
return(0);}
void DelayNS(uint32 dly){ uint32 i;
for(;dly>0;dly--)
for(i=0;i<5000;i++);} void MOTO_Mode1(uint8 i)
//单四拍A-B-C-D运行方式 {
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{
init();
lcd_mesg(DAT1);//显示字符串DAT1
/* A */
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOA);
/* B */
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOB);
/* C */
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOC);
/* D */
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOD);
} } void MOTO_Mode10(uint8 i)
//单四拍D-C-B-A运行方式 {
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{
init();
lcd_mesg(DAT4);
//显示字符串DAT4
/* D */
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOD);
/* C */
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOC);
/* B */
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOB);
/* A */
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOA);
} } void MOTO_Mode2(uint8 i)
//双四拍AB-BC-CD-DA运行方式 {
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{
init();
lcd_mesg(DAT2);
//显示字符串DAT2
GPIOSET(MOTOA);
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOA);
GPIOCLR(MOTOB);
/* BC */
GPIOSET(MOTOB);
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOB);
GPIOCLR(MOTOC);
/* CD */
GPIOSET(MOTOC);
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOC);
GPIOCLR(MOTOD);
/* DA */
GPIOSET(MOTOD);
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOD);
GPIOCLR(MOTOA);
} } void MOTO_Mode20(uint8 i)
//双四拍AD-DC-CB-BA运行方式 {
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{
init();
lcd_mesg(DAT5);
//显示字符串DAT5
GPIOSET(MOTOA);
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOA);
GPIOCLR(MOTOD);
/* DC */
GPIOSET(MOTOD);
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOD);
GPIOCLR(MOTOC);
/* CB */
GPIOSET(MOTOC);
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOC);
GPIOCLR(MOTOB);
/* BA */
GPIOSET(MOTOB);
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOB);
GPIOCLR(MOTOA);
} } void MOTO_Mode3(uint8 i)
//单双八拍A-AB-B-BC-C-CD-D-DA运行方式 {
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{
init();
lcd_mesg(DAT3);
//显示字符串DAT3
/* A */
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOA);
/* AB */
GPIOSET(MOTOA);
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOA);
GPIOCLR(MOTOB);
/* B */
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOB);
/* BC */
GPIOSET(MOTOB);
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOB);
GPIOCLR(MOTOC);
/* C */
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOC);
/* CD */
GPIOSET(MOTOC);
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOC);
GPIOCLR(MOTOD);
/* D */
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOD);
/* DA */
GPIOSET(MOTOD);
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOD);
GPIOCLR(MOTOA);
} } void MOTO_Mode30(uint8 i)
//单双八拍D-CD-C-BC-B-AB-A-DA运行方式 {
while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)
{
init();
lcd_mesg(DAT6);
//显示字符串DAT6
/* D */
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOD);
/* CD */
GPIOSET(MOTOC);
GPIOSET(MOTOD);
DelayNS(i);
GPIOCLR(MOTOC);
GPIOCLR(MOTOD);
/* C */
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOC);
/* BC */
GPIOSET(MOTOB);
GPIOSET(MOTOC);
DelayNS(i);
GPIOCLR(MOTOB);
GPIOCLR(MOTOC);
/* B */
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOB);
/* AB */
GPIOSET(MOTOA);
GPIOSET(MOTOB);
DelayNS(i);
GPIOCLR(MOTOA);
GPIOCLR(MOTOB);
/* A */
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOA);
/* DA */
GPIOSET(MOTOD);
GPIOSET(MOTOA);
DelayNS(i);
GPIOCLR(MOTOD);
GPIOCLR(MOTOA);
} } void delay(unsigned int m){
unsigned int i,j;
for(i=0;i for(j=0;j<50;j++);} void init(void){ delay(40); //大于40ms的延时程序 IO0SET=PSB;//设置为串行工作方式 delay(1); IO1CLR=RST;//复位 delay(1); IO1SET=RST;//复位置高 delay(10); TransferCom(0x30);//RE=0,G=0,图片显示关 delay(100); TransferCom(0x0C);//D=1,显示开 delay(100); TransferCom(0x01);//清屏 delay(10); TransferCom(0x06);//模式设置,光标从右向左加1位移动 delay(100);} void lcd_mesg(unsigned char *adder1){ unsigned char i; TransferCom(0x80); delay(100); for(i=0;i<32;i++) { TransferData(*adder1); adder1++; } TransferCom(0x90); delay(100); for(i=32;i<64;i++) { TransferData(*adder1); adder1++; } } void SendByte(unsigned char Dbyte){ unsigned char i; for(i=0;i<8;i++) { IO0CLR=E; if((Dbyte&0x80)==0x80)IO0SET=SID; else IO0CLR=SID; Dbyte=Dbyte<<1; IO0SET=E; IO0CLR=E; } } void TransferCom(unsigned char data0){ IO0SET=RS; SendByte(0xf8); // 11111,RW=0,RS=1,0 SendByte(0xf0&data0);//高4位 SendByte(0xf0&data0<<4);//低4位 IO0CLR=RS; } void TransferData(unsigned char data1){ IO0SET=RS; SendByte(0xfa); // 11111,RW=0,RS=1,0 SendByte(0xf0&data1);//高4位 SendByte(0xf0&data1<<4);//低4位 IO0CLR=RS;} void LCD12864_init(void){ IO0DIR|=(E|SID|RS);//设置为输出 IO0CLR=(E|SID|RS); IO1DIR|=RST; IO1CLR=RST; //复位 delay(1); IO1SET=RST; //复位置高 } 高性能的PLC控制步进电机在机器人机械手 摘要:在最近几年,一个完整的多轴数字控制系统已经研制成功。本文 介绍了一个用工业可编程逻辑控制(PLC)来控制五轴转子位置,方向和速度,从而减少电路元件的数量,降低成本和提高可靠性。一些实验结果表明是由控制器的高性能和功能得来的。关键词: PLC,机器人和步进电机。 1、简介 运动控制的主要目的是设计控制系统能实现真正的自动运动机器。这种性能必须达到优化机械,即生产力实现更高的工作速度,尽量减少能源要求,减少了使机械磨损的因素(1)。一个完全数字化的体系来说通过对基于总线控制系统的最大的灵活性应用系统提供高性能的伺服控制是必需的。在大多数情况下,PLC是一种固态装置,设计工作在嘈杂的工业环境并执行所有的逻辑功能,早先就实现了对鼓机电继电器开关,机械定时器和计数器的使用(2)。步进电机,通常用于微型电子计算机,现已广泛应用于机器人(3)。在本文中,我提出了各轴包含一个由plc控制的步进电机的五档速度控制轴机器人。(SLC 150) 2、可编程控制器 PLC,像一台电脑,采用了微处理器芯片进行处理和存储芯片来存储方案。PLC的基本结构如图1所示,输入设备是监控机器或被控制的过程的传感器。这些传感器的状态(ON或OFF)被输送到PLC控制器。取决于这些传感器输入状态的PLC的输出可能切换到活力马达,继电器,阀门等....,来控制机器或过程。SLC150的PLC[2]有10个输入,编号从1到10的,然后再从10数到1的IO当作 IO1的输入。SLCI50有12个输出编号从11至16,和111至116。 3、机器人的描述、图2显示了一个典型的机器人(4)。它由一英寸上有8-32螺纹孔的12英寸至14英寸大小的底板和炮塔——一个周围配备了传送带的旋转平台(它的每一英寸的中心有8-32螺纹孔)。这些孔配合安装在机器人的手臂和手腕马达的相对于其中心的不同地;,炮塔钳,可连接炮塔和炮塔轴;炮塔装载,可连接底板唇,覆盖炮塔马达,和支撑炮塔轴和炮塔。炮塔轴是用来保留炮塔和炮塔内的炮架集合,炮塔轴承(有两个)的 呈递担保装入举行炮塔轴,推力 轴承安装在炮塔的轴上,以适应 机器人的重量,提供平稳和旋转 炮塔,推力垫圈安装在炮塔轴接口的推力轴承的安装和炮塔钳总成(他们是在任的推力轴承一面放置),炮塔齿轮(有二分之一254〜0tha届一,步进电机(五电机),数字编码器,40齿)臂环节,是一个机器人手爪手,提供下巴 位置和动态压缩力信息到控制器。 一、设计摘要 摘要: DSP数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。DSP 芯片是一种特别适合数字信号处理运算的微处理器,主要用来实时、快速地实现各种数字信号处理算法用DSP 芯片实现IIR 数字滤波器,不仅具有精确度高、不受环境影响等优点,而且因DSP 芯片的可编程性,可方便地修改滤波器参数,从而改变滤波器的特性,设计十分灵活。IIR数字滤波器有其独特的优点,IIR数字滤波器单位响应为无限脉冲序列, IIR数字滤波器采用递归型结构,即结构上带有反馈环路。 本课题主要应用MATLAB软件设计IIR数字滤波器,并对所设计的滤波器进行仿真;应用DSP集成开发环境——CCS调试汇编程序。利用MATLAB仿真得到的滤波器系数,编程实现IIR数字滤波器,得出滤波结果波形,并对结果进行分析与总结。 关键字:DSP IIR滤波器 编程 二、设计目的 (1)通过设计对DSP芯片有进一步的了解。(2)掌握IIR滤波器的设计方法。(3)培养一定的汇编及c语言能力。 三、设计原理 3.1 IIR数字滤波器的理论分析 从IIR数字滤波器的实现来看,有直接型、级联型、并联型和格型等基本网络结构。不同的结构形式会有不同的运算误差,其稳定性、运算速度、所占用的存储空间等也有所不同。其中直接Ⅱ型仅需要N级延迟单元,且可作为级联型和并联型结构中的基本单元,是最常用的IIR数字滤波器结构之一。IIR数字滤波器的设计方法有两类[4],一类是借助于模拟滤波器的设计方法设计出模拟滤波器,利用冲激响应不变法或双线性变换法转换成数字滤波器,然后用硬件或软件实现;另一类是直接在频域或时域中进行设计,设计时需要作辅助工具。对系统传递函数为 [3] H(z)bzrr0Nk0Mr 1akzk对应的差分方程为: y(n)brx(nr)aky(nk) r0k1MN的IIR数字波滤器来说,设计的任务就是寻求一种因果关系和物理上可实现的系统传递函数使H(z)满足上述的关系,为此可这样使其频率响应能够满足所希望得到的频域指标。 3.2 TMS320C5502的体系结构 TMS320VC5402处理器在本系列中处于先进水平。它具有运算速度快,内部存储空间大,外部接口性能好等优点。所以我选择了技术上比较先进,价格又较便宜的C5402作为硬件开发对象。下面结合C5402的实际情况,介绍一下该芯片的体系结构。C5402共有144个引脚,其中有20根地址线AO-A19,16根数据线DO-D15,4个外部可屏蔽引脚INTO#-INT3#和一个不可屏蔽中断引脚BIO#,剩下的引脚可以分成以下几类:存储器控制引脚,时钟/晶振引脚,多通道缓冲串口引脚,主机接口通讯引脚,电源引脚,初始化和复位引脚,通用输入/输出引脚,以及用于测试的IEEE1149.1标准JTAG口。 3.3 IIR数字滤波器的设计流程 在设计滤波器时首先要有清晰的思路,因此流程图的设计至关重要。本设计采用的是基于DSP的IIR数字滤波,针对其要完成的功能,对其流程进行了初步规划,如图1所示: 开始系统初始化分配数据空间设置数据指针从指定端口读数据x(n)并从数据存储器读读取系数完成数据的乘加运算修改数据指针为下一次乘加运算做准备保存结果从指定端口输出结果图1 IIR数字滤波器设计流程 根据设计流程,通过DSP仿真软件编译出适合参数要求的汇编程序。运用汇编语言进行程序编写使其具有更好的实时性,此外运用汇编语言编写更有助于以后的设计拓展。 利用TMS320C5402实现IIR的程序中应注意以下几点: (1)数据存放要求。因为采用MAC指令和循环寻址,所以输入数据和滤波器系数的存放要按照一定的要求。数据块和系数块都要放在双寻址数据存储区。(2)循环寻址的使用。为了使用循环寻址,除了对数据的存放有要求外,先还要设置BK为块长N。由于使用了循环寻址,数据和系数的指针在操作后以循环的方式增加1。 (3)数据的初始化。输入数据块要初始化为全0。这样在运算中不会对输入产生影响。 四、IIR数字滤波器的软件和硬件设计 4.1 IIR数字滤波器的数据存储器设计 TMS320C54X定点DSP提供了单周期乘/累加指令MAC和循环寻址方式,使IIR数字滤波器每个样值的计算可以在一个周期内完成。IIR数字滤波器每个样值的计算就是实现两数组对应项乘积的累加和。在计算时有前向通道和反馈通道两部分,因此在计算设计时要充分考虑x(n)、y(n)和h(n)系数的存放位置,并正确初始化这两个存储块指针,这样在计算中才能够准确取数据,实现乘加运算。数据存储器X:AR2X0X1X2AR1COEF:数据存储器B2B1B0A2A1 图2 存储过程 4.2 IIR滤波器的MATLAB辅助设计 对于脉冲响应不变法,它是将s域内的H(s)转换成z域内的H(z),但是在映射时,S域内不能一一对应到Z域内的单位圆上,因此容易在仿真中易产生混叠现象,影响实验效果。基于此,本次设计在MATLAB的仿真中优先考虑应用双线性变换法。 IIR低通数字滤波器根据相关技术指标进行matlab仿真,从而计算出相应的传输函数。其仿真结果结果如图3所示: 图3 利用matlab仿真图 根据以上仿真结果及相应的系数和N值,在相关技术指标不变的情况下,我选用了ChebyshevI型双线性变换法。 4.3基于DSP的IIR数字滤波器的硬件设计 硬件设计总体方案: TI公司的2000系列和5000系列的DSP都通用型的芯片,考虑到2000系列的DSP多用于控制方面,而5000系列较2000系列具有更高的时钟频率、更低的价格和更加强大的运算功能,所以在数字滤波器系统的设计中采用了TI公司的一款高性能、低功耗的定点DSP: TMS320VC5402。该DSP具有较快的运算速度:运算速度最快可达532MIPS;采用了低功耗设计方式:内核电压为1.8V,I/O电压为3.3 V。数字滤波系统的具体方案框图如图6所示: ADCTMS320VC5402FLASHSRAMJTAG时钟电源DAC图4数字滤波器系统方案框图 通常的设计中会采用SV供电并行的ADC(模数转换)和DAC(数模转换)芯 片与DSP连接,传输数据过程中会占用总线的时间,而且需要采用多片电平转换器件将SV电平转换为3.3V的逻辑电平。考虑到TMS320VC5402的片上包含两个McBSP(多通道缓冲串行口)接口,可以将这两个通道模仿实现SPI的时序,因此本设计中采用了SPI接口器件,ADC芯片采用的是TLV 1570,实现将需要滤波信号从模拟转换到数字信号的实时采样。数模转换芯片采用的是TLV 5608,实现滤波后的信号从数字信号恢复为所需要的模拟信号。JTGA口供DSP芯片下载程序调试。 PMST=FFA0H, ST1=2300H,;SWWSR=0, OVM=1,FRCT=1,SXM=1STM #X,AR1STM #Y,AR2 STM #d,AR3;RPT A,#5;初始化d(n),d(n-1),d(n-2)=0 STL A,*AR3+ STM #2,AR0 ;初始化Arn是地址偏移量为常数 INLOOP:STM #d+5,AR3;STM #table,AR4;IIR的系数A2,A1,B2,B1,B0 PORTR 100H,*AR1 ;从端口读入数据 LD *AR1,7,ASTM #N-1,BRC ;计算IIR的节数N RPT ELOOP LOOP:MAC *AR4+,*AR3-,A ;input+d(n-2)*A2 MAC*AR4,*AR3,A-;input+d(n-2)*A2+d(n-1)*A1 MAC*AR4+,*AR3-,A STH A,*AR3+0;d(n)=input+d(n-2)*A2+d(n-1)*A1 MPY *AR4+,*AR3-,A ;d(n-2)*B2 MAC*AR4+,*AR3,A;d(n-2)*B2+d(n-1)*B1 DELAY*AR3-;d(n-2)=d(n-1)MAC*AR4+,*AR3,A;d(n-2)*B2+d(n-1)*B1+d(n)*B0 DELAY*AR3-;d(n-1)=d(n)ELOOP:STHA,*AR2;output=d(n-2)*B2+d(n-1)*B1+d(n)*B0 PORTW *AR2,200h ;将结果写入文件中BINLOOP END 五、仿真分析及结果 5.1 CCS仿真细节 CCS是一个开放的环境,可以通过设置不同的驱动程序完成对不同环境的支持。CCS setup 配置程序就是用来定义DSP芯片和目标板类型的。在第一次使用CCS之前必须首先运行CCS setup 配置程序。在以后的使用中,若想改变CCS应用平台的类型,可以再次运行该配置程序来改变设置。CCS软件集成了TI公司的Simulator和Emulatord 的驱动程序,用户可以直接用TI的仿真器进行开发测试。 5.2 IIR数字滤波的软件调试 在效果图中,上面波形为DSP实验箱产生的滤波前的效果图,下面波形为进行IIR滤波后的效果图。从两图的比较可以看出,所设计的IIR滤波器收到了较好的效果,完成了设计要求。 在编写及调试的过程中主要遇到以下问题: (1)在编写程序的过程中要对所涉及的存储单元进行初始化,这样在数据或是代码段进行汇编时才不会出现问题。 (2)编写程序需要对数据段、代码段、堆栈段进行设置。要编写相应的.cmd(链接命令文件)文档对其进行合理化的分配空间。 (3)在编写程序时一定要编写相应的中断向量表文件,这样在汇编时才不会出错。 5.3 芯片选择 此设计中采用的是C5502 Device Simulator芯片,IIR输入信号入口地址data_in,输出地址为out。 图4 芯片选择 5.4创建项目 图5 创建项目 5.5加载程序 图6 加载程序 5.6程序 (1)IIR.asm.global _iir,_init,_outdata _iir bset frct sub #1,t0 mov t0,mmap(csr)add t0,ar0 mov xar2,xdp mov ar2,cdp mov #0,ac0 rpt csr macmz *ar0-,*cdp+,ac0 add t0,ar1 mov xar3,xdp mov ar3,cdp rpt csr macmz *ar1-,*cdp+,ac0 mar *ar1+ mov hi(ac0),*ar1 mov hi(ac0),t0 bclr frct ret _init sub #1,t0 mov t0,mmap(csr)mov #0,ac0 rpt csr mov ac0,*ar0+ rpt csr mov ac0,*ar1+ ret _outdata mov t1,ac0 sub #2,ac0 mov ac0,mmap(csr)add ac0,ar0 rpt csr delay *ar0-mar *ar0+ mov t0,*ar0 ret 图7 汇编源程序 (2)IIR55.c #include “math.h” #define signal_1_f 500 #define signal_2_f 10000 #define signal_sample_f 25000 #define pi 3.1415926 #define IIRNUMBER_L 2 #define bufer_L 256 int N_L=IIRNUMBER_L;int data_in[bufer_L];int out[bufer_L];int x[IIRNUMBER_L+1];int y[IIRNUMBER_L+1];int k=0;int bufer=bufer_L;int fBn[IIRNUMBER_L]={0,0x634a};int fAn[IIRNUMBER_L]={0xe5c,0xe5c};extern int iir(int *x,int *y,int *fAn,int *fBn,int N_L);extern int init(int *,int *,int);extern int outdata(int *,int,int);void inputwave();void main(){ int iirout;inputwave();init(x,y,N_L);while(1){ x[0]=data_in[k];iirout=iir(x,y,fAn,fBn,N_L);outdata(out,iirout,bufer);k++;if(k>=bufer_L){ k=0;} } } void inputwave(){ float wt1;float wt2;int i;for(i=0;i<=bufer_L;i++){ wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;wt2=wt2/signal_sample_f;data_in[i]=(cos(wt1)+cos(wt2))/2*32768;} } 图8 c程序 (3)Ink.cmd-stack 0x0500-sysstack 0x0500-heap 0x1000-c-u _Reset-l rts55.lib MEMORY { PAGE 0: RAM(RWIX): origin=0x000100,length=0x01ff00 ROM(RIX): origin=0x020100,length=0x01ff00 VECS(RIX): origin=0xffff00,length=0x000200 PAGE 2: IOPORT(RWI):origin=0x000000, length=0x020000 } SECTIONS { .text >ROM PAGE 0 .data >ROM PAGE 0 .bss >RAM PAGE 0 .const >RAM PAGE 0 .sysmem >RAM PAGE 0 .stack >RAM PAGE 0 .cio >RAM PAGE 0 .sysstack >RAM PAGE 0 .switch >RAM PAGE 0 .cinit >RAM PAGE 0 .pinit >RAM PAGE 0 .vectors >VECS PAGE 0 .ioport >IOPORT PAGE 2 } 图9 命令程序 5.7运行结果 图10 运行结果 5.8更改图形参数 图11 更改参数过程 5.9波形图 图12波形图 图13 滤波前时域波形 图14滤波前频域波形 图15 滤波后时域波形 图16 滤波后频域波形 六、心得体会 参考文献 【1】汪春梅,孙洪波TMS320C55x DSP原理及应用.电子工业出版社.2011.6 【2】 戴明桢.TMS320C54xDSP结构、原理及应用[M].北京航空航天大学出版社,2001,8.【3】 胡圣尧.DSP原理及应用[M].东南大学出版社,2008.7.【4】清源科技.TMS320C54xDSP应用程序设计教程[M].机械工业出版社,2004,1.【5】邹彦.DSP原理及应用[M].北京:电子工业出版社,2005,1.第四篇:高性能的PLC控制步进电机在机器人机械手外文翻译
第五篇:太原理工大学DSP课设报告