DS18B20數(shù)據(jù)手冊(cè)-中文版_第1頁(yè)
DS18B20數(shù)據(jù)手冊(cè)-中文版_第2頁(yè)
DS18B20數(shù)據(jù)手冊(cè)-中文版_第3頁(yè)
DS18B20數(shù)據(jù)手冊(cè)-中文版_第4頁(yè)
DS18B20數(shù)據(jù)手冊(cè)-中文版_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、概述DS18B20數(shù)字溫度傳感器提供9-Bit到12-Bit的攝氏溫度測(cè)量精度和一個(gè)用戶可編程的非易失性且具有過(guò)溫和低溫觸發(fā)報(bào)警的報(bào)警功能。DS18B20采用的1-Wire通信即僅采用一個(gè)數(shù)據(jù)線(以及地)與微控制器進(jìn)行通信。該傳感器的溫度檢測(cè)范圍為-55至+125,并且在溫度范圍超過(guò)-10至85之外時(shí)還具有+-0.5的精度。此外,DS18B20可以直接由數(shù)據(jù)線供電而不需要外部電源供電。每片DS18B20都有一個(gè)獨(dú)一無(wú)二的64位序列號(hào),所以一個(gè)1-Wire總線上可連接多個(gè)DS18B20設(shè)備。因此,在一個(gè)分布式的大環(huán)境里用一個(gè)微控制器控制多個(gè)DS18B20是非常簡(jiǎn)單的。這些特征使得其在HVAC環(huán)境

2、控制,在建筑、設(shè)備及機(jī)械的溫度監(jiān)控系統(tǒng),以及溫度過(guò)程控制系統(tǒng)中有著很大的優(yōu)勢(shì)。特性 獨(dú)特的1-Wire總線接口僅需要一個(gè)管腳來(lái)通信。 每個(gè)設(shè)備的內(nèi)部ROM上都燒寫了一個(gè)獨(dú)一無(wú)二的64位序列號(hào)。 多路采集能力使得分布式溫度采集應(yīng)用更加簡(jiǎn)單。 無(wú)需外圍元件。 能夠采用數(shù)據(jù)線供電;供電范圍為3.0V至5.5V。 溫度可測(cè)量范圍為:-55至+125(-67至+257)。 溫度范圍超過(guò)-10至85之外時(shí)具有+-0.5的精度。 內(nèi)部溫度采集精度可以由用戶自定義為9-Bits至12-Bits。DS18B20 分辨率可編程1-Wire數(shù)字溫度傳感器 溫度轉(zhuǎn)換時(shí)間在轉(zhuǎn)換精度為12-Bits時(shí)達(dá)到最大值750ms

3、。 用戶自定義非易失性的的溫度報(bào)警設(shè)置。 定義了溫度報(bào)警搜索命令和當(dāng)溫度超過(guò)用戶自定義的設(shè)定值時(shí)。 可選擇的8-Pin SO (150 mils), 8-PinSOP,及3-Pin TO-92封裝。 與DS1822程序兼容。 應(yīng)用于溫度控制系統(tǒng),工業(yè)系統(tǒng),民用產(chǎn)品,溫度傳感器,或者任何溫度檢測(cè)系統(tǒng)中。管腳定義圖27 / 27文檔可自由編輯訂購(gòu)信息零件溫度范圍引腳數(shù)-封裝頂部標(biāo)號(hào)DS18B20-55至+1253 TO-9218B20DS18B20+-55至+1253 TO-9218B20DS18B20/T&R-55至+1253 TO-92(2000片)18B20DS18B20+T&R-55至+1

4、253 TO-92(2000片)18B20DS18B20-SL/T&R-55至+1253 TO-92(2000片)*18B20DS18B20-SL+T&R-55至+1253 TO-92(2000片)*18B20DS18B20U-55至+1258 uSOP18B20DS18B20U+-55至+1258 uSOP18B20DS18B20U/T&R-55至+1258 uSOP(3000片)18B20DS18B20+T&R-55至+1258 uSOP(3000片)18B20DS18B20Z-55至+1258 SODS18B20DS18B20Z+-55至+1258 SODS18B20DS18B20Z/T

5、&R-55至+1258 SO(2500片)DS18B20DS18B20Z+T&R-55至+1258 SO(2500片)DS18B20“+”號(hào)表示的是無(wú)鉛封裝?!?”會(huì)出現(xiàn)在無(wú)鉛封裝的頂部標(biāo)號(hào)處。T&R=卷帶包裝。*TO-92封裝管腳描述管腳管腳名功能描述SOuSOPTO-921、2、6、7、82、3、5、6、7N.C置空383VDDVDD引腳。VDD必須連接到地當(dāng)采用“寄生電源”供電時(shí)。412DQ數(shù)據(jù)輸入/輸出。1-Wire漏極開(kāi)路接口引腳。當(dāng)采用“寄生電源”供電方式時(shí),同時(shí)向設(shè)備提供電源。(詳見(jiàn)“DS18B20的供電”章節(jié))541GND地綜述圖1為DS18B20的內(nèi)部框圖。內(nèi)部的64位的RO

