• <del id="qqie6"><sup id="qqie6"></sup></del>
  • <tfoot id="qqie6"></tfoot>
  • <ul id="qqie6"></ul>
  • 產(chǎn)品推薦:水表|流量計(jì)|壓力變送器|熱電偶|液位計(jì)|冷熱沖擊試驗(yàn)箱|水質(zhì)分析|光譜儀|試驗(yàn)機(jī)|試驗(yàn)箱


    儀表網(wǎng)>技術(shù)中心>使用指南>正文

    歡迎聯(lián)系我

    有什么可以幫您? 在線咨詢

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

       2012年04月18日 15:45  
      摘要:為了克服虛擬示波器應(yīng)用中的一些缺點(diǎn),在虛擬示波器中采用了一種新的總線接口標(biāo)準(zhǔn)——USB接口。主要介紹了基于USB的虛擬示波器的*優(yōu)點(diǎn),著重說明了系統(tǒng)整體設(shè)計(jì)、外插硬件設(shè)計(jì)、USB驅(qū)動(dòng)軟件設(shè)計(jì)和客戶應(yīng)用軟件設(shè)計(jì)。
      
      1、系統(tǒng)總體設(shè)計(jì)
      
      USB規(guī)范中將USB分為5個(gè)部分:控制器、控制器驅(qū)動(dòng)程序、USB芯片驅(qū)動(dòng)程序、USB設(shè)備以及針對(duì)不同USB設(shè)備的客戶驅(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功能的控制芯片組,而且也安裝了USB接口插座。根據(jù)USB規(guī)范,整個(gè)虛擬示波器系統(tǒng)的設(shè)計(jì)分為主機(jī)軟件部分和外插硬件部分(見圖1)。
      
      本虛擬示波器的開發(fā)將三種實(shí)用儀器儀表的功能集于一體。(1)雙通道寬帶示波器功能:波形實(shí)時(shí)顯示與運(yùn)算,波形存儲(chǔ)打印,頻譜分析等。(2)數(shù)字/表針雙顯高精度萬用表功能:電壓測(cè)量,電流測(cè)量,電阻測(cè)量等。(3)高精度可自定義信號(hào)發(fā)生器功能:三角波發(fā)生,正弦波發(fā)生,方波發(fā)生,自定義波形發(fā)生等。
      
      2、系統(tǒng)外插硬件設(shè)計(jì)
      
      系統(tǒng)外插硬件設(shè)計(jì)結(jié)構(gòu)見圖2。本系統(tǒng)的外插硬件中采用Philips公司的PDIUSBD12全速USB接口芯片組成USB接口單元。PDIUSBD12芯片詳細(xì)資料可查看Philips公司www.philips.com。模數(shù)轉(zhuǎn)換芯片采用MAX公司的AD芯片MAX108。控制單元采用AT908515單片機(jī)作為控制器,控制整個(gè)硬件部分的協(xié)調(diào)工作。兩路被測(cè)信號(hào)可同時(shí)進(jìn)入雙路AD單元,模數(shù)轉(zhuǎn)換后的數(shù)字信號(hào)經(jīng)過信號(hào)預(yù)處理單元,對(duì)信號(hào)作初步的處理并將信號(hào)轉(zhuǎn)變?yōu)楸阌诖鎯?chǔ)的數(shù)據(jù)形式。此后,將數(shù)據(jù)送入高速緩存,等待USB接口單元逐步輸入主機(jī)。而系統(tǒng)輸出信號(hào)的路徑相反,zui后由DA單元轉(zhuǎn)變?yōu)橛脩舳x輸出的模擬信號(hào)。控制單元控制AD和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ù),用控制管道來傳輸指令與信息。用等時(shí)管道可以實(shí)現(xiàn)主機(jī)和設(shè)備之間有規(guī)律的時(shí)間敏感性數(shù)據(jù)交換。總線驅(qū)動(dòng)程序?qū)⑹褂?0%的總線帶寬進(jìn)行等時(shí)和中斷傳輸。打開一個(gè)USB管道,首先要知道這種USB設(shè)備的GUID和管道名稱,獲取句柄以后就可以使用ReadFile/WriteFile進(jìn)行讀寫了。
      
      USB驅(qū)動(dòng)程序符合WDM(Windows驅(qū)動(dòng)模型),本驅(qū)動(dòng)程序采用微軟公司的DDK2000開發(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)程序庫中各種子例程的位置。它們包括下面這些指針成員(驅(qū)動(dòng)程序?qū)ο笾校?br />  
      (1)DriverUnload指向驅(qū)動(dòng)程序的清除例程。I/O管理器會(huì)在卸載驅(qū)動(dòng)程序前調(diào)用該例程。
      
      (2)DriverExtension→AddDevice指向驅(qū)動(dòng)程序的AddDevice函數(shù)。PnP管理器將為每個(gè)硬件實(shí)例調(diào)用一次AddDevice例程。
      
      (3)DriverStartIo驅(qū)動(dòng)程序使用標(biāo)準(zhǔn)的IRP(interruptrequestpackage,中斷請(qǐng)求包)排隊(duì)。
      
      (4)MajorFunction驅(qū)動(dòng)程序可能需要處理幾種類型的IRP,所以,應(yīng)該設(shè)置與那幾種IRP類型相對(duì)應(yīng)的指針元素,使它們指向相應(yīng)的派遣函數(shù)。根據(jù)虛擬儀器系統(tǒng)的實(shí)際要求,本驅(qū)動(dòng)程序所要處理的主功能IRP有:
      
      IRP-MJ-CREATE;IRP-MJ-CLOSE;
      
      IRP-MJ-DEVICE-CONTR;IRP-MJ-WRITE;
      
      IRP-MJ-READ;IRP-MJ-SYSTEM-CONTROL;
      
      IRP-MJ-PNP;IRP-MJ-POWER。
      
      在主入口例程中,必須設(shè)置和這些IRP類型相對(duì)應(yīng)的指針元素,使它們指向相應(yīng)的派遣函數(shù)。
      
      4、客戶服務(wù)軟件設(shè)計(jì)
      
      整個(gè)客戶服務(wù)軟件使用VC++編寫,分以下幾個(gè)主要模塊設(shè)計(jì)。
      
      4.1驅(qū)動(dòng)層與應(yīng)用層通信模塊
      
      如果通信功能塊直接放在應(yīng)用程序主線程中實(shí)現(xiàn),那么,當(dāng)應(yīng)用程序與驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)通信時(shí),主界面就會(huì)凍結(jié)。為了解決這個(gè)問題,我們直接創(chuàng)建一個(gè)子線程來單獨(dú)完成與驅(qū)動(dòng)程序的通信任務(wù),讓主界面專心于響應(yīng)視窗界面的訊息。在子線程中通過調(diào)用WindowsAPI函數(shù)來實(shí)現(xiàn)對(duì)USB設(shè)備進(jìn)行IO操作。其中,DeviceIoControl()函數(shù)用于傳送設(shè)備配置信息;CreateFile()用于創(chuàng)建設(shè)備對(duì)象;WriteFile()和ReadFile()用于對(duì)USB設(shè)備讀寫數(shù)據(jù)。
      
      4.2控制面板模塊
      
      在客戶服務(wù)界面上我們創(chuàng)建了RUN、STOP、SINGLE、頻譜分析、LOAD和SAVE6個(gè)主控功能按鈕,來實(shí)現(xiàn)其主要控制功能。這一部分設(shè)計(jì)系統(tǒng)完成啟動(dòng)、停止、單步、存儲(chǔ)和裝入數(shù)據(jù)文件等等控制功能。
      
      4.3波形實(shí)時(shí)顯示模塊
      
      對(duì)顯示窗口按用戶習(xí)慣進(jìn)行定制,并且按控制面板的參數(shù)來顯示波形、刷新波形和對(duì)波形進(jìn)行一定的運(yùn)算。
      
      4.4FFT模塊
      
      利用快速傅里葉變換(FFT)進(jìn)行頻譜分析。本軟件中頻譜分析采用按時(shí)間抽取FFT算法,然后將幅值頻譜分析和相位頻譜分析結(jié)果在用戶界面上以坐標(biāo)曲線形式顯示。
      
      4.5其它模塊
      
      包括波形存取、打印、重放,以及數(shù)字/表針雙顯高精度萬用表和高精度可自定義信號(hào)發(fā)生器功能模塊。
      
      5、結(jié)束語
      
      隨著USB2.0標(biāo)準(zhǔn)的提出,USB的應(yīng)用范圍越來越廣,已經(jīng)涉及到幾乎所有計(jì)算機(jī)外設(shè)。USB的特點(diǎn)為解決當(dāng)前虛擬儀器的一些問題提供了新思路。本文是將USB接口引入虛擬儀器、儀表系統(tǒng)的一次探索性研究。

    免責(zé)聲明

    • 凡本網(wǎng)注明“來源:儀表網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-儀表網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:儀表網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
    • 本網(wǎng)轉(zhuǎn)載并注明自其它來源(非儀表網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來源,并自負(fù)版權(quán)等法律責(zé)任。
    • 如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
    聯(lián)系我們

    客服熱線: 15267989561

    加盟熱線: 15267989561

    媒體合作: 0571-87759945

    投訴熱線: 0571-87759942

    關(guān)注我們
    • 下載儀表站APP

    • Ybzhan手機(jī)版

    • Ybzhan公眾號(hào)

    • Ybzhan小程序

    企業(yè)未開通此功能
    詳詢客服 : 0571-87759942
    主站蜘蛛池模板: 外国成人网在线观看免费视频| 国产成人精品第一区二区| 亚洲精品成人网久久久久久| 亚洲精品成人网久久久久久| 精品无码成人久久久久久| 成人年无码av片在线观看| 国产成人亚洲综合| 精品无码成人片一区二区98| 国产成人麻豆精品午夜福利在线| 四虎影视永久地址四虎影视永久地址www成人| 国产成人亚洲综合网站不卡| 中文字幕无线码欧美成人| 成人国产一区二区三区| 亚洲欧美成人综合久久久| 成人片黄网站色大片免费| 四虎成人免费网站在线| 成人久久久久久| 香蕉久久成人网| 国产一级成人毛片| 国产综合成人久久大片91| 韩国成人毛片aaa黄| 国产成人一区二区三区免费视频| 成人中文字幕在线| 欧美成人午夜视频| 亚洲AV成人片无码网站| 国产成人在线网站| 国产精品成人亚洲| 成人午夜性A级毛片免费| 欧美成人第一页| 欧美日韩亚洲成人| 日韩成人在线网站| 欧美色成人综合| 精品无码成人久久久久久| 亚洲人6666成人观看| 亚洲国产成人无码av在线影院 | 91成人高清在线播放| 国产成人无码精品一区不卡| 天堂成人一区二区三区| 在线免费成人网| 国产成人无码免费看片软件| 国产麻豆成人传媒免费观看|