基于ARM的步进电机控制系统设计.doc

上传人:h**** 文档编号:101198 上传时间:2018-07-06 格式:DOC 页数:71 大小:7.05MB
下载 相关 举报
基于ARM的步进电机控制系统设计.doc_第1页
第1页 / 共71页
基于ARM的步进电机控制系统设计.doc_第2页
第2页 / 共71页
基于ARM的步进电机控制系统设计.doc_第3页
第3页 / 共71页
基于ARM的步进电机控制系统设计.doc_第4页
第4页 / 共71页
基于ARM的步进电机控制系统设计.doc_第5页
第5页 / 共71页
点击查看更多>>
资源描述

1、 图 书 分类号: 密 级: 毕业设计 (论文 ) 基于 ARM 的步进电机控制系统设计 DESIGN OF STEPPING MOTOR CONTROL SYSTEM BASED ON THE ARM 学生学号 20070501136 学生姓名 XXXX 学院名称 XXXX 专业名称 XXX 指导教师 XX 2011 年 6 月 8 日 徐州工程学院毕业设计 (论文 ) I 徐州工程学院学位论文原创性声明 本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已 经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的

2、研究做出重要贡献的个人和集体,均已在文中以明确方式标注。 本人完全意识到本声明的法律结果由本人承担。 论文作者签名: 日期: 年 月 日 徐州工程学院学位论文版权协议书 本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。徐州工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。徐州工程学院可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 论文作者签名: 导师签名:

3、日期: 年 月 日 日期: 年 月 日 徐州工程学院毕业设计 (论文 ) II 摘要 步进电机是一种将电脉冲信号转换成响应角位移或线位移的机电元件,在机电及自动化领域有着广泛的应用。 C/OS-II 是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。 C/OS-II适合小型控制系统,具有执行效率高,占用空间小,实时性能优良和可扩展性能强等特点。因此,研究 C/OS-II 在 ARM 处理器上的移植就很有意义。 本课题主要 介绍 ARM 处理器及其编程模型,以及嵌入式实时操作系统 C/OS-II 的内核结构,从而实现 C/OS-II 在 S3C2410 上的移植,并在此平台上进行步进电

4、机 控制 程序设计,控制步进电机 启动、停止、正转、反转、加速和减速 。 关键词 ARM; C/OS-II; S3C2410; 步进电机 徐州工程学院毕业设计 (论文 ) III Abstract Stepping motor is a kind of electromechanical component that is driven in step angle or displacement by electric pulse signal. It is used widly in the field of mechanical and electrical engineering. C/

5、OS-II is a complete, portable, can cure, but clipping of real-time multitasking kernel wonderful type. C/OS-II is for small control systems, with the implementation of high efficiency, small footprint, real-time performance and superior scalability and strong features. Therefore, in this case studyi

6、ng C/OS-II in the ARM processor on the transplant has a very important value and significance. The paper mainly introduces ARM processor and its programming model, and embedded real-time operating system C/OS-II kernel structure, so as to realize the C/OS-II in the transplant, and in this platform s

7、tepping motor control system design, control the stepping motor to start, stop, forward, reverse, speed up and slow down. Keywords ARM C/OS-II S3C2410 stepping motor 徐州工程学院毕业设计 (论文 ) I 目 录 1 绪论 . 1 1.1 ARM 简介 . 1 1.2 嵌入式 C/OS-II . 1 1.3 步进电机简介 . 2 1.4 课题研究主要内容及论文结构安排 . 2 2 C/OS-II 内核结构 . 3 2.1 内核保护机

8、制 . 3 2.2 任务 . 4 2.2.1 任务状态 . 4 2.2.2 任务控制块 . 5 2.2.3 任务调度 . 5 2.3 中断处理 . 5 2.4 时钟节拍 . 5 2.5 C/OS-II 的初始化和启动 . 6 3 硬件系统 . 8 3.1 JXARM9 2410 系统 . 8 3.2 S3C2410 处理器介绍 . 8 3.2.1 S3C2410 内部结构 . 8 3.2.2 S3C2410 功能单元 . 9 3.2.3 S3C2410 系统 特点 . 9 3.2.4 S3C2410 工作模式 .11 3.3 系统硬件模块 . 12 3.3.1 基本模块 . 13 3.3.2

9、其它模 块 . 13 3.4 系统硬件资源分配 . 14 3.4.1 地址空间分配以及片选信号定义 . 14 3.4.2 外部中断分配 . 15 3.4.3 A/D 端口分配 . 15 3.4.4 RAM 空间组织 . 15 3.4.5 FLASH 空间组织 . 16 4 C/OS-II 在 ARM 上的移植 . 17 4.1 移植条件 . 17 4.2 移植过程 . 17 4.2.1 OS_CPU.h 的移植 . 17 徐州工程学院毕业设计 (论文 ) II 4.2.2 OS_CPU.c 的移植 . 18 4.2.3 OS_CPU_A.s 的移植 . 21 5 步进电机控制程序设计 . 26

