隨著數(shù)字信號(hào)處理芯片DSP技術(shù)的發(fā)展,信號(hào)處理的速度越來(lái)越快,容量越來(lái)越大,為了配合不同時(shí)鐘域之間的數(shù)據(jù)傳輸,必須使用FIFO來(lái)達(dá)到數(shù)據(jù)匹配的目的,從而提高系統(tǒng)性能。
1 系統(tǒng)的總體設(shè)計(jì)
系統(tǒng)主要由信號(hào)采集電路AD,F(xiàn)IFO,CPLD和TI公司數(shù)字信號(hào)處理芯片TMS320C25409組成。可以采集32路模擬量,64路開(kāi)關(guān)量。接收到的模擬信號(hào)首先要通過(guò)運(yùn)放放大、采樣、然后通過(guò)模擬電子開(kāi)關(guān)、再實(shí)現(xiàn)A/D轉(zhuǎn)換,轉(zhuǎn)換的數(shù)據(jù)經(jīng)FIFO送至DSP處理,CPLD負(fù)責(zé)控制數(shù)據(jù)采集、A/D轉(zhuǎn)換和數(shù)據(jù)讀寫(xiě)的時(shí)序。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)中使用了2片高速A/D轉(zhuǎn)換芯片AD976,AD976是AD公司生產(chǎn)的模數(shù)轉(zhuǎn)換器,它是采用電荷重分布技術(shù)的逐次逼近型模數(shù)轉(zhuǎn)換器,F(xiàn)IFO選用了IDT公司的IDT7202。它具有輸入和輸出兩套數(shù)據(jù)線,獨(dú)立的讀/寫(xiě)地址指針,在讀/寫(xiě)脈沖的控制下順序地從雙口FIFO讀/寫(xiě)數(shù)據(jù),讀/寫(xiě)地址指針均從第一個(gè)存儲(chǔ)單元開(kāi)始,直到最后一個(gè)存儲(chǔ)單元,然后又回到第一個(gè)存儲(chǔ)單元。系統(tǒng)采用了2片IDT7202將數(shù)據(jù)寬度擴(kuò)展為16位,DO~D1為64路開(kāi)關(guān)量數(shù)據(jù);D2~D15為32路模擬量數(shù)據(jù)。在系統(tǒng)工作時(shí),IDT7202內(nèi)部的仲裁電路通過(guò)對(duì)讀指針和寫(xiě)指針的比較,相應(yīng)給出FIFO的空(EF)和滿(FF)狀態(tài)指示;CPLD可以根據(jù)所獲得的FIFO狀態(tài)標(biāo)志控制FIFO的讀/寫(xiě)時(shí)序,實(shí)現(xiàn)對(duì)FIFO的讀/寫(xiě)操作。
2 FIFO芯片IDT7202的介紹
FIFO(First In First Out)簡(jiǎn)單說(shuō)就是指先進(jìn)先出。作為一種新型大規(guī)模集成電路,F(xiàn)IFO芯片以其靈活、方便、高效的特性,逐漸在高速數(shù)據(jù)采集、高速數(shù)據(jù)處理、高速數(shù)據(jù)傳輸以及多機(jī)處理系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。IDT7202是一種高速、低功耗、雙端口存儲(chǔ)器,輸入、輸出有9位數(shù)據(jù),芯片容量為lK×9 b,輸入/輸出端口由單獨(dú)的時(shí)鐘和使能信號(hào)控制,具有“空”、“滿”、“半滿”和“幾乎空、幾乎滿”標(biāo)志。IDT7202的9位輸入/輸出端口由單獨(dú)的時(shí)鐘和使能信號(hào)控制。輸入端口由寫(xiě)使能信號(hào)(W)控制,當(dāng)寫(xiě)使能W為低時(shí),數(shù)據(jù)被連續(xù)寫(xiě)入FIFO存儲(chǔ)器中。同樣,輸出端口由讀使能信號(hào)(R)控制,而且有一個(gè)輸出使能引腳(OE)。IDT7202還有一個(gè)復(fù)位端(RS),當(dāng)RS為低時(shí),IDT7202的各個(gè)標(biāo)志位全部回到原始狀態(tài)。
3 FIFO與CPLD的接口設(shè)計(jì)
ATERA公司的可編程邏輯器件支持多種I/O電平標(biāo)準(zhǔn),包括3.3 V,2.5 V和1.8 v的LVTTL和LVCMOS電平。由于FIFO必須是5 V供電,所以CPLD將數(shù)據(jù)從FIFo讀人內(nèi)部存儲(chǔ)器時(shí),需要經(jīng)過(guò)一個(gè)電平轉(zhuǎn)換芯片。系統(tǒng)選用了SN74LVCl*5A具有三態(tài)輸出的16位總線收發(fā)器,它支持8/16位數(shù)據(jù)的雙向傳輸。
在FIFO與CPLD數(shù)據(jù)通信接口設(shè)計(jì)中,CPLD主要輸出控制時(shí)序到IDT7202的復(fù)位、寫(xiě)和讀端口,實(shí)現(xiàn)A/D轉(zhuǎn)換數(shù)據(jù)到FIFO的存儲(chǔ),并將數(shù)據(jù)從FIFO讀入CPLD的內(nèi)部存儲(chǔ)器。一旦CPLD檢測(cè)到兩個(gè)AD976的“BUSY”信號(hào)都為高電平,且延時(shí)滿足,CPLD就使FIFO的寫(xiě)信號(hào)“W”輸出為低電平,允許向FIFlO中寫(xiě)入數(shù)據(jù)。同時(shí)檢測(cè)FIFO的滿標(biāo)志信號(hào)FF。若該信號(hào)為低,則說(shuō)明FIFO已經(jīng)寫(xiě)滿,此時(shí),CPLD輸出讀時(shí)序給該FIFO,向FIFO中讀數(shù)據(jù),同時(shí)檢測(cè)FIFO的空標(biāo)志信號(hào)EF,若該信號(hào)為低,則說(shuō)明FIFO中數(shù)據(jù)已經(jīng)讀空,不允許讀數(shù)據(jù),除非再有數(shù)據(jù)寫(xiě)入后。本系統(tǒng)中采用兩片IDT7202,它們的復(fù)位、寫(xiě)和讀端口分別聯(lián)在一起,數(shù)據(jù)同時(shí)讀寫(xiě)。數(shù)據(jù)DO~D8從第一片輸出,D9~D15從第二片輸出,D16,D17空的兩位數(shù)據(jù)接地。DO~D1為64路開(kāi)關(guān)量數(shù)據(jù),64路開(kāi)關(guān)量數(shù)據(jù)由8片8D鎖存器74LS373鎖存直接送至CPLD,開(kāi)關(guān)量采樣時(shí)序、路數(shù)判別由CPLD來(lái)實(shí)現(xiàn)。
IDT7202的異步讀寫(xiě)操作時(shí)序如圖2所示,各參數(shù)說(shuō)明見(jiàn)表1。
4 FIFO與AD976接口設(shè)計(jì)
本系統(tǒng)最多可接32路模擬量,需使用兩片AD976芯片,轉(zhuǎn)換后的16位數(shù)據(jù)分別送入兩個(gè)FIFO中。當(dāng)兩片AD976中的任意一片中的“BUSY”信號(hào)為低電平時(shí),進(jìn)行模數(shù)轉(zhuǎn)換,只有當(dāng)“BUSY”為高時(shí),數(shù)據(jù)才有可能寫(xiě)入至FIFO中,但數(shù)據(jù)是否寫(xiě)入到FIFO中,由FIFO的寫(xiě)使能信號(hào)來(lái)決定,當(dāng)CPLD發(fā)出寫(xiě)使能信號(hào)有效時(shí),轉(zhuǎn)換數(shù)據(jù)才能存儲(chǔ)到FIFO中。A/D轉(zhuǎn)換數(shù)據(jù)的輸出和轉(zhuǎn)換時(shí)鐘有一定的相位差,在CPLD內(nèi)部可通過(guò)延時(shí)或時(shí)鐘管理器來(lái)滿足建立時(shí)間和保持時(shí)間,保證數(shù)據(jù)不失碼地傳輸?shù)紽IFO中。FIFO與AD976均采用5 V電源,故數(shù)據(jù)線直接相連即可,為了減小外界對(duì)數(shù)據(jù)線的干擾,在數(shù)據(jù)線之間串接一個(gè)100~200 Ω的小電阻。
5 結(jié) 語(yǔ)
系統(tǒng)地介紹了一種多路數(shù)據(jù)采集系統(tǒng)中FIFO的設(shè)計(jì)方法。系統(tǒng)可以采集32路模擬量,64路開(kāi)關(guān)量。系統(tǒng)具有抗干擾強(qiáng)、可靠性高、失碼率低等優(yōu)點(diǎn)。該系統(tǒng)可用于采集量比較多的設(shè)備中,已在電力故障監(jiān)測(cè)裝置中得到廣泛的應(yīng)用。
來(lái)源:維庫(kù)開(kāi)發(fā)網(wǎng)