ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:1.05MB ,
资源ID:29155237      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29155237.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于μcosii操作系统的小车运动控制 学位论文.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于μcosii操作系统的小车运动控制 学位论文.docx

1、基于cosii操作系统的小车运动控制 学位论文分类号 密级 U D C 编号 本科毕业论文(设计)题 目 基于C/OS-II操作系统的小车运动控制院 (系) 专 业 年 级 学生姓名 学 号 指导教师 二一三 年 六 月湖北文理学院学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师指导下独立进行研究工作所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。学位论文作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关

2、学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密 ,在_年解密后适用本授权书。2、不保密 。(请在以上相应方框内打“”)学位论文作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日摘 要近些年,数字技术得到高速发展,嵌入式技术已经出现在我们生活中的每个地方。嵌入式操作系统又作为嵌入产品的基本,在发展过程中担任了越来越重要的角色。本文主要探讨了嵌入式操作系统中应用较为应用多的、开源的C/OS-II系统在

3、STM32芯片上的移植,并且在此系统上实现小车躲避障碍的运动控制。 本文先行介绍了C/OS-II实时系统的内核结构,包括第一部分C/OS-II的中的任务、事件等基本概念以及操作系统对任务和事件的一些操作。然后介绍了本次移植使用的STM32F103系列微处理器并介绍了该微处理器内核Cortex-M3的结构及其编程模型和部分本次试验所用的STM32F013系列微处理器的外设。然后以此为基础分析了C/OS-II在STM32F103系列芯片上的移植,并讲解了C/OS-II操作系统因移植需要改写的代码的结构和如何编写。然后,应用STM32F103微处理器芯片上的部分外设,实现串口通信、红外检测模块、LC

4、D显示,电机控制,这些任务在系统的调度下自动切换、不断地运行。这些代码都在基于ARM Cortex-M3的stm32单片机开发板上完成了测试工作。测试所得到的现象就是红外发射器不停发射信号,接收器同时接收返回信号、通过反馈的红外信号控制车轮转动、LCD则实时显示小车运动状态。这些也就反应了C/OS-II的多任务特性。 关键词:C/OS-II移植;STM32;运动控制;红外探测;LCD显示;AbstractNowadays with the rapid development of digital technology, embedded products have appeared in ev

5、ery aspect of our lives. Embedded operating system, which is the basis of embedded products, plays an increasingly irreplaceable role. In this paper, an embedded operating system,C/OS-II, which is open source and widely used will be introduced, and then the presentation of the port of C/OS-II to chi

6、p STM32F103 will be shown, and realize the car motion control on this system.This paper at first analyzes the structure of the kernel of the real-time system, C/OS-II and then introduces some basic concept of C/OS-II such as task , event etc.,and the operation of them . After this, the microprocesso

7、r STM 32F103 serials, and its peripherals, which are used in the port experiment, will be described, and the structure and programmers model of its CortexM3 kernel will be introduced briefly too. Then on this basis, introduce the port of C/OS-II in STM32F103 serial chips; the part of CPU-related cod

8、e which needs to be modified will be described at length. Finally, LCD display , infrared detection ,and Motion control will be realized. These tasks are scheduled by the OS automatically and running all the time .whats more, the code has passed test on OPEN-STM32 board. The phenomenon of this test

9、is : The infrared detection module send and receive signal, based on this signal the electrical machine module control the car avoid the barrier and meanwhile ,the LCD display module show the move state on LCD. All of these reflects the feature of multi-task about C/OS-II. Key words: C/OSII port; ST

10、M32; LCD display; infrared detection; Motion control目 录摘 要 IAbstract. II1. 绪论 11.1. 引言 1 1.2. 课题背景,研究目的和意义 1 1.2.1. 课题背景 1 1.2.2. 研究目的和意义 2 1.3. C/OS-II的移植概述 2 1.3.1. C/OS-II的内核结构 21.3.2. STM32系列微处理器简单介绍 4 1.3. 国内外在该方向的研究现状及分析 4 1.5. 本文主要研究的内容 5 1.6. 本论文结构 5 1.7. 本章小结 6 2. RTOS概念和C/OS-II内核结构简要分析 7 2

