<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于AD7892SQ和CPLD的數(shù)據(jù)采集系統(tǒng)

          基于AD7892SQ和CPLD的數(shù)據(jù)采集系統(tǒng)

          作者: 時間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

          0 引 言

          本文引用地址:http://www.ex-cimer.com/article/201706/347829.htm

            本系統(tǒng)以AD7892SQ和(復(fù)雜可編程邏輯器件)為核心設(shè)計(jì)了一個多路信號采集電路,包括模擬多路復(fù)用、集成放大、A/D轉(zhuǎn)換,控制等。采用硬件描述語言Verilog HDL編程,通過采用使數(shù)據(jù)采集的實(shí)時性得到提高。

            1 硬件設(shè)計(jì)

            針對多路信號的采集,本系統(tǒng)采用4/8通道ADG508A模擬多路復(fù)用器對檢測的信號進(jìn)行選擇,CMOS高速放大器LF156對選中的信號進(jìn)行放大,AD7892SQ實(shí)現(xiàn)信號的A/D轉(zhuǎn)換,CPLD完成控制功能。電路如圖1所示。

            AD7892SQ是美國AD公司生產(chǎn)的LC2MOS型單電源12位A/D轉(zhuǎn)換器,可并行或串行輸出。

            AD7892SQ A/D轉(zhuǎn)換器具有如下特點(diǎn):單電源工作(+5 V或+10 V);內(nèi)部含有采樣保持放大器;具有高速的串行和并行接口。

            AD7892SQ控制字的功能如下:

            a)MODE:輸入控制字,低電平時為串行輸出,高電平時為并行輸出,本系統(tǒng)為并行輸出;

            b)STANDBY:輸入控制字,低電平時為睡眠狀態(tài)(功耗5 mW),高電平時正常工作,一般應(yīng)用時接高電平;

            c)CONVST:啟動轉(zhuǎn)換輸入端,當(dāng)此腳由低變高時,使采樣保持器保持開始轉(zhuǎn)換,應(yīng)加一個大于25 ns的負(fù)脈沖來啟動轉(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的下降沿),當(dāng)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的負(fù)脈沖用來進(jìn)行中斷或數(shù)據(jù)鎖存。由此得出下次采樣和本次的輸出可以同時進(jìn)行,因此最小的一次采樣轉(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è)計(jì)

            2.1 系統(tǒng)介紹

            系統(tǒng)中的CPLD是結(jié)構(gòu)比較復(fù)雜的可編程邏輯器件,硬件描述語言設(shè)計(jì)的控制程序?qū)懭隒PLD內(nèi)即可實(shí)現(xiàn)其功能。系統(tǒng)采集的數(shù)據(jù)常常放在數(shù)據(jù)緩存器中,數(shù)據(jù)緩存區(qū)要求既要有與A/D轉(zhuǎn)換芯片的接口,又要有與系統(tǒng)DSP的接口,以提高數(shù)據(jù)吞吐率,本系統(tǒng)選用FIF0(先進(jìn)先出),并且FIF0具有不需要地址尋址的優(yōu)點(diǎn)[1]。

            2.2 系統(tǒng)的軟件描述

            本系統(tǒng)采用Verilog HDL語言進(jìn)行描述。VerilogHDL被近90%的半導(dǎo)體公司使用,成為一種強(qiáng)大的設(shè)計(jì)工具。其優(yōu)點(diǎn)是[2]:

            a)Verilog HDL是一種通用的硬件描述語言,易學(xué)易用;

            b)Verilog HDL允許在同一個電路模型內(nèi)進(jìn)行不同抽象層次的描述,設(shè)計(jì)者可以從開關(guān)、門、RTL或者行為等各個層次對電路模型進(jìn)行定義;

            c)絕大多數(shù)流行的綜合工具都支持VerilogHDL,這是Verilog HDL成為設(shè)計(jì)者的首選語言的重要原因之一;

            d)所有的制造廠商都提供用于Verilog HDL綜合之后的邏輯仿真的元件庫,因此使用Verilog HDL進(jìn)行設(shè)計(jì),即可在更廣泛的范圍內(nèi)選擇委托制造的廠商;

            e)PLI(編程語言接口)是Verilog HDL語言最重要的特性之一,它使得設(shè)計(jì)者可以通過自己編寫C代碼來訪問Verilog HDL內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。

            2.3 AD7892SQ描述

            描述AD7892SQ模塊,可以把模塊用于采集系統(tǒng)的仿真,以驗(yàn)證FSM(有限狀態(tài)機(jī))設(shè)計(jì)的正確性。該模塊主要有4個輸入信號和1個輸出信號,與芯片的控制信號一致。程序如下:

            AD7892SQ仿真波形見圖3。

            2.4 FSM描述

            FSM為異步工作。當(dāng)convst有效時停留在convst_ad狀態(tài),且rd和cs都為1,convst為0且處于clock的上升沿時FSM會處于4個狀態(tài)中的一個狀態(tài)。圖4為FSM仿真波形。

          2.5 FIFO描述

            FIFO為同步工作。當(dāng)reset有效且處于clock的上升沿時,dout為O;reset為1且處于clock上升沿時,read和write組合的4種情況分別對應(yīng)各自的工作狀態(tài)。圖5為FIFO仿真波形。


            3 結(jié)束語

            Verilog HDL硬件描述語言已越來越廣泛地應(yīng)用于(電子設(shè)計(jì)自動化)領(lǐng)域,多數(shù)設(shè)計(jì)工程師都用它進(jìn)行ASIC(專用集成電路)設(shè)計(jì)和CPLD/FPCA開發(fā)。用高級語言進(jìn)行電路設(shè)計(jì),能夠靈活地修改參數(shù),而且極大地提高了電路設(shè)計(jì)的通用性和可移植性。最后需要指出的是,采用IP核的方法設(shè)計(jì)電路,不但可以單獨(dú)使用,而且可以嵌入到ASIC或CPLD/的電路設(shè)計(jì)中,同時縮短了產(chǎn)品的開發(fā)周期,應(yīng)大力推廣。



          關(guān)鍵詞: EDA CPLD FPGA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();