邏輯分析儀在數(shù)字電路測試中的觸發(fā)選擇
隨著數(shù)字技術(shù)的日新月異,在數(shù)字系統(tǒng),特別是在計算機系統(tǒng)的研制、調(diào)試和故障診斷過程中,由模擬系統(tǒng)的時域和頻域分析發(fā)展起來的傳統(tǒng)測試方法與測試儀器往往難以奏效,于是新的數(shù)據(jù)域測試的理論、方法和相應(yīng)的測試儀器不斷涌現(xiàn)。邏輯分析儀作為數(shù)據(jù)域測試儀器中最有用、最有代表性的一種儀器,性能與功能日益完善,已成為調(diào)試與研制復(fù)雜數(shù)字系統(tǒng),尤其是汁算機系統(tǒng)的強有力工具。
在邏輯分析儀中,利用觸發(fā)字或觸發(fā)事件的序列來控制對數(shù)據(jù)的存儲和顯示,以便住數(shù)據(jù)流中挑選一個恰當?shù)挠^察窗口。觸發(fā)能力是邏輯分析儀最重要的指標,特別是在用邏輯狀態(tài)分析儀跟蹤復(fù)雜程序時,強的觸發(fā)功能以及合理的觸發(fā)條件設(shè)置可以使儀器在龐大而復(fù)雜的程序流中迅速找到要跟蹤的目標,分析發(fā)生故障、錯誤的部位及性質(zhì),這將大大縮短軟件和硬件的開發(fā)、調(diào)試周期,產(chǎn)生良好的經(jīng)濟效益。
2 邏輯狀態(tài)分析儀的觸發(fā)選擇
2.1 觸發(fā)字的選擇
用邏輯分析儀觀察大量數(shù)據(jù)的方法是設(shè)置特定的觀察起點、終點或與被分析數(shù)據(jù)有一定關(guān)系的某一個參考點,這個特定的點在數(shù)據(jù)流中一旦出現(xiàn),便形成一次觸發(fā)事件,相應(yīng)地把數(shù)據(jù)存入存儲器,這個過程稱 為觸發(fā)。這個特定的參考點并不是一個模擬信號參數(shù),而是一個數(shù)據(jù)字,也可能是字或事件的序列,總之是一個多通道的邏輯組合,這個數(shù)據(jù)字稱為觸發(fā)字。由字或事件序列構(gòu)成的觸發(fā)稱為序列觸發(fā)。簡言之,觸發(fā)字是一個用于選擇數(shù)據(jù)窗口的數(shù)據(jù)字。
利用觸發(fā)字進行觸發(fā),是邏輯分析儀最簡單、最基本的觸發(fā)方式,也是復(fù)雜觸發(fā)方式中的重要內(nèi)容。由于邏輯狀態(tài)分析儀常用來分析軟件,因此往往選計算機地址線或數(shù)據(jù)線上特定的數(shù)據(jù)字作為觸發(fā)字。有時也利用一些控制信號與地址或數(shù)據(jù)共同組成觸發(fā)字。例如,在觀測某程序時,把M,MREQ和RD均有效與某存儲器地址組合作觸發(fā)字,說明是在取指周期中對該地址中存的指令機器碼取指時,觸發(fā)字有效。與上述情況不同,在邏輯定時分析儀中常用控制信號、I/O信號、外部設(shè)備口地址或與外設(shè)有關(guān)的信號及其組合作為觸發(fā)字,不一定用地址、數(shù)據(jù)等完整的數(shù)據(jù)字來觸發(fā)。
觸發(fā)字的選擇是確定顯示窗口位置的基礎(chǔ)。如果選擇不當,顯示內(nèi)容可能不說明問題甚至沒有顯示。恰當?shù)挠|發(fā)字可以顯示欲觀測的內(nèi)容或很快逼近待分析的故障點。在有故障的計算機中,由于程序不能正常運行,觸發(fā)字的設(shè)置有時會感到困難。為捕捉到程序在何處運行,有時把觸發(fā)字的各位均設(shè)置為任意項,用連續(xù)跟蹤方式或從多個單次跟蹤的顯示結(jié)果中尋找感興趣的內(nèi)容,還可以從這種內(nèi)容中挑選觸發(fā)字進一步分析。
在觸發(fā)字設(shè)定以后,必須保證邏輯分析儀能采集到他才能觸發(fā)。但是被跟蹤的程序往往是非重復(fù)性的,因此通常應(yīng)在邏輯分析儀跟蹤后再啟動被跟蹤的程序。在被測系統(tǒng)中按一下復(fù)位鍵或重新上電后再啟動,都能保證在程序第一次經(jīng)過觸發(fā)字時立即被識別。如果先啟動程序,后令邏輯分析儀跟蹤,則可能觸發(fā)字所在程序己經(jīng)運行過了,邏輯分析儀就會沒有顯示,智能邏輯分析儀大多還會提示“未找到觸發(fā)字”。
2.2 觸發(fā)位置的選擇和延遲觸發(fā)
邏輯分析儀觸發(fā)位置的選擇,有觸發(fā)開始跟蹤、中心觸發(fā)和觸發(fā)終止跟蹤。在沒有延遲的情況下,他們使觸發(fā)點分別處于數(shù)據(jù)窗口的開始、中心和結(jié)尾部分,具體的選擇總是保證欲觀測的數(shù)據(jù)處于顯示窗口之內(nèi)。例如,要觀測觸發(fā)以后的數(shù)據(jù),則可在不加延遲的情況下使用觸發(fā)開始跟蹤。但是即使在這種情況下,有時還是希望觀測少量觸發(fā)以前的數(shù)據(jù),所以不少內(nèi)存容量較大的邏輯分析儀在觸發(fā)開始跟蹤的情況下,也要存儲、顯示觸發(fā)前的一些數(shù)據(jù)。當然,這時大量的數(shù)據(jù)是處在觸發(fā)點后面的。與此類似,在觸發(fā)終止跟蹤的情況下,即使不加延遲,有些邏輯分析儀也要存儲和顯示觸發(fā)點后面的一些數(shù)據(jù)。
延遲觸發(fā)分為時鐘延遲和事件延遲兩種。
時鐘延遲是在觸發(fā)字被辨認后,延遲所設(shè)定的時鐘數(shù)后再觸發(fā)。他最常用于下列兩種情況:
(1) 被跟蹤的程序較長而邏輯分析儀內(nèi)存容量有限,則可在不改變觸發(fā)字的情況下通過改變延遲量進行所謂“多趟”跟蹤,分段跟蹤程序。
(2) 用來調(diào)整觸發(fā)字在數(shù)據(jù)窗口中的位置,特別是對沒有中心觸發(fā)和觸發(fā)開始跟蹤的邏輯分析儀,用延遲觸發(fā)與觸發(fā)終止跟蹤配合,可以產(chǎn)生這兩種功能。
事件延遲的一個重要用途就是分析循環(huán)嵌套一類的程序。特別是軟件延時程序,其循環(huán)量非常大,在用邏輯分析儀實時跟蹤程序的執(zhí)行過程時,往往沒有必要重復(fù)跟蹤這些循環(huán),這時可用事件延遲把他跳過去。
2.3 多種觸發(fā)功能的應(yīng)用
除了簡單地利用觸發(fā)字進行觸發(fā)以外,現(xiàn)代邏輯分析儀還具有豐富的其他觸發(fā)功能。利用這些功能及其組合,能大大加強邏輯分析儀從數(shù)據(jù)流中挑選數(shù)據(jù)窗口的能力。
2.3.1 “與”、“或”、“非”觸發(fā)
利用信號或搜索區(qū)間和觸發(fā)條件相“與”的關(guān)系,能對觸發(fā)條件進行約束,使觸發(fā)點更準確地指向欲觀測的數(shù)據(jù)窗口。實際上一個觸發(fā)字包含了多個信號,也可以看成這些信號是相“與”的關(guān)系。例如,利用某存儲器地址作觸發(fā)字,但只想在該地址寫入內(nèi)容時觸發(fā),則可把控制信號也作為觸發(fā)字的一部分,在觸發(fā)字中使存儲器請求和寫信號均有效。觸發(fā)限定也是一種常用的相“與”關(guān)系,只有滿足了限定條件,所設(shè)定的觸發(fā)字或觸發(fā)事件序列才能進行觸發(fā)。在一些智能邏輯分析儀中還可以設(shè)置觸發(fā)窗口,規(guī)定只在某確定的起點和終點之間尋找觸發(fā)條件,這也是一種相“與”的關(guān)系。當程序有可能從幾種不同的路徑進入觸發(fā)點時,利用相“與”的關(guān)系往往可以選擇一條惟一的路徑,增加對觸發(fā)點的選擇性。
邏輯分析儀在采用“或”觸發(fā)功能時,設(shè)置多個觸發(fā)字或觸發(fā)條件,只要其中一個滿足即產(chǎn)生觸發(fā)。當所跟蹤的程序有幾種可能的流向時,如果對幾種可能的情況都想觀察,則可以把每種人口處的地址設(shè)置成一個觸發(fā)字,利用“或”觸發(fā)功能來跟蹤。這樣不管程序?qū)嶋H上流向什么方向都可以及時捕獲有關(guān)數(shù)據(jù)。
如果在一定條件下檢測不到某個數(shù)據(jù)就產(chǎn)生觸發(fā)并進入跟蹤狀態(tài),這種功能叫做“非”觸發(fā)功能。在這種觸發(fā)方式下,通常要設(shè)置兩個觸發(fā)字,前一個觸發(fā)字用來確定
“與”、“或”、“非”觸發(fā)功能可以混合使用,也可以與其他觸發(fā)功能相互配合、共同應(yīng)用,這給觸發(fā)點的選擇增加了很大靈活性。
2.3.2 序列觸發(fā)
如果說單獨用一個觸發(fā)字或用外加觸發(fā)信號進行觸發(fā)是最簡單的觸發(fā)方式,那么序列觸發(fā)就是能適應(yīng)多種觸發(fā)要求的復(fù)雜觸發(fā)方式。通??梢园岩粋€觸發(fā)字或一種經(jīng)過“與”、“或”、“非”操作的觸發(fā)條件作為一級觸發(fā)事件。各觸發(fā)事件可以直接相連構(gòu)成事件序列,也可以在各觸發(fā)事件問加入一定的時鐘延遲或事件延遲,構(gòu)成帶延遲的事件序列。用這種事件序列進行觸發(fā),能跟蹤各種復(fù)雜的程序,對分析程序的分支、跳轉(zhuǎn)、嵌套和循環(huán)都帶來很多方便。
序列觸發(fā)可以和計數(shù)、計時功能配合應(yīng)用,完成對事件的計數(shù)統(tǒng)計和對多種響應(yīng)時間、程序執(zhí)行時間等的計時功能。
序列觸發(fā)還常和復(fù)位功能配合,以便在某種情況下對觸發(fā)條件的搜索復(fù)位,并重新開始辨認觸發(fā)事件序列。復(fù)位條件可以是執(zhí)行到或未執(zhí)行到某一程序地址,也可以是時間或計數(shù)值超過了某給定數(shù)值。序列觸發(fā)與復(fù)位功能配合,可進一步增加對觸發(fā)點的選擇性。
圖1為用序列觸發(fā)分析復(fù)雜分支程序的例子。本例所示是要求只有在一個通路(即通道2)里順序滿足a,b,c,d條件之后,邏輯分析儀才在e點進行觸發(fā)跟蹤程序運行情況。在復(fù)雜分支程序中,多次執(zhí)行不同通路有時也能滿足序列觸發(fā)要求。例如在圖1中,第一次沿著通路1執(zhí)行,滿足了觸發(fā)條件a和b,第二次沿著通路3執(zhí)行,又滿足了觸發(fā)條件c,c,e。盡管兩次執(zhí)行結(jié)果也是按順序滿足a,b,c,d,e五個條件,但若此時進行跟蹤便會產(chǎn)生錯誤的結(jié)果。為避免出現(xiàn)這類問題,可以在通路出口處f點設(shè)置序列返回。如果在一個通路中沒有按順序找到所有觸發(fā)字,只要出現(xiàn)返回點f,就返回到起始狀態(tài)重新開始搜索觸發(fā)字,以前已滿足的觸發(fā)字無效。其工作過程如圖2所示。對于復(fù)雜程序的分析,序列觸發(fā)是必不可少的功能。
3 邏輯定時分析儀的觸發(fā)選擇
邏輯定時分析儀的觸發(fā)與邏輯狀態(tài)分析儀有很多相似之處。例如,邏輯定時分析儀也常用觸發(fā)字觸發(fā),可以對觸發(fā)字進行限定或?qū)τ|發(fā)條件進行“與”、“或”、“非”運算,亦可使用外觸發(fā)。定時儀同樣可以使用序列觸發(fā),在觸發(fā)字之后或者序列事件之間也允許使用時鐘延遲或事件延遲。因為觸發(fā)只影響窗口在數(shù)據(jù)流中的位置,并不影響觸發(fā)以后定時儀按等時間間隔采集和存儲數(shù)據(jù),所以和邏輯狀態(tài)分析儀一樣,他的觸發(fā)條件是很靈活的。甚至在延遲觸發(fā)中允許選用不等間隔出現(xiàn)的外時鐘做延遲時鐘,一旦觸發(fā)后再用等時間間隔的內(nèi)時鐘進行采樣,依然可以保證采樣次數(shù)與時間成比例。
邏輯定時分析儀和邏輯狀態(tài)分析儀在觸發(fā)方面的不同,主要表現(xiàn)在兩個方面,這就是毛刺觸發(fā)和觸發(fā)濾波。
3.1 毛刺觸發(fā)
邏輯定時分析儀經(jīng)常用來分析硬件,而毛刺往往是造成硬件故障的重要原因。由于毛刺的出現(xiàn)時間往往難以預(yù)料,利用毛刺觸發(fā)功能捕獲毛刺出現(xiàn)前后的情況,就成為邏輯定時分析儀的重要功能。
毛刺觸發(fā)可以單獨使用,也可以與其他觸發(fā)條件共同使用。設(shè)置毛刺觸發(fā)通常是按通道進行,即指定的若干個通道中任何一個出現(xiàn)了毛刺都進行觸發(fā)。在與其他觸發(fā)條件共同使用時,存在毛刺與其他條件之間往往是相“與”的關(guān)系。
3.2 觸發(fā)濾波
觸發(fā)濾波時間又稱為異步持續(xù)時間。邏輯定時分析儀由于工作在異步狀態(tài),不可能對數(shù)據(jù)要求建立時間和保持時間。但是,有時由于一些瞬態(tài)現(xiàn)象、器件延時的微小差別,或者信號中存在毛刺等原因,均可能導(dǎo)致瞬間滿足觸發(fā)條件,產(chǎn)生誤觸發(fā)。這時,對應(yīng)惟一的觸發(fā)條件,幾次觸發(fā)獲取的數(shù)據(jù)有可能不同。
利用觸發(fā)濾波可以調(diào)節(jié)異步持續(xù)時間的大小,使觸發(fā)條件必須達到規(guī)定的時間才能產(chǎn)生觸發(fā),這樣就可以避免某些誤觸發(fā)。對于工作速度低、時延大的系統(tǒng),異步持續(xù)時間可選得大一些。
當對應(yīng)惟一的觸發(fā)條件,各次觸發(fā)得到的顯示波形不同時,應(yīng)該考慮選擇恰當?shù)漠惒匠掷m(xù)時間來消除一些不希望的觸發(fā)。
4 結(jié) 語
在電子測量領(lǐng)域,數(shù)據(jù)域測量技術(shù)越來越顯示出其重要性,適時、合理地使用邏輯分析儀,能迅速有效地解決在數(shù)字電路系統(tǒng)方面遇到的一系列問題。本文僅從捕獲數(shù)據(jù)的關(guān)鍵一觸發(fā)條件設(shè)置方面進行了闡述,還有其他多方面的因素影響到數(shù)據(jù)的獲取與分析,如:采樣頻率、存儲方式、顯示方式等。只有結(jié)合所使用邏輯分析儀的本身特性,將以上各方面綜合考慮,合理設(shè)置條件和參數(shù),才能快速捕捉有用信息,解決數(shù)字電路硬件及軟件的分析問題。
評論