文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190460
中文引用格式: 易志強(qiáng),,韓賓,江虹,,等. 基于FPGA的多通道同步實(shí)時(shí)高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2019,45(6):70-74.
英文引用格式: Yi Zhiqiang,,Han Bin,,Jiang Hong,et al. Design of multi-channel synchronous real-time high-speed data acquisition system based on FPGA[J]. Application of Electronic Technique,,2019,,45(6):70-74.
0 引言
隨著科學(xué)技術(shù)的快速發(fā)展,數(shù)據(jù)采集系統(tǒng)已廣泛應(yīng)用于航天,、軍事,、工業(yè)、醫(yī)療等各個(gè)領(lǐng)域,尤其在高精度產(chǎn)品的檢測(cè)和監(jiān)控項(xiàng)目中發(fā)揮著至關(guān)重要的作用[1],。在實(shí)際工程應(yīng)用中,,要求采集系統(tǒng)具有高速率、高精度,、實(shí)時(shí)處理,、系統(tǒng)穩(wěn)定性好和通道數(shù)量多等特點(diǎn)。但是,,傳統(tǒng)的數(shù)據(jù)采集方案多數(shù)以ARM處理器(Advanced RISC Machine,,ARM)或數(shù)字信號(hào)處理器(Digital Signal Processing,DSP)作為控制核心,,并不能有效解決高速數(shù)據(jù)采集處理中實(shí)時(shí)性和同步性的技術(shù)難題[2],。
與DSP和ARM相比,FPGA在數(shù)據(jù)采集領(lǐng)域有著極其重要的地位,。FPGA具有時(shí)鐘頻率高,、內(nèi)部延時(shí)小、純硬件并行控制,、運(yùn)算速度快,、編程配置靈活、開發(fā)周期短,、抗干擾能力強(qiáng),、內(nèi)部資源豐富等優(yōu)點(diǎn),非常適用于實(shí)時(shí)高速數(shù)據(jù)采集[3-4],。
針對(duì)上述問題,,本文設(shè)計(jì)了一種以FPGA作為主要處理器的16通道實(shí)時(shí)高速高精度的同步數(shù)據(jù)采集系統(tǒng),本方案在實(shí)際監(jiān)測(cè)工程中的采樣頻率為200 kHz,,運(yùn)用FPGA合理地控制和協(xié)調(diào)數(shù)據(jù)流在各個(gè)模塊之間傳輸,,進(jìn)而實(shí)現(xiàn)系統(tǒng)所需求的實(shí)時(shí)、同步和高速采集等功能,。
1 系統(tǒng)總體設(shè)計(jì)
1.1 系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)
本系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)如圖1所示,,該系統(tǒng)由數(shù)據(jù)前采集前端處理、數(shù)據(jù)存儲(chǔ)系統(tǒng),、選通開關(guān)控制系統(tǒng)和FPGA核心控制系統(tǒng)四部分構(gòu)成。采集前端處理主要對(duì)輸入測(cè)量系統(tǒng)的模擬信號(hào)進(jìn)行濾波處理和幅值控制,,以保證輸入采集芯片的模擬信號(hào)更加穩(wěn)定,;FPGA核心控制系統(tǒng)通過使用FPGA作為核心控制器件,實(shí)現(xiàn)了數(shù)據(jù)同步處理,、實(shí)時(shí)采集,、數(shù)據(jù)緩存、時(shí)序約束,、端口控制,、數(shù)據(jù)判讀數(shù),、據(jù)存儲(chǔ)等功能;數(shù)據(jù)存儲(chǔ)系統(tǒng)的功能是將判讀后的數(shù)據(jù)實(shí)時(shí)存儲(chǔ)到Flash中,;選通開關(guān)控系統(tǒng)則是利用1選8多路復(fù)用開關(guān)ADG1408和固態(tài)繼電器G3FD-X03SN實(shí)現(xiàn)被測(cè)設(shè)備的輸入信號(hào)選通和電源通斷控制,,使被測(cè)設(shè)備能安全快速地進(jìn)入到監(jiān)測(cè)狀態(tài)。本系統(tǒng)需要對(duì)8個(gè)被測(cè)設(shè)備進(jìn)行同步實(shí)時(shí)循環(huán)測(cè)量與控制,,并對(duì)測(cè)量數(shù)據(jù)進(jìn)行記錄判讀,、傳輸與存儲(chǔ)。主要包括:供電管理與電源控制,、直流電壓電流實(shí)時(shí)監(jiān)測(cè),、模擬信號(hào)通道切換、射頻信號(hào)切換,、數(shù)據(jù)存儲(chǔ)等功能,。
1.2 系統(tǒng)工作原理
系統(tǒng)上電后,等待FPGA初始化完成,,進(jìn)入等待連接狀態(tài),。當(dāng)外部輸入相關(guān)命令參數(shù)后,由FPGA接收并解析命令,。先控制系統(tǒng)內(nèi)部選通開關(guān)工作,,將被選中的設(shè)備信號(hào)接入采集系統(tǒng)中。然后向被測(cè)設(shè)備發(fā)出控制信息,,同時(shí)采集系統(tǒng)實(shí)時(shí)監(jiān)控被測(cè)設(shè)備的供電情況,,隨后,將采集的數(shù)據(jù)緩存到FPGA內(nèi)部隨機(jī)存取存儲(chǔ)器(Random Access Memory,,RAM)中等待處理,。最后將采集到的數(shù)據(jù)通過FPGA片上先進(jìn)先出隊(duì)列(First Input First Output,F(xiàn)IFO)回傳到外部監(jiān)視器上進(jìn)行實(shí)時(shí)顯示,,按照相應(yīng)規(guī)則進(jìn)行判決并存儲(chǔ),,形成測(cè)試數(shù)據(jù)報(bào)表。
2 部分硬件電路設(shè)計(jì)
2.1 信號(hào)調(diào)理電路設(shè)計(jì)
由于輸入系統(tǒng)的被測(cè)信號(hào)的電壓幅值為27 V,,無法直接對(duì)被測(cè)信號(hào)進(jìn)行采集處理,,因此本系統(tǒng)設(shè)計(jì)了信號(hào)調(diào)理電路對(duì)輸入系統(tǒng)的模擬信號(hào)進(jìn)行濾波處理和幅值控制。該電路通過采用可編程放大器AD8065設(shè)計(jì)了一個(gè)具有較平坦通帶的二階有源巴特沃斯低通濾波器,,對(duì)前端輸入模擬電壓信號(hào)進(jìn)行濾波處理,。隨后,利用芯片MAX4080將模擬電流信號(hào)轉(zhuǎn)換成模擬電壓信號(hào),。然后,,使用高精度的電阻網(wǎng)絡(luò)分壓方式對(duì)被測(cè)模擬電壓進(jìn)行比例降壓,再經(jīng)過高性能運(yùn)放AD8276進(jìn)行模擬電壓調(diào)理。最后,,傳送到模擬數(shù)字轉(zhuǎn)換器(Analog-to-Digital Converter,,ADC)進(jìn)行采樣。經(jīng)過該硬件調(diào)理后,,可以保障輸入采集芯片的模擬電壓信號(hào)具有平滑,、穩(wěn)定的特性。
2.2 A/D轉(zhuǎn)換電路設(shè)計(jì)
A/D模數(shù)轉(zhuǎn)換器是數(shù)據(jù)采集的核心器件,,影響著整個(gè)系統(tǒng)的采樣精度,、采樣速率和數(shù)據(jù)吞吐量,所以芯片選型是采集系統(tǒng)設(shè)計(jì)中最關(guān)鍵的一步,。本系統(tǒng)設(shè)計(jì)采用ADI公司的高精度,、低功耗、電荷再次分配逐次逼近型模數(shù)轉(zhuǎn)換器AD7609,,該產(chǎn)品是一款8通道,、18位、真差分,、同步采樣模數(shù)轉(zhuǎn)換芯片,。本系統(tǒng)采用兩片AD7609芯片構(gòu)成了16路通道的數(shù)據(jù)采集電路。AD7609硬件電路圖如圖2所示,,將并行/串行接口選擇輸入端與3.3 V電平直接相連,,再將芯片引腳CONVST A和CONVST B短接在一起,并施加同一個(gè)轉(zhuǎn)換信號(hào)可以實(shí)現(xiàn)8個(gè)通道同時(shí)轉(zhuǎn)換,。
2.3 存儲(chǔ)電路設(shè)計(jì)
數(shù)據(jù)采集完成后,,將相應(yīng)通道的采樣數(shù)據(jù)發(fā)送到監(jiān)視器進(jìn)行實(shí)時(shí)顯示和存儲(chǔ)到Flash閃存中,等待外部控制器發(fā)送讀取命令,。本系統(tǒng)采用ST公司的S25FL128P Flash存儲(chǔ)器進(jìn)行實(shí)時(shí)存儲(chǔ),。該芯片存儲(chǔ)容量為128 Mbit,通過SPI接口與外部控制器建立通信,,接口的時(shí)鐘頻率最大可達(dá)到104 MHz,。該芯片具有設(shè)計(jì)簡單、存儲(chǔ)數(shù)據(jù)穩(wěn)定和價(jià)格低廉等特點(diǎn),,具有廣泛的實(shí)用性,。Flash存儲(chǔ)電路如圖3所示。
3 系統(tǒng)軟件設(shè)計(jì)
FPGA軟件設(shè)計(jì)主要?jiǎng)澐殖上到y(tǒng)同步時(shí)鐘,、數(shù)據(jù)采集,、數(shù)據(jù)緩存、數(shù)據(jù)存儲(chǔ)4個(gè)模塊,,下面依次介紹各個(gè)模塊的設(shè)計(jì)。
3.1 系統(tǒng)同步時(shí)鐘模塊
由于A/D采樣和Flash數(shù)據(jù)存儲(chǔ)時(shí)鐘均為50 MHz,而數(shù)據(jù)處理和RAM緩存讀寫控制的時(shí)鐘均為100 MHz,。因此,,為了保證系統(tǒng)各模塊之間數(shù)據(jù)傳輸與處理的同步性,本系統(tǒng)采用FPGA內(nèi)部的鎖相環(huán)(Phase Locked Loop,,PLL)IP核倍頻或分頻生成100 MHz和50 MHz的時(shí)鐘,。通過調(diào)用鎖相環(huán)設(shè)計(jì)出一個(gè)具有低抖動(dòng)、低延遲的系統(tǒng)時(shí)鐘,,保障了高速采集系統(tǒng)運(yùn)行更加穩(wěn)定[5-6],。與大多數(shù)時(shí)鐘同步方案不同,該系統(tǒng)同步時(shí)鐘模塊除了使用PLL之外,,還要通過時(shí)序約束的方式來減小數(shù)據(jù)與時(shí)鐘之間偏斜,,重新建立時(shí)鐘偏斜的保持時(shí)間(Time Setup,TSU)如圖4所示,。通過時(shí)序約束不僅能實(shí)現(xiàn)系統(tǒng)時(shí)鐘同步,,還能避免出現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤。
3.2 數(shù)據(jù)采集模塊
FPGA對(duì)AD7609的控制主要是通過對(duì)轉(zhuǎn)換信號(hào)CONVST AB,、片選信號(hào)CS,、時(shí)鐘信號(hào)SCLK進(jìn)行控制,完成采樣率調(diào)整和采樣啟??刂?。如圖5(a)所示,本模塊通過控制AD7609在轉(zhuǎn)換期間讀取數(shù)據(jù)的方式進(jìn)行采樣,。當(dāng)檢測(cè)到BUSY下降沿時(shí),,則完成所有通道的數(shù)據(jù)轉(zhuǎn)換。從圖5(b)的仿真圖可以看出,,通過使用系統(tǒng)同步時(shí)鐘模塊可以實(shí)現(xiàn)16路通道的同步采集功能,。由于AD7609的輸出編碼方式為二進(jìn)制補(bǔ)碼,因此采集完成后可以通過ADC傳遞函數(shù)得到轉(zhuǎn)換后數(shù)字信號(hào)代表的幅值,,轉(zhuǎn)換公式為:
式中,,CODE為轉(zhuǎn)換后的二進(jìn)制碼,V+和V-是電源供電電壓,,REF則為基準(zhǔn)電壓,。
3.3 數(shù)據(jù)緩存模塊
由于系統(tǒng)為16通道同步數(shù)據(jù)采集,因此每完成一次采集會(huì)產(chǎn)生大量待處理數(shù)據(jù),。并且由于FPGA與外部處理器通信之間存在硬件差異,,會(huì)導(dǎo)致其與外部處理器之間存在傳輸處理速度不匹配的問題。因此,,為了滿足系統(tǒng)所需實(shí)時(shí)存儲(chǔ)和傳輸要求,,本系統(tǒng)采用了一種乒乓結(jié)構(gòu)的傳輸方式[6]進(jìn)行數(shù)據(jù)緩存,。利用FPGA內(nèi)置的知識(shí)產(chǎn)權(quán)核(Intellectual Property core,IP)資源,,在ISE14.7軟件操作平臺(tái)上,,構(gòu)建系統(tǒng)所需18 bit位寬的塊RAM和FIFO各兩片進(jìn)行輪流讀寫操作,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)緩存的功能,。如圖6所示,,若使能信號(hào)Crl_1處于高電平,則控制RAM_1進(jìn)行存儲(chǔ),。當(dāng)RAM_1存儲(chǔ)滿后,,產(chǎn)生另一個(gè)使能控制信號(hào)Crl_2并將使能信號(hào)Crl_1電平翻轉(zhuǎn),由RAM_2繼續(xù)行數(shù)據(jù)存儲(chǔ),。當(dāng)使能信號(hào)Crl_2到來時(shí),,等待系統(tǒng)判讀生效后,則控制FIFO進(jìn)行數(shù)據(jù)緩存,。若該控制信號(hào)處于高電平則FIFO_1進(jìn)行數(shù)據(jù)緩存,。當(dāng)FIFO_1緩存滿后則將使能控制信號(hào)Crl_2的電平翻轉(zhuǎn),由FIFO_2繼續(xù)緩存,,并將FIFO_1中的數(shù)據(jù)通過某種協(xié)議傳送到外部控制器進(jìn)行處理,。如此周而復(fù)始,在RAM和FIFO緩存器中進(jìn)行乒乓操作,,可以實(shí)現(xiàn)系統(tǒng)所需實(shí)時(shí)存儲(chǔ)和傳輸功能,。
如圖7數(shù)據(jù)緩存仿真圖所示,通過時(shí)序約束實(shí)現(xiàn)了兩個(gè)不同緩存器之間的同步讀寫操作,,很好地完成了乒乓式的數(shù)據(jù)緩存功能,。
3.4 數(shù)據(jù)存儲(chǔ)模塊
利用外部處理器設(shè)定一個(gè)閾值,將緩存進(jìn)RAM中的數(shù)據(jù)與閾值比對(duì),。若大于閾值電壓,,則判讀無效將被測(cè)設(shè)備電源和信號(hào)選通開關(guān)斷開;反之,,數(shù)據(jù)判讀有效,,需要將采集時(shí)間、外部命令輸入以及采集數(shù)據(jù)組幀后,,實(shí)時(shí)存儲(chǔ)到Flash中,。本模塊利用FPGA通過SPI總線與M25P128芯片建立主從關(guān)系,實(shí)現(xiàn)了Sector擦除,、Page編程,、地址管理、數(shù)據(jù)讀取等功能,,從而快速,、準(zhǔn)確地在Flash芯片中實(shí)現(xiàn)數(shù)據(jù)讀寫功能,。該模塊采用了摩爾狀態(tài)機(jī)實(shí)現(xiàn)狀態(tài)跳轉(zhuǎn),既消除了狀態(tài)跳轉(zhuǎn)時(shí)造成的毛刺,,又很好地完成了存儲(chǔ)與讀取功能,。數(shù)據(jù)存儲(chǔ)與讀取狀態(tài)圖如圖8所示。圖中地址管理除了實(shí)現(xiàn)頁面讀寫地址轉(zhuǎn)換外,,還要將第一個(gè)頁面用于存儲(chǔ)下最后一次存儲(chǔ)的地址,在斷電重啟后,,能緊接著掉電前的數(shù)據(jù)繼續(xù)進(jìn)行數(shù)據(jù)存儲(chǔ),。
Flash數(shù)據(jù)存儲(chǔ)仿真圖如圖9所示,數(shù)據(jù)存儲(chǔ)功能是將8 bit的并行數(shù)據(jù)通過Flash_SI引腳串行輸入到Flash芯片中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)功能,。數(shù)據(jù)讀取功能則需要?jiǎng)?chuàng)建一個(gè)8位的移位寄存器將Flash_SO引腳的串行數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù),,傳輸?shù)酵獠刻幚砥鬟M(jìn)行處理。
4 結(jié)論
針對(duì)傳統(tǒng)數(shù)據(jù)采集處理系統(tǒng)不能有效地實(shí)現(xiàn)數(shù)據(jù)在傳輸和存儲(chǔ)過程中的同步性,、實(shí)時(shí)性問題,,本文設(shè)計(jì)了一種基于FPGA的16通道高精度同步實(shí)時(shí)高速采集系統(tǒng)。該系統(tǒng)采用FPGA控制AD7609在轉(zhuǎn)換期間讀取數(shù)據(jù)的傳輸方式,,使系統(tǒng)能夠達(dá)到200 kHz采樣率,。通過合理利用FPGA內(nèi)部資源,實(shí)現(xiàn)數(shù)據(jù)緩存的乒乓傳輸方式,,從而完成了數(shù)據(jù)的實(shí)時(shí)傳輸和Flash的實(shí)時(shí)存儲(chǔ)功能,,增強(qiáng)了數(shù)據(jù)傳輸和存儲(chǔ)的可靠性、有效性和穩(wěn)定性,,極大地發(fā)揮出了FPGA的高速數(shù)據(jù)并行處理能力和時(shí)序約束能力,。本系統(tǒng)已成功應(yīng)用于某實(shí)際工程監(jiān)測(cè)項(xiàng)目中,具有一定的應(yīng)用價(jià)值,。
參考文獻(xiàn)
[1] 黃鴻靖.面向信號(hào)模擬的實(shí)時(shí)數(shù)據(jù)采集與塊數(shù)據(jù)傳輸技術(shù)研究[D].杭州:浙江大學(xué),,2018.
[2] 趙樹磊,劉敬猛,,張慧,,等.基于FPGA臨空數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,,44(12):123-126.
[3] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,,2005.
[4] 王建中,楊璐.高速實(shí)時(shí)系統(tǒng)數(shù)據(jù)采集與傳輸[J].計(jì)算機(jī)科學(xué),,2016,,43(S2):604-606.
[5] 皮代軍,張海勇,,葉顯陽,,等.基于FPGA的高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),,2009,32(6):12-14.
[6] 張素萍,,李朝強(qiáng),,張建芬.一種高速實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)設(shè)計(jì)[J].火力與指揮控制,2016,,41(7):125-129.
作者信息:
易志強(qiáng),,韓 賓,江 虹,,張秋云
(西南科技大學(xué) 信息工程學(xué)院,,四川 綿陽621010)