《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于PXI總線的高速數字I/O卡的設計

基于PXI總線的高速數字I/O卡的設計

2008-07-24
作者:陳國斌, 湯清華, 湯丁誠

??? 摘 要:依據PXI總線規范,應用PCI9054總線控制器" title="總線控制器">總線控制器實現PXI總線接口,通過FPGA控制PCI9054總線控制器局部總線" title="局部總線">局部總線和FIFO的讀寫端口來實現高速數字" title="高速數字">高速數字輸入輸出。測試結果表明,該板卡能夠穩定地傳輸不低16MHz的高速數字信號。
??? 關鍵詞: PXI; 數字輸入輸出; PCI9054; FPGA

?

??? PXI是PCI在儀器領域的擴展(PCI Extension for Instrumentation),其技術規范是NI公司于 1997年9月1日推出的,現已有60多家聯盟[1]。PCI局部總線可以在33MHz和 32位數據通路的條件下達到峰值132Mb/s的帶寬,在66MHz和 64位數據通路的條件下達到峰值528Mb/s的帶寬[2]。PXI吸收了VXI的優點,同時受益于Compact PCI(CPCI),因而速度更快、結構堅固緊湊、系統可靠穩定,在射頻和微波頻帶以下的低、中高頻段可以替代VXI而且價格優勢明顯,深受廣大用戶歡迎,目前正朝氣蓬勃地向商用與軍用領域拓展。
??? PXI高速數字I/O卡是實現各種功能復雜的高速傳輸模塊的最基本單元。對它的深入研究設計有助于更好地理解PXI總線及其接口設計" title="接口設計">接口設計。
1 系統結構與設計原理
??? 一個完整的數字I/O系統由PCI總線控制器、FPGA、FIFO等模塊組成。PCI總線控制器實現PXI總線接口,FIFO作為數據輸入輸出的緩存器件,經FPGA控制后實現局部總線數據的讀寫操作。具體的結構如圖1。

?


??? 數據傳輸流程為:輸入時,外部數據通過寫入FIFO后讀出傳入PCI9054局部總線,經PCI9054傳入到PXI總線;輸出時,數據經PXI總線送人PCI9054后經局部總線傳到輸出FIFO后,通過讀取FIFO實現數據的輸出。整個傳輸過程的時序由FPGA嚴格控制。
2 硬件設計
??? 硬件設計包括接口設計和局部總線設計。
2.1接口設計
??? 當前國際上實現PXI接口主要有兩種途徑:一種是直接通過FPGA進行接口設計,主要是調用FPGA中的PCI宏單元。另一種是直接通過專用的PCI接口芯片來實現接口設計。前一種方法要求對PCI總線規范十分了解,調試困難較大,開發周期較長,而直接購買PCI的IP核又太貴,所以這里采用第二種方案。目前提供PCI 通訊芯片的廠家很多,比較成熟的接口芯片有PLX公司的PCI90XX系列、AMCC公司的S59XX系列以及CYPRESS公司的CY7C094XX系列。
??? PCI9054是由美國PLX公司生產的先進的PCI I/O Accelerator;符合PCI2.2協議,采用了先進的數據流水線結構技術;局部總線提供了M、C、J 三種工作模式以適應不同的局部處理器;具有可選的串行EEPROM接口,本地總線時鐘可和PCI時鐘異步。PCI9054內部有6種可編程的FIFO,以實現零等待突發傳輸及本地總線與PCI總線之間的異步操作;本地時鐘可以達到 50MHz,且與 PCI 時鐘異步。它支持突發以及DMA傳輸,能在主模式和從模式、DMA模式下工作,是應用非常廣泛的一款PCI接口芯片[3]。PXI接口框圖如圖2。

?


