徐瑞亞 李 玲
摘 要:首先介紹了多路數據采集系統的總體設計、 FIFO芯片IDT7202。然后分別分析了FIFO與CPLD、AD接口的設計方法。由16位模數轉換芯片AD976完成模擬量至位數字量的轉換,由ATERA公司的可編程邏輯器件EPM7256A完成對數據的緩存和傳輸的各種時序控制以及開關量采樣時序、路數判別。采用FIFO器件作為高速A/D與DSP處理器間的數據緩沖,有效地提高了處理器的工作效率。
關鍵詞:IDT7202;CPLD;FIFO;電路設計
中圖分類號:TP23文獻標識碼:B
文章編號:1004-373X(2009)05-096-02
Design of FIFO in Multi-channel Data Acquisition System
XU Ruiya,LI Ling
(Nanjing College of Information Technology,Nanjing,210046,China)
Abstract:The design of multi-channel data acquisition system and FIFO chip IDT7202 are introduced.Then the design method of FIFO with the CPLD,A/D interface are analysed.16 bit analog-digital conversion chip AD976 is applied to complete the analog-to digital conversion,ATERA Company′s programmable logic device EPM7256A is adopted to complete the data cache and transfer time sequence control,and the switching of sampling time sequence and approach discriminant.Using FIFO devices as high-speed A/D time sequence and DSP processor′s data buffer,the efficiency of processor is improved effectively.
Keywords:IDT7202;CPLD;FIFO;circuit design
隨著數字信號處理芯片DSP技術的發展,信號處理的速度越來越快,容量越來越大,為了配合不同時鐘域之間的數據傳輸,必須使用FIFO來達到數據匹配的目的,從而提高系統性能。
1 系統的總體設計
系統主要由信號采集電路AD,FIFO,CPLD和TI公司數字信號處理芯片TMS320C5409組成??梢圆杉?2路模擬量,64路開關量。接收到的模擬信號首先要通過運放放大、采樣、然后通過模擬電子開關、再實現A/D轉換,轉換的數據經FIFO送至DSP處理,CPLD負責控制數據采集、A/D轉換和數據讀寫的時序。系統結構框圖如圖1所示。

