超越邊沿觸發(fā) 使用示波器觸發(fā)進行調(diào)試
簡介
示波器是電氣工程師的基礎(chǔ)儀器,但我經(jīng)常發(fā)現(xiàn)有些工程師不能有效地使用其觸發(fā)功能。觸發(fā)常被認為非常復雜,現(xiàn)在存在這樣一種趨勢,即如果有任何問題,直接到實驗室去求助專家來幫助設(shè)置觸發(fā)。本文的目的在于幫助工程師了解觸發(fā)的基本原理以及有效使用觸發(fā)的策略。
什么是觸發(fā)?
任何示波器的存儲器都是有限的,因此所有示波器都必須使用觸發(fā)。觸發(fā)是示波器應(yīng)該發(fā)現(xiàn)的用戶感興趣的事件。換句話說,它是用戶想要在波形中尋找的東西。觸發(fā)可以是一個事件(即波形中的問題),但不是所有的觸發(fā)都是事件。觸發(fā)實例包括邊沿觸發(fā)、毛刺信號觸發(fā)和數(shù)字碼型觸發(fā)。
示波器必須使用觸發(fā)的原因在于其存儲器的容量有限。例如,Agilent90000系列示波器具有20億采樣的存儲器深度。但是,即便擁有如此大容量的存儲器,示波器仍需要一些事件來區(qū)分哪20億個采樣需要顯示給用戶。盡管20億的采樣聽起來似乎非常龐大,但這仍不足以確保示波器存儲器能夠捕獲到感興趣的事件。
示波器的存儲器可視為一個傳送帶。無論什么時候進行新的采樣,采樣都會存儲到存儲器中。存儲器存滿時,最舊的采樣就會被刪除,以便保存最新采樣。當觸發(fā)事件發(fā)生時,示波器就會捕獲足夠的采樣,以將觸發(fā)事件存儲在存儲器要求的位置(通常是在中間),然后將這些數(shù)據(jù)顯示給用戶。
重復采樣模式與單次采樣模式
過去,最常見的示波器運行模式是重復模式。這意味著一旦示波器觸發(fā)并將數(shù)據(jù)顯示給用戶,它將立即開始搜索下一個觸發(fā)事件。這就是示波器波形更新如此頻繁的原因。
任何一款示波器要想進行觸發(fā)并將數(shù)據(jù)顯示給用戶,都需要時間來重新準備觸發(fā)。這個時間也稱為“掛起時間”。在掛起時間內(nèi),示波器不能捕獲任何波形。因此,掛起時間越短,錯失的事件越少。例如,如果有一個毛刺信號恰巧在掛起時間內(nèi)出現(xiàn),那么它將不能在示波器的顯示屏上顯示。如果這個毛刺信號是一個罕見事件,則用戶可能認為波形中沒有毛刺信號,而事實上它卻是存在的。因此,示波器的掛起時間越短,錯失波形中重要事件的幾率就越低。
表述此概念的另一種方法是“更新速率”,即每秒鐘的波形數(shù)量。例如,Agilent7000系列示波器具有100000波形/秒的更新速率。
單次采樣模式用于查找單一觸發(fā),而不會繼續(xù)采集更多波形。因此,當用戶想要查找某個事件,檢查導致該事件的原因和事件發(fā)生后所出現(xiàn)的問題時,便可使用單次采樣模式。這種模式對于分析不重復并且每次操作都會發(fā)生變化的波形尤其重要。
自動模式與觸發(fā)模式
如果沒有發(fā)生觸發(fā)事件,將會出現(xiàn)什么情況呢?這一個非常好的問題。在這種情況下,屏幕上的波形將不會更新。這不是我們想要的情況,因為用戶可能不知道如何改變觸發(fā)來獲得屏幕上的波形。例如,如果探頭滑落,示波器將可能停止觸發(fā)。不過,如果屏幕不能更新,信號丟失將很不明顯。
為了解決這個問題,示波器擁有一個稱為“自動(Auto)”觸發(fā)的模式。在此模式下,如果在一段時間內(nèi)無法找到觸發(fā),示波器將自動觸發(fā)以更新屏幕。通常,示波器上有一些指示器(例如前面板上的LED)來指示上一個觸發(fā)是真實觸發(fā)還是自動觸發(fā)。這樣,如果用戶看到“自動(Auto)”指示器,他們就會知道所設(shè)置的觸發(fā)沒有發(fā)生。例如,如果用戶設(shè)置的觸發(fā)為毛刺信號,他們將會知道示波器沒有檢測出毛刺信號。
然而,當您回顧上一段的內(nèi)容時就會發(fā)現(xiàn),當自動觸發(fā)發(fā)生時,它就意味著每次觸發(fā)之后,示波器進行重新準備時具有掛起時間。為了完全避免這一時間,示波器應(yīng)改為“觸發(fā)(triggered)”模式。(這在某些示波器中稱為“正?!蹦J剑T凇坝|發(fā)(triggered)”模式中,除非發(fā)現(xiàn)觸發(fā)事件,否則示波器將不會進行觸發(fā)。因此,如果用戶將觸發(fā)模式設(shè)置為毛刺信號并且示波器一直沒有進行觸發(fā),那么用戶就可以確信毛刺信號沒有發(fā)生(至少示波器能夠檢測出)。
普通觸發(fā)模式
邊沿觸發(fā)
邊沿觸發(fā)是所有觸發(fā)模式中最普通的一種觸發(fā)。它的使用如此頻繁的原因在于,所有波形都有邊沿,只要觸發(fā)電平設(shè)置正確,這種觸發(fā)模式就能正常工作。同時,這一優(yōu)勢也是其最大的劣勢,因為它能對大多數(shù)波形非常頻繁地進行觸發(fā),所以它和自動觸發(fā)(Auto Trigger)非常相似。
毛刺信號/脈沖寬度/超時觸發(fā)
雖然許多問題只需使用邊沿觸發(fā)便可以輕松找出,但是有時工程師必須使用更復雜的觸發(fā)。其中,最簡單的觸發(fā)便是脈沖觸發(fā)。脈沖觸發(fā)被定義為一段高于(正脈沖)或者低于(負脈沖)某個閾值電平的時間。最常見的脈沖觸發(fā)是毛刺觸發(fā),它常用于對小于最小寬度的脈沖進行觸發(fā)。這是一個違反觸發(fā)的實例,因為示波器無論在何時觸發(fā)都會指示出一個問題。
具有最大時間值的脈寬觸發(fā)的一個令人困惑的方面是發(fā)生觸發(fā)的時間。在某些情況下,用戶可能想要在超過時間值時示波器立即進行觸發(fā)。這稱為“超時”觸發(fā),因為示波器并不需求一個完整的脈沖來進行觸發(fā)。換句話說,即使不發(fā)生第二個跳變,超時觸發(fā)仍將進行。
相反,我們所說的“脈沖”觸發(fā)只有等到第二個跳變出現(xiàn)后才會進行觸發(fā)。也就是說,對于正脈沖來說,即使超過最大時間,也要一直等到下降沿才會發(fā)生觸發(fā)。這意味著時間限制點之后的觸發(fā)可以良好地進行。因此,超時觸發(fā)的使用率比脈寬觸發(fā)高得多。由于這并不直觀,所以我們?yōu)橛脩籼峁┝藘煞N選擇,用戶可以使用超時觸發(fā),也可以使用脈沖末端觸發(fā)。如果選擇超時選項,則此時的脈寬觸發(fā)將與超時觸發(fā)完全相同。
有關(guān)脈寬觸發(fā)的另一個令人費解的地方是它們并不全是違反觸發(fā)。雖然毛刺信號很明顯是違反觸發(fā),但長脈沖也可能是一個正常事件。因此,這取決于是否規(guī)定了脈沖寬度為違反觸發(fā)的一個條件。
上升時間和下降時間
違反觸發(fā)的下一種類型是上升時間觸發(fā)和下降時間觸發(fā)。它們可用于查找上升或下降太快或太慢的邊沿。此類觸發(fā)由兩個觸發(fā)電平(邏輯高和邏輯低)和信號在這兩個電平之間的最長時間和最短時間來定義。
上升時間觸發(fā)和下降時間觸發(fā)的一個令人困惑的方面是觸發(fā)電壓閾值并不依賴于自動測量電壓閾值。例如,測量出信號的上升時間并且期望上升時間觸發(fā)能夠在同一時間值上進行觸發(fā)本來是非常正常的。但在許多情況下,測量閾值默認為信號電壓范圍的10% 和 90%。因為觸發(fā)閾值是獨立的,所以用戶很容易錯誤地設(shè)置不同的閾值,例如 5% 和 95%。在這種情況下,用戶可能會感到很困惑,因為測量顯示的是上升時間值,但是使用相同的時間值卻不能使示波器進行觸發(fā)。
建立觸發(fā)與保持觸發(fā)
另一類違反觸發(fā)是建立觸發(fā)和保持觸發(fā)。當然,這要求使用數(shù)據(jù)信號和時鐘信號。這種觸發(fā)還要求規(guī)定建立時間、保持時間或者兩者都要規(guī)定。當檢測建立時間和保持時間違反觸發(fā)條件時,示波器將進行觸發(fā)。
矮脈沖觸發(fā)
毛刺信號是一個非常窄的脈沖,而矮脈沖是一個非常矮的脈沖。矮脈沖是由三個電壓電平來定義的。如果一個信號通過兩個閾值(同一方向),然后又再次通過其中一個閾值而未通過第三個閾值,那么將出現(xiàn)矮脈沖觸發(fā)。例如,如果三個閾值為 1V、2V 和 3V,信號從 0V 向 2.3V 前進,然后返回到 0V,這就是一個矮脈沖,因為它上升時通過 1V、2V ,然后下降時又通過 2V。
這個觸發(fā)最令人困惑的地方是三個閾值電平的定義。通常,閾值電平定義為 10%、50% 和 90% 時恰好合適,但它不是直觀的,為什么需要三個閾值電平,而不是兩個閾值電平呢?
窗口觸發(fā)
窗口觸發(fā)(Window)是一種高級觸發(fā),它使用兩個電壓閾值和兩個時間值。窗口觸發(fā)即是當信號進入或退出某個電壓范圍時進行觸發(fā)。另外,時間也可以是一個范圍,因此可以指定信號在某個電壓范圍之內(nèi)(或之外)的最短時間和最長時間作為觸發(fā)條件。這為進行各種不同的觸發(fā)提供了極大的靈活性。
序列觸發(fā)
序列觸發(fā)具有在示波器進行觸發(fā)之前,首先查找一個事件,然后搜索另一個事件的能力。例如,序列觸發(fā)使用戶可以查找一個信號邊沿,該信號邊沿后緊隨另一個信號脈沖。
所示的是 Agilent 90000 示波器的序列觸發(fā)實例。 注意,圖中所示的即是通道 2 上的脈沖如何緊隨通道 1 上的邊沿。
圖1:序列觸發(fā)。
軟件觸發(fā)
示波器中最常見的觸發(fā)是硬件觸發(fā)。在這種情況下,因為對觸發(fā)進行實時處理,所以即使是最罕見的觸發(fā)事件也可以被捕獲。然而,一些事件非常復雜,以至于硬件觸發(fā)無法捕獲。為了觸發(fā)這些事件,需要將軟件觸發(fā)(例如 Agilent Infiniuum 示波器上的 InfiniiScan)與硬件觸發(fā)一起使用。當進行硬件觸發(fā)時,軟件觸發(fā)將搜索捕獲到的事件跡線。如果找到此跡線,那么示波器就會進行觸發(fā)。然而,盡管此類觸發(fā)功能很強大,但無法進行實時觸發(fā)。對于頻繁發(fā)生的事件來說,這沒有什么問題,但對于罕見事件而言,這卻是一個巨大的缺陷。在這種情況下,軟件觸發(fā)將可能錯失大多數(shù)罕見事件實例,而示波器可能需要很長時間才能觸發(fā)。即使如此,讓示波器自動查找事件還是要好得多,盡管它要花費幾分鐘的時間,但這總比找不到任何事件要強。
觸發(fā)策略
進行觸發(fā)以顯示波形
迄今為止,這是最簡單的案例,因為它使用的是自動觸發(fā)。設(shè)置此觸發(fā)的最簡單的方法是輕松按下示波器前面板上的“Autoscale”按鈕。這是顯示示波器波形的最快速的方法。在許多情況下,這已足以使用戶了解之后出現(xiàn)的情況。
進行觸發(fā)以調(diào)試模擬問題
如果簡單的觸發(fā)不能夠揭示問題,下一種方法是尋找簡單的模擬問題。這里嘗試的主要觸發(fā)模式是毛刺信號、矮脈沖、上升時間和下降時間。這些模式可揭示出大多數(shù)常見的模擬問題。另外,用戶還可以使用建立和保持觸發(fā),以確保建立和保持觸發(fā)不是問題的根源。
在這種情況下,示波器應(yīng)使用標準可重復模式來運行。(對于大多數(shù)示波器來說,這簡稱為“Run”)。
某些模擬問題(例如非單調(diào)邊沿)只有使用軟件觸發(fā)才能夠檢測出來。在這種情況下,請確保將硬件觸發(fā)和軟件觸發(fā)設(shè)置為相同的邊沿和斜率。這是一個很常見的問題,它使用戶誤以為沒有觸發(fā)發(fā)生,實際上是由于硬件觸發(fā)設(shè)置不正確造成的。
如果您注意到波形在示波器上顯示時間非常短,您可以使用軟件觸發(fā)中的區(qū)域觸發(fā)對其進行觸發(fā)。區(qū)域觸發(fā)允許我們將一部分格子線指定為“必須交叉”的區(qū)域,只有波形穿過那個區(qū)域,示波器才會進行觸發(fā)?;蛘?,此區(qū)域也可以設(shè)置為“不得交叉”,以便過濾出您不想看到的波形。
在這種情況下,將示波器設(shè)置為觸發(fā)模式是非常明智的,如此一來,在沒有發(fā)現(xiàn)事件時,示波器就不會進行觸發(fā)。這也意味著這個特殊問題并未發(fā)生,并且可在問題的根源中排除這個問題。因此,這是一個排除問題的過程。
進行觸發(fā)以調(diào)試軟件或 FPGA 問題
在前兩種情況下,示波器是根據(jù)某個特定的模擬問題進行觸發(fā)。但是,在許多情況(例如軟件或 FPGA 問題)下,我們的目標并不是對問題進行觸發(fā),而僅僅是想通過對波形的跟蹤來嘗試著找出邏輯問題,而不是模擬問題。
在這種情況下,將示波器設(shè)置為使用深存儲器和單次模式運行非常重要。(對于安捷倫示波器來說,這是“Single”按鈕,而非“Run”按鈕)。深存儲器為您提供最大數(shù)量的波形,這些波形還可以為您提供捕獲問題的最佳時機。對于大多數(shù)示波器來說,無論“Time per Division”旋鈕何時改變,存儲器深度都可進行自動設(shè)置,此外,存儲器深度也可手動設(shè)置。對于 Agilent Infiniium 示波器來說,此設(shè)置在“Acquisition”菜單中完成。
觸發(fā)事件應(yīng)設(shè)置為在感興趣區(qū)域的某個地方發(fā)生的已知事件。最常見的選項是脈沖、數(shù)字碼型和串行觸發(fā)。脈沖觸發(fā)是最簡單的觸發(fā),因為它只需指定脈沖長度。碼型觸發(fā)和串行觸發(fā)非常特殊,因為它們支持用戶指定特定值。例如,常見串行觸發(fā)是對一個特定地址執(zhí)行寫操作。一旦找到感興趣的事件,那么跟蹤此跡線就會找到問題的根源。對于串行總線來說,啟動數(shù)據(jù)的串行解碼功能非常有用。這樣不僅可以顯示模擬波形,還可將波形轉(zhuǎn)換成數(shù)據(jù)包,從而使通過數(shù)據(jù)進行跟蹤變得非常容易。
總結(jié)
觸發(fā)是一個非常強大的示波器特性,但是通常用戶必須不能僅限于了解簡單的邊沿觸發(fā)。其關(guān)鍵是了解用戶是否正在尋找模擬問題或者正在跟蹤一個邏輯問題。示波器在這兩方面都可提供出色的功能,但這取決于用戶使用正確的策略。
評論