




已阅读5页,还剩85页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州大学本科生毕业设计(论文)-i-智能魔尺控制系统设计12电子转(1216936032)王冬(苏州大学应用技术学院)目录前言.2第1章基本设计背景.3第1.1节国内外的研究现状.3第1.2节与本设计有关的研究积累和已取得的成绩.3第2章系统设计思路.5第2.1节魔方机器人分析.5第2.2节系统框架.6第3章硬件系统选型设计.8第3.1节MCU控制器选择.8第3.2节STM32F103开发板.8第3.3节人机交互控制系统硬件选型设计.12第3.4节九轴传感器.13第3.5节步进电机及驱动.21第4章软件设计.23第4.1节uCOS-II系统.23第4.2节控制流程.26第4.3节电机控制任务.30第4.4节GY85数据采集及显示.31苏州大学本科生毕业设计(论文)-ii-第4.5节TFTLCD触摸显示屏及控制.34第5章系统测试.36第5.1节规划与协调.36第5.2节系统构型.36结论.39参考文献.40致谢.41附录.42附录:实物图片.42苏州大学本科生毕业设计(论文)-3-智能魔尺控制系统设计12电子转(1216936032)王冬(苏州大学应用技术学院)【摘要】:本文介绍了一种新型的智能魔尺,并着重介绍了其控制系统的设计。智能魔尺具备魔尺的功能,其每个模块都可以自主移动并与其他模块自组装成魔尺结构,还可以被配置成各种不同形态,实现变形。智能魔尺选用控制功能强大的ARM芯片和高靠的GY-85九轴传感芯片,形成闭环回路控制,应用IIC总线网络通信构建了模块化分布式控制系统,有效地实现了魔尺的运动控制。【关键词】:分布式系统;闭环;IICAbstract:Inthispaper,anewtypeofintelligentmagicfeet,andemphaticallyintroducesthedesignofthecontrolsystemofintelligentmagicfeethavethefunctionthatthemagicfeet,itseachmodulecanbeautonomousmobileandself-assembledintomagicfeetwithothermodulestructure,andcanalsobeconfiguredtoavarietyofdifferentforms,achievingintelligentcontrolpowerfulmagicrulerchooseARMchipsandhighonGY-85nineshaftsensorchip,formaclosedloopcontrol,theapplicationofIICbusnetworkcommunicationtobuildamodulardistributedcontrolsystem,effectivelyimplementthemotioncontrolofmagicrulerKeywords:distributedsystem;closedcycle;IIC苏州大学本科生毕业设计(论文)-4-前言在航天航空、星际探索、地质勘查、地质灾害预报、军事侦察、救灾抢险等领域,因为不能预先确知非结构化的环境,需要执行的任务往往也是变化莫测。因此传统的机器人设计和控制方法已经难以满足机器人在非结构的、未知的环境下自主工作的要求。模块化可重构机器人的拓扑形态是自主可变的,系统可以根据所处的环境通过组成模块之间的自主对接和分离实现整体或局部形态的改变,来调整其构形和功能,从而完成既定的任务,故能广泛应用于非结构化的环境。这样就对其控制系统提出了人工智能的更高要求,这也是当今机器人研究界最热门和尖端的研究方向之一。在分析了国内外机器人研究现状的基础上,本文概念性地设计了四种基本模块:旋转模块、控制模块、通信模块和连接模块。并采用减速齿轮减速机构作大传动机构,设计了一种机器人控制系统。构型数学表达是构型优化的基础,本文提出了一种基于关联矩阵的构型表达方法,该矩阵能够表达出一个构型的所有信息,并且与构型一一对应。构型设计是多变魔尺机器人设计的核心内容,本文建立了构型设计的优化模型,量化了运动学评价指标在构型优化中采用了遗传算法,通过实例计算,验证了该构型设计方法的有效性。苏州大学本科生毕业设计(论文)-5-第1章基本设计背景第1.1节国内外的研究现状国外对可重构模块化机器人研究起步较早,主要成果有:美国卡梅隆大学RMMS可重构模块化机器人1,日本东芝公司研制的TOMMS可重构机器人系统,加拿大ESI公司生产的模块化机器人系统,德国AMTEC公司的PowerCube模块产品等2。东芝公司TOMMS的设计概念见图1-1。图1-1TOMMS的设计概念国内有许多研究所和高校对可重构模块化机器人进行研究,如中国科学院沈阳自动化研究所、东南大学、上海交通大学、清华大学、哈尔滨工业大学等,也取得了许多成果3,这为我国在可重构机器人方面打下基础。第1.2节与本设计有关的研究积累和已取得的成绩1.2.1.模块化可重构机构理论以及离散运动的表达方式可重构模块化机器人是机器人学的一个新的发展方向,其研究的核心和基础问题是可重构机器人的模块设计以及模块组合的运动规划4。北京航空航天大学机器人研究所提出的基于蛇形魔方机构分析的模块化可重构机构理论以及离散运动的表达方式为项目的研究提供了重要参考信息5。1.2.2.模块机器人的结构对模块机器人的结构进行了研究。可以归纳出6种模块,其中包括3种关节模块,2种连杆模块和1种基座模块,同时还对3个自由度模块机器人的结构进行了设计。苏州大学本科生毕业设计(论文)-6-可重构模块化机器人系统是由一组具有标准连接接口的模块组成,这些模块能够根据特定的任务要求而被快速装配成不同构型的机器人。文献中有对可重构模块化机器人的基本模块、构型数学表达方法、构型优化方法与运动学作了相应研究6。1.2.3.模块化机器人通用接口模块化机器人通用接口的研究和设计是重要基础。基于现场总线的通信接口是模块化机器人常见选择,例如基于CAN总线的控制系统结构能够适应机器人模块的连接机构,进行状态监视和控制,并能灵活扩展7。1.2.4.多变魔方机器人的人机交互基于本人的现有水平,借助现有软件资源可提高开发效率。利用ARM软件技术能对多变魔方机器人进行有效而灵活的控制,并能提供良好的人机交互界面,能充分体现上位机的图形、控制和数据管理能力的优势,以及对机器人的适应性和控制驱动能力,见参考文献8。苏州大学本科生毕业设计(论文)-7-第2章系统设计思路第2.1节魔方机器人分析2.1.1.魔方机器人的类型(1)、魔方机器人模型这是一种用魔尺的零件经过简单加工粘合和手工做成的魔方机器人模型。它内部并不带有任何电子设备或器件,供儿童或部分爱好者玩弄之用。经过不断改进,越来越酷似机器人。图2-1所示的是一种魔方机器人模型。图2-1魔方机器人模型(2)、解魔方机器人解魔方机器人如图2-2所示,可以将一个任意打乱顺序的魔方复原。它由支架、电机、机械臂、颜色识别器和主控板组成。将打乱的魔方放入机器人的工作区,机器人的上下左右机械臂自动将魔方钳住。根据算法,机器人可以将魔方旋转回原来的状态,然后自动松开机械臂。制作这种机械人需要制作者有较高的技术水平,且制作时间较长,过程较复杂。苏州大学本科生毕业设计(论文)-8-图2-2解魔方机器人(3)、自组合魔方机器人自组合机器人拥有自重构、自组装和群体机器人的功能。每个独立模块都可以自主移动与其他模块自组装成一个整体,从而配置成不同的形状,实现变形。可以在机器人的两端进行模块增减。模块越多,可组合的形状也就越多。新型的可重构模块化机器人(多变魔方机器人),它同时拥有自重构、自组装和群体机器人的特点。多变魔方机器人的每个模块都可以自主移动并与其他模块自组装成魔方结构,还可以被配置成各种不同形态,实现变形。以上级各种魔方机器人都需要一个完备的控制系统,以胜任各种任务。基于本要求,本论文拟在设计一款魔方自主系统,以供后人研究、参考。第2.2节系统框架2.2.1.单元模块设计多变魔方机器人由nxn个相同的小模块机器人组成,如图2-3所示为多变魔方机器人的最小组合,其中每个小方块代表一个具有完全相同结构的模块机器人。机器人控制系统能够根据指令以及传感器信息控制机器人完成一定的动作或作业任务,它是机器人的心脏,决定了机器人性能的优劣。传统机器人控制系统有集中式、主从式、分散式三类控制方式。但它们都不太适合作为多变魔方机器人的控制系统,因为多变魔方机器人有着模块化,可重组的鲜明特点。为了能够充分发挥多变魔方机器人的特点,有必要为它设计适合其特点的控制系统。苏州大学本科生毕业设计(论文)-9-图2-3模块结构示意图组成多变魔方机器人的模块数量较多,而且每个模块都有数据采集、运动规划、运动控制以及通信等功能。为了能够充分发挥多变魔方机器人的特点,故采用模块化分布式控制系统。模块化分布式控制系统由若干个子系统构成,子系统的个数与多变魔方机器人中模块的个数相同,子系统与模块一一对应。每个子系统的结构功能都相同,它是一个独立的单元,拥有电源、微处理器、移动结构、连接结构、自由度结构、传感器单元和通信接口等。子系统除了控制与它对应的模块之外,还要负责整个系统的协调以及计算和规划等工作。模块化分布式控制系统是一个基于分布式网络的分布式系统.每个子系统都是网络中的一个节点,而且可以扩展。2.2.2.系统结构根据魔尺机器人的特点,我们采用IIC总线技术设计了魔尺机器人控制系统,如图2-4所示。控制系统中上层是监控系统,通过无线通讯与机器人控制系统相联,发送改变蛇的运动状态的指令,如蜿蜒、侧移、翻滚,前进、后退等控制命令.机器人的控制系统通过CAN总线将各个分散的执行单元连接起来,使系统的可扩展性能大大提高,同时CAN总线能够满足蛇形机器人实时性的需求。图2-4魔尺机器人控制系统结构IIC总线苏州大学本科生毕业设计(论文)-10-2.2.3.硬件结构设计本论文的设计的控制系统由5个部分组成如图2-5。由电子罗盘和加速度计组成的检查模块将单个魔方模块的位置信息,通过IIC总线传输回控制器Open103Z开发板(主控芯片为STM32F103ZET6),主控器将位置信息运算得到坐标和角度信息,送入显示/触摸模块TFTLCD进行显示。在显示/触摸模块上选择图像信息,主控器将图形信息转换为坐标与传感器检测到的坐标信息进行对比,对比采用一种人为设定规则。如果检测信息和设定信息规则相符,则电机不动;如果不相符,主控器即发送电机转动信号使魔方模块的电机转动,并实时对比检测信号和设定信号,直到符合规则为止。Open103Z(STM32F103)主控器模块TFTLCD显示/触摸模块步进电机控制模块电子罗盘/加速度计检测模块步进电机图2-5硬件结构图苏州大学本科生毕业设计(论文)-11-第3章硬件系统选型设计第3.1节MCU控制器选择3.1.1.方案一、51系列单片机51单片机是当前使用最广泛的8位单片机。51单片机的鼻祖是Intel的8031单片机,并且兼容8031指令系统。我们国内常使用STC51系列,即STC89C52。该单片机的ROM为8K,RAM有256byte,32个耳机口和111条指令,21个专业寄存器,2个可编程定时器/计数器5个中断源,2个优先级,还有一个全双工串行通讯口。编程简单方便,且仿真软件几乎支持其全部功能,所以开发成本低。但是该单片机控制能力及驱动能力都较弱,内部资源少,工作频率低。对于简单的控制尚可,对于多路电机的控制就不好使了。3.1.2.方案二、MSP430F149MSP430F149是一款高性价比的16位低功耗单片机。其工作电压为3.6V1.8V,待机模式电流仅1.6uA。单片机带有12位ADC,内部参考电压源,并且具有采样、保持、自动扫描等功能。ROM为60K,RAM为2K。且支持SPI、UART、USART接口。内置硬件乘法器,乘除法运算都为单周期指令,片内集成资源丰富。但是MSP430的稳定性不是很好,片内无EEPROM。对于多路PWM输出没有优势。3.1.3.方案三、STM32F103ZET6STM32F103ZET6作为CortexM3系列的一员,是一款高性能、低功耗的32位ARM处理器。STM32F103ZET6的工作频率为72MHz,最高频率可以超过100MHz。具有处理速度快、处理能力强、成本低、性能强、可采用实时操作系统的优势。处理器执行包括硬件除法、周期乘法和位字段操作在内的Thumb-2指令集以获得最佳性能和代码大小。Cortex-M3NVIC在设计时高度可配置,最多提供56个系统中断,支持多个I/O通道和协议标准。其定时器可以直接产生多路PWM,正好可应用于多路电机控制。通过三个方案比较,为了实现电路设计的低功耗及高速的运算速度,故采用方案三。第3.2节STM32F103开发板3.2.1.Open103Z市面上部分开发板的局限性在于它们不具开放性、不够模块化,因而限制了其移植性和扩展性,限制了其应用。Open系列主控板的最大特点是它的模块化和开放性。这种设计理苏州大学本科生毕业设计(论文)-12-念带来显著优点:模块化的设计需要使用什么模块,则接入什么模块系统简单明了,亦可单独研究各个模块便于初学者快速入门便于开发者快速开发开放性的设计整个系统高度开放采用接入式连接,避开了连线的复杂性所以I/O开放,开发不受限制用户亦可自行设计模块,简便的接入到系统明了的标识与方便的接口初学者可以简单的使用MCU的所有资源,完成各项入门实验开发者可以轻松发挥MCU的所有资源,debug各类测试程序Open103Z是一块以STM32ZET6为主控芯片的开发板。如图3-1所示,它带有丰富的扩展接口,支持各类外围模块的接入,资源开放且模块化设计。图3-1Open103Z开发板Open103Z的资源介绍如图3-2所示苏州大学本科生毕业设计(论文)-13-图3-2Open103Z资源图表3-1Open103资源表序号器件/接口功能1STM32F103ZET6主控芯片。Cortex-M3内核、72MHz频率。2-3.6V工作电压274LVC139将FSMC扩展为多个位选引脚,让FSMC能同时接入更多设备3AMS1117-3.33.3V稳压4供电选择开关5VDC供电和USB供电选择5电源LED显示通电状态6用户LEDI/O输出测试或显示程序运行状态7复位按键复位处理器8用户按键I/O输入测试或控制程序运行状态9遥杆有上、下、左、右、按下5个状态,可用于方向控制1032.768K晶振供内置RTC使用118M晶振外部晶振12SDIO接口接入MicroSD模块,读写SD卡的速度远快于SPI接口138-BitI/O接口接入按键模块或电机模块14CAN接口接入CAN模块15SPI1/SPI2接口接入FLASH、SD卡、MP3模块等SPI模块16IIC1/IIC2接接入PCF8574、EEPROM等IIC模块苏州大学本科生毕业设计(论文)-14-口17FSMC接口接入NandFlash、Ethernet等模块18FSMC+SPI接口接入LCD+触摸屏模块19ONE-WIRE接口接入DS18B20等ONE-WIRE器件20PS/2接口接入PS/2键盘或鼠标21USART1接口接入RS232、RS485、USBTO232模块等22USART2接口接入RS232、RS485、USBTO232模块等23FSMC接口接入NorFlash、SRAM模块等24USB接口与PC机进行USB通信255VDC接口接电源265V与3.3V接口电源输入输出接口27MCU引脚接口引出所有引脚,方便与外设进行I/O连接28JTAG/SWD接口支持下载与调试3.2.2.STM32F103ZET6主控芯片图3-3STM32F103ZET6内核:ARM32Bit的Cortex-M3CPU最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz单周期乘法和硬件除法存储器苏州大学本科生毕业设计(论文)-15-从256K至512K字节的闪存程序存储器高达64K字节的SRAM带4个片选的静态存储器控制器。支持CF卡、SRAM、PSRAM、NOR和NAND存储器并行LCD接口,兼容8080/6800模式时钟、复位和电源管理2.03.6V供电和I/O引脚上电/断电复位(POR/PDR)、可编程电压监测器(PVD)416MHz晶体振荡器内嵌经出厂调校的8MHz的RC振荡器内嵌带校准的40KHz的RC振荡器带校准功能的32KHzRTC振荡器低功耗睡眠、停机和待机模式VBAT为RTC和后备寄存器供电3个12位A/D,1us转换时间(21个输入通道)转换范围:03.6V三倍采样和保持功能温度传感器2通道12位D/A转换器DMA:12通道DMA控制器支持的外设:定时器、ADC、DAC、SDIO、IIC、SPI、IIC和USART调试模式串行单线调试(SWD)和JTAG接口Cortex-M3内嵌跟踪模块(ETM)112个快速I/O端口51/80/112个多功能双向的I/O口,所以I/O口可以映像到16个外部中断;几乎所有端口均可容忍5V信号苏州大学本科生毕业设计(论文)-16-11个定时器4个16位定时器,每个定时器多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入2个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器2个看门狗定时器(独立的和窗口型)系统时间定时器:24位自减型计数器2个16位基本定时器用于驱动DAC13个通信接口2个IIC接口(支持SMBus/PMBus)5个USART接口(支持ISO7816、LIN、IrDA接口和调制解调控制)3个SPI接口(18Mbit/s),2个可复用为I2S接口CAN接口(2.0B主动)USB2.0全速接口SDIO接口CRC计算单元,96位的芯片唯一代码第3.3节人机交互控制系统硬件选型设计3.3.1.方案一、按键按键是人机交互常用的设备,我们也非常习惯于使用按键。比如,我们的个人PC,使用的就是标准的编码按键键盘。还有,我们常见的家电风扇、电视遥控、微波炉等等。按键拥有价格便宜、结构简单、编程方便的优势。但是按键容易坏,不易更换,占空间比较大。而且按键并不适合于所有的场合,或者在某些场合对其要求特别高。3.3.2.方案二、触摸屏触摸屏是本世纪才大规模使用的一种人机交互设备。触摸屏的类型有电阻式、电容式感应式、红外线式以及表面声波式,我们常用的也就是电阻式和电容式。在十年前使用最多是电阻式,它结构简单,但是精度及灵敏度都不是很好,有时候需要重按屏幕才能有效。电容式触屏的精度和灵敏度较电阻式大大提高,但是电容式不耐摔,较容易坏。在苹果公司的多点触控技术出来后,电容式触屏被大量应用在3G领域。苏州大学本科生毕业设计(论文)-17-设计采用本方案。3.3.3.方案三、语音控制语音控制是最近大力发展的一种人机交互。语音控制的基础是语音识别,通过麦克风把语音信号转化为电信号,然后通过DSP采样、量化、编码变为数字信号。在识别的时候一般有一个语音库,根据不同频段进行分类。在识别的时候一般采用相关度匹配法,根据当前信号的频率在某些频率段进行信号匹配。总体来说,语音识别是一个比较成熟的技术,现在大量应用在3G领域和穿戴式设备上。但是这个技术各个公司都是封锁的,我们无法取得,处理语音的硬件要求也比较高。3.3.4.方案四、视频识别视频识别是机器对于空间运动物体动作的一个理解。这是人机交互的一个高级领域了,机器人技术正朝着这个方向发展。当前机器尚不具备这个能力,故使用更多的还是图像识别。把视频拆分成一帧一帧,也就是图像了。图像识别比语音识别总体来说更难一些。在印刷体方面的识别技术已经比较成熟了。经过几十年的发展也出现了很多图像识别的算法。但是在多变的环境背景中,图像识别尚达不到实用的效果。综合上述:人机界面可以可选择二,“微雪”开发板自带的一款集显示与触摸功能于一体的LCD符合要求,通过FSMC+SPI接口与STM32连接。设计的人机界面如图3-4所示:图3-4LCDLCD主要参数:点阵:240*320RGBDOTS尺寸:48.60(W)*64.80(H)mm模式:262KTFT苏州大学本科生毕业设计(论文)-18-动态区:43.2(W)*57.6(H)mm像素尺寸:0.153*0.153mmLCD原理图:图3-5LCD原理图第3.4节九轴传感器3.4.1.九轴传感器简介作为人机交互的传感器很多,角度传感器只是这众多传感器中的一个分支。角度传感器一般有X、Y、Z三个方向的角度值,在一个立体的空间中,通过三向采样,就能够控制一个空间移动的物体了。GY-85九轴传感器是由三轴加速度模块(ADXL345)+三轴磁场模块(HMC5883L)+三轴陀螺仪模块(ITG3205)组成。三器件由IIC总线连接,集成在一小块PCB上,能够同时测量重力方向、磁场方向和角度变化。完全兼容3-5V系统,含LLC电路。苏州大学本科生毕业设计(论文)-19-图3-6GY-85九轴传感器GY-85的连线方式也很简单,原理图如3-7所示。5V和3.3V任接一个就好,其内部集成了5V转3.3V的芯片,电源接通后指示灯会亮。在连续检测的模式下,只要连接IIC的SCL(时钟线)和SDA(数据线)就好,这样就可实时的检测方位。将其安装在魔尺方块上,就可以知道方块在空间的位置和状态了。它的信号检测回来后,经主控芯片处理后发送旋转信号到电机驱动器,就可以使方块旋转到我们想要的位置。这信号的来回刚好构成一个闭环控制。图3-7GY-85原理图3.4.2.ADXL345加速度传感器(1)、ADXL345概述苏州大学本科生毕业设计(论文)-20-ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高,测量范围达16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或IIC数字接口访问。ADXL345可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够检测不到1.0的倾斜角度变化。ADXL345提供多种特殊检测功能。活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。敲击检测功能可以检测任意方向的单振和双振动作。自由落体检测功能可以检测器件是否正在掉落。这些功能可以独立映射到两个中断输出引脚中的一个。集成式存储器管理系统采用一个32级先进先出(FIFO)缓冲器,可用于存储数据,从而将主机处理器负荷。降至最低,并降低整体系统功耗。ADXL345的特点:超低功耗:Vs=2.5V时,测量模式低至23uA,待机模式下为0.1uA。功耗随带宽自动比例变化用户可选的分辨率10位固定分辨率全分辨率,分辨率随g范围提高而提高,16g时高达13位嵌入式存储管理系统采用FIFO技术,可将主机处理器负荷降至最低单振/双振检测活动/非活动监控自由落体检测电源电压:2.0V3.6VI/O电压:1.7VVs数字接口:SPI(3线和4线)、IIC灵活的中断模式,可映射到任一中断引脚通过串行命令可选测量范围通过串行命令可选带宽(2)、ADXL345的功能结构三轴传感器将三路加速度信号检测到,信号经电子转换器转换为三路电信号,电信号经ADC采样、量化、数字化为数字信号,数字信号被送入高通滤波器滤波,然后到了控制和苏州大学本科生毕业设计(论文)-21-中断器。当一次数据转换完成时,将产生一个高电位的INT中断信号。IIC控制器可以将转换完成的信号在IIC总线上传输,其功能图如图3-8所示。图3-8ADXL345功能图(3)、ADXL345引脚功能ADXL345的引脚排列如图3-9所示,各个引脚的功能描述如表3-2Error!Referencesourcenotfound.所示。图3-9GY-85引脚图表3-2GY-85引脚功能引脚号符号功能说明1VDDI/O数字接口电源电压2GND电源地3RESERVED保留该引脚必须连接到VS或保持断开4GND地5GND地6Vs电源电压7CS片选苏州大学本科生毕业设计(论文)-22-8INT1中断1输出9INT2中断2输出10NC内部不连接11RESERVED保留该引脚必须接地或保持断开12SDO/ALTADDRESS串行数据输出(SPI4线)/备用IIC地址选择(IIC)13SDA/SDI/SDIO串行数据(IIC)/串行数据输入(SPI4线)/串行数据输入和输出(SPI3线)14SCL/SCLK串行通信时钟SCL为IIC时钟,SCLK为SPI时钟(4)、ADXL345的功能描述如图3-10所示,CS引脚拉高至VDDI/O,ADXL345处于IIC模式,需要简单2线式连接。ALTADDRESS引脚处于高电平,器件的7位IIC地址是0x1D,随后为R/W位。这转化为0x3A写入,0x3B读取。通过ALTADDRESS引脚(引脚12)接地,可以选择备用IIC地址0x53(随后为R/W位)。这转化为0xA6写入,0xA7读取。图3-10IIC连接图(地址0x53)对于任何不使用的引脚,没有内部上拉或下拉电阻,因此,CS引脚或ALTADDRESS引脚悬空或不连接时,任何已知状态或默认状态不存在。使用IIC时,CS引脚必须连接至VDDI/O,ALTADDRESS引脚必须连接至任一VDDI/O或接地。由于通信速度限制,使用400kHzIIC时,最大输出数据速率为800Hz,与IIC通信速度按比例呈线性变化。例如,使用100kHzIIC时,ODR最大限值为200Hz。以高于推荐的最大值和最小值范围的输出数据速率运行,可能会对加速度数据产生不良影响,包括采样丢失或额外噪声。ADXL345的IIC时序表如图3-11所示:苏州大学本科生毕业设计(论文)-23-图3-11ADXL345时序特性表ADXL345的IIC时序图如图3-12所示:图3-12ADXL345时序图3.4.3.HMC5883L数字罗盘霍尼韦尔HMC5883L是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。HMC5883L包括最先进的高分辨率HMC118X系列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在12的12位模数转换器.简易的IIC系列总线接口。HMC5883L采用霍尼韦尔各向异性磁阻(AMR)技术,这些各向异性传感器具有在轴向高灵敏度和线性高精度的特点.传感器带有的对于正交轴低敏感行的固相结构能用于测量地球磁场的方向和大小,其测量范围从毫高斯到8高斯(gauss)。HMC5883L的特点:12-bitADC与低干扰AMR传感器,能在8高斯的磁场中实现5毫高斯分辨率内置自检功能苏州大学本科生毕业设计(论文)-24-低电压工作(2.16-3.6V)和超低功耗(100uA)内置驱动电路IIC数字接口磁场范围广(+/-80e)有相应软件及算法支持最大输出频率可达160Hz能让罗盘航向精度精确到12带置位/复位和偏置驱动器用于消磁、自测和偏移补偿可获得罗盘航向、硬磁、软磁以及自动校准库(1)、HMC5883L的功能结构HMC5883L通常作为从机用IIC总线与主机相连,其功能图如图3-13所示。磁阻传感器将检测到的磁信号转化为电信号,通过MUX选择器有选择性的送入模拟信号处理器中,控制器对模拟器传送过来的信号进行处理,控制温度补偿器对磁阻传感器进行温度补偿。使输出信号达到输出要求。一次转化完成后将产生一个DRDY中断信号。主机通过该中断信号可以读取转换的磁强度和温度值。图3-13HMC5883功能框图(2)、HMC5883L引脚功能HMC5883L的引脚排列如图3-14所示,各个引脚的功能描述如表3-3所示。苏州大学本科生毕业设计(论文)-25-图3-14HMC5833L引脚图表3-3HMC5833L引脚功能引脚号符号功能说明1SCL串行时钟IIC总线主/从时钟2VDD电源(2.16V-3.6V)3NC无连接4S1连接VDDIO5NC无连接6NC无连接7NC无连接8SETP置位/复位带正S/R电容(C2)连接9GND电源接地10C1存储电容器(C1)连接11GND电源接地12SETCS/R电容器(C2)连接-驱动端13VOOIOIO电源供应(1.7V-VDD)14NC无连接15DRDY数据准备,中断引脚。内部被拉高。选项为连接,当数据位于输出寄存器上时会在低电位上停250sec16SDA串行数据IIC总线主/从数据3.4.4.HMC5883L功能描述HMC5883L与主机的连接分为双电源设计和单电源设计,如图3-15所示,本文采用的苏州大学本科生毕业设计(论文)-26-是单电源设计,通过IIC总线与主机相连。图3-15HMC5883的单电源连接HMC5883有三种测量模式,分别是连续测量模式,单次测量模式和闲置模式。本设计采用连续测量模式,在客户所选择的速率下进行连续的测量,并所测量的更新数据输出寄存器。如果有必要,数据可以从数据输出寄存器重新读取,但是,如果主机并不能确保在下次测量完成之前可以访问数据寄存器,数据寄存器上的旧的数据会被新的测量数据取代。为了保存测量之间的电流,该装置被放置在一个类似闲置模式的状态,但模式寄存器没有改变成空闲模式。即MDn位不变。配置寄存器A的设置在连续测量模式时会影响数据输出速率(比特DOn),测量配置(bitsMSn),和增益(bitsGNn)。所有寄存器在连续测量模式中保留数值。在连续测量模式下IIC总线可被网络内的其他装置启用。第3.5节步进电机及驱动3.5.1.ULN2003(1)、ULN2003概述ULN2003是一个单片高电压、高电流的达林晶体管阵列集成电路。它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极钳位二极管可以转换感应负载。单个达林顿对的集电极电流是500mA。达林顿管并联可以承受更大的电流。ULN2003的每对达林顿管都有一个2.7k串联电阻,可以直接和TTL或5VCMOS装置相连。ULN2003的主要特点:500mA额定集电极电流(单个输出)高电压输出:50V输入和各种逻辑类型兼容继电器驱动苏州大学本科生毕业设计(论文)-27-(2)、ULN2003的功能结构ULN2003内部由达林顿对组成,它的示意图如图3-16所示。达林顿管的放大倍数是两个三极管放大倍数的乘机。另外配以续流二极管和泄流电阻加以保护。图3-16达林顿管示意图(3)、ULN2003引脚功能ULN2003如图3-17,1B7B是作为输入引脚,1C7C是作为输出引脚,第9脚是公共端,一般接电源,第8脚是GND。输入到输出相当于一个非门。图3-17ULN2003引脚图(4)、ULN2003的功能描述ULN2003的时序如图3-18所示,输入与输出之间是非门的关系,但是输出有延时。作为步进电机驱动,ULN2003是给电机加大驱动电流的。苏州大学本科生毕业设计(论文)-28-图3-18ULN2003的时序苏州大学本科生毕业设计(论文)-29-第4章软件设计第4.1节uCOS-II系统4.1.1.uCOS-II概述uC/OSII是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,uC/OSII最大程度上使用ANSIC语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。uC/OSII可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。4.1.2.uCOS-II组成部分uC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。1)核心部分(OSCore.c)核心部分是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。2)任务处理部分(OSTask.c)任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为uC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。3)时钟部分(OSTime.c)uC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。4)任务同步和通信部分为事件处理部分,包括信号量、邮箱、消息队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。5)与CPU的接口部分苏州大学本科生毕业设计(论文)-30-是指uC/OS-II针对所使用的CPU的移植部分。由于uC/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。4.1.3.uCOS-II任务调度uC/OS-II采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uC/OS-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因而任务的优先级也同时唯一标志了该任务本身。4.1.4.uCOS-II任务管理uC/OS-II中最多可以支持64个任务,分别对应优先级063,其中0为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该任务仅给一个整型变量做累加运算;另一个是统计任务,它的优先级为次低,该任务负责统计当前cpu的利用率。4.1.5.uCOS-II通信同步对一个多任务的操作系统来说,任务间的通信和同步是必不可少的。uC/OS-II中提供了4种同步对象,分别是信号量,邮箱,消息队列和事件。所有这些同步对象都有创建,等待,发送,查询的接口用于实现进程间的通信和同步。4.1.6.uCOS-II移植设置与处理器及编译器相关的代码OS_CPU.H不同的编译器会使用不同的字节长度来表示同一数据类型,所以要定义一系列数据类型以确保移植的正确性。下面是uC/OSII定义的一部分数据类型。typedefunsignedcharBOOLEAN;typedefunsignedcharINT8U;/*无符号8位*/苏州大学本科生毕业设计(论文)-31-typedefsignedcharINT8S;/*带符号8位*/typedefunsignedintINT16U;/*无符号16位*/typedefsignedintINT16S;/*带符号16位*/typedefunsignedlongINT32U;/*无符号32位数*/typedefsignedlongINT32S;/*带符号32位数*/typedeffloatFP32;/*单精度浮点数*/typedefdoubleFP64;/*双精度浮点数*/typedefunsignedintOS_STK;/*堆栈入口宽度*/typedefunsignedintOS_CPU_SR;/*寄存器宽度*/uC/OSII需要先关中断再访问临界区的代码,并且在访问完后重新允许中断。uC/OSII定义了两个宏来禁止和允许中断:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL(),本移植实现这两个宏的汇编代码。#defineOS_ENTER_CRITICAL()(cpu_sr=OSCPUSaveSR()/*Disableinterrupts*/#defineOS_EXIT_CRITICAL()(OSCPURestoreSR(cpu_sr)/*Enableinterrupts*/EXPORTOSCPUSaveSROSCPUSaveSRmrsr1,cpsrmovr0,r1orrr1,r1,#0xc0msrcpsr_cxsf,r1movpc,lrEXPORTOSCPURestoreSR苏州大学本科生毕业设计(论文)-32-OSCPURestoreSRmsrcpsr_cxsf,r0movpc,lr用C语言实现与处理器任务相关的函数OS_CPU_C.COSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()OSTaskStatHook()和OSTimeTickHook(),实际需要修改的只有OSTaskStkInit()函数,其他五个函数需要声明,但不一定有实际内容。这五个函数都是用户定义的,所以OS_CPU_C.C中没有给出代码。如果需要使用这些函数,可以将文件OS_CFG.H中的#defineconstantOS_CPU_HOOKS_EN设为1,设为0表示不使用这些函数。OSTaskStkInit()函数由OSTaskCreate()或OSTaskCreateExt()调用,需要传递的参数是任务代码的起始地址、参数指针(pdata)、任务堆栈顶端的地址和任务的优先级,用来初始化任务的堆栈,初始状态的堆栈模拟发生一次中断后的堆栈结构。堆栈初始化工作结束后,OSTaskStkInit()返回新的堆栈栈顶指针,OSTaskCreate()或OSTaskCreateExt()将指针保存在任务的OS_TCB中。调用OSTaskStkInit()给任务做一个初始的任务上下文堆栈。处理器相关部分汇编实现整个uC/OSII移植实现中,只需要提供一个汇编语言文件,提供几个必须由汇编才能实现的函数。a)OSStartHighRdy()该函数在OSStart()多任务启动之后,负责从最高优先级任务的TCB控制块中获得该任务的堆栈指针sp,通过sp依次将CPU现场恢复,此时系统就将控制权交给用户创建的该任务的进程,直到该任务被阻塞或者被其他更高优先级的任务抢占了CPU。该函数仅仅在多任务启动时被执行一次,用来启动第一个,也就是最高优先级的任务执行。b)OSCtxSw()该函数是任务级的上下文切换函数,在任务因为被阻塞而主动请求与CPU调度时执行,主要工作是先将当前任务的CPU现场保存到该任务堆栈中,然后获得最高优先级任务的堆栈指针,从该堆栈中恢复此任务的CPU现场,使之继续执行,从而完成一次任务切换。c)OSIntExit()该函数是中断级的任务切换函数,在时钟中断ISR中发现有高优先级任务在等待时,需要在中断退出后不返回被中断的任务,而是直接调度就绪的高优先级任务苏州大学本科生毕业设计(论文)-33-执行。其目的在于能够尽快让高优先级的任务得到响应,保证系统的实时性能。d)OSTickISR()该函数是时钟中断处理函数,主要任务是负责处理时钟中断,调用系统实现的OSTimeTick函数,如果有等待时钟信号的高优先级任务,则需要在中断级别上调度其执行。另外两个相关函数是OSIntEnter()和OSIntExit(),都需要在ISR中执行。第4.2节控制流程4.2.1.主流程设计全程是基于uCOS-II嵌入式操作系统。对于uCOS-II操作系统,系统中断设为1ms。主流程如图4-1所示:主流程板级初始化系统初始化启动最高优先级任务结束创建启动任务图4-1系统主流程板级初始化是对所有的外接器件进行初始化或配置,在此系统中,配置的外接包括系统时钟、LCD、按键、步进电机驱动、模拟IIC、触摸屏、GY85等。把外围初始化全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以创促能:巴彦淖尔市临河区高中音乐创作课的实践与探索
- 乡村小学班级精细化管理的困境与突破-以温峤镇第二小学为例
- 不同排龈药物对牙龈炎症及排龈效果的多维度解析与比较
- LncRNA-ANCR对人脂肪间充质干细胞生物学特性的多维度影响与机制探究
- 新解读《GB-T 39722 - 2020超导电子器件 传感器和探测器通 用规范》
- 酒精管理试题及答案
- 小学常识面试题及答案
- 郑州电力面试题及答案
- java局部变量面试题及答案
- 社群运营面试题及答案
- 偏瘫的潜在并发症护理
- 规范外来器械管理制度
- 2025年湖南水利水电职业技术学院单招职业技能考试题库附答案
- 2025-2030中国聚醚醚酮(PEEK)行业市场发展趋势与前景展望战略研究报告
- 采购开发述职报告
- 科研项目进度情况汇报范文
- MES订单管理系统开发案例-实训指导书
- 化妆品生产培训
- DB33T 2036.1-2017 政务办事“最多跑一次”工作规范 第1部分:总则
- 2025年诚通证券招聘笔试参考题库含答案解析
- 江苏省连云港市新海实验中学2024-2025学年七年级上学期第二次月考语文试卷(含答案)
评论
0/150
提交评论