10、 5.1 系统总体设计方案 . 26 5.2 步进电机控制原理 . 26 5.3 步进电机驱动电路设计 . 26 5.3 步进电机 控制 程序设计 . 27 6 系统调试 . 34 6.1 ADT IDE 开发环境 . 34 6.2 超级终端 . 34 6.3 系统调试 . 36 结论 . 39 致谢 . 40 参考文献 . 41 附录 . 42 附录 1 JXARM9-2410 实验系统 . 42 附录 2 程序部分源码 . 43 徐州工程学院毕业设计 (论文 ) 1 1 绪论 1.1 ARM 简介 ARM (Advanced RISC Machines)是一家专门 从事基于 RISC(精简

11、指令集)技术芯片设计开发的公司,成立于 1990 年 11 月,前身为英国剑桥的 Acorn计算机有限公司。 ARM 公司是设计公司,是知识产权( IP)供应商,本身不生产芯片,靠转让设计许可由合作伙伴来生产各具特色的芯片。世界上许多著名的半导体、软件和 OEM 厂商通过购买技术知识产权 (1P)内核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM微处理器芯片进入市场。 20 世纪 90 年代以来, ARM32 位嵌入式 RISC 处理器的应用扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领 域的领先地位,形成了 32 位 RISC 微处理器的实际标准。 AR

12、M 芯片作为 32 位 RISC 微处理器具有 RISC 体系的一般特点,如: 1、具有大量的寄存器,大多数数据操作都在寄存器中完成。 2、寻址方式灵活简单,执行效率高。 3、通过载入和存储指令访问存储器。 4、采用固定长度的指令格式。 除此之外, ARM 体系也了一些别的技术,在保证高性能的同时尽量减小芯片体积,降低芯片功耗。这些技术包括: 1、所有的指令都可以条件执行,以提高指令执行的效率。 2、同一条数据处理指令中包含算术逻辑单元处理和移位处理。 3、使用地址 自动增加(减少)来优化程序中的循环处理。 4、载入和存储指令可以批量传输数据,从而提高数据传输效率。 ARM处理器一般都具有体积

13、小、功耗少、成本低、性能高的优点,具有 16/32位双指令集及全球众多的合作伙伴的保证供应,从而,在嵌入式系统领域得到了广泛的应用。 1.2 嵌入式 C/OS-II C/OS-II 是一个完整的、可移植、固化、裁剪的占先式实时多任务内核。它总是运行最高优先级的就绪任务,每个任务被赋予了唯一的优先级,使用自己独立的堆栈。C/OS-II 提供了许多系统服务,如邮箱机制、队列机制、信号量机制、固定大小的内存分区以及时间相关的函数等。目前, C/OS-II 已经应用在很多领域,比如医疗设备、发动机控制、网络设备、自动提款机及工业机器人等。 C/OS-II 最大的特点就是它的源代码开放,这是其它商业实时

14、内核无法比拟的。它是针对嵌入式应用而设计的,而且,在设计之初就充分考虑到了它的可移植性,它的大部分源代码都是用高可移植性的 ANSI C 编写的。 C/OS-II 可以移植到很多的处理器上,它能运行在大部分的 8bits, 16bits, 32bits,甚至 64bits 的微处理器和 DSP 上,目徐州工程学院毕业设计 (论文 ) 2 前 C/OS-II 已在超过 40 种不同架构的微处理器上运行。 1.3 步进电机简介 步进电机最早在 1920年由英国人开发, 1950年代后期晶体管的发明也逐渐应用在步进电机上。步进电动机的发展与计算机工业和数字控制技术密切相关,产品按结构划分有磁阻式、永

15、磁式和混合型等多种形式。近年来,伴随着微电子技术大功率电力电子器件及驱动技术的进步,发达国家已普遍使用性能优越的混合式步进电机。 步进电机又称脉冲电机或阶跃电机,国外一般称为 Step motor或者 Stepping motor, 是一种将电脉冲信号转换成角位移或者线位移的一种机电元件,在机电及自动化领域有着广泛的应用。其具有控制简单、误差不累积、电机结构简单、可靠性高等特点,在开环控制领域有着越来越重要的应用前景。 1.4 课题研究主要内容及论文结构安排 本课题主要研究 ARM 处理器及其编程模型,及嵌入式实时操作系统 C/OS-II 的内核结构,实现 C/OS-II 在 ARM 上的移植

