单片机应用系统的设计实例.ppt_第1页
单片机应用系统的设计实例.ppt_第2页
单片机应用系统的设计实例.ppt_第3页
单片机应用系统的设计实例.ppt_第4页
单片机应用系统的设计实例.ppt_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.1 基于AT89C52控制的磁悬浮球演示系统 9.2 基于PIC16C54的光栅式定位系统 9.3 基于LPC2212的三关节机器人控制系统,第9章 单片机应用系统设计实例,9.1.1 组成及工作原理 9.1.2 电路设计 9.1.3 程序设计,9.1 基于AT89C52控制的磁悬浮球演示系统,9.1 基于AT89C52控制的磁悬浮球演示系统,磁悬浮球演示系统是一个典型的嵌入式数字控制系统,由电磁铁、铁磁性小球及控制部分组成,其电磁铁通电后产生磁场,吸引铁磁性小球,动态调节电磁铁中的电流,可使其产生的电磁吸力等于小球的重量,从而使小球悬浮在空中保持不动。这个动态调节的过程称为磁悬浮控制。本例进行磁悬浮球演示系统的设计,首先介绍系统组成以及磁悬浮控制的基本原理,然后详细介绍以AT89C52单片机为核心的电路设计和程序设计,最后给出完整的汇编语言程序清单供读者参考。该磁悬浮球演示系统的结构见下图。,9.1 基于AT89C52控制的磁悬浮球演示系统,磁悬浮球演示系统的照片,9.1.1 磁悬浮球演示系统的组成与工作原理,磁悬浮球演示系统主要由电磁铁、铁磁性小球、间隙传感器、单片机控制器及功率放大器组成。电磁铁安装在悬浮支架顶部,通电后对小球产生竖直向上的电磁吸力。间隙传感器安装在悬浮支架底部,它是一种基于涡流检测原理的非接触测量器件,能将小球与传感器探头表面之间的距离转换为电压信号,再经过A/D转换成数字信号。单片机控制器根据输入的间隙传感器信号,按照特定的控制算法,比如PID算法,计算出维持小球稳定悬浮所需的控制电流。该控制电流以PWM信号的形式传递给功率放大器。功率放大器对控制电流进行功率放大,给电磁铁提供对应大小的电流。这是一个闭环控制的过程,如果控制适当,就可使小球稳定地悬浮在期望位置。,9.1.1 组成及工作原理:系统组成,磁悬浮球演示系统的组成,9.1.1 组成及工作原理:悬浮控制原理,根据牛顿第二定律,在竖直方向上,小球的动力学方程为:,根据电磁学理论可知,系统的电力学方程近似为:,其中 为小球质量, 为悬浮间隙, 为重力加速度, 为电磁吸力, 电磁铁的平均电流, 是与系统结构有关的参数。,9.1.1 组成及工作原理:悬浮控制原理,设额定悬浮间隙为 ,额定电磁铁平均电流为 ,将上述模型在 线性化后,可得到系统的传递函数为:,其中, , , , , 为拉普拉斯算子。,根据控制理论的稳定性条件进行分析,该系统不稳定,必须通过适当的闭环控制才能使之达到稳定。,9.1.1 组成及工作原理:悬浮控制原理,常用的控制方法是比例-积分-微分控制,简称PID控制,其表达式为:,其中 为控制电压, 为电磁铁线圈的电阻,简单起见,忽略线圈电感。其中 、 和 分别是比例、微分和积分系数,又称为控制器参数,选取得当即可实现小球的稳定悬浮。通常,这些参数应在编程之前计算出来,而在编写程序时,它们都是常数。,9.1.2 磁悬浮球演示系统的电路设计,磁悬浮球演示系统的电路由单片机控制电路、A/D转换器及功率放大电路等三部分组成。其单片机控制电路和A/D转换器电路如下图所示。,9.1.2 磁悬浮球演示系统的电路设计,控制电路基于AT89C52单片机设计,包括单片机基本电路和控制器参数在线选择电路两个部分。 (1) 单片机基本电路 单片机基本电路包括AT89C52单片机、时钟电路、复位电路以及单片机电源等。时钟电路由16MHz晶体振荡器和20pF电容组成,复位电路采用集成看门狗芯片MA813L实现,单片机的工作电源由LM7805产生。,9.1.2 电路设计:控制电路,(2) 控制器参数在线选择电路 为便于在线调试,可将事先设计好的多组PID控制参数存储在单片机的片上程序存储器中,通过拨动拨码开关来选择不同的参数。为此,在单片机的P1口上,扩展了8位拨码开关。工作时,单片机不断读取P1口的状态数据,并据此查表以获得对应的控制器参数。,9.1.2 电路设计:控制电路,接口电路实现AT89C52和ADC0809之间的连接。 (1) A/D转换器 A/D转换器的功能是将模拟的电压信号转换成数字量。控制系统对A/D转换器的转换速度和转换精度有要求。在转换速度方面,一般要求在1个控制周期内至少完成一轮采样,本系统的控制周期为1ms,考虑到控制算法的时间开销,要求ADC的转换速度不小于10kSPS;在转换精度方面,虽然高精度对控制有利,但是这会增加成本和算法复杂性,因此应本着够用原则进行选型。本系统采用最常用的ADC0809,它是8通道8位逐次逼近型ADC,最大转换速率为10kSPS,输入电压范围0+5V。,9.1.2 电路设计:接口电路,(2) A/D转换器与单片机的接口关系 AT89C52通过与ADC0809的接口电路来控制A/D转换器的启动并读取转换结果。该接口电路主要包括数据总线和控制总线接口,其中数据总线有8位,将ADC0809的D0D7管脚与AT89C52的P0.0P0.7口对应相接即可;控制总线包括A/D转换器的片选线、数据输出使能线、启动信号及转换结束信号。此外,ADC0809的工作时钟由单片机的ALE脚提供。,9.1.2 电路设计:接口电路,(3) 启动A/D转换及读取转换结果 由电路连接图可知,单片机的#CS(P2.7口)、#WR、#RD与A/D转换器的控制总线START、ENABLE的逻辑关系为: START = /(#CS + #WR) ENABLE = /(#CS + #RD) 不妨取ADC0809的片选地址为0x7FFF,这样,当单片机向0x7FFF地址进行一次写操作时(写的内容不限),即启动一次A/D转换。当单片机向0x7FFF地址进行一次读操作时,就可以从数据总线读取8位A/D转换结果。,9.1.2 电路设计:接口电路,PWM功放电路通过控制电磁铁线圈的电流来调整电磁铁对小球的吸力。本系统采用单管PWM功放电路,并选用MOSFET作为主功率管,它具有电路简单、效率高等优点。PWM型功率放大器的关键是驱动与吸收保护电路设计,其中驱动电路要确保主功率管能够快速而可靠地导通或关断,吸收保护电路的功能是吸收功率管开关瞬时的能量。驱动与吸收保护电路的电路见下图所示。,9.1.2 电路设计:驱动与吸收保护电路,9.1.2 电路设计:驱动与吸收保护电路,PWM驱动与保护电路,(1) 驱动电路 驱动电路中,驱动电压过小,功率管无法导通或导通不充分;驱动电压过大,功率管的GS极容易被击穿。栅极电阻过小,栅极的冲击电流大,容易损坏功率管;栅极电阻过大,功率管的开关速度慢且开关损耗大。因此,功率管的驱动电压和栅极电阻的选择至关重要。 本设计采用基于TLP250的集成驱动电路。TLP250的内置光耦的隔离电压达2500V,上升和下降时间均小于0.5us,输出电流为0.5A,可直接驱动1200V/50A以内的IGBT或MOSFET。上图中R11和D2组成电压偏置电路,使得MOSFET的源极电位约等于0.7V。注意到,TLP250采用单+15V供电,因此功率管GS极上导通电压14.3V,关断电压为-0.7V。关断负压的设计可以使得功率管可靠地截止。此外,栅极驱动电阻取为20。,9.1.2 电路设计:驱动与吸收保护电路,(1) 续流和吸收保护电路 电磁铁是感性元件,为此应使用快恢型二极管D1为电感L提供续流回路,以防止MOSFET关断时漏极电位急剧上升而损坏功率管。图中,R、C、D组成的吸收网络能够吸收MOSFET在开关时刻的电压和电流尖峰。其中,C用于限制MOSFET的漏极-源极间电压突变,R用于限制MOSFET开通时C的放电电流,D则便于在MOSFET关断时,C能迅速吸收MOSFET上的关断尖峰。,9.1.2 电路设计:驱动与吸收保护电路,1. 控制程序总体设计 (1)程序总体结构 单片机上电后,首先执行初始化程序,然后启动定时器并进入主循环,等待定时中断。在主循环内,单片机反复从P1口读取用户指令,修改控制器参数Ka、Kv、Kp和Ki。 本系统使用AT89C52的所有3个定时中断。其中,T0和T1中断配合产生一路PWM信号;而T2则用于产生控制中断,并在T2中断服务程序中执行悬浮控制算法,主程序和T2中断服务程序的流程见下图所示。,9.1.3 磁悬浮球演示系统的控制程序设计,9.1.3 控制程序:总体设计,主程序流程,T2中断服务程序流程,(2)程序用变量说明,9.1.3 控制程序:总体设计,(2)程序用变量说明(续),9.1.3 控制程序:总体设计,9.1.3 控制程序:功能模块设计,磁悬浮球演示系统的控制程序采用模块化设计,包括:初始化模块、A/D采样模块、PID参数选择模块、PID算法模块,以及PWM信号产生模块。其中,初始化模块和PID参数选择模块在主程序中执行,A/D采样模块和PID算法模块在T2定时中断服务程序中执行,PWM信号产生模块在T0和T1中断服务程序中执行。这些模块的逻辑关系见下图所示。,9.1.3 控制程序:功能模块设计,悬浮控制程序功能模块的逻辑关系图,9.1.3 控制程序:功能模块设计,(1)初始化模块 初始化模块包括堆栈及中断初始化、定时器初始化以及变量初始化。在堆栈及中断初始化中,关键是对中断控制字的配置,包括: MOV SP, #7FH MOV IE, #00101010B MOV IP, #00001010B 本例将单片机内部数据存储器的80H0FFH单元作为堆栈,因此,堆栈指针被初始化为7FH。对IE的配置表示允许T0、T1、T2中断。对IP的配置表示定义T0、T1为高优先级中断,T2为低优先级中断。,9.1.3 控制程序:功能模块设计,程序共使用三个定时器。其中,T0和T1配合产生一路PWM波,T0决定PWM波的频率,设计值为20KHz,T1决定PWM波的占空比;T2用于产生定时中断,并决定控制周期,设计值为1ms。已知单片机外部晶振频率为16MHz,根据第4章介绍的定时器配置方法可得:T0工作在8位自动重装方式,定时周期寄存器初值为0C0H,对应的定时周期为48s,因此实际产生的PWM波频率为20.833KHz;T1也工作在8位自动重装方式,其定时周期寄存器值在每个控制周期被更新为控制输出量,初始值为0FFH;T2工作在16位自动重装方式,定时周期寄存器初值为0FACBH,对应定时周期为999.75s,因此实际采样频率约为1KHz。,9.1.3 控制程序:功能模块设计,(2)PID参数选择模块 本例事先准备了多组PID参数,存储在单片机的片上程序存储器中,通过拨动扩展在P1口上的拨码开关,可以选择不同的参数。其中,P1.1和P1.0对应比例增益参数;P1.3和P1.2选择速度增益参数;P1.5和P1.4选择加速度增益参数;P1.7和P1.6选择积分增益参数;每种参数根据不同组合,分别有4个选择。,9.1.3 控制程序:功能模块设计,PID参数选择模块的具体实现方法是,在程序中通过读取P1口状态,得到用户指令码,并以此为偏移地址到相应的控制参数表中查找,就能得到用户期望的参数。例如,选取比例增益系数的程序为: MOV A,P1 ; 根据P1最低2位的状态,从GAIN_P的 ANL A,#03H ; 增益表中选取相应的数据 MOV DPTR,#TB_GP MOVC A,A+DPTR MOV GAIN_P,A,9.1.3 控制程序:功能模块设计,(3)A/D采样模块 A/D采样模块的主要功能是启动A/D转换和读取A/D转换结果。常用的读取A/D结果的方法有中断法和查询法。本系统采用了一种更为简单、高效、可靠的方法。具体是,在每个控制周期中,首先读取上一次A/D转换的结果,然后立即启动本次A/D转换。由于控制周期总大于A/D转换时间,因此在下个控制周期来临时,A/D转换已经结束,又可以直接读取结果。该方法既不占用单片机的外部中断,也不会因查询等待而耗费CPU时间,而且程序不会发生中断嵌套或死循环。即使A/D转换偶尔发生故障,只要以后能重新开始转换,系统也能继续工作下去,故系统的可用性较高。,9.1.3 控制程序:功能模块设计,前面指出,当单片机向0x7FFF地址进行一次写操作时,就能启动一次A/D转换,当单片机从0x7FFF地址读取数据时,读到的是8位的A/D转换结果。因此,启动转换的程序为: MOV DPH, #7FH MOVX DPTR, A 读取A/D转换结果的程序为: MOV DPH, #7FH MOVX A, DPTR,9.1.3 控制程序:功能模块设计,(4)PID算法模块 前面已经指出,磁悬浮球演示系统是开环不稳定系统,需要施加适当的反馈控制才能使系统稳定。PID是工业控制中应用最为广泛的控制方法,特别是数字PID算法具有实现简单、参数整定容易以及系统鲁棒性好等优点。因此,本系统就采用数字PID控制算法。 本实例中,PID算法是在T2中断服务程序中执行的。控制器先根据A/D采样结果NEW_P算出间隙变化量DELT_P、间隙变化量的积分NEW_I、微分(速度信号)NEW_V和二重微分(加速度信号)NEW_A,再以此为PID算法的输入,最后计算出控制输出量CTRL。,9.1.3 控制程序:功能模块设计,算法的具体流程为: 计算间隙变化量DELT_P NEW_P-P0 依次计算NEW_I,NEW_V和NEW_A 计算KP_P GAIN_P DELT_P 计算KI_I GAIN_I NEW_I 计算KV_V GAIN_V NEW_V 计算KA_A GAIN_A NEW_A 计算控制输出量 CTRL PWM_Z KI_I KP_P KV_V KA_A 更新OLD_P,OLD_V,OLD_A,OLD_I 其中,PWM_Z是直流零位。,9.1.3 控制程序:功能模块设计,(5)PWM信号产生模块 本实例采用定时器T0和T1产生一路PWM波。PWM波的频率由T0决定,PWM波的占空比由T1控制,因此。具体的控制方法如下: T0的定时周期为常数,其中断服务程序完成以下功能: PWM波的输出脚置为低电平。 启动T1计数。 中断返回。 T1的定时周期等于控制量,其中断服务程序完成以下功能: PWM波的输出脚置为高电平。 停止T1计数。 中断返回。,9.2.1 组成及工作原理 9.2.2 电路设计 9.2.3 程序设计,9.2 基于PIC16C54的光栅式定位系统,9.2 基于PIC16C54的光栅式定位系统,单片机在智能检测领域应用十分广泛,其内部集成的I/O、A/D、SCI等接口,以及强大的信号处理功能及小型体积,大大简化了检测系统的硬件结构,提高了性价比。本节以基于PIC16C54的光栅式定位系统为例,介绍单片机在智能检测领域的应用。 定位系统是轨道车辆运行控制系统的重要组成部分,国内外均已进行了大量研究,常见的轨道车辆定位方法有微波定位、接近传感器定位、交叉感应回线定位等。本节介绍一种基于PIC16C54单片机的光栅式定位系统,给出系统的组成及基本工作原理,分析其定位和判向的方法;并给出系统的软硬件设计;最后给出完整的程序清单,以供参考。,9.2.1 光栅式定位系统的组成及工作原理,光栅式定位系统由齿槽板和光电检测器两部分组成,齿槽板沿轨道安装,光电检测器安装在车辆底部。在光电检测器中,正对安装有红外发射管和接收管,简称红外对管,当它们相对齿槽板移动时,会出现挡光或透光两种情况,红外接收管就会对应输出高电平或低电平,根据形成的脉冲,就可以判断车辆的相对移动,从而实现定位功能。所述的光栅式定位系统的组成结构见下图所示。,9.2.1 组成及工作原理:系统组成,定位测速系统组成示意图,9.2.1 组成及工作原理:工作原理,光电检测器是光栅式定位系统的核心部件,由PIC16C54单片机、4对红外对管及辅助电路组成。齿槽板的齿宽和槽宽均为40毫米,红外管之间间隔50毫米。车辆移动时,4对红外管所产生的定位脉冲形状基本相同,相位不同。分析表明,车辆相对轨道每运行10毫米,这4对红外管的输出电平有且仅有一个发生变化,且其变化顺序与车辆的行驶方向相对应,利用PIC16C54单片机来处理这些脉冲,就可以判断车辆移动的距离及方向,定位精度为10毫米。车辆沿正向经过齿槽板的情形见下图所示。,9.2.1 组成及工作原理:工作原理,车辆沿正向经过齿槽板,根据上图定义的车辆行驶的正方向。车辆沿正向/反向行驶时,4对红外管A、B、C、D的输出信号分别见下图所示。,9.2.1 组成及工作原理:定位及判向原理,正向运动对应的时间波形图,9.2.1 组成及工作原理:定位及判向原理,反向运动对应的时间波形图,9.2.1 组成及工作原理:定位及判向原理,上述车辆正反向运行时的时间波形可以转换为下图的状态转换图,从中可以看出,4对红外管输出的状态只有8种,若知道当前状态,下一状态只有2种选择,根据出现的新状态,可以判断出车辆行驶的距离和方向。,车辆行驶时的状态转换图,9.2.1 组成及工作原理:定位及判向原理,光电检测器的输出信号包括定位脉冲信号WV,以及两位方向信号D2和D1。红外管的状态组合每变化一次,WV就翻转一次。D2和D1与方向的对应关系下表所示。,D2D1与车辆行驶状态对应关系,9.2.2 光栅式定位系统的电路设计,光电检测器的电路设计,9.2.2 光栅式定位系统的电路设计,在光电检测器的电路图中,红外接收管接收到红外信号时,它正向导通,A点电压变低,经LM393比较和放大后,输出低电平;当红外接收管接收接收不到红外信号时,红外接收管反向截止,LM393输出高电平。LM393的输出信号是状态转换图中的一个状态位,它连接到PIC16C54单片机的引脚RB0。类似地,其它3路红外接收单元的信号分别连接到PIC16C54单片机的引脚RB1RB3。引脚RB5RB7作为输出口,输出2个方向信号D1和D2,及1个定位脉冲信号WV。引脚RA2定义为输出,用于指示工作状态 。,9.2.3 光栅式定位系统程序设计:总体设计,(1)程序总结构 PIC16C54不断扫描4路输入状态,一旦状态组合发生变化,则使输出波形WV翻转一次;同时,程序根据当前状态与上一状态在状态循环表中的位置关系,判断出车辆的行驶方向;如果某一状态持续超过一定时间,则认为车辆停在轨道上;如果输入状态不在状态循环表中,则认为无车。因此,车辆的运行有“正向”、“反向”、“停车”、“无车”四种情况。,9.2.3 程序设计:总体设计,(2)程序用变量说明,9.2.3 程序设计:总体设计,(2)程序用变量说明(续),9.2.3 程序设计:功能模块设计,(1)主程序设计,9.2.3 程序设计:功能模块设计,(2)读取PS模块,9.2.3 程序设计:功能模块设计,(3)方向处理(I)模块,9.2.3 程序设计:功能模块设计,(4)方向处理(II)模块,9.2.3 程序设计:功能模块设计,(4)方向处理(II)模块 方向处理(II)完成PS与HS相等情况下车辆行驶状态的判断。常数S1是停车预设值,根据PS值,以及计数器SK与S1的大小关系,可以判断出“无车”和“停车”两种情况。此外,若当前状态持续时间没有超过预设值S1,则输出保持不变。,9.2.3 程序设计:功能模块设计,(5)SK溢出处理模块,9.3 基于LPC2212的三关节机器人控制系统,9.3.1 三关节机器人控制系统的结构与功能 9.3.2 三关节机器人控制系统的硬件电路设计 9.3.3 三关节机器人控制系统的软件设计,9.3.1 三关节机器人控制系统的结构与功能,图9.18是某嵌入式三关节机器人控制系统的结构框图。其中: 嵌入式控制器采用ARM处理器LPC2212; USB和RS-232作为嵌入式控制器与上位PC机的通信接口; 键盘和LCD显示器为人机交互设备,分别用于输入和显示信息、命令等; SST39VF160和IS61LV25616AL分别为扩展的NORFlash芯片和SRAM芯片,用于存储程序和数据;(本来LPC2212片内已集成有256kB的高速Flash存储器和16KB的SRAM,对一般简单三关节机器人控制系统来说,应是足够的,但考虑到本系统应能适应不同的需要,具有一定通用性,所以还是扩展了存储器。),9.3.1 三关节机器人控制系统的结构与功能,图9.18 嵌入式三关节机器人控制系统的结构框图,9.3.1 三关节机器人控制系统的结构与功能, 伺服驱动单元13用于驱动机器人的三个关节电机,每个单元中包括一个由光电隔离器加差分电路组成的电机控制输出通道和一个由差分电路加CPLD组成的电机信号反馈输入通道。 JTAG接口及仿真器用作系统调试。 系统的通用输入/输出将直接由LPC2212的引脚10经光电隔离引出。 图中各芯片及模块采用5V电压输出的开关电源直接或经低压差电源芯片处理后供电。,9.3.1 三关节机器人控制系统的结构与功能,该机器人控制器实际上不仅适用于三关节机器人控制,也适用于对数控机床和产业机械等其他具有多轴控制与联动、开关量1/O和过程检测与控制等需要的场合,可以说是一个通用三轴运动控制器。其基本功能如下: 系统可以控制三关节(运动轴)联动,每路伺服驱动电路均为脉冲量输出,可控制全数字交流伺服电机和步进电机等。 系统具有正交编码脉冲的捕获能力。正交编码脉冲是两个频率相同正交(相差90O)的方波。当它由电机轴上的光电编码器产生时,电机的旋转方向可通过检测两个方波序列中的哪一列先到达来确定,角位置和转速可由方波频率来决定。用A、 B相代表正交的两列脉冲,Z相每转产生一个脉冲。,9.3.1 三关节机器人控制系统的结构与功能, 每个关节(运动轴)均有原点信号、限位信号LIMIT+及LIMIT-输入,以及驱动报警信号、驱动使能信号和驱动复位信号输出等。 系统具有嵌入式USB主机功能,能够经通用串行总线(USB)读取PC机下载到U盘的数据文件,从而实现与PC机的通信。 系统全部I/O引脚都可编程为输出或输入。 系统可执行三关节(三轴)直线和两关节(两轴)圆弧插补运动,具有位置闭环和误差补偿功能。,9.3.2 三关节机器人控制系统的硬件电路设计,主要包括嵌入式控制器的存储器扩展电路、键盘/显示电路、伺服驱动单元电路、特殊功能I/O电路和必要的辅助性电路等硬件电路设计。 1存储器扩展电路 存储单元的扩展包括程序存储器和数据存储器的扩展。综合考虑性能和成本、功耗等因素,本系统按16位存储器进行扩展。, 程序存储器的扩展 本系统外扩了1片2MB容量的Flash芯片SST39VF160。由于LPC2212外部的4个存储器组中BankO可用于初始引导,故将BankO片选信号CS0连接到ST39VF160芯片使能信号CE#端,其地址空间为0x80000000HOx801FFFFFH。,9.3.1 三关节机器人控制系统的结构与功能,图9.19 FLASH芯片SST39VF160与LPC2212的连接,到SST39VF160的信号WE#;OE端连到SST39VF160的信号CAE;低16位数据线DATA00:15对应连到SST39VF160的数据线DQ0DQ15;地址线ADDS01:20对应连到SST39VF160的地址线A0A19。,9.3.2 三关节机器人控制系统的硬件电路设计, 数据存储器的扩展 系统外扩了一片512KB的高速16位SRAM芯片IS61LV25616AL。系统分配给它的地址空间为0x81000000H0x8107FFFFH。LPC2212与它的连接如图9.20所示,即:LPC2212的WE端连到IS61LV25616AL的信号/WE;CS1端连到IS61LV25616AL的信号/CE;OE端连到IS61LV25616AL的信号/OE;BLS1连到IS61LV25616AL的信号/UB;BLSO连到IS61LV25616AL的信号/LB;低数据线DATA00:15对应连到到IS61LV25616AL的数据线IO0IO15;地址线ADDR01:18对应连到IS61LV25616AL的地址线A0A18。,9.3.2 三关节机器人控制系统的硬件电路设计,图9.20 SRAM芯片IS61LV25616AL与LPC2212的连接,9.3.2 三关节机器人控制系统的硬件电路设计,2. 键盘显示电路 键盘电路 本系统键盘由12个独立式按键组成,它们分别是以下功能键: “暂停”键:按下此键,暂停运动。 “开始”键:暂停后按下此键,继续运动。 “复位”键:运动或自检过程中产生异常现象时,按下此键终止一切运动。 “向前”键:按下此键,执行部件沿X轴正向运动. “向后”键:按下此键,执行部件沿X轴负向运动。 “向左”键:按下此键,执行部件沿Y轴负向运动。 “向右”键:按下此键,执行部件沿Y轴正向运动。,9.3.2 三关节机器人控制系统的硬件电路设计,“向上”键:按下此键,执行部件沿Z轴正向运动。 “向下”键:按下此键,执行部件沿Z轴负向运动。 “回零”键:按下此键,3个运动轴均回到坐标原点. “确认”键:在运动的原点确定后,“开始”键按下后,按下此键进行执行部件的轨迹运动;“暂停”键按下后,按下此键将退出轨迹运动,返回原点。 “参数设定”键:系统上电初始化后,按下此键,系统初始参数将显示在LCD上,然后通过“向前”和“向后”键确定所选参数;用“向上”和“向下”键调整所选参数值,用“参数设定”键确定所选参数值。系统执行运动指令后,参数调整无效,相应的按键在该功能无效。,9.3.2 三关节机器人控制系统的硬件电路设计, LCD显示电路 本系统采用一款具有240128点阵的图形液晶显示模块RT240128A作为LCD显示器。它集控制器、驱动器、显示存储器和液晶显示屏于一体,能方便地与各种微处理器接口,不仅可显示一般简单字符,还可显示汉字、图形和曲线等,可方便地提供汉字菜单方式的人机界面。 RT240128A所需的负电源利用输入的十5V电源产生,这样,它的对外接口仅是一根22芯扁平电缆。LPC2212与RT240128A的接口电路如图9.21所示。其中,RT240128A的RESET由LPC2212的通用输出引脚P3.22控制;CE信号由LPC2212外部的存储器组BANK3的片选信号CS3与地址线A21译码产生,当CS3和A21位低电平时,使液晶模块的片选,9.3.2 三关节机器人控制系统的硬件电路设计,信号LCDCS有效;C/D信号由LPC2212的地址线AO提供,A0=1为指令口地址(地址为0x8300 0001H ), AO=O为数据口地址(地址为0x8300 0000H); Vout是RT240128A的负电源输出电压,经电阻R21、 R22分压输入到V0提供LCD驱动电压;LED十和LED一是液晶的背光灯电源;考虑液晶模块为5V供电系统,LPC2212的1/O口供电电源为3.3V,尽管可承受5V电压,但为保险起见,在液晶模块与LPC2212的所有接口线中均串接一个阻值为470的小电阻,起保护缓冲作用。,9.3.2 三关节机器人控制系统的硬件电路设计,图9.21 液晶显示模块RT240128A与LPC2212的接口电路,9.3.2 三关节机器人控制系统的硬件电路设计,3. 伺服驱动单元电路 包括位置反馈输入电路和驱动脉冲输出电路。 位置反馈输入电路 在机器人和机床等运动控制系统中,大量采用光电编码器作位移/角度/角速度检测元件,它利用光电转换原理直接将位移/角度/角速度的模拟量转换成相应的电脉冲或数字量,具有分辨率高、体积小、精度高、工作可靠、接口数字化等优点。,9.3.2 三关节机器人控制系统的硬件电路设计,本系统中采用增量式光电编码器作为位移/速度检测器件,它输出方波脉冲信号A、B和零脉冲信号Z,以及它们的反相信号/A、/B和/Z。其中Z脉冲每转出现一次,用于调整电气和机械的零位。A、B信号的相位差90O,利用A、B信号的相位关系即可判断位移或速度的方向,对A、B脉冲计数即可获得位移或速度值。为了提高分辨率,通常将脉冲信号A、B四倍频后送入计数器进行计数。同时,为了提高抗干扰性,在光电编码器的输出到四倍频之间加入差动接收以及光电隔离电路。其原理图如图9.22所示。,9.3.2 三关节机器人控制系统的硬件电路设计,图9.22 位置反馈信号处理电路框图,图9.22所示的位置反馈信号处理电路既可用标准的IC芯片或PAL、GAL等简单可编程逻辑器件来设计实现,也可用CPLD等复杂可编程逻辑器件来设计实现。本系统采用这两者结合的方法实现,即图9.22中的倍频、辨向和计数电路采用一块CPLD芯片XC9572,通过用VHDL语言对该芯片编程来实现;而差动接收和光电隔离电路则分别用四路线性差分接收芯片AM26LS32和光电耦合器芯片6NI37实现。,9.3.2 三关节机器人控制系统的硬件电路设计,具体设计时,可按如下步骤进行: 用VHDL语言分别设计能对3轴反馈信号分别进行加减计数的16位可逆计数器、四倍频电路和辨向电路,并一一作功能仿真,验证其功能,得到一个3轴位置反馈信号核心处理电路方案(程序)。 用同样的软件设计方法,为该核心处理电路设计一个地址译码器,以便对LPC2212发出的地址信号、读/写(OE/WE)信号进行译码,作为片选信号控制其内部相应电路的读/写操作。设计地址译码器时,地址信号选用A1、A0,其不同的编码对应不同的运动轴;同时,将芯片XC9572地址空间放置在LPC2212外部存储组Bank3中,将片选信号CS3和地址信号A21组合作为XC9572的片选信号(CS3=0, A21=1时选通),以便将其与液晶显示模块RT240128A的地址空间区分开来 。,9.3.2 三关节机器人控制系统的硬件电路设计,各运动轴的具体编码及地址如表9.1所示。,表9.1 各运动轴的编码及地址, 将上述核心处理电路和地址译码器按逻辑关系连接,设计成一个项目整体,统一进行综合、生成VSM网表文件、功能仿真、布局布线以及时序仿真,通过后用ISP菊花链下载软件将设计下载到XC9572芯片中,即完成了整个位置反馈信号处理电路的设计。,9.3.2 三关节机器人控制系统的硬件电路设计, 将设计好的位置反馈信号处理芯片XC9572芯片与差分接收芯片AM26LS32、光电隔离芯片6NI37按照图9.22所示的关系实现正确连接。其中,AM26LS32与6NI37在系统中的电路连接如图9.23所示(X、Y、Z三轴各有一套这样的电路,这里只画出第一套)。这样,由光电编码器反馈输出的信号(iA十、iA-, iB十、iB-和iZ+,iZ-),经AM26LS232处理和经6NI37光电隔离后,即可相继得到编码器三相信号(iA、iB、iZ)和(Ai、Bi、Zi),其中i1,2,3。,图9.23 AM26LS32与6NI37在系统中的电路连接,9.3.2 三关节机器人控制系统的硬件电路设计, 驱动脉冲输出电路 系统中采用LPC2212所具有的6路PWM方式输出驱动脉冲,可编程实现脉冲和方向信号PLUSn、DIRn(n=1,2,3)的模式或是正负脉冲PLUSn十、PLUSn-(n=1,2,3)的模式,以满足不同应用的需要。基于与上同样的原因,系统中选用了四路线性差分驱动芯片AM26LS31实现将每一路的信号转换为差分信号,具体实现电路如图9.24所示。同样,为防止电机等外界干扰源的干扰信号的窜入,在驱动脉冲信号输出前也经高速光耦器6N137实现信号的电气隔离。,图9.23 AM26LS32与6NI37在系统中的电路连接,9.3.2 三关节机器人控制系统的硬件电路设计,4 特殊功能I/O电路 运动控制器在实际应用中,还应为各关节(运动轴)设置一些特殊功能的I/O信息,如限位输入信号、原点输入信号、报警条件输入信号和使能驱动输出信号、复位驱动输出信号等,以便作相应的处理。同时,还应该为伺服电机驱动器提供一些输出信号,去控制其相关特殊功能。表9.2所示的即为本系统控制器所设置的一些特殊功能信号,以及与之对应的LPC2212连接引脚。考虑到每个运动轴都有左、右两个限位信号,如果将它们均直接引入LPC2212的外部中断引脚,不仅没有必要,也浪费微控制器片上有限的资源,为此本系统为每个轴都引入了一个7409与门,将其左、右限位信号“负或”后,再输入到LPC2212相应的中断引脚。这样,6个限位信号只需对应3个中断引脚。另外,为了提高抗干扰性,实际电路中还在每个I/O信号与LPC2212的对应引脚间都引入了一个光电隔离器。,9.3.2 三关节机器人控制系统的硬件电路设计,表9.2 特殊功能I/O信号及其对应的LPC2212连接引脚,9.3.2 三关节机器人控制系统的硬件电路设计,特殊功能I/O信号的具体电路连接如图9.25所示。,图9.25 特殊功能I/O信号的电路,9.3.2 三关节机器人控制系统的硬件电路设计,5. 辅助性电路 包括工作电源、时钟和复位等电路。 电源电路 本系统需使用3种电源:3.3V ,用于LPC2212的I/O口供电;1.8V,用于内核及片内外设供电;5V ,用于LCM及其它一些外围器件供电。为简化电源设计,只从外部为系统提供一个高质量的5V直流稳压电源输入,然后在内部通过两个低压差电源芯片LM1117MPX-1.8和LM 117MPX-3.3,分别得到3.3V和1.8V的稳压输出电源,如图9.26所示。其中输出端所接的lOF电容用于改善瞬态响应特性和稳定性。,9.3.2 三关节机器人控制系统的硬件电路设计,图9.26 系统电源电路,9.3.2 三关节机器人控制系统的硬件电路设计, 时钟电路 本系统中,根据LPC2212的最高工作频率以及PLL电路的工作方式,为LPC2212设置了lOMHz的外部晶振。为使晶振易于起振,在其两端并接了一个1M的电阻。晶振电路如图9.27所示。1OMHz的晶振频率经过LPC2212片内的PLL电路倍频后,最高可达60MHz。片内的PLL电路除有倍频功能外,还有信号提纯的功能,因此,系统不仅可以较低时钟频率获得较高工作频率,而且可降低因高速开关时钟所造成的高频噪声。,图9.27 时钟电路,9.3.2 三关节机器人控制系统的硬件电路设计, 复位电路 本系统使用专用微处理器电源监控芯片MAX708SD外加三态缓冲门74HC125构成复位电路,如图9.28所示。其中,信号nRST和nTRST分别连接到LPC2212芯片的复位引脚/REST和内部JTAG接口电路复位引脚/TRST。当复位按键SB1按下时,MAX708SD的引脚/RST立即输出低电平复位信号,使两个74HC125A导通,致使nRST、nTRST两个复位信号有效。平时MAX708SD的/RST输出高电平,两个74HC125A均截止,由上拉电阻R3、R4将信号nRST、nTRST上拉为高电平,系统可正常运行或进行JTAG仿真调试。,9.3.2 三关节机器人控制系统的硬件电路设计,图9.28 复位电路,9.3.3 三关节机器人控制系统的软件设计,本控制系统是基于ARM嵌入式控制器建立的,其软件只能在PC机上编写和调试,然后将调试好的程序(扩展文件名为*.Tdf的G代码文件)通过一个USB下载软件,下载到嵌入式控制器。 嵌入式控制系统的软件包括实时操作系统和用户应用程序两大部分。由于ARM7TDMI芯片中没有MMU,所以其操作系统和应用程序的地址编译完全是固定的,并编译在一起,最后生成一个文件,下载到嵌入式控制器中执行。这与在DOS或Windows环境下的PC机上开发软件是大不相同的。在PC机上,操作系统文件和用户应用程序是分开的,而且可以有多个应用程序同时存在于主机中;而ARM嵌入式控制器中的操作系统和应用程序不可分,当然就只能合二而一,形成一个统一的程序了,要想换另一个应用,必须重新将它和操作系统一起编译、重新下载 。,9.3.3 三关节机器人控制系统的软件设计,本嵌入式控制器使用基于C/OS-II内核的RTOS操作系统。其用户应用程序大体包括人机界面、数字输入输出、运动控制和与PC机通信等四大功能模块,各大模块均由若干子模块组成,模块与模块间的通信通过操作系统提供的消息、消息邮箱等机制来完成。整个系统的软件结构如图9.29的框图所示。,图9.29 系统的软件结构框图,9.3.3 三关节机器人控制系统的软件设计,显然,整个系统的软件设计,首先需要将C/OS-II实时操作系统移植到ARM处理器芯片LPC2212上,使之能在微控制器上运行。有关C/OS-II操作系统的移植方法,可见有关专门参考文献(如书后文献【87】等),甚至可直接采用一些公司(如周立功公司等)提供的移植代码,本书不赘述。这里仅对用户应用程序的设计有重点地加以说明。,9.3.3.1 主要应用程序模块的设计,1. 人机界面模块 人机界面分两部分:键盘输入与液晶显示。 键盘输入模块 键盘输入子模块负责识别键盘的按键操作,如有键按下且合法有效,则转到相应的处理任务去完成相应键功能。 键盘输入采用的是循环扫描方式:在系统中创建一个键盘扫描任务,按照预定的扫描周期,对键盘输入进行检测。检测到合法有效按键后,就将该按键的扫描码写入消息发送给其他任务,通知系统某按键被按下。本系统通过建立一个如图9.30所示的状态机来实现按键的扫描及相应功能。,9.3.3.1 主要应用程序模块的设计,图9.30 键盘扫描任务状态机,9.3.3.1 主要应用程序模块的设计,该状态机在每次去除回弹周期内执行一次,每KEY_ SCAN_TASK_DLY毫秒时间内执行四分之一个状态,即:刚开始时,状态机处于KEY_STATE_UP状态;当有键被按下时,状态改变为KEY_ STAT_DEBOUNCE,然后延时KEY_SCAN_DLY毫秒;延时后若发现键未被释放,则状态机再延时KEY_SCAN_ASK_DLY毫秒;再延时后若发现键已释放,则返回到KEY_STAT_UP状态;若键依然被按下,则任务通过调用函数KeyDecode()得到键的扫描码,并通过调用函数KeyButln(),把扫描码存入键盘数据缓存区和通知系统按键被按下。如果该键按下的时间超过KEY_RPT_START_ DLY扫描时间,则启动自动重复功能,再次将该键的扫描码存入缓存区,等效于再次按下该键,且状态机的状态改变为KEY_ STATE_ DEBOUNCE状态,用于去除键被释放时的回弹。,9.3.3.1 主要应用程序模块的设计, 液晶显示模块 液晶显示模块负责提供液晶显示所需的硬件驱动程序,包括液晶显示器初始化程序和一系列与显示任务有关的其他接口函数子程序。通过将液晶显示的硬件细节隐藏在这些接口函数中,其他应用程序就可以只需调用这些硬件无关的接口函数来完成显示任务了。本系统提供的几种接口函数有: . DispInit():液晶初始化函数。它假设操作系统的多任务己经启动,并要使用实时内核提供的服务。该函数初始化硬件,创建信号量,并设置LCD模块的操作模式。必须在使用任何其他函数之前调用它。,9.3.3.1 主要应用程序模块的设计,. DispChar():单个字符显示函数。用于在显示器的任意位置显示单个字符。 . DispCIrLineQ:行清除函数。用于清除LCD模块的某一行,即用空格字符的 ASCII码Ox20H填充。 . DisCIrScr():清屏函数。清屏后使光标位于左上角。 . DispDefChar():字符/符号定义函数。用于使字符/符号位于CGRAM区域,设置其像素为 58, 代码为Ox80HOxFFH。 . DispStr():字符串显示函数。用于在显示器任何位置显示ASCII字符串。 以上这些函数可以被应用程序调用,以完成需要的显示功能。,9.3.3.1 主要应用程序模块的设计,显然,这些函数是硬件无关性的。硬件的驱动部分被封装在以下三个函数之中: . DisplnitPort():I/O端口初始化函数。用于初始化与LCD模块相连接的输入输出端口。 . DispDataWr():单字节写函数。用于写一个字节数据到LCD模块。根据C/ D的状态,该字节发往命令寄存器或数据寄存器。 . DispSel():C/D状态改变函数。用于改变C/D的状态,其参数只有DISP_ SEL_CMD_REG和DISP_SE_ AT_REG两种,分别用来选中命令寄存器和数据寄存器。,9.3.3.1 主要应用程序模块的设计,3. 数字输入输出模块 数字输入输出模块负责完成各关节(运动轴)的位置反馈信号采集和驱动脉冲输出。 对于多轴联动控制系统来说,这部分的性能至关重要。位置反馈信号是由光电编码器转换而来的脉冲或数字信号,其采集和限位输入、驱动使能输出一样,实现起来比较简单。在本系统中,使用邮箱来存储光电编码器位置反馈值,当系统执行驱动脉冲输出程序被DDA周期定时中断后,位置检测任务则将位置反馈值存入邮箱中,而相应的位置控制任务如发现该邮箱中有新的消息产生,就会对应的作出位置比较,修改位置误差。,9.3.3.1 主要应用程序模块的设计,下面是主程序等待位置反馈值并在有反馈时将它接收并存入邮箱的程序段: void Mainse Task(void *id) Posmsg pmsg=0; for(;) pmsg = WaitMessage(); /等待消息 Switch(pmsg-message Feedback(pmsg-posvalue);/接收反馈值 Break; DeleteMessage(pmsg); /删除消息,释放资源 ,9.3.3.1 主要应用程序模块的设计,各关节的运动方向控制及其驱动脉冲产生输出的任务,本系统是基于LPC2212的PWM功能来实现的。LPC2212的PWM功能是建立在标准的定时器之上的,它具有32位定时器、预分频控制电路和7个匹配寄存器,可实现6个单边PWM输出和3个双边PWM输出,也可采用这两种类型的混合输出,具有匹配中断、匹配PWMTC复位和匹配PWMTC停止等功能。其比较匹配功能的实现框图如图9.31所示。定时器比较匹配由控制寄存器PWMMCR进行匹配操作设置,而PWMMRO-6则为7路比较匹配通道的比较值寄存器。当比较匹配时,将会按照PWMMCR设置的方法产生中断或复位PWMTC等,而且PWMPCR可以控制允许/不允许PWM输出和单边/双边PWM输出。另外,LPC2212使用了一个PWMLER锁存使能寄存器,可确保对PWMMRO-6的比较值进行修改过程中不影响PWM输出。当修改PWMMRO-6的比较值时,只有使PWMLER的对应位置1,在匹配0事件发生后此值才会生效。,9.3.3.1 主要应用程序模块的设计,图9.31 PWM的比较匹配寄存器功能框图,9.3.3.1 主要应用程序模块的设计,系统采用了配置单边PWM、复位PWMTC功能,可输出脉冲/方向模式和正负脉冲模式供用户选择。在使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论