新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于USB接口的虛擬示波器的開(kāi)發(fā)實(shí)現(xiàn)

基于USB接口的虛擬示波器的開(kāi)發(fā)實(shí)現(xiàn)

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

基于的開(kāi)發(fā)實(shí)現(xiàn)

為了克服應(yīng)用中的一些缺點(diǎn),在中采用了一種新的總線(xiàn)接口標(biāo)準(zhǔn)——。主要介紹了基于USB的虛擬示波器的獨(dú)特優(yōu)點(diǎn),著重說(shuō)明了系統(tǒng)整體設(shè)計(jì)、外插硬件設(shè)計(jì)、USB驅(qū)動(dòng)軟件設(shè)計(jì)和客戶(hù)應(yīng)用軟件設(shè)計(jì)。
關(guān)鍵詞:虛擬示波器,USB,Windows驅(qū)動(dòng)模型,快速傅里葉變換

1 系統(tǒng)總體設(shè)計(jì)
  USB規(guī)范中將USB分為5個(gè)部分:控制器、控制器驅(qū)動(dòng)程序、USB芯片驅(qū)動(dòng)程序、USB設(shè)備以及針對(duì)不同USB設(shè)備的客戶(hù)驅(qū)動(dòng)程序。根據(jù)設(shè)備對(duì)系統(tǒng)資源需求的不同,在USB規(guī)范中規(guī)定了四種不同的數(shù)據(jù)傳輸方式:等時(shí)傳輸方式(isochronous)、中斷傳輸方式(interrupt)、控制傳輸方式(control)和批(bulk)傳輸方式。這些傳輸方式各有特點(diǎn),分別用于不同的場(chǎng)所。USB需要主機(jī)硬件、操作系統(tǒng)和外設(shè)三個(gè)方面的支持才能工作。目前,主板一般都采用支持USB功能的控制芯片組,而且也安裝了插座。根據(jù)USB規(guī)范,整個(gè)虛擬示波器系統(tǒng)的設(shè)計(jì)分為主機(jī)軟件部分和外插硬件部分(見(jiàn)圖1)。


  本虛擬示波器的開(kāi)發(fā)將三種實(shí)用儀器儀表的功能集于一體。(1)雙通道寬帶示波器功能:波形實(shí)時(shí)顯示與運(yùn)算,波形存儲(chǔ)打印,頻譜分析等。(2)數(shù)字/表針雙顯高精度萬(wàn)用表功能:電壓測(cè)量,電流測(cè)量,電阻測(cè)量等。(3)高精度可自定義信號(hào)發(fā)生器功能:三角波發(fā)生,正弦波發(fā)生,方波發(fā)生,自定義波形發(fā)生等。
2 系統(tǒng)外插硬件設(shè)計(jì)
系統(tǒng)外插硬件設(shè)計(jì)結(jié)構(gòu)見(jiàn)圖2。本系統(tǒng)的外插硬件中采用Philips公司的PDIUSBD12全速USB接口芯片組成USB接口單元。PDIUSBD12芯片詳細(xì)資料可查看Philips公司網(wǎng)站www.philips.com。模數(shù)轉(zhuǎn)換芯片采用MAX公司最新的AD芯片MAX108??刂茊卧捎肁T908515單片機(jī)作為控制器,控制整個(gè)硬件部分的協(xié)調(diào)工作。兩路被測(cè)信號(hào)可同時(shí)進(jìn)入雙路AD單元,模數(shù)轉(zhuǎn)換后的數(shù)字信號(hào)經(jīng)過(guò)信號(hào)預(yù)處理單元,對(duì)信號(hào)作初步的處理并將信號(hào)轉(zhuǎn)變?yōu)楸阌诖鎯?chǔ)的數(shù)據(jù)形式。此后,將數(shù)據(jù)送入高速緩存,等待USB接口單元逐步輸入主機(jī)。而系統(tǒng)輸出信號(hào)的路徑相反,最后由DA單元轉(zhuǎn)變?yōu)橛脩?hù)定義輸出的模擬信號(hào)??刂茊卧刂艫D和DA轉(zhuǎn)換的啟動(dòng)停止、信號(hào)預(yù)處理單元的處理動(dòng)作、高速緩存的存取以及協(xié)助USB接口單元的輸入輸出。

3 USB驅(qū)動(dòng)程序設(shè)計(jì)
  本USB驅(qū)動(dòng)程序采用等時(shí)管道傳輸數(shù)據(jù),用控制管道來(lái)傳輸指令與信息。用等時(shí)管道可以實(shí)現(xiàn)主機(jī)和設(shè)備之間有規(guī)律的時(shí)間敏感性數(shù)據(jù)交換??偩€(xiàn)驅(qū)動(dòng)程序?qū)⑹褂?0%的總線(xiàn)帶寬進(jìn)行等時(shí)和中斷傳輸?! 〈蜷_(kāi)一個(gè)USB管道,首先要知道這種USB設(shè)備的GUID和管道名稱(chēng),獲取句柄以后就可以使用ReadFile/WriteFile進(jìn)行讀寫(xiě)了。
  USB驅(qū)動(dòng)程序符合WDM(Windows驅(qū)動(dòng)模型),本驅(qū)動(dòng)程序采用微軟公司的DDK2000開(kāi)發(fā),使用平臺(tái)為Windows2000。鑒于篇幅原因,此處僅提供USB驅(qū)動(dòng)程序主入口例程的設(shè)計(jì)。
  WDM驅(qū)動(dòng)程序的主入口例程為DriverEntry例程,I/O管理器將調(diào)用該例程。對(duì)于本W(wǎng)DM驅(qū)動(dòng)程序的DriverEntry例程,其主要工作是把各種函數(shù)指針填入驅(qū)動(dòng)程序?qū)ο蟆_@些指針為操作系統(tǒng)指明了驅(qū)動(dòng)程序庫(kù)中各種子例程的位置。它們包括下面這些指針成員(驅(qū)動(dòng)程序?qū)ο笾校?/SPAN>

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

關(guān)鍵詞: USB接口 虛擬示波器

評(píng)論


相關(guān)推薦

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

關(guān)閉