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