新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > USB數據采集系統中DMA數據傳輸的實現

        USB數據采集系統中DMA數據傳輸的實現

        作者: 時間:2012-07-16 來源:網絡 收藏

        系統中利用GP控制器產生的半滿和全滿中斷信號協調兩個對同一個緩存空間的操作,實現了LPC2888對整個過程的協調控制。當通道3工作時,采樣數據從CPLD傳輸到buffer1,同時高速設備控制器對buffer2中的數據進行DMA操作;當DMA通道5工作時,采樣到buffer2,高速設備控制器對buffer1中的數據進行操作。如圖5中LPC2888程序流程所示。

        55.jpg

        圖5 LPC2888程序流程

        3、上位機軟件設計

        系統上位機軟件包括兩個部分:設備驅動程序和系統應用程序。開發設備的一個關鍵問題在于設備驅動程序的編寫。傳統的開發工具是微軟公司提供的設備驅動開發工具包:Windows DDK(Device Driver Kits),以及由第三方公司基于DDK開發的驅動程序開發工具包:WinDriver或DriverWorks。DDK基于匯編語言的編程方式和內核模式的調用,對于沒有深厚的操作系統原理和編程水平的人員來說,任務相當艱巨。本文使用美國國家儀器NI (National Instruments)公司開發的NI-VISA(Virtual Instrument Software Architecture)控制USB設備,直接配置VISA生成設備驅動程序,避開了以往開發USB設備驅動程序的復雜性,同時直接使用虛擬儀器軟件設計平臺LabWindows CVI開發系統應用程序,縮短了開發周期。

        3.1 使用NI-VISA開發USB設備驅動程序

        NI-VISA是NI公司開發的一種用來與各種儀器總線進行通信的高級應用編程接口。VISA總線I/O軟件是一個綜合軟件包,它不受平臺、總線和環境的限制,可用來對USB、GPIB、串口、PCI、VXI、PXI和以太網系統進行配置、編程和調試。使用VISA可以很容易地實現計算機應用程序和USB設備之間的連接,降低了設備驅動的開發難度。

        VISA提供了兩類函數供應用軟件調用,USB INSTR設備與USB RAW設備。USB INSTR設備是符合USBTMC(USB測試測量類)協議的USB設備,可以通過使用USB INSTR類函數控制,通信時無需配置NI-VISA;而USB RAW設備是指除了明確符合USBTMC規格的儀器之外的任何USB設備,通信時要配置NI-VISA。經過配置后,VISA自動創建好設備驅動文件:inf文件和PNF文件。當相應的USB設備連接到計算機時,操作系統將自動安裝該設備驅動并識別該設備。

        3.2 系統應用程序設計

        使用NI-VISA開發的USB設備可以在LabVIEW和LabWindows CVI中直接調用,其中有相應的VI子節點和庫函數對設備進行操作。本系統采用LabWindows CVI開發應用程序。對設備的操作遵循下面的原則:首先打開設備,然后可以對設備進行讀寫、設置設備屬性等操作,最后要關閉設備。目前應用程序設置有兩種工作模式:示波器模式和連續采集存儲模式。示波器模式每隔一定的時間間隔啟動一次采集,采用模擬電平觸發,采樣長度固定,采樣結果波形實時顯示。連續采集存儲模式啟動采集后,系統將采樣結果實時地存儲到數據文件中。停止采集后,應用程序打開數據文件對采樣結果進行波形顯示、數據處理等操作。系統應用程序界面如圖6所示。

        4、系統測試結果

        本文對該系統主要從以下四個方面進行了測試。

        1)將CPLD內部邏輯設定為傳輸固定數據,如0xAA55。系統在連續采集存儲模式下工作,獲得數據文件。采用二進制文件編輯軟件UltraEdit查看數據文件,其中所有采樣點結果均為0xAA55。驗證了過程的正確性。

        2)將CPLD內部邏輯設定為傳輸每次增1的數據,獲得采樣數據文件進行查看。得到采樣點結果為遞增的數據,每次增量為1。驗證了數據傳輸過程沒有丟失采樣點,保證了數據傳輸過程的可靠性。

        3)將CPLD內部邏輯設定為傳輸AD采樣結果。系統工作在示波器模式下,實時查看采樣結果波形。調整輸入模擬信號幅值、頻率和波形,分別得到相應的采樣結果波形。驗證了AD轉換環節的正確性。圖6所顯示被采樣信號為250Hz正弦信號,峰峰值5V,采樣速率1MS/s。

        66.jpg

        圖6 系統應用程序界面

        4)USB接口數據傳輸速度測試。這里采用總線分析測試軟件Bus Hound測試系統的數據傳輸速度。該軟件可以觀察USB設備的工作情況,讀取當前USB設備輸入輸出數據量的大小、數據傳輸速度和設備屬性等信息,并且在運行過程中不會對設備的工作產生影響。測試時首先運行Bus Hound軟件,啟動系統工作在連續采集存儲模式,然后可以在Bus Hound中得到系統的數據傳輸速度。經測試,系統最高數據傳輸速度為16MB/s(128Mb/s)。圖7所示為Bus Hound軟件界面和數據傳輸速度測試結果。

        77.jpg

        圖7 軟件Bus Hound的界面與速度測試結果

        5、結論

        本文使用嵌入式微控制器LPC2888和CPLD成功地完成了基于USB高速傳輸的。系統利用CPLD配合GPDMA控制器實現了從數據采集模塊到LPC2888內部緩存的DMA數據傳輸,利用USB設備控制器DMA引擎配合端點批量傳輸實現了從緩存到計算機的DMA傳輸,并通過中斷對兩個環節進行協調實現了整個數據傳輸過程的DMA傳輸。經測試,系統有效數據傳輸速度達128Mb/s。

        在USB設備驅動應用程序的開發上,本文嘗試了一種新方法。配置NI-VISA生成驅動程序,在LabWindows CVI中進行應用程序設計,通過VISA控制USB設備。實踐證明:使用該方法開發的系統穩定可靠,不需要開發者了解驅動程序內核,開發難度低,是一種簡單、快速開發USB接口應用系統的好方法。

        參考文獻

        [1] 李華.USB儀器將成測量儀器主流.國外電子測量技術,2005,10:1~5.

        [2] 郭云鵬,吳衛華,張B捷.虛擬儀器技術與發展展望.中國科技信息,2005,18:92~101.

        [3] NXP Semiconductors. LPC2880/LPC2888 data sheet. Version 02,2006,9.



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新巴尔虎右旗| 连平县| 崇文区| 天祝| 随州市| 峨眉山市| 广宗县| 三河市| 花莲县| 府谷县| 江孜县| 巴东县| 长岭县| 清水县| 黑水县| 罗源县| 阿尔山市| 旅游| 伊川县| 谢通门县| 行唐县| 宿州市| 鄢陵县| 霍城县| 阳曲县| 松原市| 天台县| 隆安县| 陆川县| 平江县| 马尔康县| 江安县| 忻城县| 金门县| 文安县| 仁布县| 东莞市| 石狮市| 绥中县| 滦南县| 辰溪县|