分享好友 数控技术首页 数控技术分类 切换频道

基于Windows 95的步进电机控制卡实时驱动

2019-07-03 00:00430

摘要:介绍一种工业用计算机IPC机与步进电机控制卡中的单片机之间通讯接口电路原理,并用动态链接库方法实现Windows 95环境下步进电机控制卡的实时驱动程序。
关键词:Windows 95;步进电机控制卡;动态链接库;实时控制
中图分类号:TP273;TP311.11
文献标识码:B
文章编号:1001-2265(1999)10-0021-03

Real-time drive on step-motor control card based on Windows 95

Li Qihao Wang Jianbing

Abstract:In this paper,a principle of communication interface circuit between IPC and step-motor control card is described,and a real-time driver of step-motor control card programmed with DLL under Windows 95 is presented.
Key words:Windows 95;step-motor control card;DLL;real-time control

1 引言
  Windows 95是Microsoft公司推出的一个彻底的32位的图形环境操作系统。在Windows 95环境下开发实时控制系统可以充分利用Windows 95丰富的资源,缩短产品的开发周期,实现标准统一的Windows 95界面,使研究人员致力于关键控制软件和控制模板的开发。
  如何在Windows 95环境下编写特定硬件的实时驱动程序,是实现控制系统的关键。在Windows 95环境下,虚拟机管理器(VMM)提供内存管理和异常服务管理等服务。虚拟设备驱动程序(VxD)通过对计算机的各种硬件和支撑软件进行管理以实现对设备无关的VMM的支持。用户新增硬件(如控制卡)时必须有相应的设备驱动程序支持,而目前为止我们的控制卡所提供的驱动程序是DOS下用C语言编写的16位应用程序,在Windows 95的32位工作方式下是无法运行此程序的,这样我们必须用Windows 95设备驱动程序工具包DDK (Device Develop Kits)创建设备驱动程序和VxD所需的头文件。本文提出了一种方法,在不采用DDK进行设备驱动程序开发的情况下,我们也可以用步进电机控制卡完成对数控机床的控制。
2 通信接口原理
  我们开发的实时控制系统是铣床数控系统。考虑到本铣床控系统软件包括译码、刀具半径补偿、插补运算和速度控制等模块,为了减轻IPC机进行大量的数据运算和处理工作,在硬件设计方面设计了一个步进电机控制卡(含有8031单片机),构成一个包括上、上拉机的数控系统。上位机负责整个系统的综合管理、人机交换和下位机的通讯等。上位机软件主要实现初始化、加工程序文件管理、数据处理等功能;下位机软件主要实现插补运算和步进电机位置及速度控制等功能。上、下位机通过中断方式或查询方式进行并行通讯。
  如图所示为通信接口电路图。图中左边总线为IPC机的AT总线(80286以上机型),电路板插入IPC机的I/O扩展槽上,两片8255A完成8031和IPC机间的并行通信接口,27512为EPROM,存放8031的程序,74LS373为地址锁存器,74LS138(1)输出8255A(2)的片选信号,74LS138(2)输出8255A(1)的片选信号(图中未画出)。

图 通信电路图

  当下位机要向上位机发送数据时,首先读取8255A(1)的PC4,而PC4连接8255A(2)的IBF,若PC4为1时,说明8255A(2)中的数据还未被IPC机取走,8031继续循环检测PC4。若PC4为0时,则8255A(2)的IBF为0,说明8255A(2)中的数据已被IPC机取走,8031可以发送新数据了。8031写一数据后(有一下跳沿),由8255A的工作原理并结合电路图可知,8255A(1)的变为0,引起8255A(2)的下跳,的下跳会引起IBF上升,从而引起8255A(1)的ACK变为0,这表明8255A(1)中的数据已经传到8255A(2)的寄存器中了,而的下跳又会引起上升,从而引起8255A(2)的上升,会产生INTR的中断请求信号,IPC机接受此中断或查询此引脚,将数据读入内存中(此时有一下跳),引起IBF恢复为0,8255A(1)的PC4也为0,为下次传输数据作好了准备。以上是8031向IPC机发送数据的全过程。由于IPC机和步进电机控制卡之间通信接口电路是对称的,IPC机发给8031数据也经过完全相同的过程,这样,IPC机和步进电机控制卡之间就可以进行双向并行通讯了。
