




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1毕 业 论 文题 目 基于 LM629 的机器人单关节控制器设计 学院名称 电气工程学院 专业班级 自 动 0202 学生姓名 覃 峰 学 号 20024280223 指导教师 宁 祎 2006 年 5 月 29 日2摘 要近年来随着人工智能技术、计算机技术以及网络技术等相关技术的飞速发展,机器人在各个领域已经得到了广泛的应用,成为了一类关键的基础装备。机器人单关节控制器是机器人的重要组成部分,每个完整的机器人控制系统都是由单个的机器人单关节控制器所组成,因此机器人单关节控制器对机器人控制系统起着决定性的作用。LM629是美国国家半导体公司生产的可编程全数字精密运动控制芯片,内置PID算法和梯形图发生器能够自动生成速度曲线,平稳地加速、减速。本文采用LM629精密运动控制芯片、AT89C51CC03 单片机和少量的驱动电路构成了基于LM629和 CAN总线的机器人单关节控制器。实验表明,由 AT89C51CC03和 LM629建立的 CAN总线的机器人单关节控制器,不仅简化了机器人控制系统软、硬件设计,提高系统可靠性,减轻设计工作量,而且提高了系统性能,具有反应快,控制精度高、实时性能好等优点。通过对机器人单关节控制器的软硬件设计和反复的调试,所制作的机器人单关节控制器已经初步完成了预定的功能。AT89C51CC03 单片机对 LM629进行控制和初步的数据处理,通过 CAN现场总线与主机或其他设备进行实时通信,可以组成现场总线控制系统。在本次毕业设计中完成了机器人单关节控制器的设计制作及软件系统的设计调试。关键词 LM629 运动控制器 51单片机 CAN 总线 3Title 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 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 decisive 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 steadily. 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 design 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 controller 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 system. It has completed manufacture of the simplex articulatory controller of robot and debugging of the software system in this project.4Keywords LM629 movement controller 51 MCU CAN bus目 次1 绪论 11.1 机器人单关节控制器的研究背景及应用 11.2 机器人单关节控制器研究现状 22 机器人单关节控制器的主体设计 42.1 机器人单关节控制器的总体设计 42.2 机器人单关节控制器的方案论证 52.3 机器人单关节控制器的组成 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 4651. 绪论机器人单关节控制器的研究背景及应用机器人单关节控制器的研究背景近年来随着人工智能技术、计算机技术以及网络技术等相关技术的发展,对智能机器人的研究越来越多。机器人控制器成为各种智能控制方法(包括动态避障、群体协作策略)的良好载体;同时,以现场总线为代表的控制网络在工业以及其他控制系统中扮演着不可缺少的角色。机器人控制系统开始从集散控制系统(DCS)向现场总线控制系统(FCS)过度,现场总线将成为控制领域的主流。CAN 总线由于具有可靠性高、成本低、容易实现等优点,在控制系统中得到广泛的应用。由于机器人的各个组成部分构成网络化的分布式系统,为了开展多智能的调度、规划等控制,所以对机器人控制器的研究越来越受到重视。特别是在智能工程、控制工程以及机器人工程等领域起着举足轻重的作用。机器人控制系统之间的双向信息交换和实时数据传输需通过控制器来完成,因此其控制器的运算工作量和通信工作量都很大。如果采用集中控制,CPU 的运算速度难以满足实时性和高保真的性能要求。采用基于现场总线的分布式控制,把大量的伺服控制和传感器信息处理放在每个智能控制器节点来处理,有利于进一步提高控制系统的性能。机器人单关节控制器的传感器较多,线路比较复杂,线束的布局往往直接影响系统的性能。大量的布线不仅影响使用和维修,而且也不美观。机器人单关节控制器的主要应用机器人单关节控制器针对于各种智能机器人、工业机器人、航天机器人等的设计,对机器人各个关节进行实时的控制,因此机器人单关节控制器不仅可以对机器人的各个关节控制进行管理,而且在各个智能节点设备,也可以应用,特别是在研究和开发领域,更是不可或缺的工具。机器人单关节控制器作为一种很有潜力的高级机器人技术,在航天、军工、核工业、深海探测等特殊工作环境下正在大显身手,而且在微创手术、生物医学、虚6拟现实和地下开采等领域也扮演着越来越重要的角色。机器人单关节控制器是系统的关键设备,其性能好坏直接影响整个系统的可靠、稳定性。机器人单关节控制器研究现状国外研究现状国外的研究成果:目前,美国、英国、日本、新加坡、德国、法国、澳大利亚等国家都早已研制出机器人单关节控制。如:东芝试制家用机器人“ApriAlpha” 该概念模型配备了新开发的利用分散对象技术的开放式机器人控制器,因此可以很容易追加新功能。另外该公司建立了利用分散对象技术的“开放式机器人控制器架构(ORCA)”并且基于该架构新开发出控制器。采用模块化设计的 IRC5 控制器是 ABB公司最近推出的第五代机器人控制器,它标志着机器人控制技术领域的一次最重大。值得指出的是,由于将处理速度更高的微处理器引入至机器人控制器,从而显著地提高了机器人运动控制性能,使机器人制造商能将诸如减振算法、前馈控制、预测算法等先进的现代控制理论嵌入到机器人控制器内。图 1-1 为带机器人单关节控制器的机械手实物照片:7图 1-1 带机器人单关节控制器的机械手实物照片国内研究现状我国目前的研究状况:国家 863 计划在“八五”、“九五”和“十五”期间分别将机器人技术作为主题,制定了相应的高技术研究发展规划。“八五”期间重点围绕恶劣环境的室外移动机器人,用于处理核废料的遥控移动作业机器人,壁面爬行机器人,水下无缆自治机器人,高精度装配机器人等五种类型开展先进机器人控制技术研究。“九五”期间重点围绕汽车,家电等工业机器人产业化与以水下 6000米机器人为代表的特种机器人等方面开展了先进机器人关键技术与应用示范研究。“十五”期间进一步拓宽了机器人技术向自动化装备技术方面的发展,一方面围绕国家急需的关键基础装备,包括高精尖数控机床,全断面盾构掘进机与工程机械自动化生产线等开展了相应关键技术与应用示范研究另一方面围绕国家社会发展需求的机器人与自动化装备,包括深海载人潜器、仿人仿生机器人,危险作业与反恐防爆机器人医疗外科机器人等方面 开展了先进机器人控制器研究。机器人控制器在我国应用的主要问题是:机器人控制器价格昂贵,许多企业和科学研究机构无法接受;机器人控制器的许多标定基础是以外国标准进行的,由于技术保密,系统参数的修定只能由机器人控制器生产厂家来进行,无法适应我国产品品种多的现状。总之,无论从高校还是从企业来看,对机器人控制器的研究都已有很大的进展,虽然还是落后于发达国家的研究水平,但随着我国对科研研究力度的加大,对机器人单关节控制的研究将更为深入,相信在不久的将来会研制出更加先进的机器人控制器。82. 机器人单关节控制器的主体设计机器人单关节控制包括硬件电路和软件系统。硬件电路是软件系统的载体,因此,设计机器人单关节控制的电气部分先得确定硬件电路的设计方案,然后再通过软件系统控制其工作。机器人单关节控制器的总体设计总体设计思想 基于 LM629 精密运动控制器,利用 CAN 现场总线与其他设备控制器进行通信。通过调研决定选取单片机 AT89C51CC03 作为控制器的核心,C 语言作为设计程序语言。机器人单关节控制总体设计方框图如下图 2-1:图 2-1机器人单关节控制总体设计方框图拟解决的主要问题和研究的主要内容拟解决的主要问题:微处理芯片(AT89C51CC03)硬件电路设计及用高级语言 C 的程序设计;LM629 精密运动控制芯片的硬件电路设计及程序设计;CAN 现场总线通信的软件设计;9拟研究的主要内容:AT89C51CC03 的接口电路设计及 C 语言编程与 PCB 图的设计;选择 LM629 精密运动控制芯片以及光电编码器的确定;CAN 现场总线原理及应用;机器人单关节控制器的方案论证硬件电路的方案AT89C51CC03 是 ATMEL 公司推出的一款内带 CAN 控制器增强型 80C51 单片机。由于内置 CAN 控制器,具有抗干扰能力强和性能价格比高等优点,特别是在机器人控制和实时通讯方面更具有其独特的魅力。AT89C51CC03 具有完善的 CAN 控制器,利用 TXDC 和 RXDC 两个引脚来作为 CAN 通信接口。通过此功能可以方便的组成基于 CAN 总线的分布式控制系统,实现数据的实时传输和交换。AT89C51CC03 单片机内部嵌入的 ADC 模块具有 10 位数字量精度,共有 8 个模拟通道,不用外加专门的 ADC 即可以对模拟信号进行数字信号的转化。因此,AT89C51CC03 可以作为机器人单关节控制器的微处理器。如图 2-2 AT89C51CC03 片内资源示意图:10图 2-2 AT89C51CC03 片内资源示意图如图 2-3 AT89C51CC03 片 PLCC 封装的外观示意图:图 2-3 AT89C51CC03的 PLCC封装的外观示意图AT89C51CC03 增强型 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;118通道10位的ADC;CAN控制器,全面支持CAN2.0A、CAN2.0B协议;软件系统的方案在编写单片机程序时,可以用汇编语言编写,也可以用 C 高级语言来编写,还可以用两者混合编程。C 语言作为高级语言,它更接近和体现人的设计思想;C 高级语言是目前流行的一种计算机语言,它主要用于单片机和一般微型计算机。C 高级语言程序设计快、可读性好、可靠性高、可移植性好、代码转换质量高。单片机 C 高级语言的特点是同时兼有高级语言和汇编语言的优点,还能像汇编语言那样直接利用 CPU 的硬件特性进行程序设计,直接操作单片机的硬件和接口。C 高级语言目标模块还可以同汇编连接组成一个完整的程序,目前在单片机应用领域,C 高级语言越来越受到人们的重视。使用 C 高级语言的工作效率高,其生成的机器代码质量也是高水平的。 总体方案的确定总体方案:基于 LM629 运动控制芯片和内带 CAN 控制器的 AT89C51CC03 单片机构成的机器人单关节控制器,机器人单关节控制器示意图如下图 2-4 所示。运动控制芯片 LM629 通过 8 位数据线和 6 根控制线与单片机 AT89C51CC03 的 IO 口相连。单片机通过数据线向 LM629 发送位置或速度命令、设定 PID 调节参数,或者从 LM629 中读取速度、加速度等数值。LM629 输出的脉宽调制幅度信号和方向信号,经过功率放大后驱动直流电动机。增量式光电编码器提供闭环控制所需的反馈信号(A、B、IN) ,梯形图发生器计算出位置或速度模式下所需控制的运动轨迹。AT89C51CC03 为 LM629 提供加速度、速度和目标位置量,在每个采样周期用这些值来计算出新的命令和位置给定值,将其作为指令值。由增量式光电编码器检测电动机的实际位置,其输出信号经过 LM629 四倍频后进行解码,形成位置反馈值。指令值与反馈值的差值作为数字 PID 校正环节的输入。通过数字调节器 PID 计算,LM629 输出脉宽调制信号 PWMM 和方向信号 PWMS 用于控制,进而驱动电动机运动到指定的位置。LM629 在进行位置控制的同时,还对速度进行控制。LM629 在接受到主机送来的位置信号后,按梯形图生成加速、匀速、减速的速度曲线,曲线与坐标横轴所包围的面积就是指定的位置。PID 算法中的比例、积分和微分系数有12时需要进行修改,因此将它们存贮在单片机的中。控制器和主机可以通过 CAN 现场总线进行实时通信。机器人单关节控制器示意图如图 2-4 所示: 图 2-4 机器人单关节控制器示意图机器人单关节控制器的组成基于 LM629 的机器人单关节控制器,由传感器电路,控制电路,单片机接口电路,CAN 现场总线接口电路以及应用程序软件等组成。传感器电路:把位移信号和转数信号转化成电信号。传感器电路是机器人单关节控制器的输入部分,是系统的数据源。控制电路:对数据的采集、初步处理和执行控制的芯片,并通过接口电路与单片机进行数据传输。单片机接口电路:单片机和运动控制芯片以及 CAN 现场总线通信接口所需要的电路。单片机接口电路是机器人单关节控制器数据交换及控制处理的基础。CAN 现场总线接口电路:对单片机传来的数据通过接口电路与主机或者其他设备控制器进行数据传输。133. LM629 运动控制器选择LM629 致力于运动控制处理器与一些直流和无刷直流饲服电动机或其他具有积分增量位置反馈信号的伺服机制的设计。这部分执行高精密数字运动控制所要求的精密实时计算任务。微处理器控制软件接口因一个高级别命令集而更便利。LM629有 8 位输出,这 8 位输出可驱动一个 8 位或 12 位的 DAC。这个组成需要建立一个伺服系统简化直流电动机/驱动器、旋转编码器、数模转换、功率放大器和 LM629。它提供一个 8 位脉宽调制(PWM)输出,用于直接驱动 H 开关(H-switches) 。这部分在 NMOS 中制作并封装为 28 管脚双列直插形式或 24 管脚贴片封装形式。最大频率为 6MHZ 和 8MHZ 的版本均用到后缀-6 或-8,分别地用于表示不同的版本。它们由 SDA 把 SDA 中心处理器和单元设计为一体。基于以上诸多优点,我们选择LM629 作为机器人单关节控制器的运动控制芯片。LM629 的特点32 位位置、速度和加速度寄存器16 位的可编程数字化 PID 过滤器可编程微分采样周期8 位或 12 位 DAC 输出数据(LM628)8 位信号级 PWM 输出数据(LM629)内部梯形速率特性发生器在运动期间可以改变速率、目标位置和过滤器参数位置和速度两种操作模块实时可编程微处理器中断8 位异步并行微处理器接口标准脉冲输入的积分增量编码器在 28 管脚双列直插式封装或一个 24 管脚贴片封装的优点(只有 LM629)14LM629 的操作理论应用 LM629 建立一个伺服系统。微处理器通过 I/O 端口与 LM629 通信更易规划梯形速度特性和数字补偿滤波器。DAC 输出送入外部数模转换器产生功率放大的信号且驱动电动机运动。旋转编码器为趋近位置提供反馈伺服回路。梯形速度特性发生器为位移操作模式或速度操作模式计算所要求的轨迹。在操作状态,LM629 用期望位置(特性发生器位置)减去实际位置(反馈位置)得到位置偏离被数字过滤器用来驱动电动机运动到期望位置。位置反馈接口LM629 经由旋转编码器接入电动机,提供了三个输入端:两个积分信号输入和一个标准脉冲输入。积分信号用于保持电动机的精密位置轨迹。每次一个积分输入出现逻辑变换时,LM629 的内部位置寄存器随之增加或减少。编码器提供的周期被四倍频。每个编码器信号输入与 LM629 时钟同步。一些编码器提供的可选 INDEX 脉冲输出每旋转一周呈现一个逻辑低电平状态。如果用户使用 LM629 这样编程,当三个编码器输入都是逻辑低电平时将把绝对的电动机位置记录到专用的寄存器。速度轨迹发生梯形速率特性发生器计算电动机相对时间的期望位置。在位置操作模式,微处理器详细说明加速度,最大速率和最终位置。LM629 利用这些数据通过标明的加速度影响运动直到达到最大速率或直到在标明的最终位置减速度开始停止。减速度等于加速度。在运动过程的任何时刻,最大速率和/或目标位置可以改变,而且电动机将相应地加速或减速。当在速率模式操作时,电动机以指定的加速度加速到指定的速度而且保持指定的速率直到命令结束。以不变速度接近期望位置保持速率。如果在速率操作模式运动有干扰,长期的平均速度保持不变。如果电动机不能保持指定的速率(例如闭环引起的) ,期望位置将继续增加,结果导致非常大的位置偏差。如果这种情形没被发觉,对电动机的压迫力随之减小,电动机为了与预期位置(仍然是被指定的期望值)一致会达到一个很高的速率。这种情形很容易被发觉。 15PID 反馈滤波器LM629 运用 PID 滤波器补偿控制环。通过应用一个与位置偏差成比例的恢复力加于电动机上,电动机在期望位置有效,加上偏差的积分,加上偏差的微分。下面的离散时间等式说明了 LM629 的控制执行:在这里 u(n)为电动机在采样时间 n 的控制信号输出,e(n)为在采样时间 n 的位置偏差,n 表示微分采样速度,而且 kp,ki,kd 为用户下载的离散时间滤波器参数。第一个阶段,比例阶段,提供一个与位置偏差成比例的恢复力。第二个阶段,积分阶段,提供一个随着时间增长的恢复力,而且因此确保静态位置偏差为 0。第三个阶段,微分阶段,提供一个与位置偏差的变化速率成比例的压力。在操作中,滤波器运算法则接收从总的连接回路得来的 16 位偏差信号。这个偏差信号充满 16 位以保证可预知的行为。另外乘上滤波器参数 kp,偏差信号加到先前的偏差上(组成积分信号) ,而且以所选择的积分采样周期所确定的速度,再减去先前的偏差(从积分信号) 。所有滤波器乘法都为 16 位操作;只有乘积的底部 16 位有用。 积分信号保持 24 位,但只有顶部 16 位有用。这个测量技术结果导致参数 ki值的更可用(不敏感)范围。这 16 位正好转换为 8 位且与滤波器参量 ki 相乘组成一组由于电动机控制输出。这个乘积的相对级与参数 il 相比较,而且至少适当地标记量然后加入电动机控制信号。每个微分采样周期,微分信号与参数 kd 相乘。这个乘积加入到每个采样周期的电动机控制输出,独立于用户所选择的微分采样周期。kp,限制的 ki 和 kd 产生阶段被相加组成一个 16 位数。依赖于输出模式(字号) ,高 8 位或高 12 位成为电动机控制输出信号。LM629 读和写操作当端口选择端(PS)为逻辑低电平时,微处理器通过主机 I/O 端口向 LM629写入数据。期望命令编码应用到并行端口且写输入被激活。当 WR 输入为上升沿时命令字锁入 LM629。当写命令字时需要首先读状态字而且核对被称作“busy bit”(Bit0)的状态。当 busy bit 为逻辑高电平时,不会发生命令写状态。busy bit 决不可能保持逻辑高电平状态长于 100ps,而且在 15 到 25ps 之内显著降低。0()()()()(1)npi dNunkekeken16微处理器用相似的方法读 LM629 的状态字:当 PS 为逻辑低电平时激活读(RD)输入;当 RD 为低电平时状态信息保持不变。当 PS(Pin 16)逻辑高电平时发生写和读数据到/从 LM629(就像写命令和读状态) 。这些写和读通常是双字节字的整数(从 1 到 7) ,而且每个字的首字节更为重要。每个字节都需要写(WR)或读(RD )触发。当传输数据字时,需要首先读状态字和核对 “busy bit”的状态。当busy bit 为逻辑低电平时,用户可以随之传输一个数据字的双字节,但 busy bit 必须重新核对而且在试图传输下一个字节前被确认为逻辑低电平(当传输多字节字时) 。数据传输通过 LM629 内部中断完成;当 LM629 可能不对数据传输(或命令字)产生中断时,busy bit 将通告微处理器。当 busy bit 为高电平时写命令,命令将被忽略。当写命令字或读或写数据的第二个字节时,busy bit 迅速变为逻辑高电平。旋转编码器接口旋转(位置反馈)编码器接口由三相组成:相 A(管脚 2) ,相 B(管脚 3)和标准脉冲(管脚 1) 。标准脉冲输出对一些编码器无效。LM629 将与两种编码器类型工作,但命令 SIP 和 RDIP 在没有标准脉冲时没有意义(或者为了这个输入选择两个输入中的一个,要确定不使用时将管脚 1 置为高电平) 。一些注意事项相对于使用在高高斯噪音环境下有更多优点。如果噪音添加入编码器输入(一个或两个输入)且直到下一个编码器转换才持续,LM628 译编器逻辑将拒绝它。模仿积分数值或经由编码器转换的噪音必须通过近似 EMI 设计来消除。简易数字过滤设计仅仅减小噪音的易感性(这将会总是有宽于过滤器可以消除的噪音脉冲) 。此外,任何噪音过滤设计都将减小译码器带宽。在 LM629 中已经规定不包括有利于提供最大可能译码器带宽的噪音过滤器(由于简易过滤不消除噪音的问题) 。试图驱动与简单 TTL 线相当长距离的编码器信号也能以信号衰减(短暂的上升时间和/或响声)的形式成为“噪音”的一个来源。这也能引起一个系统丢失位置的完整性。也许能通过在编码器输入上使用平衡链驱动器和接收器拥有对噪音感应更有效的对策。LM628/LM629 芯片图如下图 3-1 所示:17图 3-1 LM628/LM629芯片图4. CAN 现场总线CAN 通信协议CAN 通信协议 2.0B 规定了 4 种不同的帧格式:数据帧、远程帧、错误帧和超载帧。其中数据帧用来传输数据的,远程帧用于请求数据,超载帧用于扩展帧序列的延迟时间,而当局部检测出错条件后产生一个全局信号出错帧。在这里,我们使用的是 CAN2.0B 协议。CAN2.0B 标准帧CAN 标准信息帧为 11 个字节,包括两部分:信息和数据部分。前 3 个字节为信息部分,如表 4-1 所示:表 4-1 CAN2.0B标准帧7 6 5 4 3 2 1字节 1 FF RTR X X DLC(数据长度)字节 2 (报文识别码)ID.10ID.3字节 3 ID.2ID.0 RTR字节 4 数据 1字节 5 数据 2字节 6 数据 3字节 7 数据 418字节 8 数据 5字节 9 数据 6字节 10 数据 7字节 11 数据 8注:字节 1为帧信息:第 7位(FF)表示帧格式,在标准帧中,FF=0;第 6位(RTR)表示帧的类型,RTR=0 表示为数据帧,RTR=1 表示为远程帧;DLC 表示在数据帧时实际的数据长度。字节 2、字节 3为报文识别码,11 位有效。字节 4字节 11为数据帧的实际数据,远程帧时无效。CAN 2.0B 扩展帧CAN 扩展帧信息为 13B,包括两部分:信息和数据部分。前 5 个字节为信息部分,如表 4-2 所示:表 4-2 CAN2.0B扩展帧7 6 5 4 3 2 1字节 1 FF RTR X X DLC(数据长度)字节 2 (报文识别码)ID.28ID.21字节 3 ID.20ID.13字节 4 ID.12ID.5字节 5 ID.4ID.0 X X X字节 6 数据 1字节 7 数据 2字节 8 数据 3字节 9 数据 4字节 10 数据 5字节 11 数据 6字节 12 数据 7字节 13 数据 8至于数据帧对于不同的 CAN 上层协议,存在着不同的定义,本机器人单关节19控制器使用的是 CAN2.0B 标准帧,应用层由用户定义,因为 CAN只提供了物理层和数据链路层。CAN 控制器配置CAN 控制器在应用时,根据所要完成功能的不同而需要做的不同配置做具体描述。这包括报文对象初始化处理、发送对象配置、接收对象配置、中断处理配置;另外,还有发送对象、位定时寄存器等配置。报文对象初始化处理报文 RAM 中的报文对象配置在使用前必须由 CPU 来初始化为零或者被设置为无效。报文对象的配置是通过相应的接口寄存器来设置其屏蔽码、仲裁场、控制场和数据场值,而这一设置过程由相应的命令寄存器来完成。当 CAN 控制寄存器中的 GRES 位置零,CAN 控制器中的协议控制器、状态机制和报文处理机将控制 CAN 的内部数据流。接收到的报文通过接收滤波后都存放在报文 RAM 中,而得到传输请求的报文都要移入 CAN 控制器的移位寄存器中并通过CAN 总线传出。发送对象的配置当报文对象作为发送对象时,仲裁寄存器将被应用,它们定义了即将发送的报文识别符和类型,如果使用 11 位识别符(标准帧) ,那么使用的是 ID0ID11 ,而ID12 ID28 将被忽视。如果 TxIE 位被置位,则 TxOK 位在此报文对象被成功发送后被置位;如果RxENA 位被置位,在接收到匹配的远程帧将引起 TxRqst 位被置位。若数据寄存器将被使用,TxRqst 和 RxENA 在数据有效前不会被置位。屏蔽寄存器可以用来允许相同识别符的数据帧组被接收。中断处理在所有中断中,状态中断具有最高优先级,报文对象的中断优先级随着报文编号的增大而减小。如果有几个中断产生,那么 CAN 中断寄存器将指向优先级最高的中断,而不是按中断先后顺序排列。状态中断通过读取状态寄存器来清除,报文中断通过清除报文对象的 ENCH n位来清除。处于中断寄存器中的中断识别符 ENCH n 能表明中断的原因,如果这个寄存器的值为 0,没有中断产生;否则,有中断发生。20CPU 控制着状态寄存器的改变是否可以引起中断;当中断寄存器的值不为0(CANCONCH 控制寄存器中的 IE 位)时中断队列是否有效。CPU 有两种方式判断报文中断源,每一种是判断中断寄存器中的 ENCH n 位;另一种是顺序扫描中断发生寄存器。5. 机器人单关节控制器硬件设计机器人单关节控制器硬件电路是控制系统的载体,主要包括位置检测模块、运动模块和CAN通讯模块。位置检测模块用于把采集过来的信号处理为控制器可以识别的信号;CAN通讯模块用于电平转换以使其他机器通过CAN协议通信;运动模块用于控制运动。AT89C51CC03单片机是数据通信和控制的核心,也是位置检测模块、运动模块和CAN通讯模块不可或缺的组成部分。位置检测模块设计机器人控制器主要有两种传感器,一种是用于感知机器人局部环境的红外传感器;另外一种则是检测电动机轴位置的增量式光电编码器。本文主要介绍电动机轴位置反馈信号的检测,采用检测电动机轴位置的增量式光电编码器。电路将增量式光电编码器输出的差动信号(A+、A-、B+ 、B-、 ,Z+、 ,Z-)经过AM26LS32差分放大器合成单端信号A、B、IN。合成后的单端信号A、 B、IN分别与LM629的管脚A 、B、 IN相连。利用差动信号传输,可以有效地解决干扰问题和远距离传输问题。为了进一步消除干扰,在输入端每根线上都加上一个滤波电容,在每根差动的信号线上接一个用于线路阻抗匹配的限流电阻。增量式码盘反馈的脉冲信号经过四倍频后,提高了分辨率。A和B的逻辑状态每改变一次, LM629的位置寄存器就加(减)1。当码盘的A、 B、IN都为低电平时,产生一个Index信号送人寄存器,记录电动21机的绝对位置。图5-1为位置检测模块电路,其中CON8为增量式旋转编码器接口。图5-1 位置检测模块电路运动模块设计运动模块电路运动模块的核心芯片是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调节器的运算,输出脉宽调制信号和方向信号,由引脚PWMM(脉宽调制信号)和PWMS输出(方向控制信号)。功率放大部分主要由L298N芯片和续流二极管组成。L298N是双极性H桥功率放大驱动器,与LM629输出信号PWMM和PWMS 通过一个逻辑门电路相连,控制直流电机的正、反转和停止。LM629精密运动控制器与AT89C51CC03单片机的连接电路如下图5-2所示:22图5-2 LM629与AT89C51CC03接口电路运动控制初始化LM629 准备工作前,必须初始化 LM629 运动控制芯片,设置各个控制参数,否则 LM629 将无法正常工作。在初始化时,首先复位 LM629,向 LM629 写入控制命令字 0X00,将命令字写入 LM629 控制寄存器中,等待 LM629 空闲时再进行下一个命令字的输入。然后设置 LM629 输出为 8 位,定义零位,设置中断等操作。LM629 初始化过程如下图 5-3 所示:23图 5-3 LM629初始化流程图LM629 的初始化程序如下:/* 复位命令 */void LM629_RESET(void) /*复位*/ P0=0x00; /*0X05=PORT8 命令*/WR_COMMAND(); WR_HIGH(); LM629_BUSY(); /*如果忙,则一直循环 */ /* 设置输出端口号码为 8 位 */NY定义零位 0X02设置输出端口码为 8 位复位 LM629写入命令字 0X00将命令字锁入 LM629检测 LM629是否忙?设置中断配置开 始结 束24void 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 命令:设置指定位置 03Hex*/ P0=LM_SIP_CMD; WR_COMMAND(); WR_HIGH(); LM629_BUSY(); /* LM629 初始化 */Void LM629_Init(void) LM629_RESET( ); /*复位命令*/LM629_PORT8( ); LM629_DFH( ); /* 定义零位*/25LM629_SIP( );运动控制模块工作时,由控制器对 LM629 给出加速度、速度和目标位置值,每个采样周期都用这些值计算出新的命令和位置给定值并送人求和点。由编码器检测电机的实际位置,其输出信号经过 LM629 内部的位置解码器解码后作为求和点的另一个输入与给定值相减,得到的误差值作为数字 PID 校正环节的输入。可以方便地调整 PID 控制器的参数从而满足稳定性、响应时间、超调量等要求。对于特性参数固定不变的负载,可在运动控制之前向 LM629 写入 PID 参数;而对于运动过程中特性参数发生变化的负载,可以在运动过程中,随时改变 PID 参数以适应不同特性需求。除了加速度,所有的运动参数均可在运动过程中加以改变。其控制流程图如 5-4 所示:图 5-4 LM629运动控制流程图用户命令集下面的文字描述了 LM629 的用户命令集。一些命令函数可以单独使用,一些命令函数需要带上必要的控制参数。例如,命令 STT(Start motion)不需要附加的数据;命令 LFIL(Load FILter parameters)需要附加的数据(derivative-term 采样周期和/或滤波器参数) 。命令有下列功能:初始化、中断控制、滤波器控制、轨迹控制和数据报告。每0X0C 0X08 0X07 0X0A 0X0B 0X00 0X05 0X02 0X03 0X1B 主机控制命令?复位/异常 控制命令 PID/运动 控制命令 状态/信息 控制命令0X1F 0X01开 始结 束26个命令名下面为它的命令函数。初始化命令下面四个 LM629 用户命令用于首先初始化系统。 复位命令:复位 LM629 命令函数:LM629_RESET(void) PORT8 命令:设置输出端口号码为 8 位 命令函数:LM629_PORT8 (void) DFH 命令:定义零位 命令函数: LM629_DFH(void) 中断控制命令下面七个 LM629 用户命令在用于中断主机的情形使用。为了潜在中断条件经由管脚 17 准确地中断微处理器,与命令 MSKI一起的中断任务数据的相应位必须被设置为逻辑高电平(无任务状态) 。所有中断的辨识经过读和分析状态字都被微处理器所认识。尽管所有的中断经由命令 MSKI 均被屏蔽,每个情形的状态仍然映射到状态字。 SIP 命令:设置指定位置 命令函数:LM629_SIP(void) LPEI 命令:下载中断的位置偏移 命令函数: LM629_LPEI(uint16 PositionError) LPES 命令:下载停止的位置偏差 命令函数: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 il_data) UDF 命令:修改滤波器 命令函数:LM629_UDF(void)轨迹控制命令下面的两个 LM629 用户命令用于设置轨迹控制参量(位置、速度、加速度) 、操作模式(位置或速度)和方向(只有速度模式)满足描述一个期望运动或选择手动停止模式和控制这些系统变换周期的要求。27 LTRJ 命令:下载轨迹参量 命令函数:LM629_LTRJ(uint32 command_word,uint32 acceleration_data,uint32 velocity_data,uint32 position_data) STT 命令:开始运动控制 命令函数:LM629_STT(void)数据报告命令下面 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) RDSUM命令:读综合阶段总和值 命令函数:LM629_RDSUM(void) CAN 通讯模块设计AT89C51CC03 的 CAN 控制器AT89C51CC03 单片机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东教育出版社出版六年级品德与社会复习
- 2026届长沙市重点中学化学九年级第一学期期末经典模拟试题含解析
- 山东省肥城市2026届九上化学期中学业质量监测试题含解析
- 2026届江苏省江阴市澄要片英语九年级第一学期期末检测试题含解析
- 2026届四川省甘孜县九年级化学第一学期期中学业水平测试模拟试题含解析
- 2026届安徽省宿州市鹏程中学化学九年级第一学期期末教学质量检测模拟试题含解析
- 水电人防劳务合同5篇
- 办公空间租赁合同主体变更及租金调整协议
- 财务稳健型私人小企业员工薪资支付合同
- 跨国婚姻离婚协议:资产评估与跨境财产分配
- 前列腺增生科普课件
- 项目部商务管理办法
- 2025重庆医科大学附属第一医院(编制外)招聘18人考试参考试题及答案解析
- 精麻药品培训知识课件
- 2025细胞与基因治疗科研领域蓝皮书
- 2025年财务核算招聘笔试模拟题
- 2025年高考语文全国二卷真题拓展:语言文字运用“衔接+感情色彩+关联词语+错别字”
- 2025年司法考试题库(附答案)
- 铁路客运市场营销现状分析及策略优化
- 心衰护理题库及答案
- 仪表工安全基础知识培训课件
评论
0/150
提交评论