關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > DSl8820 ROM編碼的一種搜索算法

DSl8820 ROM編碼的一種搜索算法

作者: 時(shí)間:2009-09-21 來源:網(wǎng)絡(luò) 收藏

1.2
每片含有一個(gè)唯一的64位。頭8位是產(chǎn)品系列碼,接著的 48位是產(chǎn)品序列號(hào),最后8位是CRC(循環(huán)冗余校驗(yàn))碼。主機(jī)可以對總線上多片DS18820唯一尋址,因此多片DS18820能夠連在同一條數(shù)據(jù)線上而不會(huì)造成混亂,這為溫度的多點(diǎn)測量帶來了極大的方便。64位的注冊碼如下:

本文引用地址:http://2s4d.com/article/163566.htm

1.3 DS18820 ROM命令
當(dāng)單線總線上掛有多個(gè)DS18B20時(shí),系統(tǒng)對總線上器件的數(shù)量和每個(gè)器件的ROM的識(shí)別與是通過DS18820 ROM命令與配合來實(shí)現(xiàn)的。下面具體介紹ROM搜索命令的工作過程。對64位ROM識(shí)別從最低位開始,ROM編碼的每一位搜索過程可總結(jié)為 “兩讀一寫”:讀一位,讀該位補(bǔ)碼;寫一位。總線主機(jī)在ROM編碼每一位上完成這三步就可以獲得一個(gè)器件的ROM編碼。
(1)兩 讀
總線主機(jī)發(fā)布ROM搜索命令后執(zhí)行一次讀,總線上所有器件就把它們各自ROM編碼的第一位放到總線來作出響應(yīng)。這次讀獲得的數(shù)據(jù)是所有器件放在總線上數(shù)據(jù)的“與”。再執(zhí)行一次讀,因?yàn)镽OM搜索命令正在執(zhí)行所以總線上所有器件把各自ROM編碼的第一位的補(bǔ)碼放在總線上,第二次讀獲得的數(shù)據(jù)也是所有器件放在總線上數(shù)據(jù)的“與”。對第一位的“兩讀”就此完成。之后主機(jī)再次進(jìn)行的“兩讀”則是針對ROM編碼的第二位,以此類推。從“兩讀”獲得的數(shù)據(jù)有以下解釋,如表1所列。

(2)- 寫
對ROM編碼的某一位“兩讀”之后,對該位進(jìn)行“-寫”操作?!?寫”操作寫的數(shù)據(jù)要根據(jù)“兩讀”獲得的數(shù)據(jù)來確定。如果“兩讀”數(shù)據(jù)為00,則表示總線上器件在該位上數(shù)據(jù)發(fā)生沖突,“-寫”寫的數(shù)據(jù)此種情況下具有“排除”的作用,如果器件ROM編碼在該位上的數(shù)據(jù)與“-寫”寫的數(shù)據(jù)相同,則繼續(xù)保持與總線的聯(lián)系。如果不相同則此器件從總線上“排除”,不再響應(yīng)主機(jī)發(fā)布的命令,直到主機(jī)進(jìn)行下一次復(fù)位。如果“兩讀”數(shù)據(jù)為01,則表示總線上所有器件在該位上均位0,為保持器件與總線的聯(lián)系,“-寫”操作主機(jī)應(yīng)寫0。同理,如“兩讀”數(shù)據(jù)為10,主機(jī)則應(yīng)寫1。

2 DS18820 ROM編碼的搜索
在一條“單線總線”上掛有多片。DS18820的情況下,對ROM編碼的搜索與識(shí)別主要是通過“兩讀”數(shù)據(jù)為00時(shí)“-寫”操作的“排除”作用來實(shí)現(xiàn)的。多次“排除”作用后,就可以使總線上只剩下唯一的一個(gè)器件仍與總線保持聯(lián)系。如何“排除”,這需要的配合。下面具體介紹DS18820 ROM編碼的搜索算法。



關(guān)鍵詞: 算法 搜索 編碼 ROM DSl8820

評論


相關(guān)推薦

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

關(guān)閉