鄭瑞 肖順文 王涌 陳韻文 羅春梅
摘要:本文設(shè)計了一種多通道數(shù)據(jù)采集與發(fā)送速率可變的系統(tǒng),采用FPGA芯片EP4CE10F17C8N作為核心控制器件,利用Verilog HDL在QUARTUS II 13.1平臺上對數(shù)據(jù)采集模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)發(fā)送模塊以及系統(tǒng)控制模塊進行描述,并使用Modelsim仿真工具對各個模塊進行模擬仿真,最后通過AC620開發(fā)板測試,實現(xiàn)了多通道的數(shù)據(jù)采集和速率可變的串口發(fā)送功能。
關(guān)鍵詞:數(shù)據(jù)采集;FPGA;Verilog HDL
中圖分類號:TP274.2 文獻標(biāo)識碼:A 文章編號:1007-9416(2020)01-0117-02
0 引言
科學(xué)技術(shù)的蓬勃發(fā)展,數(shù)據(jù)采集系統(tǒng)已廣泛應(yīng)用于各個領(lǐng)域,航天、軍事、醫(yī)療、工業(yè)等尤其是在高精度產(chǎn)品的檢測和監(jiān)控項目中發(fā)揮著重要作用。與單片機、ARM相比,F(xiàn)PGA具有內(nèi)部資源豐富、并行處理能力強、穩(wěn)定性好、可重配置等優(yōu)良特點,特適合用于數(shù)據(jù)采集系統(tǒng)設(shè)計。本設(shè)計以FPGA芯片作為核心控制器件,實現(xiàn)8通道12位分辨率的A/D數(shù)據(jù)采集與速率可改變的串口發(fā)送系統(tǒng)。為方便在AC620開發(fā)板上進行測試,將本系統(tǒng)的采樣率設(shè)計為6.25MHz,發(fā)送速率為1200、2400、9600、19200、115200等,利用RS232串口將數(shù)據(jù)發(fā)送到PC端。與傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)相比,本設(shè)計將數(shù)據(jù)采集系統(tǒng)與數(shù)據(jù)發(fā)送系統(tǒng)相結(jié)合,同時發(fā)送速率可變,實現(xiàn)了數(shù)據(jù)采集與發(fā)送的一體化。
1 系統(tǒng)設(shè)計
1.1 系統(tǒng)總體電路設(shè)計
如圖1所示為本系統(tǒng)設(shè)計模塊圖,該系統(tǒng)由按鍵消抖、控制A/D采樣、數(shù)據(jù)采樣、數(shù)據(jù)存儲、控制數(shù)據(jù)發(fā)送、串口發(fā)送等六個模塊組成。當(dāng)控制A/D采樣模塊檢測到按鍵按下,立即產(chǎn)生使能信號啟動A/D數(shù)據(jù)采樣模塊進行100次的數(shù)據(jù)采樣,因A/D采樣的速率與串口發(fā)送速率不匹配,為保證數(shù)據(jù)不丟失,設(shè)計將采樣數(shù)據(jù)暫存FIFO存儲器中,當(dāng)控制數(shù)據(jù)發(fā)送模塊檢測到FIFO中有數(shù)據(jù)時便啟動串口發(fā)送數(shù)據(jù),一直到FIFO中全部數(shù)據(jù)發(fā)送完為止。
1.2 按鍵消抖模塊設(shè)計
物理按鍵存在一個反作用彈簧,因此當(dāng)按鍵按下或者松開時均會產(chǎn)生額外的物理抖動,物理抖動會產(chǎn)生電平的抖動,抖動的次數(shù)與時間間隔不可預(yù)期。當(dāng)控制A/D采樣模塊檢測到按鍵按下時就會啟動A/D數(shù)據(jù)采樣模塊進行工作,不斷啟動數(shù)據(jù)采集與發(fā)送,與設(shè)計相悖,因此需要濾除抖動。一般情況下,抖動的時間會持續(xù)20ms左右,本設(shè)計通過軟件方式編寫狀態(tài)機進行處理,產(chǎn)生一個按鍵按下標(biāo)志信號Key_Flag,當(dāng)系統(tǒng)檢查到按鍵真正按下,拉高Key_Flag,控制系統(tǒng)開始數(shù)據(jù)采樣。
1.3 A/D數(shù)據(jù)采樣模塊設(shè)計
設(shè)計使用的模/數(shù)轉(zhuǎn)換器為逐次逼近型的低功耗芯片ADC128S052,具有8通道以及12位的分辨率,因此1bit代表的電壓值即為VA/4096。對于FPGA,按照SPI時序搭建控制電路,以實現(xiàn)對ADC128S052的控制。ADC128S052通過SPI接口與FPGA進行通信。本設(shè)計采用的SCLK頻率為6.25MHz,利用線性序列機的設(shè)計思想,產(chǎn)生一個兩倍于采樣時鐘SCLK的信號SCLK_2,對系統(tǒng)時鐘50MHz進行四分頻即12.5MHz。對時序圖分析,在程序設(shè)計中,通過對SCLK_2進行計數(shù),在不同的計數(shù)點給CS、SCLK、DIN、DOUT信號不同的值即可產(chǎn)生該時序。
1.4 串口發(fā)送模塊設(shè)計
通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter,UART)是一種異步收發(fā)傳輸器,其數(shù)據(jù)發(fā)送時將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸,在數(shù)據(jù)接收時將接收到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),可以實現(xiàn)全雙工傳輸和接收。設(shè)計采用RS232的接口標(biāo)準(zhǔn)規(guī)范,配置是8N1(即8位數(shù)據(jù)位、無奇偶校驗位、1位停止位),根據(jù)串口發(fā)送一字節(jié)的時序圖,當(dāng)bps_clk信號的第1個上升沿到來時,字節(jié)發(fā)送模塊開始發(fā)送起始位,接下來的2~9個上升沿,發(fā)送8個數(shù)據(jù)位,第10個上升沿到第11個上升沿為停止位的發(fā)送。在程序設(shè)計時,利用兩個計數(shù)器,一個計數(shù)器bps_cnt用于計數(shù)來產(chǎn)生波特率時鐘;另一個計數(shù)器則是對bps_clk,也就是每一位信號開始的標(biāo)志進行計數(shù),利用線性序列機的思想,根據(jù)計數(shù)值給對應(yīng)計數(shù)點賦值即可。
為實現(xiàn)發(fā)送速率可變,保證模塊的復(fù)用性,設(shè)計一個發(fā)送速率查找表,當(dāng)需要不同發(fā)送速率時,只需要設(shè)置不同的波特率時鐘計數(shù)器的計數(shù)值。同時由于A/D采樣數(shù)據(jù)為12位,而串口一次只能發(fā)送8位數(shù)據(jù),因此程序設(shè)計時通過產(chǎn)生一個Sel信號來控制將待發(fā)送的12位數(shù)據(jù)分成高4位和低8位,然后傳給UART串口發(fā)送。
2 系統(tǒng)電路及仿真測試
2.1 程序仿真
編寫Testbench測試文件,利用仿真工具Modelsim進行模擬仿真,結(jié)果如圖2所示。模擬仿真時,設(shè)計采樣通道為通道0,A/D轉(zhuǎn)換的結(jié)果DOUT依次輸入0到99,100個數(shù),串口發(fā)送速率115200Hz,通過仿真圖可以得到采樣通道為通道0,采樣頻率為32.5MHz,串口發(fā)送速率為115200Hz,同時能夠依次發(fā)送0到99,100個數(shù)據(jù),滿足設(shè)計要求。
2.2 采樣系統(tǒng)精度測試
通過外加電壓與高精度電壓表測量比較,ADC128S052實際測量誤差在0~3.3V的電壓輸入范圍內(nèi)最大為0.0219V內(nèi)。如表1所示為8個通道對3個模擬電壓的測試結(jié)果。第一列為基準(zhǔn)電壓,后8列分別為采樣結(jié)果。根據(jù)測試得出,該數(shù)據(jù)采集系統(tǒng)的測量誤差在0.0219V以內(nèi),因此將該系統(tǒng)用于多通道的A/D采樣與數(shù)據(jù)傳輸具有靈活性強,精度高,誤差小等特點。
3 結(jié)語
利用Verilog HDL設(shè)計A/D多通道數(shù)據(jù)采集與串口發(fā)送系統(tǒng),不僅通過Modelsim仿真軟件驗證功能,同時經(jīng)AC620開發(fā)板測試,將采樣數(shù)據(jù)與實際電壓比較,分析整個系統(tǒng)的性能。結(jié)果表明,該系統(tǒng)不僅完成了數(shù)據(jù)采集和串口發(fā)送數(shù)據(jù)到上位機的功能,而且該系統(tǒng)具有采樣誤差小、精度高等特點,具有相當(dāng)大的實用價值。
參考文獻
[1] 易志強,韓賓,江虹,等.基于FPGA的多通道同步實時高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(06):70-74.
[2] 袁玉卓,曾凱鋒,梅雪松.FPGA自學(xué)筆記:設(shè)計與驗證[M].北京:北京航空航天大學(xué)出版社,2017.
[3] 王永云.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計[D].廊坊:北華航天工業(yè)學(xué)院,2018.
[4] 王華剛,鄧志燕,董鵬飛.多功能多通道數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].自動化與儀器儀表,2016(09):36-37.
[5] 談良,紀(jì)凌.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].電子測量技術(shù),2018,41(05):57-63.