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