国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計

2016-10-13 09:18史籍常越李海國
電氣自動化 2016年1期
關(guān)鍵詞:子塊空閑寄存器

史籍, 常越, 李海國

(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上?!?00000)

?

基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計

史籍, 常越, 李海國

(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海200000)

介紹了一種基于MachXO2 4000ZE系列的FPGA芯片和模數(shù)轉(zhuǎn)換芯片AD7356的多通道數(shù)據(jù)采集系統(tǒng),采樣率最高可達(dá)到5Msps。系統(tǒng)采用多個AD芯片來實(shí)現(xiàn)多路模擬量的實(shí)時采集。通過verilog編程語言實(shí)現(xiàn)FPGA芯片對AD轉(zhuǎn)換的時序控制。FPGA內(nèi)嵌的雙口RAM作為數(shù)據(jù)緩存器來存儲轉(zhuǎn)換結(jié)果。通過FPGA控制單元對AD轉(zhuǎn)換部分和數(shù)據(jù)緩存部分的控制可實(shí)現(xiàn)數(shù)據(jù)采集與數(shù)據(jù)輸出的同時執(zhí)行。闡述了系統(tǒng)的構(gòu)成以及各個部分的工作原理,著重分析了FPGA控制策略和數(shù)據(jù)緩存的實(shí)現(xiàn),并使用Modelsim仿真軟件進(jìn)行仿真與分析。

FPGA;AD7356;多路采集;A/D轉(zhuǎn)換;數(shù)據(jù)緩存

0 引 言

在電力系統(tǒng)微機(jī)繼電保護(hù)裝置中,多通道數(shù)據(jù)采集系統(tǒng)是重要的組成部分[1]。傳統(tǒng)的多通道數(shù)據(jù)采集系統(tǒng)存在一定的缺陷:每次只能進(jìn)行單通道的AD轉(zhuǎn)換,當(dāng)?shù)贜路信號轉(zhuǎn)換完畢后才可以進(jìn)行第N+1路信號的轉(zhuǎn)換[2],或者數(shù)據(jù)的采集與傳輸不能夠同時進(jìn)行,這樣造成了轉(zhuǎn)換效率不高的問題。傳統(tǒng)的AD轉(zhuǎn)換芯片還具有控制信號多,控制時序復(fù)雜的弊端。

在本文設(shè)計的系統(tǒng)中,由于FPGA集成度高,時序控制精確,片上資源豐富,可靈活對其編程,實(shí)現(xiàn)各種邏輯器件功能[3],因此采用FPGA作為主控芯片。AD轉(zhuǎn)換芯片采用AD7356,該芯片可同時采集并且轉(zhuǎn)換兩路模擬信號,運(yùn)用多片AD7356可以對多路信號并行采集和轉(zhuǎn)換,提高了AD轉(zhuǎn)換效率;AD7356還可同時輸出兩路轉(zhuǎn)換結(jié)果,結(jié)合FPGA內(nèi)部的雙口RAM,可實(shí)現(xiàn)多個通道轉(zhuǎn)換結(jié)果的緩存和并行讀取[4]。利用系統(tǒng)的工作原理,可將現(xiàn)有規(guī)模的系統(tǒng)擴(kuò)展為擁有更多轉(zhuǎn)換通道數(shù)和轉(zhuǎn)換精確度的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)的轉(zhuǎn)換效率高并具有較好的可靠性,因此確保了繼電保護(hù)裝置準(zhǔn)確、快速地動作。

1 系統(tǒng)的結(jié)構(gòu)

系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。

圖1 系統(tǒng)的結(jié)構(gòu)框圖

本文設(shè)計的系統(tǒng)由AD轉(zhuǎn)換單元、FPGA控制單元、數(shù)據(jù)緩存單元、接口電路以及DSP數(shù)據(jù)處理電路組成。

FPGA控制單元接收DSP的啟動信號,并且為AD轉(zhuǎn)換單元和數(shù)據(jù)緩存單元提供時鐘信號和控制信號[5]。本系統(tǒng)采用的FPGA為Lattice公司MachXO2 4000ZE系列器件,該系列器件采用65 nm閃存工藝技術(shù),工作電源電壓標(biāo)稱值為1.2 V,支持高達(dá)60 MHz的系統(tǒng)性能,可提供低至19 μW的功耗,擁有4 320個查找表(LUTs)和34 KB的分布式內(nèi)存(Distributed RAM)。

