《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于NI PCI Express數字I/O卡的高速數據傳輸實現
基于NI PCI Express數字I/O卡的高速數據傳輸實現
來源:微型機與應用2013年第3期
王 婧,王 榮,周 雪,易 鳴
(中國人民解放軍信息工程大學,河南 鄭州 450001)
摘要: 針對軟件無線電系統中數據實時處理和高速傳輸的要求,設計了一種基于NI PCI Express接口的高速數據傳輸方案。利用NI公司的數字I/O卡以及配套驅動開發軟件搭建開發平臺。信號調理設備和微機間的數據通過PCI Express接口以DMA方式進行傳輸。數字I/O卡的32通道雙向并行數據傳輸速率高達50 Mb/s。該方案實現了靈活的數據傳輸控制、精確的時鐘同步以及可靠的數據容錯功能。工程實踐驗證了該方案的有效性和可靠性。
Abstract:
Key words :

摘  要: 針對軟件無線電系統中數據實時處理和高速傳輸的要求,設計了一種基于NI PCI Express接口的高速數據傳輸方案。利用NI公司的數字I/O卡以及配套驅動開發軟件搭建開發平臺。信號調理設備和微機間的數據通過PCI Express接口以DMA方式進行傳輸。數字I/O卡的32通道雙向并行數據傳輸速率高達50 Mb/s。該方案實現了靈活的數據傳輸控制、精確的時鐘同步以及可靠的數據容錯功能。工程實踐驗證了該方案的有效性和可靠性。
關鍵詞: 數據采集;NI PCI Express;高速數據傳輸;DMA;實時處理

 軟件無線電系統只在天線到A/D轉換和D/A轉換環節的射頻段存在模擬信號,其中頻和基帶的處理全部采用數字邏輯運算實現,數據處理量大,實時性要求較高。某些情況下高速傳輸又是實時處理的前提,因此,軟件無線電實現的關鍵是需要有高速的數據處理與傳輸設備。為了將數據處理結果通過數據采集設備實時傳送給微機,信號調理設備和微機之間必須具有高速的互聯總線。作為第三代高性能I/O總線,PCI Express接口具有雙通道、高帶寬、傳輸快、低功耗以及傳輸可靠等優點,正逐漸取代原有PCI接口。PCI Express2.0標準實現了x1的單向速率5 Gb/s,因此PCI Express總線接口特別適合于高速的數據傳送。同時,現在絕大多數電腦可以使用直接內存訪問DMA(Direct Memory Access)傳送方式,它使用專門的硬件把數據直接傳送到計算機內存,從而提高了系統的數據吞吐量。采用這種方式后,處理器不需要控制數據的傳送,因此它就可以用來處理更復雜的工作。因此,基于PCI Express總線并采用DMA方式進行數據傳輸可以充分發揮PCI Express總線高速的優勢[1-2]。
 美國國家儀器NI(National Instruments)公司在信號調理和數據采集領域有著豐富的產品生產和設計經驗,已經成功為各行業的用戶提供了優秀的解決方案。其中基于PCI Express接口系列的數字I/O卡可以滿足高速數據傳輸的要求。作為某軟件無線電系統的子課題,本文基于該系列硬件和配套的軟件進行開發,實現了信號調理設備和微機之間進行實時高速數據傳輸的功能。實踐表明,該方案無論在數據傳輸還是實時控制方面都有較好的性能,對于搭建應用越來越廣泛的高速數據傳輸平臺具有一定的借鑒意義[3]。
1 NI PCIe-6537數字I/O卡簡介
 NI PCIe-6537是NI公司生產的一款高速數字I/O系列數據采集卡[4],具有32個可進行雙向并行數據傳輸的通道(Port0~Port3,每個Port由8個通道組成)和6個可編程函數接口PFI(Programmable Function Interface),即PFI0~PFI6,并行速率可達50 MHz;支持同步輸出,時鐘各項指標精度高,可以接受外部時鐘作為工作時鐘源;所有通道和接口具有獨立的ADC,保證了良好的動態性能;支持多種同步、異步握手模式,其中包含豐富的定時和事件觸發功能;板載2 048個32 bit基于FIFO的內存單元,可以作為信號調理設備和計算機之間進行DMA傳輸的高速緩存,并且具有錯誤檢測及自我恢復機制。該數字I/O卡可以實現高速的雙向數據傳輸,具有靈活的控制功能,并可以通過控制可編程函數接口保證數據傳輸的可靠性。板卡結構如圖1所示。

 隨著數據采集硬件、計算機和軟件復雜程度的增加,好的驅動軟件就顯得尤為重要。合適的驅動軟件可以最佳地結合靈活性和高性能,同時還能極大地降低開發數據采集程序所需的時間。NI公司為其數據采集卡開發了豐富的應用軟件和驅動。本方案采用NI專有的Measurement Studio開發軟件和DAQ驅動。為了讓用戶能開發出完整的數據采集和控制程序,NI提供了可以支持C、Visual C++、Visual Basic和C#調用驅動函數的應用軟件Measurement Studio。結合工程項目需要,本方案采用C#作為調用驅動函數的語言,同時使用HP DL180機架式服務器,以保證穩定、高效的數據傳輸和存取性能。
