一種用于溫濕度批量自動校準(zhǔn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
0 引言
在顆粒物檢測系統(tǒng)中,溫濕度參數(shù)的一致性,不僅影響顆粒物檢測設(shè)備間的一致性,還影響顆粒物測量的準(zhǔn)確性[1]。因此在設(shè)備出廠前需要對各溫濕度傳感器進(jìn)行一致性校準(zhǔn)。以前溫濕度的校準(zhǔn)采用單點(diǎn)校準(zhǔn),設(shè)備長期運(yùn)行,溫濕度又會跑偏,因此本系統(tǒng)采用多點(diǎn)線性擬合校準(zhǔn)。而溫濕度的線性校準(zhǔn)需要對多個(gè)溫度點(diǎn)和濕度點(diǎn)進(jìn)行測量。如果一次只能同時(shí)測量幾個(gè)溫濕度傳感器數(shù)據(jù),再手動擬合,效率低下,需要投入大量的人工,不能滿足生產(chǎn)的大量需求。為提高溫濕度傳感器的校準(zhǔn)效率,需要同時(shí)對多個(gè)傳感器進(jìn)行批量校準(zhǔn),這就需要多個(gè)串口。
目前一般的單片機(jī)最多只有3~4 個(gè)UART,不能滿足同時(shí)校準(zhǔn)的要求。雖然串口的擴(kuò)展可以通過分時(shí)復(fù)用、軟件編程、使用專用芯片等方法解決,但這些方法都會增加處理器的占用時(shí)間或者增加外圍電路的復(fù)雜程度。針對上述問題,本文設(shè)計(jì)了一種基于FPGA 的多串口擴(kuò)展自動校準(zhǔn)系統(tǒng),滿足批量校準(zhǔn)系統(tǒng)多串口擴(kuò)展的需求,無需額外的硬件串口擴(kuò)展[2]。該批量校準(zhǔn)系統(tǒng)還可以實(shí)現(xiàn)數(shù)據(jù)自動處理,自動線性擬合,輸出校準(zhǔn)系數(shù),免去手動擬合的麻煩。在提升溫濕度校準(zhǔn)的效率的同時(shí),也提高了設(shè)備之間數(shù)據(jù)的一致性。
1 系統(tǒng)設(shè)計(jì)
溫濕度批量自動校準(zhǔn)系統(tǒng)的基礎(chǔ)是FPGA 的多串口擴(kuò)展[3]。圖1 為設(shè)計(jì)的總體框圖。使用FPGA 內(nèi)部的UART IP 核進(jìn)行16 路UART 擴(kuò)展,其中15 路UART接口分別與15 路溫濕度傳感器進(jìn)行通信,15 路通信數(shù)據(jù)通過緩沖寄存器存儲后,由處理器仲裁,經(jīng)另一路UART 上傳至PC 機(jī)。PC 機(jī)程序通過不同幀頭識別不同通道的溫濕度傳感器數(shù)據(jù),并分別存儲,實(shí)現(xiàn)溫濕度的批量自動校準(zhǔn)。
1.1 FPGA的多UART擴(kuò)展
本設(shè)計(jì)選擇的FPGA 型號為Altera 公司的CycloneII 系列EP4CE6E22C8 芯片。使用FPGA 內(nèi)部的UARTIP 核擴(kuò)展16 路串口[4],為與溫濕度傳感器接口相匹配,串行端口采用RS3485 對UART 進(jìn)行電平轉(zhuǎn)換。
使用UART IP 核擴(kuò)展串口,方便快捷,可以調(diào)用同一個(gè)IP 核生成模塊使不同擴(kuò)展串口設(shè)置相同的波特率、數(shù)據(jù)位、停止位等,也可以調(diào)用不同IP 核生成模塊對不同串口設(shè)置不同的波特率、數(shù)據(jù)位等。本設(shè)計(jì)中使用UART IP 擴(kuò)展生成16 路串口,其中15 路串口設(shè)置相同,波特率9 600,8 位數(shù)據(jù)位,1 位停止位,無奇偶校驗(yàn),它們分別接收對應(yīng)的溫濕度傳感器數(shù)據(jù)。另一路串口波特率設(shè)置115 200,與PC 機(jī)相連,傳輸采集到的溫濕度數(shù)據(jù)。
使用Quartus II 對整個(gè)系統(tǒng)進(jìn)行綜合仿真,圖2 為FPGA 綜合后的資源消耗情況,邏輯單元消耗占整個(gè)資源的33%,還有大量的資源沒有使用。根據(jù)FPGA 可編程器件的特性,只要選用芯片的資源足夠,可以根據(jù)需求擴(kuò)展更多的UART 接口[5]。
1.2 數(shù)據(jù)的仲裁傳輸
FPGA 串口與PC 機(jī)的數(shù)據(jù)交互采用輪詢的方式。FPGA 的15 個(gè)串口采集到的數(shù)據(jù)存儲在緩沖寄存器中,每個(gè)UART 通道在數(shù)據(jù)接收完成時(shí),會產(chǎn)生1 個(gè)接收完成標(biāo)志信號fl ag。數(shù)據(jù)仲裁模塊由兩個(gè)3-8 譯碼器組成,串口每次接收到PC 機(jī)的數(shù)據(jù)命令時(shí),會輪詢每個(gè)UART 通道的接收完成標(biāo)志。如果標(biāo)志為1,代表此通道有數(shù)據(jù)需要發(fā)送,設(shè)置串口發(fā)送模塊的發(fā)送開始標(biāo)志位,發(fā)送對應(yīng)通道寄存器的數(shù)據(jù),待數(shù)據(jù)發(fā)送完成,把此通道標(biāo)志位置0。采用輪詢的方式,不會遺漏每個(gè)uart 通道的數(shù)據(jù)。
2 自動校準(zhǔn)的實(shí)現(xiàn)
2.1 PC機(jī)自動校準(zhǔn)界面
批量自動校準(zhǔn)在PC 機(jī)上實(shí)現(xiàn),上位機(jī)的數(shù)據(jù)采集處理程序用C# 編寫[6]。如圖3 所示,“主界面”顯示各通道的實(shí)時(shí)傳輸數(shù)據(jù);“設(shè)置”界面可以設(shè)置串口的波特率等參數(shù),同時(shí)該軟件也支持TCP 傳輸,設(shè)置界面同樣可以設(shè)置IP、端口號等?!靶?zhǔn)”界面可以初始化內(nèi)部參數(shù)、保存、查詢、校準(zhǔn)KB 參數(shù)等。
圖2 FPGA資源消耗情況
把各通道的溫濕度傳感器一起放入溫濕度控制倉內(nèi),使用溫濕度控制倉從低到高依次設(shè)置5 組溫度和5組濕度,待每次溫濕度控制倉示值穩(wěn)定后,通過PC 機(jī)發(fā)送命令給FPGA 擴(kuò)展口16 把各通道數(shù)據(jù)輪詢傳送至PC 機(jī)。每組數(shù)據(jù)測量10 次,程序中對每組數(shù)據(jù)使用中值濾波取平均值[7]。待所有數(shù)據(jù)測量結(jié)束,分別點(diǎn)擊溫度校準(zhǔn)和濕度校準(zhǔn),程序自動完成每組數(shù)據(jù)的平均和線性校準(zhǔn)。程序界面可以選擇單個(gè)通道的自動校準(zhǔn),也可以選擇所有通道同時(shí)完成自動校準(zhǔn)。
2.2 校準(zhǔn)數(shù)據(jù)處理
PC 上位機(jī)通過FPGA 擴(kuò)展的第16 個(gè)UART,接收所有通道采集的傳感器數(shù)據(jù),程序通過幀頭判斷數(shù)據(jù)對應(yīng)的通道。對于每一個(gè)控制倉設(shè)置點(diǎn),程序自動讀取10 組數(shù)據(jù),并把對應(yīng)通道的數(shù)據(jù)分別存儲。然后使用中值濾波算法自動計(jì)算得到每個(gè)通道10 組數(shù)據(jù)的平均值另外外存。依次把所有控制倉設(shè)置點(diǎn)的數(shù)據(jù)測量結(jié)束,就會得到5 組溫度值和5 組濕度值的平均值,分別點(diǎn)擊溫度校準(zhǔn)和濕度校準(zhǔn),程序會自動調(diào)用線性擬合函數(shù)完成15 個(gè)通道的溫度和濕度校準(zhǔn),點(diǎn)擊“KB 查詢”可以看到當(dāng)前的校準(zhǔn)系數(shù)。如圖4 所示為傳感器出廠校準(zhǔn)得到的校準(zhǔn)系數(shù),這與之前對每組數(shù)據(jù)手動求平均,再線性擬合,效率得到大幅提升。
圖3 自動校準(zhǔn)界面
圖4 校準(zhǔn)系數(shù)查詢
3 數(shù)據(jù)測試與分析
在顆粒物測量設(shè)備中,溫濕度傳感器用于環(huán)境溫濕度和采樣氣體溫濕度的測量。在線顆粒物設(shè)備的濃度與標(biāo)準(zhǔn)的手工設(shè)備相比,會受到不同地區(qū)、不同季節(jié)氣候的影響,因此設(shè)備顆粒物的濃度需要使用環(huán)境溫度濕度對其進(jìn)行修正[8]。同時(shí)溫濕度不一致也會直接影響各設(shè)備的加熱策略,所以溫濕度的校準(zhǔn)直接影響設(shè)備之間顆粒物濃度的一致性。圖5 和圖6 為兩臺設(shè)備分別選取26 d 的運(yùn)行數(shù)據(jù),溫濕度沒有校準(zhǔn)和校準(zhǔn)后的數(shù)據(jù)擬合效果,根據(jù)“環(huán)境空氣顆粒物(PM10 和PM2.5)連續(xù)自動監(jiān)測系統(tǒng)技術(shù)要求及檢測方法”[9],從擬合系數(shù)系數(shù)看,K 值從1.02 降到了1,兩臺數(shù)據(jù)的一致性有很大提高。而溫濕度對顆粒物濃度修正的影響有專門的課題來研究,在此不做詳細(xì)的分析。
圖5 溫濕度未校準(zhǔn)的擬合系數(shù)
圖6 溫濕度校準(zhǔn)后的擬合系數(shù)
4 結(jié)束語
基于FPGA設(shè)計(jì)的多UART擴(kuò)展批量自動校準(zhǔn)系統(tǒng),不僅實(shí)現(xiàn)了多通道溫濕度數(shù)據(jù)的批量采集,又實(shí)現(xiàn)了批量數(shù)據(jù)的自動處理,自動線性擬合校準(zhǔn),該設(shè)計(jì)已經(jīng)成功應(yīng)用于設(shè)備生產(chǎn)的出廠校準(zhǔn)中,且性能穩(wěn)定。此校準(zhǔn)系統(tǒng)的設(shè)計(jì)方法和設(shè)計(jì)思想并不局限于溫濕度的批量校準(zhǔn),也可以推廣到其他需要批量數(shù)據(jù)采集,批量數(shù)據(jù)自動處理的場合,來提高工作效率。
參考文獻(xiàn):
[1] 靳燕,王曉東.基于β射線和光散射法的顆粒物測量系統(tǒng)[J].山西電子技術(shù),2022,27(4):27-35.
[2] 顏世威,馮沖,施展,等.基于FPGA的多串口傳輸電路設(shè)計(jì)及驗(yàn)證[J].電子測試,2019,19(4):16-18.
[3] 殷安龍,張持健,陳林,等.基于FPGA的多串口通信設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2016,24(17):45-47.
[4] 吳朝暉,曲立國.UART波特率檢測電路的FPGA設(shè)計(jì)算法與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2022,45(20):41-44.
[5] 蘇長青,賀楠,李大琦,等.FPGA在應(yīng)用編程技術(shù)的一種低成本實(shí)現(xiàn)[J].電子世界,2021,3(48):114-116.
[6] DANIEL S,CAL S.C#圖解教程[M].北京:人民郵電出版社,2019:102-153.
[7] 安春蓮,楊古月,楊延菊,等.基于中值濾波預(yù)處理的強(qiáng)沖擊噪聲背景測向方法[J].電子學(xué)報(bào),2021,49(6):1159-1166.
[8] 景寬,劉保獻(xiàn),王焱,等.溫濕度對PM2.5質(zhì)量濃度監(jiān)測的影響[J].中國環(huán)境監(jiān)測,2018,34(4):124-132.HJ653-2019.
[9] 環(huán)境空氣顆粒物(PM10和PM2.5)連續(xù)自動監(jiān)測系統(tǒng)技術(shù)要求及檢測方法[S].
(本文來源于《電子產(chǎn)品世界》雜志2023年5月期)
評論