一种直接采用计算机串行口控制步进电机新方法_第1页
一种直接采用计算机串行口控制步进电机新方法_第2页
一种直接采用计算机串行口控制步进电机新方法_第3页
一种直接采用计算机串行口控制步进电机新方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类别:电子综合摘要:介绍了一种计算机申行口经二次开发,用作步进电机 控制器的新方法。计算机通过向申行口发送数据产生控制脉冲,实现对步进电机的控制。关键词:申行口二次开发控制脉冲步进电机控制器步进电机在数控机床、医疗器械、仪器仪表等自动或半自动设备中得到了广泛应用。用计算机控制步进电机的通常作法是采用步进控制卡,系统构成如图1所示[1][2]。其中Pulse、Dir分别为控制电机的转动步数和旋转方向的信号;CWL(ClockWiseLimit)、CCWL(CounterClockWiseLimit)分别为电机顺、逆时针旋转的限位信号;ORg定位信号。这种方法不仅成本较高,而且不便丁操作。在计算机扩展槽上安装控制卡,必需打开机箱才能操作,而且在小型平板电脑和嵌入式电脑中根本没有安装控制卡的空间和扩展槽。将计算机申行口二次开发,用丁控制步进电机,代替控制卡的作用,具有成本低、操作简单、兼容性好等优点。1RS232申行口及编程计算机申行接口采用RS232标准:规定逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V常用的信号有8个(接口为DB9M插座时,引脚号如表1所示),其中RXDTXD为收、发数据,可与RS232申行口设备直接进行通讯,RTSDTRCDDSRCTSBELL为控制与检测MODEM信号,在通讯过程中起联络与控制作用。数据格式有5、6、7、8位几种,1位起始位(逻辑0),1、1.5、或2位停止位(逻辑1),可以选择奇校验、偶校验和无校验,常用波特率为2400、4800、7200、9600bps等。申行口编程方法主要有三种:硬件编程法、文件操作法、申口控件法。表1RS232口各引脚定义引脚号1 作用 方向1CD数据载波检测输入2RXD®收数据输入3TXD发送数据输出4[DTR数据终端准备就绪输出 5GnD言号地6IDS戚据设备准备就绪输入7RTS请求发送输出8 .__——_ CTS活除发送输入9 ||LRI振铃指示输入 |」1.1硬件编程法直接使用端口的输入、输出(I/O)函数对申行口的控制电路进行编程。适用丁DO敏Windows平台(WindowsMe以前的各版本),但在基丁NT技术构建的操作系统(WindowsNT、Windows2000、WindowsXP等)中因不允许用户程序直接操作硬件而不适用。 常用的端口输入、输出函数(指令)有:汇编语言的IN、OUT旨令及软中断调用,C语言的inport() 、outport() 、inportb() 、outportb(),C++的_inp()、_outp()等。计算机申行口采用Intel8250异步申行通讯组布构成,COM、1COM2COM3COM诵勺基地址分别为16#3F8(16进制数3F8,表示法下同)、16#2F&16#3E816#2E8,波特率因子(DR)计算方法为:D&1.8432X1000000/16B,8250编程请见参考文献[3]。1.2文件操作法[4]文件操作法是将申行口作为系统的一个文件来处理, 通过对这个文件的读、写操作引发申口对数据进行收、发动作。这种方法在 DOSWindowsWindowsNTWindows2000及WindowsXP等平台下都能正常工作。例如在BASIC语言中可用语句:OPEN"COM1,1200,n,8,1,rs,cs,ds,cd"AS#1将。行口COM作为文件#1进行读写操作。在VC+呼,可用CreateFile()、BuildCommDCB()Read()、Write()、EscapeCOMMFunction(痔函数将申行口作为文件进行操作。1.3申口控件法用VB及VC+锦程时,可用控件对申行口进行编程。这种方法 通用性好,在WindowsWindowsNTWindows2000及WindowsXP等平台下都能正常工作。在VB中,使用MSCOM咐;在VC+不使用MicrosoftCommunicationControl这一ActiveX类控件。申口控件使用方法请参考MSDN2申行口步进电机控制器工作原理2.1申行口发送数据过程研究在申行口发送数据的过程中,申行口先发送起始位(逻辑0)进行同步,接着按规定的波特率(B)从低位到高位依次发送通讯数据的各二进制位,最后发送停止位(逻辑1)。表示每个二进制位的逻辑电平■在TXD端的保持时间为1/B秒。如果按8位数据位、1位停止位、无奇偶校验方式发送数据,所发送数据的二进制位是0、1交替的。例如:数据取01010101(即16进制的16#55),其发送过程如图2中5所示,每发送一个字节,在TXD®发出5个脉冲,周期T=2/B,即频率f=B/2。改变发送数据的各二进制位,便可在TXD端得到不同的波形。图2示出欲产生1~5个脉冲时应发出的数据及对应的波形。2.2申行口步进电机控制器工作原理通过分析申行口发送数据的过程可知,从TXD端所发出的脉冲完全满足控制步进电机的需要:①改变发送的字节数及所发送的字节内容,可在TXD端产生任意数量的脉冲;②改变波特率可动态改变发送脉冲的频率。所以,可用 TXD乍为控制步进电机的脉冲信号(Pulse)。申行口的DTRRTSCTSDSRCDRI虽然在申行通讯接口中被定义为不同功能的握手信号, 但通过对8250的分析可知,它们均可作为一般的I/O量使用,而且不论采用哪种编程方法,都能很方便地对这些信号进行读写操作。若以DTR或RTS)乍为方向控制信号(Dir),同时分别以CDDSRCTSRI作为状态检测信号(CWLCCWLORGA),则仅用一个申行口就已提供了步进电机控制器需要的所有信号。正是基丁此原理,我们开发了申行口步进电机控制器,并成功应用在板材多点成形设备的控制系统中。由丁申行口已直接提供了控制步进电机所需的所有信号,只需将各信号由RS232电平变成TTL电平■即可。常用的电平转换器件有DS1488DS1489MAX23鑫[5]。用计算机申行口开发的步进电机控制器工作原理如图3所示。心UITI3软件设计及计算为避免电机失步和提高电机运行速度,将步进电机运行过程分为三个阶段:低速起动并加速、高速运行、减速并停止;相应地控制脉冲也分为:升频、高频、降频三段】6],如图4所示。在用申行口发送数据产生控制脉冲时,虽然通过改变所发字节内容的办法能产生1~5中间任意个数的脉冲,但若发送一个字节所产生的脉冲少丁5个,后面接着发送数据产生的脉冲时,两个字节衔接时所产生的脉冲频率和占空比均会产生波动。为使电机运行的三个阶段能平滑过渡,需要对每个阶段的脉冲数量进行调整,使 I、II两个阶段的步数均为5的整数倍(分别为n1X5、n2X5);将非5整数倍的步数安排在减速停车的III阶段,发出脉冲数为n3X5+Ap,其中△p=(1~4)。这可通过改变III阶段所发送的最后一个字节内容实现任意数量的脉冲输出。产生1~4个脉冲应发送的数据分别为16#FF、16#FB16#F516#D5由图4所示的电机运行过程可知,在电机运行过程中,控制脉冲的频率f应随时变化以满足电机低速起停及高速运行的需要。脉冲频率由发送数据的波特率(B)决定,每发出一个脉冲需用两个二进制位1和0来构成其高、低电平,所以f=B/2,通过调整发送数据的波特率可改变所发出的控制脉冲的频率。按常规波特率系列发送数据时所产生的控制脉冲频率变化较大,不能满足电机正常起停及调速的要求,为此计算机需按非标准的波特率发送数据以产生任意频率的控制脉冲。一般在电机起动及停止阶段(I、III)每发送一个字节调整一次波特率,以使电机起停得尽量平■滑。1.111励

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论