2 基于NI PCIe-6537數字I/O卡高速數據傳輸設計
 NI PCIe-6537數字I/O卡具有高速的數據傳輸能力,Measurement Studio和Visual Studio安裝融合之后的開發環境中包含了豐富的驅動函數,可以滿足實際工程各種應用需求。但是由于其內部封裝不可見,用戶必須使用專門的驅動函數進行設計。本方案分為數據采集部分和控制信號輸出部分的設計,功能實現程序以C#動態鏈接庫(DLL)的形式提供給項目主程序使用。圖2給出了數據采集和控制信號輸出流程圖,下面以此為基礎介紹本方案各部分功能的設計。

2.1 數據采集的主要功能及其設計方案
 本方案使用25 Mb/s的傳輸速率同時進行雙向數據傳輸,使用Port0、Port1和Port2 3個端口共計24條數據通道用來進行連續數據采集。為保證數據傳輸過程中的時鐘和數據精確同步,采用可編程函數接口PFI5接收外部時鐘作為板卡工作時鐘。下面首先對定時設置進行簡要說明。定時設置參數與工作模式和采樣長度有關,在初始化設備資源之前就要設置完畢。對于連續工作模式,采樣長度一般為計算機內存中緩沖區的大小,實際中取較大的值即可;對于有限采樣工作模式,采樣長度與當前傳輸數據長度有關,若下一次的采樣長度與當前采樣長度不同,就要重新設置定時參數。根據項目要求,設定調理設備每20 ms發一包數據,數據采集部分的定時參數相應設置為連續工作模式。每包數據到達的同時還有一個和包長度相同的握手信號(Pause Trigger)到達板卡,即以握手信號的有無和長短決定是否接收數據和接收數據的長度,這里用PFI1接收觸發信號。由于設置為連續工作模式,因此所有的參數只需設置一次,服務器程序即可對相應設備資源進行初始化,之后通過C#事件觸發的方式自動進入循環接收數據包的狀態,同時可以通過委托把數據包實時傳遞給主調函數。
 在對數據進行高速采集的同時,應考慮實際工作中不可預知的軟硬件錯誤。錯誤一般有兩種類型:一種是由微機未能及時從板卡FIFO中讀取數據造成FIFO溢出,從而造成數據包傳輸出錯;另一種情況是由于信號調理設備由眾多設備組成,如果其中某個環節發生傳輸延誤,導致某一包數據未能連續傳輸,進而造成FIFO采集不到完整的數據包。實際中經過反復測試發現,雖然錯誤的種類可能會比較多,但是對于服務器來說,錯誤檢測只能依賴于包頭數據檢測。因此,針對可能出現的軟硬件錯誤,制定解決方案如下:在數據包的固定位置插入一個標志數據,每一包數據接收完畢之后對標志數據進行檢測,如果標志數據正確,則可以認為當前數據包已正確接收;如果標志數據出錯,則立即清空FIFO,直到檢測結果正確為止。另外,由于數據傳輸速率較高,有效數據只占20 ms中的小部分時間,從而保證板卡FIFO有充足的時間自我清空。
2.2 發送控制信號方案設計
 為了控制信號調理設備,服務器還需要通過PCI Express卡發送控制信號給信號調理設備,本方案使用Port3的8條數據通道輸出控制信號,時鐘通過PFI4接口輸出給信號調理設備。由于控制信號只在必要的情況下發出,因此相應的定時參數設置為有限工作模式。設定控制信號精度為16 bit,并且不同控制信號有著不同功能。本方案使用Port3的高4位標識不同功能的控制信號,低4位傳輸控制信號,每個控制信號在4個時鐘周期內輸出給信號調理設備。與數據采集部分類似,板卡輸出控制信號時需要一個握手信號(Date Active Event),外部信號調理設備根據該握手信號決定是否接收控制信號以及信號長度。但與數據采集部分不同的是,由于控制部分為有限工作模式,每次發送控制信號均需要重新初始化設備資源,因此會造成一定的時延。實際測試發現,如果某段時間內發送控制信號過多或者過于頻繁,這種時延就會造成控制信號發送錯誤。經過反復試驗證明,每次控制信號發送完畢之后暫不釋放硬件資源,重新初始化時只需用一條語句重新設置定時參數,大大降低了時延并保證了控制信號輸出的可靠性。
