<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è) > 嵌入式系統 > 設計應用 > 基于ISP1581的USB數據采集系統的實(shí)現

基于ISP1581的USB數據采集系統的實(shí)現

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

  2.2 驅動(dòng)程序開(kāi)發(fā)

  Windows環(huán)境下驅動(dòng)程序有3種模型:VxD模型、KMD模型、WDM模型。WDM模型是微軟力推的全新驅動(dòng)程序模型,現在主流的操作系統都是采用基于WDM模型的驅動(dòng)程序,因此本采集系統也采用WDM驅動(dòng)程序模型來(lái)開(kāi)發(fā)設備的驅動(dòng)程序。

  對于設備,其WDM驅動(dòng)程序分為底層(總線(xiàn))驅動(dòng)程序和USB功能(設備)驅動(dòng)程序。USB底層驅動(dòng)程序由操作系統提供,負責與實(shí)際的硬件打交道,實(shí)現底層通信。USB功能驅動(dòng)程序由設備開(kāi)發(fā)者編寫(xiě),不對實(shí)際的硬件進(jìn)行操作,而是通過(guò)向USB底層驅動(dòng)程序發(fā)送包含請求塊URB(USB Request Block)的IRP,以實(shí)現對USB設備信息的發(fā)送和接收。

  目前,WDM驅動(dòng)程序開(kāi)發(fā)工具有3種:Microsoft公司的DDK、Numega公司的DriverStudio和Jungo公司的WinDriver。其中,DDK的開(kāi)發(fā)難度較大,開(kāi)發(fā)者需要對整個(gè)體系結構和WDM規范有很好的理解和把握,還要熟悉上千個(gè)DDK函數的功能和使用場(chǎng)合,且測試流程繁瑣;DriverStudio的開(kāi)發(fā)難度低一些,它將DDK函數按照邏輯功能進(jìn)行組織,把很多常用功能封裝成類(lèi),建立了一個(gè)基于C++語(yǔ)言的面向對象的編程環(huán)境,開(kāi)發(fā)者面對的不再是上千個(gè)復雜凌亂的DDK函數,而是邏輯清晰的類(lèi)庫;WinDriver的開(kāi)發(fā)幾乎沒(méi)有難度,開(kāi)發(fā)者所編寫(xiě)的只是定制和調用它提供的通用驅動(dòng),開(kāi)發(fā)周期較短,特別適合于驅動(dòng)程序初學(xué)者使用。

  利用WinDriver開(kāi)發(fā)設備驅動(dòng)程序,有2種方法:(1)用Wizard自動(dòng)生成驅動(dòng)程序的框架代碼,根據實(shí)際要求修改代碼,加入定制的功能,再在用戶(hù)態(tài)執行和調試代碼,并將性能要求苛刻的部分插入到核心態(tài),從而完成整個(gè)驅動(dòng)程序的編寫(xiě)。在使用這種方法時(shí),WinDriver已經(jīng)完成了驅動(dòng)程序編寫(xiě)的大部分工作,減少了工作量,使編寫(xiě)驅動(dòng)成為相對較簡(jiǎn)單。但此方法生成的設備驅動(dòng)程序,其通用性和可移植性較差;(2)完全用WinDriver提供的API函數來(lái)寫(xiě)驅動(dòng)程序。這樣要比修改由Wizard生成的框架代碼靈活得多,并且編寫(xiě)的程序更簡(jiǎn)短。但這要求開(kāi)發(fā)者熟悉驅動(dòng)程序的框架,能熟練運用WinDriver API函數。

  為了縮短開(kāi)發(fā)周期,在實(shí)際應用中選用了第1種方法生成驅動(dòng)程序。具體步驟如下:

  (1) 啟動(dòng)Driver Wizard,檢測連接的USB設備,生成inf文件,這個(gè)inf文件和WinDriver包含的windrvr6.sys一起,就是新開(kāi)發(fā)USB設備的驅動(dòng)程序。

  (2) 點(diǎn)擊Next按鈕,進(jìn)入資源列表窗口,窗口中顯示了管道(Pipe)的一些基本信息。此窗口還可以用于對外設進(jìn)行讀寫(xiě),測試硬件資源的正確性,窗口中的Log部分即為測試結果。

  (3) 點(diǎn)擊Next按鈕,進(jìn)入代碼生成窗口,在窗口中選擇生成C語(yǔ)言代碼。之后Driver Wizard將自動(dòng)生成針對的樣本程序和工程文件(包括代碼文件、說(shuō)明文件以及適用于VC++編譯器的項目文件)。

  (4)重新安裝這個(gè)USB設備的驅動(dòng)程序,利用DriverWizard生成的文件,就可開(kāi)發(fā)應用程序了。

  經(jīng)過(guò)反復測試發(fā)現,在現有硬件上批量傳輸的速度在60 Mb/s左右,可以滿(mǎn)足當前系統采樣頻率為500 kHz時(shí)的數據采集要求,即500K×4路×16=32 Mb/s。但與USB2.0規范的極限速度相比,現有的批量傳輸速度還不及其13%,分析其原因:

  (1) USB2.0規范定義的最大速度為480 Mb/s,但它是包含令牌包在內的傳輸,因此,若扣除通信協(xié)議中的令牌,實(shí)際傳輸速度要遠低于480 Mb/s。

  (2) 從訪(fǎng)問(wèn)寄存器的時(shí)序參數可以看出,讀/寫(xiě)周期最小為80 ns,即DSP對讀寫(xiě)的最高頻率是12.5 MHz,由于每次讀寫(xiě)操作的數據為2 B,所以DSP與接口芯片之間數據傳輸的最高速率是25 MB/s,最后的實(shí)際值應該小于此值。

  (3) 利用WinDriver開(kāi)發(fā)驅動(dòng),事實(shí)上它只是定制和調用WinDriver提供的通用驅動(dòng)而已,所以并非有針對性地對特定硬件編程,程序執行效率上也不免大打折扣。

  (4) 計算機與USB設備的通信中還包含對計算機硬盤(pán)的寫(xiě)操作,使用測試軟件對所用機器硬盤(pán)進(jìn)行寫(xiě)測試,測得平均速度在22~25 MB/s之間,因此硬盤(pán)的寫(xiě)速度也是影響USB數據傳輸速度的原因之一。

  因此若想在現有硬件平臺上獲得更高的速度可以在以下幾個(gè)方面進(jìn)行:采用端點(diǎn)的雙緩沖模式、采用的DMA模式、采用效率更高的驅動(dòng)開(kāi)發(fā)方式及優(yōu)化固件程序以提高硬件的工作效率等。

參考文獻:

[1].PCIdatasheethttp://www.dzsc.com/datasheet/PCI_1201469.html.
[2].ISP1581datasheethttp://www.dzsc.com/datasheet/ISP1581_410269.html.
[3].AD7655datasheethttp://www.dzsc.com/datasheet/AD7655_1131512.html.


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

關(guān)鍵詞: ISP1581 USB 數據采集系統

評論


相關(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>