你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

基于嵌入式系統(tǒng) USB接口的虛擬示波器的開(kāi)發(fā)與實(shí)現(xiàn)

發(fā)布時(shí)間:2016-03-10 責(zé)任編輯:wenwei

【導(dǎo)讀】針對(duì)傳統(tǒng)示波器不便攜帶,傳統(tǒng)虛擬儀器不具有即插即用、熱插拔等功能的情況,提出了基于嵌入式系統(tǒng)USB接口的虛擬示波器的設(shè)計(jì)方案和具體實(shí)現(xiàn)方法。以單片機(jī)和USB芯片為核心構(gòu)建虛擬示波器系統(tǒng)體系,應(yīng)用嵌入式技術(shù)把示波器的硬件集成在嵌入式電路板上,將A/D轉(zhuǎn)換、D/A轉(zhuǎn)換,以及數(shù)字濾波和邏輯控制處理等外置于上位PC機(jī),通過(guò)控制傳輸和數(shù)據(jù)報(bào)告完成數(shù)據(jù)通信和監(jiān)控顯示的功能。實(shí)驗(yàn)表明,設(shè)計(jì)的虛擬儀器具有智能化和良好的系統(tǒng)擴(kuò)展性,是未來(lái)虛擬儀器發(fā)展的方向。
 
虛擬示波器是將計(jì)算機(jī)強(qiáng)大的計(jì)算處理能力和一般硬件儀器的信號(hào)采集和控制能力結(jié)合在一起,從而實(shí)現(xiàn)一般示波器所不能實(shí)現(xiàn)的功能和友好的界面,彌補(bǔ)了傳統(tǒng)示波器功能單一、體積龐大、攜帶不便、價(jià)格昂貴的不足。隨著計(jì)算機(jī)技術(shù)的發(fā)展 ,對(duì)虛擬儀器的智能化和小型化的要求越來(lái)越高。嵌入式系統(tǒng)的發(fā)展使得基于嵌入式微處理器和實(shí)時(shí)操作系統(tǒng)的嵌入式虛擬儀器能夠滿足惡劣工作環(huán)境下的便攜虛擬儀器的需要。同時(shí),基于USB總線的儀器設(shè)備克服了現(xiàn)有PC總線虛擬儀器的不足,可滿足自動(dòng)化工業(yè)測(cè)量的要求,特別適合現(xiàn)場(chǎng)信號(hào)的測(cè)試。
 
常用的虛擬儀器多采用PCI或ISA插槽,然而采集卡的數(shù)量一般有限,因此在搭建系統(tǒng)的時(shí)候,只能指定特定的計(jì)算機(jī)或嵌入專門的采集卡,但有些設(shè)備根本就不支持PCI或ISA總線,這種內(nèi)置形式很容易受到PC機(jī)箱內(nèi)高頻干擾的影響,降低系統(tǒng)的采樣精度和穩(wěn)定性。如果能夠?qū)⒄麄€(gè)系統(tǒng)做成外置式,不僅能夠提高系統(tǒng)的采樣精度和穩(wěn)定性,還能增強(qiáng)系統(tǒng)的靈活性,同時(shí)還有利于系統(tǒng)的維護(hù)。
 
USB接口是實(shí)現(xiàn)虛擬儀器的一種更方便、更有效、更靈活的總線通訊式。USB總線是新一代總線技術(shù),使PC機(jī)配置新的硬件設(shè)備不用在打開(kāi)機(jī)蓋,且支持熱插拔技術(shù),給使用者以極大的方便。USB總線具有傳輸速率高、支持異步和等時(shí)傳輸特點(diǎn),并且可同時(shí)掛接127個(gè)獨(dú)立的USB設(shè)備,適合于外登式中高速、高精度采樣系統(tǒng)。USB技術(shù)是非贏利性的規(guī)范,已得到了廣泛工業(yè)支持。
 
1 系統(tǒng)整體設(shè)計(jì)
 
