一種采用PCI軟核的軸角數(shù)據(jù)采集系統(tǒng)
設(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è)備標識符和銷售商標識符,要與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文件,存放在 sys\i386的目錄下。當把PCI接口板插入計算機后,重新啟動計算機,系統(tǒng)顯示找到新硬件,按照提示將Mpci.inf和Mpci.sys文件裝入。
該采集卡用于LabWindows/CVI的虛擬儀器中,在LabWindows/CVI中調(diào)用驅(qū)動程序的方法如下:
圖4是顯示的采集數(shù)據(jù)波形,由波形圖可以測出軸角編碼數(shù)據(jù)采集系統(tǒng)能夠?qū)崿F(xiàn)實時采集。
4結(jié)語
本文討論了基于PCI總線的高速軸角數(shù)字采集系統(tǒng),實現(xiàn)對軸角量的高速采集。采用FPGA設(shè)計PCI接口,將接口電路。存貯器及軸角時序轉(zhuǎn)換控制集成于一個芯片,具有集成度高及實現(xiàn)方式靈活的特點。本采集卡用于軸角虛擬儀器系統(tǒng),試驗表明采用PCI總線的軸角采集卡的數(shù)據(jù)采集速率能夠達到27 r/s,數(shù)據(jù)傳輸速率132 MB/s,優(yōu)于ISA總線接口的采集板。
評論