馮傳均,何 泱,戴文峰
(中國工程物理研究院流體物理研究所 脈沖功率科學與技術重點實驗室,四川 綿陽 621900)
基于FPGA的多通道多量程數(shù)據(jù)采集系統(tǒng)設計
馮傳均,何 泱,戴文峰
(中國工程物理研究院流體物理研究所 脈沖功率科學與技術重點實驗室,四川 綿陽 621900)
為了實現(xiàn)多路模擬信號的準確采集、記錄和顯示,設計了一種基于FPGA的多通道、多量程數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)采用FPGA作為主控芯片,通過FPGA內(nèi)部的控制模塊控制A/D數(shù)據(jù)轉(zhuǎn)換和UART接口數(shù)據(jù)傳輸,并在FPGA內(nèi)部完成數(shù)據(jù)處理。FPGA與上位機之間采用RS-232串口實現(xiàn)數(shù)據(jù)通信,上位機采用Viusal Basic編寫監(jiān)控界面,實現(xiàn)遠程控制和顯示。該系統(tǒng)具有性能穩(wěn)定、實時性強、操作界面友好、可擴展性強等特點。
數(shù)據(jù)采集;FPGA;串口通信;上位機
數(shù)據(jù)采集技術是信息科學的重要分支,被廣泛應用于現(xiàn)代工業(yè)生產(chǎn)、國防及科學研究等方面。數(shù)據(jù)采集、傳輸及監(jiān)控系統(tǒng)是過程控制、狀態(tài)監(jiān)測、故障診斷、質(zhì)量檢測等系統(tǒng)的重要組成部分。怎樣快速完成多路模擬信號的同步采集,并對采集到的信號進行快速處理和顯示,以滿足工藝現(xiàn)場的控制要求,是數(shù)據(jù)采集技術研究的一個重要問題[1-2]。本文以Altera公司的FPGA作為主控芯片,結(jié)合Maxim公司的高速ADC以及TI公司兼容RS-232標準的芯片,實現(xiàn)對8路模擬電壓信號(±10 V、±5 V、0~10 V、0~5 V)的實時采集和傳輸[3],上位機軟件采用Viusal Basic編寫監(jiān)控界面,實現(xiàn)遠程控制和數(shù)據(jù)顯示。
數(shù)據(jù)采集系統(tǒng)主要由A/D轉(zhuǎn)換電路、FPGA單元電路、數(shù)據(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)換芯片將模擬信號轉(zhuǎn)換為數(shù)字信號,轉(zhuǎn)換精度為12 bit。
FPGA采用Altera公司Cyclone IV系列的EP4CE15F17 C8N,F(xiàn)PGA芯片作為系統(tǒng)的主控芯片,控制A/D轉(zhuǎn)換芯片實現(xiàn)數(shù)據(jù)轉(zhuǎn)換并對轉(zhuǎn)換結(jié)果進行處理,同時通過UART接口控制[4],實現(xiàn)FPGA與上位機串口通信。
FPGA與上位機之間采用RS-232串口實現(xiàn)數(shù)據(jù)通信,上位機通常具備標準的串行接口,F(xiàn)PGA與RS-232串口間采用電平轉(zhuǎn)換芯片MAX232實現(xiàn)TTL/COMS電平轉(zhuǎn)換,F(xiàn)PGA內(nèi)部模塊實現(xiàn)UART接口控制。
上位機監(jiān)控軟件采用Visual Basic進行界面設計,實現(xiàn)數(shù)據(jù)采集系統(tǒng)的采樣通道、電壓范圍、電壓極性等參數(shù)的遠程控制,并對采集的數(shù)據(jù)結(jié)果進行記錄、顯示及繪制曲線。
2.1 A/D轉(zhuǎn)換電路
2.1.1 MAX197芯片介紹
MAX197是Maxim公司推出的具有12位測量精度和多量程(±10 V、±5 V、0~10 V、0~5 V)的高速A/D轉(zhuǎn)換芯片,轉(zhuǎn)換時間為6 μs,采用+5 V單電源供電,具有8路輸入通道,提供并行接口-8位三態(tài)數(shù)據(jù)I/O口。
2.1.2 MAX197的控制字
MAX197芯片的控制字節(jié)的寫入和數(shù)據(jù)的讀出都是由8位并行接口實現(xiàn)[5]。FPGA可以將MAX197芯片作為一個I/O來尋址,使用方便。MAX197芯片進行數(shù)據(jù)采集轉(zhuǎn)換前需要先對其進行初始化,通過設置控制寄存器,確定其采樣轉(zhuǎn)換的通道、量程和極性等??刂萍拇嫫鞲袷饺绫?所示。
表1 MAX197控制寄存器格式
2.1.3 MAX197控制接口電路
MAX197是一種通用A/D芯片,可以與多種微機接口配合。對于本文選用的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ù)據(jù)轉(zhuǎn)換完畢時INT腳產(chǎn)生中斷信號;HBEN為12位數(shù)據(jù),高4位或低8位有效控制位,高電平時高4位數(shù)據(jù)有效,低電平時低8位數(shù)據(jù)有效;RD為讀信號控制;WR為寫信號控制;CS為片選控制。選擇MAX197為低功耗工作方式,故置MAX197的SHDN腳為高電平;采用內(nèi)部時鐘模式,CLK腳接100 pF電容,時鐘頻率為2 MHz;芯片采用內(nèi)部基準電壓,故REF、REFAD通過電容器接地,設計接口電路如圖2所示。
圖2 FPGA和MAX197接口電路
2.2 數(shù)據(jù)通信電路
FPGA與上位機之間采用RS-232串口通信,由于FPGA的I/O腳信號電平和RS-232的標準不一樣,F(xiàn)PGA與RS-232之間采用電平轉(zhuǎn)換芯片MAX232,實現(xiàn)TTL/COMS電平之間的轉(zhuǎn)換。
MAX232芯片是由TI公司推出的一款兼容RS-232標準的芯片。該芯片采用5 V單電源供電,支持3.3 V/5 V電平,采用Lin BiCMOSTM工藝技術,一片MAX232芯片包含兩個驅(qū)動器及兩個接收器。MAX232電平轉(zhuǎn)換電路圖如圖3所示。
圖3 MAX232電平轉(zhuǎn)換電路圖
FPGA是系統(tǒng)的核心控制部分,控制A/D轉(zhuǎn)換芯片完成模/數(shù)轉(zhuǎn)換,通過內(nèi)部UART接口控制,實現(xiàn)與上位機之間串口通信。FPGA軟件采用Verilog HDL編程語言在Quartus II軟件下完成[6]。軟件采用自頂向下的設計方法,分別完成各個模塊的代碼編寫。FPGA內(nèi)部控制模塊包括:波特率產(chǎn)生模塊、UART接收控制模塊、MAX197控制模塊和UART發(fā)送控制模塊。波特率產(chǎn)生模塊將系統(tǒng)提供的外部時鐘轉(zhuǎn)換為UART收發(fā)模塊需要的頻率。UART接收控制模塊按照設定的數(shù)據(jù)接收協(xié)議,從串口接收上位機發(fā)送的控制命令,并對接收的數(shù)據(jù)進行緩存、解析處理后將控制命令寫入A/D轉(zhuǎn)換控制模塊。A/D轉(zhuǎn)換控制模塊根據(jù)控制命令向MAX197發(fā)送采樣控制指令,控制A/D轉(zhuǎn)換芯片完成數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)果經(jīng)過緩存、數(shù)據(jù)處理后寫入UART發(fā)送控制模塊。UART發(fā)送控制模塊按照設定的數(shù)據(jù)發(fā)送協(xié)議將數(shù)據(jù)結(jié)果通過串口發(fā)送給上位機。FPGA控制原理圖如圖4所示。
3.1 波特率產(chǎn)生模塊
在電子通信領域,波特率即調(diào)制速度,它是對符號傳輸速率的一種度量,1 b/s表示每秒傳輸1個符號。波特率產(chǎn)生模塊的功能是產(chǎn)生與RS-232串口通信波特率同步的時鐘,其基本思路是對系統(tǒng)輸入時鐘進行分頻得到需要的波特率。本設計FPGA輸入時鐘為50 MHz,波特率選擇的是9 600 b/s,分頻計數(shù)值為5 207。
圖4 FPGA控制原理圖
3.2 UART接收控制模塊
UART接收控制模塊主要實現(xiàn)對串行數(shù)據(jù)的串并轉(zhuǎn)換,轉(zhuǎn)換的串行數(shù)據(jù)按照既定的數(shù)據(jù)幀格式進行輸出。UART數(shù)據(jù)接收協(xié)議采用1位起始位、8位數(shù)據(jù)位、1位停止位、無奇偶校驗位的格式,在9 600 b/s波特率下,UART數(shù)據(jù)采集步驟如下:
(1)空閑狀態(tài),等待數(shù)據(jù)起始位0;
(2)根據(jù)起始位的標志,判斷UART時序起始;
(3)由低位到高位串行接收8位數(shù)據(jù);
(4)判斷結(jié)束位1,一幀數(shù)據(jù)接收完畢。
3.3 UART發(fā)送控制模塊
UART發(fā)送控制模塊主要實現(xiàn)對并行數(shù)據(jù)的并串轉(zhuǎn)換,轉(zhuǎn)換的串行數(shù)據(jù)按照既定的數(shù)據(jù)幀格式進行輸出。UART數(shù)據(jù)協(xié)議采用1位起始位、8位數(shù)據(jù)位、1位停止位、無奇偶校驗位的格式,在9 600 b/s波特率下,UART數(shù)據(jù)采集步驟如下:
(1)初始化狀態(tài),等待UART數(shù)據(jù)發(fā)送使能標志位;
(2)串行數(shù)據(jù)發(fā)送格式為:先發(fā)送數(shù)據(jù)起始位,8位數(shù)據(jù)由低到高依次發(fā)送,最后發(fā)送停止位;
(3)發(fā)送完成回到初始狀態(tài),等待下一次發(fā)送使能。
3.4 MAX197控制模塊
MAX197控制模塊用于產(chǎn)生MAX197芯片正常工作所需要的時序,MAX197芯片工作過程包括:等待(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個狀態(tài),MAX197芯片的控制狀態(tài)機如圖5所示。
圖5 MAX197芯片控制狀態(tài)機
上位機監(jiān)控界面采用Visual Basic軟件開發(fā)工具實現(xiàn)[7]。該軟件具有良好的界面設計能力,串口通信相關控件功能強大、完善且易用。上位機控制界面如圖6所示,主要控件包括:串口管理模塊、數(shù)據(jù)采集設置模塊、多通道數(shù)據(jù)顯示模塊、波形繪制窗口。串口管理模塊用于設置串口號、波特率、數(shù)據(jù)位、停止位和奇/偶校驗位等參數(shù);數(shù)據(jù)采集模塊設置A/D轉(zhuǎn)換芯片的工作方式、時鐘模式、采樣電壓范圍、采樣電壓極性、采樣通道;多通道數(shù)據(jù)顯示模塊對A/D轉(zhuǎn)換完成的數(shù)據(jù)進行顯示;波形繪制窗口對采集的數(shù)據(jù)進行波形曲線繪制,橫坐標為時間,縱坐標為數(shù)據(jù)結(jié)果。
圖6 上位機控制界面
本文設計的基于VB和FPGA的數(shù)據(jù)采集系統(tǒng),能夠?qū)崿F(xiàn)多通道、多量程數(shù)據(jù)的在線監(jiān)測。該系統(tǒng)利用FPGA內(nèi)部控制模塊,實現(xiàn)A/D芯片A/D轉(zhuǎn)換控制和UART接口控制,簡化了硬件電路設計;上位機軟件通過圖形界面實現(xiàn)采樣通道、采樣參數(shù)設置,A/D轉(zhuǎn)換結(jié)果的存儲、處理和十進制顯示等功能。系統(tǒng)采用模塊化設計,通過修改參數(shù)設置,可運用到其他數(shù)據(jù)采集系統(tǒng)中。
[1] 周學禮,葉飛,呂忠斌.基于VB的多路數(shù)據(jù)采集系統(tǒng)設計[J].電氣工程,2010(5):9-12.
[2] 劉軍,岳興蓮,何國國,等.基于FPGA的數(shù)據(jù)采集系統(tǒng)的設計[J].微型機與應用,2009,28(19):13-15.
[3] 李華,劉寶盈,劉萌,等.基于FPGA的多路數(shù)據(jù)采集與傳輸系統(tǒng)設計[J].電子測試,2014(18):29-31.
[4] 趙樂森,王旭柱.基于FPGA與USB2.0的實時數(shù)據(jù)采集與處理系統(tǒng)[J].微型機與應用,2011,30(17):25-27.
[5] 顏延秦.12位MAX197和51單片機實現(xiàn)數(shù)據(jù)采集設計[J].能源技術與管理,2006(3):75-77.
[6] 韓彬,于瀟宇,張雷鳴.FPGA設計技巧與案例開發(fā)詳解[M].北京:電子工業(yè)出版社,2014.
[7] 辛本柱.新手學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)設計[J].微型機與應用,2017,36(15):38-40,44.
2017-03-05)
馮傳均(1989-),男,本科,主要研究方向:脈沖功率技術及測控技術。