6、M存儲(chǔ)其獨(dú)一無(wú)二的序列號(hào)。暫存存儲(chǔ)器(The scratchpad memory)包含了存儲(chǔ)有數(shù)字溫度結(jié)果的2個(gè)字節(jié)寬度的溫度寄存器。另外,暫存存儲(chǔ)器還提供了一個(gè)字節(jié)的過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器和一個(gè)字節(jié)的配置寄存器。配置寄存器允許用戶自定義溫度轉(zhuǎn)換為9、10、11、12位精度。過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器是非易失性的(EEPROM),所以其可以在設(shè)備斷電的情況下保存。DS18B20采用的Maxim公司專有的1-Wire總線協(xié)議,該總線協(xié)議僅需要一個(gè)控制信號(hào)進(jìn)行通信。該控制信號(hào)線需要一個(gè)喚醒的上拉電阻以防止連接在該總線上的口是3態(tài)或者高阻態(tài)(DQ信號(hào)線是在DS18B20上

7、)。在該總線系統(tǒng)中,微控制器(主設(shè)備)通過(guò)每個(gè)設(shè)備的64為序列號(hào)來(lái)識(shí)別該總線上的設(shè)備。因?yàn)槊總€(gè)設(shè)備都有一個(gè)獨(dú)一無(wú)二的序列號(hào),掛在一個(gè)總線上的設(shè)備理論上是可以無(wú)限個(gè)的。在下面的“1-Wire總線系統(tǒng)”章節(jié)中包含有1-Wire總線協(xié)議詳細(xì)的命令和時(shí)序關(guān)系。DS18B20的另外一個(gè)特性就是可以無(wú)需外部電源供電。當(dāng)數(shù)據(jù)線DQ為高的時(shí)候由其為設(shè)備供電??偩€拉高的時(shí)候?yàn)閮?nèi)部電容(Spp)充電,當(dāng)總線拉低是由該電容向設(shè)備供電。這種由1-Wire總線為設(shè)備供電的方式稱為“寄生電源”。此外,DS18B20也可以由外部電源通過(guò)VDD供電。圖1 DS18B20內(nèi)部方框圖說(shuō)明-溫度測(cè)量DS18B20的核心功能是直接溫

8、度-數(shù)字測(cè)量。其溫度轉(zhuǎn)換可由用戶自定義為9、10、11、12位精度分別為0.5、0.25、0.125、0.0625分辨率。值得注意的是,上電默認(rèn)為12位轉(zhuǎn)換精度。DS18B20上電后工作在低功耗閑置狀態(tài)下。主設(shè)備必須向DS18B20發(fā)送溫度轉(zhuǎn)換命令44h才能開(kāi)始溫度轉(zhuǎn)換。溫度轉(zhuǎn)換后,溫度轉(zhuǎn)換的值將會(huì)保存在暫存存儲(chǔ)器的溫度寄存器中,并且DS18B20將會(huì)恢復(fù)到閑置狀態(tài)。如果DS18B20是由外部供電,當(dāng)發(fā)送完溫度轉(zhuǎn)換命令44h后,主設(shè)備可以執(zhí)行“讀數(shù)據(jù)時(shí)序”(請(qǐng)參閱“1-Wire總線系統(tǒng)”章節(jié)),若此時(shí)溫度轉(zhuǎn)換正在進(jìn)行DS18B20將會(huì)響應(yīng)“0”,若溫度轉(zhuǎn)換完成則會(huì)響應(yīng)“1”。如果DS18B20

9、是由“寄生電源”供電,該響應(yīng)的技術(shù)將不能使用,因?yàn)樵谡麄€(gè)溫度轉(zhuǎn)換期間,總線必須強(qiáng)制拉高。該總線的“寄生電源”供電方式將會(huì)在“DS18B20的供電”章節(jié)中詳細(xì)講解。DS18B20的溫度輸出數(shù)據(jù)時(shí)在攝氏度下校準(zhǔn)的;若是在華氏度下應(yīng)用的話,可以用查表法或者常規(guī)的數(shù)據(jù)換算。溫度數(shù)據(jù)以一個(gè)16位標(biāo)志擴(kuò)展二進(jìn)制補(bǔ)碼數(shù)的形式存儲(chǔ)在溫度寄存器中(詳見(jiàn)圖2)。符號(hào)標(biāo)志位(S)溫度的正負(fù)極性:正數(shù)則S=0,負(fù)數(shù)則S=1。如果DS18B20被定義為12位的轉(zhuǎn)換精度,溫度寄存器中的所有位都將包含有效數(shù)據(jù)。若為11位轉(zhuǎn)換精度,則bit 0為未定義的。若為10位轉(zhuǎn)換精度,則bit 1和bit 0為未定義的。 若為9位轉(zhuǎn)換

10、精度,則bit 2、bit 1和bit 0為未定義的。表格1為在12位轉(zhuǎn)換精度下溫度輸出數(shù)據(jù)與相對(duì)應(yīng)溫度之間的關(guān)系表。圖2 溫度寄存器格式表格1 溫度/數(shù)據(jù)對(duì)應(yīng)關(guān)系*上電復(fù)位時(shí)溫度寄存器中的值為+85。說(shuō)明-溫度報(bào)警當(dāng)DS18B20完成一次溫度轉(zhuǎn)換后,該溫度轉(zhuǎn)換值將會(huì)與用戶定義的溫度報(bào)警TH和TL寄存器(詳見(jiàn)圖3)中的值進(jìn)行比較。符號(hào)標(biāo)志位(S)溫度的正負(fù)極性:正數(shù)則S=0,負(fù)數(shù)則S=1。過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器是非易失性的(EEPROM),所以其可以在設(shè)備斷電的情況下保存。過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器在“寄存器”章節(jié)中可以解釋為暫存寄存器的第2、3個(gè)字節(jié)。圖3 過(guò)溫和