11、.1. RTOS 72.1.1. 实时系统的基本要求 7 2.2. 实时操作系统的特点 7 2.3. 实时系统C/OS-II的分析 8 2.3.1. C/OS-II的任务结构 8 2.3.2. C/OS-II任务的管理 12 2.3.3. C/OS-II任务的调度 132.3.4. 任务的初始化和启动 13 2.3.5. 中断和时钟 132.3.6. 任务间的通信 14 2.4. Cortex-M3内核简介 14 2.5. Cortex-M3内核编程模型 14 2.6. STM32F103系列处理器介绍 152.7. 本章小结 16 3. 在STM32F103系列处理器上的移植 173.1.

12、移植关键代码分析(OS_CPU.H)(OS_CPU_A.ASM)(OS_CPU.C) 173.1.1. 定义与处理器无关的数据类型 17 3.1.2. 临界代码段 17 3.1.3. 栈的增长方向 18 3.1.4. 任务级任务切换 18 3.1.5. 中断级任务切换 18 3.1.6. OS_CPU_PendSVHandler中断处理函数 193.1.7. 关中断函数(OS_CPU_SR_Save()) 20 3.1.8. 恢复中断函数(OS_CPU_SR_Restore()) 20 3.1.9. 启动最高优先级任务运行(OSStartHighRdy()) 213.1.10. 与CPU相关的

13、C函数和钩子函数(OS_CPU_C.C) 22 3.1.11. 定时器初始化函数OS_CPU_SysTickInit() 243.1.12. 时钟中断服务函数OS_CPU_SysTickHandler() 24 3.2. 若干细节 25 3.2.1.系统的剪裁(OS_CFG.H) 253.2.2.关于启动代码的修改 253.3. 本章小结 26 4. 在STM32开发板上实现 274.1. STM32开发板概述 27 4.2. 工程简介 28 4.3. 红外发射模块 29 4.3.1 硬件电路 29 4.3.2. 软件代码 304.4. 电机驱动模块 314.4.2. 代码实现 32 4.4.

14、3. 实现结果 32 4.5. LCD显示模块 334.5.1. 硬件电路 334.5.2. 软件代码 34 4.5.3. 实现结果 35 4.6. 主函数 35 4.7. 执行效果 374.8. 本章小结 37 结 论 38致 谢 39 参考文献 40 1. 绪论1.1. 引言 电子计算机无疑是人类目前一项伟大的发明。从1946年宾夕法尼亚大学研制成第一台电子计算机开始,计算机就一直向前发展。到了现在的21世纪,就是所谓的“后PC”时代,计算机技术已经进入人们生活的每个部分。应用最广泛的计算机产品就是嵌入式计算机。据统计,90%的计算机为嵌入式1, 2计算机。随着信息迸发的时代的到来,给大家

15、带来更多的方便和享乐。与此同时,我们会面临更多的挑战,其中就有:嵌入式系统已经越来越复杂,而且复杂程度依然在不断的加大,甚至到失去控制的局面。所以对嵌入式系统的研究非常有价值也很有必要。 1.2. 课题背景,研究目的和意义 1.2.1. 课题背景 嵌入式技术3-5是嵌入式系统生产的技术基础。包含了嵌入式软件中间件、嵌入式操作系统、嵌入式IC设计(含嵌入式微处理器和SOC设计),MEMS技术和智能传感器技术行业等。嵌入式系统产业是以行业需求决定的,基于功能设计、系统结构设计、工程设计的产业。嵌入式系统产业分布到社会的各个具体的行业,该行业系统和标准决定了嵌入式系统产品是以合适的嵌入式技术作为关键

