基于USB總線的虛擬儀器技術
出處:yuzq2001 發(fā)布于:2007-04-29 11:52:26
關鍵詞:虛擬儀器;USB; Labview;測試系統(tǒng);DLL
序言
在水下航行器的動力測試系統(tǒng)中,測試參數(shù)種類繁多,測試環(huán)境復雜,存在強的噪聲干擾,并且,由于測試的目的不同,要出現(xiàn)不同的組合測試,所以要求測試系統(tǒng)具有較好的組態(tài)性能和易維護性。然而,傳統(tǒng)的測試系統(tǒng)設備復雜、功能單一、靈活性差。如果將虛擬儀器技術引入到水下航行器的動力測試系統(tǒng)中,特別是引入基于USB總線的虛擬儀器技術, 不但可以滿足動力測試系統(tǒng)的要求,而且可以實現(xiàn)所建立的測控系統(tǒng)具有開放式工業(yè)標準性、互換性和互操作性以及現(xiàn)場設備的智能化等優(yōu)勢。另外,還具有節(jié)省硬件數(shù)量及成本、節(jié)省維護開銷與提高可靠性等特點。
硬件設計
系統(tǒng)總體結構
水下航行器動力裝置研究中要進行很多參數(shù)的測試,其中包括電壓、電流、有功功率、無功功率、扭矩等,未來的研究還會涉及到噪聲、振動等參數(shù)的測試。不同的參數(shù)其測量方法不盡相同,本文所詳述的測試系統(tǒng)總體框圖如圖1所示。下面將重點介紹基于USB總線的數(shù)據(jù)采集卡的硬件和軟件設計。
USB數(shù)據(jù)采集卡硬件設計
鑒于USB協(xié)議的復雜性(需要編寫大量的固件代碼),基于USB總線的數(shù)據(jù)采集卡的控制芯片采用AT89C55WD(自帶20K的程序存儲器,足以滿足需要)。采集卡的ADC采用8位的ADC08909。USB接口芯片采用Philips公司的PDIUSBD12,該芯片采用GoodLink技術的連接指示器,在通訊時使LED閃爍,這種技術對于USB接口調(diào)試十分有用。PDIUSBD12與AT89C55WD、ADC0809的接口電路如圖2所示。PDIUSBD12和AT89C55WD采用總線方式連接,通過中斷方式進行數(shù)據(jù)交換。
軟件設計
這里只介紹與USB數(shù)據(jù)采集卡相關的軟件設計,包括單片機固件程序、采集卡驅動程序、動態(tài)鏈接庫(DLL)、用戶應用程序。
單片機固件程序設計
固件程序主要完成兩個方面的工作:ADC采樣服務和PDIUSBD12同主機的通訊。程序采用積木式結構,各模塊程序分工如下:
*硬件提取層:對單片機的I/O口、數(shù)據(jù)總線等硬件接口進行操作;
* PDIUSBD12命令接口:指對PDIUSBD12器件進行操作的模塊子程序集;
*中斷服務程序:當PDIUSBD12向AT89C55WD發(fā)出中斷請求時,讀取PDIUSBD12的中斷傳輸來的數(shù)據(jù),設定事件標志位和Setup包數(shù)據(jù)緩存區(qū)并傳輸給主程序;
*標準請求處理程序:對USB的標準請求進行處理;
* 廠商請求處理程序:對USB的廠商請求進行處理;
*主循環(huán)程序:發(fā)送USB請求、處理USB總線事件和對用戶功能進行處理。
固件程序的主循環(huán)框圖如圖3所示。
數(shù)據(jù)采集卡驅動程序設計
數(shù)據(jù)采集卡驅動程序的設計目標是編寫在Windows2000下使用的驅動程序。USB設備驅動程序的設計是基于WDM的,傳統(tǒng)開發(fā)工具是Microsoft公司的Windows 2000DDK,這種方法的優(yōu)點是能使開發(fā)者對整個驅動模型有較為深入的理解,使得開發(fā)過程更為靈活。但是對于初學者來說工作量、難度都較大,因此一些公司紛紛推出了諸如DriverWorks、Driver Winzard等驅動開發(fā)工具,這些工具的特點是只需添入少量的代碼,就可自動生成相對完善的驅動程序,但是缺乏靈活性。本設計中開發(fā)驅動程序采用的是前一種傳統(tǒng)方法,在Visual C++工程環(huán)境下編寫源代碼,然后在Windows 2000DDK環(huán)境下編譯成sys驅動文件,編寫安裝信息文件,具體過程較為復雜,在此不再詳述。
DLL程序設計
所謂DLL就是一個包含了若干函數(shù)的可執(zhí)行模塊。其作用是通過DMA的方式讀取存儲在PDIUSBD12 FIFO中的采樣數(shù)據(jù),并把它們存儲在開辟的數(shù)據(jù)緩存區(qū)中,以供用戶應用程序調(diào)用。使用這種方法的優(yōu)點是允許若干個應用程序共享某個函數(shù)的單個副本,實現(xiàn)了代碼數(shù)據(jù)、硬件資源等的共享。
由于在Win32系統(tǒng)中,每個設備都抽象成文件,DLL只需通過幾條簡單的文件操作API(應用程序接口)函數(shù)就可實現(xiàn)與驅動程序中某個設備通訊,因此編寫DLL時應充分應用API函數(shù)。本設計中用到的API函數(shù)主要有:open_file( )、open_dev( )、DeviceIoControl ( )和ReadFile( )。DLL在Visual C++中的Win32 Dynamic-Link Library開發(fā)模板下編寫,由于用戶應用程序采用Labview編寫,因此還需將Labview.lib庫文件添加到開發(fā)模板中,這樣才能編譯生成正確的DLL文件。
用戶應用程序設計
用戶應用程序將采用NI公司的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技術,通過簡單的編程,用戶應用程序就可以實現(xiàn)在局域網(wǎng)或廣域網(wǎng)內(nèi)向多個遠程終端同時廣播現(xiàn)場測量數(shù)據(jù)。同樣,使用WebPublish技術通過簡單的編程,用戶可以在本地或遠程計算機上瀏覽和控制用戶應用程序的控制面板。這樣網(wǎng)絡化虛擬測控平臺的雛形就基本建立起來了,這也是本設計在編制用戶應用程序時,為何選用Labview7.0的重要原因。
結語
通過本設計,可以看出USB總線同Labview開發(fā)軟件平臺的結合具有廣闊的發(fā)展前景,但是這次設計由于所選擇USB接口芯片的限制,傳輸速度難以提高(通過測試,速度從未大于1M/s),使得它在高頻、實時性要求較高的場合難有用武之地。通過選用支持USB2.0協(xié)議的接口芯片(速度可達480M/s)來提高速度,是本設計值得改進的一個方面?!?/P>
參考文獻
[1]. PDIUSBD12 datasheet http://www.hbjingang.com/datasheet/PDIUSBD12_544412.html.
[2]. AT89C55WD datasheet http://www.hbjingang.com/datasheet/AT89C55WD_911177.html.
[3]. ADC0809 datasheet http://www.hbjingang.com/datasheet/ADC0809_123186.html.
[4] Intel, Microsoft, IBM, etc. USB Specification 1.1. 2002
[5]Chris Cant Windows WDM 設備驅動程序開發(fā)指南. 北京: 機械工業(yè)出版社,2000.10
[6] 楊樂平,李海濤,勇楊等. labview程序設計. 北京:清華大學出版社,2002.10
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- ARM技術架構與應用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術選型與抗干擾設計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎知識2025/7/14 16:59:04