系統中使用了2片高速A/D轉換芯片AD976,AD976是AD公司生產的模數轉換器,它是采用電荷重分布技術的逐次逼近型模數轉換器,FIFO選用了IDT公司的IDT7202。它具有輸入和輸出兩套數據線,獨立的讀/寫地址指針,在讀/寫脈沖的控制下順序地從雙口FIFO讀/寫數據,讀/寫地址指針均從第一個存儲單元開始,直到最后一個存儲單元,然后又回到第一個存儲單元。系統采用了2片IDT7202將數據寬度擴展為16位,D0~D1為64路開關量數據;D2~D15為32路模擬量數據。在系統工作時,IDT7202內部的仲裁電路通過對讀指針和寫指針的比較,相應給出FIFO的空(EF)和滿(FF)狀態指示;CPLD可以根據所獲得的FIFO狀態標志控制FIFO的讀/寫時序,實現對FIFO的讀/寫操作。
2 FIFO 芯片IDT7202的介紹
FIFO(First In First Out)簡單說就是指先進先出。作為一種新型大規模集成電路,FIFO芯片以其靈活、方便、高效的特性,逐漸在高速數據采集、高速數據處理、高速數據傳輸以及多機處理系統中得到越來越廣泛的應用。IDT7202是一種高速、低功耗、雙端口存儲器,輸入、輸出有9位數據,芯片容量為1K×9 b,輸入/輸出端口由單獨的時鐘和使能信號控制,具有“空”、“滿”、“半滿”和 “幾乎空、幾乎滿”標志。IDT7202的9位輸入/輸出端口由單獨的時鐘和使能信號控制。輸入端口由寫使能信號(W)控制,當寫使能W為低時,數據被連續寫入FIFO存儲器中。同樣,輸出端口由讀使能信號(R)控制,而且有一個輸出使能引腳(OE)。IDT7202還有一個復位端(RS),當RS為低時,IDT7202的各個標志位全部回到原始狀態。
3 FIFO與CPLD的接口設計
ATERA公司的可編程邏輯器件支持多種I/O電平標準,包括3.3 V,2.5 V和1.8 V的LVTTL和LVCMOS電平。由于FIFO必須是5 V供電,所以CPLD將數據從FIFO讀入內部存儲器時,需要經過一個電平轉換芯片。系統選用了SN74LVC16245A具有三態輸出的 16 位總線收發器,它支持8/16位數據的雙向傳輸。
在FIFO與CPLD數據通信接口設計中,CPLD主要輸出控制時序到IDT7202的復位、寫和讀端口,實現A/D轉換數據到FIFO的存儲,并將數據從FIFO讀入CPLD的內部存儲器。一旦CPLD檢測到兩個AD976的“BUSY”信號都為高電平,且延時滿足,CPLD就使FIFO的寫信號“W”輸出為低電平,允許向FIFO中寫入數據。同時檢測FIFO的滿標志信號FF。若該信號為低,則說明FIFO已經寫滿,此時,CPLD輸出讀時序給該FIFO,向FIFO中讀數據,同時檢測FIFO的空標志信號EF,若該信號為低,則說明FIFO中數據已經讀空,不允許讀數據,除非再有數據寫入后。本系統中采用兩片IDT7202,它們的復位、寫和讀端口分別聯在一起,數據同時讀寫。數據D0~D8 從第一片輸出,D9~D15從第二片輸出,D16,D17空的兩位數據接地。D0~D1為64路開關量數據,64路開關量數據由8片8D鎖存器74LS373鎖存直接送至CPLD,開關量采樣時序、路數判別由CPLD來實現。
IDT7202的異步讀寫操作時序如圖2所示,各參數說明見表1。
4 FIFO與AD976接口設計
本系統最多可接32路模擬量,需使用兩片AD976芯片,轉換后的16位數據分別送入兩個FIFO中。當兩片AD976中的任意一片中的“BUSY”信號為低電平時,進行模數轉換,只有當“BUSY”為高時,數據才有可能寫入至FIFO中,但數據是否寫入到FIFO中,由FIFO的寫使能信號來決定,當CPLD發出寫使能信號有效時,轉換數據才能存儲到FIFO中。A/D轉換數據的輸出和轉換時鐘有一定的相位差,在CPLD內部可
通過延時或時鐘管理器來滿足建立時間和保持時間,保證數據不失碼地傳輸到FIFO中。FIFO與AD976均采用5 V電源,故數據線直接相連即可,為了減小外界對數據線的干擾,在數據線之間串接一個100~200 Ω的小電阻。

5 結 語
系統地介紹了一種多路數據采集系統中FIFO的設計方法。系統可以采集32路模擬量,64路開關量。系統具有抗干擾強、可靠性高、失碼率低等優點。該系統可用于采集量比較多的設備中,已在電力故障監測裝置中得到廣泛的應用。
參考文獻
[1]黃正謹,徐堅.CPLD系統設計入門與應用.北京:電子工業出版社,2002.
[2]汪安民.TMS320C54XX DSP實用技術.北京:清華大學出版社,2002.
[3]譚會生,張昌凡.EDA技術及應用.西安:西安電子科技大學出版社,2004.
[4]劉皖,何道君.FPGA設計與應用.北京:清華大學出版社,2006.
[5]林明權.VHDL數字控制系統設計范例.北京:電子工業出版社,2003.
[6]清源科技.TMS320C54XX DSP硬件開發教程.北京:機械工業出版社,2004.
[7]張鳳蕊,郭俊杰.基于DSP電力參數測試系統的研究.現代電子技術,2006,29(20):156-159.
[8]趙俊超.集成電路設計 VHDL教程.北京:北京希望電子出版社,2002.
[9]徐志軍,徐光輝.CPLD/FPGA的開發與應用.北京:電子工業出版社,2003.
[10]霍百林,王耀南,賈濤.基于DSP的電力系統測量和檢測裝置.儀表技術,2003(4):13-14.
作者簡介 徐瑞亞 女,1966年出生,高級工程師。研究方向為電子工程與自動化。