• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 1-Wire總線與DS18B20應用仿真

    1-Wire總線與DS18B20應用仿真

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

      1 DS18B20的基本特性

    本文引用地址:http://www.czjhyjcfj.com/article/84508.htm

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

      2 DS18B20中的存儲器

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

      3 總線ROM功能命令

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

      ①讀ROM(33H)

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

      ②匹配ROM(55H)

      主機在發送完此命令后,必須緊接著發送一個64bit的ROM編碼,與此ROM編碼匹配的從器件會響應主機的后續命令,而其他從器件則處于等待狀態。該命令主要用于選擇總線上的特定器件進行訪問。

      ③跳過ROM(CCH)

      發送此命令后,主機不必提供ROM編碼即可對從器件進行訪問。與讀ROM命令類似,該命令同樣只適用于單節點的1-Wire總線系統,當總線上有多個器件掛接時會引起數據的沖突。

      ④查找ROM(F0H)

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

      ⑤報警查找(ECH)

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

      4 DS18B20器件功能命令

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

      ①啟動溫度轉換(44H)

      該命令發送完成后,主機可以通過調用Readbit()函數判斷溫度轉換是否完成,若Readbit()的返回值為0則表示轉換正在進行,若Readbit()的返回值為1則表示轉換完成。

      ②讀RAM(BEH)

      該命令發送完成后,主機可以通過調用Readbit()函數將DS18B20中RAM的內容從低位到高位依次讀出。

      ③寫RAM(4EH)

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

      ④復制RAM(48H)

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

      ⑤回讀EEPROM(B8H)

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

    圖1 主機與DS18B20的通信流程圖

      5 主機與DS18B20的通信流程

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

      多點測溫系統實例

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

    圖2 DS18B20封裝形式

      ① 繪制仿真原理圖

      如圖3所示,在本實例中以單片機AT89C52和8個DS18B20構成了一個多點測溫系統。為了有足夠的空間存儲各個DS18B20的ROM編碼和溫度值,在實例中用一片8KB的SRAM芯片6116對單片機的RAM進行了擴展。

      ②設置DS18B20仿真模型的屬性



    關鍵詞: 仿真 1-Wire 傳感器

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 汤阴县| 左云县| 灯塔市| 固镇县| 远安县| 晋江市| 安多县| 临泽县| 庆阳市| 繁峙县| 濮阳县| 德化县| 灵璧县| 陆丰市| 扎兰屯市| 修水县| 准格尔旗| 萝北县| 南阳市| 东辽县| 渝北区| 武川县| 普宁市| 泽库县| 金乡县| 舟曲县| 庆元县| 宁南县| 凯里市| 黎川县| 黄山市| 乐山市| 扶绥县| 长治县| 阜新| 鄂托克前旗| 南华县| 永修县| 济源市| 来宾市| 赤城县|