王丹琦,吳 毅,甘曉炫
(1.新疆師范大學(xué) 物理與電子工程學(xué)院,新疆 烏魯木齊 830054;2.新疆農(nóng)業(yè)大學(xué) 科學(xué)技術(shù)學(xué)院,新疆 烏魯木齊 830091)
數(shù)據(jù)采集就是通過模數(shù)轉(zhuǎn)換器(A/D)將輸入的模擬信號轉(zhuǎn)換成數(shù)字信號,然后送入單片機(jī)中進(jìn)行處理,而對A/D轉(zhuǎn)換器的啟動,數(shù)據(jù)的讀取,數(shù)據(jù)的傳輸都是靠MCU(單片機(jī))執(zhí)行指令來完成的。近年來,隨著科學(xué)技術(shù)的發(fā)展,各種型號的模數(shù)轉(zhuǎn)換器的性能越來越高,而與密切相連的單片機(jī)因其時鐘頻率較低,很難滿足數(shù)據(jù)采集的實(shí)時性和同步性[1],因此,模數(shù)轉(zhuǎn)換器和單片機(jī)速度的不匹配,大大影響了數(shù)據(jù)采集系統(tǒng)的效率,這就要求能有一個讀取數(shù)據(jù)并且暫存數(shù)據(jù)的接口電路,來作為二者連接的橋梁,為此,基于FPGA的高速數(shù)據(jù)采集系統(tǒng)[2-3]的研究顯得極為重要。
本數(shù)據(jù)采集系統(tǒng)主要由信號調(diào)理通路、數(shù)模轉(zhuǎn)換器模塊、數(shù)據(jù)存儲與控制模塊組成。自行設(shè)計(jì)的硬件結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)硬件框圖Fig.1 Diagram of the system hardware
信號調(diào)理模塊是對兩路輸入信號進(jìn)行調(diào)理的電路。輸入信號1是頻率為f1的正弦交流信號,先經(jīng)過整形電路,變?yōu)閿?shù)字時鐘信號CLK,送入模數(shù)轉(zhuǎn)換器MAX118,作為MAX118的外部時鐘輸入信號,控制數(shù)模轉(zhuǎn)換的速率。另一路輸入信號2為采樣輸入信號,可以是直流信號或是交流信號。當(dāng)作為交流信號輸入時,其頻率f2是輸入信號1頻率f1的1/N倍。N值的大小就是輸入信號2在一個周期內(nèi)采樣點(diǎn)的數(shù)量。輸入信號2經(jīng)過調(diào)理電路處理后,就可以成為滿足MAX118輸入條件的信號。
將滿足MAX118輸入條件的信號2送入模數(shù)轉(zhuǎn)換器的任一輸入通道中,模數(shù)轉(zhuǎn)換器將模擬量(輸入信號)轉(zhuǎn)換為數(shù)字量。
本系統(tǒng)的FPGA設(shè)計(jì)主要包括雙端口寄存器模塊和計(jì)數(shù)器模塊,以及一些與MAX118和MCU連接的邏輯控制。FPGA在電路中,一邊與MAX118接口,一邊與MCU接口,完成數(shù)據(jù)采集和數(shù)據(jù)存儲的工作。在轉(zhuǎn)換過程中,模數(shù)轉(zhuǎn)換器MAX118的啟動和讀取,復(fù)位等控制功能均由FPGA完成。數(shù)據(jù)采集完畢后,F(xiàn)PGA與單片機(jī)之間的數(shù)據(jù)傳輸控制指令也是由FPGA發(fā)出并完成的。
電源部分由+9 V電源供給,F(xiàn)PGA的電源分別為3.3 V和1.5 V,是用專用電源芯片轉(zhuǎn)換得到,同時還轉(zhuǎn)換得到5 V電源供單片機(jī)和MAX118使用,電源的輸入電流最大3 A,但不應(yīng)小于2 A,因?yàn)榇笕萘康腇PGA在大負(fù)荷和資源使用較多時需要的電流較大,此電源的功率可以滿足正常使用,不會出現(xiàn)功率不夠而使芯片無法正常工作的情況。
MAX118是美國Maxim公司推出的低功耗、8位8通道的高速 A/D轉(zhuǎn)換器[4],精度小于1LSB,采樣速率達(dá)到1.2 Msps。本方案采用讀模式進(jìn)行采樣,可以設(shè)計(jì)出模數(shù)轉(zhuǎn)換器工作在MODE0模式下與FPGA硬件接口電路,通過對引腳的計(jì)數(shù),來讀取數(shù)據(jù)。
本系統(tǒng)的控制器件由FPGA和單片機(jī)兩部分組成,在MCU+FPGA組成的電路系統(tǒng)中,單片機(jī)主要負(fù)責(zé)控制,而FPGA主要完成數(shù)據(jù)的采集和處理.所謂的控制,一方面是單片機(jī)直接控制外部電路,另一方面是在FPGA內(nèi)部自己來寫時序電路,滿足單片機(jī)的讀寫等時序,從而實(shí)現(xiàn)單片機(jī)與FPGA聯(lián)合控制本數(shù)據(jù)采集系統(tǒng)。
現(xiàn)場可編程門陣列選用Altera的Cyclone系列的EP1C 6Q240C8,與之相連接的單片機(jī)選擇使用89C52或者52以上的單片機(jī)主芯片[5],這主要是為了高速的串口通信考慮。
FPGA在整個硬件電路中負(fù)責(zé)在MAX118和MCU之間的緩沖與控制[6-7]。對于A/D來說,F(xiàn)PGA的主要作用是控制模數(shù)轉(zhuǎn)換器MAX118的啟動和轉(zhuǎn)換,并暫存采樣的數(shù)據(jù),通過其內(nèi)部設(shè)計(jì)的計(jì)數(shù)器,完成采樣信號一個周期內(nèi)采樣數(shù)量的控制。對于單片機(jī)來說,當(dāng)FPGA完成信號一個周期的采樣后,向單片機(jī)申請中斷,由單片機(jī)完成對數(shù)據(jù)的讀取以及對FPGA內(nèi)部計(jì)數(shù)器的復(fù)位等工作。
自行設(shè)計(jì)的硬件連接圖如圖2所示。
下面根據(jù)圖2來具體說明采樣過程。
1)MAX118工作過程
圖2 MAX118與FPGA及MCU的硬件連接圖Fig.2 MAX118 and FPGA and MCU hardware connection diagram
要把輸入信號送入模數(shù)轉(zhuǎn)換器MAX118,必須通過設(shè)置其A0,A1,A2 3個引腳來選擇輸入信號的通道,當(dāng)A0,A1,A2 3個引腳都為低時,選中通道1,此時,輸入信號被送入A/D中。并將外部時鐘信號CLK同時送入MAX118及FPGA中,保證二者同時被啟動。MAX118的MODE引腳被置低,工作在讀模式,至此,A/D可以進(jìn)行轉(zhuǎn)換,8位數(shù)據(jù)從D0~D7引腳讀出。
2)FPGA 控制過程
假設(shè)外部時鐘信號CLK的頻率f1是輸入信號頻率f2的32倍,輸入信號在一個周期內(nèi)將被采樣32個點(diǎn)。當(dāng)FPGA檢測[8]到時鐘信號CLK的上升沿時,開始從MAX118的數(shù)據(jù)輸出端口D0~D7讀數(shù)據(jù),并將數(shù)據(jù)放入FPGA的寄存器中。同時,F(xiàn)PGA的計(jì)數(shù)單元開始對MAX118的INT計(jì)數(shù),根據(jù)對MAX118時序的分析,每進(jìn)行一次轉(zhuǎn)換,INT都被拉低一次,那么當(dāng)采樣完一個周期的32個點(diǎn)后,INT也被計(jì)數(shù)了32次。此時,由FPGA給單片機(jī)一個中斷信號,單片機(jī)通過FPGA內(nèi)部設(shè)置的地址譯碼器開始對其存儲器中的數(shù)據(jù)進(jìn)行讀取,而FPGA則處于等待狀態(tài)。當(dāng)讀取結(jié)束后,單片機(jī)通過P1.0引腳給FPGA一個復(fù)位信號,將其內(nèi)部計(jì)數(shù)器清零,然后再開始讀取下一個周期的數(shù)據(jù),如此循環(huán),周而復(fù)始。
本設(shè)計(jì)采用Verilog-HDL硬件描述語言進(jìn)行邏輯代碼設(shè)計(jì),在QuartusⅡ[9]開發(fā)環(huán)境下,根據(jù)需求編寫源代碼,來完成分析綜合,適配,仿真等工作,最后將生成的pof文件下載到FPGA中。
首先,輸入一個直流信號進(jìn)行采集,來分析采集系統(tǒng)的正確度[10]。
設(shè)輸入信號1頻率f1=160 kHz,經(jīng)過整形電路變?yōu)橐粋€方波信號,作為模數(shù)轉(zhuǎn)換器的時鐘信號。輸入信號2為一個直流信號,設(shè)其表達(dá)式為u=1 V,然后對輸入信號2進(jìn)行16個點(diǎn)的采樣,采樣數(shù)據(jù)如下表所示:
上表中的采樣值是經(jīng)過8位的模數(shù)轉(zhuǎn)換器MAX118量化編碼后輸出的,需要經(jīng)過歸一化處理后,才能用正確度公式ε=x-x來分析,其中x表示測量的均值,x表示真實(shí)值。通過計(jì)算ε=0.03。MAX118是一個8位的模數(shù)轉(zhuǎn)換器,其基準(zhǔn)電壓為5 V,所以此模數(shù)轉(zhuǎn)換器的分辨率為5/28=0.02,也就是A/D引起的量化誤差為0.02。由此可見,系統(tǒng)誤差中,除了量化誤差外,還存在著別的誤差,這是由于電路中的噪聲干擾等因素引起的,是不可避免的。這個數(shù)據(jù)也表明,本設(shè)計(jì)的準(zhǔn)確度很高。
表1 直流采樣數(shù)值分析表Tab.1 DC sampling numerical analysis table
現(xiàn)在,輸入一個交流信號來分析采集系統(tǒng)的精密度[10]。精密度反映在相同條件下,對某定值做多次測量,測量值分散的程度,通過測量值的標(biāo)準(zhǔn)偏差來衡量標(biāo)準(zhǔn)差越小,表示數(shù)據(jù)越集中。
圖3是由采樣系統(tǒng)輸出的測量值畫出的波形圖,采樣數(shù)據(jù)已經(jīng)作了歸一化處理。
觀察上圖,發(fā)現(xiàn)只有少數(shù)采樣點(diǎn)偏離實(shí)際值,二者的波形形狀基本吻合,說明數(shù)據(jù)采集是成功的。
如表2所示,為輸入正弦信號在一個周期內(nèi)的32個點(diǎn)實(shí)際值和采樣值數(shù)據(jù)。其中,采樣測量值已經(jīng)進(jìn)行了歸一化的處理。
圖3 輸入信號波形圖與采樣信號波形圖Fig.3 The input signal waveform figure and sampling signal waveform figure
表2 交流采樣數(shù)據(jù)分析表Tab.2 AC sampling numerical analysis table
經(jīng)過以上對系統(tǒng)正確度和精密度的分析,可以得出,本設(shè)計(jì)的正確度和精密度都很高,也就是說系統(tǒng)的準(zhǔn)確度很高。以上的數(shù)據(jù)分析結(jié)果,充分說明了這個設(shè)計(jì)系統(tǒng)能夠正確的讀寫數(shù)據(jù),穩(wěn)定且可靠。
本設(shè)計(jì)采用在線可編程的FPGA器件作為A/D和MCU的接口控制電路,完成了模擬信號的采集,與傳統(tǒng)的基于MCU的采集系統(tǒng)相比,具體采樣靈活,硬件電路簡單,實(shí)時性和同步性高等特點(diǎn)。測試數(shù)據(jù)表明,該設(shè)計(jì)能很好完成8位8通道的數(shù)據(jù)采集工作,采樣準(zhǔn)確度高,系統(tǒng)工作穩(wěn)定。
[1]李朋勃,張洪平.基于USB2.0的高速數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2009(10):109.LI Peng-bo,ZHANG Hong-ping.High-speed data acquisition system based on USB2.0[J].Application of Electronic Technique,2009(10):109.
[2]楊海鋼,孫嘉斌,王慰.FPGA器件設(shè)計(jì)技術(shù)發(fā)展綜述[J].電子與信息學(xué)報(bào),2010,3(32):714-715.YANG Hai-gang,SUN Jia-bin,WANG Wei.An overview to FPGA device design technologies[J].Journal of Electronics and Information Technology,2010,3(32):714-715.
[3]孟德剛,何國瑜.基于FPGA數(shù)據(jù)采集系統(tǒng)[J].電子測量技術(shù),2004(5):74-75.MENG De-gang,HE Guo-yu.FPGA based on design and implementation of data acquistion system[J].Electronic Measurement Technology,2004(5):74-75.
[4]王建,陳旭力.8位8通道模數(shù)轉(zhuǎn)換芯片MAX118及其應(yīng)用[J].儀表技術(shù)與傳感器,2001(5):34-36.WANG Jian,CHEN Xu-lieg.8-Bit and8-Channel ADC MAX118and ItsApplication[J].Instrument Technique and Sensor,2005,24,(4):46-48.
[5]常莉來,凌宏江.基于C8051F單片機(jī)的多通道數(shù)據(jù)采集儀[J].制造技術(shù)與機(jī)床,2010(11):20-21.CHANG Li-lai,LIN Hong-jiang.Multi-channel data acquisition based on C8051 series[J].Manufacturing Technology and Machine Tool,2010(11):20-21.
[6]卜英勇,魯志佩.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及TMS320C6416接口實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2008(7):95-97.PO Ying-yong,LU Zhi-pei.Design of high-speed datacollecting system based on FPGA and interface with TMS320C6416[J].Instrument Technique and Sensor,2008(7):95-97.
[7]侯朝勇,胡學(xué)浩.基于FPGA的多路同步實(shí)時數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2009(10):103-105.HOU Chao-yong,HU Xue-hao.Muhi-channel synchronal real-time data acquisition system based on FPGA[J].Application of Electronic Technique,2009(10):103-105.
[8]馬建國,孟憲元.FPGA現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:北京大學(xué)出版社,2010.
[9]WAYNE wolf.FPGA-Based System Design[M].北京:機(jī)械工業(yè)出版社,2005.
[10]錢政,王中宇,劉桂禮.測試誤差分析與數(shù)據(jù)處理[M].北京:北京航空航天大學(xué)出版社,2008.