新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的虛擬邏輯分析儀設(shè)計(jì)與實(shí)現(xiàn)

基于FPGA的虛擬邏輯分析儀設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

是一種通用數(shù)據(jù)域測(cè)試儀器。應(yīng)用在由中大規(guī)模數(shù)字集成電路組成的數(shù)字系統(tǒng)中,主要查找總線相關(guān)性故障,能以多種方式跟蹤與顯示總線上的數(shù)據(jù)流,是測(cè)量領(lǐng)域不可缺少的工具。

本文引用地址:http://butianyuan.cn/article/201706/349178.htm

隨著電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,與 PC機(jī)相結(jié)合,從而出現(xiàn)了虛擬。研發(fā)虛擬邏輯分析儀成為近年的一個(gè)新的發(fā)展方向,虛擬邏輯分析儀擴(kuò)展了邏輯分析儀的分析和計(jì)算能力,提高了性價(jià)比,且增強(qiáng)了儀器的通用性?,F(xiàn)場(chǎng)可編程邏輯器件,是一種可由用戶根據(jù)所設(shè)計(jì)的數(shù)字系統(tǒng)的要求,在現(xiàn)場(chǎng)由自己配置、定義的高密度專用數(shù)字集成電路。它具有設(shè)計(jì)方便、靈活、校驗(yàn)快和設(shè)計(jì)可重復(fù)改變的特點(diǎn)。本文討論了一種基于的虛擬邏輯分析儀的設(shè)計(jì),通過采用高性能的器件,再利用PC機(jī)的強(qiáng)大處理功能,配合圖形化語(yǔ)言開發(fā)實(shí)現(xiàn)。

1 總體設(shè)計(jì)

本文設(shè)計(jì)的虛擬邏輯分析儀主要由數(shù)據(jù)采樣存儲(chǔ)、數(shù)據(jù)顯示處理和接口三部分組成,其結(jié)構(gòu)框圖如圖1所示。其中FPGA內(nèi)部功能電路有數(shù)據(jù)鎖存器、指令識(shí)別電路、采樣時(shí)鐘電路、觸發(fā)識(shí)別電路、數(shù)據(jù)存儲(chǔ)電路等。

虛擬邏輯分析儀的工作原理為:來自外部的多路被測(cè)數(shù)字信號(hào)通過電壓比較器,與門限電平比較,得到標(biāo)準(zhǔn)數(shù)字信號(hào),連接到FPGA的I/O口。用戶根據(jù)分析數(shù)據(jù)的需求,通過PC 機(jī)上的軟面板,設(shè)置初始化指令(觸發(fā)方式、采樣頻率和存儲(chǔ)深度指令等),PC機(jī)將初始化指令通過串口發(fā)送給單片機(jī)的P1口,再由單片機(jī)傳給FPGA。然后 FPGA中的指令識(shí)別電路檢測(cè)指令,當(dāng)檢測(cè)到命令字后,將命令存入各自的指令寄存器中。采樣頻率控制信號(hào)輸出到采樣時(shí)鐘電路,由采樣時(shí)鐘電路生成各種頻率的時(shí)鐘信號(hào)提供給數(shù)據(jù)獲取單元,數(shù)據(jù)獲取單元根據(jù)時(shí)鐘信號(hào)進(jìn)行數(shù)據(jù)采樣并鎖存。同時(shí),采樣回來的數(shù)據(jù)經(jīng)過觸發(fā)識(shí)別電路,與觸發(fā)字比較,若匹配則發(fā)出存儲(chǔ)命令,數(shù)據(jù)存儲(chǔ)電路收到存儲(chǔ)命令之后控制SRAM進(jìn)行數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)存儲(chǔ)達(dá)到存儲(chǔ)深度,則通過串口返回存滿信號(hào)給PC機(jī)。此時(shí)PC機(jī)發(fā)出數(shù)據(jù)讀取指令,將SRAM中的數(shù)據(jù)讀到PC機(jī),由PC機(jī)對(duì)數(shù)據(jù)分析和處理后,以二進(jìn)制數(shù)字或波形圖的方式顯示在PC機(jī)屏幕上。

