1、第 1 页 共 48 页双轮自平衡移动机器人的设计摘 要:随着大中城市私家车的逐渐增多,市区交通变得日益拥堵,空气质量变得日益恶化,并且大量珍贵的土地被车库和停车场侵占,严重降低了城市居民的生活质量和幸福感。而双轮自平衡移动机器人的出现将彻底解决以上问题,其行驶使中占用道路面积小、结构简单易于存放、零尾气排放的特点,使得汽车使用导致的城市拥堵、空气质量变差等问题迎刃而解。所以,对双轮自平衡移动机器人的研究有着着广泛的市场前景和重要的社会意义。本文介绍了一种基于 32 位高速 ARM 内核 MCU 的双轮自平衡移动机器人的设计,给出了系统的方案设计、硬件设计、控制算法实现和外设驱动编写的详细步骤
2、和内容,为双轮自平衡移动机器人的实现提出了一种灵活、廉价的可行方案。关键词: 双轮自平衡 机器人 MCU ARM 第 2 页 共 48 页The design of wheeled self-balancing mobile robotAbstract: With the private cars increased gradually in the cities , urban traffic is becoming more congeste, air quality has become increasingly worse, and a lot of valuable land occ
3、upied by the garage and parking, severely reducing the quality of life and happiness of urban residents. The wheeled self-balancing mobile robot will completely solve the above problem occurs, its off-road driving to the small, simple structure, easy to store, zero-emission features, make the city c
4、ar use leading to congestion, air quality deterioration and other issues resolved. Therefore, wheeled self-balancing mobile robot has a broad market prospects and important social significance.This paper introduces a high-speed 32-bit ARM core-based MCU-wheeled self-balancing mobile robot design, gi
5、ven the system design, hardware design, control algorithm, and peripheral drivers and content of the preparation of the detailed steps for double wheel mobile robot to achieve self-balancing presents a flexible, low-cost options.Key words: wheeled self-balancing,robot,ARM,MCU1 绪论11 机器人的定义及研究意义机器人技术作
6、为 21 世纪非常重要的技术,与网路技术、通信技术、基因技术、虚拟现实技术等一样,属于高新技术。它涉及的学科有控制技术、传感器技术、计算机技术、微电子技术、通讯技术、人工智能、仿生学等多种学科。关于什么是机器人,有许多种不同的定义,主要是因为它具有一定的模糊第 3 页 共 48 页性。1979 年美国机器人协会把机器人描述为“可重复编程的多功能操纵器,设计成通过不同的编程来执行多种任务的专门设备” 。国际标准化组织则对机器人作了如下的定义:“机器人是一种能够通过编程和自动控制来执行诸如作业或移动等任务的机器” 。我国科学家对机器人的定义是:“机器人是一种自动化机器,所不同的是这种机器具备一些与
7、人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,具有高度的灵活性的自动化机器” 。虽然这些定义形式并不完全相同,但它们都比较系统地概括了机器人的本质性内容:机器人是机器;具有一定的仿人性能力;是在某种场合下可以代替人工作的自动化装置。20 世纪 60 年代,美国斯坦福研究院( SRI)的 Nils Nilssen 和 Charles Rosen 等人于 1966 年至 1972 年研造出了自主移动机器人 Shakey6,这打开了移动机器人研究的开端。随着传感技术和工业自动化的发展,机器人进入成长期,机器人开始向工业机器人方向发展,并被用于焊接和喷涂等作业中。到 70 和 80
8、 年代,随着电子计算机技术和人工智能的迅速发展,机器人进入实用化时代,发展成为具有各种移动机构、通过传感器控制的机器。到了 90 年代,对工业机器人的生产与需求进入了高潮。人工智能、模糊控制、遗传算法、神经网络等先进技术的应用,使机器人具有自主判断、决策和感知功能。使得对机器人技术的研究应用领域也在不断扩大。海洋开采、星球探险、RoboCup 足球机器人、类人型机器人、服务机器人等各种用途的机器人相继问世。我国在七五科技攻关计划中将工业机器人和水下机器人的研究和开发列入了科研计划,由机械部等部门组织了点焊、弧焊、喷漆、搬运等型号的工业机器人的攻关,使中国的机器人技术一起步就瞄准了实用化的方向。
9、1986 年国家把智能机器人列为高技术发展计划,研究目标是追赶世界先进水平,填补自己的空白,研究的主要内容是围绕特种机器人进行攻关。到了 90 年代,确定了特种机器人与工业机器人及其应用并重、以应用带动关键技术和基础研究的发展方针,成功的研制出具有自主知识产权的工业机器人系列产品,完成了一批机器人应用工程。十余年来,智能机器人主题的研究使得全国各系统的机器人研究队伍团结起来,在国家相关部门的大力支持和帮助下,经过不懈努力,取第 4 页 共 48 页得了令世人瞩目的硕果,把我国机器人事业的研究、开发、应用和产业化推向了新水平。机器人研究的领域主要分成三类,即工业机器人、服务机器人以及娱乐机器入。
10、工业机器人已应用于许多工业相关领域,目前正朝着水下、空间、核工业、医用以及军用机器人等方面发展。娱乐机器人包括机器人宠物、具有对抗性的比赛机器人(如舞蹈机器人和足球机器人)等。服务机器人可以为人类提供某项或某些项服务,主要用于迎宾、翻译、导游、短距离运输和家庭服务等场所。12 动态平衡机器人的特点及优势移动机器人可以简单的分为两种类型:静力学上的稳定平衡和不稳定平衡。通常来说,前者指具备三个或三个以上轮子的机器人,后者指只有两个或一个轮子的机器人。对于只有一个或两个轮子的机器人,在静止状态下不能稳定平衡,若要其保持稳定必须采用动态平衡,我们称之为动态平衡移动机器人。动态平衡移动机器人具有以下特
11、点:1)机器人的平衡是个动态过程;机器人在平衡点附近不停地变化进行调节以保持平衡;2)重心的高度对机器人运动和硬件设计的限制小。多轮(三轮或以上)移动机器人虽然可以稳定地平衡,可是重心过高则机器人起动或急停时有倾倒的危险。因此重心必须要求很低。因而设计时总是拉大机器人的水平截面积,降低高度。这样会造成机器人体积变大,质量增加,某些功能会受到限制。动态平衡移动机器人却无这方面的约束,重心的高低引起的不平衡已经通过动态平衡原理解决,因此重心的高低无严格限制;3)相比较多轮移动机器人,双轮(或单轮)移动机器人硬件上要简单很多,也更轻,运动上更灵活;4)动态平衡移动机器人因为结构简单,硬件上可以提供进
12、一步开发新功能的空间。鉴于动态平衡移动机器人具有上述优点,可以完全应用探星机器人或军用机器人上,体现动态平衡移动机器人的优势,改善探星机器人或军用机器人的性能。因而有必要对其做进一步的研究。第 5 页 共 48 页本论文提出的双轮动态平衡移动机器人是一种两轮式左右并行布置结构的自平衡系统,与其它类型的机器人相比最主要的特征是要解决平衡问题,即要在各种状态下保持动态平衡。该机器人利用平衡传感器和辅助传感器采集的数据,根据建立的系统数学模型和控制算法,最终控制两个伺服电机。使机器人在静止、前进、后退、加减速、刹车和旋转运动状态下,本体能够始终保持平衡稳定的状态,该过程类似一个具有柔性结构的移动式倒
13、立摆。13 动态平衡机器人的国内外发展现状双轮动态平衡移动机器人的基础是将倒立摆原理移植到移动机器人上。关于倒立摆的研究多年来国内外已经研究非常成熟,其文献也相当之多,然而更重要的是如何将倒立摆有效地应用在移动机器人上。目前国内外对动态平衡移动机器人已经有了较为相应的研究,出现了一些成果。1.3.1 Segway 机器人简介1995 年美国著名发明家 Dean Kamen 开始秘密研制 Segway,直到 2001 年 12 月这项属高度机密的新发明才被公布出来。 2003 年 3 月正式在美国市场上市,如图 1.1 所示。图 1-1 Segway 实物图(左)及解析图(右)Segway 最高
14、速度可达到每小时 17 英里,若以平均每小时 8 英里的速度行驶,充电 6 小时(费用低于 10 美分)的行驶距离为 15 英里。美国新罕布什尔州及明尼苏达州等 4 州通过了准许其在人行道上行驶的法案。第 6 页 共 48 页Segway 最基本的构造可被概括为传感器、控制系统和马达系统。最原始的传感系统是一个陀螺仪的组合。最简单的陀螺仪是在一个稳定的框架中的可转动的轮子。一个转动的物体会拒绝转动轴上的变化,所以一个陀螺仪的轮子会保持它在空间的位置(以地面为参考系) ,甚至在你倾斜它的时候。但陀螺仪的框架会自由地在空间移动。通过测量轮子相对于框架的位置,精确的传感器能感知倾斜度(从正直的方向偏
15、离多少)和倾斜速度(倾斜得有多快) 。原始的陀螺仪过于笨重,无法应用在这个机器上,Segway 运用不同的机械机制达到相同的效果。它使用一种特殊的电晶体硅传感器,这种陀螺仪能通过 Coriolis 效果(地球自转偏向力)在一个非常小的范围里决定旋转。就好像飞机飞的是直线,但看起来好像是弯曲的,这是因为下面的地球在旋转。一个典型的电晶体硅传感器包括一个安装在支持性框架上的硅钢片。硅微粒在施加于硅钢片上的静电流的驱使下移动。这些微粒是以特殊方式移动的,能够造成硅钢板颤动,这种颤动是可预知的。当硅钢板沿轴转动时(即 Segway 转动时) ,这些微粒迅速改变和硅钢板的关系,于是振动产生了变化,变化的
16、程度和旋转的程度成比例。陀螺仪测量振动的变化,把信息送给计算机。Segway 有五个陀螺仪传感器,其实只需要 3 个来检测前后和左右的倾斜。多出的传感器增加了安全性。传感器的信息被传送到“大脑” ,它由两个电子控制器电路板构成,电路板包括一个微处理器的集群。电路板上的多重微处理器据称是 PC 效率的 3 倍。因为需要极其精确的调整才能防止 Segway 倾倒。如果一个电路板出了毛病,另一个会承担所有的功能,让使用者从容不迫地停下来。微处理器运行高级程序以控制机器。程序检测所有的稳定性信息,调整相关的电子马达的速度以回应这些信息。电子马达通过一对电池驱动,两个轮子可以被独立地调整到不同的速度上。
17、当前进时,马达驱使两个轮子前进;后退时,马达驱使两个轮子后退;当转弯时,马达使一个轮子快些,一个轮子慢些,或者在相反方向上转动轮子,以使 Segway 左转或右转。1.3.2 Sway 机器人简介Sway 机器人是由哈尔滨工程大学尹亮制作的双轮移动机器人实物,如图 1.2第 7 页 共 48 页所示。Sway 由上位机和机器人车体两大部分构成,两者分离,并通过无线通讯交换数据。机器人的车体系统构成如图 1.3 所示,上位机系统构成如图 1.4 所示。图 1.2 Sway 实物图图 1.3 Sway 车体系统框图图 1.4 Sway 上位机框图该机器人采用两块 Cygnal 公司推出的 C805
18、1F005 单片机分别作为人机交互和平衡控制的核心。车体倾斜角度检测采用 AD 公司推出的双轴加速度传感器 ADXL202 及反射式红外线距离传感器。利用 PWM 技术动态控制两台直流电机的转速。上位机与机器人间的数据通信采用迅通生产的 PTR2000 超小型超低功耗高速无线收发数传 MODEM。人机交互界面采用 240128 图形液晶点阵、方向摇杆及按键。基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了 Sway 的平衡控制与数据交换。Sway 机器人的特点为:(1) 高速(25MIPS)低功耗的 SOC 单片机为各种复杂算法的实现提供了保第 8 页 共 48 页障,丰富的片内
19、外设为高速数据采集及 PWM 调制信号的生成提供了方便,片内温度传感器方便对温度的采集。片内 JTAG 功能为程序的调试及对系统的现场编程提供了方便。(2) 高效的H型PWM电路提高了电源的利用率,实现了电机的平滑变速。(3) 双轴加速度传感器及光电传感器的使用提高了车体倾斜角度检测的精度,差分算法的应用提高了系统的抗干扰能力。(4) 优化的软件算法,智能化的自动控制使车体运动准确平稳。(5) 高速的无线数据传输给各种远程数据采集和智能控制提供了保障。(6) 大屏幕液晶(蓝屏)显示及 360 度方向摇杆为人机交互提供了良好的界面。14 本章小结本章作为全文的引言部分,给出了机器人的相关概念及应
20、用领域的简单叙述,并根据机器人的静力学状态将机器人划分为稳定平衡机器人和不稳定平衡机器人两大类。提出了本课题将要研究的不稳定平衡机器人(双轮平衡机器人)的特点和研究意义。最后用两个实际的例子介绍了国内外该课题的研究现状。2 系统总体设计第 9 页 共 48 页如下图图 2.1 就是论文要研究的双轮自平衡移动机器人的简化模型,本章我们将根据这个模型给出双轮自平衡机器人的实现设计方案,并给出系统实现的理论支撑、电路硬件规划和软件代码规划。图 2.1 双轮自平衡机器人模型21 平衡算法2.1.1 PID算法简介当今的自动控制技术都是基于反馈的概念。反馈理论的要素包括三个部分:测量、比较和执行。测量关
21、心的变量,与期望值相比较,用这个误差纠正调节控制系统的响应。这个理论应用于自动控制的关键是,做出正确的测量和比较后,如何才能更好地纠正系统。PID(比例-积分-微分)控制器作为最早实用化的控制器已有 50 多年历史,现在仍然是应用最广泛的工业控制器。PID 控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。PID 控制器(比例-积分-微分控制器) ,由比例单元 P、积分单元 I 和微分单元 D 组成。通过 Kp, Ki 和 Kd 三个参数的设定,从而实现对线性系统的控制,PID 控制原理的示意见下面图 2.2。第 10 页 共 48 页图 2.2 PID 控制结
22、构图PID 控制器是一个在工业控制应用中常见的反馈回路部件。这个控制器把收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。和其他简单的控制运算不同,PID 控制器可以根据历史数据和差别的出现率来调整输入值,这样可以使系统更加准确,更加稳定。可以通过数学的方法证明,在其他控制方法导致系统有稳定误差或过程反复的情况下,一个 PID 反馈回路却可以保持系统的稳定。2.1.2 本设计算法分析本系统的实现即基于经典的 PID 控制算法,具体来说:通过角速度传感器测得角速度值,当每秒测量的次数较多时,可以认为较短的一段时间内角速
23、度是恒定的,这样角速度值乘以测量时间间隔即得到了了两次测量的角度差值,即 PID 算法中的微分部分。设初始时小车的倾角为 0,那么将所有测得的角度差值累加即得到了 PID 中的比例部分。与比例部分的求法相同,将倾角值累加就得到了 PID 运算中的积分部分。将上面的测得量带入以下 PID 公式即可得到系统的控制输出:u(t) = Kp*e(t) + Kie(t) + Kde(t) e(t-1)+u0 u(t)输出 e(t)误差 Kp比例放大系数 Ki积分放大系数 Kd微分放大系数 u0控制量基准值(基础偏差) 22 硬件电路硬件方面本系统是一个典型的基于 MCU 的测控系统,即,通过传感器测得角
24、速度值,并传入 MCU 进行 PID 运算,将运算的结果输送给执行机构直流电机。2.2.1 微控制器选择第 11 页 共 48 页微控制器的选择对于系统的设计十分关键,因为微控制器的选择将影响系统的性能、可靠性、设计难度等多个方面。例如,本系统将进行密集 PID 运算,所以如果选择的 MCU 不支持硬件的乘法计算就会严重影响系统的性能。本系统选择了 ST 公司设计生产的基于 ARM Cortex-M3 内核的 STM32 微控制器,STM32 运行速度高达 72MHz,具有单周期乘法器和硬件除法器,支持32b*32b 单周期运算,为密集乘法运算提供了强大支持。另外,STM32 集成了多个 UA
25、RT 串口和支持 PWM 的带可编程预分频的 16bit 定时器,方便了与角速度测量模块的接口和直流电机的控制,简化了硬件的设计。而且,由于 STM32 是基于 32 位 CPU 事实标准的 ARM 核,所以 STM32 有大量的软件、工具和代码资源的支持,降低了软件开发的难度。2.2.2 传感器选择本设计没有选择传统的输出模拟信号的传感器进行设计,因为输出的模拟信号需要放大、滤波、AD 转换等处理,这样不仅增大了系统的复杂度,更为糟糕的是如果模拟信号处理不好的话有可能降低系统的精度,严重影响系统的性能和稳定。所以,本设计选择了完全集成的模块化的角速度测量模块 BQ-TLY-86,它是一款低成
26、本高精度的角速度模块。其工作原理是将模块旋转时音叉震荡产生的地球偏转力(克里奥利力)转换为电信号经过算法处理而得出被测物体的角速度的。该模块是使用 UART 串口与上位机通信的,该产品运行稳定,输出波特率可调,有连续输出和询问输出两种工作模式,可适应不同的工作环境。主要应用于机器人导航、定位、蔽障、运动方向检测等领域。使用该模块可以显著提高系统的稳定性,并降低系统的成本和时间消耗,是一个理想的解决方案。2.2.3 电机驱动选择电机驱动使用集成驱动芯片 L298,L298 是专用集成电机驱动芯片,可以驱动直流电机、步进电机、伺服电机、舵机等多种电机,驱动直流电机时可以同时驱动两路直流电机。采用
27、12V 单电源供电,控制逻辑电平使用标准 TTL 电平,方便与单片机的接口。本系统中 L298 用来驱动两个直流电机,驱动板的输入端需要接单片机来控第 12 页 共 48 页制,一块驱动板可驱动两个直流电机或者一个步进电机,通入 40HZ 左右的PWM 波,直流电机的速度由接入的 PWM 波的占空比控制。所以只需要使用 STM32的 16 位定时器产生 40HHz 的 PWM,即可实现对电机转速的控制方波的占空比控制电机的速度,占空比越大速度越快,占空比越小速度越慢。INPUT-1、INPUT-2、INPUT-3、INPUT-4 分别控制两个电机旋转的方向。如INPUT-1、INPUT-2 分
28、别为 1、0 表示电机正转,那么 0、1 表示电机反转,0、0表示电机停止。INPUT-3、INPUT-4 同理。只需将四个引脚接到 STM32 的 GPIO上,并通过位操作指令就可直接设置每一路电机的转向。本系统中 L298 模块具有以下性质:1、八个二极管保护电机,防止电流过大反向流回控制端。 2、采用螺丝式插座,直接将电机控制线螺丝拧在电路板上,稳定性好。 3、7805 转 5V 电压芯片,单 7-12V 输入即可,不用输入两种电压,简化你的接线。 4、大电容滤波,滤除杂波干扰。 5、 最大可提供 2A 驱动电流和 24V 驱动电压。可驱动小车直流电机作精确运动;控制步进电机能提供足够的
29、电流电压。23 软件代码2.3.1 编程语言选择单片机编程主要使用汇编和 C 两种语言,对于编程语言的选择也应该慎重而谨慎,因为编程语言的选择将影响编码的速度、程序的可维护性、代码的执行速度等系统设计的方方面面,进而影响设计的进度和质量。但是,对编程语言的选择并非一件简单的事情。因为,两种编程语言各有各的优势和不足,并不能单纯的说一种编程语言好于另外一种。比如,汇编语言编码的效率高、程序执行快、节省存储资源,但当工程规模增大时,纯粹使用汇编语言会极大的增大项目的编码难度和维护成本;相反,C 语言更适合于规模较大的程序设计,但却在性能攸关的系统中显得过于臃肿和慢速。所以,正确的编码方式应该是:系
30、统的构架和主体使用 C 语言开发,以提高开发效率并降低维护成本。对于局部的对性能要求极为 3 严格的代码则使用汇编编写,以优化系统的性能和实时响应能力。第 13 页 共 48 页2.3.2 编程软件选择除了编程语言的选择,开发软件的选择也会较大影响系统软件开发的效率,所以,选择一款好的单片机软件开发套件也极为重要。单片机开发套件一般是一个集成了代码编辑器、编译器、调试器、仿真器和项目管理器等各种软件的软件工具包,例如 MDK、EWARM、CodeWrriar 等。开发软件的选择主要考虑对 C 语言的支持程度、使用的简易度、代码库的效率、调试器的功能等几个方面的内容。本设计将要使用的开发软件是
31、ARM 公司的 MDK 集成开发环境。RealViewMDK 开发套件源自德国 Keil 公司,是 ARM 公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealViewMDK 集成了业内最领先的技术,包括 Vision3 集成开发环境与 RealView 编译器。支持 ARM7、ARM9 和最新的Cortex-M3 核处理器,自动配置启动代码,集成 Flash 烧写模块,强大的Simulation 设备模拟,性能分析等功能,与 ARM 之前的工具包 ADS 等相比,RealView 编译器的最新版本可将性能改善超过 20。MDK 的突出特性:1)启动代码生成向导,自动引导启动代码和系
32、统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越多门槛。RealViewMDK 的 Vision3 工具可以帮您自动生成完善的启动代码,并提供图形化的窗口,随您轻松修改。无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。2)软件模拟器,完全脱离硬件的软件开发过程RealViewMDK 的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和 I/O 仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的 ARM 开发工具仅提供指令集模拟器,只能支持 ARM 内核模拟
33、调试。3)性能分析器,看得更细、看得更清RealViewMDK 的性能分析器好比哈雷望远镜,让您看得更远和更准,它辅助您查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导您第 14 页 共 48 页轻松的进行代码优化,成为嵌入式开发高手。通常这些功能只有价值数千美元的昂贵的 Trace 工具才能提供。4)Cortex-M3 支持RealViewMDK 支持的 Cortex-M3 核是 ARM 公司最新推出的针对微控制器应用的内核,它提供业界领先的高性能和低成本的解决方案,未来几年将成为 MCU应用的热点和主流。目前国内只有 ARM 公司的 MDK 和 RVDS 开发工具可以支持C
34、ortexM3 芯片的应用开发。5)RealView 编译器,代码更小,性能更高RealViewMDK 的 RealView 编译器与 ADS1.2 比较:代码密度:比 ADS1.2 编译的代码尺寸小 10%;代码性能:比 ADS1.2 编译的代码性能高 20%。6)配备 ULINK2 仿真器+Flash 编程模块,轻松实现 Flash 烧写RealViewMDK 无需寻求第三方编程软件与硬件支持,通过配套的 ULINK2 仿真器与 Flash 编程工具,轻松实现 CPU 片内 FLASH、外扩 FLASH 烧写,并支持用户自行添加 FLASH 编程算法;而且能支持 FLASH 整片删除、扇区
35、删除、编程前自动删除以及编程后自动校验等功能,轻松方便。7)绝对的高性价比,国际品质,本土价格RealViewMDK 中国版保留了 RealViewMDK 国际版的所有卓越性能,而产品价格和国内普通开发工具的价格差不多;另外我们还根据不同需求,专门定制了4 个版本,以满足工程师们不同的需要。这绝对是您选择开发工具的首选。8)更贴身的服务,专业的本地化的技术支持和服务RealViewMDK 中国版用户将享受到专业的本地化的技术支持和服务,包括电话、Email、论坛、中文技术文档等,这将为国内工程师们开发出更有竞争力的产品提供更多的助力。24 本章小结本章是系统的总体设计简介,主要包括系统设计原理
36、介绍、控制器及外设选型、编程语言和编程软件选择等方面的内容。通过本章的介绍,系统的总体设计已经很清晰,只需在后面章节根据系统实现原理搭建系统电路,完代码编写,即可完成系统的设计实现。第 15 页 共 48 页3 硬件电路设计31 硬件电路总体规划第 16 页 共 48 页硬件方面,包括车体在内的机械结构使用市场上现成的玩具车改装而成,故而硬件方面的设计主要是电路方面的设计。硬件电路的设计主要包括控制器电路设计、传感器电路设计、驱动装置电路设计等方面。本系统中控制器使用的是基于 ARM Cortex-M3 内核的 STM32 MCU,他是由ST 公司生产的 32 位高性能单片机,主要用于电机控制
37、、工业控制、计算机外围等领域。其主频高达 72MHz,具有单周期乘法指令和硬件除法指令,强悍的系统性能为 PID 等大运算量算法的实现提供了坚实的基础。而且,STM32 片内集成了大量实用的外设、接口,大大简化了系统的设计难度,其主要特性如下: 内核:ARM 32 位的 Cortex(TM)-M3 CPU - 最高 72MHz 工作频率,1.25DMips/MHz(Dhrystone 2.1)- 单周期乘法和硬件除法 存储器 - 从 256K 至 512K 字节的闪存程序存储器 - 高达 64K 字节的 SRAM - 带 4 个片选的灵活的静态存储器控制器持 CF 卡、SRAM、PSRAM、N
38、OR Flash 和 NAND Flash 存储器 时钟、复位和电源管理 - 2.03.6 伏供电和 I/O 管脚 - 上电/断电复位(POR/PDR)、可编程电压器(PVD) - 内嵌 416MHz 晶体振荡器 - 内嵌经出厂调校的 8MHz 的 RC 振荡器 - 内嵌带校准的 40kHz 的 RC 振荡器 - 带校准功能的 32kHz RTC 振荡器 3 个 12 位模数转换器,1s 转换时间(多达 21 个输入通道) - 转换范围:0 至 3.6V - 三倍采样和保持功能 - 温度传感器 2 通道 12 位 D/A 转换器 第 17 页 共 48 页 DMA - 12 通道 DMA 控制
39、器 - 支持的外设:定时器、ADC、DAC、SDIO、IIS、SPI、IIC 和 USART 多达 112 个快速 I/O 口 - 51/80/112 个多功能双向的 I/O 口 - 所有 I/O 口可以映像到 16 个外部中断 - 除了模拟输入口以外的 IO 口可容忍 5V 信号输入 多达 11 个定时器 - 多达 4 个 16 位定时器,每个定时器有多达 4 个用于输入捕获/输出比较/PWM 或脉冲计数的通道 - 2 个 16 位 6 通道高级控制定时器,多达 6 路 PWM 输出,带死区控制 - 2 个看门狗定时器(独立的和窗口型的) - 系统时间定时器:24 位自减型计数 - 2 个
40、16 位基本定时器用于驱动 DAC 多达 13 个通信接口 - 多达 2 个 IIC 接口(支持 SMBus/PMBus) - 多达 5 个 USART 接口(支持 ISO7816,LIN,IrDA 接口和调制解调控制) - 多达 3 个 SPI 接口(18M 位/秒),2 个可复用为 IIS 接口 - CAN 接口(2.0B 默认) - USB 2.0 全速接口 - SDIO 接口 系统中的电机驱动芯片使用的 L298,它 最大可提供 2A 驱动电流和 24V 驱动电压。可驱动小车直流电机作精确运动;控制步进电机能提供足够的电流电压。并且它可以同时驱动两个电机,这样对于双轮小车的两个电机,仅
41、需一个驱动芯片就可以了。本系统的传感器现阶段只是用了角速度传感器模块 BQ-TLY-86-TTL,它是一个数字式智能传感器,内部完成了所有模拟量测量、信号放大、AD 转换等工作直接向控制器提供数字式的角速度值。它通过 UART 与 STM32 接口,完成命令接第 18 页 共 48 页收、数据返回等任务。只需要通过串口发送命令到 BQ-TLY-86-TTL,它就会自动完成所有测量转换工作,并把角速度值通过串口发送给 STM32,大大减轻了任务量并提高了系统的稳定性。另外,它还自动完成了校验和校验,保证数据的正确性。32 原理图绘制软件说明PROTEL:PROTEL 是 PORTEL 公司在 8
42、0 年代末推出的 EDA 软件,在电子行业的 CAD 软件中,它当之无愧地排在众多 EDA 软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用 PROTEL。早期的 PROTEL 主要作为印制板自动布线工具使用,运行在 DOS 环境,对硬件的要求很低,在无硬盘 286 机的 1M 内存下就能运行,但它的功能也较少,只有电原理图绘制与印制板设计功能,其印制板自动布线的布通率也低。而现今的 PROTEL 已发展到 PROTEL99SE
43、,它工作在 WINDOWS 2000/XP 环境下,是个完整的板级全方位电子设计系统,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server (客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如 ORCAD,PSPICE,EXCEL 等,其多层印制线路板的自动布线可实现高密度 PCB 的 100布通率。33 原理图分模块详细讲解本单元详细介绍硬件电路的各个功能模块的划分及组成,通过各个模块的介绍来加深对系统的理解和认识。3.3.1 控制器基本
44、系统控制器基本系统是指使控制器 STM32 能够正常工作的最小电路系统,通常来说,它包括控制器 STM32、电源系统、晶振系统、复位电路等部分。电路图见图 3.1。在下面的电路中,电源由 USB 提供 5V 的电压经 ASM1117-3.3V 转换得到的3.3V 电压作为电路主电源。ASM1117 是集成单片电压转换电路,具有很高的集第 19 页 共 48 页成度,只需在芯片外部链接两个电容便可得到稳定精确的电压。同时为了提高ADC 的精度,ADC 芯片供电电压和参考电压 VREF+与数字电源+3V3 隔离,并且数字地和模拟地也进行相应的隔离。晶振电路负责为微控制器提供精确的时钟脉冲,本系统中
45、通过外接一个8MHz 的外部石英晶体振荡器来提供时钟输入驱动外部复位电路由串联阻容网络和一个按键组成,其工作原理如下:正常工作情况下,按键未被按下,电源电压经电阻、电容分压后输出高电平到 STM32的 nRST 引脚。因为 STM32 只有低电平时才进入复位状态,所以此时系统正常工作。当按键按下时,电容被相当于导线的按键短路,故而 nRST 相当于接地得到的是低电平,从而 STM32 进入复位状态。直到按键被释放,STM32 退出复位状态进入正常工作状态,整个复位动作完成。 BOT094NC73RS1_I2UPA-WK568/JMDLEVF+?HeadrGinout.plmcsYz图 3.1
46、控制器基本系统3.3.2 串口通信模块第 20 页 共 48 页通信接口按照数据的传递方式可以分为串行通信和并行通信两种,串行通信是指数据在通信双方一位一位的传输,而并行通信则是一次同时传递一个字节或一字字。并行通信的主要优势在于传递速度非常快(所以计算机中的高速板卡一般通过并行的 PCI 总线连接),并且由于没有串并转换电路的存在,通信接口相对比较简单。虽然串口通信速度比较慢,但由于它占用的通信线非常少(比如IIC 和 UART 只需要两根通信线,SPI 最少也只需要 3 根通信线),而且传输的距离也更远。鉴于串行通信的以上优点及嵌入式系统的自身特点,现在系统设计中更加倾向于使用串行通信来代
47、替并行通信(如,PC 中现在的硬盘接口大量实用 SATA接口来替代并行的 ATA 接口),并通过提高通信的时钟频率来提高传输速度。在众多的串行通信接口中,使用最为普遍和广泛的是 UART 接口,基本上最简单的单片机也会配备 UART 接口(比如,51 单片机没有 SPI,也没有 IIC,但却配置了 UART),STM32 配备了多达 5 个 USART。但是电脑上配备的得串行通信接口是 RS2332,首先介绍一下 RS232 的相关内容:在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。RS-232-C 接口(又称 EIA RS-232-C)是目前最常用的
48、一种串行通讯接口。它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标 准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间 串行二进制数据交换接口技术标准“该标准规定采用一个 25 个脚的 DB-25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信 号的电平加以规定。后来 IBM的 PC 机将 RS-232 简化成了 DB-9 连接器,从而成为事实标准。而工业控制的RS-232 口一般只使用 RXD、TXD、GND 三条线。在 RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻 辑“1
49、“为-3 到-15V;逻辑“0“为 +3 到+15V 。 而微控制器中的 UART 使用标准的 5V TTL 电平,所以要实现微控制器与 PC 的通信必须使用电平转换芯片,最常用的是 MAXIM 公司生产的 MAX232。它其实是一个集成电平转换芯片,利用电第 21 页 共 48 页荷泵原理由 5V 电压产生 RS232 所需的+/-315V 负逻辑电平。原理图见图 3.2:C5104869VD3TINROU2+-7SMAXP.uF_B(male)串 口 电 路图 3.2 串口连接电路3.3.3 JTAG调试接口JTAG(Joint Test Action Group;联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1 兼容) ,主要用于芯片内部测试。现在多数的高级器件都支持 JTAG 协议,如 ARM、DSP、FPGA 器件等。标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 JTAG 最初是用来对芯片进行测试的,JTAG 的基本原理是在器件内部定义一个 TAP(Test Access Port;测试访问口)通过专用的 JTAG 测试工具对进行内部节点进行测试。JTAG 测试允许多个器件通过