??? 數據總線和地址總線是復用的,分別為AD0-AD31;控制總線主要包括C/BE[0:3]#、FRAME#、IRDY#、DEVSEL#、TRDY#、STOP#、IDSEL#、LOCK#、PAR#、PEER#、SERR#、REQ#、GNT#等,在硬件連接時只要將PXI接口和PCI9054對應的這些端口相連即可。與串行EEPROM對應的端口為CS、SK、DI、DO,在電路中DI和DO是物理連接的,EEPROM的EEDI/EEDO引腳的配置要注意:當不安裝EEPROM時,該引腳一定要下拉,用1kΩ的下拉電阻即可,此時啟動后9054會按默認值進行配置;當安裝空白的EEPROM時,該引腳需要上拉;當安裝燒錄好的EEPROM時,該引腳需要上拉。
2.2局部總線設計
??? 由圖2可知,PCI9054的局部總線分別與FPGA和功能模塊相連。由于在功能模塊中用到的是FIFO緩存器,所以不需要局部地址總線,只需將數據總線分別連接到兩塊FIFO中,局部總線的控制信號和FIFO的控制信號連接到FPGA中,通過FPGA來控制FIFO的讀寫。為了靈活地改變數據的傳輸速率,在FPGA中調用鎖相環來給FIFO分配讀寫時鐘。局部總線的電路連線如圖3。

?


??? 為了配合外部電路的速度和匹配要求,在這里應用了Altera的庫生成了PLL(Phase Locked Loop)。PLL具有低的時鐘偏移,應用靈活,通過調整比例關系就可以得到所需要的時鐘頻率。其symbol如圖4,時序仿真如圖5。

?

?

??? 通過設置寄存器DMAMODE的第7位可以使能或禁止外部等待輸入控制信號READY#,以使PCI9054工作于外部等待或內部等待狀態。當READY#被禁止時,則在每次傳輸的地址和數據間插入等待狀態,其數目由內部的等待狀態計數器決定;若READY#使能,則READY#信號的持續時鐘周期決定了附加的等待狀態。本設計采用C模式READY#使能方式。根據PCI9054的時序圖(見PCI9054 Data Book5.6節),每次數據傳輸時,首先發出地址選通信號ADS#,當總線準備好則使READY#信號有效,開始數據傳輸;否則總線處于等待狀態。數據一旦開始傳輸,局部總線控制器將判斷傳輸結束標志信號BLAST#,若BLAST#為高電平,則發出有效的READY#信號,數據持續傳輸,否則,在發出最后一個READY#信號后結束數據傳輸。狀態機轉換的具體過程如表1。

?


??? 本設計采用的是ALTERA公司的FPGA器件EP1C6,在Quartus Ⅱ軟件下編寫了整個的程序,軟件仿真結果如圖6。

?


3 驅動程序設計
??? 在Windows操作系統中,為了保證系統的安全性和可移植性,限制了應用程序對硬件的操作,尤其Windows 2000和Windows XP均不支持直接對系統的硬件資源的操作。因而在設計開發PCI設備時,需要開發相應的驅動程序來實現對PCI設備的操作,用戶應用程序通過驅動程序來訪問PCI設備。
??? 開發WDM驅動程序的主要工具是微軟為各操作系統提供的開發軟件包DDK(Device Driver Kits) ,該軟件包為驅動程序開發者提供了用于驅動程序開發的資源文件、編譯連接程序、開發技術文檔等。還有第三方提供的開發工具:NuMega公司的DriverStudio和Jungo公司的WinDriver,這些工具是在DDK的基礎上為方便開發用戶而開發的工具[4]。在使用中,雖然利用DDK開發驅動程序難度較大,但是代碼非常簡潔,結構清晰,效率也高。利用第三方開發工具使用簡單,開發速度較快,但對于驅動程序的理解和深入開發不如DDK。因此選擇DDK開發PCI設備驅動程序" title="設備驅動程序">設備驅動程序,雖然開始會覺得非常復雜,但從執行效率和功能上會更有利。
??? 在WDM中,采用了分層的驅動程序體系結構,總線驅動程序或類驅動程序在最底層直接與設備打交道,設備功能驅動程序在上層通過與低層驅動程序打交道,實現設備的功能,中間還可以有類過濾驅動程序或設備過濾驅動程序用于數據的過濾或轉換。在PCI總線的驅動程序層中,其層次圖如圖7。

