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

          新聞中心

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

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

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

            1 DS18B20的基本特性

          本文引用地址:http://www.ex-cimer.com/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ù)的沖突。

            ④查找ROM(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)換完成。

            ②讀RAM(BEH)

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

            ③寫RAM(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)閉
          看屁屁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); })();