16、并结合应用软件、系统集成开发为特征。区别于传统的通用计算机系统,嵌入式系统指向特定的应用功能,根据人们的需求专门制作,并跟随智能化产品的广泛需求应用带生活中的方方面面。嵌入式软件变成产品数字化、智能化的关键性技术。并且嵌入式软件以嵌入式操作系统为支持。 近年来嵌入式实时操作系统1, 6, 7(RTOS)飞速发展,各种广泛应用的MCU,8位、16位和32位均可以方便的移植多种嵌入式操作系统。8位、16位MCU以工业控制为主,32位以面向智能机器和多媒体处理方面,并且Linux正慢慢成为嵌入式操作系统的主流系统8-13。嵌入式实时操作系统有很多优点,比如微型化、实时性等特征,并且还将向高可靠性、智

17、能化、多核、构件组件化的方向发展。社会对嵌入式的这些优点有很强的需求,使得很多种的操作系统并存于世,互相竞争。嵌入式技术也因此不断发展,不断创新。 C/OS-II2, 7, 14, 15是个优秀的并且开源的嵌入式操作系统,为了成功满足可移植的特性,很多的关键代码用C语言写,极少部分用汇编语言编写。对于嵌入式系统,应该会对嵌入式系统内核本身进行一些裁剪,修改操作系统的部分代码,以实现C/OS-II在不同平台上的移植。 1.2.2. 研究目的和意义 由于目前的MCU结构设计的越来越复杂,在上面的系统跟随他变得更加的复杂。并且也更加强大,随之产生的就是嵌入式的操作系统,这些专用的嵌入式操作系统来管理

18、复杂的硬件。如此应用程序开发人员可以开发更多的应用程序,同时提高了嵌入式系统的各项性能。而对于商用嵌入式操作系统,开放源代码的C/OS-II凭借其优势,在市场中占有一席之地。并且,这个系统已经通过美国的FAA安全认证,足以证明C/OS-II的性能是值得依靠的。并且,C/OS-II是实时内核16-18,对嵌入式应用有专用性,可用于各种单片机,能在许多领域发挥自己的作用。C/OS-II是一个基于抢占式的实时多任务内核,可剪裁、可固化、稳定、可靠,此外,该系统最关键是开放源代码,便于移植和维护。 Arm处理器运算能力强大、应用也广泛,因此也要使用更好的操作系统才能发挥其作用。C/OS-II作为开源系

19、统,完全符合嵌入式应用的要求,开源使得整个系统更加透明,减少了系统中的隐患,并且C/OS-II系统能够裁剪,移植更加的分便,并且使得系统更加灵活。使嵌入式系统易开发、易管理、易维护,成本低廉19-25。综上所述,本研究在现实中具有重大并且实际的意义。 1.3. C/OS-II的移植概述 1.3.1. C/OS-II的内核结构 对于Uc/os-ii,这个操作系统首先得来看看它的内核结构,如图1-1所示。先讲解下图中的架构。在图中上部,是应用程序,这个好理解,应为考虑到应用程序的移植问题,应用程序必须有很好的移植行,主要的代码要与系统的硬件无关,所以在最顶部。中间左边是系统的内核的代码,这部分代码

20、占了所有代码的一大部分。这也体现了这个系统的良好的可移植性。是这个系统的一大优势。在整个移植的过程中这一部分的代码是不需要更改的就可以直接搬过去。为移植节省了很多工作。图1-1 C/OS-II的内核结构 中间右边是两个头文件。OS_CFG.H跟系统的剪裁有关。配置此文件,可以对该系统进行剪裁,达到嵌入式系统所需求的样子。INCLUDES.H是包含了所有的头文件,在移植是只需要把要加的头文件加载这个文件中就可以了。 最后一个部分是更移植紧密相关的文件,这是移植时需要修改的关键的代码的所在,这里面主要是编写和处理器相关的代码,是移植工程中的重头戏。里面的内容和代码的编写将在后面的章节中重点的介绍。

21、1.3.2. STM32系列微处理器简单介绍2007年意法半导体推出了stm32,以cortex-m3为内核的系列处理器16-18。它有优秀电源管理系统,耗电量低。并且片内还集成了多种外设ad转换,串口等等,片内集成了128kB flash和64kB的SRAM。根据外设扩展又分为STM32F101、STM32F103两种,其中STM32F101为基本型,STM32F103为扩展类型。本次试验用的是STM32F103型号的芯片,能够很好胜任搭载系统的任务。配合上多种外设,能够完美的完成各种任务设计。所以,我们选择这款芯片作为我们试验的主芯片。1.3. 国内外在该方向的研究现状及分析 21世纪以来

