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