基于USB接口的高性能虛擬示波器的開發(fā)實現(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所示。
圖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 虛擬示波器結果分析
通過和實際示波器所測波形進行比較可以看出,波形完全反應了實際波形的情況,波形沒有失真,所測各項參數與實際示波器測得的數據相等,且具備了一般示波器所不具備的多通道同時采集、諧波分析的功能。
評論