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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(微型计算机步进电机远程控制系统设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微型计算机步进电机远程控制系统设计.docx

1、微型计算机步进电机远程控制系统设计1.前言1.1 设计背景课程设计是完成教学计划达到本科生培养目标的重要环节,是教学计划中进行综合训练的重要实践环节,是有助于培养应用性人才的一种教学形式,它将使我们在综合运用所学知识,解决计算机本专业方向的实际问题方面得到系统性的训练。 而且微机接口技术是一门实践性很强的课程,必须加强实验教学。本课程设计是在学习微机接口技术课程之后,运用先前所学的计算机组成原理、电子技术、接口技术以及程序设计方法,分析与设计一个实际的计算机应用系统的接口电路。因此,微机接口技术课程设计是继微机接口技术之后加强实践教学的重要专业课程。微处理器经过几十年的发展,已形成种类繁多、性

2、能与功能各异的局面,高性能计算机的实现使能技术包括计算数学、计算机体系结构与部件构成技术三部分。以计算机性能为主线,介绍高性能计算机研制的历史、现状与未来展望。1.2 设计目的通过本课程的实践环节训练,深化和巩固我们三年所学的软硬件理论知识,使我们能够充分的认识计算机接口设计的全局过程,以加强软硬件设计水平和开发技能,更在很大程度上培养我们综合应用接口技术分析和解决实际问题的能力。课程设计的目标是使我们可以在以下几个方面得到训练:(1) 培养正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。(2) 培养综合运用所学知识与生产实践经验,分析和解决工程技术问

3、题的能力。(3) 通过课程设计实践,训练并提高在校大学生在理论计算、结构设计、工程绘图、查阅设计资料、运用标准与规范和应用计算机等方面的能力。(4) 利用所学过的知识,初步分析计算机原理及接口技术的能力; (5) 计算机定时/计数系统(包括管理软件及控制应用软件) 的设计、编程与调试的能力; (6) 计算机中断系统的应用设计、调试的能力; (7) 计算机并行、串行通信的设计和调试的能力1.3 设计方法和步骤(1) 设计方法对于硬件电路,我们小组主要通过微机实验指导书里面的步进电机原理图来构建电路。然后结合软件设计中各个端口的使用情况来调整端口的使用问题。在硬件连接的过程中,我们对于有些集成芯片

4、的引脚接入接出情况不是很了解,借助学校为我们提供的网络条件,搜索有用的信息来帮助我们正确的连接硬件。软件的编写,主要利用MFID 实验平台上的步进电机控制C语言、汇编程序和查询方式全双工串行通信接口程序来修改,并且进一步的编写。其中,在编写程序的过程中,我们的随时的考虑到硬件芯片上端口的高低电位的控制,否则会严重影响步进电机的远程和本地的通信、控制。(2)研究步骤 硬件的连接步骤:根据原理图来选定所需的硬件元器件,以及足够的连接导线。熟悉各个元器件的电气特性和内部结构特征对我们所使用的面包板的接线原理有一个清晰的认识,为我们 硬件的接线起一个必要的铺垫。接线并合理的布局,使得我们所接的线路清晰

5、、明了,调试硬件电路,检查错误并分析解决。 软件的设计步骤分析整个课程设计的实验要求,即需求分析。把步进电机的远程控制分为两个模块:电机的本地控制和远程控制,分别来编写。依据具体的需求和实际的芯片特征,合适的调用8255和8251的A、B、C口的端口地址,以及其他的系统函数和自己编写的函数。编写本地的电机控制程序,并与接好的硬件一起 。编写远程的控制程序。主要通过全双工查询方式串行通信程序的基本原理来具体地编写,这是这个程序设计的一个难点和重点。组合两个模块的程序,设置适当的符号信息来远程控制电机的运行。并结合硬件电路调试和修改。调试成功后,为所编写的代码书写适当的注释,以便程序的修改和易懂性

6、。验收,书写实验报告和文档。2. 需求分析2.1 系统设计目标 通过步进电机远程控制系统设与制作,深入了解与掌握利用RS-232或RS-485串行通信标准进行远程传送的原理和方法。2.2 系统设计要求 甲机通过RS-232或RS-485接口远距离控制乙机一侧步进电机的起/停。 甲机通过RS-232或RS-485接口远距离控制乙机一侧步进电机的方向。 甲机通过RS-232或RS-485接口远距离控制乙机一侧步进电机的起/位、方向,并采用对话框选择控制项目。2.3 系统设计内容 进行步进电机远程控制系统电路硬件设计,画出电路原理图,PCB图或元器件布线图; 安装或焊接元器件; 进行步进电机远程控制

7、程序设计; 系统联调,提交一个符合控制程序上述2种要求的通信程序作品3.设计环境3.1 课程设计平台 PC兼容机 Windows 2000 MFID多功能微机实验平台 MF2KI集成开发环境 面包板 硬件元器件3.2 系统平台配置电源:机内供电。I/O端口地址:8255的4个端口地址为300H303H。其中A口300H,B口301H,C口302H,命令口303H。DIP4开关的4位开关全部向上置为ON;电缆线与插座:采用26芯扁平电缆与J5;元器件:包括接口的对象永磁式四相步进电机,驱动电路达林顿管TIP122,保护电路74LS373,相序指示灯以及开关SW1和SW2等;步进电机模块上的开关S

8、W1和SW2的功能:配置为用来控制步进电机的运行方向、速度和启动/停止;软件资源:MF软件提供的用户应用程序集成开发环境和工具,有Windows2000和98两个版本,两个版本都包含了丰富的汇编语言和C语言程序软件开发包。4. 概要设计 4.1 硬件设计4.1.1 步进电机控制电路(1)依据原理图,连接硬件电路(2)将MFID平台用26针接口把步进电机硬件电路连接。4.1.2 远程控制电路的连接(1)8255A芯片与8251A芯片连接。(2)利用RS-232标准串行通信接口连接硬件平台,实现并口与串口的转换。4.2 软件设计4.2.1 步进电机本地控制设计 (1)能够在本地通过SW1/SW2控

9、制步进电机的启动/停止; (2)当接收到远程发送来的控制信息,控制电机的不同方式的运转。4.2.2 步进电机远程设计 (1)当本地按下SW1/SW2时,依旧可以能够识别并控制电机; (2)发送控制信息,以串行通信的方式控制电机。4.2.3 硬件电路原理图步进电机本地控制原理图,如图4-1所示:图4-1步进电机本地控制原理图步进电机远程控制系统原理图,如图4-2所示。图4-2步进电机远程控制系统原理图5. 详细设计5.1 步进电机的控制原理步进电机是将脉冲信号转换成角位移的一种机电式数模转换器。步进电机旋转的角位移与输入脉冲的个数成正比;步进电机的转速与输入脉冲的频率成正比;步进电机的转动方向与

10、输入脉冲对绕组加电的顺序有关。因此,步进电机旋转的角位移、转速以及方向均受输入脉冲的控制。5.2 硬件设计5.2.1步进电机控制电路设计步进电机接口的硬件部分主要是提供输送相序代码的并行接口数据线(8根),以及保护电机绕组的器件,所以接口电路以8255A为主芯片(8255A的介绍详见前面音乐发生器中的介绍),将PA口作为数据口,传送加电代码,再加上锁存器74LS373作绕组保护,74LS73芯片的引脚分配如图5-1所示,功能对应表如表5-1所示,功能表中当G为高时,Q输出将随数据D输入而变;当G为低时,Q输出将锁存已建立的数据电平。另外,还有功率驱动管TIP122(如图5-2),以及二极管(用

11、作保护TIP驱动管)、按键开关SW等。很明显,这里并没有什么联络线。这是因为此处的被控对象步进电机总是处于准备好接收8255A传来的数据(相序加电代码)的,不需要查询是否准备好,即无条件传送。表5-174LS373功能表5.2.2 步进电机的控制与串行通信原理步进电机是将脉冲信号转换成角位移的一种机电式数模转换器。步进电机旋转的角位移与输入脉冲的个数成正比;步进电机的转速与输入脉冲的频率成正比;步进电机的转动方向与输入脉冲对绕组加电的顺序有关。因此,步进电机旋转的角位移、转速以及方向均受输入脉冲的控制。RS-232标准串行通信接口电路以8251为核心,8253提供发/收时钟,8255控制825

12、3的Gate门。另外,还有MAX232作电平转换,MAX491作RS-232 与RS-485的转换,JP31作中断申请开关等。因此,该接口电路可实现两种借口标准和查询/中断两种方式的串行通信。5.2.3 步进电机的启/停以及速度控制设置开关为了控制步进电机的启/停和运行方向,通常采用设置硬件开关或软件开关的方法。所谓硬开关方法,一般是在外部设置按键开关SW,并且约定当某个开关SW按下时启动运行或停止运行,而另外一个SW开关的开启可用来控制步进电机的运行速度。为此,需要在程序中将开关SW的状态读入,以便检测SW是否按下。所谓软开关方法,就是利用系统的键盘,定义某一个键,当该键按下时,启动或停止运

13、行。为此,在程序中要利用DOS系统功能调用来检测键盘输入。本次毕业设计中使用的使硬开关的方法。设置了SW1和SW2两个硬开关,分别连接到8255A的PC0和PC1,分别用以控制步进电机的启/停和方向控制。设计完成的具体步进电机完整远程控制功能原理图,如图5-3所示。图5-3步进电机远程控制功能原理图5.2.4 实验电路的搭建实验原理图设计好了以后,在面包板上搭建步进电机驱动模块的电路,并使用26芯的扁平电缆线,将面包板与平台上的并行接口插座J5连接起来。搭建步骤参照前面音乐发生器电路模块的步骤。5.2.5 步进电机的控制程序设计控制程序的设计思想实现步进电机运行方式、方向和速度以及启/停的控制

14、,是接口软件设计的主要任务。为此,在编写程序之前,要建立一个相序表。相序表的建立应根据步进电机运行方式的要求。运行方式与方向的控制循环查表法步进电机的运行方式是指各相绕组循环轮流通电的方式。如四相步进电机有单四拍、双四拍、单双八拍和双八拍几种方式。为了实现对各绕组按一定方式轮流加电,需要一个脉冲循环分配器。循环分配器可用硬件电路来实现,也可用软件来实现。采用软件来设计脉冲循环分配器,又有两种方法:控制字法和循环查表法。下面仅对普遍使用的循环查表法作一介绍。循环查表法是将各相绕组加电顺序的控制代码制成一张表步进电机相序表,存放在内存区,再设置一个地址指针。当地址指针依次加1(或减1)时,即可从表

15、中取出加电的代码,然后输出到步进电机,产生按一定运行方式的走步操作。若改变相序表内的加电代码和地址指针的指向,则可改变步进电机的运行方式和方向。相序表的建立,要考虑两个因素:一是应根据步进电机运行方式的要求;二是步进电机的各项绕组与数据线连接的对应关系。这意味着相序表中的加电代码,与步进电机的运行方式及绕组与数据线的连接有关。因此,实现同一种运行方式,而由于绕组与数据线的连接不同,可以有多种相序加电代码。表5-2列出了四相双八拍运行方式的一种相序加电代码。当然,运行方式发生改变,加电代码也会改变。步进电机的运行方向是采用设置相序表的指针进行控制的。如表5-2所示,如果把指针设在指向400H单元

16、开始,依次加1,取出加电代码去控制步进电机的运行方向叫做正(向前)方向,那么,再把指针改设在指向407H单元开始,依次减1的方向就是反(向后)方向。另外,表5-2中的地址单元是随便给定的,在程序中是定义一个变量,来指出相序表的首址。总之,对步进电机运行方式的控制是采用建立相序表的方法,而运行方向的控制是设置相序表的指针来解决。步进电机运行速度的控制软件延时法控制步进电机速度有两个途径:一是硬件改变输入脉冲的频率,通过对定时器(如:8253)定时常数的设定,使其升频、降频或恒频。二是软件延时,或调用子程序。采用软件延时方法来改变步进电机速度,虽然简便易行,但延时受CPU主频的影响,导致在主频较低

17、的微机上开发的步进电机控制程序换到较高的主频的微机上,就不能正常运行,甚至由于频率太高,步进电机干脆不动了。应该指出的是,步进电机的速度还受到本身距频特性的限制,设计时应满足运行频率与负载力矩之间的确定关系,否则,就会产生失步或无法工作的现象。5.3 软件设计5.3.1 步进电机控制程序设计(1) 端口的使用I/O端口地址:8255的4个端口地址为300H303H。其中A口300H,B口 301H,C口302H,命令口303H。8253的四个端口地址为304H307H,其中通道0为304H,通道1为305H,通道2为306H,命令口为307 H。8251的两个端口为:308 H309 H,其中

18、,308 H为8251数据口,309 H为命令/状态口。(2) 步进电机的驱动步进电机在系统中是一种执行元件,都要带负载,因此,需要功率的驱动。在电子仪器和设备中,一般所需功率较小,常采用达林顿复合管作功率驱动。驱动原理图如5-4所示。图5-2中2,在TIP122的基极上,加电脉冲为高时,加电代码1时,达林顿管导通,使绕组A通电;加电代码0时,绕组断电。步进电机在系统中是一种执行元件,都要带负载,因此,需要功率的驱动。在电子仪器和设备中,一般所需功率较小,常采用达林顿复合管作功率驱动。在TIP122的基极上,加电脉冲为高时,加电代码1时,达林顿管导通,使绕组A通电;加电代码0时,绕组断电。5.

19、3.2 程序流程图本地接收程序流程图如图5-4所示。图5-4本地接收程序流程图远程控制程序流程图,如图5-6 所示。图5-6远程控制程序流程图5.3.3 代码生成步进电机本地控制的程序见附录A;步进电机远程控制的程序见附录A。6 系统调试与操作说明6.1 系统调试6.1.1 检测实验平台及配套设备在关机状态下将PCI总线驱动板插入电脑主板上PCI总线插槽中,并用50芯扁平电缆线将总线信息接入到MFID多功能微机实验平台的50芯扩展总线插座J1。然后开机,进入MF多功能微机实验集成开发环境,利用平台板上的资源,运行程序,检测系统的硬件环境是否正常。如果正常,则继续下一步的操作;如果不正常,则开启

20、MF中的故障检测软件,对运行平台上的芯片进行针对性检测,直到平台的硬件系统正常为止。6.1.2 调试自己设计的软件控制程序实验平台硬件完好的情况下,利用平台板上的硬件资源来调试根据实验要求自己编写的程序。其调试方法是:采用MF集成开发环境提供的软件工具,点击编译菜单项,对自编的程序进行编译、连接和运行,观察控制程序运行结果是否达到设计要求。如果达到要求,则继续下一步的操作,否则,对自编的程序进行调试,直至运行结果符合要求为止。6.1.3 调试自己设计的硬件控制电路将实验平台板上的部分电路换成自己搭建的模块电路,然后运行MF集成开发环境提供的实验演示程序,观察是否能满足硬件电路设计的要求。如果能

21、满足要求,则进行下一步的操作,否则,进行电路调试,直至满足要求为止。调试所用到的工具是万用表和示波器。6.1.4 硬件控制电路与软件控制程序联调将自制的模块电路(在面包板上)连接到系统设计平台相应接口插座处,构成一个包括CPU、接口和被控对象完整的微机控制系统,同时将自己设计的控制程序调入内存,然后点击MF集成开发环境软件中的编译,进行编译、连接和运行该程序,观察结果是否正确。如果前面几步是严格按照顺序走下来的,这时应该得到正确的结果,于是一个实验就成功了。由于本次实验开发所使用的是MFID多功能实验平台提供的硬件平台和集成开发环境软件工具,整个调试过程比较顺利。因此,建议那些对MFID多功能

22、实验平台不太熟悉的开发人员,多花点时间去了解和熟悉这个实验平台的使用。6.2操作说明6.2.1 硬件连接与程序运行用RS-485电缆连接两台MFID平台,再用26芯排线连接本地MFID平台和面包板分别在本地和远程计算机上安装并运行LocalControl.cpp 与RemoteControl.cpp程序6.2.2电机转动及发光二极管发光情况 (1)启动 本地控制端,按开关SW1,电机顺时针转动,四个发光二极管顺时针轮流正常发光;远程控制端,敲击键盘上的“B”键,运行情况和本地控制一致。(2)停止本地控制端,按下开关SW2,电机及发光二极管停止运转和发光;远程控制端,敲击键盘上的“P”键,运行情

23、况和本地控制一致(3)电机转动及发光当电机启动后,本地不能够用开关同时控制电机的运转方向。远程控制端,在键盘上敲击“A”键,电机顺时针转动,四个发光二极管顺时针闪亮;再敲击“F”键,电机转动变快和四个发光二极管也快速闪亮;如果再敲击“S”键,相反,电机与发光二极管转动与发光都边慢。当敲击“D”键时,电机与发光二极管都逆时针转动与发光,同理上述说明,若再敲击“F”、“S”,情况与顺时针时类似,只是转动与闪亮顺序相反。(4)退出本地或远程控制端按下“ESC“键,运行程序退出。7. 设计总结和心得体会通过这次课程设计,我更加深刻的认识到了步进电机远程控制的基本原理和硬件电路中各个芯片的内部结构。由于

24、我们的课程设计是小组完成的,因而协调小组中个成员的任务的极其重要的。只有作为小组长的我们细心的分配好具体的任务,并且时时地监督检查小组成员的任务完成情况,我们的设计任务才能够按计划的进行。在软件编写的过程中,我遇到了很多平时没有遇到和了解的问题。首先,就是端口地址的具体调用,并且在设计中如何去使用。在这一点上,通过张绪辉老师在实验室里,给大家仔细分析例程的过程中,我基本上理解到端口地址的调用。在远程控制这一块,我首先通过分析参考例程,并做相应的修改,依然无法控制电机,后来,通过与我做同一个课程设计,也是我的室友陈冠宏的分析帮助下,我才了解到原来是我在初始化的方式上出现了问题。后来,我们又经常在

25、一起讨论软件设计方面的问题,这对我在软件编写上收益匪浅,可是我们又遇到了同样的问题,一旦电机运行后,远程可以控制启/停,而本地却无效。在这块,我也做了一定的尝试,但事倍功半。我和陈冠宏在龚老师和李畅老师的指导下,终于解决了这个难题!在我们小组中,我觉得任务的分配比较合理的。其中,由两个小组成员负责硬件电路的搭接和资料的搜集,另外让一个成员负责PCB图的制作。当然,在协调他们的工作上,我由于经验上的不足,还是有些小的细节不能顾及到,因而出现了一些进度的滞后,是我今后在团队合作中应注意到的。总的说来,我还是觉得我们小组的每个人在课程设计期间都是付出了努力,并且都是有很大的收获的。对于我自己来说,最

26、深刻的体会是:通过课程设计的锻炼,让我了解到自己的知识的不足,同时也学到了各种电器件(面包板、万用表、电烙铁)的使用。致 谢在这次课程设计期间,有很多的老师和同学给予了我很多的帮助,在这里,我特别要感谢我们的项目指导老师 龚义建老师,张绪辉老师、孙延维老师、陈宇老师、杜发启老师,还有特地从公司返回母校指导我们课程设计的李畅学长,以及给予过我无私帮助的同学。正是因为他们的不倦的帮助和指导,才使得我们的课程设计得以顺利的完成!并且完全实现了设计要求的功能!在此,我对他们表示深深的感谢!参考文献1 刘乐善主编 微型计算机接口技术及应用 华中科技大学出版社,2000年第1版2 谭浩强主编 C 程序设计

27、(第二版) 清华大学出版社,1999年第2版3 32 位MFID-4微机实验指导书 华中科技大学计算机学院自编附 录A步进电机远程控制程序代码步进电机本地控制程序如下:/-/-步进电机本地控制程序-/-* LocalControl Protram *-#include /kbhit();#include /printf();#include /delay();#define data51 0x308 /8251A数据口#define ctrl51 0x309 /8251A命令/状态口#define ctrl55 0x303 /8255命令口#define timer1 0x305 /timer

28、 1 of 8253#define timer2 0x306 /8253的2号计数器端口#define timctl 0x307 /8253命令口#define factor 16 /波特率因子16#define baudRate 4800 /Set BaudRate/-* 定义函数 *-void ReceiveInit();void Listening();void int51();void set_bps(int bps);void MotorInit();void StartWork();void StopWork();void SetSequenceTable(int t);int*

29、table; / 相序表指针char rcmd; /定义接受远程命令信息变量int status; /定义状态变量void main() printf(-nn); printf(* Remote StepMotor Control System *nn); printf(-n); printf(n Receiving remote control command.n); printf(n Press Esc to exit the application!n); ReceiveInit(); for(;) if (kbhit() / 检查按键 if(getche()=0x1b)/是ESC?是,则退出,并返回DOS outport(ctrl55,0x0c);/关闭8253 return; if(inportb(0x301) = 0x02) StartWork(); rcmd = 0; Listening(); if(rcmd =b) StartWork(); rcmd = 0; / rcmd 置空 StopWork(); /*

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

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