AD轉(zhuǎn)換單元采用4片AD7356芯片同步工作,AD7356是Analog Devices公司出品的轉(zhuǎn)換精度12位的逐次逼近型ADC,以5 Msps采樣速率工作時功耗僅35 mW。AD轉(zhuǎn)換單元接收經(jīng)過調(diào)理電路處理后的交流模擬信號,每片AD7356可同時對兩路差分模擬信號進(jìn)行采樣和轉(zhuǎn)換,并且兩路轉(zhuǎn)換結(jié)果可以同時串行輸出。FPGA控制單元向所有的ADC提供統(tǒng)一的時鐘信號和控制信號,保證了8路模擬信號的同步采集和轉(zhuǎn)換。

數(shù)據(jù)緩存單元由FPGA內(nèi)部的雙口RAM構(gòu)成,通過IPexpress軟件工具可以任意設(shè)置雙口RAM的數(shù)量和大小。每一個RAM塊用來存儲一路信號的轉(zhuǎn)換結(jié)果[6],分為A和B兩部分,當(dāng)轉(zhuǎn)換結(jié)果寫入到子塊A(B)時,子塊B(A)輸出上次轉(zhuǎn)換結(jié)果,兩個子塊交替工作[7]。本系統(tǒng)共設(shè)置8個雙口RAM塊,分別存儲8路轉(zhuǎn)換結(jié)果。FPGA控制單元向所有RAM塊提供統(tǒng)一的時鐘信號、控制信號以及使能信號,因此8路轉(zhuǎn)換結(jié)果被同時寫入到8個RAM塊的子塊A(B),并且8個RAM塊的子塊B(A)內(nèi)的轉(zhuǎn)換結(jié)果被同時輸出。

DSP數(shù)據(jù)處理電路通過接口電路讀取緩存后的AD轉(zhuǎn)換結(jié)果,并且對數(shù)據(jù)做進(jìn)一步處理。同時,DSP數(shù)據(jù)處理電路給FPGA控制單元發(fā)出系統(tǒng)啟動信號。

2 FPGA控制與數(shù)據(jù)緩存的實(shí)現(xiàn)

FPGA控制單元與AD轉(zhuǎn)換單元以及數(shù)據(jù)緩存單元的邏輯連接如圖2所示。

圖2 FPGA與AD7356的邏輯連接圖

2.1FPGA控制單元

FPGA控制單元由兩部分組成:(1) 主控邏輯部分;(2) 通道開關(guān)、讀/寫操作開關(guān)。

圖3 AD7356時序圖

由于從AD轉(zhuǎn)換單元輸出的轉(zhuǎn)換結(jié)果在ClockA/ClockB的上升沿之后才可以被寫入到數(shù)據(jù)緩存單元,因此CLK需要通過反相器再輸入到ClockA/ClockB端,在轉(zhuǎn)換結(jié)果被寫入到數(shù)據(jù)緩存單元時要保證WrA/WrB為高電平,因此AD Control信號需要通過反相器再輸入到WrA/WrB端。

通道開關(guān)以及讀/寫操作開關(guān):MUX為一位的寄存器輸出,當(dāng)控制信號AD Control產(chǎn)生下降沿時,MUX寄存器加1。

通道開關(guān):當(dāng)MUX=1時,8個通道開關(guān)選通各自RAM塊的DataInA端;當(dāng)MUX=0時,8個通道開關(guān)選通各自RAM塊的DataInB端。

寫操作開關(guān):當(dāng)MUX變?yōu)?時,AD Control信號經(jīng)過反相器輸入到WrA端,WrA先獲得高電平,加之8個RAM塊的DataInA端被同時選通,因此8路轉(zhuǎn)換結(jié)果被同時寫入到各自RAM塊的子塊A,寫入完畢后AD Control產(chǎn)生上升沿,因此WrA變?yōu)榈碗娖?不寫入數(shù)據(jù)到子塊A),直到MUX的值再次從0跳變到1時,WrA才重新變?yōu)楦唠娖?;?dāng)MUX變?yōu)?時,AD control信號經(jīng)過反相器輸入到WrB端,WrB先獲得高電平,加之8個RAM塊的DataInB端被同時選通,因此8路轉(zhuǎn)換結(jié)果被同時寫入到各自RAM塊的子塊B,寫入完畢后AD Control產(chǎn)生上升沿,因此WrB變?yōu)榈碗娖?不寫入數(shù)據(jù)到子塊B),直到MUX的值再次從1跳變到0時,WrB才重新變?yōu)楦唠娖健?/p>

