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

上传人:b****4 文档编号:6569313 上传时间:2023-05-06 格式:DOCX 页数:30 大小:533.18KB
下载 相关 举报
微型计算机步进电机远程控制系统设计Word下载.docx_第1页
第1页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第2页
第2页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第3页
第3页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第4页
第4页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第5页
第5页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第6页
第6页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第7页
第7页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第8页
第8页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第9页
第9页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第10页
第10页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第11页
第11页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第12页
第12页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第13页
第13页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第14页
第14页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第15页
第15页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第16页
第16页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第17页
第17页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第18页
第18页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第19页
第19页 / 共30页
微型计算机步进电机远程控制系统设计Word下载.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《微型计算机步进电机远程控制系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《微型计算机步进电机远程控制系统设计Word下载.docx(30页珍藏版)》请在冰点文库上搜索。

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

调试硬件电路,检查错误并分析解决。

Ⅱ软件的设计步骤

分析整个课程设计的实验要求,即需求分析。

把步进电机的远程控制分为两个模块:

电机的本地控制和远程控制,分别来编写。

依据具体的需求和实际的芯片特征,合适的调用8255和8251的A、B、C口的端口地址,以及其他的系统函数和自己编写的函数。

编写本地的电机控制程序,并与接好的硬件一起。

编写远程的控制程序。

主要通过全双工查询方式串行通信程序的基本原理来具体地编写,这是这个程序设计的一个难点和重点。

组合两个模块的程序,设置适当的符号信息来远程控制电机的运行。

并结合硬件电路调试和修改。

调试成功后,为所编写的代码书写适当的注释,以便程序的修改和易懂性。

验收,书写实验报告和文档。

2.需求分析

2.1系统设计目标

通过步进电机远程控制系统设与制作,深入了解与掌握利用RS-232或RS-485串行通信标准进行远程传送的原理和方法。

2.2系统设计要求

①甲机通过RS-232或RS-485接口远距离控制乙机一侧步进电机的起/停。

②甲机通过RS-232或RS-485接口远距离控制乙机一侧步进电机的方向。

③甲机通过RS-232或RS-485接口远距离控制乙机一侧步进电机的起/位、方向,并采用对话框选择控制项目。

2.3系统设计内容

①进行步进电机远程控制系统电路硬件设计,画出电路原理图,PCB图或元器件布线图;

②安装或焊接元器件;

③进行步进电机远程控制程序设计;

④系统联调,提交一个符合控制程序上述2种要求的通信程序作品

3.设计环境

3.1课程设计平台

①PC兼容机

②Windows2000

③MFID多功能微机实验平台

④MF2KI集成开发环境

⑤面包板

⑥硬件元器件

3.2系统平台配置

电源:

机内供电。

I/O端口地址:

8255的4个端口地址为300H~303H。

其中A口=300H,B口=301H,C口=302H,命令口=303H。

DIP4开关的4位开关全部向上置为ON;

电缆线与插座:

采用26芯扁平电缆与J5;

元器件:

包括接口的对象永磁式四相步进电机,驱动电路达林顿管TIP122,保护电路74LS373,相序指示灯以及开关SW1和SW2等;

步进电机模块上的开关SW1和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控制步进电机的启动/停止;

(2)当接收到远程发送来的控制信息,控制电机的不同方式的运转。

4.2.2步进电机远程设计

(1)当本地按下SW1/SW2时,依旧可以能够识别并控制电机;

(2)发送控制信息,以串行通信的方式控制电机。

4.2.3硬件电路原理图

步进电机本地控制原理图,如图4-1所示:

图4-1步进电机本地控制原理图

步进电机远程控制系统原理图,如图4-2所示。

图4-2步进电机远程控制系统原理图

5.详细设计

5.1步进电机的控制原理

步进电机是将脉冲信号转换成角位移的一种机电式数模转换器。

步进电机旋转的角位移与输入脉冲的个数成正比;

步进电机的转速与输入脉冲的频率成正比;

步进电机的转动方向与输入脉冲对绕组加电的顺序有关。

因此,步进电机旋转的角位移、转速以及方向均受输入脉冲的控制。

5.2硬件设计

5.2.1步进电机控制电路设计

步进电机接口的硬件部分主要是提供输送相序代码的并行接口数据线(8根),以及保护电机绕组的器件,所以接口电路以8255A为主芯片(8255A的介绍详见前面音乐发生器中的介绍),将PA口作为数据口,传送加电代码,再加上锁存器74LS373作绕组保护,74LS73芯片的引脚分配如图5-1所示,

