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