一種采用PCI 軟核的軸角數據采集系統

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

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

程序中的I.ReadSize()=4是指每次讀取的字節數是4,即每次讀32位數據,PULONG pBuffer=(PULONG)I.
BufferedReadDest()表示通過(guò)緩沖區來(lái)讀寫(xiě)IO.修改好的程序經(jīng)過(guò)編譯后,生成Mpci.inf和Mpci.sys文件,存放在sysi386的目錄下。當把PCI接口板插入計算機后,重新啟動(dòng)計算機,系統顯示找到新硬件,按照提示將Mpci.inf和Mpci.sys文件裝入。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論