天天看點

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

SHT11是瑞士Scnsirion公司推出的一款數字溫濕度傳感器晶片。該晶片廣泛應用于暖通空調、汽車、消費電子、自動控制等領域。共主要特點如下:

◆高度內建,将溫度感測、濕度感測、信号變換、A/D轉換和加熱器等功能內建到一個晶片上;

◆提供二線數字元串行接口SCK和DATA,接口簡單,支援CRC傳輸校驗,傳輸可靠性高;

◆測量精度可程式設計調節,内置A/D轉換器(分辨率為8~12位,可以通過對晶片内部寄存器程式設計米選擇);

◆測量精确度高,由于同時內建溫濕度傳感器,可以提供溫度補償的濕度測量值和高品質的露點計算功能;

◆封裝尺寸超小(7.62 mm×5.08mm×2.5 mm),測量和通信結束後,自動轉入低功耗模式;

◆高可靠性,采用CMOSens工藝,測量時可将感測頭完全浸于水中。

    2SHT11的引腳功能

     SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,接口非常簡單,引腳名稱及排列順序如 

圖1所示。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

各引腳的功能如下:

◇腳1和4--信号地和電源,其工作電壓範圍是2.4~5.5 V;

◇腳2和腳3--二線串行數字接口,其中DA-TA為資料線,SCK為時鐘線;

◇腳5~8--未連接配接。

    3 SHT11的内部結構和工作原理

      溫濕度傳感器SHT11将溫度感測、濕度感測、信号變換、A/D轉換和加熱器等功能內建到一個晶片上,其内部結構如圖2所示。該晶片包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件。這兩個敏感元件分别将濕度和溫度轉換成電信号,該電信号首先進入微弱信号放大器進行放大;然後進入一個14位的A/D轉換器;最後經過二線串行數字接口輸出數字信号。SHT11在出廠前,都會在恒濕或恒溫環境巾進行校準,校準系數存儲在校準寄存器中;在測量過程中,校準系數會自動校準來自傳感器的信号。此外,SHT11内部還內建了一個加熱元件,加熱元件接通後可以将SHT11的溫度升高5℃左右,同時功耗也會有所增加。此功能主要為了比較加熱前後的溫度和濕度值,可以綜合驗證兩個傳感器元件的性能。在高濕(>95%RH)環境中,加熱傳感器可預防傳感器結露,同時縮短響應時間,提高精度。加熱後SHT11溫度升高、相對濕度降低,較加熱前,測量值會略有差異。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

       微處理器是通過二線串行數字接口與SHT11進行通信的。通信協定與通用的I2C總線協定是不相容的,是以需要用通用微處理器I/O口仿真該通信時序。微處理器對SHT11的控制是通過5個5位指令代碼來實作的,指令代碼的含義如表1所列。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

    4 SHT11應用設計

      微處理器采用二線串行數字接口和溫濕度傳感器晶片SHT11進行通信,是以硬體接門設計非常簡單;然而,通信協定是晶片廠家自己定義的,是以在軟體設計中,需要用微處理器通用I/O口仿真通信協定。

    4.1 硬體設計

      SHT11通過二線數字元串行接口來通路,是以硬體接口電路非常簡單。需要注意的地方是:DATA資料線需要外接上拉電阻,時鐘線SCK用于微處理器和SHT11之間通信同步,由于接口包含了完全靜态邏輯,是以對SCK最低頻率沒有要求;當工作電壓高于4.5V時,SCK頻率最高為10 MHz,而當工作電壓低于4.5 V時,SCK最高頻率則為1 MHz。硬體連接配接如圖3所示。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

    4.2 軟體設計

      微處理器和溫濕度傳感器通信采用串行二線接口SCK和DATA,其中SCK為時鐘線,DATA為資料線。該二線串行通信協定和I2C協定是不相容的。在程式開始,微處理器需要用一組"啟動傳輸"時序表示資料傳輸的啟動,如圖4所示。當SCK時鐘為高電平時,DATA翻轉為低電平;緊接着SCK變為低電平,随後又變為高電平;在SCK時鐘為高電平時,DATA再次翻轉為高電平。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

  &nb sp;    SHT11濕度測試時序如圖5所示。其中,陰影部分為SHT11控制總線。主機發出啟動指令,随後發出一個後續8位指令碼,該指令碼包含3個位址位(晶片設定位址為000)和5個指令位;發送完該指令碼,将DATA總線設為輸入狀态等待SHT11的響應;SHT11接收到上述位址和指令碼後,在第8個時鐘下降沿,将DATA下拉為低電平作為從機的ACK;在第9個時鐘下降沿之後,從機釋放DATA(恢複高電平)總線;釋放總線後,從機開始測量目前濕度,測量結束後,再次将DATA總線拉為低電平;主機檢測到DATA總線被拉低後,得知濕度測量已經結束,給出SCK時鐘信号;從機在第8個時鐘下降沿,先輸出高位元組資料;在第9個時鐘下降沿,主機将DATA總線拉低作為ACK信号。然後釋放總線DATA;在随後8個SCK周期下降沿,從機發出低位元組資料;接下來的SCK下降沿,主機再次将DATA總線拉低作為接收資料的ACK信号;最後8個SCK下降沿從機發出CRC校驗資料,主機不予應答(NACK)則表示測量結束。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

       由于微處理器通過二線串行數字接口通路濕度傳感器SHT11,而通路協定是晶片生産商白定義的,是以需要用通用I/O口仿真該通信協定。我們選用Atmel公司的微處理器ATmega128。通過對I/O口寄存器的程式設計,該處理器的I/O口可以根據需要設定成輸入、輸出、高阻等狀态。這為仿真該通信協定提供了條件。在軟體實作過程 

