朱小麗 周杰 高利敏
惠而浦(中國)股份有限公司研發中心 安徽合肥 230088
在現代社會,洗衣機基本已經普及到每個家庭并且成為家用電器中非常重要的一員,大大解放了雙手并節約了手工洗衣服的時間,且大部分洗衣機都實現了智能化控制,僅僅在非常偏遠的農村地區還有雙桶洗衣機的市場。
在能源越來越重要的現代社會,要實現智能控制,如何保證洗衣機精確用水是一個非常重要的課題。目前市面上絕大部分洗衣機都帶有自動檢測水位功能,普遍采用的水位檢測方式是兩線或者三線的壓力傳感器,這種壓力傳感器檢測原理主要是根據水位傳感器在不同水壓下,傳感器的電感量會根據壓力變化,從而改變震蕩頻率,通過單片機對頻率的識別來判斷水位的當前狀態。但是這種檢測方式有一個很大的缺點,就是檢測精度不高,甚至有可能導致洗衣機用水差異很大,做不到精準控制,從而帶來一系列問題,如洗衣機體驗差、用水量及耗電量都很難控制在一定范圍內、對洗衣機洗凈比及能耗的標注帶來困難等。
如圖1、2所示,傳統水位傳感器的組成主要有圖上標注的幾個部分,水位傳感器的工作方式如下:氣管處接通氣管同時做好密封,通氣管另外一端接洗衣機桶底并做好密封,當洗衣機進水后,洗衣機內水位高度變化首先會改變通氣管中的壓強變化,這個壓強變化會通過空氣導管傳給傳感器的橡膠隔膜板,受到壓力變化的影響,隔膜板產生位移,帶動鐵芯上下移動,隔膜板抬起,對彈簧產生一作用力,當彈簧的反作用力和壓力變化產生的作用力在傳感器中的某一確定的位置達到平衡后,線圈會輸出一個固定的電感值。
電感值變化后,則根據LC振蕩回路諧振頻率:

獲得一頻率信號。把電感轉化的頻率信號傳輸給洗衣機MCU,洗衣機通過這一頻率信號,從而可以確定當前水位高度。圖3為壓力傳感器電路示意圖及頻率輸出電路。
為了解決壓力傳感器水位檢測精度的問題,本文選用一種集成式數字壓力傳感器IMS7902用于水位檢測。這種傳感器具有檢測精度高、體積小、功耗低、環境適應性強等優點。
集成數字壓力傳感器的工作原理:與傳統壓力傳感器類似,氣管處接通氣管同時做好密封,通氣管另外一端接洗衣機桶底并做好密封,當洗衣機進水后,洗衣機內水位高度變化首先會改變通氣管中的壓強變化。水位高度不同,壓強不同,壓強直接通過通氣管作用在傳感器的膜片上,使膜片產生與介質壓力成正比的微位移,使傳感器的電阻發生變化,用電子線路檢測這一變化,轉換輸出一個對應于這個壓力的數字標準信號。此信號通過通訊協議傳輸給MCU,從而判斷水位高度。
與傳感水位檢測方式對比,數字式壓力傳感器具有水位檢測精準、體積小、功耗低等優點。
ITM公司生產的IMS7902集成式壓力傳感器具有精度高,功耗小,體積小等優點,同時可以進行溫度補償,在0~70度范圍內都能測試到非常精確的水位信息。該傳感器工作參數:檢測0~6kPa氣體壓力變化;檢測精度:±1.5%(±0.09kPa);工作溫度范圍:0~70℃;工作模式:最大2.5mA;睡眠模式:最大32uA;14-bit模數轉換;支持SPI/I2C通訊協議;工作電壓:2.7-5.5V;體積小;直接安裝在PCB上。傳感器實物如圖4所示。
IMS7902集成式壓力傳感器硬件原理圖如圖5所示,引腳定義見表1,集成式數字壓力傳感器和普通壓力傳感器一致,通過通氣軟管接在洗衣機桶底及壓力傳感器的氣管兩端并保證密封性。集成式數字壓力傳感器用5V供電,電源通過電容和TVS管做濾波和防浪涌設計,傳感器1腳和2腳MCU通過I2C線路連接,在通訊時鐘及數據線上串電阻并增加去耦電容用于線路的抗干擾,由于硬件I2C是開漏輸出,要加上拉電阻。原理圖設計好之后可以結合洗衣機其他部分硬件設計畫出PCB,并完成實物制作。

圖1 傳統水位傳感器實物圖

圖2 傳統壓力傳感器結構圖

圖3 壓力傳感器電路示意圖及頻率輸出電路(LC為傳統壓力傳感器模型)

圖4 IMS7902壓力傳感器實物圖

圖5 集成式數字壓力傳感器硬件電路設計(壓力傳感器為圖中U3),SDA,SCL接MCU的I/O口

表1 IMS7902集成式壓力傳感器引腳定義

圖6 I2C通訊的起始信號和停止信號