22、,国内外,嵌入式系统得到了很好的发展。随着对其研究的这件深入,嵌入式系统将向智能化、网络化、集成化、规范化的方向发展。并与各行各业有这不可分割的联系,嵌入式系统会应用到社会的方方面面,也一定会在我国的发展中占据着不可替代的作用。 现在技术在飞快的前进,我们将会发现嵌入式技术在一步步深入的改变着我们的生活。嵌入式技术已经深深扎根进了我们的生活,可以说我们已经离不开嵌入式的设备了。现在消费者这市场购买的电子产品基本上都和嵌入式技术有着紧密的联系。不仅如此,嵌入式产品军事、工业控制等重要领域起着重要的作用。 嵌入式产品的应用需要一套高效,低成本的方案。我们的选择也有一些,但是大的架构师类似的,如图1

23、-2所示下。 图1-2 一般嵌入式系统结构 在硬件方面,由硬件厂商为我们解决了很多问题。现在的硬件,微处理器等硬件的性能强,效率越来越高,功耗还很低,这对完善嵌入式功能提供了有效的依靠。 软件方面,许多优秀的操作系统的出现也使之成为可能,所以软件方面也不需要担心。但是,怎么选择操作系统我们还是需要做一些选择的。例如VxWorks、WinCE好用是好用但是需要收取一定的费用,我们不能接受。而且不是开源的软件不好维护;uClinux十分复杂,移植技术要求高,时间久。综合各种优缺点我们选择了ucos,C/OS-II开源。并且代码只有约5500行,而且已经在各个领域有了实际的应用,所以我们选择了这个系

24、统作为我们的研究对象。 1.5. 本文主要研究的内容 先介绍了C/OS-II内核的源代码结构26-30,后介绍了STM32系列微处理器。描述了C/OS-II在STM32F103微处理器上移植的完整移植过程和代码的编写,并且详细分析了移植中的部分关键代码,并且介绍了应用代码的编写及其硬件原理。最后将通过应用程序分别在stm32 cortex-m3开发板上验证移植的正确性。这些以用程序利用STM32的外设,在stm32 cortex-m3开发板上实现了红外线探测模块、电机驱动和LCD显示等多任务;在stm32 cortex-m3开发板上实现了基于ucos-ii的小车运动控制。本文给出了在这个开发板

25、上的完整的代码编写过程。 1.6. 本论文结构本论文结构如下:第一章:本论文的绪论部分。介绍课题的来源、背景、目的和意义。然后分析了目前国内外在该领域的发展状况。第二章:主要分析了C/OS-II内核的结构。介绍实时操作系统的概念,简要分析了C/OS-II的任务及其任务管理、调度,最后简要介绍了C/OS-II的中断和多任务之间的通信。 第三章:详细介绍C/OS-II在STM32F103系列处理器上的移植第四章:简单介绍stm32开发板,工程简介,介绍红外发射模块,介绍电机驱动模块,介绍lcd驱动模块,主函数介绍,实现效果。1.7. 本章小结 本章为整个论文的绪论,主要介绍了选题来源、目的意义,并

26、分析了国内外在嵌入式系统C/OS-II移植方面的现状。然后指出了本论文主要的研究内容。最后说明了整个论文的篇章结构。2. RTOS概念和C/OS-II内核结构简要分析2.1. RTOSRTOS (Real Time Operate System),实时操作系统。实时含有立即、及时之意。如果操作系统能使计算机系统及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,那么这种操作系统就是一个实时操作系统。2.1.1. 实时系统的基本要求 对实时操作系统有两个基本要求:第一,实时系统的计算必须产生正确的结果,称为逻辑或功能正确(Logical o

27、r Functional Correctness);第二,实时系统的计算必须在预订的周期内完成,称为时间正确。2.2. 实时操作系统的特点 嵌入式系统主要是对设备和装置进行控制的,在这些场合,系统能否及时快速的响应外部事件,常常是对系统的第一要求,因此嵌入式系统使用的操作系统大多是实时操作系统。对于一个实时操作系统来说,就是要求他在现有的硬件条件下,在接收输入后要尽快的计算出输出结果,并应使应用程序设计者在应用程序设计时,就能预先准确地确定完成任务所需要的最长时间。为了达到上述要求,实时操作系统应满足以下三个条件: 实时操作系统必须是多任务系统 任务的切换时间应该与系统中的任务数无关 中断延时