功能对应表如表5-1所示,功能表中当G为高时,Q输出将随数据D输入而变;

当G为低时,Q输出将锁存已建立的数据电平。

另外,还有功率驱动管TIP122(如图5-2),以及二极管(用作保护TIP驱动管)、按键开关SW等。

很明显,这里并没有什么联络线。

这是因为此处的被控对象步进电机总是处于准备好接收8255A传来的数据(相序加电代码)的,不需要查询是否准备好,即无条件传送。

表5-174LS373功能表

5.2.2步进电机的控制与串行通信原理

RS-232标准串行通信接口电路以8251为核心,8253提供发/收时钟,8255控制8253的Gate门。

另外,还有MAX232作电平转换,MAX491作RS-232与RS-485的转换,JP31作中断申请开关等。

因此,该接口电路可实现两种借口标准和查询/中断两种方式的串行通信。

5.2.3步进电机的启/停以及速度控制——设置开关

为了控制步进电机的启/停和运行方向,通常采用设置硬件开关或软件开关的方法。

所谓硬开关方法,一般是在外部设置按键开关SW,并且约定当某个开关SW按下时启动运行或停止运行,而另外一个SW开关的开启可用来控制步进电机的运行速度。

为此,需要在程序中将开关SW的状态读入,以便检测SW是否按下。

所谓软开关方法,就是利用系统的键盘,定义某一个键,当该键按下时,启动或停止运行。

为此,在程序中要利用DOS系统功能调用来检测键盘输入。

本次毕业设计中使用的使硬开关的方法。

设置了SW1和SW2两个硬开关,分别连接到8255A的PC0和PC1,分别用以控制步进电机的启/停和方向控制。

设计完成的具体步进电机完整远程控制功能原理图,如图5-3所示。

图5-3步进电机远程控制功能原理图

5.2.4实验电路的搭建

实验原理图设计好了以后,在面包板上搭建步进电机驱动模块的电路,并使用26芯的扁平电缆线,将面包板与平台上的并行接口插座J5连接起来。

搭建步骤参照前面音乐发生器电路模块的步骤。

5.2.5步进电机的控制程序设计

控制程序的设计思想

实现步进电机运行方式、方向和速度以及启/停的控制,是接口软件设计的主要任务。

为此,在编写程序之前,要建立一个相序表。

相序表的建立应根据步进电机运行方式的要求。

运行方式与方向的控制——循环查表法

步进电机的运行方式是指各相绕组循环轮流通电的方式。

如四相步进电机有单四拍、双

四拍、单双八拍和双八拍几种方式。

为了实现对各绕组按一定方式轮流加电,需要一个脉冲循环分配器。

循环分配器可用硬件电路来实现,也可用软件来实现。

采用软件来设计脉冲循环分配器,又有两种方法:

控制字法和循环查表法。

下面仅对普遍使用的循环查表法作一介绍。

循环查表法是将各相绕组加电顺序的控制代码制成一张表——步进电机相序表,存放在内存区,再设置一个地址指针。

当地址指针依次加1(或减1)时,即可从表中取出加电的代码,然后输出到步进电机,产生按一定运行方式的走步操作。

若改变相序表内的加电代码和地址指针的指向,则可改变步进电机的运行方式和方向。

相序表的建立,要考虑两个因素:

一是应根据步进电机运行方式的要求;

二是步进电机的各项绕组与数据线连接的对应关系。

这意味着相序表中的加电代码,与步进电机的运行方式及绕组与数据线的连接有关。

因此,实现同一种运行方式,而由于绕组与数据线的连接不同,可以有多种相序加电代码。

表5-2列出了四相双八拍运行方式的一种相序加电代码。

当然,运行方式发生改变,加电代码也会改变。

步进电机的运行方向是采用设置相序表的指针进行控制的。

如表5-2所示,如果把指针设在指向400H单元开始,依次加1,取出加电代码去控制步进电机的运行方向叫做正(向前)方向,那么,再把指针改设在指向407H单元开始,依次减1的方向就是反(向后)方向。

另外,表5-2中的地址单元是随便给定的,在程序中是定义一个变量,来指出相序表的首址。

总之,对步进电机运行方式的控制是采用建立相序表的方法,而运行方向的控制是设置相序表的指针来解决。

步进电机运行速度的控制——软件延时法