2 主要硬件模塊的設(shè)計(jì)

2.1 電平判別電路

電平判別電路由數(shù)字電位器和高速電壓比較器組成。由于被測(cè)電路可能工作在TTL、ECL或CMOS等不同的門限電平電路,本設(shè)計(jì)采用Xicor公司的32檔數(shù)字電位器X9511,對(duì)基準(zhǔn)電壓5V進(jìn)行精確分壓,通過增量按鍵/PU和減量按鍵/PD的操作,實(shí)現(xiàn)不同的門限電平輸出。本設(shè)計(jì)高速電壓比較器采用Linear Technology公司的四運(yùn)放集成芯片LT1721實(shí)現(xiàn)。為了信號(hào)的穩(wěn)定性和可靠性,在電壓比較器之前,先對(duì)被測(cè)信號(hào)進(jìn)行電壓跟隨。電平判別電路如圖2所示。

圖中只給出了2個(gè)通道的信號(hào)電平判別,其中V-REF為門限電平,放大器A作電壓跟隨器,放大器B作電壓比較器,IN0、IN1分別為第0、第1通道的被測(cè)輸入信號(hào),D0-IN、D1-IN為第0、第1通道輸出的標(biāo)準(zhǔn)數(shù)字信號(hào),提供給FPGA的數(shù)據(jù)鎖存器。

2.2 FPGA系統(tǒng)

本設(shè)計(jì)選用的FPGA是Altera 公司Cyclone系列的EP1C3T144C8。FPGA器件的內(nèi)部邏輯電路的設(shè)計(jì),采用可編程邏輯器件的開發(fā)語(yǔ)言Verilog HDL和開發(fā)環(huán)境Quartus II來實(shí)現(xiàn)。通過JTAG 接口可以對(duì) FPGA 在線編程、調(diào)試和測(cè)試。FPGA內(nèi)部實(shí)現(xiàn)的功能電路有數(shù)據(jù)鎖存器、指令識(shí)別電路、采樣時(shí)鐘電路、觸發(fā)識(shí)別電路和數(shù)據(jù)存儲(chǔ)電路等。各功能電路的關(guān)系如圖3所示。

(1)指令識(shí)別電路

指令識(shí)別電路的功能是按照預(yù)先定義FPGA和單片機(jī)之間的通信協(xié)議,識(shí)別由PC機(jī)發(fā)出的指令,當(dāng)識(shí)別到初始化指令時(shí)將指令進(jìn)行解析,并分別存入各指令寄存器中,產(chǎn)生采樣頻率控制信號(hào)、觸發(fā)方式控制信號(hào)、存儲(chǔ)深度控制信號(hào)等去控制FPGA其他功能電路。

(2)采樣時(shí)鐘電路

采樣時(shí)鐘電路用于選擇采樣頻率。本文設(shè)計(jì)的異步采樣提供四種采樣頻率,由40MHz有源晶振提供基準(zhǔn)時(shí)鐘送到FPGA的可編程分頻器,經(jīng)過可編程分頻電路之后產(chǎn)生40MHz、20MHz、10MHz和5MHz四種時(shí)鐘,輸出到時(shí)鐘選擇器。時(shí)鐘選擇器相當(dāng)于一個(gè)單刀四擲的模擬開關(guān),根據(jù)采樣頻率控制命令來控制某一路時(shí)鐘接通,輸出給采樣存儲(chǔ)模塊。

(3)觸發(fā)識(shí)別電路

觸發(fā)識(shí)別電路的作用是識(shí)別觸發(fā)并產(chǎn)生標(biāo)志信號(hào)。本設(shè)計(jì)提供了四種常用的觸發(fā)方式:隨機(jī)觸發(fā)、字觸發(fā)、通道觸發(fā)及延遲觸發(fā)。

