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