一種采用PCI 軟核的軸角數(shù)據(jù)采集系統(tǒng)

2 PCI接口設(shè)計
PCI接口采用Altera公司的Megacore宏單元PCI_MT32實現(xiàn)。PCI_MT32是一個32位主。從方式的PCI接口功能模塊,支持33 MHz和66 MHz的總線時鐘。
PCI_MT32的功能框圖如圖3所示,由兩部分功能組成,一部分與PCI總線相連接,包括PCI Address/DataBuffer(地址數(shù)據(jù)總線)以及PCI Target Control(PCI從方式)控制信號,這些信號的功能與PCI總線的接口協(xié)議的規(guī)范相同,另一部分與局部總線相連接,包括LocalTarget Address/Data/Command/Byte Enable寄存器。LocalTarget Control寄存器,用于傳送地址。數(shù)據(jù)和控制信號。配置寄存器(Configuration registers)可以進行deciceID.vendor ID等參數(shù)的配置。
設(shè)計PCI的方法如下:在MAX+PLUSⅡ中,調(diào)入PCI_MT32宏單元后,根據(jù)數(shù)據(jù)采集板的功能和需要,設(shè)置PCI_MT32的參數(shù)表如下:

3 WDM驅(qū)動程序設(shè)計
PCI總線接口板驅(qū)動程序的設(shè)計采用CompuwareNumega公司的DriverStudio軟件[9],其設(shè)計步驟如下:
(1)啟動DriverWorks出現(xiàn)Driver Wizard的向?qū)υ捒?,首先輸入軸角數(shù)據(jù)采集板驅(qū)動程序的文件名:
MPCI;(2)選擇文件的類型,選擇其中的WDM項,表示生成WDM類型文件。
(3)選擇接口板的類型以及填寫Device ID和Vend-er ID.在接口板類型項中選擇PCI.Device ID和Vend-er ID是設(shè)備標(biāo)識符和銷售商標(biāo)識符,要與PCI接口板中的一致,因此填寫“0004”和“1172”作為Device ID和VenderID,Subsystem ID和Revision ID項采用缺省值。
由上面的步驟產(chǎn)生的WDM驅(qū)動程序的框架代碼(Mpci.dsw)需要添加代碼,才能完成讀。寫和控制功能。在VC中打開Mpci.dsw,可以看到它是由兩部分組成:一個是用于生成驅(qū)動程序的MPCI文件,一個是用于測試驅(qū)動程序的TEST-MPCI文件。因為PCI接口板的功能是讀取數(shù)據(jù),需要添加如下的“讀取”控制代碼:

程序中的I.ReadSize()=4是指每次讀取的字節(jié)數(shù)是4,即每次讀32位數(shù)據(jù),PULONG pBuffer=(PULONG)I.
BufferedReadDest()表示通過緩沖區(qū)來讀寫IO.修改好的程序經(jīng)過編譯后,生成Mpci.inf和Mpci.sys文件,存放在sysi386的目錄下。當(dāng)把PCI接口板插入計算機后,重新啟動計算機,系統(tǒng)顯示找到新硬件,按照提示將Mpci.inf和Mpci.sys文件裝入。
關(guān)鍵詞:
PCI
數(shù)據(jù)采集系統(tǒng)
伺服設(shè)備
評論