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

高速USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

基于LABVIEW的USB接口多路高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
基于USB總線的數(shù)據(jù)采集設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)

評(píng)論