甘輝 呂美妮 王奎奎 倪茂森



關鍵詞:CH32;稱重數據;溫度采集;數字濾波;Qt上位機
0 引言
隨著科技的快速發展,傳感器技術[1]、單片機技術給人們的生活帶來了越來越多的便利,稱重系統在日常生活中已經成為人們不可缺少的一部分[2]。因此人們對稱重采集系統的需求也越來越高,要求更高的精度和穩定性。影響稱重系統精度的因素有很多,比如溫度變化、濕度變化、蠕變、側載荷和偏心荷、傳感器的安裝[3]等。因此設計一個高精度稱重數據采集系統具有非常重要的意義。本設計通過下位機同步采集環境溫度和稱重重量數據,采用自定義傳輸協議發送數據到電腦Qt編寫的軟件系統,完成高精度稱重數據采集。
1 方案設計
本系統由下位機和上位機組成:系統組成框架如圖1所示。1) 下位機稱重數據采集:稱重傳感器采用單點壓力C3精度的傳感器,稱重范圍最大為3kg。2)放大轉換電路:其核心是具有差分通道輸入內部自帶128倍增益的24位模數轉換器TM7711芯片。3) 主控采用32位單片機CH32,為了保證數據有效傳輸,CH32通過串行通信協議獲取TM7711轉換完成后的24位數字電壓數據。4) 下位機溫度數據采集:溫度傳感器采用DS18B02。5) 下位機和上位機數據傳輸:采用串行通信的方式,以自定義數據傳輸協議打包傳輸稱重、溫度數據。6) 上位機軟件系統:實現數據顯示、功能控制、數據存儲等功能。
2 硬件設計
系統整體電路如圖2所示:1) 電源電路采用直流5V電源輸入,通過500mA保險絲,經C1電源濾波給系統供電。5V電壓經三端線性穩壓管U1 CE6219輸出3.3V 電壓給主控電路供電。2) 主控芯片采用CH32V103C8T6,該芯片是基于RISC-V[4]內核的32位通用控制器。系統時鐘倍頻到72MHz,可滿足系統需求。3) 通信及程序下載電路采用CH340E芯片設計,可以實現USB供電、數據通信、一鍵下載功能。4) 稱重傳感器內部是由4個250歐姆電阻組成的電橋[5,6],電橋采用模擬電源5V供電。其兩路差分信號一路輸入TM7711的AIN+引腳,一路輸入AIN-引腳。5V數字電源電壓經過1mH的電感濾波后作為5V的模擬電源,給TM7711供電和基準電壓,其DOUT、PD_SCK引腳分別連接CH32單片機的PA3、PA4引腳實現數據通信。數字電源地與模擬電源地用0歐姆電阻R8隔離[7]。5) 溫度采集電路核心是DS18B20溫度傳感器,其工作溫度從-55℃至+125℃,精度為正負0.5℃[8],通過單總線協議與CH32單片機進行數據交互。
3 軟件設計
系統運行主要是稱重數據采集、數據傳輸格式、上位機系統功能及邏輯實現。
1) 稱重數據采集:其核心是CH32如何與TM7711數據交互。首先TM7711的數據讀取需要根據以下圖3時序進行完成。將CH32連接的DOUT引腳首先作為輸入引腳,檢測引腳是否為高電平,若為高電平則說明數據沒有轉換完成,反之數據轉換完成,然后通過PD_SCK上升沿觸發TM7711從MSB至LSB依次輸出24位AD轉換數據,給夠25個脈沖確保下次轉換為差分通道輸入、增益為128倍,數據輸出頻率為10Hz。
2) 數據傳輸格式
數據傳輸格式是上下位機數據交互的核心,數據傳輸采用串口通信,波特率設置為115200、8位數據、無奇偶校驗、一個停止位[9]。因傳輸浮點型時會隨著數據變動使得每次傳輸的字符串長度改變,給發送、接收數據增加難度,降低傳輸效率。為了提高數據傳輸效率經分析傳輸數據:稱重數據實際占用內存為24位,溫度數據為16位,可用共用體的方式拆解成8位,且符合串口一次發送8位數據的方式,以此可每次固定發送6個字節的數據,上位機再用共用體的方式還原出有效的24位稱重數據,16位溫度數據。數據通信格式如表1所示。
3) 上位機軟件系統:上位機操作界面由Qt軟件開發,主要完成與下位機的數據通信及相關功能操作如圖4所示。①顯示功能:顯示實時的重量AD數據、轉換后的實際重量、標零時刻的重量數據、實時系統環境溫度。②標零:點擊“零點標定”設置重量為0g時刻系統重量AD數據。③標定:手動放置標準砝碼稱重后輸入砝碼重量并點擊“砝碼標定”;④存儲:實時將系統數據存儲至Excel表格中。⑤去皮:將當前秤盤上所放的重量認定為0g,取消去皮則將皮重物品重量重新統計。⑥其他功能:手動讀取、定時讀取、顯示數據等功能。
4 測試與分析
系統在21.6℃環境下,以2 000g砝碼進行標定。由于系統在溫度快速變化的過程中,采集到的數據正負波動較大,為了能夠獲有效數據,將其放置于穩定溫度環境下,并對標準砝碼重量進行采樣。采樣數據如表2、表3所示。
根據表2的數據可知,系統最大誤差達在空盤8℃時為1.311g,在21.6℃、21.9℃時為0.05g,35.5℃時為1.261g。由上可知:系統在標定溫度附近時,稱重誤差較小;系統與標定溫度相差較大時,稱重誤差較大。根據表3的數據可知,系統最大稱重誤差在6℃時為0.5g,21.9℃時為0.05g,35.1℃時為0.02g。由此可知與表2所得結論一致。
分析表2、表3系統稱重重量不同時,溫度對系統的影響可知:當稱重物品重量較重時,稱重誤差受到溫度影響較小。原因分析:稱重傳感器在此狀態下形變量較大,溫度變化對其影響比重變小,所以誤差小。當被稱量物品重量較輕時,受到溫度影響較大。誤差較大原因分析:稱重傳感器此狀態下形變量較小,溫度變化對其影響比重變大,導致誤差變大。所以稱量較輕物品時,為了確保稱重的精度,如溫度與標定時溫度相差較大,應該對系統重新標定。
根據表4的數據可知,系統在運行30分鐘時,最大誤差為0.05g,在系統運行120分鐘后,最大誤差為0.10g,運行160分鐘后最大誤差為0.2g。由此可知系統在運行時間較短的情況下空盤和2 000g誤差精度能達到0.05g,在運行較長時間后誤差為0.2g。誤差分析:為傳感器蠕變引起。此時應系統最好重新標定或重啟。
實驗表明系統采用一階RC階濾波算法與滑動均值濾波算法相結合的稱重效果良好,結合軟件系統,數據采集的精度較高、穩定性較好。
5 結束語
本設計是基于CH32的高精度稱重數據采集系統,通過對硬件采集電路、系統采集軟件的設計,實現了自定義數據傳輸格式高效溫度、重量數據采集,經過數據分析各種條件下的稱重誤差,結合軟件系統采取不同的有效措施,最終實驗數據表明,稱重系統的精度和穩定性得到了有效提高。