巾,通過宏定義來實作I/O口狀态的改變。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

      通過以上宏定義,可以實作SCK和DATA總線的各種輸入和輸出狀态。為了仿真該二線串行數字協定,還需要一個延時函數。

      WINAVR庫函數提供了一個延時函數_delay_loop_2(unsigned char s),該延時函數運作用4個時鐘周期,是以自定義延時1μs函數可以定義如下:

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

       基于以上宏定義和延時函數,可以友善地使SCK和DATA總線輸出持續一定時間的高電平或低電平,進而可以模拟圖5所示的溫濕度傳感器SHT11的讀寫協定。

    4.3 溫度和濕度值的計算

    4.3.1 濕度線性補償和溫度補償

      SHT11可通過DATA資料總線直接輸出數字量濕度值。該濕度值稱為"相對濕度",需要進行線性補償和溫度補償後才能得到較為準确的濕度值。由于相對濕度數字輸出特性呈一定的非線性,是以為了補償濕度傳感器的非線性,可按下式修正濕度值:

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

式中:RHlinear為經過線性補償後的濕度值,SORH為相對濕度測量值,C1、C2、C3為線性補償系數,取值如表2所列。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

      由于溫度對濕度的影響十分明顯,而實際溫度和測試參考溫度25℃有所不同,是以對線性補償後的濕度值進行溫度補償很有必要。補償公式如下:

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

      式中:RHtrue為經過線性補償和溫度補償後的濕度值,T為測試濕度值時的溫度(℃),t1和t2為溫度補償系數,取值如表3所列。

    4.3.2 溫度值輸出

      由于SHT11是采用PTAT能隙材料制成的溫度敏感元件,因而具有很好的線性輸出。實際溫度值可由下式算得:

Temperature=d1+d2×SOT

      式中:d1和d2為特定系數,d1的取值與SHT11工作電壓有關,d2的取值則與SHT11内部A/D轉換器采用的分辨率有關,其對應關系分别如表4和表5所列。

SHT11(IIC協定的溫濕度傳感器)簡介和程式設計方法

    4.3.3露點計算

      露點是一個特殊的溫度值,是空氣保持某一定濕度必須達到的最低溫度。當空氣的溫度低于露點時,空氣容納不了過多的水分,這些水分會變成霧、露水或霜。露點可以根據目前相對濕度值和溫度值計算得出,具體的計算公式如下:

LogEW=0.66077+7.5×T/(237.3+T)+log10(SORH)-2

Dp=((0.66077-logEW)×237.3)/(logEW-8.16077)

式中:T為目前溫度值,SORH為相對濕度值,Dp為露點。

    5 結論

        溫濕度傳感器 SHT11 集溫度傳感器和濕度傳感器于一體,是以采用 SHT11 進行溫濕度實時監測的系統具有精度高、成本低、體積小、接口簡單等優點;另外 SHT11 晶片内部內建了 14 位 A / D 轉換器,且采用數字信号輸出,是以抗幹擾能力也比同類晶片高。該晶片在溫濕度監測、自動控制等領域均已得到廣泛應用。

繼續閱讀