11、低溫(TH和TL)溫度報(bào)警寄存器因?yàn)檫^(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器是一個(gè)8位的寄存器,所以在于其比較時(shí)溫度寄存器的4位至11位才是有效的數(shù)據(jù)。如果溫度轉(zhuǎn)換數(shù)據(jù)小于或等于TL及大于或等于TH,DS18B20內(nèi)部的報(bào)警標(biāo)志位將會(huì)被置位。該標(biāo)志位在每次溫度轉(zhuǎn)換之后都會(huì)更新,因此,如報(bào)警控制消失,該標(biāo)志位在溫度轉(zhuǎn)換之后將會(huì)關(guān)閉。主設(shè)備可以通過(guò)報(bào)警查詢命令Che查詢?cè)摽偩€上的DS18B20設(shè)備的報(bào)警標(biāo)志位。任何一個(gè)報(bào)警標(biāo)志位已經(jīng)置位的DS18B20設(shè)備都會(huì)響應(yīng)該命令,因此,主設(shè)備可以確定到底哪個(gè)DS18B20設(shè)備存在溫度報(bào)警。如果溫度報(bào)警存在,并且過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器已經(jīng)被改變

12、,則下一個(gè)溫度轉(zhuǎn)換值必須驗(yàn)證其溫度報(bào)警標(biāo)志位。DS18B20的供電DS18B20可以通過(guò)DVD引腳由外部供電,或者可以由“寄生電源”供電,這使得DS18B20可以不采用當(dāng)?shù)氐耐獠侩娫垂╇姸鴮?shí)現(xiàn)其功能?!凹纳娫础惫╇姺绞皆谶h(yuǎn)程溫度檢測(cè)或空間比較有限制的地方有很大的應(yīng)用。圖1展示的就是DS18B20的“寄生電源”控制電路,其由DQ口拉高時(shí)向其供電??偩€拉高的時(shí)候?yàn)閮?nèi)部電容(C pp)充電,當(dāng)總線拉低是由該電容向設(shè)備供電。當(dāng)DS18B20為“寄生電源”供電模式時(shí),該VDD引腳必須連接到地。在“寄生電源”供電模式下,只要工作在指定的時(shí)序下,則該1-Wire總線和Cpp可以提供給DS18B20足夠的電

13、流來(lái)完成各種工作以及滿足供電電壓(詳見(jiàn)“交/直流電氣特性”)。然而,當(dāng)DS18B20正在進(jìn)行溫度轉(zhuǎn)換或正將暫存寄存器中的值拷貝至EEPROM時(shí),其工作電流將會(huì)高至1.5mA。通過(guò)1-Wire總線上的上拉電阻提供的電流將會(huì)引起不可接受的電壓跌落,同時(shí)將會(huì)有很大部分電流由Cpp提供。為了保證DS18B20有足夠的電流供應(yīng),有必要在1-Wire總線上提供一個(gè)強(qiáng)有力的上拉,不管此時(shí)在進(jìn)行溫度轉(zhuǎn)換還是正將暫存寄存器中的值拷貝至EEPROM中。圖4中所示的由一個(gè)MOSFET直接將總線拉至高電平能夠很好的實(shí)現(xiàn)。值得注意的是,1-Wire總線必須在溫度轉(zhuǎn)換命令44h或暫存寄存器拷貝命令48h下達(dá)10uS后提供

14、一個(gè)強(qiáng)有力的上拉,同時(shí)在整個(gè)溫度轉(zhuǎn)換期間(Tconv)或數(shù)據(jù)傳送(Twr=10ms)期間總線必須一直強(qiáng)制拉高。當(dāng)強(qiáng)制拉高時(shí)該1-Wire總線上不允許有任何其他動(dòng)作。當(dāng)然,DS18B20也可以采用常規(guī)的通過(guò)外部電源連接至VDD引腳的供電方式,如圖5所示。這種供電方式具有不需要上拉的MOSFET、該1-Wire總線在溫度轉(zhuǎn)換期間可執(zhí)行其他動(dòng)作的優(yōu)點(diǎn)。“寄生電源”供電方式在溫度超過(guò)+100時(shí)不推薦使用,因?yàn)樵诔^(guò)該溫度下時(shí)將會(huì)有很大的漏電流導(dǎo)致不能進(jìn)行正常的通信。實(shí)際應(yīng)用中,在類似的溫度狀態(tài)下強(qiáng)烈推薦該DS18B20由外部供電電源供電。在某些情況下,總線上的主設(shè)備可能不知道連接到該總線上的DS18B

