新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于Verilog HDL設(shè)計的自動數(shù)據(jù)采集系統(tǒng)

基于Verilog HDL設(shè)計的自動數(shù)據(jù)采集系統(tǒng)

作者: 時間:2007-03-09 來源:網(wǎng)絡(luò) 收藏
摘要:介紹了一種采用硬件控制的自動數(shù)據(jù)采集系統(tǒng)的設(shè)計方法,包括數(shù)字系統(tǒng)自頂向下的設(shè)計思路、Verilog HDL對系統(tǒng)硬件的描述和狀態(tài)機的設(shè)計以及MAX+PLUSII開發(fā)軟件的仿真。設(shè)計結(jié)果表明:該采集系統(tǒng)具有很高的實用價值,極大地提高了系統(tǒng)的信號處理能力。 關(guān)鍵詞:可編程邏輯器件 Verilog HDL FIFO FSM 隨著數(shù)字時代的到來,數(shù)字技術(shù)的應(yīng)用已經(jīng)滲透到了人類生活的各個方面。數(shù)字系統(tǒng)的發(fā)展在很大程度上得益于器件和集成技術(shù)的發(fā)展,著名的摩爾定律(Moore"s Law)的預(yù)言也在集成電路的發(fā)展過程中被印證了,數(shù)字系統(tǒng)的設(shè)計理念和設(shè)計方法在這過程中發(fā)生了深刻的變化。從電子CAD、電子CAE到電子設(shè)計自動化(EDA),隨著設(shè)計復(fù)雜程度的不斷增加,設(shè)計的自動化程度越來越高。目前,EDA技術(shù)作為電子設(shè)計的通用平臺,逐漸向支持系統(tǒng)級的設(shè)計發(fā)展;數(shù)字系統(tǒng)的設(shè)計也從圖形設(shè)計方案向硬件描述語言設(shè)計方案發(fā)展??删幊唐骷跀?shù)字系統(tǒng)設(shè)計領(lǐng)域得到廣泛應(yīng)用,不僅縮短了系統(tǒng)開發(fā)周期,而且利用器件的現(xiàn)場可編程特性,可根據(jù)應(yīng)用的要求對器件進行動態(tài)配置或編程,簡單易行地完成功能的添加和修改。 在現(xiàn)代工業(yè)的發(fā)展中,實時測控系統(tǒng)得到廣泛應(yīng)用,這就對高速數(shù)字信號處理系統(tǒng)提出了更高的要求。因為要涉及大量的設(shè)計,為了提高運算速度,應(yīng)用了大量DSP器件。數(shù)字采集系統(tǒng)是整個系統(tǒng)的核心部分之一,傳統(tǒng)方法是應(yīng)用MCU或DSP通過軟件控制數(shù)據(jù)采集的模/數(shù)轉(zhuǎn)換,這樣必將頻繁中斷系統(tǒng)的運行從而減弱系統(tǒng)的數(shù)據(jù)運算,數(shù)據(jù)采集的速度也將受到限制。因此,DSP+CPLD的方案被認為是數(shù)字信號處理系統(tǒng)的最優(yōu)方案之一,由硬件控制模/數(shù)轉(zhuǎn)換和數(shù)據(jù)存儲,從而最大限度地提高系統(tǒng)的信號采集和處理能力。 1 系統(tǒng)總體方案 數(shù)據(jù)采集系統(tǒng)是基于DSP的信號處理系統(tǒng)中的一部分??驁D如圖1所示。該數(shù)字信號處理系統(tǒng)用于隨機共振理論在弱信號檢測中的應(yīng)用研究中。整個系統(tǒng)由信號放大、信號濾波、信號采樣、高速數(shù)字信號處理、與主計算機的高速數(shù)據(jù)傳輸接口等部分組成。其中,信號放大是對輸入信號進行調(diào)理 以滿足采樣的要求;信號濾波是防止信號產(chǎn)生“混疊現(xiàn)象”;信號采樣是完成模擬信號的數(shù)字化;高速數(shù)字信號處理是在建立隨機共振模型的基礎(chǔ)上完成各種算法;與主計算機的高速數(shù)據(jù)傳輸接口是滿足信號檢測的實時性,將DSP處理的數(shù)據(jù)傳給計算機以進行進一步的處理。 基于Verilog HDL設(shè)計的自動狀態(tài)機由硬件控制A/D轉(zhuǎn)換以及自動向FIFO中存儲數(shù)據(jù),采樣頻率由DSP系統(tǒng)輸出時鐘確定,當采樣數(shù)據(jù)達到一幀時,F(xiàn)IFO向DSP申請中斷,DSP系統(tǒng)啟動DMA完成數(shù)據(jù)讀取。這期間數(shù)據(jù)采集不中斷,從而實現(xiàn)連續(xù)的實時數(shù)據(jù)采集和實時數(shù)據(jù)處理。數(shù)據(jù)采集系統(tǒng)由A/D芯片MAX196、邏輯控制芯片EPM7128、FIFO芯片CY7C425組成??刂七壿嬘肰erilog HDL語言描述,并進行了仿零點和實際驗證。 圖2 2 硬件電路設(shè)計 2.1 A/D轉(zhuǎn)換芯片 系統(tǒng)A/D轉(zhuǎn)換由MAX196芯片實現(xiàn)。MAX196的特點為: ①12位A/D轉(zhuǎn)換精度,1/2 LSB線性度; ②單5V電源供電; ③軟件選擇模擬量輸入范圍,分別為:%26;#177;10V、%26;#177;5V、0~5V、0~10V; ④6模擬量輸入通道; ⑤6μs轉(zhuǎn)換時間,100ksps采樣速率; ⑥內(nèi)部或外部采樣控制; ⑦內(nèi)部或外部時鐘控制轉(zhuǎn)換。 在MAX196的控制字中: ①A2A1A0為通道選擇字:000~101分別代表通過0~5; ②BIP、RNG為輸入范圍和極性選擇; ③ACQMOD:采樣控制模式,0為內(nèi)部控制采樣,1為外部控制采樣; ④PD1、PD0為時鐘與省電模式選擇。 內(nèi)部轉(zhuǎn)換模式時序如圖2所示。當向MAX196寫入包含通道選擇、量程選擇、極性選擇的控制字時,完成A/D轉(zhuǎn)換的初始化??刂谱值腁CQMOD位用來選擇內(nèi)部轉(zhuǎn)換模式和外部轉(zhuǎn)換模式,當寫入ACQMOD位為0的控制字時,將啟動內(nèi)部轉(zhuǎn)換模式,這里采用內(nèi)部采樣模式,一次轉(zhuǎn)換需要12個時鐘周期,轉(zhuǎn)換周期由芯片內(nèi)部時鐘確定。寫入一個寫脈沖(WR+CS)可以啟動一次轉(zhuǎn)換。當在A/D轉(zhuǎn)換期間寫入新的控制字時,將中止轉(zhuǎn)換并啟動一次新的采樣周期。A/D轉(zhuǎn)換結(jié)束,輸出低電平信號INT有效,信號RD讀取A/D轉(zhuǎn)換結(jié)果并復(fù)位INT信號,完整的一個轉(zhuǎn)換周期結(jié)束。 2.2 數(shù)據(jù)緩存器 系統(tǒng)采集的數(shù)據(jù)常常放在數(shù)據(jù)緩存器中。數(shù)據(jù)緩存區(qū)要求既要有與A/D芯片的接口,又要有與系統(tǒng)DSP的接口以提高數(shù)據(jù)吞吐率,因此常選用雙口RAM或FIFO。由于FIFO不需要地址尋址,為了簡化控制信號,本模塊采用FIFO芯片CY7C425作為數(shù)據(jù)緩存區(qū)。FIFO存儲器允許數(shù)據(jù)寫入和讀出不依賴于數(shù)據(jù)速率,并且總是以寫入的順序讀出。根據(jù)Full和Empty標志來判斷存儲器全滿或空。FIFO芯片可以進行數(shù)據(jù)寬度和存儲深度的擴展而不會增加額外的時間延遲。當寫信號(W)為低電平時發(fā)和寫操作,當讀信號(R)為低電平時發(fā)生讀操作。A/D轉(zhuǎn)換的結(jié)果通過寫操作不斷存入FIFO中,當FIFO滿時,F(xiàn)ull標志有效,向系統(tǒng)申請中斷,DSP響應(yīng)中斷,立即啟動DMA讀FIFO中的數(shù)據(jù),當讀到空時,Empty標志有效,DSP停止讀入操作。采用兩片CY7C425擴展為18位1024字的高速異步FIFO存儲器,數(shù)據(jù)處理速度達到50MHz,可以實現(xiàn)數(shù)據(jù)的高速寫入和高速讀出。FIFO異步讀寫時序見圖3。 2.3 狀態(tài)機模塊 狀態(tài)機(FSM)完成自動A/D轉(zhuǎn)換和數(shù)據(jù)存儲,控制芯片是EPM7128SQC100。該狀態(tài)機由系統(tǒng)時鐘驅(qū)動,產(chǎn)生RD、WR、INT信號,狀態(tài)機能連續(xù)運行,不斷地寫命令字以啟動A/D轉(zhuǎn)換,然后讀出A/D的轉(zhuǎn)換結(jié)果并同時寫入FIFO。時序圖見圖4。 復(fù)位時,產(chǎn)生寫脈沖WR,芯片MAX196在WR的上升沿鎖存外部輸入的命令控制字,開始A/D轉(zhuǎn)換。當A/D轉(zhuǎn)換結(jié)束時,芯片INT變?yōu)榈碗娖?,在下一個時鐘的上升沿,RD變?yōu)榈碗娖?,?shù)據(jù)總線上輸出數(shù)據(jù)。當RD信號低電平有效時,INT信號變?yōu)楦唠娖?,下一個時鐘的上升沿,RD信號變?yōu)楦唠娖?,在RD的上升沿數(shù)據(jù)被鎖存進FIFO。RD信號回到高電平后,WR信號變?yōu)榈碗娖剑谑怯珠_始下一次轉(zhuǎn)換。 3 系統(tǒng)的Verilog HDL描述 電子系統(tǒng)設(shè)計中一般遵循自上而下的設(shè)計思路,對系統(tǒng)進行設(shè)計、描述與仿真。考慮到模塊的通用性和可移植性,常常使用HDL語言來描述數(shù)字系統(tǒng),如Verilog HDL、VHDL、AHDL語言等。其中Verilog HDL語言具有結(jié)構(gòu)清晰、文法簡明、功能強大、高速模擬和多庫支持等優(yōu)點,被近90%的半導(dǎo)體公司使用,成為一種強大的設(shè)計工具。 3.1 用Verilog HDL語言描述MAX196 用Verilog HDL程序描述MAX196模塊,可以把模塊用于采集系統(tǒng)的仿真,以驗證狀態(tài)機設(shè)計的正確性。該模塊主要有三個輸入信號和一個輸出信號,與芯片的控制信號是一致的。程序說明如下: module adc(reset,rd_adc,wr_adc,int_adc); input reset,rd_adc,wr_adc; output int_adc; reg int_adc; always @(posedge wr_adc or negedge rd_adc or negedge reset) begin if(!reset)int_adc=1; else if(rd_adc==0)begin int_adc=1;end else begin #10 int_adc=0;end end endmodule 3.2 用Verilog HDL語言描述自動狀態(tài)機 自動狀態(tài)機有三個輸入信號和兩個輸出信號,輸入信號中clk由DSP系統(tǒng)輸出以控制采樣速度,reset信號復(fù)位自動狀態(tài)機,int_adc是A/D芯片轉(zhuǎn)換結(jié)束的響應(yīng)信號;輸出信號rd_adc、wr_adc控制A/D芯片的轉(zhuǎn)換開始和數(shù)據(jù)的讀出,以及控制FIFO將數(shù)據(jù)寫入FIFO。程序說明如下: module fsm(int_adc,clk,reset,rd_adc,wr_adc); output rd_adc,wr_adc; input int_adc,clk,reset; reg rd_adc,wr_adc; reg[1:0]present; parameter reset_ad=2"h0,start_ad=2"h1,wait_ad=2"h2,read_ad=2"h3; always @(posedge clk or negedge reset) if(reset)begin present=reset_ad;rd_adc=1;wr_adc=0;end else begin case(present) reset_ad:if(rd_adc) begin present=start_ad;wr_adc=1;end start_ad:if(int_adc) begin present=wait_ad:rd_adc=0;end wait_ad:if(rd_adc) begin present=read_ad;wr_adc=0;end read_ad:if(int_adc) begin present=reset_ad:rd_adc=1;end endcase end endmodule 3.3 數(shù)據(jù)采集系統(tǒng) MAX196模塊和狀態(tài)機模塊組成高層模塊——自動采樣系統(tǒng),通過模塊實例的調(diào)用和端口映射語句實現(xiàn)模塊的組合。特別設(shè)定輸出信號int_adc,可使仿真波形看得更加清楚。程序說明如下: Module simuadc(clk,reset,rd_adc,wr_adc,int_adc);//系統(tǒng)模塊 Output rd_adc,wr_adc,int_adc; Input clk,reset; Reg rd_adc,wr_adc,int_adc; Adc adcmax196(reset,rd_adc,wr_adc,int_adc);//A/D芯片模塊 Fsm fsmasp(int_adc,clk,reset,rd_adc,wr_adc);//狀態(tài)機模塊 endmodule 3.4 仿真圖形 圖5為采集系統(tǒng)的時序仿真圖。CLK是系統(tǒng)外部時鐘,用于控制采樣頻率;RESET接外部復(fù)位信號,可以控制采樣的起始時刻;MAX196的WR_ADC、RD_ADC、INT_ADC分別與邏輯芯片EPM7128的控制引腳相連接。仿真圖表明,復(fù)位后,只要有CLK時鐘輸出,A/D轉(zhuǎn)換將連續(xù)進行,轉(zhuǎn)換數(shù)據(jù)依次存入FIFO,當FIFO滿時,向DSP發(fā)出斷請求,DSP及時響應(yīng)并啟動DMA高速讀入FIFO中的值,由于DSP讀入的速度足夠快,因此A/D轉(zhuǎn)換并不需要停頓,從而實現(xiàn)實時采樣和實時處理。 本文提出的自動采集系統(tǒng)采用CPLD芯片,用硬件描述語言設(shè)計自動狀態(tài)機,實現(xiàn)硬件控制數(shù)據(jù)采集和存儲。目前采集系統(tǒng)應(yīng)用于DSP應(yīng)用板卡上,免去了DSP監(jiān)控A/D芯片的時間,使信號處理系統(tǒng)能高效地完成復(fù)雜的隨機共振系統(tǒng)的研究。實際應(yīng)用證明該采集系統(tǒng)工作非常穩(wěn)定,若采用更高數(shù)據(jù)轉(zhuǎn)換速度的A/D芯片、頻率更高的系統(tǒng)時鐘,可以進一步提高系統(tǒng)的數(shù)據(jù)采集速度。

評論


相關(guān)推薦

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

關(guān)閉