讀操作開關(guān):AD Control產(chǎn)生上升沿時,根據(jù)上升沿時刻的MUX值判斷輸出子塊A還是子塊B中存儲的轉(zhuǎn)換結(jié)果。如果AD Control上升沿時刻的MUX為1,則從QA端輸出子塊A存儲的轉(zhuǎn)換結(jié)果;如果AD Control上升沿時刻的MUX為0,則從QB端輸出子塊B存儲的轉(zhuǎn)換結(jié)果。

2.2數(shù)據(jù)緩存單元

一個RAM塊有兩個數(shù)據(jù)輸入端,分別為DataInA和DataInB,某時刻只有一個輸入端輸入數(shù)據(jù);有兩個數(shù)據(jù)輸出端,分別為QA和QB,某時刻只有一個輸出端輸出數(shù)據(jù)。如果當(dāng)前通道開關(guān)選中DataInA(DataInB),表示在時鐘信號CLK的激勵下,AD7356往子塊A(B)寫入轉(zhuǎn)換結(jié)果,在往子塊A(B)寫入的同時,QB(QA)輸出子塊B(A)內(nèi)存儲的上一次的轉(zhuǎn)換結(jié)果供DSP讀取。

子塊A(B)由14位構(gòu)成,用來存儲一次轉(zhuǎn)換結(jié)果,一個地址對應(yīng)一位數(shù)據(jù)。每個RAM塊內(nèi)部實(shí)現(xiàn)了兩個地址寄存器AddressA Counter和AddressB Counter,分別對應(yīng)子塊A和子塊B。在寫入子塊的過程中,被寫入子塊的Wrx(x=A,B)=1,ClockA/ClockB的上升沿(SCLK的下降沿)之后一位數(shù)據(jù)被寫入到當(dāng)前地址寄存器指向的存儲空間里,每當(dāng)往子塊里寫入一位數(shù)據(jù)后,對應(yīng)子塊的地址寄存器的值加1;在讀取子塊的過程中,被讀取子塊的Wrx(x=A,B)=0,ClockA/ClockB的上升沿(SCLK的下降沿)之后輸出當(dāng)前地址寄存器指向的存儲空間里的一位數(shù)據(jù),每當(dāng)輸出一位數(shù)據(jù)后,對應(yīng)子塊的地址寄存器的值加1。

當(dāng)?shù)刂芳拇嫫鲀?nèi)的值加到13時,表示子塊內(nèi)寫滿14位的轉(zhuǎn)換結(jié)果或者子塊輸出14位轉(zhuǎn)換結(jié)果,地址寄存器清零,進(jìn)行下一輪讀/寫操作。數(shù)據(jù)緩存單元的寫操作流程如圖4所示,讀操作流程如圖5所示。

圖4 數(shù)據(jù)緩存單元的寫操作流程

圖5 數(shù)據(jù)緩存單元的讀操作流程

3 系統(tǒng)工作過程

圖6顯示了對一個RAM塊寫入與讀取的過程,系統(tǒng)的8個RAM塊按照相同的節(jié)拍同時工作。

圖6 一個RAM塊的工作過程

圖6中實(shí)線框表示寫入數(shù)據(jù)到子塊,虛線框表示讀取子塊內(nèi)的數(shù)據(jù),框內(nèi)的數(shù)字代表當(dāng)前的地址,打叉的框?yàn)榭臻e區(qū)域(不執(zhí)行寫入操作和讀取操作)。t0至t1的時間長度為執(zhí)行寫操作時地址的有效時間,t1至t2的時間長度為執(zhí)行讀操作時地址的有效時間,兩個時間長度相同且等于一個SCLK周期時間。日字格表示數(shù)據(jù)有效的時間域,數(shù)據(jù)在日字格的時間范圍內(nèi)被寫入或讀取,日字格的左邊沿代表SCLK信號的下降沿(ClockA/ClockB上升沿)時刻。