15、20是由“寄生電源”供電還是由外部電源供電。此時(shí)該主設(shè)備就需要得到一些信息來(lái)決定在溫度轉(zhuǎn)換期間是否要強(qiáng)制拉高。為了得到這些信息,主設(shè)備可以在發(fā)送一個(gè)跳過(guò)ROM命令CCh之后再發(fā)送一個(gè)讀取供電方式命令B4h再緊跟一個(gè)“讀取數(shù)據(jù)時(shí)序”。在讀取數(shù)據(jù)時(shí)序中,“寄生電源”供電方式的DS18B20將會(huì)將總線拉低,但是,由外部供電方式的DS18B20將會(huì)讓該總線繼續(xù)保持高。所以,如果總線被拉低,主設(shè)備就必須要在溫度轉(zhuǎn)換期間將總線強(qiáng)制拉高。圖4“寄生電源”供電方式圖5外部電源供電方式64位光刻ROM編碼每片DS18B20的片內(nèi)ROM中都存有一個(gè)獨(dú)一無(wú)二的64位的編碼。在該內(nèi)ROM編碼的低8位保存有DS18B2

16、0的分類編碼:28h。中間的48位保存有獨(dú)一無(wú)二的序列號(hào)。最高8位保存片內(nèi)ROM中前56位的循環(huán)冗余校驗(yàn)(CRC)值。更加詳細(xì)的在“1-Wire總線系統(tǒng)”章節(jié) 該64位ROM編碼及相關(guān)的ROM功能控制邏輯允許DS18B20作為1-Wire總線協(xié)議上的設(shè)備。64位光刻ROM編碼存儲(chǔ)器DS18B20的存儲(chǔ)器組織結(jié)構(gòu)如圖7所示。該存儲(chǔ)器包含了SRAM暫存寄存器和存儲(chǔ)著過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器及配置寄存器的非易失性EEPROM。值得注意的是當(dāng)DS18B20的溫度報(bào)警功能沒(méi)有用到的時(shí)候,過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器可以當(dāng)做通用功能的存儲(chǔ)單元。所有的存儲(chǔ)命令在“DS18B20功能命

17、令”章節(jié)有詳細(xì)描述。暫存寄存器中的Byte 0和Byte 1分別作為溫度寄存器的低字節(jié)和高字節(jié)。同時(shí)這兩個(gè)字節(jié)是只讀的。Byte 2和Byte 3作為過(guò)溫和低溫(TH和TL)溫度報(bào)警寄存器。Byte 4保存著配置寄存器的數(shù)據(jù),詳見(jiàn)“配置寄存器”章節(jié)。Byte 5、6、7作為內(nèi)部使用的字節(jié)而保留使用,不可被寫入。暫存寄存器的Byte 8為只讀字節(jié),其中存儲(chǔ)著該暫存寄存器中Byte 0至Byte 7的循環(huán)冗余校驗(yàn)(CRC)值。DS18B20計(jì)算該循環(huán)冗余校驗(yàn)(CRC)值的方法在“循環(huán)冗余校驗(yàn)(CRC)計(jì)算”章節(jié)中有詳細(xì)描述。使用寫暫存寄存器命令4Eh才能將數(shù)據(jù)寫入Byte 2、3、4中;這些寫入D

18、S18B20中的數(shù)據(jù)必須從Byte 2中最低位開(kāi)始。為了驗(yàn)證寫入數(shù)據(jù)的完整性,該暫存寄存器可以在寫入后再讀出來(lái)(采用讀暫存寄存器命令BEh)。當(dāng)從暫存寄存器中讀數(shù)據(jù)時(shí),從1-Wire總線傳送的數(shù)據(jù)是以Byte 0的最低位開(kāi)始的。為了將暫存寄存器中的過(guò)溫和低溫(TH和TL)溫度報(bào)警值及配置寄存器數(shù)據(jù)轉(zhuǎn)移至EEPROM中,主設(shè)備必須采用拷貝暫存寄存器命令48h。在EEPROM寄存器中的數(shù)據(jù)在設(shè)備斷電后是不會(huì)丟失的;在設(shè)備上電后EEPROM的值將會(huì)重新裝載至相對(duì)應(yīng)的暫存寄存器中。當(dāng)然,在任何其他時(shí)刻EEPROM寄存器中的數(shù)據(jù)也可以通過(guò)重新裝載EEPROM命令B8h將數(shù)據(jù)裝載至?xí)捍婕拇嫫髦?。主設(shè)備可以

19、在產(chǎn)生讀時(shí)序后,緊跟著發(fā)送重新裝載EEPROM命令,則如果DS18B20正在進(jìn)行重新裝載將會(huì)響應(yīng)0電平,若重新裝載已經(jīng)完成則會(huì)響應(yīng)1電平。DS18B20存儲(chǔ)器圖配置寄存器暫存寄存器中的Byte 4包含著配置寄存器;如圖8所示。用戶通過(guò)改變表2中R0和R1的值來(lái)配置DS18B20的分辨率。上電默認(rèn)為R0=1及R1=1(12位分辨率)。需要注意的是,轉(zhuǎn)換時(shí)間與分辨率之間是有制約關(guān)系的。Bit 7和Bit 0至Bit 4作為內(nèi)部使用而保留使用,不可被寫入。圖7 配置寄存器表2 溫度分辨率配置循環(huán)冗余校驗(yàn)(CRC)計(jì)算DS18B20的64位ROM編碼的一部分和暫存寄存器的第9字節(jié)都為循環(huán)冗余校驗(yàn)(CR

20、C)計(jì)算字節(jié)。ROM編碼的循環(huán)冗余校驗(yàn)(CRC)值是由ROM編碼的低56位計(jì)算而來(lái),并且該CRC計(jì)算值存儲(chǔ)在ROM編碼的最高8位。暫存寄存器的CRC值是由存儲(chǔ)在暫存寄存器中的值計(jì)算而來(lái),故當(dāng)暫存寄存器中的值發(fā)生改變后,該CRC值也會(huì)隨之發(fā)生改變。當(dāng)總線上的主設(shè)備從DS18B20中讀取數(shù)據(jù)時(shí)循環(huán)冗余校驗(yàn)(CRC)值給主設(shè)備提供一個(gè)數(shù)據(jù)驗(yàn)證碼。為了驗(yàn)證讀取到的數(shù)據(jù)是正確的,主設(shè)備必須根據(jù)讀取到的數(shù)據(jù)重新進(jìn)行CRC計(jì)算,計(jì)算得到的值再與ROM編碼CRC(從64位ROM中讀取到的)或者暫存寄存器CRC(從暫存寄存器中讀取到的)作比較。如果主設(shè)備計(jì)算得到的CRC值與讀取到的CRC值相匹配,則讀取到的數(shù)據(jù)

