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