色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于USB總線的虛擬儀器技術(shù)

          基于USB總線的虛擬儀器技術(shù)

          作者:■ 西北工業(yè)大學(xué)航海工程學(xué)院 蔡鍔 錢志博 時間:2005-03-04 來源:電子設(shè)計應(yīng)用2004年第12期 收藏

          摘 要:本文介紹了基于總線的技術(shù)在水下航行器動力裝置測試中的應(yīng)用情況。以PC機為主控單元、總線為接口、為軟件開發(fā)平臺的充分利用了的新特性,提高了的整體性能。
          關(guān)鍵詞:;USB; ;;

          本文引用地址:http://cafeforensic.com/article/4536.htm

          序言
          在水下航行器的動力測試系統(tǒng)中,測試參數(shù)種類繁多,測試環(huán)境復(fù)雜,存在強的噪聲干擾,并且,由于測試的目的不同,要出現(xiàn)不同的組合測試,所以要求測試系統(tǒng)具有較好的組態(tài)性能和易維護性。然而,傳統(tǒng)的測試系統(tǒng)設(shè)備復(fù)雜、功能單一、靈活性差。如果將虛擬儀器技術(shù)引入到水下航行器的動力測試系統(tǒng)中,特別是引入基于USB總線的虛擬儀器技術(shù), 不但可以滿足動力測試系統(tǒng)的要求,而且可以實現(xiàn)所建立的測控系統(tǒng)具有開放式工業(yè)標準性、互換性和互操作性以及現(xiàn)場設(shè)備的智能化等優(yōu)勢。另外,還具有節(jié)省硬件數(shù)量及成本、節(jié)省維護開銷與提高可靠性等特點。

          硬件設(shè)計
          系統(tǒng)總體結(jié)構(gòu)
          水下航行器動力裝置研究中要進行很多參數(shù)的測試,其中包括電壓、電流、有功功率、無功功率、扭矩等,未來的研究還會涉及到噪聲、振動等參數(shù)的測試。不同的參數(shù)其測量方法不盡相同,本文所詳述的測試系統(tǒng)總體框圖如圖1所示。下面將重點介紹基于USB總線的數(shù)據(jù)采集卡的硬件和軟件設(shè)計。
          USB數(shù)據(jù)采集卡硬件設(shè)計
          鑒于USB協(xié)議的復(fù)雜性(需要編寫大量的固件代碼),基于USB總線的數(shù)據(jù)采集卡的控制芯片采用AT89C55WD(自帶20K的程序存儲器,足以滿足需要)。采集卡的ADC采用8位的ADC08909。USB接口芯片采用Philips公司的PDIUSBD12,該芯片采用GoodLink技術(shù)的連接指示器,在通訊時使LED閃爍,這種技術(shù)對于USB接口調(diào)試十分有用。PDIUSBD12與AT89C55WD、ADC0809的接口電路如圖2所示。PDIUSBD12和AT89C55WD采用總線方式連接,通過中斷方式進行數(shù)據(jù)交換。

          軟件設(shè)計
          這里只介紹與USB數(shù)據(jù)采集卡相關(guān)的軟件設(shè)計,包括單片機固件程序、采集卡驅(qū)動程序、動態(tài)鏈接庫()、用戶應(yīng)用程序。
          單片機固件程序設(shè)計
          固件程序主要完成兩個方面的工作:ADC采樣服務(wù)和PDIUSBD12同主機的通訊。程序采用積木式結(jié)構(gòu),各模塊程序分工如下:    
          *硬件提取層:對單片機的I/O口、數(shù)據(jù)總線等硬件接口進行操作;
          * PDIUSBD12命令接口:指對PDIUSBD12器件進行操作的模塊子程序集;
          *中斷服務(wù)程序:當PDIUSBD12向AT89C55WD發(fā)出中斷請求時,讀取PDIUSBD12的中斷傳輸來的數(shù)據(jù),設(shè)定事件標志位和Setup包數(shù)據(jù)緩存區(qū)并傳輸給主程序;
          *標準請求處理程序:對USB的標準請求進行處理;
          * 廠商請求處理程序:對USB的廠商請求進行處理;
          *主循環(huán)程序:發(fā)送USB請求、處理USB總線事件和對用戶功能進行處理。
          固件程序的主循環(huán)框圖如圖3所示。
          數(shù)據(jù)采集卡驅(qū)動程序設(shè)計
          數(shù)據(jù)采集卡驅(qū)動程序的設(shè)計目標是編寫在Windows2000下使用的驅(qū)動程序。USB設(shè)備驅(qū)動程序的設(shè)計是基于WDM的,傳統(tǒng)開發(fā)工具是Microsoft公司的Windows 2000DDK,這種方法的優(yōu)點是能使開發(fā)者對整個驅(qū)動模型有較為深入的理解,使得開發(fā)過程更為靈活。但是對于初學(xué)者來說工作量、難度都較大,因此一些公司紛紛推出了諸如DriverWorks、Driver Winzard等驅(qū)動開發(fā)工具,這些工具的特點是只需添入少量的代碼,就可自動生成相對完善的驅(qū)動程序,但是缺乏靈活性。本設(shè)計中開發(fā)驅(qū)動程序采用的是前一種傳統(tǒng)方法,在Visual C++工程環(huán)境下編寫源代碼,然后在Windows 2000DDK環(huán)境下編譯成sys驅(qū)動文件,最后編寫安裝信息文件,具體過程較為復(fù)雜,在此不再詳述。
          程序設(shè)計
          所謂DLL就是一個包含了若干函數(shù)的可執(zhí)行模塊。其作用是通過DMA的方式讀取存儲在PDIUSBD12 FIFO中的采樣數(shù)據(jù),并把它們存儲在開辟的數(shù)據(jù)緩存區(qū)中,以供用戶應(yīng)用程序調(diào)用。使用這種方法的優(yōu)點是允許若干個應(yīng)用程序共享某個函數(shù)的單個副本,實現(xiàn)了代碼數(shù)據(jù)、硬件資源等的共享。
          由于在Win32系統(tǒng)中,每個設(shè)備都抽象成文件,DLL只需通過幾條簡單的文件操作API(應(yīng)用程序接口)函數(shù)就可實現(xiàn)與驅(qū)動程序中某個設(shè)備通訊,因此編寫DLL時應(yīng)充分應(yīng)用API函數(shù)。本設(shè)計中用到的API函數(shù)主要有:open_file( )、open_dev( )、DeviceIoControl ( )和ReadFile( )。DLL在Visual C++中的Win32 Dynamic-Link Library開發(fā)模板下編寫,由于用戶應(yīng)用程序采用編寫,因此還需將Labview.lib庫文件添加到開發(fā)模板中,這樣才能編譯生成正確的DLL文件。
          用戶應(yīng)用程序設(shè)計
          用戶應(yīng)用程序?qū)⒉捎肗I公司的Labview7.0編寫。Labview中DLL的調(diào)用是通過CLF(Call Library Function)節(jié)點實現(xiàn)的,在使用之前需要對它進行配置,配置完成后,CLF節(jié)點的函數(shù)原型為:char UsbRead (char dbfsize, unsigned char *code, char *databuf),dbfsize為所讀取數(shù)據(jù)長度;*code為返回的錯誤代碼指針(為了調(diào)試方便);*databuf為所讀取的數(shù)據(jù)指針。需要注意的是在調(diào)用DLL之前,Labview程序中需要對*databuf賦初值,否則Labview程序運行會發(fā)生意想不到的錯誤。因為在Labview中是不會自動給*databuf開辟內(nèi)存的。
          使用NI公司的DataSocket技術(shù),通過簡單的編程,用戶應(yīng)用程序就可以實現(xiàn)在局域網(wǎng)或廣域網(wǎng)內(nèi)向多個遠程終端同時廣播現(xiàn)場測量數(shù)據(jù)。同樣,使用WebPublish技術(shù)通過簡單的編程,用戶可以在本地或遠程計算機上瀏覽和控制用戶應(yīng)用程序的控制面板。這樣網(wǎng)絡(luò)化虛擬測控平臺的雛形就基本建立起來了,這也是本設(shè)計在編制用戶應(yīng)用程序時,為何選用Labview7.0的重要原因。

          結(jié)語
          通過本設(shè)計,可以看出USB總線同Labview開發(fā)軟件平臺的結(jié)合具有廣闊的發(fā)展前景,但是這次設(shè)計由于所選擇USB接口芯片的限制,傳輸速度難以提高(通過測試,速度從未大于1M/s),使得它在高頻、實時性要求較高的場合難有用武之地。通過選用支持USB2.0協(xié)議的接口芯片(速度可達480M/s)來提高速度,是本設(shè)計值得改進的一個方面?!?/p>

          參考文獻
          1 Intel, Microsoft, IBM, etc. USB Specification 1.1. 2002
          2 Chris Cant Windows WDM 設(shè)備驅(qū)動程序開發(fā)指南. 北京: 機械工業(yè)出版社,2000.10
          3 楊樂平,李海濤,勇楊等. labview高級程序設(shè)計. 北京:清華大學(xué)出版社,2002.10



          評論


          相關(guān)推薦

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

          關(guān)閉