控制步进电机速度有两个途径:

一是硬件改变输入脉冲的频率,通过对定时器(如:

8253)定时常数的设定,使其升频、降频或恒频。

二是软件延时,或调用子程序。

采用软件延时方法来改变步进电机速度,虽然简便易行,但延时受CPU主频的影响,导致在主频较低的微机上开发的步进电机控制程序换到较高的主频的微机上,就不能正常运行,甚至由于频率太高,步进电机干脆不动了。

应该指出的是,步进电机的速度还受到本身距——频特性的限制,设计时应满足运行频率与负载力矩之间的确定关系,否则,就会产生失步或无法工作的现象。

5.3软件设计

5.3.1步进电机控制程序设计

(1)端口的使用

其中A口=300H,B口=301H,C口=302H,命令口=303H。

8253的四个端口地址为304H~307H,其中通道0为304H,通道1为305H,通道2为306H,命令口为307H。

8251的两个端口为:

308H~309H,其中,308H为8251数据口,309H为命令/状态口。

(2)步进电机的驱动

步进电机在系统中是一种执行元件,都要带负载,因此,需要功率的驱动。

在电子仪器和设备中,一般所需功率较小,常采用达林顿复合管作功率驱动。

驱动原理图如5-4所示。

图5-2中2,在TIP122的基极上,加电脉冲为高时,加电代码=1时,达林顿管导通,使绕组A通电;

加电代码=0时,绕组断电。

控制输出使能GD输出Q

LHHH

LHLL

LLxQ0

HxxZ

表5-374LS373功能对应表

 

在TIP122的基极上,加电脉冲为高时,加电代码=1时,达林顿管导通,使绕组A通电;

5.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多功能微机实验集成开发环境,利用平台板上的资源,运行程序,检测系统的硬件环境是否正常。

如果正常,则继续下一步的操作;

如果不正常,则开启MF中的故障检测软件,对运行平台上的芯片进行针对性检测,直到平台的硬件系统正常为止。

6.1.2调试自己设计的软件控制程序

实验平台硬件完好的情况下,利用平台板上的硬件资源来调试根据实验要求自己编写的程序。

其调试方法是:

采用MF集成开发环境提供的软件工具,点击编译菜单项,对自编的程序进行编译、连接和运行,观察控制程序运行结果是否达到设计要求。

如果达到要求,则继续下一步的操作,否则,对自编的程序进行调试,直至运行结果符合要求为止。

6.1.3调试自己设计的硬件控制电路

将实验平台板上的部分电路换成自己搭建的模块电路,然后运行MF集成开发环境提供的实验演示程序,观察是否能满足硬件电路设计的要求。

如果能满足要求,则进行下一步的操作,否则,进行电路调试,直至满足要求为止。

调试所用到的工具是万用表和示波器。

6.1.4硬件控制电路与软件控制程序联调

将自制的模块电路(在面包板上)连接到系统设计平台相应接口插座处,构成一个包括CPU、接口和被控对象完整的微机控制系统,同时将自己设计的控制程序调入内存,然后点击MF集成开发环境软件中的编译,进行编译、连接和运行该程序,观察结果是否正确。

如果前面几步是严格按照顺序走下来的,这时应该得到正确的结果,于是一个实验就成功了。

由于本次实验开发所使用的是MFID多功能实验平台提供的硬件平台和集成开发环境软件工具,整个调试过程比较顺利。

因此,建议那些对MFID多功能实验平台不太熟悉的开发人员,多花点时间去了解和熟悉这个实验平台的使用。

6.2操作说明

6.2.1硬件连接与程序运行

用RS-485电缆连接两台MFID平台,再用26芯排线连接本地MFID平台和面包板分别在本地和远程计算机上安装并运行LocalControl.cpp与RemoteControl.cpp程序

6.2.2电机转动及发光二极管发光情况

(1)启动

本地控制端,按开关SW1,电机顺时针转动,四个发光二极管顺时针轮流正常发光;

远程控制端,敲击键盘上的“B”键,运行情况和本地控制一致。

(2)停止

本地控制端,按下开关SW2,电机及发光二极管停止运转和发光;

远程控制端,敲击键盘上的“P”键,运行情况和本地控制一致

(3)电机转动及发光

当电机启动后,本地不能够用开关同时控制电机的运转方向。

远程控制端,在键盘上敲击“A”键,电机顺时针转动,四个发光二极管顺时针闪亮;

