欢迎来到天天文库
浏览记录
ID:6600109
大小:345.00 KB
页数:20页
时间:2018-01-19
《并行接口程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章并行接口程序设计123第5章并行接口程序设计本章介绍在Windows2000/XP下的并行接口的程序设计方法,分析一下目前进行并行接口编程的方法,可以归纳为几种:•DLL直接I/O方式:应用程序通过一个可以进行端口I/O访问的DLL接口软件实现对并行接口的访问,即通过调用第三方DLL接口软件中的I/O端口读写函数实现对并行口的寄存器的读写。这样的软件很多,像WinIo、Inpout32、TVicPort等;•ActiveX控件直接I/O方式:通过一个提供ActiveX控件实现对端口的直接I/O访问,
2、一般控件的方式采用VB编程比较简单。这样的软件包括Inpout32、TVicPort等;•并行接口专用接口软件:使用这一类软件对并行接口编程要比上2种方法简单,有些软件支持中断。这样的软件如TVicLPT。•自己编写驱动程序:直接在VC++环境下通过Windows2000DDK或WindowsXPDDK编写驱动程序,这是一种最灵活的方法,但编程的难度比较大。5.1实现直接I/O方式的软件并行接口的编程在不同的操作系统下采取不同的方法,在DOS和Windows95之前的操作系统下,可以直接对端口进行读写,根
3、据并行接口的不同模式的寄存器进行读写操作就可以完成各种模式的接口编程。在目前的Windows2000/XP操作系统下,不能直接对端口寄存器进行访问,这是由于Windows2000/XP对系统底层操作采取了屏蔽的策略,对用户而言,系统变得更为安全,但这却给接口和接口软件开发人员带来了不小的困难,因为只要应用程序中涉及到底层的操作,开发人员就不得不深入到Windows的内核去编写属于系统级的设备驱动程序。对并行口的读写操作就是如此,由于Windows对系统的保护,应用程序不允许直接I/O操作。在Windows
4、2000/XP操作系统下,正规的接口程序的编程方法是采取驱动程序的开发方法。由于驱动程序需要与操作系统最底层进行交互,因此不同的操作系统的底层结构对应不同的设备驱动程序模型。Windows2000/XP与Windows9x的内部结构不同,这两类操作系统的设备驱动程序是不兼容的,为了解决不同的操作系统的结构的差异带来的设备驱动程序的不兼容的问题,微软公司在1997年提出了Windows操作系统的驱动程序模型,即WDM(WindowsDriverModel)。WDM设备驱动程序的开发是在VC++下通过DDK(
5、DeviceDevelopmentKit:设备驱动程序开发包)才能完成的,这种方法的编程是比较复杂的,需要了解操作系统的内部结构,并需要熟练的VC++开发经验。如果不采用WDM的方法,一个简单实用的方法是使用间接的I/O方式,就是在应用程序调用一个第三方提供的直接I/O接口程序,由这个间接的I/O程序模块实现对端口的读写。下面介绍几种这样的软件产品。5.1.1Inpout32第5章并行接口程序设计123Inpout32:由LOGIX4U提供的免费软件,可以在http://www.logix4u.net/网
6、站下载。Inpout32提供了以DLL文件和AxtiveX的OCX文件两形式提供了直接访问I/O端口的函数,在文件中只封装了2个函数,Inp32()和Out32()。支持从Windows95/98/Me到WindowsNT/2000/XP的多种操作系统。Inpout32只提供对I/O端口的访问,不针对具体的接口类型,原则上可以完成所有面向寄存器访问编程的应用程序。但Inpout32没有提供中断的支持,所以只能完成以查询控制方式的程序,不能实现中断控制方式的程序设计。这可能会影响接口的传输速度,同时也使得软
7、件的CPU占用率很高。很可贵的是,在下载的软件包中提供了DLL和OCX文件的VC++源程序代码,这对于开发接口相关的DLL程序和OCX控件程序很有参考价值。5.1.1TVicPortEnTech提供了用于接口编程的多个软件产品,包括TVicTW32、TVicLPT和TVicPort等,这些软件可以在EnTech的网站http://www.entechtaiwan.com/dev/index.shtm上获得,其中TVicPort是一个免费的软件,是TVicHW32的简化版。TVicPort是需要安装的,默认
8、的目录是C:TVicPortPersonal,在该目录下有Docs和Samples两个目录,分别是说明文件和程序例子源文件。核心模块被安装到了系统目录。1.TVicPort功能说明TVicPort的功能包括:直接I/O访问;通过一个指针将物理存储器影射用户程序的存储空间;增强对并行接口的支持,可以直接控制和检测并行端口的信号线;提供获得IDE硬盘的制造商信息的函数,如硬盘序列号,可以实现软件的硬盘邦定;支持WindowsXP
此文档下载收益归作者所有