还剩4页未读,继续阅读
文本内容:
一种直接采用计算机串行口控制步进电机新方法类别电子综合http://www.ic
37.com/htm_tech/listpage17_
1.htm\o电子综合摘要介绍了一种计算机串行口经二次开发,用作步进电机控制http://www.ic
37.com/htm_tech/listpage7_
6.htm\o控制\t_blank器的新方法计算机通过向串行口发送数据产生控制脉冲,实现对步进电机的控制关键词串行口二次开发控制脉冲步进电机控制器步进电机在数控机床、医疗器械、仪器仪表等自动或半自动设备中得到了广泛应用用计算机控制步进电机的通常作法是采用步进控制卡,系统构成如图1所示
[1]
[2]其中Pulse、Dir分别为控制电机的转动步数和旋转方向的信号;CWLClockWiseLimit、CCWLCounterClockWiseLimit分别为电机顺、逆时针旋转的限位信号;ORG为定位信号这种方法不仅成本较高,而且不便于操作在计算机扩展槽上安装控制卡,必需打开机箱才能操作,而且在小型平板电脑和嵌入式电脑中根本没有安装控制卡的空间和扩展槽将计算机串行口二次开发,用于控制步进电机,代替控制卡的作用,具有成本低、操作简单、兼容性好等优点1RS232串行口及编程计算机串行接口采用RS232标准规定逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,常用的信号有8个接口为DB9M插座时,引脚号如表1所示,其中RXD、TXD为收、发数据,可与RS232串行口设备直接进行通讯,RTS、DTR、CD、DSR、CTS、BELL为控制与检测MODEM的信号,在通讯过程中起联络与控制作用数据格式有
5、
6、
7、8位几种,1位起始位逻辑0,
1、
1.
5、或2位停止位逻辑1,可以选择奇校验、偶校验和无校验,常用波特率为
2400、
4800、
7200、9600bps等串行口编程方法主要有三种硬件编程法、文件操作法、串口控件法表1RS232接口各引脚定义引脚号作用方向1CD数据载波检测输入2RXD接收数据输入3TXD发送数据输出4DTR数据终端准备就绪输出5GND信号地6DSR数据设备准备就绪输入7RTS请求发送输出8CTS清除发送输入9RI振铃指示输入
1.1硬件编程法直接使用端口的输入、输出I/O函数对串行口的控制电路http://www.ic
37.com/htm_pro/prolist1714_
2.htm\o电路\t_blank进行编程适用于DOS及Windows平台WindowsMe以前的各版本,但在基于NT技术构建的操作系统WindowsNT、Windows
2000、WindowsXP等中因不允许用户程序直接操作硬件而不适用常用的端口输入、输出函数(指令)有汇编语言的IN、OUT指令及软中断调用,C语言的inport 、outport 、inportb 、outportb,C++的_inp、_outp等计算机串行口采用Intel8250异步串行通讯组件构成,COM
1、COM
2、COM
3、COM4的基地址分别为16#3F816进制数3F8,表示法下同、16#2F
8、16#3E
8、16#2E8,波特率因子DR计算方法为DR=
1.8432http://www.ic
37.com/Stock/1/
1.
8432.html\o
1.8432\t_blank×1000000/16B8250编程请见参考文献
[3]
1.2文件操作法
[4]文件操作法是将串行口作为系统的一个文件来处理,通过对这个文件的读、写操作引发串口对数据进行收、发动作这种方法在DOS、Windows、WindowsNT、Windows2000及WindowsXP等平台下都能正常工作例如在BASIC语言中可用语句OPENCOM11200n81rscsdscdAS#1将串行口COM1作为文件#1进行读写操作在VC++中,可用CreateFile、BuildCommDCB、Read、Write、EscapeCOMMFunction等函数将串行口作为文件进行操作
1.3串口控件法用VB及VC++编程时,可用控件对串行口进行编程这种方法通用性好,在Windows、WindowsNT、Windows2000及WindowsXP等平台下都能正常工作在VB中,使用MSCOMM控件;在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串行口的DTR、RTS、CTS、DSR、CD、RI虽然在串行通讯接口中被定义为不同功能的握手信号,但通过对8250的分析可知,它们均可作为一般的I/O量使用,而且不论采用哪种编程方法,都能很方便地对这些信号进行读写操作若以DTR或RTS作为方向控制信号Dir,同时分别以CD、DSR、CTS、RI作为状态检测信号CWL、CCWL、ORG等,则仅用一个串行口就已提供了步进电机控制器需要的所有信号正是基于此原理,我们开发了串行口步进电机控制器,并成功应用在板材多点成形设备的控制系统中由于串行口已直接提供了控制步进电机所需的所有信号,只需将各信号由RS232电平变成TTL电平即可常用的电平转换器件有DS1488http://www.ic
37.com/Stock/D/DS
1488.html\oDS1488\t_blank、DS1489http://www.ic
37.com/Stock/D/DS
1489.html\oDS1489\t_blank、MAX232http://www.ic
37.com/Stock/M/MAX
232.html\oMAX232\t_blank等
[5]用计算机串行口开发的步进电机控制器工作原理如图3所示3软件设计及计算为避免电机失步和提高电机运行速度,将步进电机运行过程分为三个阶段低速起动并加速、高速运行、减速并停止;相应地控制脉冲也分为升频、高频、降频三段
[6],如图4所示在用串行口发送数据产生控制脉冲时,虽然通过改变所发字节内容的办法能产生1~5中间任意个数的脉冲,但若发送一个字节所产生的脉冲少于5个,后面接着发送数据产生的脉冲时,两个字节衔接时所产生的脉冲频率和占空比均会产生波动为使电机运行的三个阶段能平滑过渡,需要对每个阶段的脉冲数量进行调整,使I、II两个阶段的步数均为5的整数倍分别为n1×
5、n2×5;将非5整数倍的步数安排在减速停车的III阶段,发出脉冲数为n3×5+Δp,其中Δp=1~4这可通过改变III阶段所发送的最后一个字节内容实现任意数量的脉冲输出产生1~4个脉冲应发送的数据分别为16#FF、16#FB、16#F
5、16#D5由图4所示的电机运行过程可知,在电机运行过程中,控制脉冲的频率f应随时变化以满足电机低速起停及高速运行的需要脉冲频率由发送数据的波特率B决定,每发出一个脉冲需用两个二进制位1和0来构成其高、低电平,所以f=B/2,通过调整发送数据的波特率可改变所发出的控制脉冲的频率按常规波特率系列发送数据时所产生的控制脉冲频率变化较大,不能满足电机正常起停及调速的要求,为此计算机需按非标准的波特率发送数据以产生任意频率的控制脉冲一般在电机起动及停止阶段I、III每发送一个字节调整一次波特率,以使电机起停得尽量平滑用串行口直接控制步进电机的控制软件流程图如图5所示4高级控制功能对步进电机的高级控制,主要是指自动找零及多机联动差补找零功能是指控制步进电机驱动运动机构,完成定位的过程在找零时,电机一般以低速运行,当测到ORG信号时电机停止由于运行速度低,为简化程序设计,每发送一个字节,在TXD端可以只输出一个脉冲,测到ORG信号则停止发送为保证输出脉冲的占空比为50%,发送字节定为16#F0找零程序的设计可参照图5进行差补是指控制两台或两台以上电机按规定的速比运行,进而控制执行机构沿规定的轨迹运行由于一般计算机只有两个串行口,这种方法只适用于二维差补控制通常两个串行口用相同的波特率进行发送,通过调整发送的字节数及发送每个字节所产生的脉冲个数的不同来调整两个电机的运行速度和位置实际运行证明,用串行口设计的步进电机控制器具有使用方便、性能稳定、成本低、可移植性好、不需安装硬件设备驱动程序等优点直接采用计算机串行口设计的步进电机控制控制器适用于对全数字式伺服电机进行控制本文对计算机串行口、并行口等资源的二次开发应用起到了一定的借鉴作用参考文献1UsersManualPCL-839.AdvantechCo.Ltd.1994.122嘉志.6020电机控制卡使用手册.北京东方嘉志机电技术发展中心,2001.13刘镜年.IBM-PC微机汇编语言及接口技术.武汉武汉测绘科技大学出版社,
1992.74钮金真.用VisualC++
6.0开发Windows98环境下串行通讯程序.北京中央民族大学学报,
2001.15邬宽明.单片机http://www.ic
37.com/htm_tech/listpage1_
1.htm\o单片机\t_blank外围器件实用手册-数据传输接口器件分册.北京北京航空航天大学出版社,
1998.126潘新民.微型计算机控制技术.北京人民邮电出版社,
1988.3。