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