ES32H040x水位檢測
水位檢測原理
洗衣機電器需要可靠的水位檢查系統(tǒng)。
常用洗衣機水位信號狀態(tài)為空桶、低數(shù)量、重水、高容量、萬水5種水位信號、水位檢測電路向洗衣機的控制系統(tǒng)發(fā)送不同的信號,準備洗衣機的下一步動作。
現(xiàn)有的典型洗衣機測試系統(tǒng)包括:
如圖所示,洗衣機的水進入煤氣爐后,空氣中的空氣會被擠壓,擠壓程度與洗衣機的水位高低直接相關(guān)。(大衛(wèi)亞設(shè),Northern Exposure(美國電視劇),洗衣機,洗衣機,洗衣機,洗衣機)
與煤氣爐連接的傳感器模塊實際上是LC電路,氣壓會將磁芯棒推到線圈上,從而改變線圈的電感L值。
該系統(tǒng)與現(xiàn)有芯片4069(逆電流器)一起構(gòu)成振動電路,由于水位的變化,核心發(fā)生位移,電感L值發(fā)生變化,引起系統(tǒng)LC振動電路的頻率變化,振動電路通過微控制器MCU檢測頻率的變化,反算水位位置。
ES32H040x系列是集成了東軟波微電子推出的水位檢測電路的32位M0 MCU。
芯片上集成了這種類型的4069電路,洗衣機的水位傳感器可以自行振動。
如何使測試結(jié)果更準確
以下內(nèi)容介紹了如何使測試結(jié)果更準確、如何進行10級水位測試、進行10級水位測試的必要條件和實現(xiàn)方法。
首先分析幾個主要傳感器。主要區(qū)別在于檢測中心頻率不同,20KHz也是40KHz,在水位不同的條件下,頻率會發(fā)生偏移。因此,影響水位檢測精度的主要參數(shù)是測量振動頻率的系統(tǒng)時鐘的精度、測量精度和計算精度。
從市面上的幾個傳感器參數(shù)來看,最難的是能夠檢測10二級水位的傳感器,使用這個傳感器作為采樣參數(shù),反超我們MCU的時鐘精度要求。(阿爾伯特愛因斯坦)(以英語發(fā)言)。
水位傳感器參數(shù)之一如下:
水位狀態(tài)
檢測頻率
L0(空桶)
41.2 KHz
L1
40.6 KHz
L2
40.3 KHz
L3
40.0 KHz
L4
39.7 KHz
L5
39.5 KHz
L6
39.3 KHz
L7
39.1 KHz
L8
38.9 KHz
L9
38.7 KHz
L10
38.5 KHz
補水
38.7 KHz
最小齒輪差為0.2KHz,因此可以可靠地區(qū)分需要0.1KHz以下的精度,40K的頻率由正負0.1KHz控制。在此反方向上,24M OSC精度必須轉(zhuǎn)換為正負0.124M/40K=60KHz,24M OSC精度必須轉(zhuǎn)換為120K/。
請參閱使用其他傳感器的5段(3 2段)水位:
水位狀態(tài)
檢查
頻率L0 (初始水位)
42.3 KHz
L1
41.7 KHz
L2
41.2 KHz
L3
40.8 KHz
L4 (溢水)
36.5 KHz
同樣原理換算至24M精度需求為0.45K/40K=1.125%以內(nèi),24M OSC需要控制為正負0.56%。
水位檢測模塊為保證水位檢測精度,需要控制OSC精度。目前主流MCU內(nèi)部晶體很難控制在這個數(shù)值范圍內(nèi),一般內(nèi)晶的誤差會超過1%。
不排除檔位少的傳感器,在經(jīng)過空桶校準后可用的情況,但從技術(shù)角度很難控制,所以用來做水位檢測還是建議使用外部晶振(外晶精度一般在正負20PPM,精度足夠)。
采用40K的傳感器,每個波形的周期大致為25uS。此時必須使用高頻率的時鐘來計數(shù)運算,從而提升測量的精度。
ES32H040x的主頻最高可以達到48MHz,這樣水位傳感器的一個周期可以計數(shù)25×48=1200,如果計數(shù)多1或少1,反推過來的頻率產(chǎn)生的誤差為(以少1為例)48×1000000us/1199=40033.36因此在MCU系統(tǒng)中測量周期的計數(shù)誤差會是33Hz的整數(shù)倍。
以上述10檔水位傳感器的標準,誤差不能超過100Hz,因此周期計數(shù)范圍波動不能超過3,這時候的MCU的舍入誤差影響也是比較大的。
我們可以從以下幾個方面,繼續(xù)控制采樣計數(shù)的精度:1.采樣多次求平均值。2.一次計很多次脈沖。3.計算時注意保留小數(shù)部分。
采用多次求平均的ES32H040x的實現(xiàn):ES32H040x支持水位檢測模塊輸入后通過外設(shè)互聯(lián)后觸發(fā)一個16位TIMER的捕捉中斷服務(wù),用來捕捉脈沖的周期,然后經(jīng)多次采樣后再平均。此種方式程序簡單,但會導(dǎo)致中斷頻繁,占用MCU大量運行資源,并不建議使用。
建議方式一:
使用DMA傳輸數(shù)據(jù),多次采樣僅觸發(fā)一次中斷。
例如,使用DMA傳輸捕獲到的水位數(shù)據(jù),且每8個脈沖執(zhí)行一次捕獲采樣(周期×8),采樣1001次后DMA中斷,總共得到1000個數(shù)據(jù)(8000個脈沖),此時的時間消耗為8/40 =200MS。然后進行數(shù)據(jù)處理,按大小排序后取中間的800個數(shù)據(jù)再取平均值。
注意數(shù)據(jù)量較大的除法要保留小數(shù)部分;使用浮點數(shù)運算,以免產(chǎn)生求整數(shù)的舍入誤差;最終的結(jié)果保留至小數(shù)點后2位數(shù)據(jù)。
建議方式二:
增加每一次捕獲采樣捕獲的脈沖數(shù)。如上例每8個脈沖執(zhí)行一次捕獲采樣,雖然芯片的捕獲功能不足以捕獲8000個脈沖執(zhí)行一次捕獲采樣,但可以用另一種方式實現(xiàn)。
同樣也是使用DMA功能,用來采8000個脈沖后產(chǎn)生中斷結(jié)束一次批量采樣,只是要使用另外一組定時器用來計數(shù)。
從接到第一幀數(shù)據(jù)中斷開始計時,計8001個脈沖的周期內(nèi)的OSC個數(shù)。
使用16位的定時器,進定時中斷時把計數(shù)轉(zhuǎn)存在一個長型變量里進行累加,這樣當DMA中斷時(8000個脈沖完成)長型變量里計數(shù)+現(xiàn)有定時器中的計數(shù)值為8000個脈沖的OSC個數(shù),再然后直接除去8000,計數(shù)周期值注意采用浮點數(shù)保留2位小數(shù)。
經(jīng)過以上處理得到的結(jié)果將是一個穩(wěn)定的數(shù)據(jù)。8000個脈沖周期僅200MS,對洗衣機來說每秒或幾秒鐘一次的數(shù)據(jù)頻次已經(jīng)足夠。并不會導(dǎo)致采樣多次造成的數(shù)據(jù)輸出時間過長。
總結(jié)
ES32H040x芯片的水位檢測模式分二線制與三線制,無論哪種方式,上述的計算方式都適用。
另外,ES32H040x具有128K Byte Flash,8K Bytes Ram空間,LQFP48封裝,31路增強型觸摸檢測通道,支持LCD 與LED顯示驅(qū)動,16通道12位ADC及多路TIMER,RTC功能,2路IIC,2路SPI,1路UART,2路USART,1路LPUART。
1.《【洗衣機洗滌水位怎么分】工程師須知| ES32H040x水位檢測》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【洗衣機洗滌水位怎么分】工程師須知| ES32H040x水位檢測》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/why/3038891.html