一种直接采用计算机串行口控制步进电机新方法
发布时间:2008/6/3 0:00:00 访问次数:513
摘要:介绍了一种计算机串行口经二次开发,用作步进电机控制器的新方法。计算机通过向串行口发送数据产生控制脉冲,实现对步进电机的控制。 关键词:串行口 二次开发 控制脉冲 步进电机控制器
|
步进电机在数控机床、医疗器械、仪器仪表等自动或半自动设备中得到了广泛应用。用计算机控制步进电机的通常作法是采用步进控制卡,系统构成如图1所示[1][2]。其中pulse、dir分别为控制电机的转动步数和旋转方向的信号;cwl(clock wise limit)、ccwl(counter clock wise limit)分别为电机顺、逆时针旋转的限位信号;org为定位信号。 这种方法不仅成本较高,而且不便于操作。在计算机扩展槽上安装控制卡,必需打开机箱才能操作,而且在小型平板电脑和嵌入式电脑中根本没有安装控制卡的空间和扩展槽。将计算机串行口二次开发,用于控制步进电机,代替控制卡的作用,具有成本低、操作简单、兼容性好等优点。 |
|
1 rs232串行口及编程 计算机串行接口采用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等。串行口编程方法主要有三种:硬件编程法、文件操作法、串口控件法。 |
表1 rs232接口各引脚定义 |
引脚号 |
作用 |
方向 |
1 |
cd 数据载波检测 |
输入 |
2 |
rxd 接收数据 |
输入 |
3 |
txd 发送数据 |
输出 |
4 |
dtr 数据终端准备就绪 |
输出 |
5 |
gnd 信号地 |
|
6 |
dsr 数据设备准备就绪 |
输入 |
7 |
rts 请求发送 |
输出 |
8 |
cts 清除发送 |
输入 |
9 |
ri 振铃指示 |
输入 | |
1.1 硬件编程法 直接使用端口的输入、输出(i/o)函数对串行口的控制电路进行编程。适用于dos及windows平台(windows me以前的各版本),但在基于nt技术构建的操作系统(windows nt、windows 2000、windows xp等)中因不允许用户程序直接操作硬件而不适用。常用的端口输入、输出函数(指令)有:汇编语言的in、out指令及软中断调用,c语言的inport( )、outport( )、inportb( )、outportb( ),c++的_inp( )、_outp( )等。计算机串行口采用intel 8250异步串行通讯组件构成,com1、com2、com3、com4的基地址分别为16#3f8(16进制数3f8,表示法下同)、16#2f8、16#3e8、16#2e8,波特率因子(dr)计算方法为:dr=1.8432×1000000/16b,8250编程请见参考文献[3]。
1.2 文件操作法[4] 文件操作法是将串行口作为系统的一个文件来处理,通过对这个文件的读、写操作引发串口对数据进行收、发动作。这种方法在dos、windows、windows nt、windows2000及windows 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、windows nt、windows2000及windows xp等平台下都能正
摘要:介绍了一种计算机串行口经二次开发,用作步进电机控制器的新方法。计算机通过向串行口发送数据产生控制脉冲,实现对步进电机的控制。 关键词:串行口 二次开发 控制脉冲 步进电机控制器
|
步进电机在数控机床、医疗器械、仪器仪表等自动或半自动设备中得到了广泛应用。用计算机控制步进电机的通常作法是采用步进控制卡,系统构成如图1所示[1][2]。其中pulse、dir分别为控制电机的转动步数和旋转方向的信号;cwl(clock wise limit)、ccwl(counter clock wise limit)分别为电机顺、逆时针旋转的限位信号;org为定位信号。 这种方法不仅成本较高,而且不便于操作。在计算机扩展槽上安装控制卡,必需打开机箱才能操作,而且在小型平板电脑和嵌入式电脑中根本没有安装控制卡的空间和扩展槽。将计算机串行口二次开发,用于控制步进电机,代替控制卡的作用,具有成本低、操作简单、兼容性好等优点。 |
|
1 rs232串行口及编程 计算机串行接口采用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等。串行口编程方法主要有三种:硬件编程法、文件操作法、串口控件法。 |
表1 rs232接口各引脚定义 |
引脚号 |
作用 |
方向 |
1 |
cd 数据载波检测 |
输入 |
2 |
rxd 接收数据 |
输入 |
3 |
txd 发送数据 |
输出 |
4 |
dtr 数据终端准备就绪 |
输出 |
5 |
gnd 信号地 |
|
6 |
dsr 数据设备准备就绪 |
输入 |
7 |
rts 请求发送 |
输出 |
8 |
cts 清除发送 |
输入 |
9 |
ri 振铃指示 |
输入 | |
1.1 硬件编程法 直接使用端口的输入、输出(i/o)函数对串行口的控制电路进行编程。适用于dos及windows平台(windows me以前的各版本),但在基于nt技术构建的操作系统(windows nt、windows 2000、windows xp等)中因不允许用户程序直接操作硬件而不适用。常用的端口输入、输出函数(指令)有:汇编语言的in、out指令及软中断调用,c语言的inport( )、outport( )、inportb( )、outportb( ),c++的_inp( )、_outp( )等。计算机串行口采用intel 8250异步串行通讯组件构成,com1、com2、com3、com4的基地址分别为16#3f8(16进制数3f8,表示法下同)、16#2f8、16#3e8、16#2e8,波特率因子(dr)计算方法为:dr=1.8432×1000000/16b,8250编程请见参考文献[3]。
1.2 文件操作法[4] 文件操作法是将串行口作为系统的一个文件来处理,通过对这个文件的读、写操作引发串口对数据进行收、发动作。这种方法在dos、windows、windows nt、windows2000及windows 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、windows nt、windows2000及windows xp等平台下都能正
热门点击
推荐技术资料
| |