21、為正確的。CRC計(jì)算值與讀取值的比較以及是否執(zhí)行下一個(gè)動(dòng)作都是由總線上的主設(shè)備決定的。如果主設(shè)備計(jì)算的CRC值與從DS18B20中(ROM或暫存寄存器)讀取的CRC值不匹配,DS18B20內(nèi)部沒(méi)有任何電路能夠阻止從主設(shè)備發(fā)送過(guò)來(lái)的命令。CRC校驗(yàn)(ROM或暫存寄存器)的多項(xiàng)式等效公式為:主設(shè)備可以根據(jù)圖9中的多項(xiàng)式重新計(jì)算CRC值與從DS18B20中讀取得到的值進(jìn)行比較。該電路包括有左移寄存器和異或門(XOR),并且左移寄存器初始狀態(tài)為0。從ROM編碼的最低位或暫存寄存器的Byte 0字節(jié)的最低位開(kāi)始,每一步都必須有一位左移進(jìn)入左移寄存器中。當(dāng)ROM編碼中的第56位或暫存寄存器中Byte 7字

22、節(jié)的最高位左移后,該多項(xiàng)式計(jì)算式將會(huì)保存CRC校驗(yàn)值。下一步,將從DS18B20中的ROM編碼中或暫存寄存器中讀取到的CRC校驗(yàn)值左移進(jìn)入該計(jì)算式。這些都完成后,如果重新計(jì)算的CRC值為正確的,則該計(jì)算式中的所有左移寄存器都會(huì)是0。關(guān)于Maxim公司的1-Wire總線CRC校驗(yàn)的更多信息請(qǐng)參閱:Application Note 27: Understanding and Using Cyclic Redundancy Checks with Maxim iButton Products. CRC計(jì)算式1-Wire總線系統(tǒng)1-Wire總線系統(tǒng)即一個(gè)總線主設(shè)備控制一個(gè)或多個(gè)從設(shè)備。DS18B20始

23、終是一個(gè)從設(shè)備。當(dāng)總線上只有一個(gè)從設(shè)備時(shí),此系統(tǒng)被稱為“單節(jié)點(diǎn)”系統(tǒng);當(dāng)總線上有多個(gè)從設(shè)備連接時(shí),此系統(tǒng)被稱之為“多節(jié)點(diǎn)”系統(tǒng)。1-Wire總線上所有的命令或者數(shù)據(jù)的發(fā)送送都是遵循低位先發(fā)送的原則。接下來(lái)關(guān)于1-Wire總線系統(tǒng)的描述將會(huì)分成三個(gè)部分:硬件配置,事件序列和1-Wire總線信號(hào)(信號(hào)定義和時(shí)序)。硬件配置1-Wire總線被定義為僅有一根數(shù)據(jù)線。每個(gè)設(shè)備(主設(shè)備或從設(shè)備)通過(guò)一個(gè)漏極開(kāi)路或3態(tài)門引腳連接至數(shù)據(jù)線上。這就允許每個(gè)設(shè)備“釋放”數(shù)據(jù)線,當(dāng)設(shè)備沒(méi)有傳遞數(shù)據(jù)的時(shí)其他設(shè)備可以有效地使用數(shù)據(jù)線。DS18B20的1-Wire總線接口(DQ引腳)是其內(nèi)部電路組成的漏極開(kāi)路(如圖10所

24、示)。1-Wire總線需要一個(gè)5k左右的外部上拉電阻;因此,1-Wire總線在閑置情況下是高電平。如果因?yàn)槿魏卧蛞粋€(gè)事件需要被取消,且該事件要重新開(kāi)始則該總線必須先進(jìn)入閑置狀態(tài)。Infinite recovery time can occur between bits so long as the 1-Wire bus is in the inactive (high) state during the recovery period 如果總線被拉低超過(guò)480uS,則該總線上的所有設(shè)備都會(huì)復(fù)位。硬件配置事件序列訪問(wèn)DS18B20的事件序列如下所示:第一步:初始化第二步:ROM命令(緊跟任何數(shù)

25、據(jù)交換請(qǐng)求)第三步:DS18B20功能命令(緊跟任何數(shù)據(jù)交換請(qǐng)求)每次對(duì)DS18B20的訪問(wèn)都必須遵循這樣的步驟來(lái)進(jìn)行,如果這些步驟中的任何一個(gè)丟失或者沒(méi)有執(zhí)行,則DS18B20將不會(huì)響應(yīng)。除了ROM搜索命令F0h和報(bào)警搜索命令ECh之外。當(dāng)執(zhí)行完這些ROM命令之后,主設(shè)備必須回到上述步驟中的第一步。初始化1-Wire總線上的所有事件都必須以初始化為開(kāi)始。初始化序列由總線上的主設(shè)備發(fā)出的復(fù)位脈沖以及緊跟著從設(shè)備回應(yīng)的存在脈沖構(gòu)成。該回應(yīng)脈沖讓總線上的主設(shè)備知道在該總線上有從設(shè)備(例如DS18B20),并且已經(jīng)準(zhǔn)備好進(jìn)行操作。復(fù)位及存在脈沖時(shí)序詳見(jiàn)“1-Wire信號(hào)”章節(jié)。ROM命令當(dāng)總線上的主