t3時刻AD Control產(chǎn)生下降沿,MUX值變?yōu)?,開啟對子塊B的寫入操作,在t4時刻,14位的轉(zhuǎn)換結(jié)果被全部寫入到子塊B內(nèi),AddressB清零;另外在t4時刻,AD Control產(chǎn)生上升沿,而此刻的MUX=0,因此t4時刻以后輸出子塊B內(nèi)的轉(zhuǎn)換結(jié)果供DSP讀取,t6時刻DSP剛好讀完14位的轉(zhuǎn)換結(jié)果。在對子塊B執(zhí)行讀取操作的同時,寫入新的轉(zhuǎn)換結(jié)果到子塊A中:在t5時刻,AD Control產(chǎn)生下降沿,MUX值變?yōu)?,寫入新的轉(zhuǎn)換結(jié)果到子塊A,在t7時刻,14位的轉(zhuǎn)換結(jié)果被全部寫入到子塊A內(nèi),AddressA清零;另外在t7時刻,AD Control產(chǎn)生上升沿,而此刻的MUX=1,因此t7時刻后輸出子塊A內(nèi)的轉(zhuǎn)換結(jié)果供DSP讀取,t10時刻DSP剛好讀完14位的轉(zhuǎn)換結(jié)果。在對子塊A執(zhí)行讀取操作的同時,對子塊B執(zhí)行寫入操作:t9時刻AD Control產(chǎn)生下降沿,MUX值變?yōu)?,寫入轉(zhuǎn)換結(jié)果到子塊B,接下來的流程與上文講述的相同,兩個子存儲塊交替工作。

在上述過程中,t6時刻子塊B內(nèi)的14位轉(zhuǎn)換結(jié)果讀取完畢,為了保證DSP能夠可靠地讀取連續(xù)兩次的轉(zhuǎn)換結(jié)果,這時需要插入一個空閑段,空閑段從t6時刻開始至t7時刻結(jié)束,持續(xù)時間為一個SCLK周期時間長度,在空閑期間,雖然仍然有一位數(shù)據(jù)從子塊輸出,但是DSP視其為無效數(shù)據(jù),直到t7時刻開始再次讀取子塊A內(nèi)的轉(zhuǎn)換數(shù)據(jù);同理,在t7時刻,14位轉(zhuǎn)換結(jié)果全部寫入到子塊A內(nèi),為了保證可靠地寫入連續(xù)兩次的轉(zhuǎn)換結(jié)果,這時需要插入一個空閑段,空閑段從t7時刻開始至t8時刻結(jié)束,持續(xù)一個SCLK周期的時間長度,在空閑期間,WrA=WrB=0,不寫入數(shù)據(jù)到數(shù)據(jù)緩存單元,t8時刻開始再次寫入數(shù)據(jù)到子塊B。

通過分析系統(tǒng)工作過程看出,每一個子塊按照:寫-讀-空閑2個SCLK周期-寫-讀-空閑2個SCLK周期……的節(jié)拍工作。對一個RAM塊的寫操作執(zhí)行過程是:寫入轉(zhuǎn)換結(jié)果-空閑一個SCLK周期-寫入新的轉(zhuǎn)換結(jié)果-空閑一個SCLK周期……對一個RAM塊的讀操作執(zhí)行過程是:讀取轉(zhuǎn)換結(jié)果-空閑一個SCLK周期-讀取新的轉(zhuǎn)換結(jié)果-空閑一個SCLK周期……連續(xù)兩次寫操作或讀操作之間只有一個SCLK周期的時間間隔。

4 系統(tǒng)仿真

根據(jù)設(shè)計,在Modelsim 10.1a軟件中進(jìn)行仿真,圖7為正在工作著的系統(tǒng)中某個RAM塊的時序仿真圖。圖中顯示的部分對子塊A執(zhí)行讀-寫-讀操作,對應(yīng)的數(shù)據(jù)分別為:00 011010011001、00 011011000010、00 011011000010;對子塊B執(zhí)行寫-讀-寫操作,對應(yīng)的數(shù)據(jù)分別為:00 100110011100、00 100110011100、00 001100110011。

圖7 正在工作的RAM塊的時序仿真圖

從仿真波形上看出,在FGPA的時鐘信號和控制信號的作用下,可以有效地寫入轉(zhuǎn)換結(jié)果到RAM塊,并且RAM塊能夠正確輸出轉(zhuǎn)換結(jié)果供DSP讀取。

5 結(jié)束語

本文采用了FPGA芯片為主控制器,對8路模擬信號進(jìn)行同時采集,通過FPGA芯片內(nèi)部的RAM對轉(zhuǎn)換結(jié)果進(jìn)行緩存,利用每個RAM塊有雙通道的特點(diǎn),實(shí)現(xiàn)了數(shù)據(jù)寫入與讀取的同時進(jìn)行,提高了系統(tǒng)工作效率。由于IPexpress軟件可實(shí)現(xiàn)對FPGA內(nèi)部RAM的大小與數(shù)量的任意設(shè)置,因此當(dāng)實(shí)際需要測量的交流電壓、電流信號的數(shù)量增多時,或者對測量結(jié)果的精確度提出更高的要求時,本系統(tǒng)可升級為擁有更高精確度與通道數(shù)的AD采集轉(zhuǎn)換系統(tǒng)。本方案設(shè)想與系統(tǒng)的仿真結(jié)果一致,證明了系統(tǒng)的可行性。