觸發(fā)識(shí)別電路工作過程為:指令識(shí)別電路產(chǎn)生的觸發(fā)方式控制信號(hào),提供給觸發(fā)方式選擇器,觸發(fā)方式選擇器相當(dāng)于一個(gè)2-4譯碼器,根據(jù)觸發(fā)方式字使能對(duì)應(yīng)的觸發(fā)模塊,輸入的數(shù)據(jù)流在各功能觸發(fā)識(shí)別模塊中與用戶設(shè)置的觸發(fā)條件進(jìn)行比較,若數(shù)據(jù)流中出現(xiàn)所設(shè)定的觸發(fā)條件,則模塊會(huì)輸出觸發(fā)有效信號(hào),四個(gè)觸發(fā)模塊當(dāng)中,只要其中任意一個(gè)產(chǎn)生了觸發(fā)有效信號(hào),經(jīng)過與門都可以生成觸發(fā)標(biāo)志,控制數(shù)據(jù)采樣存儲(chǔ)。

(4)數(shù)據(jù)存儲(chǔ)電路

數(shù)據(jù)采樣回來之后,先經(jīng)過鎖存器鎖存,一旦觸發(fā)標(biāo)志有效,就根據(jù)采樣時(shí)鐘的頻率將鎖存器數(shù)據(jù)輸出到外接的SRAM。數(shù)據(jù)存儲(chǔ)電路控制SRAM的數(shù)據(jù)寫入有效,同時(shí)地址計(jì)數(shù)器的輸出遞增,這樣可以在時(shí)鐘到來時(shí),將數(shù)據(jù)存入SRAM的地址,當(dāng)下一個(gè)時(shí)鐘到來的時(shí)候,就進(jìn)行下一個(gè)數(shù)據(jù)的存儲(chǔ)。計(jì)數(shù)器的值遞增,達(dá)到系統(tǒng)所規(guī)定的存儲(chǔ)深度之后,返回一個(gè)中斷信號(hào)。PC機(jī)收到數(shù)據(jù)存滿的信號(hào)之后,便可以將數(shù)據(jù)讀回,再進(jìn)行相應(yīng)的分析、處理。

2.3 單片機(jī)及接口電路

FPGA芯片本身不帶有RS-232標(biāo)準(zhǔn)串行通信接口,本設(shè)計(jì)采用了ATMEL公司的單片機(jī)AT89S52作為PC機(jī)和FPGA之間的橋梁。它接收來自PC機(jī)的命令,如果是參數(shù)初始化和數(shù)據(jù)采集命令,則將其解釋給FPGA模塊;如果是數(shù)據(jù)讀取命令,則將SRAM中的數(shù)據(jù)讀回,并根據(jù)串口協(xié)議打包之后發(fā)給PC機(jī)。單片機(jī)和FPGA之間的數(shù)據(jù)傳輸根據(jù)單片機(jī)和FPGA之間的自定義通信協(xié)議執(zhí)行。

單片機(jī)與PC通信中,由于AT89S52的串行口輸入/輸出為TTL邏輯電平,而PC機(jī)內(nèi)部的RS-232C串行口用+12V和-12V電平方式,本文采用Maxim公司的MAX232芯片實(shí)現(xiàn)RS-232電平轉(zhuǎn)換。

3 上位機(jī)軟件設(shè)計(jì)

虛擬邏輯分析儀的數(shù)據(jù)處理和顯示功能由上位機(jī)通過虛擬儀器軟件開發(fā)平臺(tái)實(shí)現(xiàn)。

上位機(jī)的軟件設(shè)計(jì)分為三個(gè)模塊:控制模塊、數(shù)據(jù)傳輸模塊和顯示模塊。軟件設(shè)計(jì)框圖如圖4所示。

控制模塊主要完成對(duì)邏輯分析裝置的數(shù)據(jù)采集參數(shù)進(jìn)行設(shè)置。工作過程為:首先進(jìn)行初始化,并打開計(jì)算機(jī)串口;然后在參數(shù)設(shè)置部分設(shè)置采樣參數(shù);參數(shù)設(shè)置完成后點(diǎn)擊參數(shù)下載對(duì)應(yīng)的按鈕,程序?qū)⑥D(zhuǎn)入數(shù)據(jù)傳輸模塊。

