文獻標識碼: A
文章編號: 0258-7998(2012)11-0091-03
邏輯分析儀是一種檢測數字化設備信號的儀器,主要應用于跟蹤與分析數字系統的數據流,能對其信號進行采樣、存儲、分析及顯示。根據硬件設備設計上的差異,目前市面上邏輯分析儀大致上可分為獨立式邏輯分析儀和需結合電腦的PC-based卡式虛擬邏輯分析儀。獨立式邏輯分析儀已發展為相當高標準的產品,目前國外最具代表性的美國Agilent公司和Tektronics公司,在高端獨立式邏輯分析儀方面仍占有絕大部分市場份額,并開發了卡式虛擬邏輯分析,用以更好地占領市場。國內邏輯分析儀制造研發起步較晚,在獨立式邏輯分析儀的研發和生產上缺乏經驗,特別是國內精密機械制造業的整體水平的限制,而在卡式虛擬邏輯分析儀方面,絕大部分功能不受制造業水平的限制,故國內形成市場份額的主要是卡式虛擬邏輯分析儀。
本文基于模塊化虛擬儀器技術,詳細闡述了一種基于Altera公司EP1C6T144C8型號FPGA為硬件基礎,以LabVIEW為軟件核心的多通道虛擬邏輯分析儀的設計理念及實施方案,重點論述系統硬件電路設計和軟件數據分析處理方法。
1 虛擬邏輯分析儀總體結構設計
虛擬邏輯分析儀的總體結構設計圖如圖1所示。主要包括數據采集模塊、微處理器模塊、FPGA模塊和LabVIEW模塊。
數據采集模塊由32路完全相同的數據采集通道構成,每一路數據采集通道都是由探頭電路、MAX9687比較器及74LVC4245電平轉換器、毛刺檢測電路和延時電路構成,能進行多通道的數據采集。微處理器模塊實現儀器初始化,控制數據采集模塊信號的采集及傳輸,同時與FPGA通信,控制FPGA模塊的工作狀態。FPGA模塊提供功能選擇、定時采樣時鐘,并將多通道數據緩存于FIFO[1],然后通過USB總線將數據傳輸到上位機LabVIEW模塊中。LabVIEW模塊主要負責該邏輯分析儀的控制、管理、數據處理及結果顯示。
2 虛擬邏輯分析儀硬件設計
2.1 數據采集模塊
數據采集模塊單通道電路如圖2所示。對數據輸入探頭,要求探頭的數據轉換速度快、時延小、輸入阻抗高、散熱少。探頭輸入阻抗高用以減少由于探頭接入被測系統而引起的失真現象。根據以上對數據輸入探頭的要求,本邏輯分析儀采用MAX9687CSE作為數據比較芯片,因為其采用ECL電平輸出電平,此芯片的電平轉換速度非常快。被測數據經過高阻抗電路后,送入MAX9687CSE的正輸入端,與系統選擇的閾值電壓進行比較輸出ECL電平,之后經過MC100H603FN把ECL電平變換成TTL電平,再經過74LVC4245AD把TTL電平變換成3.3 V的LVTTL電平,然后可以直接送入FPGA。閾值電壓由AD7304生成,通過TL072后送入MAX9687CSE的負輸入端。
毛刺檢測電路如圖3所示。D[1]是第一路輸入信號,check_or_sample_D1是毛刺檢測/直接采樣控制信號(當其為高電平時,電路執行毛刺檢測功能,當其為低電平時電路直接采樣),d1_feedback在毛刺檢測方式下輸出的是帶展毛刺信號,在采樣方式下輸出的是采樣數據。
2.2 微處理器模塊
微處理器主要實現通信和控制兩大功能。通信程序實現信號采集模塊與FPGA模塊的信號傳輸和信息交換;控制程序實現系統初始化,并把上位機的操作指令下達給相應的硬件模塊。
2.3 FPGA模塊
FPGA模塊實現時鐘發生器、分頻器、觸發控制器、數據緩存等功能[2]。
時鐘發生器是將20.000 MHz的有源晶振輸出的時鐘接入FPGA,然后由鎖相環倍頻到200 MHz。本虛擬邏輯分析儀的鎖相環采用FPGA自帶的鎖相環。倍頻到200 MHz后,由2分頻和5分頻電路組成的分頻電路實現100 MHz、50 MHz、40 MHz、20 MHz和10 MHz等時鐘。
FPGA模塊中觸發判斷電路的工作原理是:數據流入相應的觸發判斷電路后與用戶設置好的觸發條件進行比較,如果數據流中有滿足觸發條件的觸發字,則觸發判斷電路輸出相應的觸發標志信號,然后觸發標志信號進入到觸發選擇電路,輸出相應的觸發信號,供后級電路使用。本儀器可以實現的觸發方式有立即觸發、通道觸發、毛刺觸發、序列觸發和外觸發等。
FPGA模塊中,每個數據通道都有一個FIFO,每個FIFO的大小是4 096×1 words, 這樣本儀器的存儲深度可以達到64 kbit,FIFO輸出端通過一個三態門實現數據的復用。電路圖如圖4所示。
3 虛擬邏輯分析儀軟件設計
硬件采集到的數據經過USB總線傳送到上位機,由LabVIEW進行數據接收、儲存、分析及表達顯示。虛擬邏輯分析儀的軟件設計主要包括LabVIEW前面板和LabVIEW程序框圖兩部分。前面板即用戶界面,定義各種控件和顯示被測數字信號波形。程序框圖用來控制數據流動方向、進行數據處理分析、對信號進行控制及輸出波形[3]。
3.1 數據接收
本虛擬邏輯分析儀采用的是CLF(Call Library Function)節點調用Windows平臺下的動態鏈接庫(DLL)函數的方法實現LabVIEW與USB之間的通信。如圖5所示。
動態鏈接庫DLL(Dynamic Link Libraries)包含的代碼和數據可以被多個程序同時使用,它屬于不可執行文件,但是可以被程序或其他動態鏈接庫函數調用[4]。通過對動態鏈接庫的調用,解決了LabVIEW不擅長完成大數據量任務的處理和實現底層操作能力不強等缺點。
3.2 數據處理
多通道采集的數據通過USB總線上傳到上位機,通過CLF節點調用動態鏈接庫DLL的方式進入到LabVIEW中,以一維數組的方式體現在程序中。以16通道為例,數據以一維數組形式進入LabVIEW模塊,通過數值至布爾數組轉換控件將其轉換為布爾數組,然后經過LabVIEW中抽取數組函數和索引數組函數被拆分為16組布爾量, 每組布爾量經過布爾值至(0,1)轉換控件轉換為邏輯0、1序列, FOR循環控制數組的持續輸入轉換[5], 16組0、1序列對應于數據采集模塊中的16路采集通道。如圖6所示。
3.3 數據顯示及實測結果
16組邏輯0、1序列通過創建數組控件打包為數組形式,然后經過二維數組轉置控件將邏輯0、1序列轉置,最后通過創建數字數據控件得到數字數據,用數字波形圖進行顯示。
現給出一個占空比為50%的方波信號,頻率為2 kHz,信號幅度為2 V。用本虛擬邏輯分析儀第14通道進行測量。測試結果如圖7所示。按奈奎斯特采樣定理,采樣頻率必須大于被采樣信號帶寬的2倍,將信號采樣率設置為5 kS/s,對信號進行采樣,測得其周期為0.5 ms,與被測信號相符,測得其波形與被測信號相符。
利用FPGA加LabVIEW設計了虛擬邏輯分析儀,其創新點在于采用了當今最前沿的模塊化結構,使得儀器的設計、調試和維護更加簡單,方便。采用虛擬儀器技術軟硬件結合構造的思想,用軟件代替傳統儀器的信號處理及顯示等硬件電路,減少了電路的復雜程度,增強了儀器的可操作性,增加了用戶自定義功能,也使得價格大大降低。同時,本虛擬邏輯分析儀通用性強,在已有的基礎上,能不斷擴展,不斷提升。
參考文獻
[1] 肖玲俐.基于FPGA的虛擬邏輯分析儀的研究與設計[D]. 武漢:武漢理工大學,2010.
[2] 鮮果,龔曉峰. 基于FPGA的新型虛擬邏輯分析儀的設計[J]. 電子技術應用,2011,37(12):87-89.
[3] 盧松升,劉正之. 基于LabVIEW和數字I/O卡的邏輯分析技術[J].微計算機信息,2006,22(8S):85-86.
[4] BITTER R,MOHIUDDIN T,NAWROCKI M. LabVIEW advanced programming techniques[M].CRC Press/Taylor & Francis Group, 2007.
[5] 張敬帥,張丕狀,白雪萍. 基于虛擬儀器的多通道數據分析系統設計[J]. 電子技術應用,2011,37(4):
74-76,80.