




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM的嵌入式系统在竞赛机器人设计方案第1章 绪论人们对机器人的幻想与追求已有3000多年的历史。当时人类总希望制造一种像人一样的机器,以便代替人类完成各种工作。西周时期,我国的能工巧匠偃师就研制出了能歌善舞的伶人,这是我国最早记载的机器人。公元前2世纪,亚历山大时代的古希腊人发明了最原始的机器人自动机,它是以水、空气和蒸汽压力为动力的会动的雕像,它可以自己开门,还可以借助蒸汽唱歌。随着现代工业文明的发展,那么按现代的定义究竟什么是机器人呢?1987年国际标准化组织(ISO)对工业机器人进行了定义:“工业机器人是一种具有自动控制的操作和移动功能,能完成各种作业的可编程操作机”。1988年法国的埃斯皮奥将机器人定义为:“机器人是指能根据传感器信息实现预先规划好的作业系统”。我国科学家对机器人的定义是:“机器人是一种自动化的机器,所不同的是这种机器具备一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,是一种具有高度灵活性的自动化机器”。前中国工程院院长宋健指出:“机器人学的进步和应用是20世纪自动控制最有说服力的成就,是当代最高意义上的自动化”。机器人技术综合了多学科的发展成果,代表了高技术的发展前沿,它在人类生活应用领域的不断扩大,正引起国际上重新认识机器人技术的作用和影响。机器人是一种通过编程,可以自动完成一定操作或移动作业的机械装置。或者更确切地说,有像人的上肢那样高度灵活,能做复杂动作的机械。有视觉、听觉等感觉功能,有识别功能、能行动的装置。1.1 国内外机器人发展状况当今世界各国以高新技术为代表的综合国力的竞争日趋激烈。随着机器人的发展诞生了一门跨多学科、综合性技术很强的学科机器人学,它广泛涉及自动控制、计算机、电子技术、通讯、新材料、传感器、人工智能和机械工程等学科技术,特别是新一代计算机芯片处理速度的飞跃和人工智能技术的发展为机器人技术的发展提供了强劲动力。现代机器人的研究始于20世纪中期,其技术背景就是计算机和自动化的发展以及原子能的开发利用。随着计算机技术和人工智能技术的飞速发展,使机器人在功能和技术层次上有了很大的提高,移动机器人和机器人的视觉和触觉等技术就是典型的代表。由于这些技术的发展,推动了机器人概念的延伸。80年代,将具有感觉、思考、决策和动作能力的系统称为智能机器人,这是一个概括的、含义广泛的概念。这一概念不但指导了机器人技术的研究和应用,而且又赋予了机器人技术向深度和广度发展的巨大空间,水下机器人、空间机器人、空中机器人、地面机器人、微小型机器人等各种用途的机器人相继问世,许多梦想成为了现实。将机器人的技术(如传感技术、智能技术、控制技术等)扩散和渗透到各个领域形成了各式各样的新机器机器人化机器。当前与信息技术的交互和融合又产生了“软件机器人”、“网络机器人”等名称,这也说明了机器人所具有的创新活力。竞赛机器人作为机器人的一个重要分支越来越受到世界各国的重视。它一般以某个竞赛主题为背景,通过发挥参赛者各种智慧和知识,设计制作出具有一定功能和一定对抗能力的机器人。举办这样的活动可以增强国民对机器人的了解,提高青少年的创新和动手能力。正因为如此,大凡机器人发展得比较好的国家都要举办一些类似的全国性的比赛。1.2 竞赛的主题和规则 总结以前比赛的经验以及参赛要求,增强系统的通用性、可移植性和可扩展性,设计目标是开发一套基于 ARM 的高性能的嵌入式机器人控制系统。机器人大赛比赛场地如图1和图2所示。马来西亚的88层、高452米的 PETRONAS 双子塔楼(KLCC)是当今世界上最高的双子塔,是吉隆坡市政中心最著名的标志性建筑。大赛的主题是比赛双方各自以一组机器人搬运聚苯乙烯积木模仿建造双子塔及其周边建筑。比赛中每个队需要设计制作一个手动机器人和至少一个自动机器人。手动机器人由一名参赛队员手动操作手动机器人在外围手动区将外围的积木搬到己方的主塔上,每放上一个积木得1分;自动机器人预装好积木后从自动启动区(图中四方格)出发将积木按自己策略通过规定的运动区域和自己选择的路径放置到场地中间的三个柱子(桥墩)上,边上的两个桥墩上每放一个积木得2分,最中间的桥墩上每放一个积木得3分。首先建成本队所属的双塔之一和两个“天桥”桥墩的参赛队,则实现了“竣工”,将获得胜利。如果在计时3分钟时间到而双方没有队伍完成“竣工”,则比较双方各自所得分数束判定胜负。赛场地面用2mm厚的聚乙烯片(PVC地板革)铺设。图1 场地投影图图2 场地平面图1.3 课题的研究内容及主要工作机器人技术是一门跨多门学科的高新技术,研究和发展机器人技术可以推动我国传统产业的改造和高新技术产业化的进程。机器人技术的核心是控制工程技术。本次课程设计论文出发点是在吸取以往机器人大赛经验的基础上,设计开发一套基于 LPC2131 的参赛机器人的嵌入式控制系统。传统的参赛机器人控制平台都是基于8位或16位的C51系列单片机,为了提高系统的高速实时性、可扩展性和可移植性,本次课程设计论文目标是在基于 ARM 的32位微处理器平台上设计制作的机器人能实现位置和姿态控制,并将其应用于机器人路径引导,使机器人能在静止场景中实时高速完成预先选定的目标任务。本次课程设计论文的研究内容是:嵌入式的控制平台要能成功移植;系统具有多路信号的采集、存储、处理和识别能力,并且接口要丰富,便于裁减和扩展;软件应能实现预定的动作功能;能耗要低,电源容量要小;系统不仅对外界而且对自身信号环境要具有一定的抗干扰能力。本次课程设计论文的主要工作有以下几个方面:(1)采用低功耗、高性能的嵌入式 ARM7TDMI-S 32位处理器作为核心代替以前常用的C51系列单片机及多 CPU 控制,为参赛机器人设计支持实时仿真调试的控制系统。(2)对系统的任务模块进行了规划,完成了行走驱动、工作提升、排障对抗三大功能子系统的设计。(3)设计控制流程,实现对各功能子系统的控制调度管理。系统硬件结构设计主要包括有:电机的选择与控制;I/O信号隔离转换模块;位置及方向反馈模块;机构运动控制电路;供电电源模块等。(4)设计传感器接口和信号接口,如光电检测、行程开关、红外线等,使机器人能够实时感知赛场上的位置和状态要素,并通过这些接口与其他控制单元构成闭环控制系统。(5)采用多传感器对机器人协调控制并设计相应的控制算法,对机器人的直线纠偏和转弯算法进行重点研究。(6)设计制作机器人机构,绘制制作控制系统的 PCB 原理图和电路板,对硬件电路和软件进行调试。第2章 基于ARM的嵌入式系统计算机是应数值计算的要求而诞生的。在计算机发展的早期,电子计算机技术一直是沿着满足高速数值计算的道路发展的。直到20世纪70年代,计算机在数值计算、逻辑运算与推理、信息处理以及实际控制方面表现出非凡能力后,人们对计算机在通信、测控和数据传输等领域给予更大的期望。这些领域的应用主要是直接面向控制对象,控制系统嵌入到具体的应用体中而不以计算机的面貌出现,能在现场可靠地运行,体积小,应用灵活,突出控制功能,特别是对外部信息的捕捉与丰富的I/O功能等。从此可以看出,满足这些要求的计算机系统与满足高速数值计算的计算机是不可兼得的。2.1 嵌入式系统通常把满足海量高速数值计算的计算机称为通用计算机系统;而把面向测控对象,嵌入到实际应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统(Embedded System)。IEEE(国际电气和电子工程师协会)对嵌入式系统的定义为:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置。从总体来说,通用计算机系统主要用于数值计算、信息处理,兼顾控制功能;而嵌入式计算机系统主要用于控制领域,兼顾数据处理。在一个综合系统中,会出现通用计算机系统与嵌入式计算机系统的结合,各自扮演不同的角色,共同完成系统任务。国内对嵌入式系统普遍认同的定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物。2.1.1 嵌入式系统的组成一个典型的嵌入式系统主要由四个部分组成:嵌入式处理器/微处理器、外围硬件设备、嵌入式操作系统以及应用软件系统,如图3所示,其中的嵌入式微处理器和外围硬件设备称为硬件部分,嵌入式操作系统和应用软件属于软件部分。在实际应用中由操作系统控制应用软件与硬件的交互,由应用软件控制系统的运作和行为。应用软件系统嵌入式微处理器嵌入式操作系统(RTOS)外围硬件设备嵌 入 式 系 统图3 嵌入式系统的组成嵌入式操作系统并不是必须的。当需要运行多任务且内存分配复杂,系统需要大量协议支持,需要很好的图形用户接口 GUI 等时,系统应考虑使用操作系统。嵌入式系统的核心部件是嵌入式处理器。据不完全统计,全世界嵌入式处理器的品种数量己经超过1000多种,流行体系结构有30几个,其中8051体系占大多数。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅 Philips 就有近100种。目前嵌入式处理器的寻址空间可以从 64KB 到 256MB,处理速度从0.1MIPS 到 2000MIPS。根据其发展现状,可以分为四大类:(1)嵌入式微控制器(Microcontroller Unit,MCU),典型代表是各种类型的单片机。微控制器是目前嵌入式系统工业的主流,微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。嵌入式微处理器是在通用 CPU 基础上发展起来,增加满足测控对象要求的外围接口电路,用于测控领域。(2)嵌入式 DSP 处理器(Digital Signal Processor,DSP),是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊的设计,具有很高的编译效率和执行速度。(3)嵌入式微处理器(Microprocessor Unit,MPU),是由通用计算机的 CPU演变而来,它的特征是具有32位以上的处理器,具有较高的性能,但与普通处理器不同的是,嵌入式微处理器只保留和嵌入式应用紧密相关的功能硬件,去除其它的冗余功能部分,这样就做到了以最低的功耗和资源实现嵌入式应用的特殊要求,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式微处理器类型有 Aml86/188、386EX、SC-400、PowerPC、68000、MIPS、ARM/Strong ARM 等。(4)嵌入式片上系统(System on Chip,SoC),SoC 的最大特点是实现了软硬件的无缝结合,直接在处理器片内嵌入操作系统的代码模块。由于绝大部分系统构件都在片内,整个系统特别简洁,不仅减小了系统的体积和功耗,而且提高了系统的可靠性。比较典型的 SOC 产品是 Philips 的 Smart XA,少数通用系列如 Siemens 的 TRICORE、Motorola 的M-Core。2.2 基于ARM的微处理器2.2.1 ARM处理器的结构和特点ARM 由英国的 Advanced RISC Machine Limited 公司最先推进,目前这个概念被认为是对一类处理器的通称。ARM 处理器采用 RISC(Reduce Instruction Computer,精简指令集计算机)结构,与传统的 CISC(Complex Instruction Computer,复杂指令集计算机)相比,具有如下的特点:RISC 指令集的种类少,指令格式规范,通常只使用一种或几种格式,并且在字边界对齐;利用流水线和超标量技术让处理器在一个时钟周期可以完成一条或多条指令;几乎所有的指令都使用寄存器寻址方式的简化寻址方式;多数的操作都是寄存器到寄存器的操作,只以简单的 Load 和 Store 访问内存。由于 ARM 处理器具有上述结构上的特点,使得它具备了很多优点:(1)体积小、低功耗、低成本、高性能;(2)支持 Thumb(16位)/ ARM(32位) 双指令集,能很好的兼容8位、16位器件;(3)大量使用寄存器,指令执行速度快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高。2.2.2 ARM7TDM I处理器ARM 处理器自问世以来推出了很多系列,其中的 ARM7,ARM9,ARM9E 和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。在这几大通用系列中 ARM7 系下的以 ARM7TDMI 为内核的 ARM7 处理器是目前使用最广泛的32位嵌入式 RISC 处理器。对于 TDMI 的基本含义是:T:支持16位压缩指令集 Thumb;D:支持片上 Debug;M:内嵌硬件乘法器(Multiplier);I:嵌入式 ICE,支持片上断点和调试点。(1)指令流水线ARM7TDMI 使用3级流水线,以提高处理器指令的流动速度,指令的执行分为三个阶段:取指、译码和执行。图4是具体的操作流程:执行取指译码取指取指译码译码执行执行图4 ARM7TDMI 单周期指令的三级流水线操作当正常操作时,在执行一条指令期间,其后续的一个指令可以进行译码,且第三条指令从存储器取指。程序计数器指向正在取指的指令,而不是正在执行的指令。(2)存储器访问ARM7TDMI 只有加载、存储和交换指令可以访问存储器中的数据。数据可以是8位(字节)、16位(半字)和32位(字)。字必须是4字节边界对准,半字必须是2字节边界对准。(3)嵌入式 ICE-RT 逻辑嵌入式 ICE-RT 逻辑为 ARM7TDMI 核提供了集成的在片调试支持,可以利用ICE-RT 逻辑来编程断点或观察断点出现的条件。嵌入式 ICE-RT 逻辑包含调试通信通道(DCC) Debug Communications Channel。DCC 用于在目标处理器和调试器之间传送信息。嵌入式 ICE-RT 逻辑通过 JTAG 接口(Joint Test Action Group)进行控制。(4)ARM7TDMI 操作模式ARM7TDMI 支持7种操作模式:(一)用户模式:这是程序正常的运行状态;(二)快速中断模式:为快速数据传输或通道处理设计;(三)中断模式:用于通用的中断操作;(四)监控模式:操作系统的保护模式;(五)终止模式:取数据或指令错误后进入该模式;(六)系统模式:操作系统中有特权的用户模式;(七)无定义模式:当有未定义的指令被执行时进入该模式。模式之间的切换可以通过软件控制,多数的用户程序都是在用户模式下运行,进入非用户模式一般都是完成操作系统中的一些操作。(5)ARM7TDMI 的寄存器ARM7TDMI 共有37个寄存器,其中31个为32位通用寄存器,6个为状态寄存器。但是这些寄存器不能同时被访问,处理器的状态和操作模式决定了哪些寄存器可以被访问。以上是 ARM7TDMI 的结构特点,本文采用的 Philips 公司的 LPC2131 处理器就是属于该系列处理器中的一款。2.3 嵌入式系统的一般设计流程嵌入式系统设计一般由5个阶段完成:1系统需求分析首先按系统的功能性需求和非功能性需求两方面确定设计任务和设计目标,并完成设计规格说明书,作出正式设计指导和验收的标准。2体系结构设计描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技术和模块化设计等现代软件工程常用方法。3硬件/软件设计基于体系结构对系统的软硬件并行实施详细设计。4系统集成把系统的软硬件和执行装置集成在一起进行调试,发现并改进单元设计中的错误。5系统测试对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。综上所述,嵌入式系统的开发可以说是把开发者从反复进行硬件平台的设计过程中解脱出来,从而可以把主要精力放在编写特定的的应用程序上。参赛机器人控制系统作为一个嵌入式平台在设计中一样按系统结构体系可裁减的原则进行,这也是为创建一个通用的参赛机器人控制平台的研究目的所要求。第3章 控制系统硬件设计竞赛机器人嵌入式控制系统硬件设计的任务包括合理地选择微处理器、电机及驱动器件,设计制作信号电路隔离的I/O控制板、支持各功能元件动作的开关板以及寻线识别系统和电源系统设计。嵌入式处理器是整个硬件系统的核心部件,它的选型要满足系统的快速实时响应要求,其性能的好坏直接决定整个系统的运行效果,所提供功能的强弱直接决定了嵌入式应用的适应范围和开发复杂度。嵌入式处理器一般具备以下四个特点:(1)对实时多任务有很强的支持能力,能够完成多任务并且具有较短的中断响应时间,从而使内部的代码和实时内核的执行时间缩短到最低限度。(2)具有很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时这也有利于软件的诊断。(3)可扩展的处理器结构,以便能最迅速地开发出满足应用的最高性能的嵌入式处理器。(4)嵌入式处理器必须功耗很低,尤其对于便携式的无线及移动计算和通信设备中靠电池供电的嵌入式系统更是如此,一般功耗限制在甚至级。嵌入式系统在竞赛机器人上的应用是直接面向控制对象体的,要求的是突出的控制功能和计算的高速实时,特别强调是对外部信息的捕捉与丰富的I/O扩展功能等。3.1 EasyARM2131开发板EasyARM2131 开发板是广州周立功单片机发展有限公司设计的 EasyARM213 X 系列开发套件之一。它采用 PHILIPS 公司基于 ARM7TDMI-S 内核、单电源供电和 LQFP64 封装的 LPC2131 主芯片。其开发板外形和功能框图如图10和图11所示。板上有丰富的功能部件和特点:(1)采用“主板+CPU PACK 适配器”的形式方便用户根据需要选择主芯片;(2)支持 ADS1.2集成开发环境及 PHILIPS 公司所有 ARM 型号的 MCU 的仿真与开发;图5 EasyARM2131 开发板(3)通过串口进行在系统编程和在应用编程的数据能存储在容量为 32KB 的FLASH 存储器系统上;同时也提供 8K 的片内静态 RAM 资源;(4)向量中断控制器(VIC)的可编程分配机制接收所有的中断请求输入,并将它们编程分配为3类:FIQ、向量IRQ和非向量IRQ,并将这些不同外设的中断优先级进行动态分配和调整;(5)包含3个寄存器的管脚连接模块允许将微控制器的管脚和片内外设的多路开关配置为不同的功能; (6)通用并行 I/0 口(GPIO)寄存器控制没有连接到特定外设功能的管脚,并将管脚可以动态配置为输入或输出;(7)1个 SPI 串行 I/0 控制器和1个同步串行口控制器(SSP)都能支持同步、串行、全双工通信传输;(8)带1个10位的8路输入的 A/D 转换器;(9)2个 UART( UART0 和 UART1 )能进行标准的发送和接收数据线外,UART1还提供一个完全的调制解调器控制握手接口;图6 EasyARM2131 开发板功能框图(10)两个32位的可编程定时/计数器都能进行4路捕获和4路比较匹配与输出;(11)2个标准的 I2C 总线接口最高可支持 400Kb/s的总线速率并可接标准的 I2C 接口部件;(12)看门狗定时器能使微控制器在进入错误状态经过一段时间后复位;(13)实时时钟(RTC)提供一套用于测量时间的计数器;(14)具有建立在标准定时器 0/1 模块上的 PWM 功能输出;(15)能提供范围为 10MHz25MHz 的晶振、PLL、复位和唤醒定时器、存储器映射、功率控制等系统控制模块;(16)支持通过 JTAG 串行端口进行仿真和调试。3.2 机器人控制系统机器人控制系统是采用 LPC2131 作为控制核心,通过该 MCU 的控制,使机器人能够自主地按照预定的路线行走、避障、定位;当机器人到达预定位置后,能够执行预设的动作顺序,机构将积木堆放到准确位置,并要有一定的保护措施。其控制框图如图12所示。图7 机器人控制框图从图12中可以看出:两块基于 ARM7 的 LPC2131 芯片是整个机器人系统的控制核心,由于每块芯片上只有两个定时/计数器,两个步进电机发脉冲需要占用着两个资源,而对外部各种定时中断无法处理,所以系统采用两块来完成。两块芯片按主从式布置,一主一副,通过主 ARM 向副 ARM 发出的握手信号(主 ARM 的 PO.8、P0.9、P0.10 引脚与副 ARM 的 P0.3、P0.4、P0.5 引脚对应连接)来保证它们协议的实现。通过设计控制程序来控制 MCU 系统的输出信号状态,从而控制机器人的驱动系统,使机器人按照预设路线和方向行走,输出的开关信号控制机器人的得分和对抗避障等动作执行机构。同时在行走的过程中,色标传感器能够检测机器人行进的位置和方向状态,对这些状态的逻辑返回值进行比较判别,随时纠正机器人直线运动位置的偏差,确保机器人行走位置方向的准确性。位置开关信号作为输入信号对各动作机构起保护作用。I/O 光隔控制板完成对所有数字和模拟信号的隔离比较以免干扰,同时对有关信号进行功率放大以提高驱动能力。因此,MCU、色标传感器和两驱动步进电机三者之间构成了一个闭环的系统,MCU、位置开关和得分动作机构也构成一个半闭环的系统。而对抗避障机构则完全是一个开环系统,它在什么时间打开和动作完全是由软件实现的。EasyARM2131 的所有功能部件与 CPU 之间都是通过板上跳线器的连接和断开来实现。跳线器组1和2全部短接右边时,开发板的 J6 的所有 I/O 引脚才有效。控制关系设计确定后,需要对各接口的信号端口进行定义和分配,如表1和表2所示。表1 主 ARM 控制接口信号分配表器件信号说明I/O类型信号名端口名方向电机方向信号ODR1P0.19脉冲信号OPU1P0.20主驱动电机方向信号ODR2P0.22脉冲信号OPU2P0.23色标传感器1横格计数信号IHGJSP0.16色标传感器2直线完成信号IZXWCP0.8色标传感器3第二转弯完成信号IDEZWP0.9色标传感器4第三转弯完成信号IDSZWP0.10色标传感器5障碍检测信号IDETP0.13前得分臂正转信号OARM1aP0.26反转信号OARM1bP0.27前到位信号IFS1P0.4后到位信号IBS1P0.5后得分臂正转信号OARM2aP0.28反转信号OARM2bPO.29前到位信号IFS2PO.6前到位信号IBS2PO.7前挡板倒下信号OBAFaP1.17弹射器1释放信号OTSQ1P1.18弹射器2释放信号OTSQ2P1.2l启动装置运行信号(路径1)ISTA1PO.11运行信号(路径2)ISTA2PO.12高压脉冲通电加高压信号OGYKZP0.13复位装置复位信号IRSTnRST表2 副 ARM 控制接口信号分配表器件信号说明I/O类型信号名端口名方向电机方向信号ODR1P0.19脉冲信号OPU1P0.20主ARM向副ARM发的信号直线完成信号IZXWCP0.3开始第二转弯信号IKSDEZWP0.4开始第三转弯信号IKSDSZWP0.5色标传感器组方向偏左信号IPZP0.17方向居中信号IJZP0.18方向偏右信号IPYP0.19方向舵电磁铁锁定信号OCLRPI.16高压脉冲开始信号ISTARTP0.11复位装置复位信号IRSTnRST3.2.1 电机及驱动器在系统中用到了两种电机:三相混合式步进电机和有刷直流电机。(一)步进电机及驱动器步进电机必须使用专用的步进电机驱动器,驱动过程如图13所示。选用步进电机首先要确定在其输入电压范围内电机拖动负载能输出的最高扭矩能达到工况要求,当然如果电机力矩较大或超过此范围,可以考虑加配减速装置,同时转速指标在步进电机的选取时也至关重要,步进电机的特性是随着电机转速的升高,扭矩下降,其下降的快慢和很多参数有关,如:驱动器的驱动电压、电机的相电流、电机的相电感、电机大小等等,一般的规律是:驱动电压越高,力矩下降越慢;电机的相电流越大,力矩下降越慢。设计方案的转速控制范围可以参考各型电机的矩频特性曲线。图8 步进电机驱动原理系统选用北京斯达特的 86BYG350B 步进电机,驱动器采用 Q3HB64MA。86BYG350B 电机的驱动电压是 AC4060V,最大静转矩可达 4.0Nm ,相电流有效值可达 5.2A ,这可以保证电机在停止状态下提供很高的锁定力矩,提高机器人的防冲撞能力。Q3HB64MA 为等角度恒力矩细分型驱动器,驱动电压 DCl240V,相电流在5.8A 以下。该驱动器内部采用伺服控制原理的电路,此电路可以使电机低速运行平稳,震动和噪音很小,电机在高速时力矩大大高于二相和五相混合式步进电机。其主要性能特点有:设有16档等角度恒力矩细分,最高分辨率60000/转;采用独特的控制电路;最高反应频率可达 200Kpps;步进脉冲停止超过 100ms 时,线圈电流自动减半; 双极恒流斩波方式;光电隔离信号输入/输出;驱动器电流从0.5A/相到5.8A/相连续可调;单电源输入,电压范围:DCl240V。图14给出了该电机和驱动器与信号的连接图。图9 电机驱动器接线图 (二)直流电机工作提升机构用的电机是绕组式有刷直流电机 DB5501。它的输入电压是DC24V,额定输出功率 120W 足够它完成堆放积木的动作。对它的控制主要包括有电机正反转、启停、转速控制。在设计时采用双掷双刀继电器完成桥式电路的功能,调速可以加一 MOS 管,通过控制 MOS 管的开关时问来达到转速控制的目的。电路原理图如图15:图10 直流电机驱动控制原理14分别是继电器的四个触点,当常闭触点1、4闭合时电机正转;当长开触电2、3闭合时电机反转。这样实现了电机的正反转。PWM 波控制 MOS 管的导通时间就可以控制电机的速度。为了改善波形,消除干扰,采用由 555 定时器组成的迟滞比较器(施密特触发器)、稳压管、反向二极管等保护电路对图15完善,完善后的电路如图16所示:图11 直流电机转向调速控制原理图Vcc 是12V,R1、R2 为限流电阻;D1、D2 为保护二极管防止反向电流,D4是续流二极管;稳压管 D3 起到保护 MOS 管漏、栅极的作用。3.2.2 I/O光电隔离控制模块在基于 MCU 的嵌入式系统实际应用中,常常会遇到各种干扰,如电磁波干扰、浪涌电压干扰等,这些干扰会造成 ARM 程序的“跑飞”甚至死机。因此需设计各种方法来避免降低这些干扰。光电隔离单元是为了将干扰对系统的影响降到最低而设计的。光电隔离通常使用一个光耦(Photo coupler)将电子信号转换为光信号,在另一边再将光信号转换回电子信号,两个电路可以互相隔离。这样系统就必须有两个电源,一个供数字电路、一个模拟供电,模拟地与数字地完全分开,弱电的控制信号通过光耦传递给强电部分。这样强电即使产生了电磁干扰,也没有回路传到弱电去,同时也可以解决弱信号驱动能力不够的问题。图17给出了从开发板去方向电机的脉冲信号的光电隔离示意图。光耦采用TLP521-4,其内部有四路。U1B是一片 SN7406 由于它的灌电流能力较强,所以控制信号采用图示接法。由于系统控制信号较多,其中有输出的信号也有输入的信号,根据 TLP521-4 芯片资料,限流电阻采用 330 排阻,输出采用 5K 排阻。VDD3.3 为弱电信号电源,+5V 为模拟端,如果去接继电器则要接 +24V 直流端。这样,当单片机输出低电平时,光耦内的发光管导通,发出的光使光敏三极管导通,使光耦输出为低电平;反之输出为高电平。图12 光电隔离电路图光电隔离部分电路包括五个光耦,一片 ULN2803,一片 7404 等组成。直流电机提供启动/停止信号接口;为低电压检测电路提供电源电平信号接口;第四片光耦作为扩展的四路输出接口;第五片光耦作为扩展的四路输入接口。扩展的四路输入接口输入端经 ULN2803 整形厉输入光耦;扩展的四路输出经 ULN2803 放大后输出,可以直接驱动电磁铁、继电器等。3.2.3 运动机构控制电路在系统中用单刀双掷的电磁继电器加限拉开关的反馈来控制直流电机的正反转,用固态继电器来完成控制干扰高压脉冲和弹射器的释放。通过这些动作使自动机器人完成得分臂的伸展和收回以及干扰系统的适时动作完成。继电器是一种当输入量(电、磁、声、光、热)达到一定值时,输出量将发生跳跃式变化的自动控制器件。继电器的输入信号从零连续增加达到某个阈值,继电器的输出信号立刻从跳跃到,即常开触点从断到通;一旦触点闭合,输入量继续增大,输出信号将不再起变化。当输入量从某一大于值下降到时,继电器开始释放,常开触点断开,输出信号。们把继电器的这种特性叫做继电特性,也叫继电器的输入-输出特性。继电器的原理上实现了控制回路与驱动回路的隔离,也即数字地与模拟地分离,这是使用继电器的一大优点,同时保证了小功率到大功率驱动回路的控制。按照不同的作用原理分类,继电器可以分为电磁继电器、固态继电器、时间继电器、温度继电器、加速度继电器等几种。一般常用的是电磁继电器和固态继电器(SSR)。其中电磁继电器是指在输入电路内电流的作用下,由机械部件的相对运动产生预定响应的一种继电器。固态继电器是指依靠半导体器件和电子元件的电、磁和光特性来完成其隔离和继电切换功能的一种继电器。系统中用了 AIKS 的 ARL2F-P 的电磁继电器,其最大触点电压为 DC24V ,为了保证执行电机不误动作,提高可靠性,系统用了一对具有互锁功能的继电器,其中一路控制前得分臂正反转的引脚连接如图18所示,ARM1a 和 ARM1b 接I/O的前得分臂的前进和后退控制信号,R1 和 R2 分别为线圈电压输入端。图13 继电器互锁功能图3.2.4 电源系统竞赛机器人的电源系统包含开发板板上电源和外部电源两部分。(一)板上电源LPC2131 开发板的内核和I/O均使用 3.3V 的单电源。电源电路如图19,外部 5V 直流电源由 USB 接口 CZ1 输入,然后通过 SPX1117M-3.3 将电源稳压成 3.3V 。SPX1117M-3.3 的特点是输出电流大,精度高,稳定性高,功耗低。图14 开发板供电电路图图20给出了系统复位电路图。由于 ARM 芯片的高速、低功耗和低工作电压导致其噪声容限低,所以 LPC2131 上带 I2C 存储器的电源监控芯片CAT1025JI-30 对系统的可靠性和稳定性都有很大提高,提高了系统的可靠性。 (二)外部电源在第3章总体设计对各子系统的功率元件进行了阐述。外部电源主要目的一是向各功率器件提供足够的功率,二是保证外部模拟信号与板内的数字信号隔离以保证控制信号的稳定,提高系统的抗干扰能力。图15 系统复位电路图出于这两个目的,系统对外部电源电路进行了如下分解,如图21所示。系统的总电源是一个 DC24V 的高能 Ni-H 电池组,通过三个 DC/DC 电源模块将 24V 的直流电压变换到需要的电压值,并将这些输出电压接到对应的功率器件接点。我们用的是深圳安时捷公司的电源模块,这些模块具有输入电压范围宽、转换效率高、输入与输出高隔离、具有过流保护和自恢复功能等优点。第4章 系统软件设计硬件系统和软件系统一起共同搭建了一个机器人运动平台。软件设计的目的是为机器人的硬件执行提供决策,它可以通过三个问题来描述:(1)“我现在何处?”(2)“我要往何处去?”(3)“要如何到该处去?”。问题一要求机器人通过感知系统获取的环境信息定位出自己在一个全局坐标或在一个局部环境中的位置,问题二要求确定移动机器人要到达的目的地,在确定了当前位置和目的地后,根据环境模型,就可以选择相应的运动方式,第三个问题则是设计合适的控制算法控制机器人准确实现任务目标。对于这三个问题都要有软件架构和对应模块算法来完成,并且嵌入式系统郜需要相应的开发平台和开发环境。4.1 ADS的集成开发环境ADS 集成开发环境是 ARM 公司推出的 ARM 核微控制器集成开发工具,成熟版本为 ADS1.2。ADS1.2 支持 ARM10 之前的所有 ARM 系列微控制器,支持软件调试及 JTAG 硬件仿真调试,支持汇编、C、C+ 源程序,具有编译效率高、系统库功能强等特点,可以在 Windows98、Windows XP、Windows2000 以及 Red Hat Linux 上运行。ADS1.2由6个部分组成,如表4所示。表4 ADS1.2 的组成部分名称描述使用方式代码生成工具ARM编器,ARM的C、C+编译器,Thumb的C、C+编译器,连接器由CodeWarrior IDE 调用集成开发工具CodeWarrior IDE工程管理,编译连接调试器AXD,ADW/ADU,armsd仿真调试指令模拟器ARMulator由AXD调用ARM开发包一些底层的例程,实用程序(如from ELF)一些实用程序由CodeWarrior IDE 调用ARM应用库C、C+函数库等用户程序使用由于在工程控制领域用户一般直接操作的是 CodeWarrior IDE 集成开发环境和 AXD 调试器,所以本章我们重点介绍这两部分软件的使用。1CodeWarrior IDE 简介ADS1.2 使用了CodeWarrior IDE 集成开发环境,并集成了 ARM 汇编器、ARM的 C/C+ 编译器、Thumb 的 C/C+ 编译器、ARM 连接器,包含工程管理器代码生成接口、语法敏感(对关键字以不同颜色显示)编辑器、源文件和类浏览器等等。2AXD 调试器简介AXD 调试器为 ARM 扩展调试器(即 ARM extended Debugger),支持硬件仿真和软件仿真(ARMulator),包括 ADW/ADU 的所有特性。AXD 能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存嚣和内存的数据等等。3LPC2131 微控制器工程模板在建立新工程时,ADS1.2 提供了几个标准工程模板,使用各个模板建立的工程,它们的各项设置均有不同之处,方便生成不同结构的代码,如 ARM 可执行映象(生成 ARM 指令的代码)或 Thumb 可执行映像(生成 Thumb 指令的代码),或 Thumb、ARM 交织映象(生成 Thumb、ARM指令交织的代码)。针对 LPC2131,ARM 定义了6个工程模板,这些模板一般包含的设置信息有 FLASH 起始地址0x00000000、片内 RAM 起始地址 0x40000000、编译连接选项及编译优化级别等等;模板中包含了 LPC2100 系列 ARM7 微控制器的起动文件,包括 IRQ.S、STARTUP.S、TARGET.C;模板还包含了 LPC2100 系列 ARM7 微控制器的头文件(如:LPC2294 .h 和 LPC2294.inc,LPC2294 的寄存器是向下兼容的,所以对LPC213X 系列一样适用),分散加载描述文件(如:mem_a.scf、mem_b.scf、mem_c.scf)等等。4程序下载器程序的固化有两种方法:一种是采用 JTAG 接口下载 Flash。这需要 JTAG 仿真嚣的支持,Easy JTAG仿真器支持 LPC2131 芯片的 Flash 下载,这样就可以使用这一功能将调试好的程序下载到 Flash 中,以脱机运行。本系统就是采用的这种方式进行调试的。另一种采用 ISP 下载。先用 ADS 生成 HEX 文件,然后打开 LPC2131 ISP软件,通过串口将程序固化在芯片中。4.2 系统控制软件总体设计ADS1.2 集成开发环境针对 LPC2131 微控制器定义了4个工程模板。通过这些模板用户可以建立自己的一个工程。我们用的模板是 ARM Executable Image for LPC2131,该模板是在无操作系统时,所有 C 代码均编译成为 ARM 指令。每个工程有三个生成目标(target system):DebugInRAM、DebugInFLASH 和RelInFLASH。我们系统采用的是,生成目标 DebugInFLASH,它支持片内 FLASH调试模式,程序固化在片内 FLASH 中。在 DebugInFLASH 下,一个工程由4部分构成:分散加载描述文件 scf、头文件 *.h、目标文件 target 和用户文件 user。前面三部分系统模板都自带,只是注意:一是在头文件 *.h 下的端口定义头文件 port.h 要由用户定义;二是在 LPC2131 的工程模板下中断处理是通过软中断的方式管理的,增加了对开关处理的函数,分别为 IRQEnable()、IRQDisable()、FIQEnable()和FIQDisable(),供用户调用。用户主要是加载调试 user 文件。在竞赛机器人系统中控制软件的任务主要包括软件流程设计、端口头文件的定义、系统的初始化、电机速度和方向调节模块、机器人动作模块、中断服务模块以及数据交换模块。4.3 竞赛机器人程序结构设计嵌入式 LPC2131 芯片支持基于 ADS1.2 的开发环境,它支持多种编程语言如汇编、C、C+ 等的源程序,我们的代码用的是 C 语言。C 语言是一种结构化的程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C 语言有功能丰富的库函数,运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C 语言支持当前程序设计中广泛采用的有顶向下结构化程序设计技术。此外 C 语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力保障。因此使用 C 语言特别适合控制类软件代码。从 C 语言程序的结构上划分,C 语言函数分为主函数 main() 和普通函数两种。一个源程序只有一个主函数,但可能有很多的普通函数。对普通函数从不同角度或以不同的形式又可以对他们进行如下分类:一种是标准库函数,一种是用户自定义函数,这些普通函数可以实现特定的功能。C 源程序从主函数入口按顺序执行,其他函数通过主函数调用来完成。4.3.1 程序总体流程程序总体流程是基于竞赛策略对应的路径的。图22描述了第3章我们设计的一种路径方案的整个动作流程图。图16 机器人动作流程图4.3.3 系统的初始化对于32位的 ARM 应用系统中,软件大多数采用 C 语言进行编程,而 ARM处理器启动后只是识别汇编代码,所以需要编写一段汇编代码使得启动后的 CPU能够进入 C 语言的 main() 函数。这段代码就是启动代码(boot loader),主要是为了运行 C 语言程序提供基本运行环境。它可以实现堆栈初始化,系统变量初始化,中断系统初始化,I/O 初始化,外围初始化以及地址重映射等操作。启动代码是嵌入式系统中应用程序的开头部分,它与应用程序一起固化在 ROM 中,并首先在系统上运行。设计好启动代码是设计嵌入式程序的关键,也是系统能够正常工作的前提。启动代码所执行的操作主要依赖与 CPU 内核的类型以及正在开发的嵌入式系统软件中需要使用 CPU 芯片上对应的资源。对于 LPC2131 处理器,将启动代码划分为 Vectors.s,Init.s,Target.h 和 Target.c 四部分。Vectorss 包含异常向量表、堆栈初始化及中断服务程序与 C 程序的接口;Init.s 包含系统初始化代码,并跳转到 ADS 提供的初始化代码;Target.c 和Target.h 包含目标板特殊的代码,包括异常处理程序和目标板初始化程序,这样做的目的是为了减少汇编代码,同时把不需要修改的代码独立出来以减少错误改动。图23给出了系统设计的启动代码的程序流程(即 Boot loader 代码应该进行的操作)。图17 系统启动代码流程按 5.2.2 节所述,在 ADS1.2 集成开发环境里,当我们在添加工程模板时相关的初始化代码已经同时添加了。我们这里所说的初始化主要是 I/O 的初始化,因为这是与实际的工程环境相对应的。* 函数名称:void Initialize_main()* 函数功能:使对主 ARM 的各 IO 端口进行初始化*void Initialize_main ()PINSEL0=0x00000000; /将P00:14设置为GPIOPINSEL2=PINSEL2&(-0x08); /P125:16连接GPIO/设置相应信号位为输出方向IO0DIR = IO0DIR | PU1; /方向电机的脉冲信号IO0DIR = IO0DIR | PU2; /主电机的脉冲信号IO0DIR = IO0DIR | DR1; /方向电机的方向信号IO0DIR = IO0DIR |
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年产科胎儿窘迫抢救处理模拟试卷答案及解析
- 民族常识课件
- 2025年心理医学常见疾病诊断治疗模拟试卷答案及解析
- 2025年产科手术操作规范考试答案及解析
- 2025年护理专业基础护理知识运用模拟考试答案及解析
- 2025年肾脏透析疗程护理考核答案及解析
- 民族团结石榴籽课件
- 2025年老年医学常见老年病诊疗挑战答案及解析
- 中央关于新质生产力解读
- 组织部学期方案
- T/CACEM 22.6-2022校车运营服务管理第6部分:评价与改进
- 购物中心行业研究报告2024-2025商业洞察
- AI智能体的感知与理解
- 新闻记者职业资格高频真题含答案2025年
- 教科版(2024)科学一年级上册教学计划(全册)
- 《工程制图》课件
- 炉渣综合利用项目可行性研究报告立项申请报告范文
- 临床医学研究中的数据管理与分析
- 广东工业设计城规划方案(9.2终版)图文
- 廉政协议合同协议
- 成品油行业知识培训课件
评论
0/150
提交评论