摘 要:介紹了一種基于單片機(jī)的高速信號(hào)測(cè)試接口板,通過該測(cè)試板連接計(jì)算機(jī)與數(shù)字單元電路,可以在計(jì)算機(jī)上比較和分析高速數(shù)字單元電路的短時(shí)輸入和輸出,從而測(cè)試其電路性能。該測(cè)試接口板設(shè)計(jì)簡(jiǎn)單,易于實(shí)現(xiàn),應(yīng)用靈活,在驗(yàn)證FPGA電路性能方面得到了實(shí)際應(yīng)用。<!--摘要CH(結(jié)束)←-->
<!--→關(guān)鍵CH(開始)--> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);FIFO;電路測(cè)試;接口<!--關(guān)鍵CH(結(jié)束)←--><!--→作者EN(開始)-->
<!--關(guān)鍵EN(結(jié)束)←-->
在數(shù)字電路設(shè)計(jì)和調(diào)試中,對(duì)設(shè)計(jì)單元電路的性能進(jìn)行實(shí)時(shí)測(cè)試是必不可少的環(huán)節(jié)。很多情況下,需要通過計(jì)算機(jī)的比較和分析,來測(cè)試設(shè)計(jì)的電路的性能是否達(dá)到要求。這就需要設(shè)計(jì)一個(gè)測(cè)試接口板,將計(jì)算機(jī)產(chǎn)生的測(cè)試數(shù)據(jù)送入單元電路,再將單元電路的輸出結(jié)果送回計(jì)算機(jī)。
在電路測(cè)試接口板的設(shè)計(jì)過程中,常常會(huì)遇到總線時(shí)鐘頻率較高(如40 MHz以上)、總線寬度較寬(如36 b)、要求測(cè)試的數(shù)據(jù)量較大(幾Mb/s)的單元電路。這時(shí)實(shí)時(shí)地進(jìn)行數(shù)據(jù)的雙向傳輸比較困難,因?yàn)椴徽摬捎每偩頻率較高的PCI數(shù)據(jù)總線或USB總線[1],都達(dá)不到系統(tǒng)要求的數(shù)據(jù)傳輸速率,所以必須進(jìn)行數(shù)據(jù)的緩存?紤]到PCI總線和USB總線的接口電路復(fù)雜、開發(fā)周期長(zhǎng),本文介紹一種采用單片機(jī)為控制單元,通過RS232C接口,使用高速FIFO存儲(chǔ)器件作為緩沖,在單元電路與計(jì)算機(jī)之間傳輸數(shù)據(jù)的方案。該方案實(shí)現(xiàn)簡(jiǎn)單,開發(fā)周期短,完全可以滿足對(duì)于上述的數(shù)字單元電路的測(cè)試要求。
這里以測(cè)試總線頻率40 MHz,數(shù)據(jù)寬度32 b的單元電路為例,介紹用單片機(jī)和FIFO實(shí)現(xiàn)的高速信號(hào)測(cè)試接口板方案,整個(gè)測(cè)試系統(tǒng)結(jié)構(gòu)如圖1所示。
1 系統(tǒng)概述
整個(gè)系統(tǒng)主要由單片機(jī)、FIFO芯片、MAX232芯片以及D觸發(fā)器芯片構(gòu)成。圖2是系統(tǒng)的原理簡(jiǎn)圖,圖中給出 了一些重要的器件和控制信號(hào)。
系統(tǒng)的工作流程如下:首先將測(cè)試數(shù)據(jù)從計(jì)算機(jī)的RS232C口送入單片機(jī),單片機(jī)將其變?yōu)? b并行數(shù)據(jù)寫入FIFO1,這期間不對(duì)FIFO1進(jìn)行讀操作。FIFO1滿后,被測(cè)板以40 MHz的總線時(shí)鐘頻率并行讀取FIFO1,同時(shí)被測(cè)板的輸出以同樣速率寫入FIFO2。FIFO2滿后,再通過RS232C口將FIFO2中的數(shù)據(jù)讀入PC機(jī),其中的控制操作由單片機(jī)及外圍電路來完成。下面將分4個(gè)步驟介紹系統(tǒng)的工作過程,其中前2個(gè)步驟是測(cè)試數(shù)據(jù)從計(jì)算機(jī)傳送到被測(cè)板的過程,后面2個(gè)步驟描述了被測(cè)板的輸出結(jié)果送回計(jì)算機(jī)的過程。
1.1 RS232C口與FIFO1的通信(數(shù)據(jù)從RS232C口輸入)
測(cè)試數(shù)據(jù)以串行方式從計(jì)算機(jī)的RS232C口輸出,通過MAX232電平轉(zhuǎn)換后進(jìn)入單片機(jī)的RXD口,再轉(zhuǎn)換為 8 b并行數(shù)據(jù)從P2口寫入到FIFO1。單片機(jī)除了控制FIFO1和FIFO2的復(fù)位RES(圖2中未標(biāo)出)、FIFO1的寫使能WEN1以及FIFO1的寫時(shí)鐘WCLK,還發(fā)出一個(gè)
由于FIFO1的讀取被設(shè)置為在數(shù)據(jù)寫入時(shí)無效,只有寫滿了以后才允許被測(cè)板讀取,因此對(duì)于FIFO1滿狀態(tài)的判斷及控制非常重要。這里通過計(jì)數(shù)方式和查詢方式同時(shí)確定其滿狀態(tài),方法如下:在單片機(jī)內(nèi)設(shè)置一個(gè)計(jì)數(shù)值為256 k的計(jì)數(shù)器,每送出一個(gè)字節(jié),計(jì)數(shù)器值減1。當(dāng)計(jì)數(shù)器減到0,查詢FIFO1的
管腳的狀態(tài),若
為低電平,則開啟






