如何使用示波器觸發(fā)進(jìn)行調(diào)試 中心議題:什么是示波器的觸發(fā) 普通觸發(fā)模式 示波器觸發(fā)策略解決方案:邊沿觸發(fā) 矮脈沖觸發(fā) 序列觸發(fā)
示波器是電氣工程師的基礎(chǔ)儀器,,但我經(jīng)常發(fā)現(xiàn)有些工程師不能有效地使用其觸發(fā)功能。觸發(fā)常被認(rèn)為非常復(fù)雜,,現(xiàn)在存在這樣一種趨勢,,即如果有任何問題,直接到實(shí)驗(yàn)室去求助專家來幫助設(shè)置觸發(fā),。本文的目的在于幫助工程師了解觸發(fā)的基本原理以及有效使用觸發(fā)的策略。
什么是觸發(fā),?
任何示波器的存儲器都是有限的,,因此所有示波器都必須使用觸發(fā)。觸發(fā)是示波器應(yīng)該發(fā)現(xiàn)的用戶感興趣的事件,。換句話說,,它是用戶想要在波形中尋找的東西。觸發(fā)可以是一個事件(即波形中的問題),,但不是所有的觸發(fā)都是事件,。觸發(fā)實(shí)例包括邊沿觸發(fā)、毛刺信號觸發(fā)和數(shù)字碼型觸發(fā),。
示波器必須使用觸發(fā)的原因在于其存儲器的容量有限,。例如,Agilent90000系列示波器具有20億采樣的存儲器深度,。但是,,即便擁有如此大容量的存儲器,示波器仍需要一些事件來區(qū)分哪20億個采樣需要顯示給用戶,。盡管20億的采樣聽起來似乎非常龐大,,但這仍不足以確保示波器存儲器能夠捕獲到感興趣的事件。
示波器的存儲器可視為一個傳送帶,。無論什么時候進(jìn)行新的采樣,,采樣都會存儲到存儲器中。存儲器存滿時,,zui舊的采樣就會被刪除,,以便保存采樣。當(dāng)觸發(fā)事件發(fā)生時,示波器就會捕獲足夠的采樣,,以將觸發(fā)事件存儲在存儲器要求的位置(通常是在中間),,然后將這些數(shù)據(jù)顯示給用戶。
重復(fù)采樣模式與單次采樣模式
過去,,zui常見的示波器運(yùn)行模式是重復(fù)模式,。這意味著一旦示波器觸發(fā)并將數(shù)據(jù)顯示給用戶,它將立即開始搜索下一個觸發(fā)事件,。這就是示波器波形更新如此頻繁的原因,。
任何一款示波器要想進(jìn)行觸發(fā)并將數(shù)據(jù)顯示給用戶,都需要時間來重新準(zhǔn)備觸發(fā),。這個時間也稱為“掛起時間”,。在掛起時間內(nèi),示波器不能捕獲任何波形,。因此,,掛起時間越短,錯失的事件越少,。例如,,如果有一個毛刺信號恰巧在掛起時間內(nèi)出現(xiàn),那么它將不能在示波器的顯示屏上顯示,。
如果這個毛刺信號是一個罕見事件,,則用戶可能認(rèn)為波形中沒有毛刺信號,而事實(shí)上它卻是存在的,。因此,,示波器的掛起時間越短,錯失波形中重要事件的幾率就越低,。
表述此概念的另一種方法是“更新速率”,,即每秒鐘的波形數(shù)量。例如,,Agilent7000系列示波器具有100000波形/秒的更新速率,。
單次采樣模式用于查找單一觸發(fā),而不會繼續(xù)采集更多波形,。因此,,當(dāng)用戶想要查找某個事件,檢查導(dǎo)致該事件的原因和事件發(fā)生后所出現(xiàn)的問題時,,便可使用單次采樣模式,。這種模式對于分析不重復(fù)并且每次操作都會發(fā)生變化的波形尤其重要。
自動模式與觸發(fā)模式
如果沒有發(fā)生觸發(fā)事件,,將會出現(xiàn)什么情況呢,?這一個非常好的問題,。在這種情況下,屏幕上的波形將不會更新,。這不是我們想要的情況,,因?yàn)橛脩艨赡懿恢廊绾胃淖冇|發(fā)來獲得屏幕上的波形。例如,,如果探頭滑落,,示波器將可能停止觸發(fā)。不過,,如果屏幕不能更新,,信號丟失將很不明顯。
為了解決這個問題,,示波器擁有一個稱為“自動(Auto)”觸發(fā)的模式,。在此模式下,如果在一段時間內(nèi)無法找到觸發(fā),,示波器將自動觸發(fā)以更新屏幕,。通常,示波器上有一些指示器(例如前面板上的LED)來指示上一個觸發(fā)是真實(shí)觸發(fā)還是自動觸發(fā),。這樣,,如果用戶看到“自動(Auto)”指示器,他們就會知道所設(shè)置的觸發(fā)沒有發(fā)生,。例如,如果用戶設(shè)置的觸發(fā)為毛刺信號,,他們將會知道示波器沒有檢測出毛刺信號,。
然而,當(dāng)您回顧上一段的內(nèi)容時就會發(fā)現(xiàn),,當(dāng)自動觸發(fā)發(fā)生時,,它就意味著每次觸發(fā)之后,示波器進(jìn)行重新準(zhǔn)備時具有掛起時間,。為了*避免這一時間,,示波器應(yīng)改為“觸發(fā)(triggered)”模式。(這在某些示波器中稱為“正常”模式),。在“觸發(fā)(triggered)”模式中,,除非發(fā)現(xiàn)觸發(fā)事件,否則示波器將不會進(jìn)行觸發(fā),。因此,,如果用戶將觸發(fā)模式設(shè)置為毛刺信號并且示波器一直沒有進(jìn)行觸發(fā),那么用戶就可以確信毛刺信號沒有發(fā)生(至少示波器能夠檢測出),。
普通觸發(fā)模式
邊沿觸發(fā)
邊沿觸發(fā)是所有觸發(fā)模式中zui普通的一種觸發(fā),。它的使用如此頻繁的原因在于,,所有波形都有邊沿,只要觸發(fā)電平設(shè)置正確,,這種觸發(fā)模式就能正常工作,。同時,這一優(yōu)勢也是其zui大的劣勢,,因?yàn)樗軐Υ蠖鄶?shù)波形非常頻繁地進(jìn)行觸發(fā),,所以它和自動觸發(fā)(AutoTrigger)非常相似。
毛刺信號/脈沖寬度/超時觸發(fā)
雖然許多問題只需使用邊沿觸發(fā)便可以輕松找出,,但是有時工程師必須使用更復(fù)雜的觸發(fā),。其中,zui簡單的觸發(fā)便是脈沖觸發(fā),。脈沖觸發(fā)被定義為一段高于(正脈沖)或者低于(負(fù)脈沖)某個閾值電平的時間,。zui常見的脈沖觸發(fā)是毛刺觸發(fā),它常用于對小于zui小寬度的脈沖進(jìn)行觸發(fā),。這是一個違反觸發(fā)的實(shí)例,,因?yàn)槭静ㄆ鳠o論在何時觸發(fā)都會指示出一個問題。
具有zui大時間值的脈寬觸發(fā)的一個令人困惑的方面是發(fā)生觸發(fā)的時間,。在某些情況下,,用戶可能想要在超過時間值時示波器立即進(jìn)行觸發(fā)。這稱為“超時”觸發(fā),,因?yàn)槭静ㄆ鞑⒉恍枨笠粋€完整的脈沖來進(jìn)行觸發(fā),。換句話說,即使不發(fā)生第二個跳變,,超時觸發(fā)仍將進(jìn)行,。
相反,我們所說的“脈沖”觸發(fā)只有等到第二個跳變出現(xiàn)后才會進(jìn)行觸發(fā),。也就是說,,對于正脈沖來說,即使超過zui大時間,,也要一直等到下降沿才會發(fā)生觸發(fā),。這意味著時間限制點(diǎn)之后的觸發(fā)可以良好地進(jìn)行。因此,,超時觸發(fā)的使用率比脈寬觸發(fā)高得多,。由于這并不直觀,所以我們?yōu)橛脩籼峁┝藘煞N選擇,,用戶可以使用超時觸發(fā),,也可以使用脈沖末端觸發(fā)。如果選擇超時選項(xiàng),,則此時的脈寬觸發(fā)將與超時觸發(fā)*相同,。
有關(guān)脈寬觸發(fā)的另一個令人費(fèi)解的地方是它們并不全是違反觸發(fā),。雖然毛刺信號很明顯是違反觸發(fā),但長脈沖也可能是一個正常事件,。因此,,這取決于是否規(guī)定了脈沖寬度為違反觸發(fā)的一個條件。
上升時間和下降時間
違反觸發(fā)的下一種類型是上升時間觸發(fā)和下降時間觸發(fā),。它們可用于查找上升或下降太快或太慢的邊沿,。此類觸發(fā)由兩個觸發(fā)電平(邏輯高和邏輯低)和信號在這兩個電平之間的zui長時間和zui短時間來定義。
上升時間觸發(fā)和下降時間觸發(fā)的一個令人困惑的方面是觸發(fā)電壓閾值并不依賴于自動測量電壓閾值,。例如,,測量出信號的上升時間并且期望上升時間觸發(fā)能夠在同一時間值上進(jìn)行觸發(fā)本來是非常正常的。但在許多情況下,,測量閾值默認(rèn)為信號電壓范圍的10%和90%,。因?yàn)橛|發(fā)閾值是獨(dú)立的,所以用戶很容易錯誤地設(shè)置不同的閾值,,例如5%和95%,。在這種情況下,用戶可能會感到很困惑,,因?yàn)闇y量顯示的是上升時間值,,但是使用相同的時間值卻不能使示波器進(jìn)行觸發(fā)。
建立觸發(fā)與保持觸發(fā)
另一類違反觸發(fā)是建立觸發(fā)和保持觸發(fā),。當(dāng)然,,這要求使用數(shù)據(jù)信號和時鐘信號。這種觸發(fā)還要求規(guī)定建立時間,、保持時間或者兩者都要規(guī)定,。當(dāng)檢測建立時間和保持時間違反觸發(fā)條件時,示波器將進(jìn)行觸發(fā),。
矮脈沖觸發(fā)
毛刺信號是一個非常窄的脈沖,而矮脈沖是一個非常矮的脈沖,。矮脈沖是由三個電壓電平來定義的,。如果一個信號通過兩個閾值(同一方向),然后又再次通過其中一個閾值而未通過第三個閾值,,那么將出現(xiàn)矮脈沖觸發(fā),。例如,如果三個閾值為1V,、2V和3V,,信號從0V向2.3V前進(jìn),然后返回到0V,,這就是一個矮脈沖,,因?yàn)樗仙龝r通過1V,、2V,然后下降時又通過2V,。
這個觸發(fā)zui令人困惑的地方是三個閾值電平的定義,。通常,閾值電平定義為10%,、50%和90%時恰好合適,,但它不是直觀的,為什么需要三個閾值電平,,而不是兩個閾值電平呢,?
窗口觸發(fā)
窗口觸發(fā)(Window)是一種觸發(fā),它使用兩個電壓閾值和兩個時間值,。窗口觸發(fā)即是當(dāng)信號進(jìn)入或退出某個電壓范圍時進(jìn)行觸發(fā),。另外,時間也可以是一個范圍,,因此可以信號在某個電壓范圍之內(nèi)(或之外)的zui短時間和zui長時間作為觸發(fā)條件,。這為進(jìn)行各種不同的觸發(fā)提供了極大的靈活性。
序列觸發(fā)
序列觸發(fā)具有在示波器進(jìn)行觸發(fā)之前,,首先查找一個事件,,然后搜索另一個事件的能力。例如,,序列觸發(fā)使用戶可以查找一個信號邊沿,,該信號邊沿后緊隨另一個信號脈沖。
圖1所示的是Agilent90000示波器的序列觸發(fā)實(shí)例,。注意,,圖中所示的即是通道2上的脈沖如何緊隨通道1上的邊沿。

