激光多普勒測量技術(LDT)具有精度高、動態響應快、測量范圍大,非接觸測量的特點,成為氣體、流體測量的強有力的工具。近年來,它在固體測量領域得到了長足的發展,被廣泛應用于固體表面的粗糙度、運動速度場、位移場、振動場等的精密測量。它的迅猛發展對信號的采集提出了越來越高的要求:高動態范圍、低功耗、便于攜帶、能與計算機進行實時高速數據傳輸。針對這種要求,提出了一種基于USB的LDT實時數據采集系統。
USB(Universal Serial Bus)總線是由Intel,Com-paq,Microsoft,IBM,DEC,Northern Telecom等7家公司共同研制的一種針對PC的串行接口標準。它的熱插拔、即插即用、連接簡單、高帶寬、可總線供電等優點幾乎使其成為目前計算機外設的首選通信接口。
該文依據的是USB1.1協議規范,總線一共4根:5V電源線、地線及兩根以差分形式驅動的數據線D+、D-。連接設備的電纜最長可達5 m,通過USB集線器以菊花鏈拓撲形式實現多達5級的拓撲連接,可外接127個USB設備。USB總線可以提供5V、500mA電流,并支持節約能源的掛機和喚醒模式。它規定的12Mbps傳輸速率,與一個標準的串行口相比,大約快出100倍,與一個標準并行口相比,大約快出10倍。
1、系統硬件設計
1.1硬件總體結構
USB實時數據采集系統硬件如圖1-1所示。DSP控制器TMS320F240內部的模數轉換模塊包括兩個獨立的采樣/保持電路和兩個10位雙積分型的轉換器,16路模擬輸入通道,可同時轉換2路信號。
16路模擬輸入信號由多路模擬開關選擇被檢測信號接入A/D轉換器,A/D轉換的結果經TMS320F240寫入FIFO存儲器。
TMS320F240通過信號線IS選通USBN9603,將其作為DSP的I/O口訪問。USBN9603的D+腳外接一個1.5K的上拉電阻,使其工作在全速方式下,USBN9603的MODE1、MODE2均接至地電位,設定USBN9603為非總線復用方式。操作時序是將地址線A0置高,將欲讀寫的地址從數據線D0~D7寫入,然后將A0置低,讀寫D0~D7中的數據。
由DSP對A/D轉換的結果進行FFT分析、小波分析等,并通過USBN9603與主機交換數據,接收控制命令。
1.2USBN9603控制器
目前市場上有兩類USB接口控制器:一類是帶USB接口的MCU,如Cypress的CY7C6xxxx第列、Intel的930xx系列等,嵌入了8051系列微控制器。其系統結構和指令集大家都比較熟悉,便于硬件開發和軟件編程,然而開發工具較昂貴。另一類是專用接口控制器,如朗訊公司的USS820、國家半導體公司的USBN960x、PHILIPS公司的PDIUSBD11等,都留有與MCU、DSP的接口,搭配靈活。
USBN9603是一個支持USB1.1協議的節點控制器。具有靜態模式和異步喚醒功能;5V/3.3V供電;具有一個雙向的控制節點Endpoint0、3個發送端點、3個接收端點;具有兩種模式的8位并行接口(復用模式和非復用模式);改進的DMA傳輸方式;串行接口引擎SIE,主要負責時鐘恢復、EOP檢測、位填充、位解填充、CRC編解碼、組幀、拆幀、包類型識別及節點狀態識別等。
2、系統軟件設計
USB系統軟件設計分為3個部分:USB外設端的固件、主機操作系統上的客戶驅動程序以及應用程序。應用程序通過客戶驅動程序與系統USBDI(USBDevice Interface)進行通信,由系統產生數據的傳送動作,固件則響應各種來自系統的標準要求,完成各種數據的交換工作和事件處理。
2.1固件(firmware)設計
固件是指被固化到TMS320F240中的程序。它完成兩個任務:控制A/D的采樣和通過USB控制器與主機通信。USB有控制、中斷、批量、等時等4種數據傳輸模式。其中控制傳輸用于傳送一些系統控制命令,每個USB設備都必須有控制傳輸的通道;中斷傳輸適用于鼠標等人工輸入的設備使用;等時傳輸適用于對數據實時性要求較高的場合,如視頻、音頻數據,但其設備和進程的同步設計有較大難度,且它不能提供錯誤檢查機制;批量傳輸能提供錯誤檢查機制,適用于打印機、調制解調器等不定期傳送大量數據的中速設備。
系統采用兩種傳輸方式:控制傳輸和批量傳輸。控制傳輸用來實現位于主機上的USB總線驅動程序(USBD模塊)以及編寫的功能驅動程序對設備的各種控制操作;批量傳輸用來完成將采集數據從設備傳送到主機。
2.2驅動程序設計
USB系統驅動程序采用分層驅動模型:USB設備驅動程序、USB函數層。其中函數層由通用串行總線驅動程序模塊(USBD)和主控制器驅動程序模塊(HCD)組成。它由Windows98提供,負責管理USB設備驅動程序和USB控制器之間的通信;加載及卸載USB驅動程序;與USB設備通用端點建立通信來執行設備配置、數據與USB協議框架和打包格式的雙向轉換任務。
USB設備驅動程序是開發USB外設的一個關鍵,它的設計是基于WDM(Win-dows Driver Model,Windows驅動程序模型)。目前,Win-dows98提供了多種USB設備驅動程序,但并不針對實時數據采集設備,需要Win-dows98/NT/2000 DDK開發包和SoftICE等調試工具。它可由4個模塊實現:初始化模塊、即插即用管理模塊、電源管理模塊以及I/O功能實現模塊。
初始化模塊提供一個Driver Entry入口函數,來對所有的I/O請求包IRP(I/ORequest Packet)處理例程作定義。電源管理模塊負責設備的掛起與喚醒。
當USB設備上電時,主機會向USB控制器發送獲得設備描述的命令,設備描述符是一個固定長度為18字節的數字序列,反映了該USB設備的基本屬性。當USB控制器從USB總線檢測到這一命令時,USB控制器以中斷方式將此請求通知到TMS320F240。TMS320F240通過訪問USB控制器的控制寄存器和數據寄存器,獲得各種參數,向主機返回配置所包含的所有接口和接口所包含的所有端點的描述符。主機獲得后,設備與主機的“握手”就初步完成了。
即插即用管理模塊實現USB設備的熱插拔及動態配置。當硬件檢測到USB設備接入時,Win-dows98查找相應的驅動程序,并調用它的Driver En-try例程,即插即用管理器調用驅動程序的Add De-vice例程,告訴它添加了一個設備;然后,驅動程序為USB設備建立一個FDO(功能設備對象),在此處理工程中,驅動程序收到一個IRP-MN-START-DE-VICE的IRP,包括設備分配的資源信息。至此,設備被正確設置,驅動程序開始與硬件對話。當然,設備運行過程中,如果設備的狀態發生變化(暫停、拔出等),即插即用管理器也同樣發出相應的IRP,由驅動程序進行相應的處理。
I/O功能實現模塊完成I/O請求的大部分工作。當應用程序提出I/O請求時,它調用Win32 API函數DeviceIoControl來向設備發出命令。然后,由I/O管理器構造一個IRP,并設置其MajorFunction域為IRP-MJ-DEVICE-CONTROL。USB設備驅動程序收到該IRP后,根據其中的控制碼,構造相應的USB請求塊,并把它放到一個新的IRP,此IRP被傳遞到USBD模塊。USBD模塊根據此IRP執行相應的操作,并把結果通過IRP返回給USB功能驅動程序。USB功能驅動程序接到此IRP后,將操作結果再通過IRP返回給I/O管理器。并由I/O管理器將結果最終返回給應用程序,至此,對USB設備的一次I/O操作完成。
2.3應用程序設計
PC主機是實時數據采集系統的中心,其基本功能有開啟或閉合USB設備、檢測USB設備、設置USB數據傳輸管道、設置A/D狀態和數據采集端口、實時從USB接口采集數據、顯示數據。
此外,具有數據分析功能包括數字濾波模塊、線性化處理模塊、解調模塊、PLL鎖相環倍頻模塊、標度變換模塊、與下位機的通信模塊、下位機的控制字生成模塊和數據庫的管理模塊等幾個部分。
3、結束語
為了提高設計質量,所設計的激光多普勒測量實時數據采集系統通過了測試USB外設功能的一系列軟件如Bwqlinst,USBComp等,完成了高精度數據采集和高速數據傳送。
責任編輯:gt
-
usb
+關注
關注
60文章
7773瀏覽量
262389 -
計算機
+關注
關注
19文章
7174瀏覽量
87157 -
數據采集
+關注
關注
38文章
5512瀏覽量
113113
發布評論請先 登錄
相關推薦
評論