馮傳均,何 泱,戴文峰
(中國(guó)工程物理研究院流體物理研究所 脈沖功率科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,四川 綿陽(yáng) 621900)
基于FPGA的多通道多量程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
馮傳均,何 泱,戴文峰
(中國(guó)工程物理研究院流體物理研究所 脈沖功率科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,四川 綿陽(yáng) 621900)
為了實(shí)現(xiàn)多路模擬信號(hào)的準(zhǔn)確采集、記錄和顯示,設(shè)計(jì)了一種基于FPGA的多通道、多量程數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)采用FPGA作為主控芯片,通過(guò)FPGA內(nèi)部的控制模塊控制A/D數(shù)據(jù)轉(zhuǎn)換和UART接口數(shù)據(jù)傳輸,并在FPGA內(nèi)部完成數(shù)據(jù)處理。FPGA與上位機(jī)之間采用RS-232串口實(shí)現(xiàn)數(shù)據(jù)通信,上位機(jī)采用Viusal Basic編寫監(jiān)控界面,實(shí)現(xiàn)遠(yuǎn)程控制和顯示。該系統(tǒng)具有性能穩(wěn)定、實(shí)時(shí)性強(qiáng)、操作界面友好、可擴(kuò)展性強(qiáng)等特點(diǎn)。
數(shù)據(jù)采集;FPGA;串口通信;上位機(jī)
數(shù)據(jù)采集技術(shù)是信息科學(xué)的重要分支,被廣泛應(yīng)用于現(xiàn)代工業(yè)生產(chǎn)、國(guó)防及科學(xué)研究等方面。數(shù)據(jù)采集、傳輸及監(jiān)控系統(tǒng)是過(guò)程控制、狀態(tài)監(jiān)測(cè)、故障診斷、質(zhì)量檢測(cè)等系統(tǒng)的重要組成部分。怎樣快速完成多路模擬信號(hào)的同步采集,并對(duì)采集到的信號(hào)進(jìn)行快速處理和顯示,以滿足工藝現(xiàn)場(chǎng)的控制要求,是數(shù)據(jù)采集技術(shù)研究的一個(gè)重要問(wèn)題[1-2]。本文以Altera公司的FPGA作為主控芯片,結(jié)合Maxim公司的高速ADC以及TI公司兼容RS-232標(biāo)準(zhǔn)的芯片,實(shí)現(xiàn)對(duì)8路模擬電壓信號(hào)(±10 V、±5 V、0~10 V、0~5 V)的實(shí)時(shí)采集和傳輸[3],上位機(jī)軟件采用Viusal Basic編寫監(jiān)控界面,實(shí)現(xiàn)遠(yuǎn)程控制和數(shù)據(jù)顯示。
數(shù)據(jù)采集系統(tǒng)主要由A/D轉(zhuǎn)換電路、FPGA單元電路、數(shù)據(jù)通信和上位機(jī)監(jiān)控界面4部分組成,如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
A/D轉(zhuǎn)換電路采用Maxim公司的MAX197。由FPGA內(nèi)部的A/D控制模塊向MAX197發(fā)送采樣控制指令,控制A/D轉(zhuǎn)換芯片將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),轉(zhuǎn)換精度為12 bit。
FPGA采用Altera公司Cyclone IV系列的EP4CE15F17 C8N,F(xiàn)PGA芯片作為系統(tǒng)的主控芯片,控制A/D轉(zhuǎn)換芯片實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換并對(duì)轉(zhuǎn)換結(jié)果進(jìn)行處理,同時(shí)通過(guò)UART接口控制[4],實(shí)現(xiàn)FPGA與上位機(jī)串口通信。
FPGA與上位機(jī)之間采用RS-232串口實(shí)現(xiàn)數(shù)據(jù)通信,上位機(jī)通常具備標(biāo)準(zhǔn)的串行接口,F(xiàn)PGA與RS-232串口間采用電平轉(zhuǎn)換芯片MAX232實(shí)現(xiàn)TTL/COMS電平轉(zhuǎn)換,F(xiàn)PGA內(nèi)部模塊實(shí)現(xiàn)UART接口控制。
上位機(jī)監(jiān)控軟件采用Visual Basic進(jìn)行界面設(shè)計(jì),實(shí)現(xiàn)數(shù)據(jù)采集系統(tǒng)的采樣通道、電壓范圍、電壓極性等參數(shù)的遠(yuǎn)程控制,并對(duì)采集的數(shù)據(jù)結(jié)果進(jìn)行記錄、顯示及繪制曲線。
2.1 A/D轉(zhuǎn)換電路
2.1.1 MAX197芯片介紹
MAX197是Maxim公司推出的具有12位測(cè)量精度和多量程(±10 V、±5 V、0~10 V、0~5 V)的高速A/D轉(zhuǎn)換芯片,轉(zhuǎn)換時(shí)間為6 μs,采用+5 V單電源供電,具有8路輸入通道,提供并行接口-8位三態(tài)數(shù)據(jù)I/O口。
2.1.2 MAX197的控制字
MAX197芯片的控制字節(jié)的寫入和數(shù)據(jù)的讀出都是由8位并行接口實(shí)現(xiàn)[5]。FPGA可以將MAX197芯片作為一個(gè)I/O來(lái)尋址,使用方便。MAX197芯片進(jìn)行數(shù)據(jù)采集轉(zhuǎn)換前需要先對(duì)其進(jìn)行初始化,通過(guò)設(shè)置控制寄存器,確定其采樣轉(zhuǎn)換的通道、量程和極性等??刂萍拇嫫鞲袷饺绫?所示。
表1 MAX197控制寄存器格式
2.1.3 MAX197控制接口電路
MAX197是一種通用A/D芯片,可以與多種微機(jī)接口配合。對(duì)于本文選用的FPGA芯片,F(xiàn)PGA的D1~D8與MAX197的D0~D7相連,既用于輸入MAX197的控制字,也用于讀取轉(zhuǎn)換結(jié)果數(shù)據(jù)。FPGA的E1~E5分別連接MAX197的INT、HBEN、RD、WR、CS引腳。INT為轉(zhuǎn)換識(shí)別信號(hào),當(dāng)數(shù)據(jù)轉(zhuǎn)換完畢時(shí)INT腳產(chǎn)生中斷信號(hào);HBEN為12位數(shù)據(jù),高4位或低8位有效控制位,高電平時(shí)高4位數(shù)據(jù)有效,低電平時(shí)低8位數(shù)據(jù)有效;RD為讀信號(hào)控制;WR為寫信號(hào)控制;CS為片選控制。選擇MAX197為低功耗工作方式,故置MAX197的SHDN腳為高電平;采用內(nèi)部時(shí)鐘模式,CLK腳接100 pF電容,時(shí)鐘頻率為2 MHz;芯片采用內(nèi)部基準(zhǔn)電壓,故REF、REFAD通過(guò)電容器接地,設(shè)計(jì)接口電路如圖2所示。
圖2 FPGA和MAX197接口電路
2.2 數(shù)據(jù)通信電路
FPGA與上位機(jī)之間采用RS-232串口通信,由于FPGA的I/O腳信號(hào)電平和RS-232的標(biāo)準(zhǔn)不一樣,F(xiàn)PGA與RS-232之間采用電平轉(zhuǎn)換芯片MAX232,實(shí)現(xiàn)TTL/COMS電平之間的轉(zhuǎn)換。
MAX232芯片是由TI公司推出的一款兼容RS-232標(biāo)準(zhǔn)的芯片。該芯片采用5 V單電源供電,支持3.3 V/5 V電平,采用Lin BiCMOSTM工藝技術(shù),一片MAX232芯片包含兩個(gè)驅(qū)動(dòng)器及兩個(gè)接收器。MAX232電平轉(zhuǎn)換電路圖如圖3所示。
圖3 MAX232電平轉(zhuǎn)換電路圖
FPGA是系統(tǒng)的核心控制部分,控制A/D轉(zhuǎn)換芯片完成模/數(shù)轉(zhuǎn)換,通過(guò)內(nèi)部UART接口控制,實(shí)現(xiàn)與上位機(jī)之間串口通信。FPGA軟件采用Verilog HDL編程語(yǔ)言在Quartus II軟件下完成[6]。軟件采用自頂向下的設(shè)計(jì)方法,分別完成各個(gè)模塊的代碼編寫。FPGA內(nèi)部控制模塊包括:波特率產(chǎn)生模塊、UART接收控制模塊、MAX197控制模塊和UART發(fā)送控制模塊。波特率產(chǎn)生模塊將系統(tǒng)提供的外部時(shí)鐘轉(zhuǎn)換為UART收發(fā)模塊需要的頻率。UART接收控制模塊按照設(shè)定的數(shù)據(jù)接收協(xié)議,從串口接收上位機(jī)發(fā)送的控制命令,并對(duì)接收的數(shù)據(jù)進(jìn)行緩存、解析處理后將控制命令寫入A/D轉(zhuǎn)換控制模塊。A/D轉(zhuǎn)換控制模塊根據(jù)控制命令向MAX197發(fā)送采樣控制指令,控制A/D轉(zhuǎn)換芯片完成數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)果經(jīng)過(guò)緩存、數(shù)據(jù)處理后寫入U(xiǎn)ART發(fā)送控制模塊。UART發(fā)送控制模塊按照設(shè)定的數(shù)據(jù)發(fā)送協(xié)議將數(shù)據(jù)結(jié)果通過(guò)串口發(fā)送給上位機(jī)。FPGA控制原理圖如圖4所示。
3.1 波特率產(chǎn)生模塊
在電子通信領(lǐng)域,波特率即調(diào)制速度,它是對(duì)符號(hào)傳輸速率的一種度量,1 b/s表示每秒傳輸1個(gè)符號(hào)。波特率產(chǎn)生模塊的功能是產(chǎn)生與RS-232串口通信波特率同步的時(shí)鐘,其基本思路是對(duì)系統(tǒng)輸入時(shí)鐘進(jìn)行分頻得到需要的波特率。本設(shè)計(jì)FPGA輸入時(shí)鐘為50 MHz,波特率選擇的是9 600 b/s,分頻計(jì)數(shù)值為5 207。
圖4 FPGA控制原理圖
3.2 UART接收控制模塊
UART接收控制模塊主要實(shí)現(xiàn)對(duì)串行數(shù)據(jù)的串并轉(zhuǎn)換,轉(zhuǎn)換的串行數(shù)據(jù)按照既定的數(shù)據(jù)幀格式進(jìn)行輸出。UART數(shù)據(jù)接收協(xié)議采用1位起始位、8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)位的格式,在9 600 b/s波特率下,UART數(shù)據(jù)采集步驟如下:
(1)空閑狀態(tài),等待數(shù)據(jù)起始位0;
(2)根據(jù)起始位的標(biāo)志,判斷UART時(shí)序起始;
(3)由低位到高位串行接收8位數(shù)據(jù);
(4)判斷結(jié)束位1,一幀數(shù)據(jù)接收完畢。
3.3 UART發(fā)送控制模塊
UART發(fā)送控制模塊主要實(shí)現(xiàn)對(duì)并行數(shù)據(jù)的并串轉(zhuǎn)換,轉(zhuǎn)換的串行數(shù)據(jù)按照既定的數(shù)據(jù)幀格式進(jìn)行輸出。UART數(shù)據(jù)協(xié)議采用1位起始位、8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)位的格式,在9 600 b/s波特率下,UART數(shù)據(jù)采集步驟如下:
(1)初始化狀態(tài),等待UART數(shù)據(jù)發(fā)送使能標(biāo)志位;
(2)串行數(shù)據(jù)發(fā)送格式為:先發(fā)送數(shù)據(jù)起始位,8位數(shù)據(jù)由低到高依次發(fā)送,最后發(fā)送停止位;
(3)發(fā)送完成回到初始狀態(tài),等待下一次發(fā)送使能。
3.4 MAX197控制模塊
MAX197控制模塊用于產(chǎn)生MAX197芯片正常工作所需要的時(shí)序,MAX197芯片工作過(guò)程包括:等待(IDLE)、控制寄存器初始化(SEND_CTRLDATA)、等待轉(zhuǎn)換結(jié)束(WAIT_INT)、讀轉(zhuǎn)換完成數(shù)據(jù)的低8位(READ_LOW)、讀轉(zhuǎn)換完成數(shù)據(jù)的高4位(READ_HIGH)、判斷下一次操作(STATE_JUDGE)共6個(gè)狀態(tài),MAX197芯片的控制狀態(tài)機(jī)如圖5所示。
圖5 MAX197芯片控制狀態(tài)機(jī)
上位機(jī)監(jiān)控界面采用Visual Basic軟件開發(fā)工具實(shí)現(xiàn)[7]。該軟件具有良好的界面設(shè)計(jì)能力,串口通信相關(guān)控件功能強(qiáng)大、完善且易用。上位機(jī)控制界面如圖6所示,主要控件包括:串口管理模塊、數(shù)據(jù)采集設(shè)置模塊、多通道數(shù)據(jù)顯示模塊、波形繪制窗口。串口管理模塊用于設(shè)置串口號(hào)、波特率、數(shù)據(jù)位、停止位和奇/偶校驗(yàn)位等參數(shù);數(shù)據(jù)采集模塊設(shè)置A/D轉(zhuǎn)換芯片的工作方式、時(shí)鐘模式、采樣電壓范圍、采樣電壓極性、采樣通道;多通道數(shù)據(jù)顯示模塊對(duì)A/D轉(zhuǎn)換完成的數(shù)據(jù)進(jìn)行顯示;波形繪制窗口對(duì)采集的數(shù)據(jù)進(jìn)行波形曲線繪制,橫坐標(biāo)為時(shí)間,縱坐標(biāo)為數(shù)據(jù)結(jié)果。
圖6 上位機(jī)控制界面
本文設(shè)計(jì)的基于VB和FPGA的數(shù)據(jù)采集系統(tǒng),能夠?qū)崿F(xiàn)多通道、多量程數(shù)據(jù)的在線監(jiān)測(cè)。該系統(tǒng)利用FPGA內(nèi)部控制模塊,實(shí)現(xiàn)A/D芯片A/D轉(zhuǎn)換控制和UART接口控制,簡(jiǎn)化了硬件電路設(shè)計(jì);上位機(jī)軟件通過(guò)圖形界面實(shí)現(xiàn)采樣通道、采樣參數(shù)設(shè)置,A/D轉(zhuǎn)換結(jié)果的存儲(chǔ)、處理和十進(jìn)制顯示等功能。系統(tǒng)采用模塊化設(shè)計(jì),通過(guò)修改參數(shù)設(shè)置,可運(yùn)用到其他數(shù)據(jù)采集系統(tǒng)中。
[1] 周學(xué)禮,葉飛,呂忠斌.基于VB的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電氣工程,2010(5):9-12.
[2] 劉軍,岳興蓮,何國(guó)國(guó),等.基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2009,28(19):13-15.
[3] 李華,劉寶盈,劉萌,等.基于FPGA的多路數(shù)據(jù)采集與傳輸系統(tǒng)設(shè)計(jì)[J].電子測(cè)試,2014(18):29-31.
[4] 趙樂(lè)森,王旭柱.基于FPGA與USB2.0的實(shí)時(shí)數(shù)據(jù)采集與處理系統(tǒng)[J].微型機(jī)與應(yīng)用,2011,30(17):25-27.
[5] 顏延秦.12位MAX197和51單片機(jī)實(shí)現(xiàn)數(shù)據(jù)采集設(shè)計(jì)[J].能源技術(shù)與管理,2006(3):75-77.
[6] 韓彬,于瀟宇,張雷鳴.FPGA設(shè)計(jì)技巧與案例開發(fā)詳解[M].北京:電子工業(yè)出版社,2014.
[7] 辛本柱.新手學(xué)Visual Basic[M].北京:北京希望電子出版社,2010.
The design of a multi-channel variable-range data acquisition system based on FPGA
Feng Chuanjun, He Yang, Dai Wenfeng
(Key Laboratory of Pulsed Power, Institute of Fluid Physics, CAEP, Mianyang 621900, China)
To satisfy the need of acquiring, recording and displaying multiple analog signals, this paper presents a multi-channel variable-range data acquisition system based on FPGA. This system introduces an FPGA chip as the main controller, which implements the A/D transition, the UART port communication, and data processing. The controller communicates with the upper machine through an RS-232 series port. The upper machines runs a graphic user interface that programmed in Visual Basic to manipulate and supervise the system remotely. This system has the characteristics of stable and real-time performance, friendly user interface, and easy to extend.
data acquisition; FPGA; serial communication; upper machine
TP274+.2
A
10.19358/j.issn.1674- 7720.2017.15.011
馮傳均,何泱,戴文峰.基于FPGA的多通道多量程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(15):38-40,44.
2017-03-05)
馮傳均(1989-),男,本科,主要研究方向:脈沖功率技術(shù)及測(cè)控技術(shù)。