在進(jìn)行相關(guān)閱讀之前,讀者務(wù)必了解一些名詞的定義。如邏輯份析儀(Logic Analyzer)為可測量隨著時(shí)間而變化電壓的儀器。相較于傳統(tǒng)示波器顯示連續(xù)性電壓值變化,邏輯份析儀分別顯示「高」與「低」兩值的電壓,且它的輸入通道數(shù)比示波器多,一般最少有8個(gè)通道,多者超過100個(gè)通道。在一般情況下,一個(gè)通道相當(dāng)于1位元。圖形發(fā)生器(Pattern Generator)則屬于信號產(chǎn)生儀的一種,它可以產(chǎn)生數(shù)位信號且輸出通道數(shù)也非常多,能以一定周期改變相對通道的圖案,同時(shí)一邊進(jìn)行輸出動作。
邏輯份析儀/圖形發(fā)生器結(jié)構(gòu)復(fù)雜
由USB邏輯份析儀與圖形發(fā)生器電路基板(圖1)的實(shí)際外觀可知,電路的導(dǎo)線與扁平封裝元件較多,因此較為復(fù)雜。
PIC/CPLD提升邏輯份析儀執(zhí)行能力
?被測對象(DUT)高速采集8位元的信號轉(zhuǎn)送至靜態(tài)隨機(jī)存取記憶體。
?靜態(tài)隨機(jī)存取記憶體將8位元的信號轉(zhuǎn)送、下載至個(gè)人電腦。
?上述采集與下載指令來自電腦,因此必須作指令解讀作業(yè)。
?通知電腦發(fā)現(xiàn)觸發(fā)模式(Trigger Mode)。
不過,在這些主要功能中,由于從被測對象中采集信號需要較強(qiáng)大的需求,因而委托復(fù)雜可程式邏輯裝置(CPLD)進(jìn)行處理;至于轉(zhuǎn)送從靜態(tài)隨機(jī)存取記憶體(SRAM)下載來的信號、以及下載至個(gè)人電腦所需的指令解讀作業(yè),則由個(gè)人網(wǎng)際網(wǎng)路通訊器(PIC)以較低速進(jìn)行處理;至于發(fā)現(xiàn)觸發(fā)模式的工作,則由PIC與CPLD共同處理。
圖形發(fā)生器須置USB平行轉(zhuǎn)換晶片
圖形發(fā)生器的主要功能為高速產(chǎn)生8位元的信號、解讀個(gè)人電腦傳來的指令,以變更圖案產(chǎn)生方法。份別由CPLD與PIC進(jìn)行處理。由于PIC16F877A并無USB通訊功能,因此其與個(gè)人電腦間須設(shè)置USB平行轉(zhuǎn)換晶片F(xiàn)T245BM當(dāng)作介面。
從主要元件結(jié)構(gòu)來看,圖1的外形尺寸為150毫米×100毫米雙面電路板,上方并設(shè)有CPLD電路板;至于CPLD介面則使用EPM240T100C5晶片,組裝在CPLD電路板上;PIC使用PIC16F877A,并利用晶片插座的插拔方式進(jìn)行PIC程式的輸入程式化作業(yè);而USB的介面則使用FT245BM。
值得一提的是,USB與電腦的通訊都利用圖1左側(cè)的USB連接器進(jìn)行,在其她元件部份,靜態(tài)隨機(jī)存取記憶體使用CY7C1021BV33-10ZI;比較器(Regulator)使用TA48M033S,其屬于低降下類型(Drop Type)3.3伏特輸出,可供給CPLD電源。時(shí)脈器使用FXO-37F,屬于表面封裝型50MHz石英振蕩器,CPLD根據(jù)此時(shí)脈器動作,因此邏輯份析儀的時(shí)序速度與圖形發(fā)生器的圖案產(chǎn)生速度同樣是50MHz。
保險(xiǎn)絲使用可復(fù)原式保險(xiǎn)絲REX025,該保險(xiǎn)絲即使在高溫融斷時(shí),待溫度降低就能夠恢復(fù)原狀,因此不需任何更換作業(yè)。尤其是使用USB電源驅(qū)動電路時(shí),建議盡量使用可復(fù)原式保險(xiǎn)絲,避免實(shí)際應(yīng)用電流超過500毫安培。
邏輯份析儀與圖形發(fā)生器的輸入端同樣都設(shè)有8個(gè)探針,CPLD基板設(shè)有25接腳的母連接器,其可利用公-公直線平行纜線(Straight Parallel Cable)進(jìn)行CPLD程式作業(yè),此外,CPLD基板還設(shè)有10接腳座,可利用下載纜線ByteBlaster進(jìn)行CPLD程式作業(yè)。圖2是硬體方塊圖,圖3~圖8是各單元的電路圖。
CPLD周邊電路的連接
從CPLD EPM240T100C5(MAXⅡ)的周邊電路圖(圖3)可知,圖中50MHz石英振蕩器與3.3伏特比較器須以焊接方式固定在電路基板上,CPLD的程式化作業(yè)則利用D sub 25接腳母連接器或10接腳的座進(jìn)行。
若無CPLD電路基板時(shí),必須將CPLD電路基板焊接于本周邊電路基板上,此時(shí)無D sub 25接腳連接器,就只能利用ByteBlaster進(jìn)行程式化作業(yè)。
PIC周邊電路的連接
微處理器PIC16F877A的周邊電路利用本電路控制硬體系統(tǒng)(圖4)。圖4的USB匯流排連接至FT245BM,可與電腦進(jìn)行資料相互傳輸,若連接至復(fù)雜可程式邏輯裝置,則能與復(fù)雜可程式邏輯裝置進(jìn)行資料相互傳輸。在時(shí)脈方面則使用20MHz陶瓷振蕩器與5伏特電源。
USB介面周邊電路的連接
圖5是USB介面FT245BM周邊電路圖,利用該電路的連接進(jìn)行USB平行轉(zhuǎn)換。該晶片會將USB連接器的端子輸入資料當(dāng)作平行資料(Parallel Data)輸出至RD0~RD7;反之,則可將輸入至RD0~RD7的平行資料當(dāng)做序號,輸出至USB連接器的D,D-端子。
FT245BM的時(shí)脈器使用20MHz陶瓷振蕩器,電源為5伏特。USB連接器使用基板組裝用B型母連接器,其中端子被當(dāng)作本電路板5伏特電源使用。
靜態(tài)隨機(jī)存取記憶體周邊電路的連接
圖6則是靜態(tài)隨機(jī)存取記憶體CY7C1021B V33-10Z1的周邊電路圖,靜態(tài)隨機(jī)存取記憶體的位元寬度為16位元,位址空間為64K。
由于此周邊電路并未完全使用靜態(tài)隨機(jī)存取記憶體的位址空間,僅使用8位元的位元寬度與4K的位址空間,因此8位元的資料與12位元的位址空間連接至CPLD時(shí),DUT的8位元資料會透過CPLD將4096個(gè)資料寫入靜態(tài)隨機(jī)存取記憶體,反之,則從靜態(tài)隨機(jī)存取記憶體讀取的資料,再透過CPLD轉(zhuǎn)送至PIC。靜態(tài)隨機(jī)存取記憶體多余端子包括8位元的資料與4位元的位址空間未來可作擴(kuò)充用,同時(shí)可對13接腳連接器進(jìn)行資料輸出。
靜態(tài)隨機(jī)存取記憶體的讀、寫、晶片設(shè)定、輸出設(shè)定皆透過CPLD控制。此靜態(tài)隨機(jī)存取記憶體的讀、寫只需10奈秒,因此可達(dá)最高頻率100MHz的資料讀取、寫入。此外,該電路的寫入頻率為50MHz、讀取頻率為100MHz、以及使用3.3伏特電源。
探針用連接器的連接方法
連接邏輯份析儀探針的連接器與連接圖形發(fā)生器的連接器的連接方法(圖7),事實(shí)上直接用焊接方式將探針、端子固定,或是使用連接器都可以達(dá)到預(yù)期效果。
CPLD電路基板連接器的連接方法
圖9是CPLD電路基板連接器的連接方法,須配合CPLD電路基板(圖8)的連接器孔穴尺寸、位置,進(jìn)行布線與元件設(shè)置(Layout)。
CPLD具高速處理能力
CPLD的主要功能有三項(xiàng)份別為從DUT高速采集8位元的信號轉(zhuǎn)送至靜態(tài)隨機(jī)存取記憶體、高速產(chǎn)生8位元的信號并輸入、發(fā)現(xiàn)觸發(fā)模式。
亦即由復(fù)雜可程式邏輯裝置并聯(lián)高速進(jìn)行以上工作,若這些工作全部委托類似PIC微處理器處理顯然不妥,因此皆交由CPLD進(jìn)行處理。
圖9是CPLD內(nèi)部電路的時(shí)脈結(jié)構(gòu),圖中的靜態(tài)隨機(jī)存取記憶體控制器主要功能是控制靜態(tài)隨機(jī)存取記憶體的讀寫動作,DUT的8位元資料與50MHz同步寫入靜態(tài)隨機(jī)存取記憶體,由于時(shí)脈的一個(gè)行程須寫入8位元,因此邏輯份析儀的通道數(shù)為8個(gè)通道,時(shí)序速度變成50MHz。
靜態(tài)隨機(jī)存取記憶體的寫入由CPLD進(jìn)行主導(dǎo),讀取則由PIC進(jìn)行,PIC一邊監(jiān)控從CPLD的「備妥讀取」,在一旦變成可讀取狀態(tài)時(shí),輸出頻閃觀測器(Strobe),便立即讀取靜態(tài)隨機(jī)存取記憶體的資料;換言之,讀取速度與從PIC的讀取Strobe頻率相同時(shí),會轉(zhuǎn)變?yōu)楸容^低速的狀態(tài),大約在100kHz左右。
觸發(fā)控制器會不斷與DUT資料、觸發(fā)模式進(jìn)行比較,并將一致的資訊傳給靜態(tài)隨機(jī)存取記憶體控制器。
產(chǎn)生儀(Generator)控制器會產(chǎn)生8位元的圖案輸出,產(chǎn)生儀控制器的通道數(shù)為8個(gè),圖案更新速度變成50MHz。
電阻控制器內(nèi)部有8位元的電阻可利用PIC改寫,此外,電阻值會傳送到其她模組。
復(fù)雜可程式邏輯裝置的內(nèi)部電路呈現(xiàn)雙層結(jié)構(gòu)狀,CPLD頂端為上層結(jié)構(gòu),該模組的輸出、入同時(shí)也是CPLD的輸出、入。
PIC為電路基板控制功臣
控制用的微電腦使用PIC16F877A晶片,為PIC16F877的改良版,兩者主要差異是基準(zhǔn)電壓值與比較儀(Comparator)。
雖然PIC可直接進(jìn)行基板程式化(On Keyboard Programming),不過此電路基板設(shè)有晶片插座,程式化作業(yè)時(shí)須先將PIC從晶片插座拔除,PIC寫入器才可寫入程式。
PIC16F877A的額定電源電壓為4.0~5.5伏特,可直接使用USB的加5伏特端子,該端子的最大容許電流為500毫安培,基于安全考量,可使用上述介紹的可復(fù)原式保險(xiǎn)絲。
USB邏輯份析儀與圖形發(fā)生器的主要構(gòu)成份別是電腦、PIC與CPLD,其中電腦與CPLD的相容性不佳,無法直接傳輸資料,因此PIC成為電腦與CPLD兩者介面,此外,PIC還兼具整體電路基板的控制。
在執(zhí)行具體作業(yè)步驟前,首先解讀電腦指令控制CPLD的模式,最初,將CPLD傳來的資料與電腦作同步傳輸,換言之,CPLD主要工作就是「大量、簡易、高速」,PIC主要工作是「復(fù)雜、少量、低速」。
由于PIC16F877A無通訊模組無法直接與USB的連接器連接,因此必須透過FT245BM與電腦進(jìn)行通訊,F(xiàn)T245BM具備384位元先進(jìn)先出(First-In First-Out, FIFO)緩沖器,不過無法保存超過該容量的資料,因此特別設(shè)定所謂的「口袋(Pocket)」單位,每個(gè)口袋定義為256位元組。
目標(biāo)是將一個(gè)口袋的資料置留在先進(jìn)先出緩沖器內(nèi),接著主機(jī)讀取一個(gè)口袋的資料,立即清空先進(jìn)先出緩沖器,上述作業(yè)反覆16次將16×256=4,096位元組的資料從目標(biāo)轉(zhuǎn)送至主機(jī),最后結(jié)束一連串的下載作業(yè)。
圖10是4096位元組資料從DUT下載至電腦的流動路徑,具體作業(yè)步驟如下:
.硬體初期狀態(tài)變成「采集模式(Ccapture Mode)」,CPLD將DUT傳來的資料寫入靜態(tài)隨機(jī)存取記憶體。
.使用者按下「應(yīng)用運(yùn)轉(zhuǎn)(Run)」按鈕,驅(qū)動負(fù)載診斷(DLD)指令從電腦通過USB介面流至PIC。
.PIC接收上述指令將目標(biāo)設(shè)定成「下載模式」。
.CPLD停止靜態(tài)隨機(jī)存取記憶體的寫入。
.接著電腦將數(shù)據(jù)需求(REQPK)指令傳送至PIC。
.PIC反覆256次「從CPLD接收1位元,立即對USB作1位元轉(zhuǎn)送」,再將一個(gè)封包的資料從CPLD轉(zhuǎn)送到USB介面內(nèi)部的FIFO。
.PC從USB介面內(nèi)部的FIFO讀取資料,同時(shí)收取一個(gè)封包的資料。
.電腦反覆接收REQPK至讀取FIFO資料16次,收取16×256=4,096位元組,之后立即送出采集(CAP)指令,使目標(biāo)折返采集模式。
視窗的應(yīng)用操作技巧
邏輯份析儀與圖形發(fā)生器的USB介面使用FT245BM,使用前須作模組驅(qū)動器的安裝(Device Driver Install)作業(yè),具體方法使用USB監(jiān)控(UsbLogMon)的EXE檔案與Visual C Project進(jìn)行邏輯安裝作業(yè)。
由于本USB邏輯份析儀具備圖形發(fā)生器功能,因此可以將它當(dāng)作DUT使用。如圖1所示邏輯份析儀的8通道探針連接于圖形發(fā)生器。
上述安裝作業(yè)完成后,利用USB連接器將硬體與個(gè)人電腦連接,在EXE Director有UsbLogMon.exe,只要點(diǎn)選兩下就能夠啟動圖13的視窗的應(yīng)用。
接著壓下「運(yùn)轉(zhuǎn)(Run)」鍵,原始設(shè)定為256進(jìn)位輸出的8通道圖形發(fā)生器,可以用邏輯份析儀監(jiān)控(圖14)。不過由于此處該狀態(tài)并未施加觸發(fā),因此壓下「Run」鍵時(shí)波形的位置會朝左右移動,這意味著該狀態(tài)并不是「觸發(fā)模式」而是「內(nèi)同步模式(Free Run Mode)」。
圖14畫面右下方出現(xiàn)「觸發(fā)模式」確認(rèn)盒(Check Box),因此在確認(rèn)后再度按下「Run」按鍵,此時(shí)波形左側(cè)的8個(gè)通道始終變成「0」,數(shù)次按下「Run」按鍵結(jié)果一樣,即以00000000施加觸發(fā)。
寫著「觸發(fā)(7:0)」的編輯盒內(nèi)部有00000000,它是指觸發(fā)圖案(Trigger Patten),接著將它當(dāng)作00000000按下「Run」按鍵就變成圖15的畫面。
由圖15可知波形是從該值產(chǎn)生,事實(shí)上8位元是CPLD的阻抗值,它從電腦通過USB介面?zhèn)魉偷絇IC,PIC再將CPLD的阻抗值觸發(fā)(7:0)改成此值獲得的結(jié)果。