孫 沛, 李 冶
(吉林大學 儀器科學與電氣工程學院, 吉林 長春 130026)
基于LabVIEW和FPGA的虛擬邏輯分析儀設計與測試
孫 沛, 李 冶
(吉林大學 儀器科學與電氣工程學院, 吉林 長春 130026)
為實現邏輯分析儀的普及應用和提高儀器的可維護性,設計了一種基于虛擬儀器技術和模塊化設計思想的虛擬邏輯分析儀。該虛擬邏輯分析儀以FPGA為硬件基礎,搭建測試電路,實現對16路數據的并行采集,完成毛刺檢測等功能,增強了擴展性。利用LabVIEW編寫用戶應用界面,實現軟件的控制流程、數據的處理分析等功能。給出了該虛擬邏輯分析儀在實際電路中的應用測試效果。
邏輯分析儀; 虛擬儀器; FPGA; LabVIEW
由于PC和中、大規模集成電路的發展,對數字系統的檢測和故障診斷的難度增加。傳統的示波器已不能滿足用戶需求,于是多通道高速采集的邏輯分析儀應運而生。但由于邏輯分析儀結構復雜,市面上其核心部件的價格大都非常昂貴,在實驗教學中普及使用有一定難度。虛擬邏輯分析儀是基于虛擬儀器技術,以軟件為核心,利用“軟件即儀器”的思想搭載外圍硬件測試電路,具有投入少、性價比高、更新周期短、實用性強的特點[1-2]。
基于LabVIEW和FPGA的虛擬邏輯分析儀硬件電路主要以ALTERA公司Cyclone系列的FPGA芯片EP1C3T144C8來搭建,儀器的整體電路邏輯控制則通過VHDL語言編程來實現。用基于圖形化編程環境的LabVIEW平臺編寫應用程序,實現良好的人機交互界面,提供用戶接口,使邏輯分析儀具有檢測以及存儲多路數據的功能[3]。
虛擬邏輯分析儀的總體設計結構如圖1所示。硬件部分主要包括數據采集模塊、FPGA模塊和MCU模塊;軟件部分主要有驅動模塊和LabVIEW模塊。數據通過采集模塊進入邏輯分析儀,經過選擇處理后,將剩余的有效數據存入存儲器中。

圖1 虛擬邏輯分析儀的總體框架
微處理器MCU模塊主要負責儀器初始化,包括向FPGA中的雙口RAM寫入配置信息,以及完成FPGA芯片和系統總線之間的通信、數據傳輸,控制相應的電路單元。FPGA模塊中的時鐘模塊控制數據采集速率,FIFO模塊將采集的數據暫存,通信模塊用以實現功能板卡MCU與主控板卡MCU之間通信,觸發模塊[4]通過觸發識別產生觸發信號。LabVIEW模塊負責完成功能設定以及數據的分析、處理和顯示。軟硬件間通過接口(驅動層)達到實時傳遞信息的功能。
2.1 探頭電路
數據采集模塊由探頭電路和延時電路組成。
探頭是數據采集模塊的最前端,是輸入信號進入邏輯分析儀的橋梁[5]。任何類型的探頭都不可避免存在自身阻抗,會影響被測數字電路整體的負載。為了彌補這個缺陷,減小對被測電路的影響,本設計選用延時少、響應速度快的TL3016作為電壓比較芯片。探頭電路如圖2所示。

圖2 探頭電路
阻抗匹配后,邏輯分析儀的輸入阻抗提高了。數據與門限電壓通過TL3016比較后輸出TTL電平,但是這個電平不能直接輸入到FPGA中,而是需要利用電平轉換器將其轉換為LVTTL電平。電平轉換器選用74LVC4245AD。為了滿足不同測試電路和不同電平的需求,設計了門限閾值可調的電路[6],通過可調電位器分壓來獲得電路需要的電壓閾值,范圍是-5 V~+5 V。
2.2 MCU模塊
微處理器MCU模塊中的程序包括通信和控制兩部分。通信部分用于實現邏輯分析儀和系統總線之間的信息交換;控制部分則負責將上位機的操作控制指令傳達給硬件電路中的相應模塊,完成儀器的初始化等。MCU型號的選取需要考慮其工作頻率、執行速率、控制功能、I/O口數量、封裝、成本等因素,本設計最終選用性價比較高的AT89S52。
2.3 FPGA模塊
硬件板卡的設計主要功能由FPGA來完成。其中關鍵模塊是數據緩存FIFO模塊和毛刺檢測電路。
2.3.1 FIFO模塊
邏輯分析儀在工作狀態中,需要對被測系統或者電路持續采樣,并將采集到的數據傳至上位機中。因為最大采樣速率比數據上傳至上位機的速率快得多,因此需要將采集到的數據暫時存儲在FPGA中,然后再通過總線上傳[7-8]。本設計的數據緩存在FPGA(EP1C3T144C8)中實現,每個通道都有一個FIFO(first in first out),通過VHDL語言編程實現,丟棄溢出的、緩存采集到的數據[9]。每個FIFO的深度2560、寬度8,大小是1 bit×4096 words,其輸入/輸出端口如圖3所示。儀器總的存儲深度可以達到128 KB,通過一個三態門來實現采集信號的復用。

圖3 FIFO的輸入/輸出端口圖
2.3.2 毛刺檢測電路
通常情況下,毛刺是數字系統出錯的原因,而邏輯分析儀的重要特征是檢測毛刺現象[10]。因此,在邏輯分析儀的16路采樣通道的每一通道都設置了毛刺檢測電路,如圖4所示。當控制信號check_or_sample_D[1]為高電平時,電路進行毛刺檢測;低電平時,數據D[1](第一路采樣信號)直接從d1_feedback輸出。

