<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DS18B20工作過程及時序

          DS18B20工作過程及時序

          作者: 時間:2011-02-27 來源:網(wǎng)絡 收藏

          DS18B20工作過程及時序
          DS18B20內(nèi)部的低溫度系數(shù)振蕩器是一個振蕩頻率隨溫度變化很小的振蕩器,為計數(shù)器1提供一頻率穩(wěn)定的計數(shù)脈沖。
          高溫度系數(shù)振蕩器是一個振蕩頻率對溫度很敏感的振蕩器,為計數(shù)器2提供一個頻率隨溫度變化的計數(shù)脈沖。
          初始時,溫度寄存器被預置成-55℃,每當計數(shù)器1從預置數(shù)開始減計數(shù)到0時,溫度寄存器中寄存的溫度值就增加1℃,這個過程重復進行,直到計數(shù)器2計數(shù)到0時便停止。
          初始時,計數(shù)器1預置的是與-55℃相對應的一個預置值。以后計數(shù)器1每一個循環(huán)的預置數(shù)都由斜率累加器提供。為了補償振蕩器溫度特性的非線性性,斜率累加器提供的預置數(shù)也隨溫度相應變化。計數(shù)器1的預置數(shù)也就是在給定溫度處使溫度寄存器寄存值增加1℃計數(shù)器所需要的計數(shù)個數(shù)。
          DS18B20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計數(shù)器2停止計數(shù)后,比較器將計數(shù)器1中的計數(shù)剩余值轉換為溫度值后與0.25℃進行比較,若低于0.25℃,溫度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃時,溫度寄存器的最低位就進位然后置0。這樣,經(jīng)過比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5℃,四舍五入最大量化誤差為±1/2LSB,即0.25℃。
          溫度寄存器中的溫度值以9位數(shù)據(jù)格式表示,最高位為符號位,其余8位以二進制補碼形式表示溫度值。測溫結束時,這9位數(shù)據(jù)轉存到暫存存儲器的前兩個字節(jié)中,符號位占用第一字節(jié),8位溫度數(shù)據(jù)占據(jù)第二字節(jié)。
          DS18B20測量溫度時使用特有的溫度測量技術。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號;同樣的,高溫度系數(shù)振蕩器則將被測溫度轉換成頻率信號。當計數(shù)門打開時,DS18B20進行計數(shù),計數(shù)門開通時間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對頻率的非線性度加以補償。測量結果存入溫度寄存器中。一般情況下的溫度值應該為9位,但因符號位擴展成高8位,所以最后以16位補碼形式讀出。
          DS18B20工作過程一般遵循以下協(xié)議:初始化——ROM操作命令——存儲器操作命令——處理數(shù)據(jù)
          ① 初始化
          單總線上的所有處理均從初始化序列開始。初始化序列包括總線主機發(fā)出一復位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820 在總線上且已準備好操作。
          ② ROM操作命令
          一旦總線主機檢測到從屬器件的存在,它便可以發(fā)出器件ROM操作命令之一。所有ROM操作命令均為8位長。這些命令列表如下:
          Read ROM(讀ROM)[33h]
          此命令允許總線主機讀DS18B20的8位產(chǎn)品系列編碼,唯一的48位序列號,以及8位的CRC。此命令只能在總線上僅有一個DS18B20的情況下可以使用。如果總線上存在多于一個的從屬器件,那么當所有從片企圖同時發(fā)送時將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開路會產(chǎn)生線與的結果)。
          Match ROM( 符合ROM)[55h]
          此命令后繼以64位的ROM數(shù)據(jù)序列,允許總線主機對多點總線上特定的DS18B20尋址。只有與64位ROM序列嚴格相符的DS18B20才能對后繼的存貯器操作命令作出響應。所有與64位ROM序列不符的從片將等待復位脈沖。此命令在總線上有單個或多個器件的情況下均可使用。
          Skip ROM( 跳過ROM )[CCh]
          在單點總線系統(tǒng)中,此命令通過允許總線主機不提供64位ROM編碼而訪問存儲器操作來節(jié)省時間。如果在總線上存在多于一個的從屬器件而且在Skip ROM命令之后發(fā)出讀命令,那么由于多個從片同時發(fā)送數(shù)據(jù),會在總線上發(fā)生數(shù)據(jù)沖突(漏極開路下拉會產(chǎn)生線與的效果)。
          Search ROM( 搜索ROM)[F0h]
          當系統(tǒng)開始工作時,總線主機可能不知道單線總線上的器件個數(shù)或者不知道其64位ROM編碼。搜索ROM命令允許總線控制器用排除法識別總線上的所有從機的64位編碼。
          Alarm Search(告警搜索)[ECh]
          此命令的流程與搜索ROM命令相同。但是,僅在最近一次溫度測量出現(xiàn)告警的情況下,DS18B20才對此命令作出響應。告警的條件定義為溫度高于TH 或低于TL。只要DS18B20一上電,告警條件就保持在設置狀態(tài),直到另一次溫度測量顯示出非告警值或者改變TH或TL的設置,使得測量值再一次位于允許的范圍之內(nèi)。貯存在EEPROM內(nèi)的觸發(fā)器值用于告警。
          ③ 存儲器操作命令
          Write Scratchpad(寫暫存存儲器)[4Eh]
          這個命令向DS18B20的暫存器中寫入數(shù)據(jù),開始位置在地址2。接下來寫入的兩個字節(jié)將被存到暫存器中的地址位置2和3??梢栽谌魏螘r刻發(fā)出復位命令來中止寫入。
          Read Scratchpad(讀暫存存儲器)[BEh]
          這個命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開始,一直進行下去,直到第9(字節(jié)8,CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時間發(fā)出復位命令來中止讀取。
          Copy Scratchpad(復制暫存存儲器)[48h]
          這條命令把暫存器的內(nèi)容拷貝到DS18B20的E2存儲器里,即把溫度報警觸發(fā)字節(jié)存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲器,DS18B20就會輸出一個“0”,如果拷貝結束的話,DS18B20 則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動強上拉并最少保持10ms。
          Convert T(溫度變換)[44h]
          這條命令啟動一次溫度轉換而無需其他數(shù)據(jù)。溫度轉換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于做時間轉換的話,DS18B20將在總線上輸出“0”,若溫度轉換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動強上拉,并保持500ms。
          Recall E2(重新調(diào)整E2)[B8h]
          這條命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至暫存存儲器。這種重新調(diào)出的操作在對DS18B20上電時也自動發(fā)生,因此只要器件一上電,暫存存儲器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對于所發(fā)出的第一個讀數(shù)據(jù)時間片,器件會輸出溫度轉換忙的標識:“0”=忙,“1”=準備就緒。
          Read Power Supply(讀電源)[B4h]
          對于在此命令發(fā)送至DS18B20之后所發(fā)出的第一讀數(shù)據(jù)的時間片,器件都會給出其電源方式的信號:“0”=寄生電源供電,“1”=外部電源供電。
          ④ 處理數(shù)據(jù)
          DS18B20的高速暫存存儲器由9個字節(jié)組成,其分配如圖3所示。當溫度轉換命令發(fā)布后,經(jīng)轉換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。

          3 高速暫存存儲器分配圖

          溫度/0C

          二進制表示

          十六進制表示

          符號位(5位)

          數(shù)據(jù)位(11位)

          +125

          0 0 0 0 0

          1

          1

          1

          1

          1

          0

          1

          0

          0

          0

          0

          07D0H

          +25.0625

          0 0 0 0 0

          0

          0

          1

          1

          0

          0

          1

          0

          0

          0

          1

          0191H

          +10.125

          0 0 0 0 0

          0

          0

          0

          1

          0

          1

          0

          0

          0

          1

          0

          00A2H

          +0.5

          0 0 0 0 0

          0

          0

          0

          0

          0

          0

          0

          1

          0

          0

          0

          0008H

          0

          0 0 0 0 0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0000H

          -0.5

          1 1 1 1 1

          1

          1

          1

          1

          1

          1

          1

          1

          0

          0

          0

          FFF8H

          -10.125

          1 1 1 1 1

          1

          1

          1

          0

          1

          0

          1

          1

          1

          1

          0

          FF5EH

          -25.625

          1 1 1 1 1

          1

          1

          0

          0

          1

          1

          0

          1

          1

          1

          1

          FE6FH

          -55

          1 1 1 1 1

          1

          0

          0

          1

          0

          0

          1

          0

          0

          0

          0

          FC90H

          DS18B20溫度數(shù)據(jù)表


          上表是DS18B20溫度采集轉化后得到的12位數(shù)據(jù),存儲在DS18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于或等于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。

          溫度轉換計算方法舉例:
          例如當DS18B20采集到+125℃的實際溫度后,輸出為07D0H,則:

          實際溫度=07D0H╳0.0625=2000╳0.0625=1250C。
          例如當DS18B20采集到-55℃的實際溫度后,輸出為FC90H,則應先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作為計算),則:
          實際溫度=370H╳0.0625=880╳0.0625=550C。

          51單片機相關文章:51單片機教程


          塵埃粒子計數(shù)器相關文章:塵埃粒子計數(shù)器原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();