基于FPGA的虛擬邏輯分析儀設計與實現(xiàn)
邏輯分析儀是一種通用數(shù)據(jù)域測試儀器。應用在由中大規(guī)模數(shù)字集成電路組成的數(shù)字系統(tǒng)中,主要查找總線相關性故障,能以多種方式跟蹤與顯示總線上的數(shù)據(jù)流,是測量領域不可缺少的工具。
本文引用地址:http://www.ex-cimer.com/article/201706/349178.htm隨著電子技術(shù)和計算機技術(shù)的發(fā)展,邏輯分析儀與 PC機相結(jié)合,從而出現(xiàn)了虛擬邏輯分析儀。研發(fā)虛擬邏輯分析儀成為近年的一個新的發(fā)展方向,虛擬邏輯分析儀擴展了邏輯分析儀的分析和計算能力,提高了性價比,且增強了儀器的通用性。現(xiàn)場可編程邏輯器件FPGA,是一種可由用戶根據(jù)所設計的數(shù)字系統(tǒng)的要求,在現(xiàn)場由自己配置、定義的高密度專用數(shù)字集成電路。它具有設計方便、靈活、校驗快和設計可重復改變的特點。本文討論了一種基于FPGA的虛擬邏輯分析儀的設計,通過采用高性能的FPGA器件,再利用PC機的強大處理功能,配合LabVIEW圖形化語言開發(fā)實現(xiàn)。
1 總體設計
本文設計的虛擬邏輯分析儀主要由數(shù)據(jù)采樣存儲、數(shù)據(jù)顯示處理和接口三部分組成,其結(jié)構(gòu)框圖如圖1所示。其中FPGA內(nèi)部功能電路有數(shù)據(jù)鎖存器、指令識別電路、采樣時鐘電路、觸發(fā)識別電路、數(shù)據(jù)存儲電路等。
虛擬邏輯分析儀的工作原理為:來自外部的多路被測數(shù)字信號通過電壓比較器,與門限電平比較,得到標準數(shù)字信號,連接到FPGA的I/O口。用戶根據(jù)分析數(shù)據(jù)的需求,通過PC 機上的軟面板,設置初始化指令(觸發(fā)方式、采樣頻率和存儲深度指令等),PC機將初始化指令通過串口發(fā)送給單片機的P1口,再由單片機傳給FPGA。然后 FPGA中的指令識別電路檢測指令,當檢測到命令字后,將命令存入各自的指令寄存器中。采樣頻率控制信號輸出到采樣時鐘電路,由采樣時鐘電路生成各種頻率的時鐘信號提供給數(shù)據(jù)獲取單元,數(shù)據(jù)獲取單元根據(jù)時鐘信號進行數(shù)據(jù)采樣并鎖存。同時,采樣回來的數(shù)據(jù)經(jīng)過觸發(fā)識別電路,與觸發(fā)字比較,若匹配則發(fā)出存儲命令,數(shù)據(jù)存儲電路收到存儲命令之后控制SRAM進行數(shù)據(jù)存儲。數(shù)據(jù)存儲達到存儲深度,則通過串口返回存滿信號給PC機。此時PC機發(fā)出數(shù)據(jù)讀取指令,將SRAM中的數(shù)據(jù)讀到PC機,由PC機對數(shù)據(jù)分析和處理后,以二進制數(shù)字或波形圖的方式顯示在PC機屏幕上。
2 主要硬件模塊的設計
2.1 電平判別電路
電平判別電路由數(shù)字電位器和高速電壓比較器組成。由于被測電路可能工作在TTL、ECL或CMOS等不同的門限電平電路,本設計采用Xicor公司的32檔數(shù)字電位器X9511,對基準電壓5V進行精確分壓,通過增量按鍵/PU和減量按鍵/PD的操作,實現(xiàn)不同的門限電平輸出。本設計高速電壓比較器采用Linear Technology公司的四運放集成芯片LT1721實現(xiàn)。為了信號的穩(wěn)定性和可靠性,在電壓比較器之前,先對被測信號進行電壓跟隨。電平判別電路如圖2所示。
圖中只給出了2個通道的信號電平判別,其中V-REF為門限電平,放大器A作電壓跟隨器,放大器B作電壓比較器,IN0、IN1分別為第0、第1通道的被測輸入信號,D0-IN、D1-IN為第0、第1通道輸出的標準數(shù)字信號,提供給FPGA的數(shù)據(jù)鎖存器。
2.2 FPGA系統(tǒng)
本設計選用的FPGA是Altera 公司Cyclone系列的EP1C3T144C8。FPGA器件的內(nèi)部邏輯電路的設計,采用可編程邏輯器件的開發(fā)語言Verilog HDL和開發(fā)環(huán)境Quartus II來實現(xiàn)。通過JTAG 接口可以對 FPGA 在線編程、調(diào)試和測試。FPGA內(nèi)部實現(xiàn)的功能電路有數(shù)據(jù)鎖存器、指令識別電路、采樣時鐘電路、觸發(fā)識別電路和數(shù)據(jù)存儲電路等。各功能電路的關系如圖3所示。
(1)指令識別電路
指令識別電路的功能是按照預先定義FPGA和單片機之間的通信協(xié)議,識別由PC機發(fā)出的指令,當識別到初始化指令時將指令進行解析,并分別存入各指令寄存器中,產(chǎn)生采樣頻率控制信號、觸發(fā)方式控制信號、存儲深度控制信號等去控制FPGA其他功能電路。
(2)采樣時鐘電路
采樣時鐘電路用于選擇采樣頻率。本文設計的異步采樣提供四種采樣頻率,由40MHz有源晶振提供基準時鐘送到FPGA的可編程分頻器,經(jīng)過可編程分頻電路之后產(chǎn)生40MHz、20MHz、10MHz和5MHz四種時鐘,輸出到時鐘選擇器。時鐘選擇器相當于一個單刀四擲的模擬開關,根據(jù)采樣頻率控制命令來控制某一路時鐘接通,輸出給采樣存儲模塊。
(3)觸發(fā)識別電路
觸發(fā)識別電路的作用是識別觸發(fā)并產(chǎn)生標志信號。本設計提供了四種常用的觸發(fā)方式:隨機觸發(fā)、字觸發(fā)、通道觸發(fā)及延遲觸發(fā)。
觸發(fā)識別電路工作過程為:指令識別電路產(chǎn)生的觸發(fā)方式控制信號,提供給觸發(fā)方式選擇器,觸發(fā)方式選擇器相當于一個2-4譯碼器,根據(jù)觸發(fā)方式字使能對應的觸發(fā)模塊,輸入的數(shù)據(jù)流在各功能觸發(fā)識別模塊中與用戶設置的觸發(fā)條件進行比較,若數(shù)據(jù)流中出現(xiàn)所設定的觸發(fā)條件,則模塊會輸出觸發(fā)有效信號,四個觸發(fā)模塊當中,只要其中任意一個產(chǎn)生了觸發(fā)有效信號,經(jīng)過與門都可以生成觸發(fā)標志,控制數(shù)據(jù)采樣存儲。
(4)數(shù)據(jù)存儲電路
數(shù)據(jù)采樣回來之后,先經(jīng)過鎖存器鎖存,一旦觸發(fā)標志有效,就根據(jù)采樣時鐘的頻率將鎖存器數(shù)據(jù)輸出到外接的SRAM。數(shù)據(jù)存儲電路控制SRAM的數(shù)據(jù)寫入有效,同時地址計數(shù)器的輸出遞增,這樣可以在時鐘到來時,將數(shù)據(jù)存入SRAM的地址,當下一個時鐘到來的時候,就進行下一個數(shù)據(jù)的存儲。計數(shù)器的值遞增,達到系統(tǒng)所規(guī)定的存儲深度之后,返回一個中斷信號。PC機收到數(shù)據(jù)存滿的信號之后,便可以將數(shù)據(jù)讀回,再進行相應的分析、處理。
2.3 單片機及接口電路
FPGA芯片本身不帶有RS-232標準串行通信接口,本設計采用了ATMEL公司的單片機AT89S52作為PC機和FPGA之間的橋梁。它接收來自PC機的命令,如果是參數(shù)初始化和數(shù)據(jù)采集命令,則將其解釋給FPGA模塊;如果是數(shù)據(jù)讀取命令,則將SRAM中的數(shù)據(jù)讀回,并根據(jù)串口協(xié)議打包之后發(fā)給PC機。單片機和FPGA之間的數(shù)據(jù)傳輸根據(jù)單片機和FPGA之間的自定義通信協(xié)議執(zhí)行。
單片機與PC通信中,由于AT89S52的串行口輸入/輸出為TTL邏輯電平,而PC機內(nèi)部的RS-232C串行口用+12V和-12V電平方式,本文采用Maxim公司的MAX232芯片實現(xiàn)RS-232電平轉(zhuǎn)換。
3 上位機軟件設計
虛擬邏輯分析儀的數(shù)據(jù)處理和顯示功能由上位機通過虛擬儀器軟件開發(fā)平臺LabVIEW實現(xiàn)。
上位機的軟件設計分為三個模塊:控制模塊、數(shù)據(jù)傳輸模塊和顯示模塊。軟件設計框圖如圖4所示。
控制模塊主要完成對邏輯分析裝置的數(shù)據(jù)采集參數(shù)進行設置。工作過程為:首先進行初始化,并打開計算機串口;然后在參數(shù)設置部分設置采樣參數(shù);參數(shù)設置完成后點擊參數(shù)下載對應的按鈕,程序?qū)⑥D(zhuǎn)入數(shù)據(jù)傳輸模塊。
數(shù)據(jù)傳輸模塊將設置好的參數(shù)通過串口傳給硬件部分,然后再接收由硬件返回的采樣數(shù)據(jù)。工作過程為:首先對串口進行設置,再根據(jù)預先規(guī)定的協(xié)議對所傳輸?shù)臄?shù)據(jù)進行配置,并將每個參數(shù)按照協(xié)議進行二進制編碼,然后用LabVIEW控件發(fā)送命令字。下位機單片機部分接收到命令字后進行解析,并完成采樣工作。上位機發(fā)出指令之后處于檢測狀態(tài),當檢測到串口收到數(shù)據(jù)時就開始接收返回數(shù)據(jù),將下位機傳來的數(shù)據(jù)全部接收存儲在 RAM 內(nèi),然后將數(shù)據(jù)傳輸?shù)斤@示模塊。
顯示模塊對 PC機接收到的數(shù)據(jù)進行分析,然后將其二進制數(shù)據(jù)列表或者顯示成通道波形的形式。二進制數(shù)據(jù)序列表直接將存儲區(qū)的數(shù)據(jù)按順序顯示,可利用LabVIEW中的Bundle函數(shù)來實現(xiàn)。波形顯示方式要求把每個通道的數(shù)據(jù)獨立顯示,因此要求在數(shù)據(jù)處理時,把每個存儲單元的數(shù)據(jù)按通道逐位取出,再把同一通道的數(shù)據(jù)合并,然后進行波形顯示。可利用LabVIEW中的Digital Waveform Graph 來實現(xiàn)。
4 性能指標及功能
在綜合考慮應用需要和成本的前提下,本文設計的虛擬邏輯分析儀的主要性能指標為:有8個高速采樣通道,最高可達40MHz采樣率,存儲深度達1 024KB,觸發(fā)方式有隨機觸發(fā)、通道觸發(fā)、延遲觸發(fā)及字觸發(fā)四種。其中多級字觸發(fā)具備四級序列字觸發(fā)和組合字觸發(fā)功能。對不同的被測系統(tǒng),提供相應的門限電平。RS-232串行接口配合LabVIEW開發(fā)的虛擬操作平臺,可實現(xiàn)數(shù)據(jù)在PC機上的實時顯示。
實現(xiàn)的主要功能包括:對所采集到的數(shù)據(jù)進行波形和二進制數(shù)據(jù)列表顯示;保存用戶所需要的顯示圖形;初始化命令,讓系統(tǒng)復位準備;控制觸發(fā)方式和觸發(fā)字;控制采樣速率;控制存儲深度;選擇采樣時鐘。
經(jīng)測試表明,本文設計的虛擬邏輯分析儀具備了較強的邏輯分析能力,能滿足信號分析的要求。由于數(shù)據(jù)存儲部分中的數(shù)據(jù)鎖存器、指令識別電路、采樣時鐘電路、觸發(fā)識別電路、數(shù)據(jù)存儲電路等采用可編程邏輯器件FPGA來實現(xiàn),使硬件電路大為簡化,提高了邏輯分析儀的可靠性,降低了成本,且功能易于擴展,具有一定的教學和科研價值。
評論