嵌入式處理器是由C8051F020單片機(jī)和USB總線芯片CH375組成。C8051F020單片機(jī)作為系統(tǒng)的CPU擔(dān)任著邏輯控制、數(shù)據(jù)采集和存儲(chǔ)管理的工作,接收測(cè)試分析對(duì)象上傳的數(shù)據(jù)源信號(hào),通過(guò)信號(hào)調(diào)理模塊和模數(shù)轉(zhuǎn)換模塊等控制功能實(shí)時(shí)采集數(shù)據(jù),由USB總線芯片CH375作為與上位機(jī)通信的接口將數(shù)據(jù)傳送給上位機(jī)監(jiān)控模塊。系統(tǒng)結(jié)構(gòu)如圖1所示。
 
基于嵌入式系統(tǒng) USB接口的虛擬示波器的開(kāi)發(fā)與實(shí)現(xiàn)
 
C8051F系列單片機(jī)是完全集成混合信號(hào)的系統(tǒng)級(jí)芯片,具有與8051兼容的控制器內(nèi)核,并與MCS-51指令集兼容;片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件。C8051F單片機(jī)采用流水線結(jié)構(gòu),機(jī)器周期由標(biāo)準(zhǔn)的12個(gè)系統(tǒng)時(shí)鐘降為1個(gè)系統(tǒng)時(shí)鐘,處理能力大大提高,峰值性能可 達(dá)25M IPS.C8051F單片機(jī)是能真正獨(dú)立工作的片上系統(tǒng)(SoC)。每個(gè)MCU都能有效地管理模擬外設(shè)和數(shù)字外設(shè),可以關(guān)閉單個(gè)或全部外設(shè)節(jié)省功耗。Flash存儲(chǔ)器還具有片上重新編程能力,可用于非易失性數(shù)據(jù)存儲(chǔ)。片內(nèi)JTAG調(diào)試支持觀察、修改儲(chǔ)存器和寄存器,支持?jǐn)帱c(diǎn)、單步、運(yùn)行、停機(jī)命令。調(diào)試時(shí)所有的模擬和數(shù)字外設(shè)都能全功能運(yùn)行。
 
C8051F最突出的改進(jìn)是引入了數(shù)字交叉開(kāi)關(guān)。這是一個(gè)大的數(shù)字開(kāi)關(guān)網(wǎng)絡(luò),允許將內(nèi)部數(shù)字系統(tǒng)資源分配給端口I/O 引腳。這種結(jié)構(gòu)可支持所有的功能組合,可通過(guò)設(shè)置交叉開(kāi)關(guān)控制寄存器,將片內(nèi)的計(jì)數(shù)器 /定時(shí)器、串行總線、硬件中斷、ADC轉(zhuǎn)換啟動(dòng)輸入及微控制器內(nèi)部的其他數(shù)字信號(hào)配置在端口I/O引腳,這就允許用戶根據(jù)自己的特定應(yīng)用選擇通用端口I/O和所需數(shù)字資源的組合。
 
USB模塊CH375是一個(gè)USB總線的通用設(shè)備接口芯片,無(wú)需編寫驅(qū)動(dòng)程序,內(nèi)置有USB通訊中的底層協(xié)議,完全滿足USB1.1標(biāo)準(zhǔn)。該模塊具有8位數(shù)據(jù)總線(D0~D7)、地址輸入(A0)、讀(RDJHJ)、寫(WRJHJ)、片選控制線(CSJHJ),以及中斷輸出(INTJHJ)等功能,可以方便地掛接到單片機(jī)的數(shù)據(jù)總線上。當(dāng)A0為低電平時(shí)選擇數(shù)據(jù)端口,單片機(jī)通過(guò)8位并口對(duì)CH375進(jìn)行讀寫數(shù)據(jù);當(dāng)AO為高電平時(shí)選擇命令端口,可以向其寫入命令。
 
