朱小麗 周杰 高利敏
惠而浦(中國)股份有限公司研發(fā)中心 安徽合肥 230088
在現(xiàn)代社會,洗衣機(jī)基本已經(jīng)普及到每個家庭并且成為家用電器中非常重要的一員,大大解放了雙手并節(jié)約了手工洗衣服的時間,且大部分洗衣機(jī)都實現(xiàn)了智能化控制,僅僅在非常偏遠(yuǎn)的農(nóng)村地區(qū)還有雙桶洗衣機(jī)的市場。
在能源越來越重要的現(xiàn)代社會,要實現(xiàn)智能控制,如何保證洗衣機(jī)精確用水是一個非常重要的課題。目前市面上絕大部分洗衣機(jī)都帶有自動檢測水位功能,普遍采用的水位檢測方式是兩線或者三線的壓力傳感器,這種壓力傳感器檢測原理主要是根據(jù)水位傳感器在不同水壓下,傳感器的電感量會根據(jù)壓力變化,從而改變震蕩頻率,通過單片機(jī)對頻率的識別來判斷水位的當(dāng)前狀態(tài)。但是這種檢測方式有一個很大的缺點,就是檢測精度不高,甚至有可能導(dǎo)致洗衣機(jī)用水差異很大,做不到精準(zhǔn)控制,從而帶來一系列問題,如洗衣機(jī)體驗差、用水量及耗電量都很難控制在一定范圍內(nèi)、對洗衣機(jī)洗凈比及能耗的標(biāo)注帶來困難等。
如圖1、2所示,傳統(tǒng)水位傳感器的組成主要有圖上標(biāo)注的幾個部分,水位傳感器的工作方式如下:氣管處接通氣管同時做好密封,通氣管另外一端接洗衣機(jī)桶底并做好密封,當(dāng)洗衣機(jī)進(jìn)水后,洗衣機(jī)內(nèi)水位高度變化首先會改變通氣管中的壓強(qiáng)變化,這個壓強(qiáng)變化會通過空氣導(dǎo)管傳給傳感器的橡膠隔膜板,受到壓力變化的影響,隔膜板產(chǎn)生位移,帶動鐵芯上下移動,隔膜板抬起,對彈簧產(chǎn)生一作用力,當(dāng)彈簧的反作用力和壓力變化產(chǎn)生的作用力在傳感器中的某一確定的位置達(dá)到平衡后,線圈會輸出一個固定的電感值。
電感值變化后,則根據(jù)LC振蕩回路諧振頻率:
獲得一頻率信號。把電感轉(zhuǎn)化的頻率信號傳輸給洗衣機(jī)MCU,洗衣機(jī)通過這一頻率信號,從而可以確定當(dāng)前水位高度。圖3為壓力傳感器電路示意圖及頻率輸出電路。
為了解決壓力傳感器水位檢測精度的問題,本文選用一種集成式數(shù)字壓力傳感器IMS7902用于水位檢測。這種傳感器具有檢測精度高、體積小、功耗低、環(huán)境適應(yīng)性強(qiáng)等優(yōu)點。
集成數(shù)字壓力傳感器的工作原理:與傳統(tǒng)壓力傳感器類似,氣管處接通氣管同時做好密封,通氣管另外一端接洗衣機(jī)桶底并做好密封,當(dāng)洗衣機(jī)進(jìn)水后,洗衣機(jī)內(nèi)水位高度變化首先會改變通氣管中的壓強(qiáng)變化。水位高度不同,壓強(qiáng)不同,壓強(qiáng)直接通過通氣管作用在傳感器的膜片上,使膜片產(chǎn)生與介質(zhì)壓力成正比的微位移,使傳感器的電阻發(fā)生變化,用電子線路檢測這一變化,轉(zhuǎn)換輸出一個對應(yīng)于這個壓力的數(shù)字標(biāo)準(zhǔn)信號。此信號通過通訊協(xié)議傳輸給MCU,從而判斷水位高度。
與傳感水位檢測方式對比,數(shù)字式壓力傳感器具有水位檢測精準(zhǔn)、體積小、功耗低等優(yōu)點。
ITM公司生產(chǎn)的IMS7902集成式壓力傳感器具有精度高,功耗小,體積小等優(yōu)點,同時可以進(jìn)行溫度補(bǔ)償,在0~70度范圍內(nèi)都能測試到非常精確的水位信息。該傳感器工作參數(shù):檢測0~6kPa氣體壓力變化;檢測精度:±1.5%(±0.09kPa);工作溫度范圍:0~70℃;工作模式:最大2.5mA;睡眠模式:最大32uA;14-bit模數(shù)轉(zhuǎn)換;支持SPI/I2C通訊協(xié)議;工作電壓:2.7-5.5V;體積??;直接安裝在PCB上。傳感器實物如圖4所示。
IMS7902集成式壓力傳感器硬件原理圖如圖5所示,引腳定義見表1,集成式數(shù)字壓力傳感器和普通壓力傳感器一致,通過通氣軟管接在洗衣機(jī)桶底及壓力傳感器的氣管兩端并保證密封性。集成式數(shù)字壓力傳感器用5V供電,電源通過電容和TVS管做濾波和防浪涌設(shè)計,傳感器1腳和2腳MCU通過I2C線路連接,在通訊時鐘及數(shù)據(jù)線上串電阻并增加去耦電容用于線路的抗干擾,由于硬件I2C是開漏輸出,要加上拉電阻。原理圖設(shè)計好之后可以結(jié)合洗衣機(jī)其他部分硬件設(shè)計畫出PCB,并完成實物制作。
圖1 傳統(tǒng)水位傳感器實物圖
圖2 傳統(tǒng)壓力傳感器結(jié)構(gòu)圖
圖3 壓力傳感器電路示意圖及頻率輸出電路(LC為傳統(tǒng)壓力傳感器模型)
圖4 IMS7902壓力傳感器實物圖
圖5 集成式數(shù)字壓力傳感器硬件電路設(shè)計(壓力傳感器為圖中U3),SDA,SCL接MCU的I/O口
表1 IMS7902集成式壓力傳感器引腳定義
圖6 I2C通訊的起始信號和停止信號
圖7 I2C通訊的數(shù)據(jù)格式
在本方案中,主控MCU和數(shù)字壓力傳感器之間采用I2C的通訊方式,MCU通過一定的時間間隔向傳感器發(fā)送檢測壓力的命令并定時向傳感器查詢當(dāng)前的壓力狀態(tài),并轉(zhuǎn)換成當(dāng)前水位信號,對水位多次檢測取平均值。
4.1.1 起始信號和停止信號
如圖6所示:
開始信號——在SCLK的高電平器件,拉低SDA的信號(由1變?yōu)?);
結(jié)束信號——在SCLK的高電平期間,拉高SDA信號,表示通信結(jié)束。
4.1.2 數(shù)據(jù)位的有效性規(guī)定
在I2C總線進(jìn)行數(shù)據(jù)傳送時,時鐘信號為高電平時,數(shù)據(jù)線的信號必須保持不變;只有時鐘信號為低電平器件,數(shù)據(jù)信號上的數(shù)據(jù)才允許發(fā)生改變(高電平變?yōu)榈碗娖交蛘叩碗娖阶優(yōu)楦唠娖剑?/p>
4.1.3 數(shù)據(jù)傳送格式
I2C通訊的數(shù)據(jù)格式如圖7。發(fā)送到SDA線上的每個字節(jié)必須是8位的,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位(MSB),每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀9位)。
如果從機(jī)要完成一些其他功能后才能繼續(xù)接收或發(fā)送,從機(jī)可以拉低SCL迫使主機(jī)進(jìn)入等待狀態(tài)。當(dāng)從機(jī)準(zhǔn)備好接收并釋放SCL后,數(shù)據(jù)繼續(xù)傳輸。如果主機(jī)在傳輸數(shù)據(jù)期間也需要完成一些其他功能也可以拉低SCL以占住總線。
由于某種原因從機(jī)不對主機(jī)尋址信號應(yīng)答時(如從機(jī)正在進(jìn)行實時性的處理工作而無法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一個終止信號以結(jié)束總線的數(shù)據(jù)傳送。
如果從機(jī)對主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時間后無法繼續(xù)接收更多的數(shù)據(jù)時,從機(jī)可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳送。
當(dāng)主機(jī)接受數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)送一個結(jié)束傳送的信號,這個信號是由對從機(jī)的“非應(yīng)答”來實現(xiàn)的。然后,從機(jī)釋放SDA線,以允許主機(jī)產(chǎn)生終止信號。
4.1.4 數(shù)據(jù)幀格式
I2C總線上傳送的數(shù)據(jù)信號是廣義的,既包括地址信號,又包括真正的數(shù)據(jù)信號。
在起始信號后必須傳送一個從機(jī)的地址(7位),在第8位是數(shù)據(jù)的傳送方向(R/T),用“0”標(biāo)識主機(jī)發(fā)送數(shù)據(jù)(T),“1”標(biāo)識主機(jī)接受數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號結(jié)束。但是,若主機(jī)希望繼續(xù)占用總線進(jìn)行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號,馬上再次發(fā)出起始信號對另一從機(jī)進(jìn)行尋址。
在總線的一次數(shù)據(jù)傳送過程中可以有以下幾種組合方式,我們介紹其中需要用到的一種。如圖8所示,主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)產(chǎn)送方向在整個傳送過程中不變。其中有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)發(fā)送,無陰影部分則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。A表示應(yīng)答,A非表示非應(yīng)答(高電平)。S表示起始信號,P表示終止信號。
4.2.1 IMS7902傳感器I2C通訊的讀取模式
我們對IMS7902通訊采用的是讀模式,在讀模式下,MCU給IMS7902發(fā)送7位從機(jī)地址和一位“1”(READ),IMS7902會發(fā)送一個應(yīng)答信號(ACK)來指示通訊成功。IMS7902有四個讀命令,Read_MR,Read_DF2,Read_DF3以及Read_DF4。具體信息如圖9所示:
(1)IMS7902從機(jī)地址:0x28;
(2)Read_MR模式:MCU發(fā)送從機(jī)地址以及讀信號,等待應(yīng)答后發(fā)送停止信號,意味著傳感器開始測量及數(shù)據(jù)轉(zhuǎn)化;
(3)Read_DF2:讀取兩個字節(jié)數(shù)據(jù),包括壓力的兩個字節(jié)數(shù)據(jù)量;
(4)Read_DF3:讀取三個字節(jié)數(shù)據(jù),包括兩個字節(jié)壓力數(shù)據(jù)及一個字節(jié)溫度數(shù)據(jù);
(5)Read_DF4:讀取四個字節(jié)數(shù)據(jù),包括兩個字節(jié)壓力數(shù)據(jù)及兩個字節(jié)溫度數(shù)據(jù)。
4.2.2 IMS7902傳感器工作的軟件流程框圖
IMS7902傳感器工作的軟件流程框圖如圖10所示。
4.2.3 MCU與IMS7902傳感器的通訊
MCU每間隔500ms檢測下當(dāng)前的水位狀態(tài),根據(jù)當(dāng)前的水位狀態(tài)確定要執(zhí)行的相應(yīng)程序。
在完成數(shù)字壓力傳感器的水位檢測方案設(shè)計后,與傳統(tǒng)的水位檢測方式做對比測試,選擇相同的條件并多次測試取平均值,測試的結(jié)果如表2所示。
通過表2可以明顯看出數(shù)字式壓力傳感器相比傳統(tǒng)壓力傳感器具有更高的檢測精度及更小的波動范圍。對于洗衣機(jī)精確水位控制有更大的助益??梢杂行Ы鉀Q傳統(tǒng)水位傳感器帶來的無法精確用水等問題。這對于消費者來說可以帶來更好的洗衣體驗,同時也能幫助企業(yè)減少由于水位檢測不準(zhǔn)確而浪費的開發(fā)投入。
圖8 數(shù)據(jù)幀格式
圖9 IMS7902傳感器的4個讀命令
圖10 IMS7902傳感器工作的軟件流程框圖
表2 數(shù)字式壓力傳感器和傳統(tǒng)壓力傳感器檢測水位對比