基于USB接口的高性能虛擬示波器的開發(fā)實(shí)現(xiàn)
1 引言
虛擬示波器,是將計(jì)算機(jī)強(qiáng)大的計(jì)算處理能力和一般硬件儀器的信號(hào)采集,控制能力結(jié)合在一起,從而實(shí)現(xiàn)一般示波器所不能實(shí)現(xiàn)的功能和友好的界面。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,使得虛擬儀器的實(shí)現(xiàn)成為可能,傳統(tǒng)儀器的一些專用處理器和設(shè)備,被計(jì)算機(jī)的通用設(shè)備所代替,常用的虛擬儀器,多采用pci或isa插槽,將各種硬件連接到一起,然而采集卡的數(shù)量一般有限,因此組織系統(tǒng)的時(shí)候,只能指定特定的計(jì)算機(jī),或打開計(jì)算機(jī)蓋裝入專門的采集卡,在使用筆記本電腦或工業(yè)一體化電腦的場(chǎng)合,根本就不支持pci或isa總線的設(shè)備。所以,我們需要一種更方便,更有效,更靈活的總線通訊方式來(lái)實(shí)現(xiàn)虛擬儀器,現(xiàn)代計(jì)算機(jī)一般都具有usb接口,且usb接口的使用靈活,方便,所以首先考慮采用usb總線。
usb總線是intel,ibm,nec,微軟等7家著名公司提出的新一代總線技術(shù),采用新一代usb總線之后,pc機(jī)配置新的硬件設(shè)備不用在打開機(jī)蓋,且支持熱插拔技術(shù),給使用者以極大的方便[1],通過(guò)usb集線器,擴(kuò)充設(shè)備可達(dá)127個(gè),并可通過(guò)3-5m的電纜連接到計(jì)算機(jī),而使采集卡靠近測(cè)試對(duì)象,從而大大地提高了電磁兼容性,在標(biāo)準(zhǔn)協(xié)議usb1.1中,umb總線的傳輸速率可達(dá)1.5-12mb/s,而在規(guī)范usb2.0中,速率則可達(dá)360mb/s。這樣的速率足以滿足絕大多數(shù)場(chǎng)合的要求[2、3]。
2 虛擬示波器的硬件設(shè)計(jì)
虛擬示波器的硬件設(shè)計(jì)就是要完成虛擬示波器的usb物理設(shè)備的設(shè)計(jì),即usb接口和usb功能設(shè)備,虛擬示波器的硬件結(jié)構(gòu)如圖1所示。
圖1可分為4個(gè)部分:信號(hào)調(diào)理部分,a/d轉(zhuǎn)換模塊,邏輯控制模塊,usb接口模塊,虛擬示波器的硬件部分完全采用模塊化設(shè)計(jì)方案,使各部分硬件相對(duì)緊湊,最終縮小了采集,而且a/d轉(zhuǎn)換模塊不在計(jì)算機(jī)內(nèi)部,可以有效地避免高頻電磁干擾對(duì)計(jì)算機(jī)的影響,也減輕了計(jì)算機(jī)的負(fù)擔(dān),使計(jì)算機(jī)可穩(wěn)定、高效的運(yùn)行。
usb接口模塊是這個(gè)系統(tǒng)通訊的關(guān)鍵,模塊需要完成上位機(jī)和a/d轉(zhuǎn)換模塊的通訊,需要將上位機(jī)的指令送到邏輯控制器idt7207,還需將轉(zhuǎn)換結(jié)果送入上位機(jī),usb接口芯片選用cypress公司的an2131qc,該芯片有其他芯片所沒有的特點(diǎn):
(1)基于ram的“軟”系統(tǒng)解決方案(soft,ram based)不需要ram或其他的固化存儲(chǔ)器,而只使用片內(nèi)的程序/數(shù)據(jù)ram。通過(guò)主機(jī)下載的方式來(lái)配置usb接口,因而使接口系統(tǒng)的修改和升級(jí)變得非常簡(jiǎn)單,使外設(shè)硬件的更新和升級(jí)變得更為方便。
(2)數(shù)據(jù)吞吐量完全達(dá)到usb協(xié)議要求,可以向用戶提供足夠的端口、緩沖區(qū)和傳輸速度,提供usb協(xié)議要求的全部4種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可以滿足用戶對(duì)各種類型數(shù)據(jù)傳輸?shù)男枨蟆?br>
(3)片上的串行接口處理機(jī)(sie)完成大部分的usb協(xié)議操作,使用戶可以擺脫復(fù)雜的協(xié)議細(xì)節(jié),簡(jiǎn)化了用戶配置代碼,加快了開發(fā)過(guò)程。
(4)內(nèi)嵌增強(qiáng)型8051處理器,兼容8051指令系統(tǒng),一個(gè)指令周期僅需4個(gè)時(shí)鐘周期,可提供標(biāo)準(zhǔn)8051三倍以上的處理能力;雙數(shù)據(jù)指針;方便數(shù)據(jù)塊搬移,使用片內(nèi)的ram作為數(shù)據(jù)/程序存儲(chǔ)器,非復(fù)用數(shù)據(jù)/地址總線,使程序指令速度更快,并且同外部器件的連接更加簡(jiǎn)單。
(5)休眠模式可以降低系統(tǒng)功耗,延長(zhǎng)器件的使用壽命。
邏輯控制模塊是整個(gè)設(shè)備控制的核心,其主要是負(fù)責(zé)解釋和控制執(zhí)行主機(jī)軟件系統(tǒng)的控制命令和要求,完成設(shè)備狀態(tài)設(shè)置和控制設(shè)備完成激勵(lì)信號(hào)的發(fā)出、響應(yīng)信號(hào)的采集等功能,邏輯控制模塊主要由可編程邏輯控制器idt7207,及其輔助電路和外圍擴(kuò)展電路構(gòu)成,芯片通過(guò)內(nèi)部i/o編程,方便地實(shí)現(xiàn)輸入/輸出的邏輯關(guān)系,使得電路更加簡(jiǎn)潔,功能更加強(qiáng)大,在邏輯控制模塊的控制下a/d轉(zhuǎn)換模塊利用a/d芯片7899完成對(duì)信號(hào)的a/d轉(zhuǎn)換,由于a/d芯片電壓輸入范圍為正負(fù)10v,因此前端信號(hào)調(diào)理模塊負(fù)責(zé)將信號(hào)幅值調(diào)理到正負(fù)10v之間,并實(shí)現(xiàn)采集電路與被測(cè)試對(duì)象的信號(hào)隔離。
3 虛擬示波器軟件設(shè)計(jì)
虛擬示波器的軟件主要完成對(duì)虛擬示波器控制、顯示的設(shè)計(jì),即對(duì)各個(gè)模塊的硬件控制,以及用戶界面的設(shè)計(jì),虛擬示波器的整體軟件應(yīng)該采用分層機(jī)構(gòu),整個(gè)控制軟件分為3層,底層物理設(shè)備的控制程序,usb設(shè)備在pc機(jī)上的驅(qū)動(dòng)程序,上位pc機(jī)的人機(jī)界面軟件,控制軟件的分塊,分層設(shè)計(jì)使各層軟件相對(duì)獨(dú)立,只需考慮各層軟件的接口即可,這樣使軟件的設(shè)計(jì)、編寫較為簡(jiǎn)單,運(yùn)行更為可靠,整體控制軟件流程圖如圖2所示。
底層物理設(shè)備的控制,主要是對(duì)usb接口芯片an2131的初始化,以及其接收、發(fā)送數(shù)據(jù)的控制,由于其內(nèi)嵌了8051的單片機(jī)芯片,所以就采用8051單片機(jī)的匯編語(yǔ)言編寫控制程序,其要點(diǎn)為:通過(guò)寫的相應(yīng)寄存器,分別設(shè)置中斷引腳的電平特性、缺省地址和各中斷事件的屏蔽,激活斷點(diǎn)0作用,進(jìn)入正常操作狀態(tài),在主循環(huán)過(guò)程中,主要等待主機(jī)通過(guò)控制斷點(diǎn)0發(fā)來(lái)的控制命令和握手命令來(lái)執(zhí)行相應(yīng)的功能設(shè)備任務(wù):設(shè)置狀態(tài)、接收pc激勵(lì)信號(hào)、發(fā)出激勵(lì)、采集數(shù)據(jù)等,采集的數(shù)據(jù)以包為單位裝載到端點(diǎn)1的fifo中,還要響應(yīng)an2131的主要事件,其部分控制程序如下:
usb設(shè)備在pc機(jī)上的驅(qū)動(dòng)程序,主要給設(shè)備分配地址,說(shuō)明控制字,與底層的usb驅(qū)動(dòng)程序接口。
上位pc機(jī)的人機(jī)界面是虛擬示波器與用戶的接口,直接關(guān)系到系統(tǒng)的可用性和方便性,人機(jī)界面程序主要是使用戶能夠方便地控制整個(gè)虛擬示波器的工作,并能通過(guò)界面方便地觀測(cè)到采集的結(jié)果和響應(yīng)的數(shù)據(jù)分析,用戶能夠通過(guò)程序方便地選擇通道,采集頻率,增益等,考慮到microsoft公司的visual
basic開發(fā)的, 界面直觀,易用,上位機(jī)的人機(jī)界面采用vb開發(fā),在軟件中,充分利用了類功能,將usb設(shè)備的啟動(dòng)函數(shù),停止函數(shù),數(shù)據(jù)讀取函數(shù)等各個(gè)函數(shù)全部整合到動(dòng)態(tài)鏈接庫(kù)usb.dll中,在應(yīng)用軟件中如需使用這些函數(shù)控制usb設(shè)備,只需在軟件相應(yīng)的模塊進(jìn)行申明,在程序中直接調(diào)用即可。這樣做不但使軟件程序結(jié)構(gòu)清晰,方便閱讀,而且在需要時(shí)可以方便快捷的升級(jí)人機(jī)界面,無(wú)需大的改動(dòng),使用動(dòng)態(tài)鏈接庫(kù)后,其他應(yīng)用軟件要使用該usb設(shè)備時(shí),也可方便申明函數(shù),從而方便地控制usb設(shè)備工作,因此,該usb設(shè)備可以方便地用于其他場(chǎng)合,實(shí)現(xiàn)其他的功能,軟件充分利用了計(jì)算機(jī)強(qiáng)大的處理能力,可控制usb設(shè)備同時(shí)對(duì)16個(gè)信號(hào)進(jìn)行采集和顯示,并可根據(jù)用戶的需要測(cè)出不同信號(hào)的頻率,幅值、有效值等參數(shù),軟件波形觀測(cè)界面如圖3所示,此時(shí)測(cè)量的是一個(gè)4574hz的標(biāo)準(zhǔn)正弦波,和一個(gè)疊加負(fù)直流分量的正弦波。
同時(shí),為了進(jìn)一步幫助使用者分析所得波形,軟件還能對(duì)所采集的信號(hào)進(jìn)行諧波分析,傳統(tǒng)的離散信號(hào)dft算法為:
為了節(jié)約cpu資源,能快速、實(shí)時(shí)地得出采集波形的諧波含量,軟件中采用了快速傅里葉變換fft的蝶型算法,從而實(shí)現(xiàn)了對(duì)采集數(shù)據(jù)的實(shí)時(shí)的諧波分析和顯示,為了對(duì)比各次諧波的含量,顯示時(shí)可輸出柱狀圖界面(如圖4);同時(shí)為了得到精確的諧波含量,用戶也可以選擇列表方式顯示(如圖5)。
4 虛擬示波器結(jié)果分析
通過(guò)和實(shí)際示波器所測(cè)波形進(jìn)行比較可以看出,波形完全反應(yīng)了實(shí)際波形的情況,波形沒有失真,所測(cè)各項(xiàng)參數(shù)與實(shí)際示波器測(cè)得的數(shù)據(jù)相等,且具備了一般示波器所不具備的多通道同時(shí)采集、諧波分析的功能。
評(píng)論