26、設(shè)備檢測(cè)到了存在脈沖后,就可以執(zhí)行ROM命令。這些命令是對(duì)每個(gè)設(shè)備獨(dú)一無(wú)二的64位ROM編碼進(jìn)行操作的,當(dāng)總線上連接有多個(gè)設(shè)備時(shí),可以通過(guò)這些命令識(shí)別各個(gè)設(shè)備。這些命令同時(shí)也可以使主設(shè)備確定該總線上有多少個(gè)什么類型的設(shè)備或者有溫度報(bào)警信號(hào)的設(shè)備??偣舶?種ROM命令,每個(gè)命令的長(zhǎng)度都是8 Bit。主設(shè)備在執(zhí)行DS18B20功能命令之前必須先執(zhí)行一個(gè)適當(dāng)?shù)腞OM命令。ROM命令的執(zhí)行流程圖如圖11所示。搜索ROMF0h當(dāng)系統(tǒng)上電初始化后,主設(shè)備必須識(shí)別該總線上所有的從設(shè)備的ROM編碼,這樣就可以使得主設(shè)備確定總線上的從設(shè)備的類型及數(shù)量。主設(shè)備學(xué)習(xí)ROM編碼是一個(gè)清除的過(guò)程,則主設(shè)備要根據(jù)需要

27、循環(huán)地發(fā)送搜索ROMF0h命令(搜索ROM命令跟隨著數(shù)據(jù)交換)來(lái)確定總線上所有的從設(shè)備。如果僅有一個(gè)從設(shè)備在該總線上,更加簡(jiǎn)單的讀取ROM命令(下一段落有詳解)可以代替搜索ROM的過(guò)程。讀取ROM33h該命令在總線上僅有一個(gè)從設(shè)備時(shí)才能使用。該命令使得總線上的主設(shè)備不需要搜索ROM命令過(guò)程就可以讀取從設(shè)備的64位ROM編碼。當(dāng)總線上有超過(guò)一個(gè)從設(shè)備時(shí),若再發(fā)送該命令,則當(dāng)所有從設(shè)備都會(huì)回應(yīng)時(shí),將會(huì)引起數(shù)據(jù)沖突。匹配ROM55h該匹配ROM命令之后跟隨發(fā)送64位的ROM編碼使得總線上的主設(shè)備能夠匹配特定的從設(shè)備。只有完全匹配該64位ROM編碼的從設(shè)備才會(huì)響應(yīng)總線上的主設(shè)備發(fā)出的功能命令;總線上的

28、其他從設(shè)備將會(huì)等待下下一個(gè)復(fù)位脈沖。跳過(guò)ROMCCh主設(shè)備可以使用該命令來(lái)同時(shí)向總線上的所有從設(shè)備發(fā)送不要發(fā)送任何的ROM編碼命令。例如,主設(shè)備通過(guò)向總線上所有的DS18B20發(fā)送跳過(guò)ROM命令后再發(fā)送溫度轉(zhuǎn)換44h命令,則所有設(shè)備將會(huì)同時(shí)執(zhí)行溫度轉(zhuǎn)。需要注意的是,當(dāng)總線上僅有一個(gè)從設(shè)備時(shí),讀取暫存寄存器BEh命令后面可以跟隨跳過(guò)ROM命令。在這種情況下,主設(shè)備可以讀取從設(shè)備中的數(shù)據(jù)而不發(fā)送64位ROM編碼。當(dāng)總線上有多個(gè)從設(shè)備時(shí),若在跳過(guò)ROM命令后再發(fā)送讀取暫存寄存器命令,則所有的從設(shè)備將會(huì)同時(shí)開(kāi)始傳送數(shù)據(jù)而導(dǎo)致總線上的數(shù)據(jù)沖突。警報(bào)搜索ECh該命令的操作與跳過(guò)ROM命令基本相同,但是不同