16、,并在此平台上进行步进电机控制程序设计,控制步进电机启停、正反转及 加减速。 论文结构安排如下: 第一章:简单的介绍 ARM、 C/OS-II 及步进电机。 第二章:详细介绍 C/OS-II 的内核结构。主要介绍任务、中断处理、时钟节拍、C/OS-II 的初始化和启动等知识。 第三章:介绍硬件系统,包含 S3C2410处理器简介、硬件模块、系统硬件资源分配等内容。 第四章:分析移植条件,实现 C/OS-II 在 S3C2410 上的移植。 第五章:进行步进电机驱动电路设计,编写步进电机的控制程序。 第六章:对系统进行调试,并给出调试结果。 徐州工程学院毕业设计 (论文 ) 3 2 C/OS-I

17、I 内核结构 C/OS-II 操作系统的多任务内核,负责管理各个任务。内核提供的基本服务是任务切换,使用实时内核可以大大简化应用系统的设计,通过实时内核可以将应用程序分成若干个任务,由实时内核来管理它们。 C/OS-II 硬件和软件的体系结构见图 2-1。 图 2-1 C/OS-II 体系结构 2.1 内核保护机制 在多任务与中断并存的实时操作系统中,为了保护核心区代码, C/OS-II 的内核需要在存取代码核心区时禁止中断,存取完成后再将中断重新打开,以免出现多 个任务或中断服务程序同时进入该代码区。中断禁止时间是实时内核的一项最重要的指标,因为它影响着系统对实时事件的响应能力。 C/OS-

18、II 试图将这段中断禁止时间减至最小。但是,这在很大程度上还取决于系统的 CPU 结构,以及编译器生成的代码质量。 C/OS-II 定义了两个宏: OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()来实现对中断的允许和禁止,关中断和开中断是为了保护临界段代码,这些代码与处理器有关,是需要移植的代码。 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()可以有 3 种不同的实现方法: 方法 1: define OS_CRITICAL_METHOD 1 这是最简单的一种实现 OS_ENTER_CRITICAL()和 OS_EXIT_CRITIC

19、AL()的方法。如果用户在中断禁止的情况下调用了一个 C/OS-II 函数,而在从一个 C/OS-II 函数返回时,中断将被允许。但是,如果用户在调用 C/OS-II 之前已禁止了中断,而一般在调用返回以后仍要求禁止中断。 方法 2: define OS_CRITICAL_METHOD 2 这种实现方法在实现 OS_ENTER_CRITICAL()时,是将禁止的中断状态保留在堆栈中,应用程序软件 C/OS-II(与处理器无关的代码 ) OS_CORE.c uCOS_II.c OS_MBOX.c OS_Q.c OS_MEM.c OS_TASK.c OS_SEM.c OS_TIME.c C/OS-

20、II(与应用程序相关的代码 ) OS_CFG.h INCLUDES.h C/OS-II(与处理器相关的代码 ) OS_CPU.h OS_CPU_A.asm OS_CPU_C.c . CPU 时钟 徐州工程学院毕业设计 (论文 ) 4 然后禁止中断。而 OS_EXIT_CRITICAL()的实现只需简单地将中断状态从堆栈中恢复出来。无论是在中断禁止时,还是中断允许时调用 C/OS-II 服务,都可以在该调用前后保留中断状态。 方法 3: define OS_CRITICAL_METHOD 3 有些编译器提供了一些功能扩展,允许用户获取 CPU 状态( PSW),并可将它存入函数的局部变量中。于是

21、,这一变量被重新恢复到 PSW 中,就可以用伪码表示。 2.2 任务 2.2.1 任务状态 实时应用程序 的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,被赋予一定的优先级,有它自身的一套 CPU 寄存器和自己的栈空间。多任务运行的实现实际上是靠 CPU 在许多任务之间转换和调度。 CPU 只有一个,轮番服务于一系列任务中的某一个。每个任务都处在 5 种状态之中,这 5 种状态是休眠态、就绪态、运行态、挂起态和被中断态。 在任一给定的时刻,任务的状态一定是在这五种状态之一。 C/OS-II 控制下的任务状态 转换见图 2-2。 图 2-2 任务的状态 休眠态指任务驻留

22、在程序空间之中, 还没有交给 C/OS-II 管理。把任务交给 C/OS-II是通过调用下述两个函数之一: OSTaskCreate()或 OSTaskCreateExt()。当任务一旦建立,这个任务就进入就绪态准备运行。 多任务机制是由调用 OSStart()来启动的。 OSStart()必须在启动期间被调用一次,从而启动在初始代码中创建好的最高优先级任务。 OSTaskDel() 挂起 运行 ISR 准备 休眠 OSTaskDel() OSMBoxPost() OSQPost() OSQPostFront() OSSemPost() OSTaskResume() OSTimeDlyResume() OSTimeTick() OSMBoxPend() OSQPend() OSSemPend () OSTaskSuspend () OSTimeDly () OSTimeDlyHMSM () OSStart () OSIntExit() OS_Task_SW() Interrupt OSIntExit() Task is preempted OSTaskDel() OSTaskCreate () OSTaskCreateExt ()

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。