基于USB接口和FPGA控制的虛擬儀器設(shè)計(jì)
USB接口電路綜合多方面因素進(jìn)行考慮,選用Philips公司的專(zhuān)用USB接口芯片PDIUSBD12和AT-MEL公司的AT89S52單片機(jī)進(jìn)行連接來(lái)實(shí)現(xiàn)USB總線(xiàn)接口功能。PDIUSBD12芯片提供了與任何外部微控制器或微處理器連接的高速并行接口。對(duì)單片機(jī)而言,PDIUSBD12就像一個(gè)帶8位數(shù)據(jù)總線(xiàn)和地址總線(xiàn)的存儲(chǔ)器件。PDIUSBD12芯片與單片機(jī)連接有兩種方式:地址和數(shù)據(jù)總線(xiàn)復(fù)用模式和非復(fù)用模式。這兩種模式的主要區(qū)別是芯片的第10引腳ALE和第28引腳A0的連接有所不同。本系統(tǒng)采用地址和數(shù)據(jù)總線(xiàn)復(fù)用模式,將第10腳ALE連接到單片機(jī)的地址鎖存使能端ALE,該腳將地址/數(shù)據(jù)總線(xiàn)上的地址信息鎖存,并通過(guò)內(nèi)部邏輯產(chǎn)生選通信號(hào),來(lái)判斷總線(xiàn)上傳輸?shù)氖敲钸€是數(shù)據(jù),因此單片機(jī)與該芯片的通信采用如下的方式:一個(gè)偶數(shù)地址表示單片機(jī)對(duì)芯片進(jìn)行讀/寫(xiě)數(shù)據(jù),本設(shè)計(jì)中使用7F00H地址,一個(gè)奇數(shù)地址表示單片機(jī)對(duì)芯片寫(xiě)入操作指令,本設(shè)計(jì)中使用7F01H地址。在這種模式下,該芯片的28引腳A0可以忽略,通過(guò)上拉電阻接電源。PDIUSBD12與單片機(jī)的連接電路原理圖如圖6所示。本文引用地址:http://m.butianyuan.cn/article/163549.htm
3 系統(tǒng)軟件設(shè)計(jì)
應(yīng)用程序是指為了完成某項(xiàng)或某幾項(xiàng)特定任務(wù)開(kāi)發(fā)運(yùn)行于操作系統(tǒng)之上的計(jì)算機(jī)程序。本系統(tǒng)利用Borland C++ Builder 6.0開(kāi)發(fā)了一個(gè)具有基本硬件控制、數(shù)據(jù)傳輸、數(shù)據(jù)處理與顯示功能的應(yīng)用程序。該應(yīng)用程序主要包括顯示部分和控制面板部分。顯示部分可以將經(jīng)過(guò)一定處理的信號(hào)數(shù)據(jù)顯示出來(lái),并可對(duì)顯示方式做一定的調(diào)整??刂泼姘宀糠挚梢栽诳刂茢?shù)據(jù)采集硬件電路的啟動(dòng)、停止、采樣頻率以及存儲(chǔ)數(shù)據(jù)、頻譜分析等工作。
應(yīng)用軟件是整個(gè)系統(tǒng)的控制中心,所有的命令都是由這里發(fā)出的。主要由面板顯示部分、觸發(fā)采集數(shù)據(jù)與讀取數(shù)據(jù)部分、采樣頻率控制部分、頻譜分析部分、波形保存與回放部分、調(diào)節(jié)波形顯示部分等幾部分組成的。工作過(guò)程如下:軟件先發(fā)出開(kāi)始波形信號(hào)采集的命令,通過(guò)USB接口控制FPGA采集數(shù)據(jù),根據(jù)采樣頻率即可大概估計(jì)FPGA采集500個(gè)點(diǎn)所需要的時(shí)間,經(jīng)過(guò)適當(dāng)?shù)难訒r(shí)之后就控制從FPGA存儲(chǔ)器讀取采集的數(shù)據(jù),然后根據(jù)采樣頻率和信號(hào)的放大倍數(shù)對(duì)數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶幚?,最后就在面板上顯示出來(lái)。定時(shí)地重復(fù)上面的過(guò)程就能夠定時(shí)地更新顯示的波形,從而實(shí)時(shí)顯示信號(hào)的波形。
應(yīng)用程序中主循環(huán)程序是核心內(nèi)容,它主要是檢查事件標(biāo)志,然后進(jìn)入對(duì)應(yīng)的子程序進(jìn)行進(jìn)一步處理。本系統(tǒng)主要用到端點(diǎn)2的輸入與輸出兩個(gè)功能,利用端點(diǎn)2的輸入傳輸采集到的數(shù)據(jù),利用端點(diǎn)2的輸出讓單片機(jī)接受計(jì)算機(jī)的命令,例如啟動(dòng)采樣,改變采樣頻率等。主循環(huán)程序的流程圖如圖7所示。
最后開(kāi)發(fā)出具有多功能綜合測(cè)量應(yīng)用軟件界面如圖8所示。
4 結(jié) 語(yǔ)
本設(shè)計(jì)是在C++ Builder。的應(yīng)用軟件開(kāi)發(fā)環(huán)境下,由PDIUSBD12的USB接口芯片組成的USB接口電路及FPGA控制的數(shù)據(jù)采集系統(tǒng)做成的虛擬數(shù)字示波器。該系統(tǒng)能實(shí)現(xiàn)對(duì)信號(hào)幅度在±O.1~±25 V,頻率在0~1 MHz的信號(hào)進(jìn)行測(cè)量并顯示出波形。本設(shè)計(jì)研究的虛擬數(shù)字示波器具有普通示波器的顯示信號(hào)波形的功能,而且具有普通示波器所不具有的存儲(chǔ)和回放信號(hào)的波形、頻譜分析等功能。通過(guò)對(duì)應(yīng)用軟件進(jìn)行操作,可對(duì)信號(hào)波形進(jìn)行左右拉伸、上下拉伸、左右移動(dòng)和上下移動(dòng)。還可以對(duì)信號(hào)進(jìn)行頻譜分析、存儲(chǔ)和顯示信號(hào)的波形,調(diào)節(jié)信號(hào)的采樣頻率。實(shí)驗(yàn)結(jié)果表明該設(shè)計(jì)方案是可行的,并具有較好的應(yīng)用前景。
評(píng)論