3 高速數據傳輸方案實現和測試
 本文設計的高速數據傳輸方案為某軟件無線電系統的重要組成部分。因此,本文以該系統在實際當中的運行結果對設計方案進行測試,下面分別介紹測試平臺并說明測試結果。
3.1 高速數據傳輸方案測試平臺
 硬件平臺為HP DL180 機架式服務器、NI PCIe-6537數字I/O卡以及信號調理設備;操作系統為Windows Server 2003 R2(32 bit);軟件平臺為Visual Studio 2005.NET、Measurement Studio 2009和DAQ 9.1.7。
其中,Visual Studio和Measurement Studio版本必須一致,操作系統和DAQ驅動軟件的版本需要一致。并且由于驅動軟件的限制,Windows Server 2003操作系統下可用內存資源受到限制[5]。
3.2 高速數據傳輸方案實現結果

 


 系統數據采集和控制信號的傳輸速率均為25 Mb/s,數據循環采集的收包間隔時間為20 ms、包長為10 016、數據為32 bit整形數。圖3為軟件界面顯示的某時刻數據采集結果。其中,包循環號表示信號調理設備發送數據包的編號,收包計數表示數字I/O卡成功接收并驗證正確的數據包,計數差值正常情況下為上述兩個指標的差值,丟包計數為發生錯誤的數據包。數據接收結果顯示,該時刻已接收2 610包數據并且所有數據包均正確無誤。控制信號定為如下十六進制數:0x400D和0x400F,每個十六進制數在4個時鐘周期內發送完畢。在FPGA中,用SignalTap II觀察信號調理設備發送的數據,如圖4所示。其中,pc_clk、pc_control和pc_data分別為PCIe-6537輸出給FPGA的時鐘、握手信號和輸出信號。設備長期運行結果表明,本設計可以通過PCIe-6537實現FPGA與服務器之間穩定的高速數據傳輸。

 數據采集接口是計算機系統與外部數據聯系的一個橋梁,設計的關鍵是提高數據采集系統的速度和可靠性。本文以某軟件無線電系統的實際需求出發,充分利用PCI Express接口通過DMA傳輸方式實現了信號調理設備與服務器之間進行高速數據傳輸的功能。方案通過對NI PCIe-6537數字I/O卡性能的了解和挖掘,以及對驅動函數的合理調用,保證了數據傳輸的高效率和可靠性。實際應用中還可以根據工程需要實現更多的功能。同時,NI公司基于PCI Express接口的高速數據I/O卡在高速數據通信以及實時信號處理領域有著良好的應用前景,而本方案作為一個典型案例,對工程實踐人員有較好的參考價值。
參考文獻
[1] BUDRUK R, ANDERSON D, SHANLEY T. PCI Express系統體系結構標準教材[M].田玉敏,王崧,張波,等,譯.北京:電子工業出版社,2005.
[2] 許軍,李玉山.PCI Express總線技術研究[J].計算機工程與科學,2006,28(5):20~40.
[3] NI.數據采集技術文摘[EB/OL].http://sine.ni.com,2010-09-01.
[4] NI.PCI Express接口的50M數字I/O[EB/OL].http://sine.ni.com,2010-09-01.
[5] NI.NI-DAQmx Specifications[EB/OL].http://sine.ni.com,2010-09-01.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲免费国产 | 日本久久香蕉一本一道 | 日韩精品福利 | 日韩在线第一区 | 大学生美女穿黑色丝袜网站 | 操野逼 | 国产黄大片在线观看 | 国产偷倩视频 | 午夜激情网站 | 一个人看的视频免费www | 欧美系列第一页 | 成年人黄色在线观看 | 亚洲日本天堂在线 | 国产91成人| 免费在线观看黄色网址 | 精品午夜寂寞黄网站在线 | 国产免费看网站v片不遮挡 国产免费黄视频 | 亚州视频一区二区 | 三级黄色片在线观看 | 亚洲午夜视频 | 成人免费观看在线网址 | 免费可以看黄的视频 s色 | 2020年精品国产午夜福利在线 | 国产精品久久久亚洲 | 精品国产成人a在线观看 | 日韩操比| 一本大道香蕉中文在线高清 | 日韩精品一区二区三区中文在线 | 窝窝免费午夜视频一区二区 | 中国黄色一级片 | 成人看的羞羞视频免费观看 | 91精品在线视频观看 | 国产欧美一区二区三区久久 | 日韩午夜精品 | 黄色的视频免费观看 | 无限看免费视频大全在线播放 | 亚洲a视频| 日日草草| 亚洲自拍图片区 | 极品美女丝袜被的网站 | 国产22页 |