基于AD7892SQ和CPLD的數(shù)據(jù)采集系統(tǒng)的設(shè)計
引 言
本系統(tǒng)以AD7892SQ和CPLD(復雜可編程邏輯器件)為核心設(shè)計了一個多路信號采集電路,包括模擬多路復用、集成放大、A/D轉(zhuǎn)換,CPLD控制等。采用硬件描述語言Verilog HDL編程,通過采用CPLD使數(shù)據(jù)采集的實時性得到提高。
1 硬件設(shè)計
針對多路信號的采集,本系統(tǒng)采用4/8通道ADG508A模擬多路復用器對檢測的信號進行選擇,CMOS高速放大器LF156對選中的信號進行放大,AD7892SQ實現(xiàn)信號的A/D轉(zhuǎn)換,CPLD完成控制功能。電路如圖1所示。
AD7892SQ是美國AD公司生產(chǎn)的LC2MOS型單電源12位A/D轉(zhuǎn)換器,可并行或串行輸出。
AD7892SQ A/D轉(zhuǎn)換器具有如下特點:單電源工作(+5 V或+10 V);內(nèi)部含有采樣保持放大器;具有高速的串行和并行接口。
AD7892SQ控制字的功能如下:
a)MODE:輸入控制字,低電平時為串行輸出,高電平時為并行輸出,本系統(tǒng)為并行輸出;
b)STANDBY:輸入控制字,低電平時為睡眠狀態(tài)(功耗5 mW),高電平時正常工作,一般應(yīng)用時接高電平;
c)CONVST:啟動轉(zhuǎn)換輸入端,當此腳由低變高時,使采樣保持器保持開始轉(zhuǎn)換,應(yīng)加一個大于25 ns的負脈沖來啟動轉(zhuǎn)換;
d)EOC:轉(zhuǎn)換結(jié)束信號,轉(zhuǎn)換結(jié)束時,此腳輸出100 ns的低電平脈沖;
e)CS:片選,低電平有效;
f)RD:低電平有效,與CS配合讀,使數(shù)據(jù)輸出。
MODE腳接高電平時,AD7892SQ為并行輸出,時序如圖2所示。
在EOC下降沿時間內(nèi)開始采樣,就是轉(zhuǎn)換一結(jié)束就開始下次采樣,采樣時間fACQ應(yīng)大于等于200 ns或400 ns,轉(zhuǎn)換結(jié)束后(即E0C的下降沿),當CS和RD有效時,經(jīng)過t6=40 ns的時間,就可以在DB0-DB11上獲得轉(zhuǎn)換之后的12位數(shù)據(jù),CS和一般的片選信號相同,可以一直有效,外加RD的時間T5也應(yīng)大于35 ns。CONVST信號t1應(yīng)大于35 ns,在上升沿時采樣保持器處于保持狀態(tài),開始A/D轉(zhuǎn)換,轉(zhuǎn)換所需的時間tCONV為1.47μs或1.6μs,轉(zhuǎn)換結(jié)束后,EOC腳輸出的t2為大于等于60 ns的負脈沖用來進行中斷或數(shù)據(jù)鎖存。由此得出下次采樣和本次的輸出可以同時進行,因此最小的一次采樣轉(zhuǎn)換輸出的時間為1.47+0.2=1.67μs(600 kSPS(千次采樣每秒)),最大1.6+0.4=2 μs(即5 00 kSPS),圖2中的t9大于等于200 ns,t7近似為5 ns,t3、t4、t8可為0,(此時t9=tACQ)。
2 程序設(shè)計
2.1 系統(tǒng)介紹
系統(tǒng)中的CPLD是結(jié)構(gòu)比較復雜的可編程邏輯器件,硬件描述語言設(shè)計的控制程序?qū)懭隒PLD內(nèi)即可實現(xiàn)其功能。系統(tǒng)采集的數(shù)據(jù)常常放在數(shù)據(jù)緩存器中,數(shù)據(jù)緩存區(qū)要求既要有與A/D轉(zhuǎn)換芯片的接口,又要有與系統(tǒng)DSP的接口,以提高數(shù)據(jù)吞吐率,本系統(tǒng)選用FIF0(先進先出),并且FIF0具有不需要地址尋址的優(yōu)點[1]。
2.2 系統(tǒng)的軟件描述
本系統(tǒng)采用Verilog HDL語言進行描述。VerilogHDL被近90%的半導體公司使用,成為一種強大的設(shè)計工具。其優(yōu)點是[2]:
a)Verilog HDL是一種通用的硬件描述語言,易學易用;
b)Verilog HDL允許在同一個電路模型內(nèi)進行不同抽象層次的描述,設(shè)計者可以從開關(guān)、門、RTL或者行為等各個層次對電路模型進行定義;
c)絕大多數(shù)流行的綜合工具都支持VerilogHDL,這是Verilog HDL成為設(shè)計者的首選語言的重要原因之一;
d)所有的制造廠商都提供用于Verilog HDL綜合之后的邏輯仿真的元件庫,因此使用Verilog HDL進行設(shè)計,即可在更廣泛的范圍內(nèi)選擇委托制造的廠商;
e)PLI(編程語言接口)是Verilog HDL語言最重要的特性之一,它使得設(shè)計者可以通過自己編寫C代碼來訪問Verilog HDL內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。
2.3 AD7892SQ描述
描述AD7892SQ模塊,可以把模塊用于采集系統(tǒng)的仿真,以驗證FSM(有限狀態(tài)機)設(shè)計的正確性。該模塊主要有4個輸入信號和1個輸出信號,與芯片的控制信號一致。程序如下:
AD7892SQ仿真波形見圖3。
2.4 FSM描述
FSM為異步工作。當convst有效時停留在convst_ad狀態(tài),且rd和cs都為1,convst為0且處于clock的上升沿時FSM會處于4個狀態(tài)中的一個狀態(tài)。圖4為FSM仿真波形。
2.5 FIFO描述
FIFO為同步工作。當reset有效且處于clock的上升沿時,dout為O;reset為1且處于clock上升沿時,read和write組合的4種情況分別對應(yīng)各自的工作狀態(tài)。圖5為FIFO仿真波形。
3 結(jié)束語
Verilog HDL硬件描述語言已越來越廣泛地應(yīng)用于EDA(電子設(shè)計自動化)領(lǐng)域,多數(shù)EDA設(shè)計工程師都用它進行ASIC(專用集成電路)設(shè)計和CPLD/FPCA開發(fā)。用高級語言進行電路設(shè)計,能夠靈活地修改參數(shù),而且極大地提高了電路設(shè)計的通用性和可移植性。最后需要指出的是,采用IP核的方法設(shè)計電路,不但可以單獨使用,而且可以嵌入到ASIC或CPLD/FPGA的電路設(shè)計中,同時縮短了產(chǎn)品的開發(fā)周期,應(yīng)大力推廣。