資源描述:
《并行接口程序設計》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、第5章并行接口程序設計123并行接口程序設計本章介紹在Windows2000/XP下的并行接口的程序設計方法,分析一下目前進行并行接口編程的方法,可以歸納為幾種:?DLL直接I/O方式:應用程序通過一個可以進行端口I/O訪問的DLL接口軟件實現(xiàn)對并行接口的訪問,即通過調(diào)用第三方DLL接口軟件中的I/O端口讀寫函數(shù)實現(xiàn)對并行口的寄存器的讀寫。這樣的軟件很多,像WinIo、Inpout32、TVicPort等;?ActiveX控件直接I/O方式:通過一個提供ActiveX控件實現(xiàn)對端口的直接I/O訪問,一般控件的方式采用VB編
2、程比較簡單。這樣的軟件包括Inpout32、TVicPort等;?并行接口專用接口軟件:使用這一類軟件對并行接口編程要比上2種方法簡單,有些軟件支持中斷。這樣的軟件如TVicLPT。?自己編寫驅(qū)動程序:直接在VC++環(huán)境下通過Windows2000DDK或WindowsXPDDK編寫驅(qū)動程序,這是一種最靈活的方法,但編程的難度比較大。5.1實現(xiàn)直接I/O方式的軟件并行接口的編程在不同的操作系統(tǒng)下采取不同的方法,在DOS和Windows95之前的操作系統(tǒng)下,可以直接對端口進行讀寫,根據(jù)并行接口的不同模式的寄存器進行讀寫操作就
3、可以完成各種模式的接口編程。在目前的Windows2000/XP操作系統(tǒng)下,不能直接對端口寄存器進行訪問,這是由于Windows2000/XP對系統(tǒng)底層操作采取了屏蔽的策略,對用戶而言,系統(tǒng)變得更為安全,但這卻給接口和接口軟件開發(fā)人員帶來了不小的困難,因為只要應用程序中涉及到底層的操作,開發(fā)人員就不得不深入到Windows的內(nèi)核去編寫屬于系統(tǒng)級的設備驅(qū)動程序。對并行口的讀寫操作就是如此,由于Windows對系統(tǒng)的保護,應用程序不允許直接I/O操作。在Windows2000/XP操作系統(tǒng)下,正規(guī)的接口程序的編程方法是采取驅(qū)動
4、程序的開發(fā)方法。由于驅(qū)動程序需要與操作系統(tǒng)最底層進行交互,因此不同的操作系統(tǒng)的底層結(jié)構(gòu)對應不同的設備驅(qū)動程序模型。Windows2000/XP與Windows9x的內(nèi)部結(jié)構(gòu)不同,這兩類操作系統(tǒng)的設備驅(qū)動程序是不兼容的,為了解決不同的操作系統(tǒng)的結(jié)構(gòu)的差異帶來的設備驅(qū)動程序的不兼容的問題,微軟公司在1997年提出了Windows操作系統(tǒng)的驅(qū)動程序模型,即WDM(WindowsDriverModel)。WDM設備驅(qū)動程序的開發(fā)是在VC++下通過DDK(DeviceDevelopmentKit:設備驅(qū)動程序開發(fā)包)才能完成的,這種
5、方法的編程是比較復雜的,需要了解操作系統(tǒng)的內(nèi)部結(jié)構(gòu),并需要熟練的VC++開發(fā)經(jīng)驗。如果不采用WDM的方法,一個簡單實用的方法是使用間接的I/O方式,就是在應用程序調(diào)用一個第三方提供的直接I/O接口程序,由這個間接的I/O程序模塊實現(xiàn)對端口的讀寫。下面介紹幾種這樣的軟件產(chǎn)品。5.1.1Inpout32第5章并行接口程序設計123Inpout32:由LOGIX4U提供的免費軟件,可以在http://www.logix4u.net/網(wǎng)站下載。Inpout32提供了以DLL文件和AxtiveX的OCX文件兩形式提供了直接訪問I/O
6、端口的函數(shù),在文件中只封裝了2個函數(shù),Inp32()和Out32()。支持從Windows95/98/Me到WindowsNT/2000/XP的多種操作系統(tǒng)。Inpout32只提供對I/O端口的訪問,不針對具體的接口類型,原則上可以完成所有面向寄存器訪問編程的應用程序。但Inpout32沒有提供中斷的支持,所以只能完成以查詢控制方式的程序,不能實現(xiàn)中斷控制方式的程序設計。這可能會影響接口的傳輸速度,同時也使得軟件的CPU占用率很高。很可貴的是,在下載的軟件包中提供了DLL和OCX文件的VC++源程序代碼,這對于開發(fā)接口相關
7、的DLL程序和OCX控件程序很有參考價值。5.1.1TVicPortEnTech提供了用于接口編程的多個軟件產(chǎn)品,包括TVicTW32、TVicLPT和TVicPort等,這些軟件可以在EnTech的網(wǎng)站http://www.entechtaiwan.com/dev/index.shtm上獲得,其中TVicPort是一個免費的軟件,是TVicHW32的簡化版。TVicPort是需要安裝的,默認的目錄是C:TVicPortPersonal,在該目錄下有Docs和Samples兩個目錄,分別是說明文件和程序例子源文件。核心模
8、塊被安裝到了系統(tǒng)目錄。1.TVicPort功能說明TVicPort的功能包括:直接I/O訪問;通過一個指針將物理存儲器影射用戶程序的存儲空間;增強對并行接口的支持,可以直接控制和檢測并行端口的信號線;提供獲得IDE硬盤的制造商信息的函數(shù),如硬盤序列號,可以實現(xiàn)軟件的硬盤邦定;支持WindowsXP64b