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