3 软件编制
  动态链接库DLL是包含共享函数库的二进制文件,是一种基于Windows的程序模块,它是在运行时刻被装入和链接的。动态链接库中只包含供应用程序运行时装入该DLL的有关信息,并非是源代码的复制,因此在Windows下使用动态链接库可以使多个应用程序之间共享代码和资源,从而提高运行效率。我们可以借助于VC编译器,编制一个可供铣床数控系统调用的32位DLL模块,以实现对步进电机控制卡的驱动。
  按照图1的地址线接法,8255A(2)的PA、PB、PC和控制寄存器地址分别为320H、321H、322H和323H。软件可以通过对这些I/O地址的读入和写出控制步进电机控制卡,进而实现对步进电机的控制。上、下位机之间的并行通讯可以通过查询方式。
  出于本铣床数控系统是以Windows 95为软件平台,因此,我们在步进电机控制卡的驱动程序设计中,考虑到以下因素:
  (1)遵循由硬件电路设计决定的握手协议,即通过查询PC0和PC4的状态实现上位机接收反馈信息和发送数据;
  (2)既要考虑到数控系统是实时性控制系统,又要考虑到上、下位机之间通讯时有一个时间协调的问题;
  (3)下位机软件包括插补和速度控制模块,工作量较大,同时上位机接收下位机反馈信息的频率远远大于上位机向下位机发送数据的频率,因此,上位机接收下位机反馈信息时,有等待时间;
  (4)Windows 95多任务的操作系统决定了一个任务不能长时间独占系统资源,否则,极易造成系统资源耗尽、系统崩溃。
  综合上述因素,我们在上位机接收下位机数据函数中Recvcha(),用一个次数为500的循环语句查询PC4的状态,既达到通过延时接收数据,又不至于使此任务长时间独占系统资源;而在上位机向下位机发送数据函数Sendcha()中,尽管用了一个无限循环语句查询PC0的状态,由于下位机能及时接收到数据,因此不至于耗尽系统资源。
  下面给出一段用VC和汇编语言混合编程以查询方式实现的步进电机控制卡驱动程序中Recvcha()函数部分。源代码程序如下:
#include <windows.h>
#include <conio.h>
#include <ctype.h>
#define PortA8255A2 0320 ∥PA口地址
#define PortB8255A2 0321 ∥PB口地址
#define PortC8255A2 0322 ∥PC口地址
∥DDL入口函数DllEntryPoint()
BOOL WINAPI DllEntryPoint(HINSTANCE hDLL,DWORD dwReason,LPVOID Reserved)

   
   

unsigned char Recvcha(void) ∥接收数据函数

  unsigned char returnvalue;
  asm{
   mov DX,PortC8255A2 ;送PC口地址
   mov CX 500    ;置循环次数
CHECK:in AL,DX    ;循环检测PC0
test AL,001  ;PC0=1可以跳出循环
jnz GET
loop CHECK
GET:mov DX,PortB8255A2  ;取PB端口数
in AL,DX
mov returnvalue,AL

  return (returnvalue);  ∥返回所取数据

  将生成的动态链接库文件放在Windows 95的系统目录或应用程序所在的目录下,程序就可以使用Recvcha()和Sendcha()这两个函数进行上、下机之间数据传输。
4 结论
  利用以上方法,我们很好地解决了Windows 95环境下IPC机和步进电机控制卡之间的并行通讯问题。实验表明,步进电机控制卡工作稳定,上、下机之间数据传递安全、可靠,解决了在不采用DDK进行设备驱动程序开发的情况下,实现用步进电机控制卡完成对数控机床的控制。

举报
收藏 0
打赏 0
轻松提高数控机床精度
随着我国经济的飞速发展,数控机床作为新一代工作母机,在机械制造中已得到广泛的应用,精密加工技术的迅速发展和零件加工精度的

0评论2025-01-04312

加工中心刀具长度补偿怎么用?
在数控加工中,刀具长度补偿是一种重要的措施,用于消除机床变形、热变形等因素引起的误差,保证加工精度,从而提高培训效率,减

0评论2024-12-18400

加工中心主轴定位角度怎么调?
  在数控加工领域,加工中心主轴的定位角度是影响加工精度和效率的重要因素之一。正确调整主轴的定位角度可以提高加工质量,减

0评论2024-12-11496

简述机器人加装电主轴就选Kasite 4060ER-S的理由
  近年来,随着科技的不断发展,机器人作业已经渗透到各个领域,尤其在工业制造领域,更加随处可见。高精密切割、铣削、雕刻、

0评论2024-05-20707

机器人主轴怎么选?Kasite高速电主轴满足你的需求
  机器人发展到现在越来越受到人们的欢迎和重视,现在很多传统行业都在生产作业中引入了工业机器人,随着机器人的改进和优化,

0评论2023-10-231208

机械臂加装2.2KW大力矩电主轴,就选MSIY-80电主轴
机械臂想加装大力矩电主轴,用于铸钢等硬质材料去毛刺,铣削等加工,可以考虑MSIY-80电主轴,外径80mm,重量4.8公斤,可搭配轴向或径向浮动刀柄配套使用。

0评论2023-08-261203

每天早上打开数控机床时有没有必要热机?
工厂使用精密数控机床(加工中心、电火花、慢走丝等机床)进行高精密加工,你是否有这样的经验:每天早上开机进行加工,首件的加

0评论2023-08-151093