在本地端,單片機(jī)對(duì)CH375的操作是采用命令加數(shù)據(jù)的I/O 操作方式,任何操作都是先發(fā)命令給CH375,然后執(zhí)行數(shù)據(jù)輸入輸出。CH375接收到上位機(jī)發(fā)送的數(shù)據(jù)或者發(fā)送完給上位機(jī)的數(shù)據(jù)后,以中斷方式通知單片機(jī)。各通道的USB模塊CH375在計(jì)算機(jī)應(yīng)用層與其本地端單片機(jī)之間提供了端對(duì)端的連接,統(tǒng)一采用數(shù)據(jù)加應(yīng)答方式進(jìn)行通信,所有的通信都由計(jì)算機(jī)應(yīng)用層發(fā)起,然后以接收到單片機(jī)的應(yīng)答結(jié)束。
 
2 嵌入式軟件設(shè)計(jì)
 
嵌入式軟件設(shè)計(jì)采用模塊化的程序設(shè)計(jì)思想,主要由4個(gè)部分組成,即A/D轉(zhuǎn)換子程序、數(shù)據(jù)采集及存儲(chǔ)子程序、USB通信子程序,以及D/A轉(zhuǎn)換子程序,并由嵌入式處理器進(jìn)行統(tǒng)一調(diào)配。這里主要介紹數(shù)據(jù)采集和USB通信子程序。
 
該虛擬示波器中使用了2種傳輸方式:控制傳輸和數(shù)據(jù)報(bào)告??刂苽鬏斢脕?lái)實(shí)現(xiàn)位于計(jì)算機(jī)上的USB總線驅(qū)動(dòng)程序及編寫的功能驅(qū)動(dòng)程序?qū)υO(shè)備的各種控制操作,根據(jù)計(jì)算機(jī)端軟件設(shè)定的增益、時(shí)基、觸發(fā)等參數(shù)控制數(shù)據(jù)采集模塊,需要計(jì)算機(jī)向單片機(jī)發(fā)送少量的控制信息。
 
數(shù)據(jù)報(bào)告用來(lái)完成將采集數(shù)據(jù)從設(shè)備傳送到計(jì)算機(jī)的功能,這屬于大批量數(shù)據(jù)的傳輸。如圖2所示,當(dāng)USB控制器從USB總線檢測(cè)到計(jì)算機(jī)啟動(dòng)的某一傳輸請(qǐng)求時(shí),USB控制器通過(guò)中斷方式將此請(qǐng)求通知單片機(jī)。單片機(jī)通過(guò)訪問(wèn)USB控制器的狀態(tài)寄存器和數(shù)據(jù)寄存器獲得與此次傳輸有關(guān)的各種參數(shù),并根據(jù)具體傳輸參數(shù),對(duì)USB控制器的控制寄存器和數(shù)據(jù)寄存器進(jìn)行相應(yīng)的操作。如果是上傳(上傳緩沖區(qū)的數(shù)據(jù)被計(jì)算機(jī)成功讀取),則釋放當(dāng)前USB緩沖區(qū),然后退出中斷程序;如果是下傳(下傳緩沖區(qū)成功接收到計(jì)算機(jī)發(fā)送的數(shù)據(jù) ),則從數(shù)據(jù)下傳緩沖區(qū)讀取數(shù)據(jù)塊。在分析接收到的數(shù)據(jù)塊時(shí),如果是數(shù)據(jù)請(qǐng)求的上傳命令,則準(zhǔn)備應(yīng)答數(shù)據(jù)(采集數(shù)據(jù) );單片機(jī)將采集數(shù)據(jù)寫入數(shù)據(jù)上傳緩沖區(qū)中,然后退出中斷程序,完成計(jì)算機(jī)的傳輸請(qǐng)求。該通訊方式具有數(shù)據(jù)自動(dòng)同步、程序設(shè)計(jì)簡(jiǎn)單、交互性和可控性較好等優(yōu)點(diǎn)。
 
基于嵌入式系統(tǒng) USB接口的虛擬示波器的開(kāi)發(fā)與實(shí)現(xiàn)
 
3 上位機(jī)軟件設(shè)計(jì)
 
