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