28、的实践可预知并尽可能短任务提高了设备(或者CPU)的利用率,这点事容易理解的。如果是单任务的话,当此任务所需要的条件没有被满足时,比如等待磁盘IO,此时CPU只能等待,无疑这极大的降低了硬件的利用率。任务必然存在任务间的切换。当然切换需要按照一定的规则,这个工作一般是由调度器完成的。调度器调度的过程当然需要一段时间。为了满足实时性的要求,这个延时要求尽可能小并且可预测,即在最坏的延时下是否能满足实时的要求。2.3. 实时系统C/OS-II的分析C/OS-II是一个优秀的操作系统。代码不长,在实时性也表现十分优秀这系统的服务是以任务的形式变现。每个任务有一个优先级,有内核进行调度。 任务是这个系

29、统的核心,先看看任务的结构,然后在分析C/OS-II对任务的管理和任务间的通信。2.3.1. C/OS-II的任务结构 C/OS-II的任务 :上面说了这个系统的核心就是它的任务,它也是通过任务来对不同事件进行响应和处理的。从代码上来看,C/OS-II的任务大都为如下结构(C语言描述,后同): void uCOSTask(void *p) while(1) 任务具体的功能; 任务的存储结构和状态 :系统中任务总共三个部分组成,分别是任务的代码部分、任务堆栈、任务控制块。其中任务控制块保存任务的属性;任务堆栈在任务进行切换时寄存器的数值和任务的运行状态;任务代码部分可以理解为一个完成一定任务的函

30、数。任务存储结构如图2-1所示。 任务就是以下的块的形式存储在内存中的。所有的任务形成一个链表,每一个节点都由一个这样的结构组成。 嵌入式芯片一般是单核,所以一次只能处理一个任务。C/OS-II的任务一共有5种状态:睡眠、就绪、运行、等待和中断服务,任务在这五中状态之间切换。并且cup切换的速度十分的迅速,在用户的角度看起来所有的任务近似是同时执行的,这也是多任务的操作系统比起裸机程序的一个巨大的优势和特点。下图展现的是系统中任务的存储的结构。下文中会对这个结构做一个较为详细的介绍。 图2-1 任务的存储结构 现在介绍任务的每个状态的详细情况: 睡眠:任务仅仅以代码的形式驻留在程序存储器中,没

31、有分配任务控制块或者任务控制块被删除。因此操作系统还没有管理这个任务,此时任务的状态叫做睡眠状态。 就绪状态:任务已经分配到了任务控制块并且具备了运行的条件,在就绪表中已经登记,等待运行的状态。 运行状态:就绪的任务获得了微处理器的使用权就立即进入运行状态,此时该任务占有微处理器的使用权。 等待状态:正在运行的任务,由于需要等待一段时间或者等待某个条件的满足,需要让出微处理器的使用权。此时任务处于等待状态。 中断服务状态:一个任务正在运行,当突然有一个中断产生时,微处理器会终止该任务的运行转而去处理中断,此时该任务为中断服务状态。 由下图可以看出,任务总是在五中状态之中来回切换,换句话讲任务在系统中必然会是下面五个状态中的一个。并且只有在中断中的服务程序或者是已经是就绪的任务有机会或者cpu,进而执行代码,其他状态的任务是不能执行的。图2-2 任务各种转台之间的转换 任务控制块: 任务控制块储存了任务的关键参数,包括链表的指针,栈顶指针,等等。是任务组成的一个关键部分。 其具体的代码及分析如下: ty

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1