1 概述 TMP101是TI公司生產的基于I2C串行總線接口的低功耗、高精度智能溫度傳感器,其內部集成有溫度傳感器、A/D轉換器、I2C串行總線接口等。寬泛的溫度測量范圍和較高的分辨率使其廣泛應用于多領域的溫度測量系統、多路溫度測控系統以及各種恒溫控制裝置。 TMP101具有以下性能特點: 1)帶有I2C總線,通過串行接口(SDA,SCI)實現與單片機的通信,其I2C總線上可掛接3個 TMP101器件,構成多點溫度測控系統。 2)溫度測量范圍為-55%"125℃,9~12位A/D轉換精度,12位A/D轉換的分辨率達0.0625"C。被測溫度值以符號擴展的16位數字量方式串行輸出。 3)電源電壓范圍寬(+2.7 V~+5.5 V),靜態電流小(待機狀態下僅為O.1μA)。 4)內部具有可編程的溫度上、下限寄存器及報警(中斷)輸出功能,內部的故障排隊功能可防止因噪聲干擾引起的誤觸發,從而提高溫控系 統的可靠性。 2 TMP101引腳功能和內部結構 2.1 TMP101引腳功能 TMP101硬件連接簡便,運行時除了SDA、SCI.和ALERT線上需要加上拉電阻外不需外接器件. TMP101采用SOT23-6封裝,引腳排列如圖1所示,引腳功能如下: SCL:串行時鐘輸入端; GND:接地端; ALERT:總線報警(中斷)輸出端,漏極開路輸出; V+:電源端; ADD0:I2C總線的地址選擇端; SDA:串行數據輸入/輸出端。電源與接地端之間接有一只0.1μF的耦合電容。 2.2 TMP101內部結構 TMP101內部結構框圖如圖2所示,TMP101內部含有二極管溫度傳感器、△-∑型A/D轉換器、時鐘振蕩器、控制邏輯、配置寄存器、溫度寄存器以及故障排隊計數器。TMP101首先通過內部溫度傳感器產生一個與被測溫度成正比的電壓信號,再通過12位△-∑型A/D轉換器將電壓信號轉換為與攝氏溫度成正比的數字量并存儲在內部的溫度寄存器中。該器件根據用戶在溫度上下限寄存器中設定的THIGH和TLOW,通過溫度窗口比較器決定是否啟動報警輸出。系統上電后器件處于缺省狀態,其溫度報警缺省閾值為:上限溫度THIGH=80℃溫度TLOW=75℃。 3 TMP101工作原理 TMP101的I2C總線串行數據接口線SDA和串行時鐘接口線SDA由主控制器控制.主控制器作為主機,TMP101作為從機并支持12C總線協議的讀/寫操作命令。首先通過主控制器對其進行地址設定。使主控制器對掛接在總線上的TMP1O1進行地址識別。為了能夠正確獲取TMP101內部溫度寄存器中的溫度值數據,要通過I2C總線對TMP101內部相關寄存器寫相應的數據,設定溫度轉換結果的分辨率、轉換時間、報警輸出的上、下限溫度值以及工作方式等.也就是對 TMP101內部的配置寄存器、上限溫度寄存器和下限溫度寄存器進行初始化設置。 3.1 TMP1O1的地址設置 根據12C串行總線規范,TMP1O1有一個7位的從器件地址碼,其有效位為"10010",其余兩位根據引腳ADD0接地、懸空和接電源端的不同分別設置為"00"、"01"、"10"。一條I2C總線上可掛接3個 TMP101器件。 3.2 TMP101內部寄存器 TMP101的功能實現和工作方式主要是由內部5個寄存器確定,如圖3所示,這些寄存器分別是地址指針寄存器、溫度寄存器、配置寄存器、上限溫度(TL)寄存器和下限溫度(TH)寄存器。后4個寄存器均屬于數據寄存器。 地址指針寄存器為8位可讀/寫寄存器,內部存儲了要讀寫的其余4個數據寄存器的地址,在讀寫操作中。通過設定地址指針寄存器的內容確定要訪問的寄存器。在8位數據字節中,前6位全部設置為0,后2位用于選擇寄存器,后2位P0、P1的值與選擇的寄存器關系如表l所列。 溫度寄存器為16位可讀寄存器,溫度寄存器存儲經A/D轉換后的12位溫度數據,后4位全補為O,以構成2字節的可讀寄存器。也可以通過設置配置寄存器的內容來獲得9、10、ll、12位不同的轉換結果。 配置寄存器為8位可讀/寫寄存器,數據格式如表2所列。通過配置寄存器設置器件的工作方式。Rl/R0為溫度傳感器轉換分辨率配置位,可以設定內部.A/D轉換器的分辨率及轉換時間:F1/F0為故障排隊次數配置位,當被測溫度連續超過n次(通過設置Fl/F0位),就會有報警輸出;POL為ALERT極性位,通過POL的設置,可以使控制器和ALERT輸出的極性一致:SD用來設置器件是否工作在關斷模式:在關斷模式下,向OS/ALERT位寫l可以開啟一次溫度轉換,在溫度比較模式下,該數據位可提供比較模式的狀態。 4 與PICl8F458單片機的接口 TMP101以高精度的測量結果和超小型貼片封裝廣泛應用于各種溫度測量系統、電源管理系統、溫度監控裝置以及恒溫控制裝置中,通過其串行數據接口線SDA和串行時鐘接口線SCL可方便地與微控制器相連接,構成一個溫度測量系統。圖4所示為PIC18F458單片機與TMP101的連接應用電路。 4.1 PICl8F458簡介 PICl8F458是美國Microchip公司生產的單片機。片內集成了A/D轉換器、EEPROM存儲器、比較輸出、捕捉輸入、PWM輸出、I2C和SPI接口、異步串行通信(USART)接口電路、CAN總線接口電路、Flash程序存儲器等,功能強大,設計電路簡單可靠。 4.2 TMP101初始化設置 要獲取TMP101中的溫度值數據,首先應通過PICl8F458單片機對TMP101內部的配置寄存器、上限溫度寄存器和下限溫度寄存器進行初始化設置。其過程為:PICl8F458單片機對TMP101寫地址,然后寫配置寄存器地址到指針寄存器,最后寫入數據到配置寄存器。PICl8F458單片機對TMP101配置寄存器寫操作的時序如圖5所示,上、下限溫度寄存器的寫時序和配置寄存器的寫時序同理。 4.3 TMP101讀數據 讀取TMP101內部溫度寄存器當前值的過程是:首先寫入要讀的TMP101,然后寫入要讀的TMP101內部溫度寄存器,向I2C總線上發送一個"重啟動信號",并將TMP101地址字節也重發一次,改變數據的傳輸方向,從而再進行讀取溫度寄存器的操作。單片機對 TMP101溫度寄存器讀操作的時序如圖6所示。 圖6可以解釋為:在串行數據線SDA和串行時鐘線SCL的時序配合下,將PICl8F458單片機的啟動使能位SEN置位建立啟動信號時序,緊接著單片機將要讀的TMP101地址字節寫入緩沖器,并通過單片機內部移位寄存器將字節移送至SDA引腳,8位地址字節的前7位是TMP101的受控地址,后l位為讀/寫控制位(為"O"時表示寫操作)。寫地址字節完成后,在第9個時鐘脈沖周期內,單片機釋放SDA,以便TMP101在地址匹配后,能夠反饋一個有效應答信號供單片機檢測接收。第9個時鐘脈沖之后,SCL引腳保持為低電平,SDA引腳電平保持不變,直到下一個數據字節被送入緩沖器為止。然后再寫入要讀的TMP101內部溫度寄存器地址字節,其過程與 TMP101地址字節的寫操作同理。通過向總線上發送"重啟動信號",改變數據的傳輸方向,此時尋址字節也要重發一次,但對TMP101的地址字節已變為讀操作,再讀取TMP101內部溫度寄存器的地址字節,最后讀出TMP101內部溫度寄存器中的溫度值數據字節,被測溫度值以符號擴展的16位數字量方式串行輸出。單片機每接收一個字節都要反饋一個應答信號,此時要注意單片機反饋的應答信號和TMP101反饋的應答信號是不同的,最后通過設置停止使能位,發送一個停止信號時序到總線上,表明此次通信終止。 5 結束語 介紹了基于I2C串行總線接口的數字智能溫度傳感器TMP101的性能、結構和工作原理,以及與PICl8F458單片機的實際應用,并成功地運用到"基于單片機的智能教室控制系統"中,該系統能顯示教室內實際檢測到的溫度值,并通過RS-485通訊數據線傳輸到上位機進行實時顯示,測量結果精度高,系統運行穩定。 |