上位機(jī)軟件主要功能是模擬一個(gè)示波器的界面,實(shí)現(xiàn)數(shù)據(jù)的顯示及滿足不同需要的分析功能,同時(shí)完成對(duì)數(shù)據(jù)采集硬件的參數(shù)設(shè)定。在這個(gè)設(shè)計(jì)中已實(shí)現(xiàn)了基本的功能,如圖3所示,包括波形顯示、數(shù)據(jù)保存、量程的自動(dòng)轉(zhuǎn)換和數(shù)據(jù)的深度分析(波形測(cè)量和頻譜分析),甚至能結(jié)合嵌入式系統(tǒng)硬件實(shí)現(xiàn)波形發(fā)生器等功能。
 
基于嵌入式系統(tǒng) USB接口的虛擬示波器的開(kāi)發(fā)與實(shí)現(xiàn)
 
上位PC機(jī)的人機(jī)界面是虛擬示波器與用戶的接口,直接關(guān)系到系統(tǒng)的可用性和方便性。人機(jī)界面程序主要是使用戶能夠方便地控制整個(gè)虛擬示波器的工作,并通過(guò)數(shù)據(jù)分析,使用戶能夠方便地選擇通道,采集頻率、增益等。上位機(jī)的人機(jī)界面采用VC++語(yǔ)言開(kāi)發(fā),在軟件中充分利用了類功能,將USB設(shè)備的啟動(dòng)函數(shù)、停止函數(shù)、數(shù)據(jù)讀取函數(shù)等各個(gè)函數(shù)全部整合到動(dòng)態(tài)鏈接庫(kù)USB.DLL中。將CH375芯片的驅(qū)動(dòng)程序、動(dòng)態(tài)鏈接庫(kù)拷貝到上位機(jī)中,利用CH375動(dòng)態(tài)鏈接庫(kù)DLL提供的API函數(shù)(設(shè)備管理API、數(shù)據(jù)傳輸API、中斷查詢API和直接控制API)對(duì)其進(jìn)行操作,數(shù)據(jù)傳輸API是最重要最常用的一組函數(shù),它提供了多種數(shù)據(jù)傳輸模式。
 
中斷查詢API一般用于USB設(shè)備使用到中斷傳輸?shù)膱?chǎng)合。直接控制API是用于CH375直接輸入輸出信號(hào),由設(shè)置、輸入和輸出3部分組成。這樣不但使軟件程序結(jié)構(gòu)清晰,方便閱讀,而且在需要時(shí)可以方便快捷地升級(jí)人機(jī)界面,無(wú)需大的改動(dòng)。使用動(dòng)態(tài)鏈接庫(kù)后,當(dāng)其他應(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è)界面如圖4所示。
 
基于嵌入式系統(tǒng) USB接口的虛擬示波器的開(kāi)發(fā)與實(shí)現(xiàn)
 
4 結(jié)束語(yǔ)
 
根據(jù)嵌入式系統(tǒng)USB接口的虛擬示波器的硬件和軟件設(shè)計(jì)方案,實(shí)現(xiàn)了該虛擬示波器數(shù)據(jù)傳輸、算法控制、顯示調(diào)試等基本功能。實(shí)踐表明,該系統(tǒng)性能良好,功能強(qiáng)大,體積小巧,使用簡(jiǎn)便,價(jià)格低廉,適合多種場(chǎng)合應(yīng)用,能為使用者建立了一個(gè)良好的使用平臺(tái)。
 
 
 
推薦閱讀:

一個(gè)工程師與電子制作的故事:數(shù)字示波器DIY設(shè)計(jì)
化繁為簡(jiǎn),結(jié)合實(shí)際解析示波器的原理及基本組成
示波器的分類簡(jiǎn)介都在這里,趕緊收藏吧!
基于單片機(jī)的通用示波器存儲(chǔ)功能擴(kuò)展設(shè)計(jì)
這就是無(wú)人機(jī)的痛點(diǎn) 就算技術(shù)再好也很難普及



 
要采購(gòu)示波器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