新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于USB的LDT實(shí)時數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

基于USB的LDT實(shí)時數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

作者: 時間:2012-04-14 來源:網(wǎng)絡(luò) 收藏

2.2 驅(qū)動程序設(shè)計(jì)
  USB系統(tǒng)驅(qū)動程序采用分層驅(qū)動模型:USB設(shè)備驅(qū)動程序、USB函數(shù)層。其中函數(shù)層由驅(qū)動程序模塊(USBD)和主控制器驅(qū)動程序模塊(HCD)組成。它由Windows98提供,負(fù)責(zé)管理USB設(shè)備驅(qū)動程序和USB控制器之間的通信;加載及卸載USB驅(qū)動程序;與USB設(shè)備通用端點(diǎn)建立通信來執(zhí)行設(shè)備配置、數(shù)據(jù)與USB協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務(wù)。

  USB設(shè)備驅(qū)動程序是開發(fā)USB外設(shè)的一個關(guān)鍵,它的設(shè)計(jì)是基于WDM(Win-dows Driver Model,Windows驅(qū)動程序模型)。目前,Win-dows98提供了多種USB設(shè)備驅(qū)動程序,但并不針對設(shè)備,需要Win-dows98/NT/2000 DDK開發(fā)包和SoftICE等調(diào)試工具?! ∷捎?個模塊實(shí)現(xiàn):初始化模塊、即插即用管理模塊、電源管理模塊以及I/O功能實(shí)現(xiàn)模塊。
  初始化模塊提供一個Driver Entry入口函數(shù),來對所有的I/O請求包IRP(I/ORequest Packet)處理例程作定義。電源管理模塊負(fù)責(zé)設(shè)備的掛起與喚醒。
  當(dāng)USB設(shè)備上電時,主機(jī)會向USB控制器發(fā)送獲得設(shè)備描述的命令,設(shè)備描述符是一個固定長度為18字節(jié)的數(shù)字序列,反映了該USB設(shè)備的基本屬性。當(dāng)USB控制器從USB總線檢測到這一命令時,USB控制器以中斷方式將此請求通知到TMS320F240。TMS320F240通過訪問USB控制器的控制寄存器和數(shù)據(jù)寄存器,獲得各種參數(shù),向主機(jī)返回配置所包含的所有接口和接口所包含的所有端點(diǎn)的描述符。主機(jī)獲得后,設(shè)備與主機(jī)的“握手”就初步完成了。
  即插即用管理模塊實(shí)現(xiàn)USB設(shè)備的熱插拔及動態(tài)配置。當(dāng)硬件檢測到USB設(shè)備接入時,Win-dows98查找相應(yīng)的驅(qū)動程序,并調(diào)用它的Driver En-try例程,即插即用管理器調(diào)用驅(qū)動程序的Add De-vice例程,告訴它添加了一個設(shè)備;然后,驅(qū)動程序?yàn)閁SB設(shè)備建立一個FDO(功能設(shè)備對象),在此處理工程中,驅(qū)動程序收到一個IRP-MN-START-DE-VICE的IRP,包括設(shè)備分配的資源信息。至此,設(shè)備被正確設(shè)置,驅(qū)動程序開始與硬件對話。當(dāng)然,設(shè)備運(yùn)行過程中,如果設(shè)備的狀態(tài)發(fā)生變化(暫停、拔出等),即插即用管理器也同樣發(fā)出相應(yīng)的IRP,由驅(qū)動程序進(jìn)行相應(yīng)的處理。
  I/O功能實(shí)現(xiàn)模塊完成I/O請求的大部分工作。當(dāng)應(yīng)用程序提出I/O請求時,它調(diào)用Win32 API函數(shù)DeviceIoControl來向設(shè)備發(fā)出命令。然后,由I/O管理器構(gòu)造一個IRP,并設(shè)置其MajorFunction域?yàn)镮RP-MJ-DEVICE-CONTROL。USB設(shè)備驅(qū)動程序收到該IRP后,根據(jù)其中的控制碼,構(gòu)造相應(yīng)的USB請求塊,并把它放到一個新的IRP,此IRP被傳遞到USBD模塊。USBD模塊根據(jù)此IRP執(zhí)行相應(yīng)的操作,并把結(jié)果通過IRP返回給USB功能驅(qū)動程序。USB功能驅(qū)動程序接到此IRP后,將操作結(jié)果再通過IRP返回給I/O管理器。并由I/O管理器將結(jié)果最終返回給應(yīng)用程序,至此,對USB設(shè)備的一次I/O操作完成。
2.3 應(yīng)用程序設(shè)計(jì)
  PC主機(jī)是系統(tǒng)的中心,其基本功能有開啟或閉合USB設(shè)備、檢測USB設(shè)備、設(shè)置USB數(shù)據(jù)傳輸管道、設(shè)置A/D狀態(tài)和數(shù)據(jù)采集端口、實(shí)時從USB接口采集數(shù)據(jù)、顯示數(shù)據(jù)。
  此外,具有數(shù)據(jù)分析功能包括數(shù)字濾波模塊、線性化處理模塊、解調(diào)模塊、PLL鎖相環(huán)倍頻模塊、標(biāo)度變換模塊、與下位機(jī)的通信模塊、下位機(jī)的控制字生成模塊和數(shù)據(jù)庫的管理模塊等幾個部分。

3 結(jié)束語
  為了提高設(shè)計(jì)質(zhì)量,所設(shè)計(jì)的激光多普勒測量系統(tǒng)通過了測試USB外設(shè)功能的一系列軟件如Bwqlinst,USBComp等,完成了高精度數(shù)據(jù)采集和高速數(shù)據(jù)傳送。


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