孫 沛, 李 冶
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院, 吉林 長春 130026)
基于LabVIEW和FPGA的虛擬邏輯分析儀設(shè)計(jì)與測試
孫 沛, 李 冶
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院, 吉林 長春 130026)
為實(shí)現(xiàn)邏輯分析儀的普及應(yīng)用和提高儀器的可維護(hù)性,設(shè)計(jì)了一種基于虛擬儀器技術(shù)和模塊化設(shè)計(jì)思想的虛擬邏輯分析儀。該虛擬邏輯分析儀以FPGA為硬件基礎(chǔ),搭建測試電路,實(shí)現(xiàn)對16路數(shù)據(jù)的并行采集,完成毛刺檢測等功能,增強(qiáng)了擴(kuò)展性。利用LabVIEW編寫用戶應(yīng)用界面,實(shí)現(xiàn)軟件的控制流程、數(shù)據(jù)的處理分析等功能。給出了該虛擬邏輯分析儀在實(shí)際電路中的應(yīng)用測試效果。
邏輯分析儀; 虛擬儀器; FPGA; LabVIEW
由于PC和中、大規(guī)模集成電路的發(fā)展,對數(shù)字系統(tǒng)的檢測和故障診斷的難度增加。傳統(tǒng)的示波器已不能滿足用戶需求,于是多通道高速采集的邏輯分析儀應(yīng)運(yùn)而生。但由于邏輯分析儀結(jié)構(gòu)復(fù)雜,市面上其核心部件的價(jià)格大都非常昂貴,在實(shí)驗(yàn)教學(xué)中普及使用有一定難度。虛擬邏輯分析儀是基于虛擬儀器技術(shù),以軟件為核心,利用“軟件即儀器”的思想搭載外圍硬件測試電路,具有投入少、性價(jià)比高、更新周期短、實(shí)用性強(qiáng)的特點(diǎn)[1-2]。
基于LabVIEW和FPGA的虛擬邏輯分析儀硬件電路主要以ALTERA公司Cyclone系列的FPGA芯片EP1C3T144C8來搭建,儀器的整體電路邏輯控制則通過VHDL語言編程來實(shí)現(xiàn)。用基于圖形化編程環(huán)境的LabVIEW平臺編寫應(yīng)用程序,實(shí)現(xiàn)良好的人機(jī)交互界面,提供用戶接口,使邏輯分析儀具有檢測以及存儲多路數(shù)據(jù)的功能[3]。
虛擬邏輯分析儀的總體設(shè)計(jì)結(jié)構(gòu)如圖1所示。硬件部分主要包括數(shù)據(jù)采集模塊、FPGA模塊和MCU模塊;軟件部分主要有驅(qū)動(dòng)模塊和LabVIEW模塊。數(shù)據(jù)通過采集模塊進(jìn)入邏輯分析儀,經(jīng)過選擇處理后,將剩余的有效數(shù)據(jù)存入存儲器中。
圖1 虛擬邏輯分析儀的總體框架
微處理器MCU模塊主要負(fù)責(zé)儀器初始化,包括向FPGA中的雙口RAM寫入配置信息,以及完成FPGA芯片和系統(tǒng)總線之間的通信、數(shù)據(jù)傳輸,控制相應(yīng)的電路單元。FPGA模塊中的時(shí)鐘模塊控制數(shù)據(jù)采集速率,FIFO模塊將采集的數(shù)據(jù)暫存,通信模塊用以實(shí)現(xiàn)功能板卡MCU與主控板卡MCU之間通信,觸發(fā)模塊[4]通過觸發(fā)識別產(chǎn)生觸發(fā)信號。LabVIEW模塊負(fù)責(zé)完成功能設(shè)定以及數(shù)據(jù)的分析、處理和顯示。軟硬件間通過接口(驅(qū)動(dòng)層)達(dá)到實(shí)時(shí)傳遞信息的功能。
2.1 探頭電路
數(shù)據(jù)采集模塊由探頭電路和延時(shí)電路組成。
探頭是數(shù)據(jù)采集模塊的最前端,是輸入信號進(jìn)入邏輯分析儀的橋梁[5]。任何類型的探頭都不可避免存在自身阻抗,會影響被測數(shù)字電路整體的負(fù)載。為了彌補(bǔ)這個(gè)缺陷,減小對被測電路的影響,本設(shè)計(jì)選用延時(shí)少、響應(yīng)速度快的TL3016作為電壓比較芯片。探頭電路如圖2所示。
圖2 探頭電路
阻抗匹配后,邏輯分析儀的輸入阻抗提高了。數(shù)據(jù)與門限電壓通過TL3016比較后輸出TTL電平,但是這個(gè)電平不能直接輸入到FPGA中,而是需要利用電平轉(zhuǎn)換器將其轉(zhuǎn)換為LVTTL電平。電平轉(zhuǎn)換器選用74LVC4245AD。為了滿足不同測試電路和不同電平的需求,設(shè)計(jì)了門限閾值可調(diào)的電路[6],通過可調(diào)電位器分壓來獲得電路需要的電壓閾值,范圍是-5 V~+5 V。
2.2 MCU模塊
微處理器MCU模塊中的程序包括通信和控制兩部分。通信部分用于實(shí)現(xiàn)邏輯分析儀和系統(tǒng)總線之間的信息交換;控制部分則負(fù)責(zé)將上位機(jī)的操作控制指令傳達(dá)給硬件電路中的相應(yīng)模塊,完成儀器的初始化等。MCU型號的選取需要考慮其工作頻率、執(zhí)行速率、控制功能、I/O口數(shù)量、封裝、成本等因素,本設(shè)計(jì)最終選用性價(jià)比較高的AT89S52。
2.3 FPGA模塊
硬件板卡的設(shè)計(jì)主要功能由FPGA來完成。其中關(guān)鍵模塊是數(shù)據(jù)緩存FIFO模塊和毛刺檢測電路。
2.3.1 FIFO模塊
邏輯分析儀在工作狀態(tài)中,需要對被測系統(tǒng)或者電路持續(xù)采樣,并將采集到的數(shù)據(jù)傳至上位機(jī)中。因?yàn)樽畲蟛蓸铀俾时葦?shù)據(jù)上傳至上位機(jī)的速率快得多,因此需要將采集到的數(shù)據(jù)暫時(shí)存儲在FPGA中,然后再通過總線上傳[7-8]。本設(shè)計(jì)的數(shù)據(jù)緩存在FPGA(EP1C3T144C8)中實(shí)現(xiàn),每個(gè)通道都有一個(gè)FIFO(first in first out),通過VHDL語言編程實(shí)現(xiàn),丟棄溢出的、緩存采集到的數(shù)據(jù)[9]。每個(gè)FIFO的深度2560、寬度8,大小是1 bit×4096 words,其輸入/輸出端口如圖3所示。儀器總的存儲深度可以達(dá)到128 KB,通過一個(gè)三態(tài)門來實(shí)現(xiàn)采集信號的復(fù)用。
圖3 FIFO的輸入/輸出端口圖
2.3.2 毛刺檢測電路
通常情況下,毛刺是數(shù)字系統(tǒng)出錯(cuò)的原因,而邏輯分析儀的重要特征是檢測毛刺現(xiàn)象[10]。因此,在邏輯分析儀的16路采樣通道的每一通道都設(shè)置了毛刺檢測電路,如圖4所示。當(dāng)控制信號check_or_sample_D[1]為高電平時(shí),電路進(jìn)行毛刺檢測;低電平時(shí),數(shù)據(jù)D[1](第一路采樣信號)直接從d1_feedback輸出。
圖4 毛刺檢測電路
軟件功能由LabVIEW編程實(shí)現(xiàn),其結(jié)構(gòu)設(shè)計(jì)如圖5所示。工作流程為:首先檢測板卡槽號是否匹配,成功匹配后,調(diào)用DLL文件完成控制參數(shù)初始化,然后由數(shù)據(jù)操作單元完成數(shù)據(jù)的處理、波形顯示以及數(shù)據(jù)的存儲和回放。
3.1 儀器驅(qū)動(dòng)調(diào)用
動(dòng)態(tài)鏈接庫(dynamic link library,DLL)是可被多個(gè)程序共用的可執(zhí)行文件,里面包含一些可共享的代碼和數(shù)據(jù)。DLL不僅可以節(jié)省內(nèi)存、節(jié)省磁盤空間,還可以劃分成很多小模塊,有利于組件的分工和升級。它還支持多種語言程序,益于應(yīng)用程序的國際化。本設(shè)計(jì)中的儀器驅(qū)動(dòng)程序源代碼由VC++6.0編寫,然后生成DLL文件。在32位Windows系統(tǒng)下,LabVIEW應(yīng)用軟件通過CLF(call library function)節(jié)點(diǎn)來調(diào)用這個(gè)文件,接收硬件板卡傳送過來的數(shù)據(jù)[11-12]。加載DLL文件后的CLF節(jié)點(diǎn)程序如圖6所示。
圖5 邏輯分析儀的軟件結(jié)構(gòu)
圖6 CLF節(jié)點(diǎn)程序圖
3.2 數(shù)據(jù)處理
數(shù)據(jù)處理程序圖如圖7所示。首先選擇數(shù)據(jù)通道A、B或者AB,其中A、B通道分別代表前8通道和后8通道,每一個(gè)通道可以采集2 560個(gè)整型數(shù)據(jù)。將每一個(gè)整型數(shù)據(jù)轉(zhuǎn)換成布爾數(shù)組,所有數(shù)據(jù)轉(zhuǎn)換完之后形成一個(gè)二維布爾數(shù)組,然后再轉(zhuǎn)換成數(shù)字信號,以數(shù)字波形圖和二進(jìn)制形式輸出顯示[12]。
圖7 數(shù)據(jù)處理程序圖
被測電路為單片機(jī)AT89S52最小系統(tǒng)驅(qū)動(dòng)4個(gè)共陽極數(shù)碼管顯示的電路[13]。用虛擬邏輯分析儀檢驗(yàn)數(shù)字芯片測試電路的輸出管腳,通過屏幕輸出波形和顯示情況來檢驗(yàn)測試的正確性。電路中4個(gè)數(shù)碼管依次與單片機(jī)輸出口對應(yīng),且分別以不同的頻率循環(huán)顯示0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,設(shè)置的頻率分別是:fDS1=200 Hz(P1口),fDS2=5 Hz(P0口),fDS3=10 Hz(P3口),fDS4=100 Hz(P2口)。
將被測試電路的P1口和邏輯分析儀的探頭相連,即被測芯片的P1.0—P1.7管腳分別連接邏輯分析儀0號—7號的插針,邏輯分析儀的地線和被測芯片的地相連,從而測得單片機(jī)P1口的瞬時(shí)輸出如圖8所示。
圖8 P1口瞬時(shí)輸出序列
將圖8中左右游標(biāo)移動(dòng)到任一列并行的序列中,當(dāng)數(shù)據(jù)字為00010001時(shí),對應(yīng)十六進(jìn)制的A;繼續(xù)移動(dòng)游標(biāo)到下一列,數(shù)據(jù)字為11000001,對應(yīng)于十六進(jìn)制的b;同理,第三列并行序列為01100011,對應(yīng)的是C。依次觀察,可以看出完全符合邏輯電平序列,證明測試的邏輯正確。
將邏輯分析儀的前8通道與P3口連接,后8通道與P2口連接。圖9為測得數(shù)據(jù)結(jié)果。由于設(shè)置的頻率P3口是P2口的10倍,從圖中可以看出其對應(yīng)的電平寬度符合設(shè)定。圖9顯示的邏輯電平序列沒有干擾毛刺信號出現(xiàn),也與預(yù)期測試方案的輸出一致。圖8和圖9兩組圖片都是在邏輯分析儀連續(xù)工作24 h以后截取的結(jié)果,充分證明了邏輯分析儀的穩(wěn)定性。
圖9 16通道數(shù)據(jù)顯示
基于LabVIEW和FPGA的虛擬邏輯分析儀將儀器與計(jì)算機(jī)結(jié)合起來,將儀器模塊化,充分體現(xiàn)“軟件即儀器”的思想,縮短了儀器的開發(fā)周期,使設(shè)計(jì)過程更加簡單、調(diào)試和維護(hù)更加方便。利用虛擬儀器技術(shù),用軟件來代替?zhèn)鹘y(tǒng)儀器中的信號處理和顯示等部分硬件電路,減少了電路的復(fù)雜性,增加了用戶自定義的功能,大大降低了儀器的價(jià)格,有利于儀器的普及。由于該項(xiàng)設(shè)計(jì)通用性及擴(kuò)展性很強(qiáng),可以在現(xiàn)有的基礎(chǔ)上使功能進(jìn)一步升級。
References)
[1] 林君.現(xiàn)代科學(xué)儀器及其發(fā)展趨勢[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2002,20(1):3-7.
[2] 顧乃鈸,孫續(xù).邏輯分析儀原理與應(yīng)用[M].北京:人民郵電出版社,1989.
[3] 胡昆霖.基于VIIS-EM的數(shù)據(jù)域測試系統(tǒng)設(shè)計(jì)[D].長春:吉林大學(xué),2013.
[4] 楊洋,邱彬,顧衛(wèi)紅.邏輯分析儀觸發(fā)設(shè)計(jì)及應(yīng)用的研究[J].現(xiàn)代科學(xué)儀器,2011,10(5):83-85.
[5] 許美蓉,胡仁杰,李娟.虛擬邏輯分析儀控制電路的設(shè)計(jì)與實(shí)現(xiàn)[J].電氣應(yīng)用,2005(12):56-58.
[6] 代芬,漆海霞,俞龍.幾種常用邏輯電平電路的特點(diǎn)及應(yīng)用[J].單片機(jī)與嵌入式應(yīng)用系統(tǒng),2005(5):5-7.
[7] 肖金球,馮翼,仲嘉纛.高速多路實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)設(shè)[J].計(jì)算機(jī)工程,2004,30(24):180-182.
[8] 韋建榮.可重構(gòu)測控系統(tǒng)的研究與設(shè)計(jì)[D].長春:吉林大學(xué),2006.
[9] 馮春陽,張遂南,王會敏.通用非對稱FIFO結(jié)構(gòu)設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2009,9(18):5388-5391.
[10] 竇振卓.用FPGA實(shí)現(xiàn)虛擬邏輯狀態(tài)分析儀多種功能[J].電子測量技術(shù),2006(2):121-122.
[11] 梁芳,楊光.基于LabVIEW的虛擬數(shù)字調(diào)制解調(diào)系統(tǒng)設(shè)計(jì)[J].電子測試,2010(2):43-45.
[12] 陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[13] 何玉松.單片機(jī)系統(tǒng)多任務(wù)實(shí)現(xiàn)方法[J].電子設(shè)計(jì)工程,2007,15(4):7-10.
Design and testing of virtual logic analyzer based on LabVIEW and FPGA
Sun Pei, Li Ye
(School of Instrumentation & Electrical Engineering, Jilin University,Changchun 130026, China)
In order to effectively realize the application of logic analyzer and improve its maintainability, a virtual logic analyzer based on virtual instrument technology and modular design idea is designed for the experimental teaching application in colleges and universities. It uses the FPGA as the hardware foundation, builds the test circuit, realizes the parallel acquisition of the 16-channel data, completes the glitch detection and other functions, enhances the scalability, by using LabVIEW to write the user application interface, and realizes the software control flow, the data processing analysis and other function. Finally, the application testing effect of the virtual logic analyzer in the practical circuit is given.
logic analyzer; virtual instrument; FPGA; LabVIEW
10.16791/j.cnki.sjg.2017.05.030
2016-11-10
吉林省重點(diǎn)科技成果轉(zhuǎn)化項(xiàng)目(20130303015GX)
孫沛(1991—),女,山東棗莊,碩士研究生,主要研究方向?yàn)殡娮訙y量儀器、虛擬儀器
李冶(1958—),男,吉林長春,本科,教授,主要研究方向?yàn)樘摂M儀器、嵌入式系統(tǒng).
E-mail:lye@jlu.edu.cn
TM932
A
1002-4956(2017)5-0122-05