<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于USB接口的高性能虛擬示波器的開發(fā)實現(xiàn)

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

          ——
          作者:黃根嶺1,付濤1,楊保海2 時間:2007-01-26 來源:《現(xiàn)代電子技術》 收藏


          1 引言

          虛擬示波器,是將計算機強大的計算處理能力和一般硬件儀器的信號采集,控制能力結合在一起,從而實現(xiàn)一般示波器所不能實現(xiàn)的功能和友好的界面。

          隨著計算機技術的發(fā)展,使得虛擬儀器的實現(xiàn)成為可能,傳統(tǒng)儀器的一些專用處理器和設備,被計算機的通用設備所代替,常用的虛擬儀器,多采用pci或isa插槽,將各種硬件連接到一起,然而采集卡的數量一般有限,因此組織系統(tǒng)的時候,只能指定特定的計算機,或打開計算機蓋裝入專門的采集卡,在使用筆記本電腦或工業(yè)一體化電腦的場合,根本就不支持pci或isa總線的設備。所以,我們需要一種更方便,更有效,更靈活的總線通訊方式來實現(xiàn)虛擬儀器,現(xiàn)代計算機一般都具有usb接口,且usb接口的使用靈活,方便,所以首先考慮采用usb總線。

          usb總線是intel,ibm,nec,微軟等7家著名公司提出的新一代總線技術,采用新一代usb總線之后,pc機配置新的硬件設備不用在打開機蓋,且支持熱插拔技術,給使用者以極大的方便[1],通過usb集線器,擴充設備可達127個,并可通過3-5m的電纜連接到計算機,而使采集卡靠近測試對象,從而大大地提高了電磁兼容性,在標準協(xié)議usb1.1中,umb總線的傳輸速率可達1.5-12mb/s,而在規(guī)范usb2.0中,速率則可達360mb/s。這樣的速率足以滿足絕大多數場合的要求[2、3]。

          2 虛擬示波器的硬件設計

          虛擬示波器的硬件設計就是要完成虛擬示波器的usb物理設備的設計,即usb接口和usb功能設備,虛擬示波器的硬件結構如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/21596.htm

          圖1可分為4個部分:信號調理部分,a/d轉換模塊,邏輯控制模塊,usb接口模塊,虛擬示波器的硬件部分完全采用模塊化設計方案,使各部分硬件相對緊湊,最終縮小了采集,而且a/d轉換模塊不在計算機內部,可以有效地避免高頻電磁干擾對計算機的影響,也減輕了計算機的負擔,使計算機可穩(wěn)定、高效的運行。

          usb接口模塊是這個系統(tǒng)通訊的關鍵,模塊需要完成上位機和a/d轉換模塊的通訊,需要將上位機的指令送到邏輯控制器idt7207,還需將轉換結果送入上位機,usb接口芯片選用cypress公司的an2131qc,該芯片有其他芯片所沒有的特點:

          (1)基于ram的“軟”系統(tǒng)解決方案(soft,ram based)不需要ram或其他的固化存儲器,而只使用片內的程序/數據ram。通過主機下載的方式來配置usb接口,因而使接口系統(tǒng)的修改和升級變得非常簡單,使外設硬件的更新和升級變得更為方便。

          (2)數據吞吐量完全達到usb協(xié)議要求,可以向用戶提供足夠的端口、緩沖區(qū)和傳輸速度,提供usb協(xié)議要求的全部4種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可以滿足用戶對各種類型數據傳輸的需求。

          (3)片上的串行接口處理機(sie)完成大部分的usb協(xié)議操作,使用戶可以擺脫復雜的協(xié)議細節(jié),簡化了用戶配置代碼,加快了開發(fā)過程。

          (4)內嵌增強型8051處理器,兼容8051指令系統(tǒng),一個指令周期僅需4個時鐘周期,可提供標準8051三倍以上的處理能力;雙數據指針;方便數據塊搬移,使用片內的ram作為數據/程序存儲器,非復用數據/地址總線,使程序指令速度更快,并且同外部器件的連接更加簡單。

          (5)休眠模式可以降低系統(tǒng)功耗,延長器件的使用壽命。

          邏輯控制模塊是整個設備控制的核心,其主要是負責解釋和控制執(zhí)行主機軟件系統(tǒng)的控制命令和要求,完成設備狀態(tài)設置和控制設備完成激勵信號的發(fā)出、響應信號的采集等功能,邏輯控制模塊主要由可編程邏輯控制器idt7207,及其輔助電路和外圍擴展電路構成,芯片通過內部i/o編程,方便地實現(xiàn)輸入/輸出的邏輯關系,使得電路更加簡潔,功能更加強大,在邏輯控制模塊的控制下a/d轉換模塊利用a/d芯片7899完成對信號的a/d轉換,由于a/d芯片電壓輸入范圍為正負10v,因此前端信號調理模塊負責將信號幅值調理到正負10v之間,并實現(xiàn)采集電路與被測試對象的信號隔離。

          3 虛擬示波器軟件設計

          虛擬示波器的軟件主要完成對虛擬示波器控制、顯示的設計,即對各個模塊的硬件控制,以及用戶界面的設計,虛擬示波器的整體軟件應該采用分層機構,整個控制軟件分為3層,底層物理設備的控制程序,usb設備在pc機上的驅動程序,上位pc機的人機界面軟件,控制軟件的分塊,分層設計使各層軟件相對獨立,只需考慮各層軟件的接口即可,這樣使軟件的設計、編寫較為簡單,運行更為可靠,整體控制軟件流程圖如圖2所示。

          底層物理設備的控制,主要是對usb接口芯片an2131的初始化,以及其接收、發(fā)送數據的控制,由于其內嵌了8051的單片機芯片,所以就采用8051單片機的匯編語言編寫控制程序,其要點為:通過寫的相應寄存器,分別設置中斷引腳的電平特性、缺省地址和各中斷事件的屏蔽,激活斷點0作用,進入正常操作狀態(tài),在主循環(huán)過程中,主要等待主機通過控制斷點0發(fā)來的控制命令和握手命令來執(zhí)行相應的功能設備任務:設置狀態(tài)、接收pc激勵信號、發(fā)出激勵、采集數據等,采集的數據以包為單位裝載到端點1的fifo中,還要響應an2131的主要事件,其部分控制程序如下:

          usb設備在pc機上的驅動程序,主要給設備分配地址,說明控制字,與底層的usb驅動程序接口。

          上位pc機的人機界面是虛擬示波器與用戶的接口,直接關系到系統(tǒng)的可用性和方便性,人機界面程序主要是使用戶能夠方便地控制整個虛擬示波器的工作,并能通過界面方便地觀測到采集的結果和響應的數據分析,用戶能夠通過程序方便地選擇通道,采集頻率,增益等,考慮到microsoft公司的visual basic開發(fā)的, 界面直觀,易用,上位機的人機界面采用vb開發(fā),在軟件中,充分利用了類功能,將usb設備的啟動函數,停止函數,數據讀取函數等各個函數全部整合到動態(tài)鏈接庫usb.dll中,在應用軟件中如需使用這些函數控制usb設備,只需在軟件相應的模塊進行申明,在程序中直接調用即可。這樣做不但使軟件程序結構清晰,方便閱讀,而且在需要時可以方便快捷的升級人機界面,無需大的改動,使用動態(tài)鏈接庫后,其他應用軟件要使用該usb設備時,也可方便申明函數,從而方便地控制usb設備工作,因此,該usb設備可以方便地用于其他場合,實現(xiàn)其他的功能,軟件充分利用了計算機強大的處理能力,可控制usb設備同時對16個信號進行采集和顯示,并可根據用戶的需要測出不同信號的頻率,幅值、有效值等參數,軟件波形觀測界面如圖3所示,此時測量的是一個4574hz的標準正弦波,和一個疊加負直流分量的正弦波。

          同時,為了進一步幫助使用者分析所得波形,軟件還能對所采集的信號進行諧波分析,傳統(tǒng)的離散信號dft算法為:

          為了節(jié)約cpu資源,能快速、實時地得出采集波形的諧波含量,軟件中采用了快速傅里葉變換fft的蝶型算法,從而實現(xiàn)了對采集數據的實時的諧波分析和顯示,為了對比各次諧波的含量,顯示時可輸出柱狀圖界面(如圖4);同時為了得到精確的諧波含量,用戶也可以選擇列表方式顯示(如圖5)。


          4 虛擬示波器結果分析

          通過和實際示波器所測波形進行比較可以看出,波形完全反應了實際波形的情況,波形沒有失真,所測各項參數與實際示波器測得的數據相等,且具備了一般示波器所不具備的多通道同時采集、諧波分析的功能。



          關鍵詞:

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();