基于單片機的高速信號測試接口板的實現(xiàn)
在數(shù)字電路設(shè)計和調(diào)試中,對設(shè)計單元電路的性能進行實時測試是必不可少的環(huán)節(jié)。很多情況下,需要通過計算機的比較和分析,來測試設(shè)計的電路的性能是否達到要求。這就需要設(shè)計一個測試接口板,將計算機產(chǎn)生的測試數(shù)據(jù)送入單元電路,再將單元電路的輸出結(jié)果送回計算機。
本文引用地址:http://www.ex-cimer.com/article/171724.htm在電路測試接口板的設(shè)計過程中,常常會遇到總線時鐘頻率較高(如40 MHz以上)、總線寬度較寬(如36 b)、要求測試的數(shù)據(jù)量較大(幾Mb/s)的單元電路。這時實時地進行數(shù)據(jù)的雙向傳輸比較困難,因為不論采用總線頻率較高的PCI數(shù)據(jù)總線或USB總線[1],都達不到系統(tǒng)要求的數(shù)據(jù)傳輸速率,所以必須進行數(shù)據(jù)的緩存??紤]到PCI總線和USB總線的接口電路復(fù)雜、開發(fā)周期長,本文介紹一種采用單片機為控制單元,通過RS232C接口,使用高速FIFO存儲器件作為緩沖,在單元電路與計算機之間傳輸數(shù)據(jù)的方案。該方案實現(xiàn)簡單,開發(fā)周期短,完全可以滿足對于上述的數(shù)字單元電路的測試要求。
這里以測試總線頻率40 MHz,數(shù)據(jù)寬度32 b的單元電路為例,介紹用單片機和FIFO實現(xiàn)的高速信號測試接口板方案,整個測試系統(tǒng)結(jié)構(gòu)如圖1所示。
1 系統(tǒng)概述
整個系統(tǒng)主要由單片機、FIFO芯片、MAX232芯片以及D觸發(fā)器芯片構(gòu)成。圖2是系統(tǒng)的原理簡圖,圖中給出 了一些重要的器件和控制信號。
系統(tǒng)的工作流程如下:首先將測試數(shù)據(jù)從計算機的RS232C口送入單片機,單片機將其變?yōu)? b并行數(shù)據(jù)寫入FIFO1,這期間不對FIFO1進行讀操作。FIFO1滿后,被測板以40 MHz的總線時鐘頻率并行讀取FIFO1,同時被測板的輸出以同樣速率寫入FIFO2。FIFO2滿后,再通過RS232C口將FIFO2中的數(shù)據(jù)讀入PC機,其中的控制操作由單片機及外圍電路來完成。下面將分4個步驟介紹系統(tǒng)的工作過程,其中前2個步驟是測試數(shù)據(jù)從計算機傳送到被測板的過程,后面2個步驟描述了被測板的輸出結(jié)果送回計算機的過程。
1.1 RS232C口與FIFO1的通信(數(shù)據(jù)從RS232C口輸入)
測試數(shù)據(jù)以串行方式從計算機的RS232C口輸出,通過MAX232電平轉(zhuǎn)換后進入單片機的RXD口,再轉(zhuǎn)換為 8 b并行數(shù)據(jù)從P2口寫入到FIFO1。單片機除了控制FIFO1和FIFO2的復(fù)位RES(圖2中未標出)、FIFO1的寫使能WEN1以及FIFO1的寫時鐘WCLK,還發(fā)出一個信號用來輔助讀取FIFO1。
由于FIFO1的讀取被設(shè)置為在數(shù)據(jù)寫入時無效,只有寫滿了以后才允許被測板讀取,因此對于FIFO1滿狀態(tài)的判斷及控制非常重要。這里通過計數(shù)方式和查詢方式同時確定其滿狀態(tài),方法如下:在單片機內(nèi)設(shè)置一個計數(shù)值為256 k的計數(shù)器,每送出一個字節(jié),計數(shù)器值減1。當計數(shù)器減到0,查詢FIFO1的管腳的狀態(tài),若為低電平,則開啟,允許被測板從FIFO1中讀出數(shù)據(jù),否則向計算機發(fā)出錯誤信號,重新接收數(shù)據(jù)。
1.2 FIFO1與被測板的通信(數(shù)據(jù)輸入被測板)
FIFO1與被測板的通信連接包括數(shù)據(jù)線以及讀允許REN1。REN1的的作用是控制被測板的讀取過程,只有當此信號為低電平,被測板才能從FIFO1中讀數(shù)據(jù)。
由于被測板的讀取速度很高,而單片機的指令周期相對慢得多,當FIFO1被讀空后,如果使用單片機來控制讀允許使其恢復(fù)到高電平,可能在關(guān)閉讀允許以前被測板已經(jīng)讀入了很多無用數(shù)據(jù),所以這里采用FIFO1的空標志位通過D觸發(fā)器,和單片機的讀允許端一起組成控制信號具體電路如圖3(a)所示。
評論