再敲击“F”键,电机转动变快和四个发光二极管也快速闪亮;

如果再敲击“S”键,相反,电机与发光二极管转动与发光都边慢。

当敲击“D”键时,电机与发光二极管都逆时针转动与发光,同理上述说明,若再敲击“F”、“S”,情况与顺时针时类似,只是转动与闪亮顺序相反。

(4)退出

本地或远程控制端按下“ESC“键,运行程序退出。

7.设计总结和心得体会

通过这次课程设计,我更加深刻的认识到了步进电机远程控制的基本原理和硬件电路中各个芯片的内部结构。

由于我们的课程设计是小组完成的,因而协调小组中个成员的任务的极其重要的。

只有作为小组长的我们细心的分配好具体的任务,并且时时地监督检查小组成员的任务完成情况,我们的设计任务才能够按计划的进行。

在软件编写的过程中,我遇到了很多平时没有遇到和了解的问题。

首先,就是端口地址的具体调用,并且在设计中如何去使用。

在这一点上,通过张绪辉老师在实验室里,给大家仔细分析例程的过程中,我基本上理解到端口地址的调用。

在远程控制这一块,我首先通过分析参考例程,并做相应的修改,依然无法控制电机,后来,通过与我做同一个课程设计,也是我的室友陈冠宏的分析帮助下,我才了解到原来是我在初始化的方式上出现了问题。

后来,我们又经常在一起讨论软件设计方面的问题,这对我在软件编写上收益匪浅,可是我们又遇到了同样的问题,一旦电机运行后,远程可以控制启/停,而本地却无效。

在这块,我也做了一定的尝试,但事倍功半。

我和陈冠宏在龚老师和李畅老师的指导下,终于解决了这个难题!

在我们小组中,我觉得任务的分配比较合理的。

其中,由两个小组成员负责硬件电路的搭接和资料的搜集,另外让一个成员负责PCB图的制作。

当然,在协调他们的工作上,我由于经验上的不足,还是有些小的细节不能顾及到,因而出现了一些进度的滞后,是我今后在团队合作中应注意到的。

总的说来,我还是觉得我们小组的每个人在课程设计期间都是付出了努力,并且都是有很大的收获的。

对于我自己来说,最深刻的体会是:

通过课程设计的锻炼,让我了解到自己的知识的不足,同时也学到了各种电器件(面包板、万用表、电烙铁)的使用。

致谢

在这次课程设计期间,有很多的老师和同学给予了我很多的帮助,在这里,我特别要感谢我们的项目指导老师龚义建老师,张绪辉老师、孙延维老师、陈宇老师、杜发启老师,还有特地从公司返回母校指导我们课程设计的李畅学长,以及给予过我无私帮助的同学。

正是因为他们的不倦的帮助和指导,才使得我们的课程设计得以顺利的完成!

并且完全实现了设计要求的功能!

在此,我对他们表示深深的感谢!

参考文献

[1]刘乐善主编微型计算机接口技术及应用华中科技大学出版社,2000年第1版

[2]谭浩强主编C程序设计(第二版)清华大学出版社,1999年第2版

[3]32位MFID-4微机实验指导书华中科技大学计算机学院自编

附录A步进电机远程控制程序代码

步进电机本地控制程序如下:

//-------------------------------------------------------------

//------------------步进电机本地控制程序------------------------

//-------****LocalControlProtram****-------------------

#include<

conio.h>

//kbhit();

stdio.h>

//printf();

dos.h>

//delay();

#definedata510x308//8251A数据口

#definectrl510x309//8251A命令/状态口

#definectrl550x303//8255命令口

#definetimer10x305//timer1of8253

#definetimer20x306//8253的2号计数器端口

#definetimctl0x307//8253命令口

#definefactor16//波特率因子16

#definebaudRate4800//SetBaudRate

//-----------------*定义函数*---------------------

voidReceiveInit();

voidListening();

voidint51();

voidset_bps(intbps);

voidMotorInit();

voidStartWork();

voidStopWork();

voidSetSequenceTable(intt[]);

int*table;

//相序表指针

charrcmd;

//定义接受远程命令信息变量

intstatus;

//定义状态变量

voidmain()

{

printf("

-------------------------------------------------------------------------------\n\n"

);

******************RemoteStepMotorControlSystem**********************\n\n"

-------------------------------------------------------------------------------\n"

\nReceivingremotecontrolcommand...\n"

\nPress'

Esc'

toexittheapplication!

\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'

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2