圖1:序列觸發(fā)
示波器中zui常見的觸發(fā)是硬件觸發(fā),。在這種情況下,,因?yàn)閷τ|發(fā)進(jìn)行實(shí)時處理,所以即使是zui罕見的觸發(fā)事件也可以被捕獲,。然而,,一些事件非常復(fù)雜,以至于硬件觸發(fā)無法捕獲,。為了觸發(fā)這些事件,,需要將軟件觸發(fā)(例如AgilentInfiniuum示波器上的InfiniiScan)與硬件觸發(fā)一起使用。
當(dāng)進(jìn)行硬件觸發(fā)時,,軟件觸發(fā)將搜索捕獲到的事件跡線,。如果找到此跡線,那么示波器就會進(jìn)行觸發(fā),。然而,,盡管此類觸發(fā)功能很強(qiáng)大,,但無法進(jìn)行實(shí)時觸發(fā)。對于頻繁發(fā)生的事件來說,,這沒有什么問題,,但對于罕見事件而言,這卻是一個巨大的缺陷,。在這種情況下,,軟件觸發(fā)將可能錯失大多數(shù)罕見事件實(shí)例,而示波器可能需要很長時間才能觸發(fā),。即使如此,,讓示波器自動查找事件還是要好得多,盡管它要花費(fèi)幾分鐘的時間,,但這總比找不到任何事件要強(qiáng),。
觸發(fā)策略
進(jìn)行觸發(fā)以顯示波形
迄今為止,這是zui簡單的案例,,因?yàn)樗褂玫氖亲詣佑|發(fā),。設(shè)置此觸發(fā)的zui簡單的方法是輕松按下示波器前面板上的“Autoscale”按鈕。這是顯示示波器波形的zui快速的方法,。在許多情況下,,這已足以使用戶了解之后出現(xiàn)的情況。
進(jìn)行觸發(fā)以調(diào)試模擬問題
如果簡單的觸發(fā)不能夠揭示問題,,下一種方法是尋找簡單的模擬問題,。這里嘗試的主要觸發(fā)模式是毛刺信號、矮脈沖,、上升時間和下降時間,。這些模式可揭示出大多數(shù)常見的模擬問題。另外,,用戶還可以使用建立和保持觸發(fā),,以確保建立和保持觸發(fā)不是問題的根源。
在這種情況下,,示波器應(yīng)使用標(biāo)準(zhǔn)可重復(fù)模式來運(yùn)行,。(對于大多數(shù)示波器來說,這簡稱為“Run”),。
某些模擬問題(例如非單調(diào)邊沿)只有使用軟件觸發(fā)才能夠檢測出來,。在這種情況下,,請確保將硬件觸發(fā)和軟件觸發(fā)設(shè)置為相同的邊沿和斜率,。這是一個很常見的問題,它使用戶誤以為沒有觸發(fā)發(fā)生,,實(shí)際上是由于硬件觸發(fā)設(shè)置不正確造成的,。
如果您注意到波形在示波器上顯示時間非常短,,您可以使用軟件觸發(fā)中的區(qū)域觸發(fā)對其進(jìn)行觸發(fā)。區(qū)域觸發(fā)允許我們將一部分格子線為“必須交叉”的區(qū)域,,只有波形穿過那個區(qū)域,,示波器才會進(jìn)行觸發(fā)?;蛘?,此區(qū)域也可以設(shè)置為“不得交叉”,以便過濾出您不想看到的波形,。
在這種情況下,,將示波器設(shè)置為觸發(fā)模式是非常明智的,如此一來,,在沒有發(fā)現(xiàn)事件時,,示波器就不會進(jìn)行觸發(fā)。這也意味著這個特殊問題并未發(fā)生,,并且可在問題的根源中排除這個問題,。因此,這是一個排除問題的過程,。
進(jìn)行觸發(fā)以調(diào)試軟件或FPGA問題
在前兩種情況下,,示波器是根據(jù)某個特定的模擬問題進(jìn)行觸發(fā)。但是,,在許多情況(例如軟件或FPGA問題)下,,我們的目標(biāo)并不是對問題進(jìn)行觸發(fā),而僅僅是想通過對波形的跟蹤來嘗試著找出邏輯問題,,而不是模擬問題,。
在這種情況下,將示波器設(shè)置為使用深存儲器和單次模式運(yùn)行非常重要,。(對于安捷倫示波器來說,,這是“Single”按鈕,而非“Run”按鈕),。深存儲器為您提供zui大數(shù)量的波形,,這些波形還可以為您提供捕獲問題的*時機(jī)。對于大多數(shù)示波器來說,,無論“TimeperDivision”旋鈕何時改變,,存儲器深度都可進(jìn)行自動設(shè)置,此外,,存儲器深度也可手動設(shè)置,。對于AgilentInfiniium示波器來說,此設(shè)置在“Acquisition”菜單中完成。
觸發(fā)事件應(yīng)設(shè)置為在感興趣區(qū)域的某個地方發(fā)生的已知事件,。zui常見的選項(xiàng)是脈沖,、數(shù)字碼型和串行觸發(fā)。脈沖觸發(fā)是zui簡單的觸發(fā),,因?yàn)樗恍杳}沖長度,。碼型觸發(fā)和串行觸發(fā)非常特殊,因?yàn)樗鼈冎С钟脩籼囟ㄖ?。例如,,常見串行觸發(fā)是對一個特定地址執(zhí)行寫操作。一旦找到感興趣的事件,,那么跟蹤此跡線就會找到問題的根源,。對于串行總線來說,啟動數(shù)據(jù)的串行解碼功能非常有用,。這樣不僅可以顯示模擬波形,,還可將波形轉(zhuǎn)換成數(shù)據(jù)包,從而使通過數(shù)據(jù)進(jìn)行跟蹤變得非常容易,。
觸發(fā)是一個非常強(qiáng)大的示波器特性,,但是通常用戶必須不能于了解簡單的邊沿觸發(fā)。其關(guān)鍵是了解用戶是否正在尋找模擬問題或者正在跟蹤一個邏輯問題,。示波器在這兩方面都可提供出色的功能,,但這取決于用戶使用正確的策略。