1 SHT11簡(jiǎn)介 SHT11是瑞士Scnsirion公司推出的一款數字溫濕度傳感器芯片。該芯片廣泛應用于暖通空調、汽車(chē)、消費電子、自動(dòng)控制等領(lǐng)域。共主要特點(diǎn)如下: ◆高度集成,將溫度感測、濕度感測、信號變換、A/D轉換和加熱器等功能集成到一個(gè)芯片上; ◆提供二線(xiàn)數字串行接口SCK和DATA,接口簡(jiǎn)單,支持CRC傳輸校驗,傳輸可靠性高; ◆測量精度可編程調節,內置A/D轉換器(分辨率為8~12位,可以通過(guò)對芯片內部寄存器編程米選擇); ◆測量精確度高,由于同時(shí)集成溫濕度傳感器,可以提供溫度補償的濕度測量值和高質(zhì)量的露點(diǎn)計算功能; ◆封裝尺寸超小(7.62 mm×5.08mm×2.5 mm),測量和通信結束后,自動(dòng)轉入低功耗模式; ◆高可靠性,采用CMOSens工藝,測量時(shí)可將感測頭完全浸于水中。 2 SHT11的引腳功能 SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,接口非常簡(jiǎn)單,引腳名稱(chēng)及排列順序如圖1所示。 各引腳的功能如下: ◇腳1和4--信號地和電源,其工作電壓范圍是2.4~5.5 V; ◇腳2和腳3--二線(xiàn)串行數字接口,其中DA-TA為數據線(xiàn),SCK為時(shí)鐘線(xiàn); ◇腳5~8--未連接。 3 SHT11的內部結構和工作原理 溫濕度傳感器SHT11將溫度感測、濕度感測、信號變換、A/D轉換和加熱器等功能集成到一個(gè)芯片上,其內部結構如圖2所示。該芯片包括一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料制成的溫度敏感元件。這兩個(gè)敏感元件分別將濕度和溫度轉換成電信號,該電信號首先進(jìn)入微弱信號放大器進(jìn)行放大;然后進(jìn)入一個(gè)14位的A/D轉換器;最后經(jīng)過(guò)二線(xiàn)串行數字接口輸出數字信號。SHT11在出廠(chǎng)前,都會(huì )在恒濕或恒溫環(huán)境巾進(jìn)行校準,校準系數存儲在校準寄存器中;在測量過(guò)程中,校準系數會(huì )自動(dòng)校準來(lái)自傳感器的信號。此外,SHT11內部還集成了一個(gè)加熱元件,加熱元件接通后可以將SHT11的溫度升高5℃左右,同時(shí)功耗也會(huì )有所增加。此功能主要為了比較加熱前后的溫度和濕度值,可以綜合驗證兩個(gè)傳感器元件的性能。在高濕(>95%RH)環(huán)境中,加熱傳感器可預防傳感器結露,同時(shí)縮短響應時(shí)間,提高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會(huì )略有差異。 微處理器是通過(guò)二線(xiàn)串行數字接口與SHT11進(jìn)行通信的。通信協(xié)議與通用的I2C總線(xiàn)協(xié)議是不兼容的,因此需要用通用微處理器I/O口模擬該通信時(shí)序。微處理器對SHT11的控制是通過(guò)5個(gè)5位命令代碼來(lái)實(shí)現的,命令代碼的含義如表1所列。 4 SHT11應用設計 微處理器采用二線(xiàn)串行數字接口和溫濕度傳感器芯片SHT11進(jìn)行通信,所以硬件接門(mén)設計非常簡(jiǎn)單;然而,通信協(xié)議是芯片廠(chǎng)家自己定義的,所以在軟件設計中,需要用微處理器通用I/O口模擬通信協(xié)議。 4.1 硬件設計 SHT11通過(guò)二線(xiàn)數字串行接口來(lái)訪(fǎng)問(wèn),所以硬件接口電路非常簡(jiǎn)單。需要注意的地方是:DATA數據線(xiàn)需要外接上拉電阻,時(shí)鐘線(xiàn)SCK用于微處理器和SHT11之間通信同步,由于接口包含了完全靜態(tài)邏輯,所以對SCK最低頻率沒(méi)有要求;當工作電壓高于4.5V時(shí),SCK頻率最高為10 MHz,而當工作電壓低于4.5 V時(shí),SCK最高頻率則為1 MHz。硬件連接如圖3所示。 4.2 軟件設計 微處理器和溫濕度傳感器通信采用串行二線(xiàn)接口SCK和DATA,其中SCK為時(shí)鐘線(xiàn),DATA為數據線(xiàn)。該二線(xiàn)串行通信協(xié)議和I2C協(xié)議是不兼容的。在程序開(kāi)始,微處理器需要用一組"啟動(dòng)傳輸"時(shí)序表示數據傳輸的啟動(dòng),如圖4所示。當SCK時(shí)鐘為高電平時(shí),DATA翻轉為低電平;緊接著(zhù)SCK變?yōu)榈碗娖,隨后又變?yōu)楦唠娖;在SCK時(shí)鐘為高電平時(shí),DATA再次翻轉為高電平。 SHT11濕度測試時(shí)序如圖5所示。其中,陰影部分為SHT11控制總線(xiàn)。主機發(fā)出啟動(dòng)命令,隨后發(fā)出一個(gè)后續8位命令碼,該命令碼包含3個(gè)地址位(芯片設定地址為000)和5個(gè)命令位;發(fā)送完該命令碼,將DATA總線(xiàn)設為輸入狀態(tài)等待SHT11的響應;SHT11接收到上述地址和命令碼后,在第8個(gè)時(shí)鐘下降沿,將DATA下拉為低電平作為從機的ACK;在第9個(gè)時(shí)鐘下降沿之后,從機釋放DATA(恢復高電平)總線(xiàn);釋放總線(xiàn)后,從機開(kāi)始測量當前濕度,測量結束后,再次將DATA總線(xiàn)拉為低電平;主機檢測到DATA總線(xiàn)被拉低后,得知濕度測量已經(jīng)結束,給出SCK時(shí)鐘信號;從機在第8個(gè)時(shí)鐘下降沿,先輸出高字節數據;在第9個(gè)時(shí)鐘下降沿,主機將DATA總線(xiàn)拉低作為ACK信號。然后釋放總線(xiàn)DATA;在隨后8個(gè)SCK周期下降沿,從機發(fā)出低字節數據;接下來(lái)的SCK下降沿,主機再次將DATA總線(xiàn)拉低作為接收數據的ACK信號;最后8個(gè)SCK下降沿從機發(fā)出CRC校驗數據,主機不予應答(NACK)則表示測量結束。 由于微處理器通過(guò)二線(xiàn)串行數字接口訪(fǎng)問(wèn)濕度傳感器SHT11,而訪(fǎng)問(wèn)協(xié)議是芯片生產(chǎn)商白定義的,所以需要用通用I/O口模擬該通信協(xié)議。我們選用Atmel公司的微處理器ATmega128。通過(guò)對I/O口寄存器的編程,該處理器的I/O口可以根據需要設置成輸入、輸出、高阻等狀態(tài)。這為模擬該通信協(xié)議提供了條件。在軟件實(shí)現過(guò)程巾,通過(guò)宏定義來(lái)實(shí)現I/O口狀態(tài)的改變。 通過(guò)以上宏定義,可以實(shí)現SCK和DATA總線(xiàn)的各種輸入和輸出狀態(tài)。為了模擬該二線(xiàn)串行數字協(xié)議,還需要一個(gè)延時(shí)函數。WINAVR庫函數提供了一個(gè)延時(shí)函數_delay_loop_2(unsigned char s),該延時(shí)函數運行用4個(gè)時(shí)鐘周期,所以自定義延時(shí)1 μs函數可以定義如下: 基于以上宏定義和延時(shí)函數,可以方便地使SCK和DATA總線(xiàn)輸出持續一定時(shí)間的高電平或低電平,從而可以模擬圖5所示的溫濕度傳感器SHT11的讀寫(xiě)協(xié)議。 4.3 溫度和濕度值的計算 4.3.1 濕度線(xiàn)性補償和溫度補償 SHT11可通過(guò)DATA數據總線(xiàn)直接輸出數字量濕度值。該濕度值稱(chēng)為"相對濕度",需要進(jìn)行線(xiàn)性補償和溫度補償后才能得到較為準確的濕度值。由于相對濕度數字輸出特性呈一定的非線(xiàn)性,因此為了補償濕度傳感器的非線(xiàn)性,可按下式修正濕度值: 式中:RHlinear為經(jīng)過(guò)線(xiàn)性補償后的濕度值,SORH為相對濕度測量值,C1、C2、C3為線(xiàn)性補償系數,取值如表2所列。 由于溫度對濕度的影響十分明顯,而實(shí)際溫度和測試參考溫度25℃有所不同,所以對線(xiàn)性補償后的濕度值進(jìn)行溫度補償很有必要。補償公式如下: 式中:RHtrue為經(jīng)過(guò)線(xiàn)性補償和溫度補償后的濕度值,T為測試濕度值時(shí)的溫度(℃),t1和t2為溫度補償系數,取值如表3所列。 4.3.2 溫度值輸出 由于SHT11是采用PTAT能隙材料制成的溫度敏感元件,因而具有很好的線(xiàn)性輸出。實(shí)際溫度值可由下式算得: Temperature=d1+d2×SOT 式中:d1和d2為特定系數,d1的取值與SHT11工作電壓有關(guān),d2的取值則與SHT11內部A/D轉換器采用的分辨率有關(guān),其對應關(guān)系分別如表4和表5所列。 4.3.3 露點(diǎn)計算 露點(diǎn)是一個(gè)特殊的溫度值,是空氣保持某一定濕度必須達到的最低溫度。當空氣的溫度低于露點(diǎn)時(shí),空氣容納不了過(guò)多的水分,這些水分會(huì )變成霧、露水或霜。露點(diǎn)可以根據當前相對濕度值和溫度值計算得出,具體的計算公式如下: LogEW=0.66077+7.5×T/(237.3+T)+log10(SORH)-2 Dp=((0.66077-logEW)×237.3)/(logEW-8.16077) 式中:T為當前溫度值,SORH為相對濕度值,Dp為露點(diǎn)。 5 結 論 溫濕度傳感器SHT11集溫度傳感器和濕度傳感器于一體,因此采用SHT11進(jìn)行溫濕度實(shí)時(shí)監測的系統具有精度高、成本低、體積小、接口簡(jiǎn)單等優(yōu)點(diǎn);另外SHT11芯片內部集成了14位A/D轉換器,且采用數字信號輸出,因此抗干擾能力也比同類(lèi)芯片高。該芯片在溫濕度監測、自動(dòng)控制等領(lǐng)域均已得到廣泛應用。 |