29、的是只有警報(bào)標(biāo)志置位的從設(shè)備才會(huì)響應(yīng)。該命令使得主設(shè)備確定在最近一次溫度轉(zhuǎn)換期間是否有DS18B20有溫度報(bào)警。當(dāng)所有的報(bào)警搜索命令循環(huán)執(zhí)行后,總線上的主設(shè)備必須回到事件序列中的第一步(初始化)。詳見(jiàn)“操作報(bào)警信號(hào)”章節(jié)。DS18B20功能命令當(dāng)總線上的主設(shè)備通過(guò)ROM命令確定了哪個(gè)DS18B20能夠進(jìn)行通信時(shí),主設(shè)備可以向其中一個(gè)DS18B20發(fā)送功能命令。這些命令使得主設(shè)備可以向DS18B20的暫存寄存器寫入或者讀出數(shù)據(jù),初始化溫度轉(zhuǎn)換及定義供電模式。DS18B20的功能命令在下面詳細(xì)描述,在表3中總結(jié)及圖12中的流程圖。溫度轉(zhuǎn)換44h該命令為初始化單次溫度轉(zhuǎn)換。溫度轉(zhuǎn)換完后,溫度轉(zhuǎn)換的數(shù)

30、據(jù)存儲(chǔ)在暫存寄存器的2個(gè)字節(jié)長(zhǎng)度的溫度寄存器中,之后DS18B20恢復(fù)到低功耗的閑置狀態(tài)。如果該設(shè)備是采用的“寄生電源”供電模式,在該命令執(zhí)行10uS(最大)后主設(shè)備在溫度轉(zhuǎn)換期間必須強(qiáng)制拉高數(shù)據(jù)線(“DS18B20的供電”章節(jié)所描述)。如果該設(shè)備是采用的外部供電模式,主設(shè)備在溫度轉(zhuǎn)換命令之后可以執(zhí)行讀取數(shù)據(jù)時(shí)序,若DS18B20正在進(jìn)行溫度轉(zhuǎn)換則會(huì)響應(yīng)0電平,溫度轉(zhuǎn)換完成則響應(yīng)1電平。在“寄生電源”供電模式下,因?yàn)樵谡麄€(gè)溫度轉(zhuǎn)換期間總線都是強(qiáng)制拉高的狀態(tài),故不會(huì)有上述響應(yīng)。寫入暫存寄存器4Eh該命令使得主設(shè)備向DS18B20的暫存寄存器寫入3個(gè)字節(jié)的數(shù)據(jù)。第一個(gè)字節(jié)的數(shù)據(jù)寫入TH寄存器(暫存

31、寄存器的 Byte 2),第二個(gè)字節(jié)的數(shù)據(jù)寫入TL寄存器(Byte 3),第三個(gè)字節(jié)的數(shù)據(jù)寫入配置寄存器(Byte 4)。所有的數(shù)據(jù)必須是以低位先發(fā)的原則。所有的三個(gè)字節(jié)的數(shù)據(jù)在寫入之前主設(shè)備必須先對(duì)從設(shè)備復(fù)位,否則數(shù)據(jù)將會(huì)損壞。讀取暫存寄存器BEh該命令使得主設(shè)備可以讀取暫存寄存器中存儲(chǔ)的值。數(shù)據(jù)從Byte 0的低位開(kāi)始傳送直到第9個(gè)字節(jié)(Byte 8 - CRC)讀取完畢。主設(shè)備若只需要暫存寄存器中的部分?jǐn)?shù)據(jù),則可以在讀取數(shù)據(jù)中通過(guò)復(fù)位來(lái)終止??截悤捍婕拇嫫?8h該命令為將暫存寄存器中的TH、TL及配置寄存器(Byte 2,Byte 3和Byte 4)的值拷貝至EEPROM中。如果該設(shè)備采

32、用的“寄生電源”供電模式,在該命令發(fā)送后10us(最大)內(nèi)主設(shè)備必須強(qiáng)制拉高1-Wire總線超過(guò)10ms。如“DS18B20的供電”章節(jié)中詳述。召回EEPROMB8h該命令將溫度報(bào)警觸發(fā)值(TH和TL)及配置寄存器的數(shù)據(jù)從EEPROM中召回至?xí)捍婕拇嫫髦械腂yte 2,Byte 3和Byte4中。主設(shè)備可以在召回EEPROM命令之后執(zhí)行讀取數(shù)據(jù)時(shí)序,若DS18B20正在進(jìn)行召回EEPROM則會(huì)響應(yīng)0電平,召回EEPROM完成則響應(yīng)1電平。召回?cái)?shù)據(jù)操作在上電初始化后會(huì)自動(dòng)執(zhí)行一次,所以設(shè)備在上電期間暫存寄存器中一直會(huì)有有效的數(shù)據(jù)。讀取供電模式B4h主設(shè)備通過(guò)執(zhí)行該命令之后再執(zhí)行讀取數(shù)據(jù)時(shí)序來(lái)確定

33、總線上的DS18B20是否是由“寄生電源”供電。在讀取數(shù)據(jù)時(shí)序中,“寄生電源”供電的DS18B20將會(huì)拉低總線,外部電源獨(dú)立供電模式的DS18B20則會(huì)釋放總線讓其保持在高電平。更多詳細(xì)請(qǐng)參閱“DS18B20的供電”章節(jié)表3 DS18B20的功能命令圖11 ROM命令流程圖圖12 DS18B20功能命令流程圖1-Wire總線信號(hào)DS18B20采用嚴(yán)謹(jǐn)?shù)?-Wire總線通信協(xié)議來(lái)保證數(shù)據(jù)的完整性。該協(xié)議定義多個(gè)信號(hào)形式:復(fù)位脈沖,存在脈沖,寫0,寫1,讀0,讀1。主設(shè)備執(zhí)行除了存在脈沖外的所有其他信號(hào)。初始化程序復(fù)位和存在脈沖與DS18B20所有的通信都是由初始化序列開(kāi)始的,該序列包括從主設(shè)備發(fā)