數(shù)據(jù)傳輸模塊將設(shè)置好的參數(shù)通過串口傳給硬件部分,然后再接收由硬件返回的采樣數(shù)據(jù)。工作過程為:首先對(duì)串口進(jìn)行設(shè)置,再根據(jù)預(yù)先規(guī)定的協(xié)議對(duì)所傳輸?shù)臄?shù)據(jù)進(jìn)行配置,并將每個(gè)參數(shù)按照協(xié)議進(jìn)行二進(jìn)制編碼,然后用控件發(fā)送命令字。下位機(jī)單片機(jī)部分接收到命令字后進(jìn)行解析,并完成采樣工作。上位機(jī)發(fā)出指令之后處于檢測(cè)狀態(tài),當(dāng)檢測(cè)到串口收到數(shù)據(jù)時(shí)就開始接收返回?cái)?shù)據(jù),將下位機(jī)傳來的數(shù)據(jù)全部接收存儲(chǔ)在 RAM 內(nèi),然后將數(shù)據(jù)傳輸?shù)斤@示模塊。

顯示模塊對(duì) PC機(jī)接收到的數(shù)據(jù)進(jìn)行分析,然后將其二進(jìn)制數(shù)據(jù)列表或者顯示成通道波形的形式。二進(jìn)制數(shù)據(jù)序列表直接將存儲(chǔ)區(qū)的數(shù)據(jù)按順序顯示,可利用LabVIEW中的Bundle函數(shù)來實(shí)現(xiàn)。波形顯示方式要求把每個(gè)通道的數(shù)據(jù)獨(dú)立顯示,因此要求在數(shù)據(jù)處理時(shí),把每個(gè)存儲(chǔ)單元的數(shù)據(jù)按通道逐位取出,再把同一通道的數(shù)據(jù)合并,然后進(jìn)行波形顯示。可利用LabVIEW中的Digital Waveform Graph 來實(shí)現(xiàn)。

4 性能指標(biāo)及功能

在綜合考慮應(yīng)用需要和成本的前提下,本文設(shè)計(jì)的虛擬邏輯分析儀的主要性能指標(biāo)為:有8個(gè)高速采樣通道,最高可達(dá)40MHz采樣率,存儲(chǔ)深度達(dá)1 024KB,觸發(fā)方式有隨機(jī)觸發(fā)、通道觸發(fā)、延遲觸發(fā)及字觸發(fā)四種。其中多級(jí)字觸發(fā)具備四級(jí)序列字觸發(fā)和組合字觸發(fā)功能。對(duì)不同的被測(cè)系統(tǒng),提供相應(yīng)的門限電平。RS-232串行接口配合LabVIEW開發(fā)的虛擬操作平臺(tái),可實(shí)現(xiàn)數(shù)據(jù)在PC機(jī)上的實(shí)時(shí)顯示。

實(shí)現(xiàn)的主要功能包括:對(duì)所采集到的數(shù)據(jù)進(jìn)行波形和二進(jìn)制數(shù)據(jù)列表顯示;保存用戶所需要的顯示圖形;初始化命令,讓系統(tǒng)復(fù)位準(zhǔn)備;控制觸發(fā)方式和觸發(fā)字;控制采樣速率;控制存儲(chǔ)深度;選擇采樣時(shí)鐘。

經(jīng)測(cè)試表明,本文設(shè)計(jì)的虛擬邏輯分析儀具備了較強(qiáng)的邏輯分析能力,能滿足信號(hào)分析的要求。由于數(shù)據(jù)存儲(chǔ)部分中的數(shù)據(jù)鎖存器、指令識(shí)別電路、采樣時(shí)鐘電路、觸發(fā)識(shí)別電路、數(shù)據(jù)存儲(chǔ)電路等采用可編程邏輯器件FPGA來實(shí)現(xiàn),使硬件電路大為簡(jiǎn)化,提高了邏輯分析儀的可靠性,降低了成本,且功能易于擴(kuò)展,具有一定的教學(xué)和科研價(jià)值。



關(guān)鍵詞: 邏輯分析儀 LabVIEW FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