圖7 I2C通訊的數據格式
在本方案中,主控MCU和數字壓力傳感器之間采用I2C的通訊方式,MCU通過一定的時間間隔向傳感器發送檢測壓力的命令并定時向傳感器查詢當前的壓力狀態,并轉換成當前水位信號,對水位多次檢測取平均值。
4.1.1 起始信號和停止信號
如圖6所示:
開始信號——在SCLK的高電平器件,拉低SDA的信號(由1變為0);
結束信號——在SCLK的高電平期間,拉高SDA信號,表示通信結束。
4.1.2 數據位的有效性規定
在I2C總線進行數據傳送時,時鐘信號為高電平時,數據線的信號必須保持不變;只有時鐘信號為低電平器件,數據信號上的數據才允許發生改變(高電平變為低電平或者低電平變為高電平)。
4.1.3 數據傳送格式
I2C通訊的數據格式如圖7。發送到SDA線上的每個字節必須是8位的,每次傳輸可以發送的字節數量不受限制。每一個字節必須保證是8位長度。數據傳送時,先傳送最高位(MSB),每一個被傳送的字節后面都必須跟隨一位應答位(即一幀9位)。
如果從機要完成一些其他功能后才能繼續接收或發送,從機可以拉低SCL迫使主機進入等待狀態。當從機準備好接收并釋放SCL后,數據繼續傳輸。如果主機在傳輸數據期間也需要完成一些其他功能也可以拉低SCL以占住總線。
由于某種原因從機不對主機尋址信號應答時(如從機正在進行實時性的處理工作而無法接收總線上的數據),它必須將數據線置于高電平,而由主機產生一個終止信號以結束總線的數據傳送。
如果從機對主機進行了應答,但在數據傳送一段時間后無法繼續接收更多的數據時,從機可以通過對無法接收的第一個數據字節的“非應答”通知主機,主機則應發出終止信號以結束數據的繼續傳送。
當主機接受數據時,它收到最后一個數據字節后,必須向從機發送一個結束傳送的信號,這個信號是由對從機的“非應答”來實現的。然后,從機釋放SDA線,以允許主機產生終止信號。
4.1.4 數據幀格式
I2C總線上傳送的數據信號是廣義的,既包括地址信號,又包括真正的數據信號。
在起始信號后必須傳送一個從機的地址(7位),在第8位是數據的傳送方向(R/T),用“0”標識主機發送數據(T),“1”標識主機接受數據(R)。每次數據傳送總是由主機產生的終止信號結束。但是,若主機希望繼續占用總線進行新的數據傳送,則可以不產生終止信號,馬上再次發出起始信號對另一從機進行尋址。
在總線的一次數據傳送過程中可以有以下幾種組合方式,我們介紹其中需要用到的一種。如圖8所示,主機向從機發送數據,數據產送方向在整個傳送過程中不變。其中有陰影部分表示數據由主機向從機發送,無陰影部分則表示數據由從機向主機傳送。A表示應答,A非表示非應答(高電平)。S表示起始信號,P表示終止信號。
4.2.1 IMS7902傳感器I2C通訊的讀取模式
我們對IMS7902通訊采用的是讀模式,在讀模式下,MCU給IMS7902發送7位從機地址和一位“1”(READ),IMS7902會發送一個應答信號(ACK)來指示通訊成功。IMS7902有四個讀命令,Read_MR,Read_DF2,Read_DF3以及Read_DF4。具體信息如圖9所示:
(1)IMS7902從機地址:0x28;
(2)Read_MR模式:MCU發送從機地址以及讀信號,等待應答后發送停止信號,意味著傳感器開始測量及數據轉化;
(3)Read_DF2:讀取兩個字節數據,包括壓力的兩個字節數據量;
(4)Read_DF3:讀取三個字節數據,包括兩個字節壓力數據及一個字節溫度數據;
(5)Read_DF4:讀取四個字節數據,包括兩個字節壓力數據及兩個字節溫度數據。
4.2.2 IMS7902傳感器工作的軟件流程框圖
IMS7902傳感器工作的軟件流程框圖如圖10所示。
4.2.3 MCU與IMS7902傳感器的通訊
MCU每間隔500ms檢測下當前的水位狀態,根據當前的水位狀態確定要執行的相應程序。
在完成數字壓力傳感器的水位檢測方案設計后,與傳統的水位檢測方式做對比測試,選擇相同的條件并多次測試取平均值,測試的結果如表2所示。
通過表2可以明顯看出數字式壓力傳感器相比傳統壓力傳感器具有更高的檢測精度及更小的波動范圍。對于洗衣機精確水位控制有更大的助益??梢杂行Ы鉀Q傳統水位傳感器帶來的無法精確用水等問題。這對于消費者來說可以帶來更好的洗衣體驗,同時也能幫助企業減少由于水位檢測不準確而浪費的開發投入。

圖8 數據幀格式

圖9 IMS7902傳感器的4個讀命令

圖10 IMS7902傳感器工作的軟件流程框圖

表2 數字式壓力傳感器和傳統壓力傳感器檢測水位對比