《避障小车毕业论》word版.doc_第1页
《避障小车毕业论》word版.doc_第2页
《避障小车毕业论》word版.doc_第3页
《避障小车毕业论》word版.doc_第4页
《避障小车毕业论》word版.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

北京信息科技大学毕业设计(论文)题 目: 嵌入式智能小车设计及实现(避障) 学 院: 光电信息与通信工程 专 业: 电子信息工程 学生姓名: 班级/学号:J电信0702/2007010514 指导教师/督导教师: 起止时间: 2011年2月21日至2011年6月17日 摘要摘要 随着电子技术、计算机技术和制造技术的飞速发展,数码相机、DVD、洗衣机、汽车等消费类产品越来越呈现光机电一体化、智能化、小型化等趋势。各种智能化小车在市场玩具中也占一个很大的比例。高科技含量的电子互动式玩具已经成为玩具行业发展的主流。因此,遥控和智能的技术研究、应用都是非常有意义而且有很高的市场价值的。论文概述了利用红外传感器检测障碍物,并以AT91SAM7S64单片机为控制芯片,控制CDS5500电机的速度及转向,从而实现自动避障功能的过程。主要内容包括AT91SAM7S64单片机,红外传感器还有CDS5500电机的工作原理,以及各部分电路原理的说明。关键词:AT91SAM7S64;CDS5500;红外传感器 IAbstractAbstractAs the electronic technology, computer technology and manufacturing technology rapid development, digital camera, DVD, washing machines, automobiles, consumer products, more and more present optic-mechanical integration, intelligence, miniaturization trend. All kinds of intelligent car market in the toy also accounted for a large proportion. The high-tech content of electronic interactive toys has become the mainstream of the toy industry development. Therefore, remote control and intelligent technology research, application are useful and have high market value.Paper outlines based infrared detection of the road obstacles, and use a AT91SAM7S64 single-chip as the controlling core for the speed and direction of CDS5500, A electronic drived, which can avoid the obstacle, was designed and fabricated. The main contents include AT91SAM7S64 microcontroller, infrared sensors also CDS5500 motor works, as well as a description of each part of the circuit. Software module introduces several important debugging process.Keywords: AT91SAM7S64;CDS5500;Infrared sensorII目录目录摘要IAbstractII第一章 绪论11.1智能小车的意义和作用11.2智能小车的现状1第二章 方案设计与论证32.1 主控系统32.2 电机驱动模块32.3 传感器系统42.4 避障模块5第三章 硬件设计63.1 整体构思63.2 主控制部分63.2.1 cpu介绍63.2.2 cpu特点73.2.3 CPU相关电路83.3 舵机部分103.3.1 产品特性103.3.2 结构尺寸103.3.3 相关电路113.4 信号检测部分123.5 电源部分123.6 蜂鸣器部分143.7 LED部分15第四章 软件设计164.1 主控模块164.1.1 并行输入/输出控制器(PIO)概述164.1.2 输出控制164.1.3 输入控制164.1.4 PIO口寄存器174.1.5 通用同步/异步收发器(USART) 概述194.1.6 USART 用户接口194.2 电机驱动模块204.2.1 通信方式204.2.2 通信协议概要204.2.3 指令包204.2.4 应答包214.2.5 指令类型214.2.6 内存控制表224.3 避障模块23结 束 语24参考文献25IV嵌入式智能小车设计及实现(避障)第一章 绪论1.1智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AVGauto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。1.2智能小车的现状随着电子技术、计算机技术和制造技术的飞速发展,数码相机、DVD、洗衣机、汽车等消费类产品越来越呈现光机电一体化、智能化、小型化等趋势。各种智能化小车在市场玩具中也占一个很大的比例。高科技含量的电子互动式玩具已经成为玩具行业发展的主流。因此,遥控和智能的技术研究、应用都是非常有意义而且有很高的市场价值的。智能小车,也称轮式机器人,是一种以汽车电子为背景,涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多学科的科技创意性设计,一般主要由路径识别、速度采集、角度控制及车速控制等模块组成。本次课题准备设计一种能够实时采集传感器信号、智能分析外部环境以及路径信息、自动实现方向控制等功能的智能小车。在80年代中期,设计和制造机器人的浪潮已经席卷全球,世界上一些著名的公司开始研制移动机器人。90年代以来,以研制高水平的环境信息传感器和信息处理技术、高适应性的移动机器人控制技术和真实环境下的规划技术为标志,开展了移动机器人的更高层次的研究。现在机器人的应用越来越广,种类也越来越多,但大体上可分为轮式机器人和足式机器人。智能小车就是轮式机器人的一种,虽然是最基本的机器人雏形,但其中已包含了大部分功能。如今计算机科学、机电一体化和工业一体化等许多领域都在讨论智能系统,人们要求系统变得越来越智能化。显然传统的控制观念无法满足人们的需求,而智能控制能与这些传统的控制有机的结合起来,取长补短,提高整体的优势更好的满足人们的需求。随着人工智能技术、计算机技术、自动控制技术的迅速发展,智能控制必将迎来它的发展新时代。机器人领域近几年有如下几个发展趋势:(1) 性价比逐步提高,性能不断提高(高速度、高精度、高可靠性、便于操作和维修),而单价不断下降。(2) 工业机器人控制系统向基于PC机的开放型控制器方向发展,便于标准化、网络化。同时,器件集成度提高。从而,大大提高了系统的可靠性、易操作性和可维护性。(3) 传感器的作用日益重要,除传统的位置、速度、加速度等传感器外,视觉、声觉、力觉、触觉等多种传感器的融合技术已用来进行环境建模及决策控制。(4) 虚拟现实技术在机器人中的作用已经从仿真、预演发展到用于过程控制,如使遥控机器人操作者产生置身于远端作业环境中的感觉来操作机器人。(5) 当代遥控机器人系统的发展特点不是追求全自治系统,而是致力于操作者与机器人的人机交互控制,即遥控加局部自主系统构成完整的操作系统,使智能机器人走出实验室,走入实用化阶段。第二章 方案设计与论证2.1 主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:方案一:采用各类数字电路来组成小车的控制系统,对外围避障信号进行处理。本方案电路复杂,灵活性不高,效率低,不利于小车智能化的扩展,对各路信号处理比较困难。方案二:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析,我选定了AT91SAM7S64单片机作为本设计的主控装置,arm7单片机拥有64K 字节的高速Flash 和16K 字节的SRAM,对于本设计绰绰有余。在综合考虑了传感器、四部电机的驱动等诸多因素后,我们决定采用arm7作为主控芯片。2.2 电机驱动模块方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案二:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅会降低效率,而且实现很困难。方案三:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。方案四:采用proMOTION CDS系列机器人舵机,本舵机属于一种集电机、伺服驱劢、总线式通讯接口为一体的集成伺服单元,采用异步串行总线通讯方式,理论多至254个机器人舵机可以通过总线组成链型,通过UART异步串行接口统一控制。每个舵机可以设定不同的节点地址,多个舵机可以统一运动也可以单个独立控制。 CDS5500的通讯指令集开放,通过异步串行接口与用户的上位机(控制器或PC机)通讯,您可对其运行参数设置、功能控制。通过异步串行接口发送指令,CDS5500可以设置为电机控制模式或位置控制模式。 在电机控制模式下,CDS5500可以作为直流减速电机使用,速度可调;在位置控制模式下,CDS5500拥有0-300的转动范围,在此范围内具备精确位置控制性能,速度可调。 只要符合协议的半双工UART异步串行接口都可以和CDS5500进行通讯,对CDS5500进行各种控制。控制器和舵机之间采用问答方式通信,控制器发出指令包,舵机返回应答包。控制方式简单有效,因此决定采用方案四。2.3 传感器系统方案一:反射式红外发射接收装置,只有物体反射红外光时才有信号输入,其信号强度与小车距障碍物的距离成正比。因此可利用信号强度作为避障依据。红外探测器的选型与工作方式:1、红外探测器的选型红外探测器以其发射功率大、抗干扰能力强而在工业生产中有着广泛的应用,红外探测器按其工作模式可大致分为主动式与被动式,主动式红外探测器自带红外光源,通过对光源的遮挡、反射、折射等光学手段可以完成对被探测物体位置的判别。被动式红外探测器本身没有光源,通过接受被探测物体的特征光谱辐射来测量被探测物的位置、温度或进行红外成像。直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差;交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离,同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝,因此交流调试方式抗干扰能力也比较强,缺点是系统相对复杂。在本体中我们要利用红外探测器检测障碍物的距离,显然选用主动式红外传感器比较合适,系统的造价可以降低可靠性可以提高。主动式红外传感器又可分为分立元件型、透射遮挡型和反射型(如图2.3示),分立元件型发光管与接收管相互独立,用户在使用时可以根据需要灵活的设定发光管与接受管的位置,并可利用棱镜、透镜等完成特殊的目的,缺点是装置麻烦。透射遮挡型和反射型通过塑料模具将发光管与接收管封装在一起,非常方便用户使用,在本题中对障碍物的检测我使用反射型。红外发光管红外接收管分立元件型透射遮挡型反射型图2.3 红外探测器的形式2、主动式红外探测器的工作方式选取主动式红外探测器常用的驱动方式可分为直流直接驱动方式和交流调制方式,直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差;交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离,同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝,因此交流调试方式抗干扰能力也比较强,缺点是系统相对复杂。方案二:采用反射式超声波换能器,只有物体反射超声波时才有信号输入,测量发射接收信号间的时间差T2-T1,利用其可以得到障碍物的距离,将该信息送给单片机,单片机发出控制信号改变小车的转向,使小车不与障碍物发生接触。该方法适合较远距离障碍物检测。反射式超声波换能器成本高,电路设计复杂,因为不要求检测的很远,于是选自了反射式光电传感器,在本题中对前方障碍物的检测因为要求检测距离较远,受到环境光的干扰比较大,因此我们选用抗干扰能力较强的交流调制工作方式;而对小车侧面障碍物的检测由于要求检测距离较近,外界干扰相对较弱,为简化设计我们选用直流直接驱动方式。2.4 避障模块方案一:采用一只红外对管置于小车中央。其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应。方案二:采用二只红外对管分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应。通过比较我采用方案二。第三章 硬件设计3.1 整体构思智能小车采用四轮驱动,4个轮子分别由4个舵机控制,通过调整舵机的转速起停从而达到控制转向的目的,将红外传感器装在车身前方两端,当其检测到障碍物时,主控芯片给出信号并控制车子倒退,转向,从而避开障碍物。系统框图如图3.1所示:图3.1 系统框图3.2 主控制部分3.2.1 cpu介绍AT91SAM7S64是Atmel 32位ARM RISC 处理器小引脚数Flash微处理器家族的一员。它拥有64K 字节的高速Flash 和16K 字节的SRAM,丰富的外设资源,包括一个USB 2.0设备,使外部器件数目减至最低的完整系统功能集。这个芯片是那些正在寻求额外处理能力和更大存储器的8 位处理器用户的理想选择。Flash存储器可以通过JTAG-ICE 进行编程,或者是在贴装之前利用编程器的并行接口进行编程。锁定位可以防止固件不小心被改写,而安全锁定位则可以保护固件的安全。AT91SAM7S64 的复位控制器可以管理芯片的上电顺序以及整个系统。BOD 和看门狗则可以监控器件是否正确工作。AT91SAM7S64是一个通用处理器。它集成了USB设备端口,使得它成为连接PC或手机的外设应用的理想芯片。极具竞争力的性价比进一步拓展了它在低成本、大产量的消费类产品中的应用。3.2.2 cpu特点1、 集成了ARM7TDMI ARM Thumb 处理器;高性能的32位RISC架构;高密度的16位指令集;性能/功耗(MIPS/Watt)的领先者;嵌入式ICE电路仿真,支持调试通讯.2、 64K字节的片内高速Flash存储器,共512页,每页128字节;在最坏的条件下可以30 MHz的速度进行单时钟周期访问, 预取(Prefetch)缓冲器可以实现Thumb指令的优化,使处理器以最快的速度执行指令;编程时间为4 ms,包括页自动擦除,全片擦除时间为10 ms;10000次的写寿命,10年数据保持能力,扇区锁定功能,Flash安全锁定位;适合量产的快速Flash编程接口 3、 16K字节的片内高速SRAM,可以在最高时钟速度下进行单时钟周期访问操作4、 存储器控制器(MC);嵌入式Flash控制器,异常中断(Abort)状态及未对齐(Misalignment)检测 5、 复位控制器 (RSTC);上电复位和经过工厂标定的掉电检测;提供复位源信息以及给外部电路使用的复位信号 6、 时钟发生器(CKGR);低供耗RC振荡器,3到20MHz的片上振荡器和一个PLL7、 电源管理控制器(PMC);可以通过软件进行电源优化,包括慢速时钟模式(低至500 Hz)和空闲(Idle)模式;三个可编程的外部时钟信号8、 先进的中断控制器(AIC);可以单独屏蔽的,具有8个优先级的向量式中断源;两个外部中断源和一个快速中断源,可以防止虚假(spurious)中断 9、 调试单元(DBGU);2线UART,支持调试通讯通道中断;可通过程序来禁止通过ICE进行访问 10、 周期性间隔定时器(PIT);20位可编程的计数器,加上12位的间隔计数器 11、 时间窗看门狗(WDT);12位受预设值(key)保护的可编程计数器;为系统提供复位或中断信号;当处理器处于调试状态或空闲模式时可以停止计数器12、 实时定时器(RTT);32位自由运行的具有报警功能的计数器;时钟来源于片内RC振荡器 13、 一个并行输入/输出控制器(PIOA) ;32个可编程的复用I/O,每个I/O最多可以支持两个外设功能;输入电平改变时,每个I/O都可以产生中断;可以独立编程为开漏输出,使能上拉电阻以及同步输出 14、 11个外设数据控制器(PDC)通道 15、 一个USB 2.0全速(12 Mbps)设备端口;片上收发器,328字节可编程的FIFO 16、 一个同步串行控制器(SSC);每个接收器和发送器都具有独立的时钟和帧同步信号;支持I S,支持时分多址;支持32位数据传输的高速连续数据流功能 17、 两个通用的同步/异步收发器(USART);独立的波特率发生器,IrDA红外调制/解调;支持ISO7816 T0/T1智能卡,硬件握手信号,支持RS485;USART1支持全功能的调制解调器信号18、 主/从串行外设接口(SPI);8到16位可编程的数据长度,4个片选线 19、 一个3通道的16位定时器/计数器(TC);3个外部时钟输入端,每个通道有两个多功能I/O引脚,倍速PWM发生功能,捕捉/波形模式,递增/递减计数 20、 一个4通道的16位PWM控制器(PWMC)21、 一个两线接口(TWI);只支持主机模式,支持所有的Atmel两线EEPROM 22、 一个8通道的10位模数转换器,其中4个通道与数字I/O复用 23、 IEEE 1149.1 JTAG边界扫描支持所有的数字引脚 24、 5V兼容的I/O,包括4个高达16 mA的大电流驱动I/O25、 电源;片上1.8V电压调节器,可以为内核及外部元件提供高达100 mA的电流;为I/O口线提供电源的3.3V VDDIO,以及独立的为Flash供电的3.3V VDDFLASH;内核电源为1.8V VDDCORE,并具有掉电检测(BoD)功能26、 全静态操作:极限条件下(1.65V,85C )高达55 MHz27、 封装为64脚的LQFP 3.2.3 CPU相关电路CPU相关电路图如图3.2所示:图3.2 CPU相关电路图接法说明: CPU第49, 51, 53号管脚,分别为TDO, TMS,TCK. TMS、TDI和TCK都是施密特触发器型的输入引脚。TMS和TCK与5V兼容,TDI则不是。TMS、TDI 和TCK 都没有上拉电阻。TDO 为输出引脚,输出电平为VDDIO,没有上拉电阻。这三个引脚接至20针下载部分。JTAG接口参照AT91SAM7S64评估版20针通用JTAG接口连接。CPU第50号管脚“JTAGSEL”,接短路块JP2接3.3V电压,可以启用边界扫描模式。CPU第40号管脚“TST”接法同“JTAGSEL”,它和“PA0”,“PA1”同时为高时,可启用快速编程模式。因为“PA0”,“PA1”接直流电机驱动时已接上拉电阻。所以这样接符合要求。TST为高时,若PA0 或PA1 为0将导致不可预测的结果,接端子J4和地。CPU第1号管脚为ADDVREF,即电源参考电压端,连接3.3v电源,其中电源参考电压来自电源模块中的5209。CPU第7号管脚为VDDIN,它的功能为电压调节器电源输入端,即外部提供3.3v电压,输出为VDDOUT端,VDDOUT为1.8v的电压,做为电源。电压调节器可以为内核及外部元件提供高达100 mA 的电流。18号管脚为I/O及USB的电源,支持电压范围为3.0v到3.6v,所以在此接VCC为3.3v。24号管脚为芯片逻辑部分的电源,电压范围从1.65v到1.95v,典型值为1.8v。可以通过解耦电容连接到VDDOUT引脚。VDDCORE是器件内核电源,具有掉电检测(BoD)功能,是包括FLASH正确工作地前提,接VDDOUT。以及为I/O 口线提供电源的3.3V VDDIO,以及独立的为Flash供电的3.3V VDDFLASH。引脚ERASE 用于Flash 及其一些NVM 位的擦除。引脚具有阻值约为 15 k 的下拉电阻,所以在正常工作模式下可以悬空,在外部接跳线帽J2,当短接后用VDDOUT提供1.8V电压,就可以擦除了。CPU引脚排列如图3.3所示:图3.3 引脚排列3.3 舵机部分3.3.1 产品特性proMOTION CDS 系列机器人舵机属于一种集电机、伺服驱劢、总线式通讯接口为一体的集成伺服单元,主要用于微型机器人的关节、轮子、履带驱劢,也可用于其他简单位置控制场合。CDS5500 的特点如下所示: u 大扭矩:16Kgfcm 高转速:最高0.16s/60输出转速 u 宽电压范围供电 :DC 6.6V10V 0.32位置分辨率 u 双端安装方式,适合安装在机器人关节 高精度全金属齿轮组,双滚珠轰承 u 连接处O 型环密封,防尘防溅水 位置伺服控制模式下转劢范围0-300 u 可设置为电机模式整周旋转,开环调速 总线连接,理论可串联254 个单元 u 高达1M 通讯波特率 0.25KHz 的伺服更新率 u 兼容Robotis Dynamixel 通讯协议 具备位置、温度、速度、电压反馈3.3.2 结构尺寸 如图3.4所示是CDS5500舵机的尺寸图 图3.43.3.3 相关电路CDS系列机器人舵机用程序代码对UART异步串行接口进行时序控制,实现半双工异步串行总线通讯,通讯速度可高达1Mbps,接口简单、协议精简。 UART接口如图3.5所示:图3.5 UART接口如图3.6所示,TXD为主控芯片输出端(电机输入端),RXD为主控芯片输入端(电机输出端)。芯片向电机发送通信协议时,将PA0置高电平;电机向芯片返回通信协议时,将PA1置高电平。 图3.6 舵机控制电路3.4 信号检测部分通过数字量输入接口接入光电开关,如图3.7所示:其工作电压为26v,满足小车行进过程中的电量消耗。图3.7 光电开关 光电开关具有一个红外发射探头,和一个红外接收头,当发射出去的红外光被反射回来接收到时,输出低电平,否则输出高电平。其距离可调(3cm-80cm)。利用它可以检测到前方障碍物,即实现避障功能。原理图如图3.8所示:图3.8 传感器电路3.5 电源部分在本设计中,舵机需要8V的电压,传感器需要5V的电压,而CPU需要3.3V的电压,所以用到了LM7805CT、MC78M08CT和MIC5209三种稳压片。 电路图如图3.9、3.10、3.11所示:图3.9 7808电路图3.10 7805电路图3.11 5209电路3.6 蜂鸣器部分CPU第25号(PA25)管脚接至蜂鸣器。小车的报警装置只是通过简单的蜂鸣声来提醒小车遇到的紧急情况。如小车前方有障碍物,室内温度高于37度等。所以对于小车报警装置的要求很低。只需要一个蜂鸣器与一个放大器连接即可。这样既保证了小车发出的声音能够听到,又简单方便。 蜂鸣器实物如图3.12: 图3.12 蜂鸣器蜂鸣器原理图如图3.13: 图3.13 蜂鸣器电路3.7 LED部分CPU第27-30号(PA12-PA9)管脚分别接至4个LED灯,第31号(PA8)管脚单独接至1个LED灯,由5个I/O口分别控制5组灯的状态。其中,PA8控制电源灯,PA9-PA12分别控制4个方向的转向指示。电路图如图3.14所示:图3.14 LED电路第四章 软件设计4.1 主控模块4.1.1 并行输入/输出控制器(PIO)概述并行输入/ 输出控制器(PIO)可管理高达32位的可编程输入/ 输出线。每个I/O线可作为通用功能,I/O或分配给一个内置外设。这将确保产品引脚的有效优化。每个I/O线均有一个与32位宽的用户接口的32位寄存器相关的位序号。PIO控制器的每个I/O线有如下特性: 任意I/O线上的输入改变中断将使能电平变化检测。 毛刺滤波器可拒绝低于1.5时钟周期的脉冲。 类似于开漏I/O线的多驱动能力。 控制I/O线上拉。 输入可见,输出控制。PIO控制器还有同步输出特性,可在单写操作中提供高达32位的数据输出。4.1.2 输出控制当I/O线分配为外设功能后,即PIO_PSR相应位为0,由外设控制I/O线驱动。外设A或B由PIO_ABSR值确定是否驱动引脚。当I/O线由PIO控制器控制,引脚可配置为驱动。通过写PIO_OER(输出使能寄存器)及PIO_PDR (输出禁用寄存器)实现。写操作结果由PIO_OSR(输出状态寄存器)中得到。当该寄存器中位值为0,相应I/O线只作为输入使用;当该位值为1,相应I/O线由PIO控制器驱动。通过写PIO_SODR(置位输出数据寄存器)与PIO_CODR(清零输出数据寄存器),可将I/O改为电平驱动。写操作对PIO_ODSR(输出数据状态寄存器)分别置位与清零,表示在I/O线上的数据驱动。不管引脚配置为PIO控制器控制还是分配给外设功能,写PIO_OER与PIO_ODR将导致PIO_OSR变化。这使得可通过PIO控制器管理优先设置I/O 线。类似的,写PIO_SODR与PIO_CODR将影响PIO_ODSR。这对于定义I/O线第一级驱动非常重要。 4.1.3 输入控制每个I/O线电平可通过PIO_PDSR(外设数据状态寄存器)读出。该寄存器指示I/O线电平,不管它是仅作为输入还是由PIO控制器或外设驱动。对I/O 线电平读取时需要将PIO控制器时钟使能,否则PIO_PDSR读到的是时钟禁用时的I/O线电平。4.1.4 PIO口寄存器如图4.1-4.6所示为设计中用到的几个重要PIO口寄存器 图4.1 图4.2 图4.3 图4.4 图4.5 图4.64.1.5 通用同步/异步收发器(USART) 概述 通用同步异步收发器(USART) 提供一个全双工通用同步异步串行连接。数据帧格式可编程( 数据长度,奇偶校验位,停止位数)以支持尽可能多的标准。接收器执行奇偶错误、帧错误及溢出错误检测。接收器超时使能可变长帧处理,发送器时间保障方便与慢慢速远程器件通信。接收与发送地址位也支持多点通信。USART有三种测试模式:远程回环、本地回环及自动回应。USART支持RS485总线提供的特殊操作模式,通过ISO7816 T = 0或T = 1智能卡插槽、红外发器并与调制解调器连接。硬件握手通信通过RTS 与CTS 引脚自动管理溢出控制。USART支持与使能由发送器到接收器的数据传输的外设数据控制器的连接。PDC提供没有处理器干扰的链缓冲管理。 4.1.6 USART 用户接口如图4.7为USART寄存器映射 图4.7 USART寄存器映射4.2 电机驱动模块在本次设计中,我们在电机驱动部分遇到了很大的问题,之前并没有过由arm7芯片控制proMOTION CDS系列机器人舵机的先例,由于电平匹配等一系列的问题,我们始终未能完成对舵机的驱动。以下是对电机驱动模块的介绍。4.2.1 通信方式CDS5500采用异步串行总线通讯方式,理论多至254个机器人舵机可以通过总线组成链型,通过UART异步串行接口统一控制。每个舵机可以设定不同的节点地址,多个舵机可以统一运动也可以单个独立控制。 CDS5500的通讯指令集开放,通过异步串行接口不用户的上位机(控制器戒PC机)通讯,您可对其进行参数设置、功能控制。通过异步串行接口发送指令,CDS5500可以设置为电机控制模式或位置控制模式。 在电机控制模式下,CDS5500可以作为直流减速电机使用,速度可调;在位置控制模式下,CDS5500拥有0-300的转动范围,在此范围内具备精确位置控制性能,速度可调。 4.2.2 通信协议概要 控制器和舵机之间采用问答方式通信,控制器发出指令包,舵机返回应答包。 一个网络中允许有多个舵机,所以每个舵机都分配有一个ID号。控制器发出的控制指令中包含ID信息,只有配上ID号的舵机才能完整接收这条指令,并返回应答信息。 通信方式为串行异步方式,一帧数据分为1位起始位,8位数据位和1位停止位,无奇偶校验位,共10位。4.2.3 指令包如图4.8为指令包格式 图4.8 指令包格式 字头:连续收到两个0XFF ,表示有数据包到达。 ID: 每个舵机都有一个ID号。ID号范围0253,转换为十六迚制0X000XFD。 广播ID: ID号254为广播ID,若控制器发出的ID号为254(0XFE),所有的舵机均接收指令,但都不返回应答信息。 数据长度:等于待发送的参数长度N加上2,即“N+2”。 参数:除指令外需要补充的控制信息。 校验和:校验和Check Sum,计算方法如下: Check Sum = (ID + Length + Instruction + Parameter1 + . Parameter N) 若括号内的计算和超出255,则取最低的一个字节,“”表示取反。4.2.4 应答包应答包是CDS5500对控制器的应答,如图4.9所示为应答包格式 图4.9 应答包格式若ERROR为0,则舵机无报错信息。 若指令是读指令READ DATA,则Parameter1 .Parameter N是读取的信息。 其他数据的含义和指令包一样。4.2.5 指令类型可用指令如下:指令 功能 值 参数长度 PING(查询) 查询工作状态 0x01 0 READ DATA(读) 查询控制表里的字符 0x02 2 WRITE DATA(写) 往控制表里写入字符 0x03 不小于2 REG WRITE(异步写) 类似于WRITE DATA,但是控制字符写入后并不马上动作,直到ACTION指令到达 0x04 不小于2 ACTION(执行异步写) 触发REG WRITE写入的动作 0x05 0 RESET(复位) 把控制表复位为出厂值 0x06 0 SYNC WRITE(同步写) 用于同时控制多个CDS5500 0x83 不小于4 4.2.6 内存控制表机器人舵机本身的信息和控制参数形成了一张表,保存在其控制芯片的RAM和EEPROM区域。我们通过实时修改表里的内容,可以达到实时控制舵机的目的。这张表称为内存控制表,内容如下:地址 命令项 读写 初始值 存储区域 0(0x00) - - - EEPROM 1(0x01) - - - 2(0x02) 软件版本 读 - 3(0x03) ID 读/写 1(0x01) 4(0x04) 波特率 读/写 1(0x01) 5(0x05) 返回延迟时间 读/写 0(0x00) 6(0x06) 顺时针角度限制(L) 读/写 0(0x00) 7(0x07) 顺时针角度限制(H) 读/写 0(0x00) 8(0x08) 逆时针角度限制(L) 读/写 255(0xFF) 9(0x09) 逆时针角度限制(H) 读/写 3(0x03) 10(0x0A) - 11(0x0B) 最高温度上限 读/写 80(0x50) 12(0x0C) 最低输入电压 读/写 ? 13(0x0D) 最高输入电压 读/写 ? 14(0x0E) 最大扭矩(L) 读/写 255(0xFF) 15(0x0F) 最大扭矩(H) 读/写 3(0x03) 16(0x10) 应答状态级别 读/写 2(0x02) 17(0x11) LED闪烁 读/写 37(0x25) 18(0x12) 卸载条件 读/写 4(0x04) 19(0x13) - - - 20(0x14) 电位器校正 - - 21(0x15) 电位器校正 - - 22(0x16) 电位器校正 - - 23(0x17) 电位器校正 - - 24(0x18) 扭矩开关 读/写 0(0x00) RAM 25(0x19) LED开关 读/写 0(0x00) 26(0x1A) 顺时针不灵敏区 读/写 2(0x02) 27(0x1B) 逆时针不灵敏区 读/写 2(0x02) 28(0x1C) 顺时针比例系数 读/写 32(0x20) 29(0x1D) 逆时针比例系数 读/写 32(0x20) 30(0x1E) 目标位置(L) 读/写 Addr36value 31(0x1F) 目标位置(H) 读/写 Addr37value 32(0x20) 运行速度(L) 读/写 0 33(0x21) 运行速度(H) 读/写 0 34(0x22) 加速度 读/写 32 35(0x23) 减速度 读/写 32 36(0x24) 当前位置(L) 读 ? 37(0x25) 当前位置(H) 读 ? 38(0x26) 当前速度(L) 读 ? 39(0x27) 当前速度(H) 读 ? 40(0x28) 当前负载 读 ? 41(0x29)

温馨提示

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

评论

0/150

提交评论