欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    嵌入式数控系统设计.docx

    • 资源ID:4454000       资源大小:845.66KB        全文页数:30页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式数控系统设计.docx

    1、嵌入式数控系统设计课 程 设 计 课程名称 数字控制系统技术 题目名称 嵌入式数控系统设计学生学院 信息工程学院 专业班级 学 号 学生姓名 指导教师 2014 年 01 月 08 日广东工业大学课程设计任务书嵌入式数控系统设计 以小组(不超过4人)为单位,每个小组完成两个项目设计。也可以独立完成1个项目设计。在12月24日(17周2)以前提交设计报告、项目工程。12月27日前完成答辩。设计报告要标明每位同学负责的具体设计内容。1 开环数控系统(1) 以LPC2000处理器构造数控系统并用Proteus仿真。采用2个4相8拍步进电机分别控制X和Y轴进给。分别用4个GPIO引脚通过软件编程实现环

    2、形分配器功能;(2) 设计人机操作界面(键盘、LCD显示器)。在键盘输入数控程序,实现平面直线和圆弧图形加工。(3) 设计译码程序,把数控程序命令和参数存入内存(数据结构或变量);(4) 按照脉冲当量计算X和Y轴步进电机的坐标脉冲;(5) 采用逐点比较法编写进给插补程序得到X和Y轴的进给脉冲并通过GPIO环形分配器输出,经过信号功率放大后驱动相应步进电机运动。(6) 在LCD显示器显示X和Y轴进给运动图形、速度等。(7) 通过键盘输入辅助操作命令,由GPIO管脚输出给LED指示灯显示。2 闭环数控系统(8) 以LPC2000处理器构造数控系统并用Proteus仿真。采用2个直流伺服电机(带脉冲

    3、编码盘)分别控制X和Y轴进给。分别用2个GPIO引脚通过PWM输出控制直流伺服电机的速度,用2个GPIO输入脉冲编码盘信号检测直流伺服电机的转角和速度。(9) 设计人机操作界面(键盘、LCD显示器)。在键盘输入数控程序,实现平面直线和圆弧图形加工。(10) 设计译码程序,把数控程序命令和参数存入内存(数据结构或变量);(11) 按照脉冲当量计算X和Y轴伺服电机的坐标脉冲;(12) 采用数字增量插补法编写进给插补程序得到每个插补周期X和Y轴的进给PWM输出,经过信号功率放大后驱动相应伺服电机运动。(13) 在LCD显示器显示X和Y轴进给运动图形、速度等。(14) 通过键盘输入辅助操作命令,由GP

    4、IO管脚输出给LED指示灯显示。摘要数控课程设计主要利用LPC2000处理器构成数控系统,可大概由四个部分组成,分别是键盘,电机,LCD12864液晶和串口通信四个部分。其功能是以LPC2000构成的数控系统中,利用模拟人机操作界面键盘,在键盘输入数控程序,实现平面直线和圆弧图形的加工并且通过LCD12864液晶显示出来。通过模拟键盘输入辅助操作命令,八拍的电机转动并在LED指示灯用二进制显示圈数,在LCD12864显示X,Y轴进给运动图形。关键词:LPC2000,键盘扫描,八拍电机,LCD12864显示器一、引言数字控制技术室当今世界制造业中的现代机械系统、机器人、CAD/CAM、FMS和C

    5、IMS等高新技术的基础,数控系统是电子信息技术与传统机床技术相融合的机电一体化产品,是工业装备自动化的重要手段。随着电子技术、计算机技术、传感器技术、信息处理、自动控制等的发展以及它们与工业特别是机械制造业的不断结合应用,数字控制的设备特别是数控机床在生产中的应用越来越普遍,数字控制技术在今天的工业生产中发挥着举足轻重的作用。现代机床数控已经在整个现在制造系统中处于核心的地位,其拥有量已成为衡量一个国家的制造技术水平和工业水平的重要指标。1.1 简介用代表加工顺序、加工方式和加工参数的数字码作为控制指令的数字控制系统,数字程序控制系统简称数控(NC)系统。在数控系统中通常配备专用的电子计算机,

    6、反映加工工艺和操作步骤的加工信息用数字代码预先记录在穿孔带、穿孔卡、磁带或磁盘上。系统在工作时,读数机构依次将代码送入计算机并转换成相应形式的电脉冲,用以控制工作机械按照顺序完成各项加工过程。数控系统的加工精度和加工效率都较高,特别适合于工艺复杂的单件或小批量生产。它广泛用于工具制造、机械加工、汽车制造和造船工业等。1.2 发展早期多采用固定接线的硬线数控系统,用一台专用计算机控制一台设备。后来采用微型计算机代替专用计算机,利用编制不同的程序软件实现不同类型的控制,可增强系统的控制功能和灵活性,称为计算机数控系统 (CNC)或软线数控系统。后来又发展成为用一台计算机直接管理和控制一群数控设备,

    7、称为计算机群控系统或直接数控系统 (DNC)。进一步又发展成为由多台CNC与NC设备和DNC计算机组成的网络,实现多级控制。到了80年代则发展成将一群机床与工件、刀具、夹具和加工自动传输线相配合,由计算机统一管理和控制,构成计算机群控自动线,称为柔性制造系统(FMS)。数控系统的更高阶段是向机械制造工业设计和制造一体化发展,将计算机辅助设计(CAD)与计算机辅助制造(CAM)相结合,实现产品设计与制造过程的完整自动化系统。1.3 组成数控系统由信息载体、数控装置、伺服系统和受控设备组成。信息载体采用纸带、磁带、磁卡或磁盘等,用以存放加工参数、动作顺序、行程和速度等加工信息。数控装置又称插补器,

    8、根据输入的加工信息发出脉冲序列。每一个脉冲代表一个位移增量。插补器实际上是一台功能简单的专用计算机,也可直接采用微型计算机。插补器输出的增量脉冲作用于相应的驱动机械或系统用来控制工作台或刀具的运动。如果采用步进电机作为驱动机械,则数控系统为开环控制。对于精密机床,需要采用闭环控制的方式,以伺服系统为驱动系统。二、主要芯片介绍2.1 LPC2000嵌入式处理器是嵌入式系统硬件最核心的部分,飞利浦推出十余款基于 ARM7 的高性能低功耗LPC2000系列微控制器,来满足不断增长的嵌入式市场需求。LPC2000系列微处理器工作频率为60MHz,采用基于ARMTDMI内核的32位RISC。LPC200

    9、0的外设接口非常丰富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。这一系列微控制器LPC2114/2124/2119/2129/2194、LPC2210/2212/2214、LPC2290 /2292/2294借助片上存储器加载模块实现了“零等待访问”高速闪存功能,提高了指令执行的效率。在高性能低功耗的基础上提供了增强的通信功能和片上代码保护机制。由于内置了宽范围的串行通信接口,它们也非常适用于通信网关、协议转换器、嵌入式软调制解调器等。6通道的PWM更能用于复杂的马达控制应用。 LPC2000系列微控制器能够实现零等待访问的高速闪存,这主要归功于片上的存储器加速模块。图

    10、2为存储器加速模块的结构框图。128位宽度的闪存阵列通过单独的局部总线与处理器接口,每周期可为ARM内核提供四条32位指令。这使得MCU无需经过等待状态就可直接从闪存上执行指令,从而消除了一般闪存读取时的等待时间。为了解决指令序列的变化,指令和数据的不同处理带来的等待时间,模块内部实现了预取缓冲器、避免数据读/写打乱地址序列的数据旁路和跳转跟踪缓冲器三个功能块的联合工作,并用两组128位宽度的存储器来进行并行访问,消除延时。存储器加速模块的作用取决于系统时钟的大小。LPC2000系列片上闪存的访问时间为50nS,对于系统时钟不高于20MHZ的应用,在1个周期内就可将闪存的内容读出,此时没必要使

    11、用存储器加速模块。时钟频率越高,当直接执行闪存中的代码时,系统性能受影响越大,此时使能存储器加速模块,可以得到接近4倍速度的加速,真正实现零等待高速闪存。由于LPC2000可直接从闪存执行指令,无需引导期间将代码传送到SRAM,这不仅省掉了耗时又耗能的系统启动步骤,还节省了昂贵的SRAM。对片内闪存的编程可通过几种方法来实现:通过内置的串行JTAG 接口,通过串口进行在系统编程(ISP),或通过在应用编程(IAP)。LPC2000系列的矢量中断控制器可以支持最多32个中断请求,可根据需要将其编程分为3 类:FIQ、矢量IRQ 和非矢量IRQ。快速中断请求(FIQ)要求具有最高优先级。矢量IRQ

    12、 具有中等优先级。该级别可分配32个请求中的16个。非矢量IRQ 的优先级最低。这种可编程分配机制意味着不同外设的中断优先级可以动态分配并调整。对于任意矢量中断,一旦发出请求,CPU可在一个周期内过读取VIC并跳转到相应的中断服务程序的入口地址,这将中断延时降低到最低。2.2 LCD12864液晶器一、 带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文

    13、人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。二、 基本特性:(1)、低电源电压(VDD:+3.0-+5.5V)(2)、显示分辨率:12864点 (3)、内置汉字字库,提供8192个1616点阵汉字(简繁体可选) (4)、内置 128个168点阵字符 (5)、2MHZ时钟频率 (6)、显示方式:STN、半透、正显 (7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点 (9

    14、)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10 (10)、通讯方式:串行、并口可选 (11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0 - +55 ,存储温度: -20 - +60表2.1 12864液晶管脚号管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, D

    15、B7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)(见注释3)20KVSS背光源负端(见注释3)三、原理分析3.1 LPC2000管脚分析P0.0:用于串口通信;P0.1-P0.11:作为I

    16、/O口输出,控制LED灯显示X电机和Y电机进给步数;P0.12-P0.15:用于控制“X”电机;P0.26-P0.30:用于控制“Y”电机;P0.16:中断,用于判断键盘是否有键按下;P0.18-P0.21:用于连接键盘的L1-L4;P0.22-P0.25:用于连接键盘的R1-R4;P1.16:连接NEXT键(按下后可以开始从键盘输入指令);P1.17:连接“退格键”(指令输错时可用于退格改错);P1.18:连接clear键(用于清除LCD12864的屏幕);P1.19-P1.26:用于连接LCD12864的数据总线;P1.27-P1.31:分别用于连接LCD12864的E,RW,RS,CS2

    17、和CS1端口;3.2 步进电机原理分析数控机床的开环伺服系统采用功率步进电动机作为执行元件,实现进给运动。本次课程设计使用的是4相8拍控制方式的步进电机,其通电顺序为:AABBBCCCDDDAA,步进电机每驱动电路每接受一个指令脉冲,就控制步进电机转过一个固定的角度,所以只要控制指令脉冲的数量即可控制工作台移动的位移量,而控制指令脉冲的频率即可控制工作台移动的速度。3.3 插补原理分析本次课程设计使用逐点比较法进行插补,以直线插补为例,在得到起始坐标X1、Y1和终点坐标X2、Y2后,首先进行偏差判别,即判别当前运动点偏离理论曲线的位置,从而确定进给坐标以及进给进给方向,以逼近理论曲线;然后用新

    18、位置重新进行偏差判别,直到完成整个插补工作。其中每走一步都要查询一次,若到达终点,就立即停止插补。同理可得到圆弧插补的方式。3.4 键盘扫描原理分析本次课程设计使用的是44键盘,每个按键都设定为高电平,当有按键按下时,则该按键变为低电平,通过键盘扫描方式,即首先确定该按键的所在行,然后确定按键的所在列,便可确定按键的位置,然后通过串口发送到芯片,芯片通过虚拟显示器显示相应值,以方便检查,从而实现键盘输入。3.5 液晶显示原理分析本次课程设计所使用的液晶显示器为12864液晶显示器,整个屏幕分左、右两个屏,每个半屏右8页,每页有8行,注意数据是竖行排列。显示一个字要16*16点,全屏有128*6

    19、4个点,故可显示32个中文汉字。每两页显示一行汉字,可显示4行汉字,每行8个汉字,共32个汉字。而显示数据需要16*8个点,可显示数据是汉字的两倍。屏幕是通过CS1、CS2两信号来控制的,不同的组合方式所选的屏幕是不同的。在设定完开始页地址、列地址和读写模式后,再结合单片机的指令系统,就能通过编写C语言程序来达到混合显示汉字与数字的目的。通过程序将字的代码写入相应的DDRAM地址,就可以再相应的位置显示相应的字。3.5 二极管显示原理分析本次课程设计通过发光二极管来显示X和Y步进电机所完成的步数,其中X和Y步进电机各用5个发光二极管来完成,每一个二极管代表一个二进制数字,最后通过观察全部二极管

    20、的发光情况,我们就可以换算出X和Y步进电机都完成的步数。四、protues仿真4.1键盘扫描如图4.1,在通过键盘输入,我们可以通过VIRTUAL显示器来检查输入的正确性。图4.1 VIRTUAL显示器和键盘扫描4.2 步进电机当有键盘按下后,步进电机开始工作,转动的圈数差补总步数除以8来决定。图4.2 八拍步进电机部分仿真电路4.3串口通信当有按键按下后,信息会通过串口通信会把信息发送到芯片当中。图4.3 串口通信仿真电路4.4 LCD显示运行程序,我们可以在LCD屏幕上看到我的信息。其中这些字的信息是利用“液晶字模软件zimo221”软件进行字模的C51信息转换,放进程序就可以显示出来了。

    21、图4.4 LCD显示仿真电路4.5 LED显示在步进电机完成工作后,我们可以通过LED显示的二进制码,推算出X步进电机和Y步进电机各走的步数(二进制码*八)。图4.5 LED显示仿真电路4.6 电路系统各个部分协调工作,形成一个完整的电路系统。图4.6 电路系统仿真五、各部分程序5.1键盘扫描程序#includebutton.huint8 real_row,real_key,key_flag,i,key_null;uint8 number20= , , , , , , , , , , , , , , , , , , , ,;uint8 button_number16=49,50,51,F,52

    22、,53,54,X,55,56,57,Y,32,48,O,G;void key_irq() _irq;key_init() PINSEL1 &=(0x30); PINSEL1 |=(0x010); EXTMODE |=(10); VICVectCntl0 = 0x2E; VICVectAddr0 = (unsigned)key_irq; VICIntEnable = 0x6000; uint8 row_scan() IO0CLR=0x0F22; IO0SET=0X0E18)&0x0F; if(0x0f!=key_null) while(0x0f!=key_null) key_null= (IO0

    23、PIN18)&0x0F; return 0; IO0CLR=0x0F22; IO0SET=0X0D18)&0x0F; if(0x0f!=key_null) while(0x0f!=key_null) key_null= (IO0PIN18)&0x0F; return 1; IO0CLR=0x0F22; IO0SET=0X0B18)&0x0F; if(0x0f!=key_null) while(0x0f!=key_null) key_null= (IO0PIN18)&0x0F; return 2; IO0CLR=0x0F22; IO0SET=0X0718)&0x0F; if(0x0f!=key_

    24、null) while(0x0f!=key_null) key_null= (IO0PIN18)&0x0F; return 3; uint8 key_scan() if(0x0e=key_null) real_row=row_scan(); return real_row; if(0x0d=key_null) real_row=row_scan(); return (real_row+4); if(0x0b=key_null) real_row=row_scan(); return (real_row+8); if(0x07=key_null) real_row=row_scan(); ret

    25、urn (real_row+12); void key_irq() _irq /UART0_SendByte(8); key_flag=1; EXTINT =0x01; VICVectAddr = 0x00000000; 5.2 LCD显示程序void delay(uint32 i) while(-i);void IO_set() IO1DIR |=0xf819); while(temp&0x80) temp = IO1PIN; temp &=LCD_DATA; temp =(temp19); IO1CLR = EN; uint8 read_data()uint32 temp; delay(2

    26、); IO1SET = RS; IO1SET = RW; IO1SET = EN; IO1CLR = EN; IO1SET = EN; delay(1); temp = IO1PIN; temp &=LCD_DATA; temp =(temp19); IO1CLR = EN; return (uint8)temp;void write_LCD_command(uint8 value) delay(10); IO1DIR |=LCD_DATA; IO1CLR = RS; IO1CLR = RW; IO1CLR = LCD_DATA; IO1SET = value19; IO1SET = EN;

    27、delay(2); IO1CLR = EN; IO1DIR &=LCD_DATA;void write_LCD_data(uint8 value) delay(10); IO1DIR |=LCD_DATA; IO1SET = RS; IO1CLR = RW; IO1CLR = LCD_DATA; IO1SET = value19; IO1SET = EN; delay(2); IO1CLR = EN; IO1DIR &=LCD_DATA; void set_page(uint8 page) page =0xb8|page; write_LCD_command(page);void set_li

    28、ne(uint8 startline) startline = 0xC0|startline; write_LCD_command(startline);void set_column(uint8 column) column = column&0x3f; column = 0x40|column; write_LCD_command(column);void set_on_off(uint8 onoff) onoff =0x3e|onoff; write_LCD_command(onoff);void selectscreen(uint8 screen) switch(screen) case 0: IO1CLR = CS1; IO1CLR = CS2; break; case 1: IO1CLR = CS1; IO1SET =


    注意事项

    本文(嵌入式数控系统设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开