<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種采用PCI 軟核的軸角數(shù)據(jù)采集系統(tǒng)

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

          作者: 時間:2014-02-18 來源:網(wǎng)絡(luò) 收藏

          2 接口設(shè)計

          接口采用Altera公司的Megacore宏單元_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)可以進(jìn)行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)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();