狀態(tài)分析儀基礎(chǔ)知識(shí)
大多數(shù)邏輯分析儀是兩種分析儀組合在一起的儀器:第一部分是定時(shí)分析儀,第二部分是狀態(tài)分析儀。
狀態(tài)分析儀通常被視為一種軟件工具。事實(shí)上,它在硬件領(lǐng)域中也有許多用戶。由于狀態(tài)分析儀從被測(cè)系統(tǒng)中獲得時(shí)鐘,因此它可以用來在系統(tǒng)時(shí)鐘上捕捉系統(tǒng)看到的數(shù)據(jù)。
如果工程師從未使用過狀態(tài)分析儀,他可能會(huì)認(rèn)為這是一種異常復(fù)雜的儀器,需要大量的時(shí)間才能掌握其使用方法。事實(shí)上,許多硬件設(shè)計(jì)人員都認(rèn)為狀態(tài)分析儀是一種非常重要的工具。
邏輯電路的“狀態(tài)”是指數(shù)據(jù)有效時(shí)總線或線路的某個(gè)樣點(diǎn)。以簡(jiǎn)單的“D”觸發(fā)電路為例。只有在正向時(shí)鐘邊沿出現(xiàn)時(shí),“D”輸入上的數(shù)據(jù)才會(huì) 有效。因此,觸發(fā)器的狀態(tài)是正時(shí)鐘邊沿發(fā)生的時(shí)候。假設(shè)同時(shí)有八個(gè)這樣的觸發(fā)器,所有觸發(fā)器都連接到同一個(gè)時(shí)鐘信號(hào)上。在時(shí)鐘線路上發(fā)生正跳變時(shí),所有八個(gè)觸發(fā)器將捕獲“D”輸入上的數(shù)據(jù)。每次時(shí)鐘線路上有正跳變時(shí),狀態(tài)會(huì)再次發(fā)生。這八條線路類似于一條微處理器總線。如果把一臺(tái)狀態(tài)
分析儀連接到這八條線路上,告訴狀態(tài)
分析儀在時(shí)鐘線路上出現(xiàn)正跳變時(shí)采集數(shù)據(jù),那么
分析儀將采集數(shù)據(jù)。狀態(tài)
分析儀將不會(huì)捕獲輸入上的任何活動(dòng),除非時(shí)鐘變高。定時(shí)
分析儀有一個(gè) 內(nèi)部時(shí)鐘控制采樣,因此它以異步方式對(duì)被測(cè)系統(tǒng)采樣。狀態(tài)
分析儀以同步方式對(duì)系統(tǒng)采樣,因?yàn)樗鼜南到y(tǒng)中獲得采樣時(shí)鐘。狀態(tài)
分析儀一般以列表格式顯示數(shù)據(jù),定時(shí)
分析儀則作為波形圖顯示數(shù)據(jù)。
了解時(shí)鐘
在定時(shí)
分析儀中,采樣由單個(gè)內(nèi)部時(shí)鐘控制,因此操作非常簡(jiǎn)單。但在微處理器領(lǐng)域中,一個(gè)系統(tǒng)可能會(huì)有多個(gè)時(shí)鐘。假設(shè)工程師希望觸發(fā)RAM中 的某個(gè)地址,查看這個(gè)地址中存儲(chǔ)的數(shù)據(jù)。假設(shè)系統(tǒng)使用Zilog Z80。為使用狀態(tài)
分析儀從Z80中捕獲地址,必須在MREQ線路變低時(shí)捕獲。而為捕獲數(shù)據(jù),
分析儀應(yīng)在寫入周期(WR)線路變低或在讀取周期(RD)變 低時(shí)采樣。某些處理器復(fù)用同一條線路上的數(shù)據(jù)和地址。
分析儀必須能夠從同一線路、但從不同時(shí)鐘中輸入時(shí)鐘信息。
圖4 RAM定時(shí)波形
在讀取或?qū)懭胫芷谥,Z80先把一個(gè)地址放在地址總線上,然后確認(rèn)MREQ,表明這個(gè)地址對(duì)存儲(chǔ)器讀取或?qū)懭胧怯行У。最后,確認(rèn)RD或 WR線路,具體視操作是讀取還是寫入而定。只有在總線上的數(shù)據(jù)有效后,才確認(rèn)WR線路。因此,定時(shí)
分析儀作為解復(fù)用器操作,在適當(dāng)?shù)臅r(shí)間捕獲地址,然后捕捉同一線路上發(fā)生的數(shù)據(jù)。
與定時(shí)
分析儀一樣,狀態(tài)
分析儀能夠判定希望存儲(chǔ)的數(shù)據(jù)質(zhì)量。如果在地址總線上查找某個(gè)由邏輯高和低組成的碼型,那么在找到碼型時(shí),
分析儀可以開始存儲(chǔ)數(shù)據(jù),一直存儲(chǔ)到
分析儀存儲(chǔ)器已滿為止。
圖5 十六進(jìn)制代碼轉(zhuǎn)換成匯編代碼
可以以十六進(jìn)制或二進(jìn)制格式顯示信息。把十六進(jìn)制解碼成匯編代碼可能會(huì)更有效。在處理器中,具體的十六進(jìn)制字符包括一條指令。大多數(shù)
分析儀制造商設(shè)計(jì)了稱為反匯編程序或反向匯編程序的軟件包。這些軟件包的工作是轉(zhuǎn)換十六進(jìn)制代碼,使它們閱讀起來更容易。
了解序列等級(jí)
狀態(tài)
分析儀擁有“序列等級(jí)”,協(xié)助進(jìn)行觸發(fā)和存儲(chǔ)。序列等級(jí)可以比單個(gè)觸發(fā)點(diǎn)更準(zhǔn)確地判定數(shù)據(jù)存儲(chǔ)。這意味著可以準(zhǔn)確地縮小數(shù)據(jù)范圍,而不必存儲(chǔ)不需要的信息。序列等級(jí)通常采用下面的形式:
1 find xxxx
else on xxxx go to level x 2 then find xxxx
else on xxxx go to level x 3 trigger on xxxx
選擇性存儲(chǔ),節(jié)約存儲(chǔ)容量和時(shí)間
選擇性存儲(chǔ)是指只存儲(chǔ)較大的整個(gè)數(shù)據(jù)集合中的部分?jǐn)?shù)據(jù)。例如,假設(shè)有一個(gè)匯編程序,計(jì)算某個(gè)數(shù)值的平方值。如果這個(gè)程序沒有正確計(jì)算平方值,那么用戶會(huì)告訴狀態(tài)
分析儀捕獲該程序。首先,用戶要告訴
分析儀找到這個(gè)程序的起點(diǎn)。在找到開始地址時(shí),它會(huì)尋找結(jié)束地址,同時(shí)存儲(chǔ)開始地址和結(jié)束地址 之間的全部數(shù)據(jù)。在發(fā)現(xiàn)這個(gè)程序結(jié)束時(shí),
分析儀將停止存儲(chǔ)(不存儲(chǔ)任何狀態(tài))。
怎樣連接目標(biāo)系統(tǒng)
前面我們討論了
示波器與定時(shí)
分析儀和狀態(tài)
分析儀之間的部分區(qū)別。在使用這些新工具之前,我們有必要提一下探測(cè)系統(tǒng)。邏輯
分析儀探頭可以把大量的通道簡(jiǎn)便地連接到目標(biāo)系統(tǒng),但這要以降低被測(cè)信號(hào)的幅度精度為代價(jià)。傳統(tǒng)上,邏輯
分析儀使用有源探頭適配夾,適配夾內(nèi)置信號(hào)檢測(cè)電路,可以檢測(cè)8條通 道的電容,每條通道總共16pF。
探測(cè)解決方案
在調(diào)試中,到數(shù)字系統(tǒng)的物理連接必須可靠、方便,為邏輯
分析儀提供準(zhǔn)確的數(shù)據(jù),而且對(duì)被調(diào)試的目標(biāo)系統(tǒng)的插入影響達(dá)到最小。常見的探測(cè)解決方案是每條電纜16條通道的無源探頭。每條通道兩端帶有100kΩ和8pF端子?梢詮碾姎饨嵌茸钣行У乇容^無源探頭與
示波器探頭。除體積小、可靠性高以 外,無源探測(cè)系統(tǒng)的優(yōu)勢(shì)在于,探頭剛好端接在目標(biāo)系統(tǒng)的連接點(diǎn)上,從而避免了從較大有源適配夾到被測(cè)電路的導(dǎo)線所產(chǎn)生的額外寄生電容。結(jié)果,被測(cè)電路只“ 看到”8pF的負(fù)荷電容,而不是以前探測(cè)系統(tǒng)的16pF負(fù)荷電容。
分析探頭和其他配件
把狀態(tài)
分析儀連接到微處理器系統(tǒng)上要求一定的機(jī)械連接和時(shí)鐘選擇工作。記住,在總線上的數(shù)據(jù)或地址有效時(shí),必須為狀態(tài)
分析儀輸入時(shí)鐘。對(duì)某些微處理器,可能必須使用外部電路解碼多個(gè)信號(hào),為狀態(tài)
分析儀導(dǎo)出時(shí)鐘。分析探頭不僅為目標(biāo)系統(tǒng)提供了快速、可靠、正確的機(jī)械連接,還提供了必要的電氣適 配功能,如時(shí)鐘輸入和解復(fù)用,以正確捕獲系統(tǒng)操作。
圖6 分析探頭