怎么為數(shù)字溫度傳感器選擇系統(tǒng)接口
有助于獲得精確的熱管理加上免校準特性,將確保數(shù)字溫度傳感器繼續(xù)受到人們的歡迎。為滿足需多個主器件共存的高可靠性和系統(tǒng)冗余要求,以及對于要求輕松添加新溫度傳感器的應用而言,I2C總線或SMBus將繼續(xù)保持其作為溫度傳感器系統(tǒng)接口主要選擇的地位。
圖1:數(shù)字溫度傳感器簡化框圖。 |
熱敏電阻、熱電偶、模擬硅溫度傳感器和鎳/鉑電阻式溫度檢測器(RTD),需要進行校準以達到所需的溫度精度。作為混合信號器件的數(shù)字溫度傳感器則不需要進行校準,它們具有集成數(shù)字邏輯,工作溫度范圍為-55℃到50℃,采用絕對溫度比例(PTAT)電路,通過檢測二極管的基極-發(fā)射極電壓(VBE)的變化來測量本地/遠程溫度。它具有簡單的集成硬件來保存溫度值并對溫度設定點、器件工作模式、睡眠模式以及快/慢轉換速率進行編程設定。數(shù)據(jù)通過IC間總線(I2C總線)、系統(tǒng)管理總線(SMBus)或串行外圍接口(SPI)來通信。實際上,每個器件在生產(chǎn)時均會進行調整,溫度檢測精度達到±0.5℃以內或者更高,性價比和可靠性均很高。這些優(yōu)點使得數(shù)字溫度傳感器在幾乎任何可以想象到的應用中都受到歡迎,包括PC、通信設備、手持設備和工業(yè)控制設備等。
具體來說,數(shù)字溫度傳感器的主要構成包括一個雙電流源、一個Δ-Σ A/D轉換器、數(shù)字邏輯和一個通向數(shù)字器件(如與一個微處理器或微控制器連接)的串行接口(如I2C總線、SMBus或SPI)。數(shù)字溫度傳感器有兩種:本地或遠程溫度傳感器,它們均采用某種方法強制兩個成比例的電流通過一個連接成二極管形式的NPN或PNP晶體管,均用于測量所導致的VBE變化,使用Δ-ΣA/D轉換器對電壓采樣并將數(shù)值轉換成數(shù)字格式。強制電流一般采用約10:1的比例。通過強制施加比例電流和測量兩個VBE的差值,可消除二極管上IS這一與工藝相關參數(shù)的一階效應。
圖2:SPI 典型讀/寫周期。(點擊放大該圖) |
每個溫度傳感器在生產(chǎn)過程中均會進行調整,以便與要使用的二極管的理想?yún)?shù)匹配。遠程二極管的特性取自2N3904/6。由于本地溫度傳感器在硅襯底上只是一個簡單的NPN或PNP結構,遠程溫度傳感器幾乎總是集成一個本地溫度傳感器。因此,遠程傳感器的作用幾乎總是像兩個傳感器一樣。本地溫度傳感器在同一封裝集成了一個熱二極管。對于本地傳感器,根據(jù)封裝和位于IC襯底上的本地二極管,熱時間常數(shù)(即達到最終溫度的63.2%所需的時間)為幾分鐘??偩€負載過重或轉換過快會造成器件自加熱并影響溫度精度。
溫度數(shù)據(jù)變?yōu)榭捎盟璧臅r間稱為轉換速率。該速率由器件內部振蕩器和A/D分辨率決定,一般低于100Hz或長于10ms。轉換速率越快,溫度數(shù)據(jù)可檢索的速度就越快,同時溫度傳感器消耗的功率也就越大。由于存在自加熱效應,轉換速率通常較低。圖1顯示了一個遠程溫度傳感器和/或本地溫度傳感器的簡化框圖。
I2C總線或SMBus溫度傳感器的優(yōu)點
最流行的數(shù)字溫度傳感器是那些帶有串行總線接口的傳感器。溫度傳感器總線的選擇很大程度上取決于所選微處理器或控制器上有哪些可用的接口??刂破鞯倪x擇取決于工程師對其擁有的經(jīng)驗多少。對于需要經(jīng)常進行數(shù)據(jù)流傳輸?shù)南到y(tǒng)數(shù)據(jù),SPI是首選,因為它擁有較快的時鐘速率,速率可從幾兆赫茲到幾十兆赫茲。然而,對于系統(tǒng)管理活動,如讀取溫度傳感器的讀數(shù)和查詢多個從器件的狀態(tài),或者需要多個主器件共存于同一系統(tǒng)總線上(系統(tǒng)冗余常會要求這一點),或者面向低功耗應用,這時I2C 或 SMBus將是首選接口。下面幾部分將介紹每種串行總線及其優(yōu)缺點。
SPI 是一種四線制串行總線接口,為主/從結構,四條導線分別為串行時鐘(SCLK)、主出從入(MOSI)、主入從出(MISO)和從選(SS)信號。主器件為時鐘提供者,可發(fā)起讀從器件或寫從器件操作。這時主器件將與一個從器件進行對話。當總線上存在多個從器件時,要發(fā)起一次傳輸,主器件將把該從器件選擇線拉低,然后分別通過 MOSI 和 MISO 線啟動數(shù)據(jù)發(fā)送或接收。
SPI 時鐘速度很快,范圍可從幾兆赫茲到幾十兆赫茲,且沒有系統(tǒng)開銷。SPI 在系統(tǒng)管理方面的缺點是缺乏流控機制,無論主器件還是從器件均不對消息進行確認,主器件無法知道從器件是否繁忙。因此,必須設計聰明的軟件機制來處理確認問題。同時,SPI 也沒有多主器件協(xié)議,必須采用很復雜的軟件和外部邏輯來實現(xiàn)多主器件架構。每個從器件需要一個單獨的從選擇信號??傂盘枖?shù)最終為 n+3 個,其中 n 是總線上從器件的數(shù)量。因此,導線的數(shù)量將隨增加的從器件的數(shù)量按比例增長。同樣,在 SPI 總線上添加新的從器件也不方便。對于額外添加的每個從器件,都需要一條新的從器件選擇線或解碼邏輯。圖2 顯示了典型的 SPI 讀/寫周期。在地址或命令字節(jié)后面跟有一個讀/寫位。數(shù)據(jù)通過 MOSI 信號寫入從器件,通過 MISO 信號自從器件中讀出。圖3顯示了 I2C總線/SMBus以及SPI的系統(tǒng)框圖。
2. I2C總線
I2C 是一種二線制串行總線接口,工作在主/從模式。二線通信信號分別為開漏 SCL 和 SDA 串行時鐘和串行數(shù)據(jù)。主器件為時鐘源。數(shù)據(jù)傳輸是雙向的,其方向取決于讀/寫位的狀態(tài)。每個從器件擁有一個唯一的 7 或 10 位地址。主器件通過一個起始位發(fā)起一次傳輸,通過一個停止位終止一次傳輸。起始位之后為唯一的從器件地址,再后為讀/寫位。
I2C總線速度為從0Hz到3.4MHz。它沒有SPI 那樣快,但對于系統(tǒng)管理器件如溫度傳感器來說則非常理想。I2C 存在系統(tǒng)開銷,這些開銷包括起始位/停止位、確認位和從地址位,但它因此擁有流控機制。主器件在完成接收來自從器件的數(shù)據(jù)時總是發(fā)送一個確認位,除非其準備終止傳輸。從器件在其接收到來自主器件的命令或數(shù)據(jù)時總是發(fā)送一個確認位。當從器件未準備好時,它可以保持或延展時鐘,直到其再次準備好響應。
圖3:(a)I2C總線/SMBus系統(tǒng)接口;(b)SPI 系統(tǒng)接口。 |
圖4:I2C總線/SMBus的典型讀/寫操作。 |
I2C允許多個主器件工作在同一總線上。多個主器件可以輕松同步其時鐘,因此所有主器件均采用同一時鐘進行傳輸。多個主器件可以通過數(shù)據(jù)仲裁檢測哪一個主器件正在使用總線,從而避免數(shù)據(jù)破壞。由于 I2C總線只有兩條導線,因此新從器件只需接入總線即可,而無需附加邏輯。圖4 顯示了典型的 I2C總線讀/寫操作。
3. SMBus
SMBus是一種二線制串行總線,1996年第一版規(guī)范開始商用。它大部分基于I2C總線規(guī)范。和 I2C一樣,SMBus不需增加額外引腳,創(chuàng)建該總線主要是為了增加新的功能特性,但只工作在100kHz且專門面向智能電池管理應用。它工作在主/從模式:主器件提供時鐘,在其發(fā)起一次傳輸時提供一個起始位,在其終止一次傳輸時提供一個停止位;從器件擁有一個唯一的7或10位從器件地址。
SMBus與I2C總線之間在時序特性上存在一些差別。首先,SMBus需要一定數(shù)據(jù)保持時間,而 I2C總線則是從內部延長數(shù)據(jù)保持時間。SMBus具有超時功能,因此當SCL太低而超過35 ms時,從器件將復位正在進行的通信。相反,I2C采用硬件復位。SMBus具有一種警報響應地址(ARA),因此當從器件產(chǎn)生一個中斷時,它不會馬上清除中斷,而是一直保持到其收到一個由主器件發(fā)送的含有其地址的ARA為止。SMBus只工作在從10kHz到最高100kHz。最低工作頻率10kHz是由SMBus超時功能決定的。