[1] 宋鋒, 孫未. 基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計[J]. 信息技術(shù), 2009,23(10):118-120.

[2] 王俊, 鄭焱, 王紅, 等. 基于DMA的并行數(shù)字信號高速采集系統(tǒng)[J]. 電子應(yīng)用技術(shù), 2010,36(3):42-44.

[3] 張耀政, 王文廉, 張志杰. 基于單路FIFO的多通道同步采集存儲系統(tǒng)的研究[J]. 電力系統(tǒng)保護(hù)與控制, 2010, 38(8):100-104.

[4] 楊林楠, 李紅剛, 張麗蓮,等. 基于FPGA的高速多路數(shù)據(jù)采集系統(tǒng)的設(shè)計[J]. 計算機(jī)工程, 2007, 33(7):246-248.

[5] 左麗霞, 鄧芳芳, 盧山. 基于DSP的高速數(shù)據(jù)采集系統(tǒng)設(shè)計與實(shí)現(xiàn)[J]. 電力系統(tǒng)保護(hù)與控制, 2010, 38(13):108-112.

[6] 孫炎輝, 丁紀(jì)峰. 基于FPGA的數(shù)據(jù)采集控制模塊設(shè)計[J]. 現(xiàn)代電子技術(shù), 2009,33(22):189-191.

[7] 梁成志, 王誠, 趙延賓. LATTICE FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M]. 北京: 人民郵電出版社, 2011.

Design of the FPGA-based Multichannel Data Acquisition System

SHI Ji, CHANG Yue, LI Hai-guo

(School of Electronic Information and Electrical Engineering, Shanghai Jiao Tong University, Shanghai 200000, China)

This paper presents a multichannel data acquisition system based on MachXO2 4000ZE series FPGA chip and A/D conversion chip AD7356, with a sampling rate up to 5 Msps. The system adopts several AD chips to achieve real-time acquisition of multichannel analog quantity. Verilog programming language is used to realize FPGA chip’s timing control over A/D conversion. FPGA- embedded dual-port RAMs are used as data caches to store conversion results. Data acquisition and data output are performed simultaneously through FPGA control unit’s control over A/D conversion section and data caching section. Furthermore, this paper describes the structure of the system and the principle of each part, analyzes the FPGA control strategy and realization of data caching, and uses Modelsim simulation software for simulation and analysis purpose.

FPGA; AD7356; multichannel acquisition; A/D conversion;data caching

10.3969/j.issn.1000-3886.2016.01.006

TP930.12

A

1000-3886(2016)01-0015-04

史籍(1990-),男,內(nèi)蒙古赤峰人,碩士生,研究方向?yàn)殡娏﹄娮蛹夹g(shù)。常越(1959-),男,遼寧沈陽人,工學(xué)博士,副教授,研究方向?yàn)殡姍C(jī)控制與特種電源研究;李海國(1990-),男,重慶人,碩士生,研究方向?yàn)榍度胧较到y(tǒng)的研發(fā)。

定稿日期: 2015-11-19

猜你喜歡
子塊空閑寄存器
基于八叉樹的地震數(shù)據(jù)分布式存儲與計算
STM32和51單片機(jī)寄存器映射原理異同分析
基于特征值算法的圖像Copy-Move篡改的被動取證方案
Lite寄存器模型的設(shè)計與實(shí)現(xiàn)
基于兩層分塊GMM-PRS 的流程工業(yè)過程運(yùn)行狀態(tài)評價
“鳥”字謎
基于波浪式矩陣置換的稀疏度均衡分塊壓縮感知算法
西灣村采風(fēng)
移位寄存器及算術(shù)運(yùn)算應(yīng)用
彪悍的“寵”生,不需要解釋
铅山县| 阜宁县| 肇源县| 喀喇| 钟祥市| 方正县| 花莲市| 濮阳县| 青海省| 林甸县| 志丹县| 阿鲁科尔沁旗| 涪陵区| 台东市| SHOW| 昌都县| 石河子市| 手游| 舟曲县| 贵州省| 舞钢市| 东港市| 乃东县| 于都县| 鄂托克前旗| 永德县| 会昌县| 伊吾县| 新安县| 禄丰县| 辽宁省| 罗甸县| 阿城市| 宣威市| 安庆市| 商丘市| 延津县| 东辽县| 扎兰屯市| 贡觉县| 屏南县|