基于單片機的高速信號測試接口板的實(shí)現
當單片機發(fā)出讀允許信號,被測板開(kāi)始讀取數據,當FIFO1為空,EF1通過(guò)D觸發(fā)器關(guān)斷使被測板停止讀數,同時(shí),單片機關(guān)閉FIFO1的讀有效信號。
1.3 被測板與FIFO2的通信(數據從被測板輸出)
被測板與FIFO2的通信連接包括數據線(xiàn)、寫(xiě)允許、反饋線(xiàn)NW、部分復位PRS以及時(shí)鐘CLK。PRS 的作用是部分復位FIFO,即將FIFO的讀寫(xiě)指針歸零,其他設置不變。CLK由被測板提供,作為FIFO1的讀時(shí)鐘和FIFO2的寫(xiě)時(shí)鐘,這里為40 MHz,當測試不同的單元電路時(shí),CLK的頻率也可以隨著(zhù)被測對象的總線(xiàn)頻率改變而改變。
被測板對測試信號進(jìn)行處理后,首先通過(guò)PRS將 FIFO2部分復位,防止由于兩者沒(méi)有同時(shí)復位帶來(lái)的數據誤讀。接著(zhù)被測板將BWEN2置為低,開(kāi)始向FIFO2寫(xiě)數據。
當FIFO2被寫(xiě)滿(mǎn),同樣存在一個(gè)及時(shí)關(guān)閉其寫(xiě)允許的問(wèn)題。這里采用FIFO2的滿(mǎn)標志位FF2通過(guò)D觸發(fā)器關(guān)斷同時(shí)觸發(fā)NW信號反饋給被測板,通知被測板停止輸出數據,如圖3(b)所示。
1.4 FIFO2與RS232口通信(數據從RS232口輸出)
FIFO2的滿(mǎn)狀態(tài)除關(guān)斷其寫(xiě)允許WEN2外,還給單片機一個(gè)中斷信號,單片機收到此中斷后,立即開(kāi)啟讀允許REN2(將其置為低電平),開(kāi)始從FIFO2的空讀取數據,FIFO2的空狀態(tài)判別同樣由計數方式和查詢(xún)方式同時(shí)確定,當計數器為0時(shí),測試FIFO2的空狀態(tài)輸出管腳EF2,若結果為低電平,則通知計算機讀取過(guò)程結束,同時(shí)關(guān)閉REN2,禁止讀出數據,否則通知計算機出錯。
至此,一次完整的測試數據處理傳輸過(guò)程已經(jīng)全部完成。單片機對FIFO進(jìn)行復位,準備下一次工作。用戶(hù)可以分析被測板送回的數據,從而測試單元電路的性能。
2 器件選擇
本方案中單片機采用AT89C51芯片,包括4個(gè)8 b并行I/O口、1個(gè)全雙工的串行口、2個(gè)16 b的定時(shí)/計數器以及2個(gè)中斷源。晶振的工作頻率選用11.095 2 MHz,每個(gè)機器周期約1μs。單片機在這里主要完成與RS232C口和FIFO通信以及整體流程控制的工作。相對于被測電路的數據速率,單片機的處理速度很低,因此如何用相對低速的器件控制高速信號是本方案要解決的關(guān)鍵問(wèn)題之一。本文的方法是采用FIFO和TTL芯片來(lái)實(shí)現數據緩沖和輔助控制。輔助控制器件中的D觸發(fā)器采用速度較高的74S系列芯片,最高工作頻率為110 MHz。
FIFO是一種先進(jìn)先出存儲器,允許同時(shí)異步進(jìn)行讀寫(xiě)操作,讀寫(xiě)之間互相獨立。這里選用的FIFO為IDT72V36100芯片,容量為64 k×36 b,工作頻率高達133 MHz,是IDT公司SuperSyncⅡ系列高性能同步FIFO中的一種。該系列芯片相比以前的FIFO器件有很多獨特的優(yōu)點(diǎn)。例如具有總線(xiàn)匹配功能(即輸入輸出數據總線(xiàn)寬度可以不同,有幾種匹配方式供用戶(hù)設置),還有標志位可編程功能以及重發(fā)功能,使得設計者能夠根據需要設置標志位的地址,并且可以重新讀取已經(jīng)讀過(guò)的數據。這些 優(yōu)點(diǎn)大大增加了設計靈活性,給使用者帶來(lái)很大方便。
本方案中用到FIFO的主要管腳包括寫(xiě)使能WEN1(低有效)、讀使能REN1(低有效)、數據輸入/輸出、總線(xiàn)匹配設置、空標志位(低有效)、滿(mǎn)標志位(低有效)以及讀寫(xiě)時(shí)鐘等。IDT72V36100芯片的總線(xiàn)寬度有5種匹配方式,分別為36 b/36 b,36 b/18 b,36 b/9 b,18 b/36 b及9 b/36 b,本方案選用的是36 b/9 b和9 b/36 b的總線(xiàn)匹配方式。實(shí)際應用中,根據被測電路的實(shí)際情況可以選擇不同的總線(xiàn)匹配方式,使用者根據所選的匹配方式將相應的FIFO總線(xiàn)設置管腳置為高電平或低電平。
3 軟件流程
系統所用到的軟件包括PC機的串口通信程序與單片機程序。PC機的串口通信程序完成的是單純的通過(guò)RS232口與單片機通信的功能,這方面的技術(shù)資料很多,因此不再贅述。這里主要介紹的是單片機程序,該程序執行流程控制功能和與PC機通信功能。
單片機與PC機通信時(shí),接收采用中斷方式,發(fā)送采用查詢(xún)方式。圖4是單片機主程序流程圖。單片機程序中要用到兩個(gè)標志位,即聯(lián)絡(luò )標志位和數據結束標志位,主程序在初始化過(guò)程中應該先將這兩個(gè)標志位清零并設置好計數器。經(jīng)過(guò)初始化以及開(kāi)中斷后,單片機處于等待方式,不斷查詢(xún)數據結束標志位,判斷數據是否接收完畢。當查詢(xún)到標志位被置1后,繼續查詢(xún)FIFO1的滿(mǎn)狀態(tài)管腳,若FIFO1為滿(mǎn),證明數據接收正確,單片機允許讀FIFO2,進(jìn)入等待狀態(tài),等待FIFO2變滿(mǎn)產(chǎn)生的中斷,然后轉向發(fā)送子程序。
評論