王霖郁,張建宏
(哈爾濱工程大學(xué)信息與通信工程學(xué)院,黑龍江哈爾濱 150001)
基于AD7762和FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
王霖郁,張建宏
(哈爾濱工程大學(xué)信息與通信工程學(xué)院,黑龍江哈爾濱 150001)
為了滿足音頻數(shù)據(jù)采集過程中對(duì)頻率和分辨率等技術(shù)指標(biāo)的要求,設(shè)計(jì)了一種高速數(shù)據(jù)采集裝置。文中設(shè)計(jì)采用Altera公司的Cyclone系列FPGA芯片EP1C4F400在QuartusⅡ環(huán)境下使用Verilog語(yǔ)言控制ADI公司的AD7762A/D轉(zhuǎn)換器實(shí)現(xiàn)數(shù)據(jù)采集。通過串口將數(shù)據(jù)傳給上位機(jī),完成數(shù)據(jù)分析和顯示功能。FPGA控制整個(gè)系統(tǒng)的采集時(shí)序。
數(shù)據(jù)采集;AD7762;FPGA;寄存器控制;串口
隨著通信技術(shù)的發(fā)展,通信業(yè)務(wù)不斷擴(kuò)大,人們?cè)絹?lái)越重視高速數(shù)據(jù)采集[1]和處理技術(shù)。數(shù)據(jù)采集系統(tǒng)[2]主要包括增益放大器、A/D模數(shù)轉(zhuǎn)換器、功能控制端。文中設(shè)計(jì)了一種以FPGA為控制核心,用于控制A/D的轉(zhuǎn)換時(shí)序及數(shù)據(jù)傳輸?shù)母咚贁?shù)據(jù)采集系統(tǒng)。
設(shè)計(jì)系統(tǒng)以FPGA芯片EP1C4F400作為采集系統(tǒng)的核心控制單元,采用模數(shù)轉(zhuǎn)換芯片AD7762作為數(shù)據(jù)采集的核心模塊。由A/D轉(zhuǎn)換后產(chǎn)生的數(shù)字信號(hào)通過串口傳輸?shù)缴衔粰C(jī),由上位機(jī)對(duì)數(shù)據(jù)進(jìn)行一系列分析。該系統(tǒng)主要由前端處理模塊、A/D轉(zhuǎn)換控制模塊、FIFO緩存模塊及串口模塊組成,系統(tǒng)如圖1所示。
AD7762是ADI公司近年推出的一款高性能、低功耗、并行24位Sigma-Delta模數(shù)轉(zhuǎn)換芯片ADC。寬輸入帶寬,在625 kbit·s-1時(shí)信噪比為106 dB的高速Sigma-Delta轉(zhuǎn)換,使得其能夠高速獲得數(shù)據(jù)。片上集成用于信號(hào)緩沖的差分放大器,低通數(shù)字FIR數(shù)字濾波器,需要最少的外圍設(shè)備。另外,AD7762還提供了可編程的采樣速率和可調(diào)整的FIR數(shù)字濾波。AD7762要求在無(wú)復(fù)雜的前后端信號(hào)處理設(shè)計(jì)中有較高的SNR。
在應(yīng)用正常模式下,為實(shí)現(xiàn)指定性能,差分放大器需要被配置為前端平滑濾波器,前端使用低噪聲,高性能的運(yùn)算放大器對(duì)其進(jìn)行配置,實(shí)現(xiàn)單端信號(hào)轉(zhuǎn)差分號(hào),然后驅(qū)動(dòng)AD7762。運(yùn)算放大器使AD8021,差分放大器使用AD8138。信號(hào)由AD8021運(yùn)算放大器輸入端口接入,根據(jù)A/D輸入信號(hào)的幅度標(biāo)準(zhǔn)進(jìn)行輸入信號(hào)幅度的調(diào)整,經(jīng)由AD8138差分放大器進(jìn)行單端轉(zhuǎn)差分處理,之后送入模數(shù)轉(zhuǎn)換器中。其電路實(shí)現(xiàn)如圖2所示。
AD7762有許多用戶可編程寄存器??刂萍拇嫫饔糜谠O(shè)置濾波頻率、濾波器配置、時(shí)鐘分頻器等。AD7762使用16位雙向并行接口,該接口受控于CS和RD/WR。
系統(tǒng)的主控制器采用Altera公司Cyclone系列的EP1C4F400C8N。Altera Cyclone系列FPGA從根本上針對(duì)低成本進(jìn)行設(shè)計(jì),具有專業(yè)應(yīng)用特性。器件基于成本優(yōu)化的全銅1.5VSRAM工藝,輸入輸出電源電壓是3.3 V。內(nèi)核供應(yīng)電壓是1.425~1.575 V。Cyclone FPGA綜合考慮了邏輯、存儲(chǔ)器、鎖相環(huán)(PLL)和高級(jí)I/O接口。具有專用外部存儲(chǔ)器接口電路,支持DDR FCRAM和SDRAM器件以及SDR SDRAM存儲(chǔ)器的連接。支持單端 I/O標(biāo)準(zhǔn)如 3.3 V、2.5 V、1.8 V、LVTTL、LVCMOS、PCI、和 SSTL -2/3,滿足當(dāng)前系統(tǒng)需要。通過LVDS和RSDS標(biāo)準(zhǔn)提供多達(dá)129個(gè)通道的差分I/O技術(shù)支持,每個(gè)LVDS通道信號(hào)數(shù)據(jù)率高達(dá)640 Mb·s-1。FPGA中有兩個(gè)鎖相環(huán)(PLLs),提供6個(gè)輸出和層次時(shí)鐘結(jié)構(gòu),以及復(fù)雜設(shè)計(jì)的時(shí)鐘管理電路。FPGA中包括17個(gè) M4K存儲(chǔ)塊。每塊提供288 kbit的存儲(chǔ)容量,能夠使配置支持多種操作模式,包括RAM、ROM、FIFO及單口和雙口模式。
在數(shù)據(jù)傳輸模塊中,設(shè)計(jì)調(diào)用FPGA片上資源實(shí)現(xiàn)FIFO緩存。存儲(chǔ)深度為256×16 bit。由于A/D的采樣頻率和串口的讀寫頻率不同,因此設(shè)計(jì)中采用讀寫時(shí)鐘異步的FIFO。FIFO中的數(shù)據(jù)通過串口傳輸?shù)缴衔粰C(jī),設(shè)計(jì)中串口芯片采用美信公司專門為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片MAX3232芯片,使用+3.3 V單電源供電。
系統(tǒng)利用Altera QuartusⅡ軟件[5]完成FPGA程序的編寫。Altera QuartusⅡ軟件提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿足特定的設(shè)計(jì)需要,為FPGA開發(fā)提供全面的設(shè)計(jì)環(huán)境。QuartusⅡ開發(fā)軟件支持多種設(shè)計(jì)輸入方式。由于FPGA支持Verilog/VHDL混合開發(fā),設(shè)計(jì)主要采用文本形式文件輸入方式和存儲(chǔ)器數(shù)據(jù)文件出入方式,采用的Verilog/VHDL硬件描述語(yǔ)言設(shè)計(jì)輸入,易于實(shí)現(xiàn)自頂向下的設(shè)計(jì)方法,易于模塊劃分和復(fù)用、移植性好、通用性強(qiáng),具有較好的硬件平臺(tái)無(wú)關(guān)性,設(shè)計(jì)不因芯片工藝和結(jié)構(gòu)的改變而改變,利于向ASIC 移植[4]。
A/D時(shí)序分為寫時(shí)序和讀時(shí)序。寫時(shí)序控制A/D寄存器的寫操作。寫操作包括兩部分,先寫控制寄存器2,給A/D加電,控制寄存器2的地址是0X0002,高10位全部是0。低6位的內(nèi)容如圖3所示。
CDIV設(shè)置 A/D的時(shí)鐘分頻比率,CDIV=1,則ICLK=MCLK。CDIV=0,則 ICLK=MCLK/2。設(shè)計(jì)硬件電路中連接的時(shí)鐘是MCLK=40 MHz,但A/D中允許的最大的ICLK時(shí)鐘是20 MHz,需要對(duì)外部時(shí)鐘進(jìn)行分頻,因此此位設(shè)為0。D1PD位置高將關(guān)斷片上差分放大器,本設(shè)計(jì)中置0,第二位寫入1。再寫控制寄存器1,設(shè)置A/D的濾波頻率、濾波器長(zhǎng)度位、數(shù)據(jù)輸出頻率等??刂破?的內(nèi)容如表1所示。
表1 控制器1的內(nèi)容
控制寄存器1的地址是0X0001,設(shè)計(jì)中控制寄存器1的內(nèi)容設(shè)為0X001B。設(shè)計(jì)中通過寫控制寄存器1設(shè)置輸出數(shù)據(jù)頻率。讀時(shí)序控制A/D采樣數(shù)據(jù)的輸出。A/D的控制時(shí)序及工作狀態(tài)如圖4所示。
AD7762串聯(lián)了3個(gè)濾波器。通過使用不同的濾波頻率、濾波器選擇和全通的結(jié)合,可以獲得大范圍的采樣速率。通過設(shè)置寄存器1的低3位濾波器的狀態(tài)設(shè)置數(shù)據(jù)輸出速率Rate,A/D中默認(rèn)的濾波特性如表2所示。
表3是在A/D內(nèi)部時(shí)鐘為20 MHz時(shí),可看出當(dāng)rate=3'h3時(shí)→625 kHz;rate=3→312.5 kHz;rate=4→156.25 kHz;rate=5→78.125 kHz。
表3 A/D中默認(rèn)的濾波特性
AD7762的讀時(shí)序如圖5所示。
A/D寄存器寫成功后,A/D會(huì)根據(jù)寄存器設(shè)置的工作狀態(tài)進(jìn)行數(shù)據(jù)采樣和傳輸。當(dāng)一個(gè)新的轉(zhuǎn)換數(shù)據(jù)結(jié)果有效時(shí),A/D的引腳會(huì)產(chǎn)生一個(gè)低脈沖信號(hào)送給FPGA,當(dāng)FPGA接收到這個(gè)低脈沖信號(hào)時(shí)開始接收A/D的采樣數(shù)據(jù)。由于AD7762是24位分辨率的A/D轉(zhuǎn)換器,而外部是16位數(shù)據(jù)線,所以從AD7762中讀取一個(gè)轉(zhuǎn)換結(jié)果,需要執(zhí)行兩次16 bit讀數(shù)據(jù)操作。當(dāng)同時(shí)為低電平時(shí),數(shù)據(jù)總線開始傳播數(shù)據(jù)。在二次讀操作之間必須置高一個(gè)ICLK周期的高電平。數(shù)據(jù)傳輸結(jié)束后保持高電平,數(shù)據(jù)線處于高阻態(tài),等待下一次有效數(shù)據(jù)的傳輸。
控制A/D的程序流程圖如圖6所示。程序編譯后生成的A/D轉(zhuǎn)換器的控制模塊如圖7所示。
模塊中ad_data_bus[15.0]與FPGA的IO口進(jìn)行連接。ad_rst_n是A/D的復(fù)位信號(hào),而rst_n是系統(tǒng)的復(fù)位信號(hào)。ad_mclk外接40 MHz晶振,進(jìn)入A/D后經(jīng)過寄存器設(shè)置進(jìn)行二分頻。ad_sync是同步信號(hào),可以同步多片ADC,此處不操作。
將程序通過FPGA的JTAG口下載到硬件系統(tǒng),進(jìn)行仿真得到的A/D模塊仿真結(jié)果如圖8所示。
FIFO用于存儲(chǔ)FPGA接收的A/D采集的數(shù)據(jù),F(xiàn)IFO模塊的讀時(shí)鐘受前端A/D模塊中的data_valid信號(hào)控制,寫時(shí)鐘由后面的串口模塊產(chǎn)生,已達(dá)到FIFO數(shù)據(jù)讀取與串口傳輸?shù)臄?shù)據(jù)一致。保證數(shù)據(jù)準(zhǔn)確地通過串口傳輸?shù)缴衔粰C(jī)。FIFO的讀寫控制信號(hào)分別由wrfull和rdempty控制,F(xiàn)IFO模塊如圖9所示。
串口模塊的開啟和關(guān)閉信號(hào)tx_en受FIFO模塊的讀信號(hào)rdreq控制。
數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中,AD7762內(nèi)部設(shè)置差分放大器和靈活設(shè)置的寄存器,使得外部的電路設(shè)計(jì)簡(jiǎn)單且成本低。FPGA控制更為靈活方便,若想改變A/D的工作狀態(tài)只需要更改寄存器的設(shè)置內(nèi)容即可。減少外部控制線的數(shù)量,使系統(tǒng)減小干擾,更為可靠。若將此系統(tǒng)作為音頻信號(hào)分析系統(tǒng)的前端,將使整個(gè)系統(tǒng)的穩(wěn)定度及精確度得到提高。
[1]李志軍,李欣然,石吉銀,等.用CPLD實(shí)現(xiàn)多通道數(shù)據(jù)采集系統(tǒng)的A/D轉(zhuǎn)換器控制電路設(shè)計(jì)[J].繼電器,2006,34(21):53-57.
[2]嚴(yán)志強(qiáng),王雨,任開春,等.基于DSP、CPLD和單片機(jī)的高速數(shù)據(jù)采集裝置設(shè) 計(jì)[J].電力自動(dòng)化設(shè)備,2007,27(5):110-113.
[3]周潤(rùn)景,蘇良碧.基于QuartusⅡ的數(shù)字系統(tǒng)Verilog HDL設(shè)計(jì)實(shí)例詳解[M].北京:電子工業(yè)出版社,2010.
[4]趙艷華,曹炳霞,張睿.基于QuartusⅡ的FPGA/CPLD設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2009.
[5]羅軼群,代作曉.基于DSP與CPLD的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化技術(shù),2008,31(15):114 -116.
[6]黃志偉,王彥.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.
[7]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[8]何迎迎.信號(hào)頻譜分析模塊[D].南京:南京理工大學(xué),2009.
[9]俞一鳴.Altera可編程邏輯器件的應(yīng)用與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2007.
[10]王彥,黃智偉,申政琴,等.基于FPGA的工程設(shè)計(jì)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2007.
Design of a Data Acquisition System Based on AD7762 and FPGA
WANG Linyu,ZHANG Jianhong
(College of Information and Communication Engineering,Harbin Engineering University,Harbin 150001,China)
In order to meet the higher requirements on frequency and resolution technology indexes in the audio data acquisition process,this paper proposes a high speed data acquisition device.This design uses the Altera company's Cyclone series EP1C4F400 FPGA chip to control the AD7762 A/D converter by the ADI company and realizes data acquisition using Verilog language in QuartusⅡ environment.Serial port is used to transmit data to the PC,which accomplishes the function of data analysis and display.FPGA controls the acquisition timing of the whole system.
data acquisition;AD7762;FPGA;register control;serial port
TP274+.2
A
1007-7820(2012)06-030-04
2012-01-04
王霖郁(1977—),女,碩士生導(dǎo)師。研究方向:電路與系統(tǒng)。張建宏(1986—),女,碩士研究生。研究方向:電路與系統(tǒng)。