您需要同時觀看16位計數(shù)器的輸入和輸出信號,以確定定時錯誤時,選用不正確的工具將會耗費大量時間。采用邏輯分析儀是對于上述問題的最好解決方案。本文將詳細講述邏輯分析儀的基本原理以及它的功能。
關(guān)鍵詞: 邏輯分析儀;采樣;觸發(fā)
引言
一般來說,邏輯分析儀能看到比示波器更多的信號線。對于觀察總線上的定時關(guān)系或數(shù)據(jù) ——例如微處理器地址、數(shù)據(jù)或控制總線時,邏輯分析儀是特別有用的。邏輯分析儀能夠解碼微處理器的總線信息,并以有意義的形式顯示。總之,當您通過了參數(shù)設(shè)計階段,開始關(guān)注許多信號間的定時關(guān)系和需要在邏輯高和低電平碼型上觸發(fā)時,邏輯分析儀就是正確的測試工具。
邏輯分析儀
大多數(shù)邏輯分析儀實際是合二而一的分析儀:一部分是定時分析儀,另一部分是狀態(tài)分析儀。
定時分析儀的信息顯示形式與示波器的相同,水平軸代表時間,垂直軸代表電壓幅度。由于這兩種儀器上的波形都與時間相關(guān),因此稱為“時域”顯示儀。
·選擇正確的采樣方法
定時分析儀好像是一臺具有 1bit 垂直分辨率的數(shù)字示波器。由于只有 1bit 分辨率,因此只能實現(xiàn)兩種狀態(tài) —高或低的顯示。定時分析儀只關(guān)心用戶定義的電壓閾值。如果采樣時信號高于該閾值,就以高或 1 顯示,低于閾值的采樣信號用低或0顯示。從這些采樣點得到一張由 1 和 0 組成,代表輸入波形 1bit 圖的表格。這張表格保存在存儲器中,并可用來重建輸入波形的 1bit 圖,如圖1所示。
圖 1 定時分析儀的采樣點
定時分析儀趨向于把各種信號拉成方波,這似乎會影響到它的可用性,但如果您需要同時觀察幾條甚至幾百條信號線以驗證信號間的定時關(guān)系,那么定時分析儀就是正確選擇。應(yīng)記住每個采樣點都要使用一個存儲器位置。分辨率越高(采樣率越快),采集窗就越短。
·跳變采樣
當我們捕獲如圖2 所示帶有數(shù)據(jù)突發(fā)的輸入線上的數(shù)據(jù)時,我們必須把采樣率調(diào)到高分辨率(例如 4ns),以捕獲開始處的快速脈沖。這意味著具有 4K(4096 樣本)存儲器的定時分析儀在 16.4ms 后將停止采集數(shù)據(jù),使您不能捕獲到第二個數(shù)據(jù)突發(fā)。
圖2 高分辨率采樣
在通常的調(diào)試工作中,我們采樣和保存了長時間沒有活動的數(shù)據(jù)。它們使用了邏輯分析儀存儲器,卻不能提供更多的信息。如果我們知道跳變何時產(chǎn)生,是正跳變還是負跳變,就能夠解決這一問題。這一信息是有效使用存儲器的跳變定時基礎(chǔ)。
為實現(xiàn)跳變定時,我們可在定時分析儀和計數(shù)器的輸入處使用“跳變探測器”。現(xiàn)在定時分析儀只保存跳變前的那些樣本,以及兩個跳變之間的時間間隔。采用這種方法,每一跳變就只需使用兩個存儲器位置,輸入無變動時就完全不占用存儲器位置。
在我們的例子中,根據(jù)每一突發(fā)中存在多少脈沖數(shù),現(xiàn)在能捕獲到第二、第三、第四和第五個突發(fā)。并同時保持達到 4ns 的高定時分辨率(圖3)。
圖3 使用跳變探測器采樣
·毛刺捕獲
毛刺脈沖因為會隨機出現(xiàn),造成災(zāi)難性的后果而聲名狼藉。定時分析儀可采樣輸入數(shù)據(jù),保持對采樣間所產(chǎn)生任何跳變的跟蹤,容易捕獲毛刺。在分析儀中,把毛刺定義為相鄰兩次采樣間穿越邏輯閾值一次以上的任何跳變。為了識別毛刺,我們要“教會”分析儀保持對所有多個異常跳變的跟蹤,并將它們作為毛刺顯示。
毛刺顯示是一種很有用的功能,能夠提供毛刺觸發(fā)和顯示超前毛刺的數(shù)據(jù),從而幫助我們確定毛刺產(chǎn)生的原因。這種能力也使得分析儀只捕獲毛刺產(chǎn)生時所要的數(shù)據(jù)。
回顧本節(jié)開始時提到的例子。我們有一個系統(tǒng)周期性地因毛刺出現(xiàn)在一條信號線上而崩潰。由于毛刺發(fā)生具有偶然性,您即使能保存整個時間上所有數(shù)據(jù)(假定有足夠的存儲能力),也很難在巨大的信息量中找到它。另一種方法是使用沒有毛刺觸發(fā)功能的分析儀,您必須坐在儀器前,按運行按鈕,等待看到毛刺為止。
·定時分析儀的觸發(fā)
邏輯分析儀連續(xù)捕獲數(shù)據(jù),并在找到跟蹤點后停止采集。這樣,邏輯分析儀就能顯示出被稱為負時間的跟蹤點前的信息,以及跟蹤點后的信息。
碼型觸發(fā)
設(shè)置定時分析儀的跟蹤特性與設(shè)置示波器的觸發(fā)電平和斜率稍有一點區(qū)別。許多分析儀是在跨多條輸入線的高和低碼型上觸發(fā)。為使某些用戶更感方便,絕大多數(shù)分析儀的觸發(fā)點不僅可用二進制( 1 和 0),而且可用十六進制、八進制、ASCII或十進制設(shè)置。在查看4、 8、16、24、32bit寬的總線時,使用十六進制的觸發(fā)點會更加方便。設(shè)想如果用二進制設(shè)置24bit總線就會麻煩得多。
邊沿觸發(fā)
在調(diào)節(jié)示波器的觸發(fā)電平旋鈕時,您知道是在設(shè)置電壓比較器的電平,這個電平將告訴示波器在輸入電壓穿越該電平時觸發(fā)。定時分析儀的邊沿觸發(fā)與其基本相似,但觸發(fā)電平已預(yù)設(shè)置到邏輯閾值。大部分邏輯器件都與電平相關(guān),這些器件的時鐘和控制信號通常都對邊沿敏感。邊沿觸發(fā)使您能與器件時鐘同步地捕獲數(shù)據(jù)。您能告訴分析儀在時鐘邊沿產(chǎn)生(上升或下降)時捕獲數(shù)據(jù),并獲取移位寄存器的所有輸出。當然在這種情況下,必須延遲跟蹤點,以顧及通過移位寄存器的傳播延遲。
狀態(tài)分析儀基礎(chǔ)
如果您從未使用過狀態(tài)分析儀,您可能認為這是一種極為復(fù)雜的儀器,需要花很多時間才能掌握使用方法。事實上,許多硬件設(shè)計師發(fā)現(xiàn)狀態(tài)分析儀中有許多極有價值的工具。
一個邏輯電路的“狀態(tài)”是數(shù)據(jù)有效時對總線或信號線的采樣樣本。例如,取一個簡單的“D”觸發(fā)器。“D”輸入端的數(shù)據(jù)直到時鐘正沿到來時才有效。這樣,觸發(fā)器的狀態(tài)就是正時鐘沿產(chǎn)生時的狀態(tài)。
現(xiàn)在,假定我們有8個這樣的觸發(fā)器并聯(lián)。所有8個觸發(fā)器都連到同樣的時鐘信號上。當時鐘線上產(chǎn)生正跳變時,所有8個觸發(fā)器都要捕獲各自“D”輸入的數(shù)據(jù)。這樣,每當時鐘線上正跳變時就產(chǎn)生一個狀態(tài),這8條線類似于微處理器總線。如果我們把狀態(tài)分析儀接到這8條線上,并告訴它在時鐘線正跳變時收集數(shù)據(jù),狀態(tài)分析儀將照此執(zhí)行。除非時鐘跳到高電平,否則輸入的任何活動將不被狀態(tài)分析儀捕獲。
定時分析儀由內(nèi)部時鐘控制采樣,因此它是對被測系統(tǒng)作異步采樣。而狀態(tài)分析儀從系統(tǒng)得到采樣時鐘,因此它是對系統(tǒng)同步采樣。狀態(tài)分析儀通常用列表方式顯示數(shù)據(jù),而定時分析儀用波形圖顯示數(shù)據(jù)。
理解時鐘
在定時分析儀中,采樣是沿著單一內(nèi)部時鐘的方向進行,從而使事情非常簡單。但微處理器系統(tǒng)中往往會有若干個“時鐘”。假定某個時刻我們要在RAM中的一個特定地址上觸發(fā),并查看所保存的數(shù)據(jù);再假定使用的微處理器是Zilog公司的 Z80。
為了用狀態(tài)分析儀從Z80捕獲地址,我們要在MREQ線為低時進行捕獲。而為了捕獲數(shù)據(jù),需要在WR線為低(寫周期)或RD線為低(讀周期)時讓分析儀采樣。某些微處理器可在同一條線上對數(shù)據(jù)和地址進行多路轉(zhuǎn)換。分析儀必須能讓時鐘信息來自相同的信號線,而非來自不同的時鐘線。
圖 4 RAM 定時波形圖
在讀寫周期期間,Z80首先把一個地址放在地址總線上。接著設(shè)定MREQ線在該地址對存儲器的讀或?qū)懹行АW詈蟾鶕?jù)現(xiàn)在是讀還是寫對RD或WR線斷言。WR線只有在總線數(shù)據(jù)有效后才被設(shè)定。這樣,定時分析儀就作為多路分配器在適當?shù)臅r間捕獲地址,然后在同一信號線上捕獲產(chǎn)生的數(shù)據(jù)。
觸發(fā)狀態(tài)分析
像定時分析儀一樣,狀態(tài)分析儀也提供限定所要保存數(shù)據(jù)的功能。如果我們要尋找地址總線上由高低電平構(gòu)成的特定碼型,可告訴分析儀在找到該模式時開始保存,直到分析儀的存儲器完全裝滿。
這些信息可以用十六進制或二進制格式顯示。但在解碼至匯編碼時,十六進制可能更為方便。在使用處理器時,應(yīng)把這些特定的十六進制字符與處理器指令相比較。大多數(shù)分析儀制造商設(shè)計了稱為反匯編器的軟件包,這些軟件包把十六進制代碼翻譯成易于閱讀的匯編碼。
圖 5 把十六進制碼翻譯成匯編碼
序列級和選擇性保存
狀態(tài)分析儀具有幫助觸發(fā)和存儲的“序列級”數(shù)據(jù)。序列級使您能比單一觸發(fā)點更精確地限定要保存的數(shù)據(jù)。也就是說可使用更精確的數(shù)據(jù)窗,而不必存儲不需要的信息。
選擇性的保存意味著可只保存較大整體中的一部分。例如,假定我們有一個計算給定數(shù)平方的匯編例程。如果該例程不能正確計算平方,我們就告訴狀態(tài)分析儀捕獲這一例程。具體做法是先讓狀態(tài)分析儀尋找該例程的起點。當它找到起始地址時,我們再告訴它尋找終止地址,并保存兩者之間的所有信息。當發(fā)現(xiàn)例程結(jié)束時,我們告訴分析儀停止狀態(tài)保存。
探測解決方案
為進行調(diào)試,向數(shù)字系統(tǒng)施加的物理連接必須方便可靠,對被調(diào)試的目標系統(tǒng)只有最小的侵擾,這樣才能使邏輯分析儀得到精確的數(shù)據(jù)。
普通的探測解決方案是每條電纜有 16 個通道的無源探頭。每個通道的兩端用100kΩ并聯(lián)8pF 端接。您可將這種無源探頭與示波器探頭的電氣性能作一比較。無源探測系統(tǒng)除了更小的尺寸和更高的可靠性外,還能把探頭端接在與目標系統(tǒng)的連接點上。這就避免了從大的有源探頭接口夾到被測電路之間大量引線所產(chǎn)生的附加雜散電容。因此您的被測電路就只“看到”8pF的負載電容,而不再是前述探測系統(tǒng)的16pF。
圖6 分析探頭
把狀態(tài)分析儀接到微處理器系統(tǒng)需要進行機械連接和時鐘選擇。某些微處理器可能需要外部電路對一些信號進行解碼,才能得到用于狀態(tài)分析儀的時鐘。分析探頭不僅能提供與目標系統(tǒng)快速、可靠和正確的機械連接,而且能提供必要的電氣適配能力,如為正確捕獲系統(tǒng)運行提供的時鐘和多路分配器。
結(jié)語
絕大多數(shù)邏輯分析儀都由定時分析儀和狀態(tài)分析儀這兩個主要部分組成。定時分析儀更適于處理多線的總線型結(jié)構(gòu)或應(yīng)用。它能夠在信號線上的碼型上,甚至在毛刺上觸發(fā)。狀態(tài)分析儀常被看成是一種軟件工具,事實上它在硬件設(shè)定也很有用。由于它從被測系統(tǒng)得到時鐘,因此捕獲的數(shù)據(jù)也就是系統(tǒng)在時鐘上的數(shù)據(jù)。邏輯分析儀為數(shù)字電路設(shè)計工程師提供了強大的設(shè)計工具。
評論