




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题 目 基于LM629的机器人单关节控制器设计 摘 要近年来随着人工智能技术、计算机技术以及网络技术等相关技术的飞速发展,机器人在各个领域已经得到了广泛的应用,成为了一类关键的基础装备。机器人单关节控制器是机器人的重要组成部分,每个完整的机器人控制系统都是由单个的机器人单关节控制器所组成,因此机器人单关节控制器对机器人控制系统起着决定性的作用。LM629是美国国家半导体公司生产的可编程全数字精密运动控制芯片,内置PID算法和梯形图发生器能够自动生成速度曲线,平稳地加速、减速。本文采用LM629精密运动控制芯片、AT89C51CC03单片机和少量的驱动电路构成了基于LM629和CAN总线的机器人
2、单关节控制器。实验表明,由AT89C51CC03和LM629建立的CAN总线的机器人单关节控制器,不仅简化了机器人控制系统软、硬件设计,提高系统可靠性,减轻设计工作量,而且提高了系统性能,具有反应快,控制精度高、实时性能好等优点。通过对机器人单关节控制器的软硬件设计和反复的调试,所制作的机器人单关节控制器已经初步完成了预定的功能。AT89C51CC03单片机对LM629进行控制和初步的数据处理,通过CAN现场总线与主机或其他设备进行实时通信,可以组成现场总线控制系统。在本次毕业设计中完成了机器人单关节控制器的设计制作及软件系统的设计调试。关键词 LM629运动控制器 51单片机 CAN总线 T
3、itle Design of Simplex Articulatory Controller of Robot Based on LM629 AbstractIn recent years, with correlation technology, artificial intelligence technology, computer technology as well as networking rapid development, robot has already obtained application widespread in each domain and become a
4、kind of essential foundation equipment. The simplex articulatory controller of robot is one of the most constituent of robot. Each complete control system of robot is composed by the simplex articulatory controller of robot. Therefore, the simplex articulatory controller of robot is playing the deci
5、sive role in the control system of robot. LM629 is a programmable control chip of precise movement which produced by Semiconductor Company in USA. It contains the PID algorithm and the trapezoidal chart generator which can produce the velocity curve automatically, acceleration and deceleration stead
6、ily. This article used the LM629, AT89C51CC03 and a few actuation electric circuits to constitute the simplex articulatory controller of robot based on LM629 and CAN bus. The experiment indicates the simplex articulatory controller of robot which is made up by AT89C51CC03 and LM629 can simplify desi
7、gn of the robot control system of software and hardware, enhance reliability of the system, reduce work load of the design. It has merits including respond quickly control precision high, real time and so on. By the debugging repeatedly and design of software and hardware, the simplex articulatory c
8、ontroller of robot has already completed the predetermined function initially. The AT89C51CC03 carries on the control and the preliminary data processing to LM629, carries on the real-time communication through the CAN bus and the main engine or other equipment, may compose the field bus control sys
9、tem. It has completed manufacture of the simplex articulatory controller of robot and debugging of the software system in this project.Keywords LM629 movement controller 51 MCU CAN bus目 次1 绪论11.1 机器人单关节控制器的研究背景及应用11.2 机器人单关节控制器研究现状22 机器人单关节控制器的主体设计42.1 机器人单关节控制器的总体设计42.2 机器人单关节控制器的方案论证52.3 机器人单关节控制器
10、的组成83 LM629运动控制器选择93.1 LM629的特点93.2 LM629的操作理论93.3 LM629读和写操作113.4 旋转编码器接口124 CAN现场总线134.1 CAN通信协议134.2 CAN控制器配置145 机器人单关节控制器硬件设计165.1 位置检测模块设计165.2 运动模块设计175.3 CAN通讯模块设计226 机器人单关节控制器软件设计326.1 单片机的C语言程序设计说明336.2 系统对象字典346.3 控制器总体程序流程图357 机器人单关节控制器的制作及调试36结 论37致 谢38参 考 文 献39附 录A . 40附 录B . 41附 录C . 4
11、6绪论 机器人单关节控制器的研究背景及应用 机器人单关节控制器的研究背景近年来随着人工智能技术、计算机技术以及网络技术等相关技术的发展,对智能机器人的研究越来越多。机器人控制器成为各种智能控制方法(包括动态避障、群体协作策略)的良好载体;同时,以现场总线为代表的控制网络在工业以及其他控制系统中扮演着不可缺少的角色。机器人控制系统开始从集散控制系统(DCS)向现场总线控制系统(FCS)过度,现场总线将成为控制领域的主流。CAN总线由于具有可靠性高、成本低、容易实现等优点,在控制系统中得到广泛的应用。由于机器人的各个组成部分构成网络化的分布式系统,为了开展多智能的调度、规划等控制,所以对机器人控制
12、器的研究越来越受到重视。特别是在智能工程、控制工程以及机器人工程等领域起着举足轻重的作用。机器人控制系统之间的双向信息交换和实时数据传输需通过控制器来完成,因此其控制器的运算工作量和通信工作量都很大。如果采用集中控制,CPU的运算速度难以满足实时性和高保真的性能要求。采用基于现场总线的分布式控制,把大量的伺服控制和传感器信息处理放在每个智能控制器节点来处理,有利于进一步提高控制系统的性能。机器人单关节控制器的传感器较多,线路比较复杂,线束的布局往往直接影响系统的性能。大量的布线不仅影响使用和维修,而且也不美观。 机器人单关节控制器的主要应用机器人单关节控制器针对于各种智能机器人、工业机器人、航
13、天机器人等的设计,对机器人各个关节进行实时的控制,因此机器人单关节控制器不仅可以对机器人的各个关节控制进行管理,而且在各个智能节点设备,也可以应用,特别是在研究和开发领域,更是不可或缺的工具。机器人单关节控制器作为一种很有潜力的高级机器人技术,在航天、军工、核工业、深海探测等特殊工作环境下正在大显身手,而且在微创手术、生物医学、虚拟现实和地下开采等领域也扮演着越来越重要的角色。机器人单关节控制器是系统的关键设备,其性能好坏直接影响整个系统的可靠、稳定性。 机器人单关节控制器研究现状国外研究现状国外的研究成果:目前,美国、英国、日本、新加坡、德国、法国、澳大利亚等国家都早已研制出机器人单关节控制
14、。如:东芝试制家用机器人“ApriAlpha” 该概念模型配备了新开发的利用分散对象技术的开放式机器人控制器,因此可以很容易追加新功能。另外该公司建立了利用分散对象技术的“开放式机器人控制器架构(ORCA)”并且基于该架构新开发出控制器。采用模块化设计的IRC5控制器是ABB公司最近推出的第五代机器人控制器,它标志着机器人控制技术领域的一次最重大。值得指出的是,由于将处理速度更高的微处理器引入至机器人控制器,从而显著地提高了机器人运动控制性能,使机器人制造商能将诸如减振算法、前馈控制、预测算法等先进的现代控制理论嵌入到机器人控制器内。图1-1为带机器人单关节控制器的机械手实物照片:图1-1 带
15、机器人单关节控制器的机械手实物照片国内研究现状我国目前的研究状况:国家863计划在“八五”、“九五”和“十五”期间分别将机器人技术作为主题,制定了相应的高技术研究发展规划。“八五”期间重点围绕恶劣环境的室外移动机器人,用于处理核废料的遥控移动作业机器人,壁面爬行机器人,水下无缆自治机器人,高精度装配机器人等五种类型开展先进机器人控制技术研究。“九五”期间重点围绕汽车,家电等工业机器人产业化与以水下6000米机器人为代表的特种机器人等方面开展了先进机器人关键技术与应用示范研究。“十五”期间进一步拓宽了机器人技术向自动化装备技术方面的发展,一方面围绕国家急需的关键基础装备,包括高精尖数控机床,全断
16、面盾构掘进机与工程机械自动化生产线等开展了相应关键技术与应用示范研究另一方面围绕国家社会发展需求的机器人与自动化装备,包括深海载人潜器、仿人仿生机器人,危险作业与反恐防爆机器人医疗外科机器人等方面 开展了先进机器人控制器研究。机器人控制器在我国应用的主要问题是:机器人控制器价格昂贵,许多企业和科学研究机构无法接受;机器人控制器的许多标定基础是以外国标准进行的,由于技术保密,系统参数的修定只能由机器人控制器生产厂家来进行,无法适应我国产品品种多的现状。总之,无论从高校还是从企业来看,对机器人控制器的研究都已有很大的进展,虽然还是落后于发达国家的研究水平,但随着我国对科研研究力度的加大,对机器人单
17、关节控制的研究将更为深入,相信在不久的将来会研制出更加先进的机器人控制器。 机器人单关节控制器的主体设计机器人单关节控制包括硬件电路和软件系统。硬件电路是软件系统的载体,因此,设计机器人单关节控制的电气部分先得确定硬件电路的设计方案,然后再通过软件系统控制其工作。 机器人单关节控制器的总体设计 总体设计思想 基于LM629精密运动控制器,利用CAN现场总线与其他设备控制器进行通信。通过调研决定选取单片机AT89C51CC03作为控制器的核心,C语言作为设计程序语言。机器人单关节控制总体设计方框图如下图2-1:图2-1机器人单关节控制总体设计方框图 拟解决的主要问题和研究的主要内容拟解决的主要问
18、题:微处理芯片(AT89C51CC03)硬件电路设计及用高级语言C的程序设计;LM629精密运动控制芯片的硬件电路设计及程序设计;CAN现场总线通信的软件设计;拟研究的主要内容:AT89C51CC03的接口电路设计及C语言编程与PCB图的设计;选择LM629精密运动控制芯片以及光电编码器的确定;CAN现场总线原理及应用; 机器人单关节控制器的方案论证 硬件电路的方案AT89C51CC03是ATMEL公司推出的一款内带CAN控制器增强型80C51单片机。由于内置CAN控制器,具有抗干扰能力强和性能价格比高等优点,特别是在机器人控制和实时通讯方面更具有其独特的魅力。AT89C51CC03具有完善的
19、CAN控制器,利用TXDC和RXDC两个引脚来作为CAN通信接口。通过此功能可以方便的组成基于CAN总线的分布式控制系统,实现数据的实时传输和交换。AT89C51CC03单片机内部嵌入的ADC模块具有10位数字量精度,共有8个模拟通道,不用外加专门的ADC即可以对模拟信号进行数字信号的转化。因此,AT89C51CC03可以作为机器人单关节控制器的微处理器。如图2-2 AT89C51CC03片内资源示意图:图2-2 AT89C51CC03 片内资源示意图如图2-3 AT89C51CC03片PLCC封装的外观示意图:图2-3 AT89C51CC03的PLCC封装的外观示意图AT89C51CC03增
20、强型51单片机的主要特点:80C51内核;256 B的片内RAM;2K的片内ERAM;2K的EEPROM;双数据指针;64KB片内可编程序Flash存储器;14个中断向量,其具有4个优先级的中断;工作时钟频率2MHz60MHz;3级程序存储器保密;32+4个可编程I/O口;3个16位定时器/计数器;1个21位的看门狗;5通道16位的PCA;8通道10位的ADC;CAN控制器,全面支持CAN2.0A、CAN2.0B协议; 软件系统的方案在编写单片机程序时,可以用汇编语言编写,也可以用C高级语言来编写,还可以用两者混合编程。C语言作为高级语言,它更接近和体现人的设计思想;C高级语言是目前流行的一种
21、计算机语言,它主要用于单片机和一般微型计算机。C高级语言程序设计快、可读性好、可靠性高、可移植性好、代码转换质量高。单片机C高级语言的特点是同时兼有高级语言和汇编语言的优点,还能像汇编语言那样直接利用CPU的硬件特性进行程序设计,直接操作单片机的硬件和接口。C高级语言目标模块还可以同汇编连接组成一个完整的程序,目前在单片机应用领域,C高级语言越来越受到人们的重视。使用C高级语言的工作效率高,其生成的机器代码质量也是高水平的。 总体方案的确定总体方案:基于LM629运动控制芯片和内带CAN控制器的AT89C51CC03单片机构成的机器人单关节控制器,机器人单关节控制器示意图如下图2-4所示。运动
22、控制芯片LM629通过8位数据线和6根控制线与单片机AT89C51CC03的IO 口相连。单片机通过数据线向LM629发送位置或速度命令、设定PID调节参数,或者从LM629中读取速度、加速度等数值。LM629输出的脉宽调制幅度信号和方向信号,经过功率放大后驱动直流电动机。增量式光电编码器提供闭环控制所需的反馈信号(A、B、IN),梯形图发生器计算出位置或速度模式下所需控制的运动轨迹。AT89C51CC03为LM629提供加速度、速度和目标位置量,在每个采样周期用这些值来计算出新的命令和位置给定值,将其作为指令值。由增量式光电编码器检测电动机的实际位置,其输出信号经过LM629四倍频后进行解码
23、,形成位置反馈值。指令值与反馈值的差值作为数字PID校正环节的输入。通过数字调节器PID计算,LM629输出脉宽调制信号PWMM 和方向信号PWMS用于控制,进而驱动电动机运动到指定的位置。LM629在进行位置控制的同时,还对速度进行控制。LM629在接受到主机送来的位置信号后,按梯形图生成加速、匀速、减速的速度曲线,曲线与坐标横轴所包围的面积就是指定的位置。PID算法中的比例、积分和微分系数有时需要进行修改,因此将它们存贮在单片机的中。控制器和主机可以通过CAN现场总线进行实时通信。机器人单关节控制器示意图如图2-4所示: 图2-4 机器人单关节控制器示意图 机器人单关节控制器的组成基于LM
24、629的机器人单关节控制器,由传感器电路,控制电路,单片机接口电路,CAN现场总线接口电路以及应用程序软件等组成。传感器电路:把位移信号和转数信号转化成电信号。传感器电路是机器人单关节控制器的输入部分,是系统的数据源。控制电路:对数据的采集、初步处理和执行控制的芯片,并通过接口电路与单片机进行数据传输。单片机接口电路:单片机和运动控制芯片以及CAN现场总线通信接口所需要的电路。单片机接口电路是机器人单关节控制器数据交换及控制处理的基础。CAN现场总线接口电路:对单片机传来的数据通过接口电路与主机或者其他设备控制器进行数据传输。 LM629运动控制器选择LM629致力于运动控制处理器与一些直流和
25、无刷直流饲服电动机或其他具有积分增量位置反馈信号的伺服机制的设计。这部分执行高精密数字运动控制所要求的精密实时计算任务。微处理器控制软件接口因一个高级别命令集而更便利。LM629有8位输出,这8位输出可驱动一个8位或12位的DAC。这个组成需要建立一个伺服系统简化直流电动机/驱动器、旋转编码器、数模转换、功率放大器和LM629。它提供一个8位脉宽调制(PWM)输出,用于直接驱动H开关(H-switches)。这部分在NMOS中制作并封装为28管脚双列直插形式或24管脚贴片封装形式。最大频率为6MHZ和8MHZ的版本均用到后缀-6或-8,分别地用于表示不同的版本。它们由SDA把SDA中心处理器和
26、单元设计为一体。基于以上诸多优点,我们选择LM629作为机器人单关节控制器的运动控制芯片。LM629的特点32位位置、速度和加速度寄存器16位的可编程数字化PID过滤器可编程微分采样周期8位或12位DAC输出数据(LM628)8位信号级PWM输出数据(LM629)内部梯形速率特性发生器在运动期间可以改变速率、目标位置和过滤器参数位置和速度两种操作模块实时可编程微处理器中断8位异步并行微处理器接口标准脉冲输入的积分增量编码器在28管脚双列直插式封装或一个24管脚贴片封装的优点(只有LM629) LM629的操作理论应用LM629建立一个伺服系统。微处理器通过I/O端口与LM629通信更易规划梯形
27、速度特性和数字补偿滤波器。DAC输出送入外部数模转换器产生功率放大的信号且驱动电动机运动。旋转编码器为趋近位置提供反馈伺服回路。梯形速度特性发生器为位移操作模式或速度操作模式计算所要求的轨迹。在操作状态,LM629用期望位置(特性发生器位置)减去实际位置(反馈位置)得到位置偏离被数字过滤器用来驱动电动机运动到期望位置。 位置反馈接口LM629经由旋转编码器接入电动机,提供了三个输入端:两个积分信号输入和一个标准脉冲输入。积分信号用于保持电动机的精密位置轨迹。每次一个积分输入出现逻辑变换时,LM629的内部位置寄存器随之增加或减少。编码器提供的周期被四倍频。每个编码器信号输入与LM629时钟同步
28、。一些编码器提供的可选INDEX 脉冲输出每旋转一周呈现一个逻辑低电平状态。如果用户使用LM629这样编程,当三个编码器输入都是逻辑低电平时将把绝对的电动机位置记录到专用的寄存器。 速度轨迹发生梯形速率特性发生器计算电动机相对时间的期望位置。在位置操作模式,微处理器详细说明加速度,最大速率和最终位置。LM629利用这些数据通过标明的加速度影响运动直到达到最大速率或直到在标明的最终位置减速度开始停止。减速度等于加速度。在运动过程的任何时刻,最大速率和/或目标位置可以改变,而且电动机将相应地加速或减速。当在速率模式操作时,电动机以指定的加速度加速到指定的速度而且保持指定的速率直到命令结束。以不变速
29、度接近期望位置保持速率。如果在速率操作模式运动有干扰,长期的平均速度保持不变。如果电动机不能保持指定的速率(例如闭环引起的),期望位置将继续增加,结果导致非常大的位置偏差。如果这种情形没被发觉,对电动机的压迫力随之减小,电动机为了与预期位置(仍然是被指定的期望值)一致会达到一个很高的速率。这种情形很容易被发觉。 PID反馈滤波器 LM629运用PID滤波器补偿控制环。通过应用一个与位置偏差成比例的恢复力加于电动机上,电动机在期望位置有效,加上偏差的积分,加上偏差的微分。下面的离散时间等式说明了LM629的控制执行:在这里u(n)为电动机在采样时间n的控制信号输出,e(n)为在采样时间n的位置偏
30、差,n表示微分采样速度,而且kp,ki,kd为用户下载的离散时间滤波器参数。第一个阶段,比例阶段,提供一个与位置偏差成比例的恢复力。第二个阶段,积分阶段,提供一个随着时间增长的恢复力,而且因此确保静态位置偏差为0。第三个阶段,微分阶段,提供一个与位置偏差的变化速率成比例的压力。在操作中,滤波器运算法则接收从总的连接回路得来的16位偏差信号。这个偏差信号充满16位以保证可预知的行为。另外乘上滤波器参数kp,偏差信号加到先前的偏差上(组成积分信号),而且以所选择的积分采样周期所确定的速度,再减去先前的偏差(从积分信号)。所有滤波器乘法都为16位操作;只有乘积的底部16位有用。 积分信号保持24位,
31、但只有顶部16位有用。这个测量技术结果导致参数ki值的更可用(不敏感)范围。这16位正好转换为8位且与滤波器参量ki相乘组成一组由于电动机控制输出。这个乘积的相对级与参数il相比较,而且至少适当地标记量然后加入电动机控制信号。每个微分采样周期,微分信号与参数kd相乘。这个乘积加入到每个采样周期的电动机控制输出,独立于用户所选择的微分采样周期。kp,限制的ki和kd产生阶段被相加组成一个16位数。依赖于输出模式(字号),高8位或高12位成为电动机控制输出信号。 LM629读和写操作 当端口选择端(PS)为逻辑低电平时,微处理器通过主机I/O端口向LM629写入数据。期望命令编码应用到并行端口且写
32、输入被激活。当WR输入为上升沿时命令字锁入LM629。当写命令字时需要首先读状态字而且核对被称作“busy bit”(Bit0)的状态。当busy bit为逻辑高电平时,不会发生命令写状态。busy bit决不可能保持逻辑高电平状态长于100ps,而且在15到25ps之内显著降低。 微处理器用相似的方法读LM629的状态字:当PS为逻辑低电平时激活读(RD)输入;当RD为低电平时状态信息保持不变。当PS(Pin 16)逻辑高电平时发生写和读数据到/从LM629(就像写命令和读状态)。这些写和读通常是双字节字的整数(从1到7),而且每个字的首字节更为重要。每个字节都需要写(WR)或读(RD)触发
33、。当传输数据字时,需要首先读状态字和核对 “busy bit”的状态。当busy bit为逻辑低电平时,用户可以随之传输一个数据字的双字节,但busy bit必须重新核对而且在试图传输下一个字节前被确认为逻辑低电平(当传输多字节字时)。数据传输通过LM629内部中断完成;当LM629可能不对数据传输(或命令字)产生中断时,busy bit将通告微处理器。当busy bit为高电平时写命令,命令将被忽略。当写命令字或读或写数据的第二个字节时,busy bit迅速变为逻辑高电平。 旋转编码器接口 旋转(位置反馈)编码器接口由三相组成:相A(管脚2),相B(管脚3)和标准脉冲(管脚1)。标准脉冲输出
34、对一些编码器无效。LM629将与两种编码器类型工作,但命令SIP和RDIP在没有标准脉冲时没有意义(或者为了这个输入选择两个输入中的一个,要确定不使用时将管脚1置为高电平)。一些注意事项相对于使用在高高斯噪音环境下有更多优点。如果噪音添加入编码器输入(一个或两个输入)且直到下一个编码器转换才持续,LM628译编器逻辑将拒绝它。模仿积分数值或经由编码器转换的噪音必须通过近似EMI设计来消除。简易数字过滤设计仅仅减小噪音的易感性(这将会总是有宽于过滤器可以消除的噪音脉冲)。此外,任何噪音过滤设计都将减小译码器带宽。在LM629中已经规定不包括有利于提供最大可能译码器带宽的噪音过滤器(由于简易过滤不
35、消除噪音的问题)。试图驱动与简单TTL线相当长距离的编码器信号也能以信号衰减(短暂的上升时间和/或响声)的形式成为“噪音”的一个来源。这也能引起一个系统丢失位置的完整性。也许能通过在编码器输入上使用平衡链驱动器和接收器拥有对噪音感应更有效的对策。LM628/LM629芯片图如下图3-1所示:图3-1 LM628/LM629芯片图 CAN现场总线 CAN通信协议CAN通信协议2.0B规定了4种不同的帧格式:数据帧、远程帧、错误帧和超载帧。其中数据帧用来传输数据的,远程帧用于请求数据,超载帧用于扩展帧序列的延迟时间,而当局部检测出错条件后产生一个全局信号出错帧。在这里,我们使用的是CAN2.0B协
36、议。 CAN2.0B标准帧CAN标准信息帧为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分,如表4-1所示:表4-1 CAN2.0B标准帧7654321字节1FFRTRXXDLC(数据长度)字节2(报文识别码)ID.10ID.3字节3ID.2ID.0RTR字节4数据1字节5数据2字节6数据3字节7数据4字节8数据5字节9数据6字节10数据7字节11数据8注:字节1为帧信息:第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。字节2、字节3为报文识别码,11位有效。字节4字
37、节11为数据帧的实际数据,远程帧时无效。 CAN 2.0B扩展帧CAN扩展帧信息为13B,包括两部分:信息和数据部分。前5个字节为信息部分,如表4-2所示:表4-2 CAN2.0B扩展帧7654321字节1FFRTRXXDLC(数据长度)字节2(报文识别码)ID.28ID.21字节3ID.20ID.13字节4ID.12ID.5字节5ID.4ID.0XXX字节6数据1字节7数据2字节8数据3字节9数据4字节10数据5字节11数据6字节12数据7字节13数据8至于数据帧对于不同的CAN上层协议,存在着不同的定义,本机器人单关节控制器使用的是CAN2.0B标准帧,应用层由用户定义,因为CAN只提供了
38、物理层和数据链路层。 CAN控制器配置CAN控制器在应用时,根据所要完成功能的不同而需要做的不同配置做具体描述。这包括报文对象初始化处理、发送对象配置、接收对象配置、中断处理配置;另外,还有发送对象、位定时寄存器等配置。报文对象初始化处理报文RAM中的报文对象配置在使用前必须由CPU来初始化为零或者被设置为无效。报文对象的配置是通过相应的接口寄存器来设置其屏蔽码、仲裁场、控制场和数据场值,而这一设置过程由相应的命令寄存器来完成。当CAN控制寄存器中的GRES位置零,CAN控制器中的协议控制器、状态机制和报文处理机将控制CAN的内部数据流。接收到的报文通过接收滤波后都存放在报文RAM中,而得到传
39、输请求的报文都要移入CAN控制器的移位寄存器中并通过CAN总线传出。发送对象的配置当报文对象作为发送对象时,仲裁寄存器将被应用,它们定义了即将发送的报文识别符和类型,如果使用11位识别符(标准帧),那么使用的是ID0ID11,而ID12ID28将被忽视。如果TxIE位被置位,则TxOK位在此报文对象被成功发送后被置位;如果RxENA位被置位,在接收到匹配的远程帧将引起TxRqst位被置位。若数据寄存器将被使用,TxRqst和RxENA在数据有效前不会被置位。屏蔽寄存器可以用来允许相同识别符的数据帧组被接收。中断处理在所有中断中,状态中断具有最高优先级,报文对象的中断优先级随着报文编号的增大而减
40、小。如果有几个中断产生,那么CAN中断寄存器将指向优先级最高的中断,而不是按中断先后顺序排列。状态中断通过读取状态寄存器来清除,报文中断通过清除报文对象的ENCH n位来清除。处于中断寄存器中的中断识别符ENCH n能表明中断的原因,如果这个寄存器的值为0,没有中断产生;否则,有中断发生。CPU控制着状态寄存器的改变是否可以引起中断;当中断寄存器的值不为0(CANCONCH控制寄存器中的IE位)时中断队列是否有效。CPU有两种方式判断报文中断源,每一种是判断中断寄存器中的ENCH n位;另一种是顺序扫描中断发生寄存器。 机器人单关节控制器硬件设计机器人单关节控制器硬件电路是控制系统的载体,主要
41、包括位置检测模块、运动模块和CAN通讯模块。位置检测模块用于把采集过来的信号处理为控制器可以识别的信号;CAN通讯模块用于电平转换以使其他机器通过CAN协议通信;运动模块用于控制运动。AT89C51CC03单片机是数据通信和控制的核心,也是位置检测模块、运动模块和CAN通讯模块不可或缺的组成部分。 位置检测模块设计机器人控制器主要有两种传感器,一种是用于感知机器人局部环境的红外传感器;另外一种则是检测电动机轴位置的增量式光电编码器。本文主要介绍电动机轴位置反馈信号的检测,采用检测电动机轴位置的增量式光电编码器。电路将增量式光电编码器输出的差动信号(A+、A-、B+、B-、,Z+、,Z-)经过A
42、M26LS32差分放大器合成单端信号A、B、IN。合成后的单端信号A、B、IN分别与LM629的管脚A 、B、IN相连。利用差动信号传输,可以有效地解决干扰问题和远距离传输问题。为了进一步消除干扰,在输入端每根线上都加上一个滤波电容,在每根差动的信号线上接一个用于线路阻抗匹配的限流电阻。增量式码盘反馈的脉冲信号经过四倍频后,提高了分辨率。A和B的逻辑状态每改变一次,LM629的位置寄存器就加(减)1。当码盘的A、 B、IN都为低电平时,产生一个Index信号送人寄存器,记录电动机的绝对位置。图5-1为位置检测模块电路,其中CON8为增量式旋转编码器接口。图5-1 位置检测模块电路 运动模块设计
43、 运动模块电路运动模块的核心芯片是LM629精密运动控制器。LM629精密运动控制器的8位数据口D0D7与AT89C51CC03单片机的P0.0P0.7口相连,单片机的P1.0与LM629的CS片选端相连,用于控制片选(低电平有效)。AT89C51CC03单片机的P3.7、P3.6(RD、WR)分别与LM629的读/写端(RD、WR)相连,用于控制读/写操作(低电平有效)。AT89C51CC03单片机的P1.1与LM629的命令/数据控制端(PS)相连,用于控制命令/数据。LM629接收来自AT89C51CC03单片机的位置、速度或加速度等命令,经过内部梯形图发生器和PID调节器的运算,输出脉
44、宽调制信号和方向信号,由引脚PWMM(脉宽调制信号)和PWMS输出(方向控制信号)。功率放大部分主要由L298N芯片和续流二极管组成。L298N是双极性H桥功率放大驱动器,与LM629输出信号PWMM和PWMS通过一个逻辑门电路相连,控制直流电机的正、反转和停止。LM629精密运动控制器与AT89C51CC03单片机的连接电路如下图5-2所示:图5-2 LM629与AT89C51CC03接口电路 运动控制初始化LM629准备工作前,必须初始化LM629运动控制芯片,设置各个控制参数,否则LM629将无法正常工作。在初始化时,首先复位LM629,向LM629写入控制命令字0X00,将命令字写入L
45、M629控制寄存器中,等待LM629空闲时再进行下一个命令字的输入。然后设置LM629输出为8位,定义零位,设置中断等操作。LM629初始化过程如下图5-3所示:NY定义零位 0X02设置输出端口码为8位复位LM629写入命令字0X00将命令字锁入LM629检测LM629是否忙?设置中断配置开 始 结 束图5-3 LM629初始化流程图LM629的初始化程序如下:/* 复位命令 */void LM629_RESET(void) /*复位*/ P0=0x00; /*0X05=PORT8命令*/WR_COMMAND(); WR_HIGH(); LM629_BUSY(); /*如果忙,则一直循环*/
46、 /* 设置输出端口号码为8位 */void LM629_PORT8(void) /*设置输出端口号码为8位*/ P0=LM_PORT8_CMD; /*0X05=PORT8命令*/WR_COMMAND(); WR_HIGH(); LM629_BUSY(); /*如果忙,则一直循环*/ /* 定义零位 */ void LM629_DFH(void)/*定义零位*/ P0=LM_DFH_CMD; /*DFH命令=0x02*/WR_COMMAND(); WR_HIGH(); LM629_BUSY(); /* 设置指定位置 */void LM629_SIP(void) /*SIP命令:设置指定位置 0
47、3Hex*/ P0=LM_SIP_CMD; WR_COMMAND(); WR_HIGH(); LM629_BUSY(); /* LM629初始化 */Void LM629_Init(void) LM629_RESET( ); /*复位命令*/LM629_PORT8( ); LM629_DFH( ); /* 定义零位*/LM629_SIP( ); 运动控制模块工作时,由控制器对LM629给出加速度、速度和目标位置值,每个采样周期都用这些值计算出新的命令和位置给定值并送人求和点。由编码器检测电机的实际位置,其输出信号经过LM629内部的位置解码器解码后作为求和点的另一个输入与给定值相减,得到的误差
48、值作为数字PID校正环节的输入。可以方便地调整PID控制器的参数从而满足稳定性、响应时间、超调量等要求。对于特性参数固定不变的负载,可在运动控制之前向LM629写入PID参数;而对于运动过程中特性参数发生变化的负载,可以在运动过程中,随时改变PID参数以适应不同特性需求。除了加速度,所有的运动参数均可在运动过程中加以改变。其控制流程图如5-4所示:0X0C 0X08 0X07 0X0A 0X0B 0X00 0X05 0X02 0X03 0X1B 主机控制命令?复位/异常 控制命令PID/运动 控制命令状态/信息 控制命令0X1F 0X01.开 始结 束图5-4 LM629运动控制流程图 用户命
49、令集下面的文字描述了LM629的用户命令集。一些命令函数可以单独使用,一些命令函数需要带上必要的控制参数。例如,命令STT(Start motion)不需要附加的数据;命令LFIL(Load FILter parameters)需要附加的数据(derivative-term采样周期和/或滤波器参数)。命令有下列功能:初始化、中断控制、滤波器控制、轨迹控制和数据报告。每个命令名下面为它的命令函数。初始化命令 下面四个LM629用户命令用于首先初始化系统。 复位命令:复位LM629 命令函数:LM629_RESET(void) PORT8命令:设置输出端口号码为8位 命令函数:LM629_PORT
50、8(void) DFH命令:定义零位 命令函数:LM629_DFH(void) 中断控制命令 下面七个LM629用户命令在用于中断主机的情形使用。为了潜在中断条件经由管脚17准确地中断微处理器,与命令MSKI一起的中断任务数据的相应位必须被设置为逻辑高电平(无任务状态)。 所有中断的辨识经过读和分析状态字都被微处理器所认识。尽管所有的中断经由命令MSKI均被屏蔽,每个情形的状态仍然映射到状态字。 SIP命令:设置指定位置 命令函数:LM629_SIP(void) LPEI命令:下载中断的位置偏移 命令函数:LM629_LPEI(uint16 PositionError) LPES命令:下载停止
51、的位置偏差 命令函数:LM629_LPES(uint16 PositionError) MSKI命令:MASK中断 命令函数:LM629_MSKI(uint16 mask) RSTI命令:复位中断 命令函数:LM629_RSTI(uint16 mask)滤波器控制命令 下面的两个LM629的用户命令用于设置派生阶段的周期,目的在于调整为所需的滤波器参数与系统协调,而有控制这些系统改变的时间。 LFIL命令:下载滤波器参数 命令函数:LM629_LFIL(uint16 command_word,uint16 kp_data,uint16 ki_data,uint16 kd_data,uint16
52、 il_data) UDF命令:修改滤波器 命令函数:LM629_UDF(void)轨迹控制命令 下面的两个LM629用户命令用于设置轨迹控制参量(位置、速度、加速度)、操作模式(位置或速度)和方向(只有速度模式)满足描述一个期望运动或选择手动停止模式和控制这些系统变换周期的要求。 LTRJ命令:下载轨迹参量 命令函数:LM629_LTRJ(uint32 command_word,uint32 acceleration_data,uint32 velocity_data,uint32 position_data) STT命令:开始运动控制 命令函数:LM629_STT(void)数据报告命令下
53、面7个LM629用来获得从LM629各种寄存器来的数据。报告状态、位置和速度信息。除RDSTAT外,数据都是在首先向命令端口写入相应命令后从LM629数据端口读得。 RDSTAT命令:读状态字 命令函数:LM629_RDSIGS(void) RDIP命令: 读标准位置 命令函数:LM629_RDIP(void) RDDP命令: 读期望位置 命令函数:LM629_RDDP(void) RDRP命令: 读实际位置 命令函数:LM629_RDRP(void) RDDV命令: 读取期望速率 命令函数:LM629_RDDV(void) RDRV命令: 读准确速率 命令函数:LM629_RDRV(void
54、) RDSUM命令:读综合阶段总和值 命令函数:LM629_RDSUM(void) CAN通讯模块设计 AT89C51CC03的CAN控制器AT89C51CC03单片机的CAN控制器有以下几部分构成:CAN内核、报文RAM(与AT89C51CC03内部 RAM相互独立)、报文状态寄存器和控制寄存器。在使用CAN控制器时,重点和难点是对CAN控制器的寄存器的使用,其内部寄存器的分类及其主要功能如下:CAN控制器协议寄存器该协议寄存器是用来配置CAN控制器,处理各种中断,监控总线状态以及置控制器为测试模式。CAN控制器协议寄存器可使用AT89C51CC03单片机的特殊功能寄存器通过索引方式间接访问,其中有些还可以很方便的通过AT89C51CC03内部特殊功能寄存器直接寻址来访问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论