一种直接采用计算机串行口控制步进电机的新方法
XP等平台下都能正常工作。例如在BASIC语言中可用语句:OPEN“COM1,1200,n,8,1,rs,cs,ds,cd”AS#1将串行口COM1作为文件#1进行读写操作。在VC++中,可用CreateFile()、BuildCommDCB()、Read()、Write()、EscapeCOMMFunction()等函数将串行口作为文件进行操作。
1.3串口控件法
用VB及VC++编程时,可用控件对串行口进行编程。这种方法通用性好,在Windows、WindowsNT、Windows2000及WindowsXP等平台下都能正常工作。在VB中,使用MSCOMM控件;在VC++下使用MicrosoftCommunicationControl这一ActiveX类控件。串口控制使用方法请参考MSDN。
2串行口步进电机控制器工作原理
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)。
串行口的DTR、RTS、CTS、DSR、CD、RI虽然在串行通讯接口中被定义为不同功能的握手信号,但通过对8520的分析可知,它们均可作为一般的I/O量使用,而且不论采用哪种编程方法,都能很方便地对这些信号进行读写操作。若以DTR(或RTS)作为方向控制信号(Dir),同时分别以CD、DSR、CTS、RI作为状态检测信号(CWL、CCWL、ORG等),则仅用一个串行口就已提供了步进电机控制器需要的所有信号。正是基于此原理,我们开发了串行口步进电机控制器,并成功应用在板材多点成形设备的控制系统中。由于串行口已直接提供了控制步进电电机所需的所有信号,只需将各信号由RS232电平变成TTL电平即可。常用的电平转换器件有DS1488、DS1489、MAX232等[5]。用计算机串行口开发的步进电机控制器工作原理如图3所示。
3软件设计及计算
为避免电机失步和提高电机运行速度,将步进电机运行过程为分三个阶段:低速起动并加速、高速运行、减速并停止;相应地控制脉冲也分为:升频、高频、降频三段[6],如图4所示。
在用串行口发送数据产生控制脉冲时,虽然通过改变所发字节内容的办法能产生1~5中间任意个数的脉冲,但若发送一个字节所字节的脉冲少于5个,后面接着发送数据产生的脉冲时,两个字节衔接时所产生的脉冲频率和占空比均会产生波动。为使电机运行的三个阶段能平滑过滤,需要对每个阶段的脉冲数量进行调整,使Ⅰ、Ⅱ两个阶段的步数均为5的整数倍(分别为n1×5、n2×5 《一种直接采用计算机串行口控制步进电机的新方法(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142010.html
1.3串口控件法
用VB及VC++编程时,可用控件对串行口进行编程。这种方法通用性好,在Windows、WindowsNT、Windows2000及WindowsXP等平台下都能正常工作。在VB中,使用MSCOMM控件;在VC++下使用MicrosoftCommunicationControl这一ActiveX类控件。串口控制使用方法请参考MSDN。
2串行口步进电机控制器工作原理
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)。
串行口的DTR、RTS、CTS、DSR、CD、RI虽然在串行通讯接口中被定义为不同功能的握手信号,但通过对8520的分析可知,它们均可作为一般的I/O量使用,而且不论采用哪种编程方法,都能很方便地对这些信号进行读写操作。若以DTR(或RTS)作为方向控制信号(Dir),同时分别以CD、DSR、CTS、RI作为状态检测信号(CWL、CCWL、ORG等),则仅用一个串行口就已提供了步进电机控制器需要的所有信号。正是基于此原理,我们开发了串行口步进电机控制器,并成功应用在板材多点成形设备的控制系统中。由于串行口已直接提供了控制步进电电机所需的所有信号,只需将各信号由RS232电平变成TTL电平即可。常用的电平转换器件有DS1488、DS1489、MAX232等[5]。用计算机串行口开发的步进电机控制器工作原理如图3所示。
3软件设计及计算
为避免电机失步和提高电机运行速度,将步进电机运行过程为分三个阶段:低速起动并加速、高速运行、减速并停止;相应地控制脉冲也分为:升频、高频、降频三段[6],如图4所示。
在用串行口发送数据产生控制脉冲时,虽然通过改变所发字节内容的办法能产生1~5中间任意个数的脉冲,但若发送一个字节所字节的脉冲少于5个,后面接着发送数据产生的脉冲时,两个字节衔接时所产生的脉冲频率和占空比均会产生波动。为使电机运行的三个阶段能平滑过滤,需要对每个阶段的脉冲数量进行调整,使Ⅰ、Ⅱ两个阶段的步数均为5的整数倍(分别为n1×5、n2×5 《一种直接采用计算机串行口控制步进电机的新方法(第2页)》