1-Wire總線(xiàn)與DS18B20應用仿真
1 DS18B20的基本特性
本文引用地址:http://dyxdggzs.com/article/84508.htm ● 采用1-Wire總線(xiàn)接口,可以方便實(shí)現多點(diǎn)測溫。
● 與主機連接方便,除5kΩ的總線(xiàn)上拉電阻外無(wú)須其他額外器件。
● 電源電壓范圍為3.0~5.5V,與3.3V和5V數字系統均可很好地兼容。
● 測量范圍為-55~+125℃,分辨率為9~12位可編程。
● 通過(guò)編程可設置溫度報警上下限,設置值掉電不丟失。
● 內部集成了用于器件尋址的64bit光刻ROM編碼。
2 DS18B20中的存儲器
在DS18B20中共有三種存儲器,分別是ROM、RAM、EEPROM,每種存儲器都有其特定的功能,可查閱相關(guān)資料。
3 1-Wire總線(xiàn)ROM功能命令
在DS18B20內部光刻了一個(gè)長(cháng)度為64bit的ROM編碼,這個(gè)編碼是器件的身份識別標志。當總線(xiàn)上掛接著(zhù)多個(gè)DS18B20時(shí)可以通過(guò)ROM編碼對特定器件進(jìn)行操作。ROM功能命令是針對器件的ROM編碼進(jìn)行操作的命令,共有5個(gè),長(cháng)度均為8bit(1Byte)。
①讀ROM(33H)
當掛接在總線(xiàn)上的1-Wire總線(xiàn)器件接收到此命令時(shí),會(huì )在主機讀操作的配合下將自身的ROM編碼按由低位到高位的順序依次發(fā)送給主機??偩€(xiàn)上掛接有多個(gè)DS18B20時(shí),此命令會(huì )使所有器件同時(shí)向主機傳送自身的ROM編碼,這將導致數據的沖突。
②匹配ROM(55H)
主機在發(fā)送完此命令后,必須緊接著(zhù)發(fā)送一個(gè)64bit的ROM編碼,與此ROM編碼匹配的從器件會(huì )響應主機的后續命令,而其他從器件則處于等待狀態(tài)。該命令主要用于選擇總線(xiàn)上的特定器件進(jìn)行訪(fǎng)問(wèn)。
③跳過(guò)ROM(CCH)
發(fā)送此命令后,主機不必提供ROM編碼即可對從器件進(jìn)行訪(fǎng)問(wèn)。與讀ROM命令類(lèi)似,該命令同樣只適用于單節點(diǎn)的1-Wire總線(xiàn)系統,當總線(xiàn)上有多個(gè)器件掛接時(shí)會(huì )引起數據的沖突。
?、懿檎襌OM(F0H)
當主機不知道總線(xiàn)上器件的ROM編碼時(shí),可以使用此命令并配合特定的算法查找出總線(xiàn)上從器件的數量和各個(gè)從器件的ROM編碼。
?、輬缶檎?ECH)
此命令用于查找總線(xiàn)上滿(mǎn)足報警條件的DS18B20,通過(guò)報警查找命令并配合特定的查找算法,可以查找出總線(xiàn)上滿(mǎn)足報警條件的器件數目和各個(gè)器件的ROM編碼。
4 DS18B20器件功能命令
與1-Wire總線(xiàn)相關(guān)的命令分為ROM功能命令和器件功能命令兩種,ROM功能命令具有通用性,不僅適用于DS18B20也適用于其他具有1-Wire總線(xiàn)接口的器件,主要用于器件的識別與尋址;器件功能命令具有專(zhuān)用性,它們與器件的具體功能緊密相關(guān)。下面是DS18B20的器件功能命令。
?、賳?dòng)溫度轉換(44H)
該命令發(fā)送完成后,主機可以通過(guò)調用Readbit()函數判斷溫度轉換是否完成,若Readbit()的返回值為0則表示轉換正在進(jìn)行,若Readbit()的返回值為1則表示轉換完成。
?、谧xRAM(BEH)
該命令發(fā)送完成后,主機可以通過(guò)調用Readbit()函數將DS18B20中RAM的內容從低位到高位依次讀出。
?、蹖?xiě)RAM(4EH)
該命令發(fā)出后,主機隨后寫(xiě)入1-Wire總線(xiàn)的3字節將依次被存儲到DS18B20的報警上限、報警下限和配置寄存器中。
?、軓椭芌AM(48H)
該命令會(huì )將DS18B20的報警上限、報警下限和配置寄存器中的內容復制到EEPROM中。該命令發(fā)出后,主機可以通過(guò)調用Readbit()函數判斷復制操作是否完成,若Readbit()的返回值為1,則表示復制操作完成。
⑤回讀EEPROM(B8H)
該命令會(huì )將存儲在EEPROM中的報警上限、報警下限和配置寄器的內容回讀到RAM中,主機可以通過(guò)調用Readbit()函數判斷回讀操作是否完成,若Readbit()的返回值為1則表示回讀操作完成。DS18B20在上電時(shí)會(huì )自動(dòng)進(jìn)行一次回讀操作。
圖1 主機與DS18B20的通信流程圖
5 主機與DS18B20的通信流程
如圖1所示,主機通過(guò)1-Wire總線(xiàn)接口對DS18B20的每次訪(fǎng)問(wèn)都以復位信號和ROM功能命令開(kāi)始,訪(fǎng)問(wèn)的結束位置是不確定的,這與具體的功能命令相關(guān)。圖中圓角矩形中的操作與主機發(fā)送的功能命令相對應,隨著(zhù)功能命令的不同圓角矩形中的操作有時(shí)可以被省略。對總線(xiàn)上的DS18B20來(lái)說(shuō),復位信號意味著(zhù)又一次通信的開(kāi)始,器件對此的響應是拉低總線(xiàn)以告知主機自身的存在,然后準備接收ROM功能命令。
多點(diǎn)測溫系統仿真實(shí)例
DS18B20是一種比較廉價(jià)的溫度傳感器,其封封裝形式如圖2所示。在Proteus中包含有DS18B20的仿真模型,這使得相關(guān)程序的調試變得簡(jiǎn)單方便。下面以一個(gè)實(shí)例介紹用Proteus仿真多點(diǎn)測溫系統的步驟。
圖2 DS18B20封裝形式
?、?繪制仿真原理圖
如圖3所示,在本實(shí)例中以單片機AT89C52和8個(gè)DS18B20構成了一個(gè)多點(diǎn)測溫系統。為了有足夠的空間存儲各個(gè)DS18B20的ROM編碼和溫度值,在實(shí)例中用一片8KB的SRAM芯片6116對單片機的RAM進(jìn)行了擴展。
②設置DS18B20仿真模型的屬性
評論