?


??? 在實際開發中,一般無需分很多層次,只需要開發一個設備驅動程序即可。設備驅動程序直接與PCI總線驅動程序打交道,進行硬件操作,以實現PCI設備的功能。
4 PCB設計要點和硬件測試結果
??? 為了提高設備工作穩定性和抗干擾性,在布局布線時采取了如下措施:采用四層板,模擬地與數字地用磁珠隔離;為了避免信號線間串擾,兩條信號線應采取垂直交叉方式,要拉開兩線的距離,并在兩條平行的信號線之間增設一條線;采用鐵氧體磁心加電容濾波的方法對每組電源分別去耦,以取得最好的濾波效果。
??? 最后對設計出來的板卡進行了硬件測試,在應用程序中編寫如下簡單程序:
??? void CPDC4000DemoDlg::OnBlockDmaPciToLocalDemo() //DMA模式輸出數據
??? {
???????? unsigned char pData[0x100];//待輸出的數組
 ?????? for (int i = 0; i < 0x100; i ++)
 ?????? {
 ???????????????????? pData[i] = i + 0x0;
  ???? }
  ???? m_iStatus = STATUS_BLOCK_WRITE;
  ???? BlockDmaPciToLocal(pData, 0x100);
??? }
??? 通過邏輯分析儀測量板卡的輸出波形,得到輸出低8位結果,見圖8。波形符合寫入的數據,數據輸出的速率為16MHz。

?


??? 本模塊已達到預定的設計指標,運行穩定可靠。該模塊的優點是設計簡單,開發周期短,開發成本低。缺點是功能比較單一。如有需要,可以將該模塊擴展為功能更為復雜的應用單元。隨著PXI總線的不斷發展,基于PXI總線的產品設計具有十分廣闊的前景。
參考文獻
[1]? National Instrumen.The PXI System Architecture[S],1997.
[2]? 尹勇,李寧.PCI總線設備開發寶典.北京:北京航空航天大學出版社, 2005.
[3]? Plx Technology. PCI9054 Data Book, Version 2.1. Plx Technology, 2000.
[4]? CANT C.Windows WDM設備驅動程序開發指南.孫義,譯. 北京:機械工業出版社,2000.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 天天干天天操天天玩| 欧美国产成人精品一区二区三区| 国产精品99无码一区二区| 一本丁香综合久久久久不卡网站| 最近免费最新高清中文字幕韩国| 伊甸园在线观看国产| 荡女淫春护土bd在线观看| 国产精品狼人久久久久影院| 一级毛片免费在线播放| 日韩人妻精品一区二区三区视频 | 国产一级一级一级国产片| 1000部拍拍拍18勿入免费视频软件| 小屁孩cao大人免费网站| 久久精品中文字幕| 欧美日韩国产成人高清视频| 八戒八戒神马影院在线观看4| 高h辣肉嗨文公交车| 国产精品无码久久综合网| 免费人成在线观看视频播放| 黄色链接在线观看| 国产麻豆精品免费密入口| 中文国产成人精品久久一区| 最新亚洲人成网站在线观看| 亚洲精品一卡2卡3卡四卡乱码| 精品成人一区二区三区免费视频| 国产大秀视频一区二区三区| 777奇米视频| 女人18**毛片一级毛片| 中文字幕综合网| 日韩欧美卡一卡二卡新区| 亚洲国产日韩在线| 特级欧美视频aaaaaa| 午夜精品久久久久久毛片| 韩国成人在线视频| 手机福利视频一区二区| 亚洲av最新在线观看网址| 波多野结衣中文一区| 十六以下岁女子毛片免费| 韩国公和熄三级在线观看| 国产精品乱码一区二区三区| BT天堂新版中文在线|