新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 一種新型高速數據采集系統的設計與實現

        一種新型高速數據采集系統的設計與實現

        作者:張延波 張興敢 南京大學 電子科學與工程系(南京210093) 時間:2008-06-17 來源:電子產品世界 收藏
          USB 固件程序

          固件程序即為寫入USB單片機中的程序,它是設備運行的控制中樞.Cypress公司提供了固件架構,用戶可以利用這一架構簡化固件開發。固件設計架構是由Keil C51編譯器與其整合開發工具編寫和構建的.在程序開始時,固件架構會執行下列步驟:

          1) 設置所有內部狀態變量的初始值。

          2) 調用用戶的初始設置函數TD_Init( ),待返回后,固件架構就會將USB接口設置為未配置的狀態。

          3) 在1s的時間間隔內,開始重新進行設備列舉,直到設置封包收到端點0為止。

          4) 當SETUP封包被檢測到后,固件架構就會啟動工作分配器,而這個工作分配器就會按順序重復地執行下面的工作:
          
          A: 調用用戶函數TD_Poll( )。
          B: 是否決定標準設備請求是未定(或等待決定)的。如果已決定,它將會分析所收到的命令請求,并且加以響應。
          C: 是否決定USB核心已經報告了USB中止(Suspend)事件。如果已決定,它會調用用戶函數TD_Suspend()。
        若取得成功的返回,則測試回復(Resume)事件。反之,如果未檢測到,將會把微處理器放人中止模式中。當回復事件被檢測到時,將調用用戶函數TD_Resume( ),并且連續地跳回至步驟C。
          D: 若從TD_Suspend()函數中未收到成功的返回,再連續地跳至步驟C。
        實際上Cypress公司提供的這個固件框架已經能夠使USB芯片正常的工作,但是,它并不能滿足本系統的需要。需要添加自己的控制代碼來控制USB芯片,使之能夠完成需要的工作。

          框架程序中為提供了兩個函數TD_Init( ),TD_Poll( ),根據上面的分析發現,這兩個函數分別完成了系統的初始化工作和系統的用戶期望工作。在此采集系統中,只需要修改這兩個函數,添加自己的功能函數,即可完成系統需要的功能。

          在TD_Init( )中,需要添加自己的代碼來完成系統的初始化,因為系統采用了2端點和6端點的批量讀寫功能,所以,將2端點配置單緩沖區512字節,兩倍緩沖區,作為In端點,將6端點配置為單緩沖區512字節,兩倍緩沖區,作為Out端點,配置系統為異步Slave FIFO 模式。

          在TD_Poll( )中,通過檢測2端點和6端點緩沖區數據的狀態,來及時的讀取這兩個緩沖區中的數據,然后調用自己定義的函數DecodeInst( ), ImplementInst( )來完成對于控制指令的譯碼和執行工作。
          
          驅動程序

          基于EZ-USB FX2的二次枚舉的特性,需要編制兩個驅動程序:一個驅動程序loader.sys,它將在主機上編寫好的固件程序在主機系統啟動時下載至FX2的RAM中;另一個驅動程序USBBULK.sys為實際安裝的驅動程序。另外,為實現在系統啟動時,自動安裝兩次驅動程序,還需編寫自己的ezloader.inf文件實現。loader.sys需要自己編寫生成,USBBULK.sys可使用CYPRESS公司的通用驅動程序。

          用戶程序

          用戶程序是系統與用戶的接口,它通過通用驅動程序完成對外設的控制和通信。在編寫用戶程序時,首先要建立與外設的連接,然后才能實施數據的傳輸。啟動采樣后,為了保證不丟失數據,用戶程序應建立一個新的工作線程專門獲取外設傳來的數據。程序中主要用到兩個API函數:CreateFile()和DeviceIoControl()。CreateFile()取得設備句后,DeviceIoControl()根據該句柄完成數據傳輸。

          系統通過DeviceIoControl()完成的工作如下:

          數據批量讀,數據批量寫。

        結語

          為了驗證本系統采集數據的準確性,利用信號源產生的正弦波信號對系統進行驗證。測試結果如圖3所示。

        本文引用地址:http://www.104case.com/article/84332.htm


        圖3  測試結果

          通過實際測量,該系統測量數據與實際情況完全符合,單通道采樣速率最高可達到10Mbps。

          整個采集系統由數據傳輸、、邏輯電路、和計算機等組成,通過對該系統的硬件電路設計和軟件編程分析,以及實際測量結果的比較,證明了該系統的可行性。由于采用高速接口,本系統具有即插即用、高速采集等特點,具有很好的擴展性。該采集系統已經在的測試系統中得到應用。
          
        參考文獻:

          1. 李玉國,李剛,林凌,基于ADuC841的USB接13數據采集系統設計,電子產品世界,2006,11:100-104
          2. 王羽中,潘明海,基于USB2.0的多通道數據采集系統設計與實現,電子測量技術,2007,30(6):83-86
          3. 金達,闕沛文.當前計算機技術發展對基于PC機自動測試系統的影響,計算機自動測量與控制,1999,8(1):5—7.
          4. 朱正平,寧百齊,袁洪,肖山竹.基于USB2.0接口芯片FX2的高速效據采集的設計實現,微計算機應用,2006, (3):328— 331


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乌鲁木齐市| 竹溪县| 紫金县| 柘城县| 鄂尔多斯市| 娱乐| 定西市| 天峻县| 金阳县| 马鞍山市| 高碑店市| 当雄县| 宣城市| 综艺| 衡南县| 娱乐| 区。| 瑞金市| 古浪县| 治县。| 黎城县| 天柱县| 清水河县| 来宾市| 穆棱市| 麦盖提县| 黔西县| 固镇县| 抚州市| 永城市| 邵东县| 湘潭市| 张家界市| 宣汉县| 襄樊市| 漳平市| 万全县| 三穗县| 普陀区| 巧家县| 大余县|