甘輝 呂美妮 王奎奎 倪茂森



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