1 概述 溫濕度的測量在倉儲管理、生產(chǎn)制造、氣象觀(guān)測、科學(xué)研究以及日常生活中被廣泛應用,傳統的模擬式濕度傳感器一般都要設計信號調理電路并需要經(jīng)過(guò)復雜的校準和標定過(guò)程,因此測量精度難以保證,且在線(xiàn)性度、重復性、互換性、一致性等方面往往不盡人意。SHT11是瑞士Sensirion公司推出的基于CMOSensTM技術(shù)的新型溫濕度傳感器。該傳感器將CMOS芯片技術(shù)與傳感器技術(shù)結合起來(lái),從而發(fā)揮出它們強大的優(yōu)勢互補作用。 2 性能特點(diǎn) SHT11溫濕度傳感器的主要特性如下: ●將溫濕度傳感器、信號放大調理、A/D轉換、I2C總線(xiàn)接口全部集成于一芯片(CMOSensTM技術(shù)); ●可給出全校準相對濕度及溫度值輸出; ●帶有工業(yè)標準的I2C總線(xiàn)數字輸出接口; ●具有露點(diǎn)值計算輸出功能; ●具有卓越的長(cháng)期穩定性; ●濕度值輸出分辨率為14位,溫度值輸出分辨率為12位,并可編程為12位和8位; ●小體積(7.65 5.08 23.5mm),可表面貼裝; ●具有可靠的CRC數據傳輸校驗功能; ●片內裝載的校準系數可保證100%互換性; ●電源電壓范圍為2.4~5.5V; ●電流消耗,測量時(shí)為550μA,平均為28μA,休眠時(shí)為3μA。 SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,管腳排列如圖1所示,其引腳說(shuō)明如下: (1)GND:接地端; (2)DATA:雙向串行數據線(xiàn); (3)SCK:串行時(shí)鐘輸入; (4)VDD電源端:0.4~5.5V電源端; (5~8)NC:空管腳。 3 工作原理 SHT11的濕度檢測運用電容式結構,并采用具有不同保護的“微型結構”檢測電極系統與聚合物覆蓋層來(lái)組成傳感器芯片的電容,除保持電容式濕敏器件的原有特性外,還可抵御來(lái)自外界的影響。由于它將溫度傳感器與濕度傳感器結合在一起而構成了一個(gè)單一的個(gè)體,因而測量精度較高且可精確得出露點(diǎn),同時(shí)不會(huì )產(chǎn)生由于溫度與濕度傳感器之間隨溫度梯度變化引起的誤差。CMOSensTM技術(shù)不僅將溫濕度傳感器結合在一起,而且還將信號放大器、模/數轉換器、校準數據存儲器、標準I2C總線(xiàn)等電路全部集成在一個(gè)芯片內。SHT11傳感器的內部結構框圖如圖2所示。 SHT11的每一個(gè)傳感器都是在極為精確的濕度室中校準的。SHT11傳感器的校準系數預先存在OTP內存中。經(jīng)校準的相對濕度和溫度傳感器與一個(gè)14位的A/D轉換器相連,可將轉換后的數字溫濕度值送給二線(xiàn)I2C總線(xiàn)器件,從而將數字信號轉換為符合I2C總線(xiàn)協(xié)議的串行數字信號。 由于將傳感器與電路部分結合在一起,因此,該傳感器具有比其它類(lèi)型的濕度傳感器優(yōu)越得多的性能。首先是傳感器信號強度的增加增強了傳感器的抗干擾性能,保證了傳感器的長(cháng)期穩定性,而A/D轉換的同時(shí)完成,則降低了傳感器對干擾噪聲的敏感程度。其次在傳感器芯片內裝載的校準數據保證了每一只濕度傳感器都具有相同的功能,即具有100%的互換性。最后,傳感器可直接通過(guò)I2C總線(xiàn)與任何類(lèi)型的微處理器、微控制器系統連接,從而減少了接口電路的硬件成本,簡(jiǎn)化了接口方式。 3.1 輸出特性 (1)濕度值輸出 SHT11可通過(guò)I2C總線(xiàn)直接輸出數字量濕度值,其相對濕度數字輸出特性曲線(xiàn)如圖3所示。由圖3可看出,SHT11的輸出特性呈一定的非線(xiàn)性,為了補償濕度傳感器的非線(xiàn)性,可按如下公式修正濕度值: RHlinear=c1+c2SORH+c3SORH2 式中,SORH為傳感器相對濕度測量值,系數取值如下: 12位:SORH:c1=-4,c2=0.0405,c3=-2.8 10-6 8位:SORH:c1=-4,c2=0.648,c3=-7.2 10-4 (2)溫度值輸出 由于SHT11溫度傳感器的線(xiàn)性非常好,故可用下列公式將溫度數字輸出轉換成實(shí)際溫度值: T=d1+d2SOT 當電源電壓為5V,且溫度傳感器的分辨率為14位時(shí),d1=-40?d2=0.01,當溫度傳感器的分辨率為12位時(shí),d1=-40d2=0.04。 (3)露點(diǎn)計算 空氣的露點(diǎn)值可根據相對濕度和溫度值來(lái)得出,具體的計算公式如下: LogEW=(0.66077+7.5T/(237.3+T)+[log10(RH)-2] Dp=[(0.66077-logEW) 237.3]/(logEW-8.16077) 3.2 命令與接口時(shí)序 SHT11傳感器共有5條用戶(hù)命令,具體命令格式見(jiàn)表1所列。下面介紹一下具體的命令順序及命令時(shí)序。 表1 SHT11傳感器命令列表 命 令 編 碼 說(shuō) 明 測量溫度 00011 溫度測量 測量濕度 00101 濕度測量 讀寄存器狀態(tài) 00111 “讀”狀態(tài)寄存器 寫(xiě)寄存器狀態(tài) 00110 “寫(xiě)”狀態(tài)寄存器 軟啟動(dòng) 11110 重啟芯片,清除狀態(tài)記錄器的錯誤記錄11毫秒后進(jìn)入下一個(gè)命令 (1)傳輸開(kāi)始 初始化傳輸時(shí),應首先發(fā)出“傳輸開(kāi)始”命令,該命令可在SCK為高時(shí)使DATA由高電平變?yōu)榈碗娖?并在下一個(gè)SCK為高時(shí)將DATA升高。 接下來(lái)的命令順序包含三個(gè)地址位(目前只支持“000”)和5個(gè)命令位,當DATA腳的ack位處于低電位時(shí),表示SHT11正確收到命令。 (2)連接復位順序 如果與SHT11傳感器的通訊中斷,下列信號順序會(huì )使串口復位:即當DATA線(xiàn)處于高電平時(shí),觸發(fā)SCK 9次以上(含9次),此后應接著(zhù)發(fā)一個(gè)“傳輸開(kāi)始”命令。 表2 SHT11狀態(tài)寄存器類(lèi)型及說(shuō)明 位 類(lèi)型 說(shuō) 明 缺 省 7 保留 0 6 讀 工檢限(低電壓檢查) X 5 保留 0 4 保留 0 3 只用于試驗,不可以使用 0 2 讀/寫(xiě) 加熱 0 關(guān) 1 讀/寫(xiě) 不從OTP重下載 0 重下載 0 讀/寫(xiě) "1"=8位相對濕度,12位溫度分辨率。"0"=12位相對濕度,14位濕度分辨率 0 12位相對濕度,14位濕度 (3)溫濕度測量時(shí)序 當發(fā)出了溫(濕)度測量命令后,控制器就要等到測量完成。使用8/12/14位的分辨率測量分別需要大約11/55/210ms的時(shí)間。為表明測量完成,SHT11會(huì )使數據線(xiàn)為低,此時(shí)控制器必須重新啟動(dòng)SCK,然后傳送兩字節的測量數據與1字節CRC校驗和。控制器必須通過(guò)使DATA為低來(lái)確認每一個(gè)字節,所有的量均從右算,MSB列于第一位。通訊在確認CRC數據位后停止。如果沒(méi)有用CRC-8校驗和,則控制器就會(huì )在測量數據LSB后保持ack為高來(lái)停止通訊,SHT11在測量和通訊完成后會(huì )自動(dòng)返回睡眠模式。需要注意的是:為使SHT11的溫升低于0.1℃?此時(shí)的工作頻率不能大于標定值的15%(如:12位精確度時(shí),每秒最多進(jìn)行3次測量)。測量溫度和濕度命令所對應的時(shí)序如圖4所示。 3.3 寄存器配置 SHT11傳感器中的一些高級功能是通過(guò)狀態(tài)寄存器來(lái)實(shí)現的,寄存器各位的類(lèi)型及說(shuō)明見(jiàn)表2所列。下面對寄存器相關(guān)位的功能說(shuō)明: (1)加熱 使芯片中的加熱開(kāi)關(guān)接通后,傳感器溫度大約增加5℃,從而使功耗增加至8mA@5V。加熱用途如下: ●通過(guò)對啟動(dòng)加熱器前后的溫、濕度進(jìn)行比較,可以正確地區別傳感器的功能; ●在相對濕度較高的環(huán)境下,傳感器可通過(guò)加熱來(lái)避免冷凝。 (2)低電壓檢測 SHT11工作時(shí)可以自行檢測VDD電壓是否低于2.45V,準確度為0.1V。 (3)下載校準系數 為了節省能量并提高速度,OTP在每次測量前都要重新下載校準系數,從而使每一次測量節省8.2ms的時(shí)間。 (4)測量分辨率設定 將測量分辨率從14位(溫度)和12位(濕度)分別減到12位和8位可應用于高速或低功耗場(chǎng)合。 4 應用說(shuō)明 4.1 運行條件 測量量程以外的溫度會(huì )使濕度信號暫時(shí)地偏移+3%。然后傳感器會(huì )慢慢返回到校準條件。若將芯片在濕度小于5%環(huán)境下加熱24小時(shí)到90℃,芯片就會(huì )迅速恢復高相對濕度、高溫度環(huán)境的影響,但是,延長(cháng)強度條件會(huì )加速芯片的老化。 4.2 安裝注意事項 由于大氣的相對濕度與溫度的關(guān)系比較密切,因此,測量大氣溫度時(shí)的要點(diǎn)是將傳感器與大氣保持同一溫度,如果傳感器線(xiàn)路板上有發(fā)熱元件,SHT11應與熱源保持良好的通風(fēng),為減少SHT11和PCB之間的熱傳導,應使銅導線(xiàn)最細并在其中加上窄縫,同時(shí)應避免使傳感器在強光或UV下曝曬。 傳感器在布線(xiàn)時(shí),SCK和DATA信號平行且相互接近,或信號線(xiàn)長(cháng)于10cm時(shí),均會(huì )產(chǎn)生干擾信息,此時(shí)應在兩組信號之間放置VDD或GND。 5 具體應用 圖5是AT89C2051單片機與SHT11的接口電路。由于A(yíng)T89C2051不具備I2C總線(xiàn)接口,故使用單片機通用I/O口線(xiàn)來(lái)虛擬I2C總線(xiàn),并利用P1.0來(lái)虛擬數據線(xiàn)DATA,利用P1.1口線(xiàn)來(lái)虛擬時(shí)鐘線(xiàn),并在DATA端接入一只4.7kΩ的上拉電阻,同時(shí),在VDD及GND端接入一只0.1μF的去耦電容。下面給出與上述硬件電路配套的C51應用程序。 #define DATA P1_1 #define SCK P1_0 #define ACK 1 #define noACK 0 #define MEASURE_TEMP 0x03 //測量溫度命令 #define MEASURE_HUMI 0x05 //測量濕度命令 //讀溫濕度數據 char s-measure(unsigned char *p- value, un-signed char *p_checksum, unsigned char mode) { unsigned char error=0; unsigned int i; s_transstart(); //傳輸開(kāi)始 switch(mode){ case TEMP:error+=s_write_byte(measure_temp); break; case HUMI:error+=s_write_byte(measure_humi);break; default:break; } for(i=0;i<65535;i++) if(DATA==0) break; if (DATA) reeor+=1; *(p_value)=s_read_byte(ACK); *(p_value+1)=s_read_byte(ACK); *p_checksum=s_read_byte(noACK); return error; } //溫濕度值標度變換及溫度補償 void calc_sth15(float *p_humidity,float *p_tempera-ture) { const float c1=-4.0; const float c2=0.0405; const float c3=-0.0000028; const float t1=-0.01; const float t2=0.00008; float rh=%26;#215;p_humidity; float t=%26;#215;p_temperature; float rh_lin; float th_ture; float t_c; t_c=t%26;#215;0.01-40; rh_lin=c3%26;#215;rh%26;#215;rh+c2%26;#215;rh+c1; trh_ture=(t_c-25)%26;#215;(t1+t2%26;#215;rh)+rh_lin; %26;#215;p_temperature=t-c; %26;#215;p_humidity=rh_ture; } //從相對溫度和濕度計算露點(diǎn) char calc_dewpoint(float h,float t) {float logex,dew_point; logex=0.66077+7.5%26;#215;t/(237.3+t)+[log10(h)-2]; dew_point=(logex-0.66077)%26;#215;237.3/(0.66077+7.5-logex); return dew_point; } 限于篇幅,上述程序中未給出傳輸開(kāi)始、寫(xiě)字節數據、讀字節數據函數。 6 結束語(yǔ) SHT11數字式溫濕度傳感器由于將溫度傳感器、濕度傳感器、信號調理、模/數轉換器、標定參數及I2C總線(xiàn)接口全部集成到傳感器內部,因此,既提高了傳感器的性能,又降低了成本、減少了體積,同時(shí)也非常便于和微控制器接口,由此可見(jiàn),該傳感器是嵌入式系統溫濕度測試的理想選擇。 |