<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于USB的LDT實(shí)時(shí)數據采集系統設計

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>