新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 1-Wire總線與DS18B20應(yīng)用仿真

1-Wire總線與DS18B20應(yīng)用仿真

作者: 時間:2008-06-19 來源:今日電子 收藏

  1 DS18B20的基本特性

本文引用地址:http://butianyuan.cn/article/84508.htm

  ● 采用總線接口,可以方便實(shí)現(xiàn)多點(diǎn)測溫。
  ● 與主機(jī)連接方便,除5kΩ的總線上拉電阻外無須其他額外器件。
  ● 電源電壓范圍為3.0~5.5V,與3.3V和5V數(shù)字系統(tǒng)均可很好地兼容。
  ● 測量范圍為-55~+125℃,分辨率為9~12位可編程。
  ● 通過編程可設(shè)置溫度報警上下限,設(shè)置值掉電不丟失。
  ● 內(nèi)部集成了用于器件尋址的64bit光刻ROM編碼。

  2 DS18B20中的存儲器

  在DS18B20中共有三種存儲器,分別是ROM、RAM、EEPROM,每種存儲器都有其特定的功能,可查閱相關(guān)資料。

  3 總線ROM功能命令

  在DS18B20內(nèi)部光刻了一個長度為64bit的ROM編碼,這個編碼是器件的身份識別標(biāo)志。當(dāng)總線上掛接著多個DS18B20時可以通過ROM編碼對特定器件進(jìn)行操作。ROM功能命令是針對器件的ROM編碼進(jìn)行操作的命令,共有5個,長度均為8bit(1Byte)。

  ①讀ROM(33H)

  當(dāng)掛接在總線上的總線器件接收到此命令時,會在主機(jī)讀操作的配合下將自身的ROM編碼按由低位到高位的順序依次發(fā)送給主機(jī)??偩€上掛接有多個DS18B20時,此命令會使所有器件同時向主機(jī)傳送自身的ROM編碼,這將導(dǎo)致數(shù)據(jù)的沖突。

  ②匹配ROM(55H)

  主機(jī)在發(fā)送完此命令后,必須緊接著發(fā)送一個64bit的ROM編碼,與此ROM編碼匹配的從器件會響應(yīng)主機(jī)的后續(xù)命令,而其他從器件則處于等待狀態(tài)。該命令主要用于選擇總線上的特定器件進(jìn)行訪問。

  ③跳過ROM(CCH)

  發(fā)送此命令后,主機(jī)不必提供ROM編碼即可對從器件進(jìn)行訪問。與讀ROM命令類似,該命令同樣只適用于單節(jié)點(diǎn)的1-Wire總線系統(tǒng),當(dāng)總線上有多個器件掛接時會引起數(shù)據(jù)的沖突。

 ?、懿檎襌OM(F0H)

  當(dāng)主機(jī)不知道總線上器件的ROM編碼時,可以使用此命令并配合特定的算法查找出總線上從器件的數(shù)量和各個從器件的ROM編碼。

  ⑤報警查找(ECH)

  此命令用于查找總線上滿足報警條件的DS18B20,通過報警查找命令并配合特定的查找算法,可以查找出總線上滿足報警條件的器件數(shù)目和各個器件的ROM編碼。

  4 DS18B20器件功能命令

  與1-Wire總線相關(guān)的命令分為ROM功能命令和器件功能命令兩種,ROM功能命令具有通用性,不僅適用于DS18B20也適用于其他具有1-Wire總線接口的器件,主要用于器件的識別與尋址;器件功能命令具有專用性,它們與器件的具體功能緊密相關(guān)。下面是DS18B20的器件功能命令。

 ?、賳訙囟绒D(zhuǎn)換(44H)

  該命令發(fā)送完成后,主機(jī)可以通過調(diào)用Readbit()函數(shù)判斷溫度轉(zhuǎn)換是否完成,若Readbit()的返回值為0則表示轉(zhuǎn)換正在進(jìn)行,若Readbit()的返回值為1則表示轉(zhuǎn)換完成。

 ?、谧xRAM(BEH)

  該命令發(fā)送完成后,主機(jī)可以通過調(diào)用Readbit()函數(shù)將DS18B20中RAM的內(nèi)容從低位到高位依次讀出。

 ?、蹖慠AM(4EH)

  該命令發(fā)出后,主機(jī)隨后寫入1-Wire總線的3字節(jié)將依次被存儲到DS18B20的報警上限、報警下限和配置寄存器中。

 ?、軓?fù)制RAM(48H)

  該命令會將DS18B20的報警上限、報警下限和配置寄存器中的內(nèi)容復(fù)制到EEPROM中。該命令發(fā)出后,主機(jī)可以通過調(diào)用Readbit()函數(shù)判斷復(fù)制操作是否完成,若Readbit()的返回值為1,則表示復(fù)制操作完成。

  ⑤回讀EEPROM(B8H)

  該命令會將存儲在EEPROM中的報警上限、報警下限和配置寄器的內(nèi)容回讀到RAM中,主機(jī)可以通過調(diào)用Readbit()函數(shù)判斷回讀操作是否完成,若Readbit()的返回值為1則表示回讀操作完成。DS18B20在上電時會自動進(jìn)行一次回讀操作。

圖1 主機(jī)與DS18B20的通信流程圖

  5 主機(jī)與DS18B20的通信流程

  如圖1所示,主機(jī)通過1-Wire總線接口對DS18B20的每次訪問都以復(fù)位信號和ROM功能命令開始,訪問的結(jié)束位置是不確定的,這與具體的功能命令相關(guān)。圖中圓角矩形中的操作與主機(jī)發(fā)送的功能命令相對應(yīng),隨著功能命令的不同圓角矩形中的操作有時可以被省略。對總線上的DS18B20來說,復(fù)位信號意味著又一次通信的開始,器件對此的響應(yīng)是拉低總線以告知主機(jī)自身的存在,然后準(zhǔn)備接收ROM功能命令。

  多點(diǎn)測溫系統(tǒng)實(shí)例

  DS18B20是一種比較廉價的溫度,其封封裝形式如圖2所示。在Proteus中包含有DS18B20的模型,這使得相關(guān)程序的調(diào)試變得簡單方便。下面以一個實(shí)例介紹用Proteus多點(diǎn)測溫系統(tǒng)的步驟。

圖2 DS18B20封裝形式

  ① 繪制仿真原理圖

  如圖3所示,在本實(shí)例中以單片機(jī)AT89C52和8個DS18B20構(gòu)成了一個多點(diǎn)測溫系統(tǒng)。為了有足夠的空間存儲各個DS18B20的ROM編碼和溫度值,在實(shí)例中用一片8KB的SRAM芯片6116對單片機(jī)的RAM進(jìn)行了擴(kuò)展。

  ②設(shè)置DS18B20仿真模型的屬性



關(guān)鍵詞: 仿真 1-Wire 傳感器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