基于單總線的數(shù)字溫度傳感器
DSl8B20是Dallas生產(chǎn)的支持單總線接口的溫度感器。單總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò)。與其他溫度傳感器相比,DSl8B20具有以下特性:
(1)具有3引腳TO-92小體積封裝形式。管腳排列:DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。在其內(nèi)部使用了在板(ON-BOARD)專利技術(shù),全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。
(2)量范圍為-55~+125℃,可編程為9~12位A/D轉(zhuǎn)換精度。測(cè)溫分辨率可達(dá)0.0625℃。被測(cè)溫度用符號(hào)摭展的16位數(shù)字量方式串行輸出。
(3)其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。
(4)獨(dú)特的單總線接口方式:DSl8B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DSl8B20的雙向通訊。
(5)DS18B20支持多點(diǎn)組網(wǎng)功能。多個(gè)DSl8B20可以并聯(lián)在唯一的3線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫,可節(jié)省大量的引線和邏輯電路。
1 DS18B20的主要內(nèi)部結(jié)構(gòu)
DSl8B20內(nèi)部結(jié)構(gòu)主要由4部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。每一個(gè)DSl8B20包括一個(gè)唯一的64位長(zhǎng)的序號(hào)。該序號(hào)值存放在DSl8B20內(nèi)部的ROM(只讀存貯器)中。開始8位是產(chǎn)品類型編碼(DSl8B20編碼均為28H),接著的48位是每個(gè)器件唯一的序號(hào),最后8位是前面56位的CRC循環(huán)冗余校驗(yàn)碼。ROM的作用是使每一個(gè)DSl8B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DSl8820的目的。
DSl8B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例,如圖1所示。用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。負(fù)溫度S=I,正溫度S=O。
2 DS18B20的工作原理
2.1 工作序列
根據(jù)DSl8B20的通訊協(xié)議,主機(jī)控制DSl8B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟:
(1)每一次讀寫之前都必須要對(duì)DSl8B20進(jìn)行復(fù)位;
(2)復(fù)位成功后發(fā)送一條ROM指令;
(3)最后發(fā)送RAM指令,這樣才能對(duì)DSl8B20進(jìn)行預(yù)定的操作。
復(fù)位要求主CPU將數(shù)據(jù)線下拉500μs,然后釋放,DSl8B20收到信號(hào)后等待16~60μs左右,后發(fā)出60~240μs的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。
2.2 ROM操作命令
當(dāng)主機(jī)收到DSl8B20的響應(yīng)信號(hào)后,便可以發(fā)出ROM操作命令之一,這些命令如下:
指令代碼 代碼
Read ROM(讀ROM) [33H]
Match ROM(匹配ROM) [55H]
SkipROM(跳過ROM) [CCH]
SearchROM(搜索ROM) [FOH]
Alarmsearch(告警搜索) [ECH]
3 DS18B20的多點(diǎn)測(cè)溫
3.1 多點(diǎn)測(cè)溫的原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列號(hào),在出廠前已寫入片內(nèi)ROM中。主機(jī)在進(jìn)入操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號(hào)讀出:
當(dāng)主機(jī)需要對(duì)眾多在線18820的某一個(gè)進(jìn)行操作時(shí),首先要發(fā)出匹配ROM命令(55H)。接著主機(jī)提供64位序列(包括該18B20的48位序列號(hào)),之后的操作就是針對(duì)該DSl8820的。而跳過ROM命令,之后的操作是對(duì)所有D518820的。
程序可以先跳過ROM.啟動(dòng)所有DSl8B20進(jìn)行溫度變換,之后通過匹配ROM,再逐一地讀回每個(gè)DSl8B20的溫度數(shù)據(jù)。
在DSl8B20組成的多點(diǎn)測(cè)溫系統(tǒng)中,主機(jī)在發(fā)出跳ROM命令之后,再發(fā)出統(tǒng)一的溫度轉(zhuǎn)換啟動(dòng)碼44H,就可以實(shí)現(xiàn)所有DSl8B20的統(tǒng)一轉(zhuǎn)換。再經(jīng)過1s后就可以用很少的時(shí)間去逐一讀取,這種方式使其時(shí)間值往往小于傳統(tǒng)方式(由于采取公用的放大電路AD轉(zhuǎn)換器,只能逐一轉(zhuǎn)換)。顯然通道數(shù)越多這種省時(shí)效應(yīng)就越明顯。
3.2 多點(diǎn)測(cè)試系統(tǒng)的組建
實(shí)驗(yàn)采用AT89C51為主機(jī),3個(gè)DSl8B20組成一個(gè)多點(diǎn)測(cè)試系統(tǒng),如圖2所示。硬件接口非常簡(jiǎn)單。DSl8B20的3個(gè)管腳DQ、VDD、GND分別接到主機(jī)的數(shù)據(jù)腳P1.0口、外接電源VCC以及GND上,非常節(jié)約資源,僅僅用到了主機(jī)的一條口線。 風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理
評(píng)論