圖4 毛刺檢測電路
軟件功能由LabVIEW編程實現,其結構設計如圖5所示。工作流程為:首先檢測板卡槽號是否匹配,成功匹配后,調用DLL文件完成控制參數初始化,然后由數據操作單元完成數據的處理、波形顯示以及數據的存儲和回放。
3.1 儀器驅動調用
動態鏈接庫(dynamic link library,DLL)是可被多個程序共用的可執行文件,里面包含一些可共享的代碼和數據。DLL不僅可以節省內存、節省磁盤空間,還可以劃分成很多小模塊,有利于組件的分工和升級。它還支持多種語言程序,益于應用程序的國際化。本設計中的儀器驅動程序源代碼由VC++6.0編寫,然后生成DLL文件。在32位Windows系統下,LabVIEW應用軟件通過CLF(call library function)節點來調用這個文件,接收硬件板卡傳送過來的數據[11-12]。加載DLL文件后的CLF節點程序如圖6所示。

圖5 邏輯分析儀的軟件結構

圖6 CLF節點程序圖
3.2 數據處理
數據處理程序圖如圖7所示。首先選擇數據通道A、B或者AB,其中A、B通道分別代表前8通道和后8通道,每一個通道可以采集2 560個整型數據。將每一個整型數據轉換成布爾數組,所有數據轉換完之后形成一個二維布爾數組,然后再轉換成數字信號,以數字波形圖和二進制形式輸出顯示[12]。

圖7 數據處理程序圖
被測電路為單片機AT89S52最小系統驅動4個共陽極數碼管顯示的電路[13]。用虛擬邏輯分析儀檢驗數字芯片測試電路的輸出管腳,通過屏幕輸出波形和顯示情況來檢驗測試的正確性。電路中4個數碼管依次與單片機輸出口對應,且分別以不同的頻率循環顯示0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,設置的頻率分別是:fDS1=200 Hz(P1口),fDS2=5 Hz(P0口),fDS3=10 Hz(P3口),fDS4=100 Hz(P2口)。
將被測試電路的P1口和邏輯分析儀的探頭相連,即被測芯片的P1.0—P1.7管腳分別連接邏輯分析儀0號—7號的插針,邏輯分析儀的地線和被測芯片的地相連,從而測得單片機P1口的瞬時輸出如圖8所示。

圖8 P1口瞬時輸出序列
將圖8中左右游標移動到任一列并行的序列中,當數據字為00010001時,對應十六進制的A;繼續移動游標到下一列,數據字為11000001,對應于十六進制的b;同理,第三列并行序列為01100011,對應的是C。依次觀察,可以看出完全符合邏輯電平序列,證明測試的邏輯正確。
將邏輯分析儀的前8通道與P3口連接,后8通道與P2口連接。圖9為測得數據結果。由于設置的頻率P3口是P2口的10倍,從圖中可以看出其對應的電平寬度符合設定。圖9顯示的邏輯電平序列沒有干擾毛刺信號出現,也與預期測試方案的輸出一致。圖8和圖9兩組圖片都是在邏輯分析儀連續工作24 h以后截取的結果,充分證明了邏輯分析儀的穩定性。

圖9 16通道數據顯示
基于LabVIEW和FPGA的虛擬邏輯分析儀將儀器與計算機結合起來,將儀器模塊化,充分體現“軟件即儀器”的思想,縮短了儀器的開發周期,使設計過程更加簡單、調試和維護更加方便。利用虛擬儀器技術,用軟件來代替傳統儀器中的信號處理和顯示等部分硬件電路,減少了電路的復雜性,增加了用戶自定義的功能,大大降低了儀器的價格,有利于儀器的普及。由于該項設計通用性及擴展性很強,可以在現有的基礎上使功能進一步升級。
References)
[1] 林君.現代科學儀器及其發展趨勢[J].吉林大學學報(信息科學版),2002,20(1):3-7.
[2] 顧乃鈸,孫續.邏輯分析儀原理與應用[M].北京:人民郵電出版社,1989.
[3] 胡昆霖.基于VIIS-EM的數據域測試系統設計[D].長春:吉林大學,2013.
[4] 楊洋,邱彬,顧衛紅.邏輯分析儀觸發設計及應用的研究[J].現代科學儀器,2011,10(5):83-85.
[5] 許美蓉,胡仁杰,李娟.虛擬邏輯分析儀控制電路的設計與實現[J].電氣應用,2005(12):56-58.
[6] 代芬,漆海霞,俞龍.幾種常用邏輯電平電路的特點及應用[J].單片機與嵌入式應用系統,2005(5):5-7.
[7] 肖金球,馮翼,仲嘉纛.高速多路實時數據采集處理系統設[J].計算機工程,2004,30(24):180-182.
[8] 韋建榮.可重構測控系統的研究與設計[D].長春:吉林大學,2006.
[9] 馮春陽,張遂南,王會敏.通用非對稱FIFO結構設計[J].科學技術與工程,2009,9(18):5388-5391.
[10] 竇振卓.用FPGA實現虛擬邏輯狀態分析儀多種功能[J].電子測量技術,2006(2):121-122.
[11] 梁芳,楊光.基于LabVIEW的虛擬數字調制解調系統設計[J].電子測試,2010(2):43-45.
[12] 陳樹學,劉萱.LabVIEW寶典[M].北京:電子工業出版社,2011.
[13] 何玉松.單片機系統多任務實現方法[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
吉林省重點科技成果轉化項目(20130303015GX)
孫沛(1991—),女,山東棗莊,碩士研究生,主要研究方向為電子測量儀器、虛擬儀器
李冶(1958—),男,吉林長春,本科,教授,主要研究方向為虛擬儀器、嵌入式系統.
E-mail:lye@jlu.edu.cn
TM932
A
1002-4956(2017)5-0122-05