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