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