34、出的復(fù)位脈沖及從DS18B20響應(yīng)的存在脈沖組成。如圖13所示。當(dāng)DS18B20響應(yīng)復(fù)位信號(hào)的存在脈沖后,則其向主設(shè)備表明其在該總線上,并且已經(jīng)做好操作命令。在初始化序列期間,總線上的主設(shè)備通過(guò)拉低1-Wire總線超過(guò)480us來(lái)發(fā)送(TX)復(fù)位脈沖。之后主設(shè)備釋放總線而進(jìn)入接收模式(RX)。當(dāng)總線釋放后,5k左右的上拉電阻將1-Wire總線拉至高電平。當(dāng)DS18B20檢測(cè)到該上升邊沿信號(hào)后,其等待15us至60us后通過(guò)將1-Wire總線拉低60us至240us來(lái)實(shí)現(xiàn)發(fā)送一個(gè)存在脈沖。圖13 初始化時(shí)序讀/寫時(shí)段主設(shè)備通過(guò)寫時(shí)段向DS18B20中寫入數(shù)據(jù),通過(guò)讀時(shí)段從DS18B20中讀取數(shù)據(jù)

35、。1-Wire總線上每一個(gè)讀寫時(shí)段只能傳送一個(gè)位的數(shù)據(jù)。寫時(shí)段寫時(shí)段有兩種情況:“寫1”時(shí)段和“寫0”時(shí)段。主設(shè)備通過(guò)寫1時(shí)段來(lái)向DS18B20中寫入邏輯1以及通過(guò)寫0時(shí)段來(lái)向DS18B20中寫入邏輯0。每個(gè)寫時(shí)段最小必須有60us的持續(xù)時(shí)間且獨(dú)立的寫時(shí)段間至少有1us的恢復(fù)時(shí)間。兩個(gè)寫時(shí)段都是由主設(shè)備通過(guò)將1-Wire總線拉低來(lái)進(jìn)行初始化(詳見(jiàn)圖14)。為了形成寫1時(shí)段,在將1-Wire總線拉低后,主設(shè)備必須在15us之內(nèi)釋放總線。當(dāng)總線釋放后,5k的上拉電阻將總線拉至高。為了形成寫0時(shí)段,在將1-Wire總線拉低后,在整個(gè)時(shí)段期間主設(shè)備必須一直拉低總線(至少60us)。在主設(shè)備初始化寫時(shí)段

36、后,DS18B20將會(huì)在15us至60us的時(shí)間窗口內(nèi)對(duì)總線進(jìn)行采樣。如果總線在采樣窗口期間是高電平,則邏輯1被寫入DS18B20;若總線是低電平,則邏輯0被寫入DS18B20。圖14 讀/寫時(shí)段時(shí)序圖讀時(shí)段僅在讀時(shí)段期間DS18B20才能向主設(shè)備傳送數(shù)據(jù)。因此,主設(shè)備在執(zhí)行完讀暫存寄存器BEh或讀取供電模式B4h后,必須及時(shí)地生成讀時(shí)段,這樣DS18B20才能提供所需的數(shù)據(jù)。此外,主設(shè)備可以在執(zhí)行完轉(zhuǎn)換溫度44h或拷貝EEPROMB8h命令后生成讀時(shí)段,以便獲得在“DS18B20功能命令”章節(jié)中提到的操作信息。每個(gè)讀時(shí)段最小必須有60us的持續(xù)時(shí)間且獨(dú)立的寫時(shí)段間至少有1us的恢復(fù)時(shí)間。讀時(shí)

37、段通過(guò)主設(shè)備將總線拉低超過(guò)1us再釋放總線來(lái)實(shí)現(xiàn)初始化(見(jiàn)圖14)。當(dāng)主設(shè)備初始化完讀時(shí)段后,DS18B20將會(huì)向總線發(fā)送0或者1。DS18B20通過(guò)將總線拉至高來(lái)發(fā)送邏輯1,將總線拉至低來(lái)發(fā)送邏輯0。當(dāng)發(fā)送完0后,DS18B20將會(huì)釋放總線,則通過(guò)上拉電阻該總線將會(huì)恢復(fù)到高電平的閑置狀態(tài)。從DS18B20中輸出的數(shù)據(jù)在初始化讀時(shí)序后僅有15us的有效時(shí)間。因此,主設(shè)備在開(kāi)始改讀時(shí)段后的15us之內(nèi)必須釋放總線,并且對(duì)總線進(jìn)行采樣。圖15 讀時(shí)段中的Tint,Trc及Tsample必須小于15us。圖16 顯示系統(tǒng)的時(shí)序正確保證即是保持Tinit和Trc盡可能的短,同時(shí)主設(shè)備必須在讀時(shí)段開(kāi)始15us時(shí)間內(nèi)采樣。相關(guān)應(yīng)用筆記The following application notes can be applied to the DS18B20 and are available on our website at . Application Note 27: Understanding and Using Cyclic Redundancy Checks with Maxim iButton Products Application Note 122: Using Dallas 1-Wire

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論