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

下載本文檔

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

文檔簡介

/概述DS18B20數(shù)字溫度傳感器提供9-Bit到12-Bit的攝氏溫度測量精度和一個用戶可編程的非易失性且具有過溫和低溫觸發(fā)報警的報警功能。DS18B20采用的1-Wire通信即僅采用一個數(shù)據(jù)線(以與地)與微控制器進行通信。該傳感器的溫度檢測范圍為-55℃至+125℃,并且在溫度范圍超過-10℃至85℃之外時還具有+-0.5℃的精度。此外,DS18B20可以直接由數(shù)據(jù)線供電而不需要外部電源供電。每片DS18B20都有一個獨一無二的64位序列號,所以一個1-Wire總線上可連接多個DS18B20設(shè)備。因此,在一個分布式的大環(huán)境里用一個微控制器控制多個DS18B20是非常簡單的。這些特征使得其在HVAC環(huán)境控制,在建筑、設(shè)備與機械的溫度監(jiān)控系統(tǒng),以與溫度過程控制系統(tǒng)中有著很大的優(yōu)勢。特性·獨特的1-Wire總線接口僅需要一個管腳來通信?!っ總€設(shè)備的內(nèi)部ROM上都燒寫了一個獨一無二的64位序列號?!ざ嗦凡杉芰κ沟梅植际綔囟炔杉瘧?yīng)用更加簡單?!o需外圍元件?!つ軌虿捎脭?shù)據(jù)線供電;供電范圍為3.0V至5.5V?!囟瓤蓽y量范圍為:-55℃至+125℃(-67℉至+257℉)?!囟确秶^-10℃至85℃之外時具有+-0.5℃的精度?!?nèi)部溫度采集精度可以由用戶自定義為9-Bits至12-Bits。DS18B20分辨率可編程1-Wire數(shù)字溫度傳感器·溫度轉(zhuǎn)換時間在轉(zhuǎn)換精度為12-Bits時達到最大值750ms。·用戶自定義非易失性的的溫度報警設(shè)置?!ざx了溫度報警搜索命令和當(dāng)溫度超過用戶自定義的設(shè)定值時。·可選擇的8-PinSO(150mils),8-PinμSOP,與3-PinTO-92封裝?!づcDS1822程序兼容。·應(yīng)用于溫度控制系統(tǒng),工業(yè)系統(tǒng),民用產(chǎn)品,溫度傳感器,或者任何溫度檢測系統(tǒng)中。管腳定義圖訂購信息零件溫度范圍引腳數(shù)-封裝頂部標(biāo)號DS18B20-55℃至+125℃3TO-9218B20DS18B20+-55℃至+125℃3TO-9218B20DS18B20/T&R-55℃至+125℃3TO-92(2000片)18B20DS18B20+T&R-55℃至+125℃3TO-92(2000片)18B20DS18B20-SL/T&R-55℃至+125℃3TO-92(2000片)*18B20DS18B20-SL+T&R-55℃至+125℃3TO-92(2000片)*18B20DS18B20U-55℃至+125℃8uSOP18B20DS18B20U+-55℃至+125℃8uSOP18B20DS18B20U/T&R-55℃至+125℃8uSOP(3000片)18B20DS18B20+T&R-55℃至+125℃8uSOP(3000片)18B20DS18B20Z-55℃至+125℃8SODS18B20DS18B20Z+-55℃至+125℃8SODS18B20DS18B20Z/T&R-55℃至+125℃8SO(2500片)DS18B20DS18B20Z+T&R-55℃至+125℃8SO(2500片)DS18B20“+”號表示的是無鉛封裝?!?”會出現(xiàn)在無鉛封裝的頂部標(biāo)號處。T&R=卷帶包裝。*TO-92封裝管腳描述管腳管腳名功能描述SOuSOPTO-921、2、6、7、82、3、5、6、7—N.C置空383VDDVDD引腳。VDD必須連接到地當(dāng)采用“寄生電源”供電時。412DQ數(shù)據(jù)輸入/輸出。1-Wire漏極開路接口引腳。當(dāng)采用“寄生電源”供電方式時,同時向設(shè)備提供電源。(詳見“DS18B20的供電”章節(jié))541GND地綜述圖1為DS18B20的內(nèi)部框圖。內(nèi)部的64位的ROM存儲其獨一無二的序列號。暫存存儲器(Thescratchpadmemory)包含了存儲有數(shù)字溫度結(jié)果的2個字節(jié)寬度的溫度寄存器。另外,暫存存儲器還提供了一個字節(jié)的過溫和低溫(TH和TL)溫度報警寄存器和一個字節(jié)的配置寄存器。配置寄存器允許用戶自定義溫度轉(zhuǎn)換為9、10、11、12位精度。過溫和低溫(TH和TL)溫度報警寄存器是非易失性的(EEPROM),所以其可以在設(shè)備斷電的情況下保存。DS18B20采用的Maxim公司專有的1-Wire總線協(xié)議,該總線協(xié)議僅需要一個控制信號進行通信。該控制信號線需要一個喚醒的上拉電阻以防止連接在該總線上的口是3態(tài)或者高阻態(tài)(DQ信號線是在DS18B20上)。在該總線系統(tǒng)中,微控制器(主設(shè)備)通過每個設(shè)備的64為序列號來識別該總線上的設(shè)備。因為每個設(shè)備都有一個獨一無二的序列號,掛在一個總線上的設(shè)備理論上是可以無限個的。在下面的“1-Wire總線系統(tǒng)”章節(jié)中包含有1-Wire總線協(xié)議詳細的命令和時序關(guān)系。DS18B20的另外一個特性就是可以無需外部電源供電。當(dāng)數(shù)據(jù)線DQ為高的時候由其為設(shè)備供電??偩€拉高的時候為內(nèi)部電容(Spp)充電,當(dāng)總線拉低是由該電容向設(shè)備供電。這種由1-Wire總線為設(shè)備供電的方式稱為“寄生電源”。此外,DS18B20也可以由外部電源通過VDD供電。圖1DS18B20內(nèi)部方框圖說明-溫度測量DS18B20的核心功能是直接溫度-數(shù)字測量。其溫度轉(zhuǎn)換可由用戶自定義為9、10、11、12位精度分別為0.5℃、0.25℃、0.125℃、0.0625℃分辨率。值得注意的是,上電默認為12位轉(zhuǎn)換精度。DS18B20上電后工作在低功耗閑置狀態(tài)下。主設(shè)備必須向DS18B20發(fā)送溫度轉(zhuǎn)換命令[44h]才能開始溫度轉(zhuǎn)換。溫度轉(zhuǎn)換后,溫度轉(zhuǎn)換的值將會保存在暫存存儲器的溫度寄存器中,并且DS18B20將會恢復(fù)到閑置狀態(tài)。如果DS18B20是由外部供電,當(dāng)發(fā)送完溫度轉(zhuǎn)換命令[44h]后,主設(shè)備可以執(zhí)行“讀數(shù)據(jù)時序”(請參閱“1-Wire總線系統(tǒng)”章節(jié)),若此時溫度轉(zhuǎn)換正在進行DS18B20將會響應(yīng)“0”,若溫度轉(zhuǎn)換完成則會響應(yīng)“1”。如果DS18B20是由“寄生電源”供電,該響應(yīng)的技術(shù)將不能使用,因為在整個溫度轉(zhuǎn)換期間,總線必須強制拉高。該總線的“寄生電源”供電方式將會在“DS18B20的供電”章節(jié)中詳細講解。DS18B20的溫度輸出數(shù)據(jù)時在攝氏度下校準(zhǔn)的;若是在華氏度下應(yīng)用的話,可以用查表法或者常規(guī)的數(shù)據(jù)換算。溫度數(shù)據(jù)以一個16位標(biāo)志擴展二進制補碼數(shù)的形式存儲在溫度寄存器中(詳見圖2)。符號標(biāo)志位(S)溫度的正負極性:正數(shù)則S=0,負數(shù)則S=1。如果DS18B20被定義為12位的轉(zhuǎn)換精度,溫度寄存器中的所有位都將包含有效數(shù)據(jù)。若為11位轉(zhuǎn)換精度,則bit0為未定義的。若為10位轉(zhuǎn)換精度,則bit1和bit0為未定義的。若為9位轉(zhuǎn)換精度,則bit2、bit1和bit0為未定義的。表格1為在12位轉(zhuǎn)換精度下溫度輸出數(shù)據(jù)與相對應(yīng)溫度之間的關(guān)系表。圖2溫度寄存器格式表格1溫度/數(shù)據(jù)對應(yīng)關(guān)系*上電復(fù)位時溫度寄存器中的值為+85℃。說明-溫度報警當(dāng)DS18B20完成一次溫度轉(zhuǎn)換后,該溫度轉(zhuǎn)換值將會與用戶定義的溫度報警TH和TL寄存器(詳見圖3)中的值進行比較。符號標(biāo)志位(S)溫度的正負極性:正數(shù)則S=0,負數(shù)則S=1。過溫和低溫(TH和TL)溫度報警寄存器是非易失性的(EEPROM),所以其可以在設(shè)備斷電的情況下保存。過溫和低溫(TH和TL)溫度報警寄存器在“寄存器”章節(jié)中可以解釋為暫存寄存器的第2、3個字節(jié)。圖3過溫和低溫(TH和TL)溫度報警寄存器因為過溫和低溫(TH和TL)溫度報警寄存器是一個8位的寄存器,所以在于其比較時溫度寄存器的4位至11位才是有效的數(shù)據(jù)。如果溫度轉(zhuǎn)換數(shù)據(jù)小于或等于TL與大于或等于TH,DS18B20內(nèi)部的報警標(biāo)志位將會被置位。該標(biāo)志位在每次溫度轉(zhuǎn)換之后都會更新,因此,如報警控制消失,該標(biāo)志位在溫度轉(zhuǎn)換之后將會關(guān)閉。主設(shè)備可以通過報警查詢命令[Che]查詢該總線上的DS18B20設(shè)備的報警標(biāo)志位。任何一個報警標(biāo)志位已經(jīng)置位的DS18B20設(shè)備都會響應(yīng)該命令,因此,主設(shè)備可以確定到底哪個DS18B20設(shè)備存在溫度報警。如果溫度報警存在,并且過溫和低溫(TH和TL)溫度報警寄存器已經(jīng)被改變,則下一個溫度轉(zhuǎn)換值必須驗證其溫度報警標(biāo)志位。DS18B20的供電DS18B20可以通過DVD引腳由外部供電,或者可以由“寄生電源”供電,這使得DS18B20可以不采用當(dāng)?shù)氐耐獠侩娫垂╇姸鴮崿F(xiàn)其功能。“寄生電源”供電方式在遠程溫度檢測或空間比較有限制的地方有很大的應(yīng)用。圖1展示的就是DS18B20的“寄生電源”控制電路,其由DQ口拉高時向其供電??偩€拉高的時候為內(nèi)部電容(Cpp)充電,當(dāng)總線拉低是由該電容向設(shè)備供電。當(dāng)DS18B20為“寄生電源”供電模式時,該VDD引腳必須連接到地。在“寄生電源”供電模式下,只要工作在指定的時序下,則該1-Wire總線和Cpp可以提供給DS18B20足夠的電流來完成各種工作以與滿足供電電壓(詳見“交/直流電氣特性”)。然而,當(dāng)DS18B20正在進行溫度轉(zhuǎn)換或正將暫存寄存器中的值拷貝至EEPROM時,其工作電流將會高至1.5mA。通過1-Wire總線上的上拉電阻提供的電流將會引起不可接受的電壓跌落,同時將會有很大部分電流由Cpp提供。為了保證DS18B20有足夠的電流供應(yīng),有必要在1-Wire總線上提供一個強有力的上拉,不管此時在進行溫度轉(zhuǎn)換還是正將暫存寄存器中的值拷貝至EEPROM中。圖4中所示的由一個MOSFET直接將總線拉至高電平能夠很好的實現(xiàn)。值得注意的是,1-Wire總線必須在溫度轉(zhuǎn)換命令[44h]或暫存寄存器拷貝命令[48h]下達10uS后提供一個強有力的上拉,同時在整個溫度轉(zhuǎn)換期間(Tconv)或數(shù)據(jù)傳送(Twr=10ms)期間總線必須一直強制拉高。當(dāng)強制拉高時該1-Wire總線上不允許有任何其他動作。當(dāng)然,DS18B20也可以采用常規(guī)的通過外部電源連接至VDD引腳的供電方式,如圖5所示。這種供電方式具有不需要上拉的MOSFET、該1-Wire總線在溫度轉(zhuǎn)換期間可執(zhí)行其他動作的優(yōu)點?!凹纳娫础惫╇姺绞皆跍囟瘸^+100℃時不推薦使用,因為在超過該溫度下時將會有很大的漏電流導(dǎo)致不能進行正常的通信。實際應(yīng)用中,在類似的溫度狀態(tài)下強烈推薦該DS18B20由外部供電電源供電。在某些情況下,總線上的主設(shè)備可能不知道連接到該總線上的DS18B20是由“寄生電源”供電還是由外部電源供電。此時該主設(shè)備就需要得到一些信息來決定在溫度轉(zhuǎn)換期間是否要強制拉高。為了得到這些信息,主設(shè)備可以在發(fā)送一個跳過ROM命令[CCh]之后再發(fā)送一個讀取供電方式命令[B4h]再緊跟一個“讀取數(shù)據(jù)時序”。在讀取數(shù)據(jù)時序中,“寄生電源”供電方式的DS18B20將會將總線拉低,但是,由外部供電方式的DS18B20將會讓該總線繼續(xù)保持高。所以,如果總線被拉低,主設(shè)備就必須要在溫度轉(zhuǎn)換期間將總線強制拉高。圖4“寄生電源”供電方式圖5外部電源供電方式64位光刻ROM編碼每片DS18B20的片內(nèi)ROM中都存有一個獨一無二的64位的編碼。在該內(nèi)ROM編碼的低8位保存有DS18B20的分類編碼:28h。中間的48位保存有獨一無二的序列號。最高8位保存片內(nèi)ROM中前56位的循環(huán)冗余校驗(CRC)值。更加詳細的在“1-Wire總線系統(tǒng)”章節(jié)該64位ROM編碼與相關(guān)的ROM功能控制邏輯允許DS18B20作為1-Wire總線協(xié)議上的設(shè)備。64位光刻ROM編碼存儲器DS18B20的存儲器組織結(jié)構(gòu)如圖7所示。該存儲器包含了SRAM暫存寄存器和存儲著過溫和低溫(TH和TL)溫度報警寄存器與配置寄存器的非易失性EEPROM。值得注意的是當(dāng)DS18B20的溫度報警功能沒有用到的時候,過溫和低溫(TH和TL)溫度報警寄存器可以當(dāng)做通用功能的存儲單元。所有的存儲命令在“DS18B20功能命令”章節(jié)有詳細描述。暫存寄存器中的Byte0和Byte1分別作為溫度寄存器的低字節(jié)和高字節(jié)。同時這兩個字節(jié)是只讀的。Byte2和Byte3作為過溫和低溫(TH和TL)溫度報警寄存器。Byte4保存著配置寄存器的數(shù)據(jù),詳見“配置寄存器”章節(jié)。Byte5、6、7作為內(nèi)部使用的字節(jié)而保留使用,不可被寫入。暫存寄存器的Byte8為只讀字節(jié),其中存儲著該暫存寄存器中Byte0至Byte7的循環(huán)冗余校驗(CRC)值。DS18B20計算該循環(huán)冗余校驗(CRC)值的方法在“循環(huán)冗余校驗(CRC)計算”章節(jié)中有詳細描述。使用寫暫存寄存器命令[4Eh]才能將數(shù)據(jù)寫入Byte2、3、4中;這些寫入DS18B20中的數(shù)據(jù)必須從Byte2中最低位開始。為了驗證寫入數(shù)據(jù)的完整性,該暫存寄存器可以在寫入后再讀出來(采用讀暫存寄存器命令[BEh])。當(dāng)從暫存寄存器中讀數(shù)據(jù)時,從1-Wire總線傳送的數(shù)據(jù)是以Byte0的最低位開始的。為了將暫存寄存器中的過溫和低溫(TH和TL)溫度報警值與配置寄存器數(shù)據(jù)轉(zhuǎn)移至EEPROM中,主設(shè)備必須采用拷貝暫存寄存器命令[48h]。在EEPROM寄存器中的數(shù)據(jù)在設(shè)備斷電后是不會丟失的;在設(shè)備上電后EEPROM的值將會重新裝載至相對應(yīng)的暫存寄存器中。當(dāng)然,在任何其他時刻EEPROM寄存器中的數(shù)據(jù)也可以通過重新裝載EEPROM命令[B8h]將數(shù)據(jù)裝載至?xí)捍婕拇嫫髦?。主設(shè)備可以在產(chǎn)生讀時序后,緊跟著發(fā)送重新裝載EEPROM命令,則如果DS18B20正在進行重新裝載將會響應(yīng)0電平,若重新裝載已經(jīng)完成則會響應(yīng)1電平。DS18B20存儲器圖配置寄存器暫存寄存器中的Byte4包含著配置寄存器;如圖8所示。用戶通過改變表2中R0和R1的值來配置DS18B20的分辨率。上電默認為R0=1與R1=1(12位分辨率)。需要注意的是,轉(zhuǎn)換時間與分辨率之間是有制約關(guān)系的。Bit7和Bit0至Bit4作為內(nèi)部使用而保留使用,不可被寫入。圖7配置寄存器表2溫度分辨率配置循環(huán)冗余校驗(CRC)計算DS18B20的64位ROM編碼的一部分和暫存寄存器的第9字節(jié)都為循環(huán)冗余校驗(CRC)計算字節(jié)。ROM編碼的循環(huán)冗余校驗(CRC)值是由ROM編碼的低56位計算而來,并且該CRC計算值存儲在ROM編碼的最高8位。暫存寄存器的CRC值是由存儲在暫存寄存器中的值計算而來,故當(dāng)暫存寄存器中的值發(fā)生改變后,該CRC值也會隨之發(fā)生改變。當(dāng)總線上的主設(shè)備從DS18B20中讀取數(shù)據(jù)時循環(huán)冗余校驗(CRC)值給主設(shè)備提供一個數(shù)據(jù)驗證碼。為了驗證讀取到的數(shù)據(jù)是正確的,主設(shè)備必須根據(jù)讀取到的數(shù)據(jù)重新進行CRC計算,計算得到的值再與ROM編碼CRC(從64位ROM中讀取到的)或者暫存寄存器CRC(從暫存寄存器中讀取到的)作比較。如果主設(shè)備計算得到的CRC值與讀取到的CRC值相匹配,則讀取到的數(shù)據(jù)為正確的。CRC計算值與讀取值的比較以與是否執(zhí)行下一個動作都是由總線上的主設(shè)備決定的。如果主設(shè)備計算的CRC值與從DS18B20中(ROM或暫存寄存器)讀取的CRC值不匹配,DS18B20內(nèi)部沒有任何電路能夠阻止從主設(shè)備發(fā)送過來的命令。CRC校驗(ROM或暫存寄存器)的多項式等效公式為:主設(shè)備可以根據(jù)圖9中的多項式重新計算CRC值與從DS18B20中讀取得到的值進行比較。該電路包括有左移寄存器和異或門(XOR),并且左移寄存器初始狀態(tài)為0。從ROM編碼的最低位或暫存寄存器的Byte0字節(jié)的最低位開始,每一步都必須有一位左移進入左移寄存器中。當(dāng)ROM編碼中的第56位或暫存寄存器中Byte7字節(jié)的最高位左移后,該多項式計算式將會保存CRC校驗值。下一步,將從DS18B20中的ROM編碼中或暫存寄存器中讀取到的CRC校驗值左移進入該計算式。這些都完成后,如果重新計算的CRC值為正確的,則該計算式中的所有左移寄存器都會是0。關(guān)于Maxim公司的1-Wire總線CRC校驗的更多信息請參閱:ApplicationNote27:UnderstandingandUsingCyclicRedundancyCheckswithMaximiButtonProducts.CRC計算式1-Wire總線系統(tǒng)1-Wire總線系統(tǒng)即一個總線主設(shè)備控制一個或多個從設(shè)備。DS18B20始終是一個從設(shè)備。當(dāng)總線上只有一個從設(shè)備時,此系統(tǒng)被稱為“單節(jié)點”系統(tǒng);當(dāng)總線上有多個從設(shè)備連接時,此系統(tǒng)被稱之為“多節(jié)點”系統(tǒng)。1-Wire總線上所有的命令或者數(shù)據(jù)的發(fā)送送都是遵循低位先發(fā)送的原則。接下來關(guān)于1-Wire總線系統(tǒng)的描述將會分成三個部分:硬件配置,事件序列和1-Wire總線信號(信號定義和時序)。硬件配置1-Wire總線被定義為僅有一根數(shù)據(jù)線。每個設(shè)備(主設(shè)備或從設(shè)備)通過一個漏極開路或3態(tài)門引腳連接至數(shù)據(jù)線上。這就允許每個設(shè)備“釋放”數(shù)據(jù)線,當(dāng)設(shè)備沒有傳遞數(shù)據(jù)的時其他設(shè)備可以有效地使用數(shù)據(jù)線。DS18B20的1-Wire總線接口(DQ引腳)是其內(nèi)部電路組成的漏極開路(如圖10所示)。1-Wire總線需要一個5kΩ左右的外部上拉電阻;因此,1-Wire總線在閑置情況下是高電平。如果因為任何原因一個事件需要被取消,且該事件要重新開始則該總線必須先進入閑置狀態(tài)。Infiniterecoverytimecanoccurbetweenbitssolongasthe1-Wirebusisintheinactive(high)stateduringtherecoveryperiod如果總線被拉低超過480uS,則該總線上的所有設(shè)備都會復(fù)位。硬件配置事件序列訪問DS18B20的事件序列如下所示:第一步:初始化第二步:ROM命令(緊跟任何數(shù)據(jù)交換請求)第三步:DS18B20功能命令(緊跟任何數(shù)據(jù)交換請求)每次對DS18B20的訪問都必須遵循這樣的步驟來進行,如果這些步驟中的任何一個丟失或者沒有執(zhí)行,則DS18B20將不會響應(yīng)。除了ROM搜索命令[F0h]和報警搜索命令[ECh]之外。當(dāng)執(zhí)行完這些ROM命令之后,主設(shè)備必須回到上述步驟中的第一步。初始化1-Wire總線上的所有事件都必須以初始化為開始。初始化序列由總線上的主設(shè)備發(fā)出的復(fù)位脈沖以與緊跟著從設(shè)備回應(yīng)的存在脈沖構(gòu)成。該回應(yīng)脈沖讓總線上的主設(shè)備知道在該總線上有從設(shè)備(例如DS18B20),并且已經(jīng)準(zhǔn)備好進行操作。復(fù)位與存在脈沖時序詳見“1-Wire信號”章節(jié)。ROM命令當(dāng)總線上的主設(shè)備檢測到了存在脈沖后,就可以執(zhí)行ROM命令。這些命令是對每個設(shè)備獨一無二的64位ROM編碼進行操作的,當(dāng)總線上連接有多個設(shè)備時,可以通過這些命令識別各個設(shè)備。這些命令同時也可以使主設(shè)備確定該總線上有多少個什么類型的設(shè)備或者有溫度報警信號的設(shè)備??偣舶?種ROM命令,每個命令的長度都是8Bit。主設(shè)備在執(zhí)行DS18B20功能命令之前必須先執(zhí)行一個適當(dāng)?shù)腞OM命令。ROM命令的執(zhí)行流程圖如圖11所示。搜索ROM[F0h]當(dāng)系統(tǒng)上電初始化后,主設(shè)備必須識別該總線上所有的從設(shè)備的ROM編碼,這樣就可以使得主設(shè)備確定總線上的從設(shè)備的類型與數(shù)量。主設(shè)備學(xué)習(xí)ROM編碼是一個清除的過程,則主設(shè)備要根據(jù)需要循環(huán)地發(fā)送搜索ROM[F0h]命令(搜索ROM命令跟隨著數(shù)據(jù)交換)來確定總線上所有的從設(shè)備。如果僅有一個從設(shè)備在該總線上,更加簡單的讀取ROM命令(下一段落有詳解)可以代替搜索ROM的過程。讀取ROM[33h]該命令在總線上僅有一個從設(shè)備時才能使用。該命令使得總線上的主設(shè)備不需要搜索ROM命令過程就可以讀取從設(shè)備的64位ROM編碼。當(dāng)總線上有超過一個從設(shè)備時,若再發(fā)送該命令,則當(dāng)所有從設(shè)備都會回應(yīng)時,將會引起數(shù)據(jù)沖突。匹配ROM[55h]該匹配ROM命令之后跟隨發(fā)送64位的ROM編碼使得總線上的主設(shè)備能夠匹配特定的從設(shè)備。只有完全匹配該64位ROM編碼的從設(shè)備才會響應(yīng)總線上的主設(shè)備發(fā)出的功能命令;總線上的其他從設(shè)備將會等待下下一個復(fù)位脈沖。跳過ROM[CCh]主設(shè)備可以使用該命令來同時向總線上的所有從設(shè)備發(fā)送不要發(fā)送任何的ROM編碼命令。例如,主設(shè)備通過向總線上所有的DS18B20發(fā)送跳過ROM命令后再發(fā)送溫度轉(zhuǎn)換[44h]命令,則所有設(shè)備將會同時執(zhí)行溫度轉(zhuǎn)。需要注意的是,當(dāng)總線上僅有一個從設(shè)備時,讀取暫存寄存器[BEh]命令后面可以跟隨跳過ROM命令。在這種情況下,主設(shè)備可以讀取從設(shè)備中的數(shù)據(jù)而不發(fā)送64位ROM編碼。當(dāng)總線上有多個從設(shè)備時,若在跳過ROM命令后再發(fā)送讀取暫存寄存器命令,則所有的從設(shè)備將會同時開始傳送數(shù)據(jù)而導(dǎo)致總線上的數(shù)據(jù)沖突。警報搜索[ECh]該命令的操作與跳過ROM命令基本相同,但是不同的是只有警報標(biāo)志置位的從設(shè)備才會響應(yīng)。該命令使得主設(shè)備確定在最近一次溫度轉(zhuǎn)換期間是否有DS18B20有溫度報警。當(dāng)所有的報警搜索命令循環(huán)執(zhí)行后,總線上的主設(shè)備必須回到事件序列中的第一步(初始化)。詳見“操作報警信號”章節(jié)。DS18B20功能命令當(dāng)總線上的主設(shè)備通過ROM命令確定了哪個DS18B20能夠進行通信時,主設(shè)備可以向其中一個DS18B20發(fā)送功能命令。這些命令使得主設(shè)備可以向DS18B20的暫存寄存器寫入或者讀出數(shù)據(jù),初始化溫度轉(zhuǎn)換與定義供電模式。DS18B20的功能命令在下面詳細描述,在表3中總結(jié)與圖12中的流程圖。溫度轉(zhuǎn)換[44h]該命令為初始化單次溫度轉(zhuǎn)換。溫度轉(zhuǎn)換完后,溫度轉(zhuǎn)換的數(shù)據(jù)存儲在暫存寄存器的2個字節(jié)長度的溫度寄存器中,之后DS18B20恢復(fù)到低功耗的閑置狀態(tài)。如果該設(shè)備是采用的“寄生電源”供電模式,在該命令執(zhí)行10uS(最大)后主設(shè)備在溫度轉(zhuǎn)換期間必須強制拉高數(shù)據(jù)線(“DS18B20的供電”章節(jié)所描述)。如果該設(shè)備是采用的外部供電模式,主設(shè)備在溫度轉(zhuǎn)換命令之后可以執(zhí)行讀取數(shù)據(jù)時序,若DS18B20正在進行溫度轉(zhuǎn)換則會響應(yīng)0電平,溫度轉(zhuǎn)換完成則響應(yīng)1電平。在“寄生電源”供電模式下,因為在整個溫度轉(zhuǎn)換期間總線都是強制拉高的狀態(tài),故不會有上述響應(yīng)。寫入暫存寄存器[4Eh]該命令使得主設(shè)備向DS18B20的暫存寄存器寫入3個字節(jié)的數(shù)據(jù)。第一個字節(jié)的數(shù)據(jù)寫入TH寄存器(暫存寄存器的Byte2),第二個字節(jié)的數(shù)據(jù)寫入TL寄存器(Byte3),第三個字節(jié)的數(shù)據(jù)寫入配置寄存器(Byte4)。所有的數(shù)據(jù)必須是以低位先發(fā)的原則。所有的三個字節(jié)的數(shù)據(jù)在寫入之前主設(shè)備必須先對從設(shè)備復(fù)位,否則數(shù)據(jù)將會損壞。讀取暫存寄存器[BEh]該命令使得主設(shè)備可以讀取暫存寄存器中存儲的值。數(shù)據(jù)從Byte0的低位開始傳送直到第9個字節(jié)(Byte8-CRC)讀取完畢。主設(shè)備若只需要暫存寄存器中的部分?jǐn)?shù)據(jù),則可以在讀取數(shù)據(jù)中通過復(fù)位來終止??截悤捍婕拇嫫鱗48h]該命令為將暫存寄存器中的TH、TL與配置寄存器(Byte2,Byte3和Byte4)的值拷貝至EEPROM中。如果該設(shè)備采用的“寄生電源”供電模式,在該命令發(fā)送后10us(最大)內(nèi)主設(shè)備必須強制拉高1-Wire總線超過10ms。如“DS18B20的供電”章節(jié)中詳述。召回EEPROM[B8h]該命令將溫度報警觸發(fā)值(TH和TL)與配置寄存器的數(shù)據(jù)從EEPROM中召回至?xí)捍婕拇嫫髦械腂yte2,Byte3和Byte4中。主設(shè)備可以在召回EEPROM命令之后執(zhí)行讀取數(shù)據(jù)時序,若DS18B20正在進行召回EEPROM則會響應(yīng)0電平,召回EEPROM完成則響應(yīng)1電平。召回數(shù)據(jù)操作在上電初始化后會自動執(zhí)行一次,所以設(shè)備在上電期間暫存寄存器中一直會有有效的數(shù)據(jù)。讀取供電模式[B4h]主設(shè)備通過執(zhí)行該命令之后再執(zhí)行讀取數(shù)據(jù)時序來確定總線上的DS18B20是否是由“寄生電源”供電。在讀取數(shù)據(jù)時序中,“寄生電源”供電的DS18B20將會拉低總線,外部電源獨立供電模式的DS18B20則會釋放總線讓其保持在高電平。更多詳細請參閱“DS18B20的供電”章節(jié)表3DS18B20的功能命令圖11ROM命令流程圖圖12DS18B20功能命令流程圖1-Wire總線信號DS18B20采用嚴(yán)謹(jǐn)?shù)?-Wire總線通信協(xié)議來保證數(shù)據(jù)的完整性。該協(xié)議定義多個信號形式:復(fù)位脈沖,存在脈沖,寫0,寫1,讀0,讀1。主設(shè)備執(zhí)行除了存在脈沖外的所有其他信號。初始化程序—復(fù)位和存在脈沖與DS18B20所有的通信都是由初始化序列開始的,該序列包括從主設(shè)備發(fā)出的復(fù)位脈沖與從DS18B20響應(yīng)的存在脈沖組成。如圖13所示。當(dāng)DS18B20響應(yīng)復(fù)位信號的存在脈沖后,則其向主設(shè)備表明其在該總線上,并且已經(jīng)做好操作命令。在初始化序列期間,總線上的主設(shè)備通過拉低1-Wire總線超過480us來發(fā)送(TX)復(fù)位脈沖。之后主設(shè)備釋放總線而進入接收模式(RX)。當(dāng)總線釋放后,5kΩ左右的上拉電阻將1-Wire總線拉至高電平。當(dāng)DS18B20檢測到該上升邊沿信號后,其等待15us至60us后通過將1-Wire總線拉低60us至240us來實現(xiàn)發(fā)送一個存在脈沖。圖13初始化時序讀/寫時段主設(shè)備通過寫時段向DS18B20中寫入數(shù)據(jù),通過讀時段從DS18B20中讀取數(shù)據(jù)。1-Wire總線上每一個讀寫時段只能傳送一個位的數(shù)據(jù)。寫時段寫時段有兩種情況:“寫1”時段和“寫0”時段。主設(shè)備通過寫1時段來向DS18B20中寫入邏輯1以與通過寫0時段來向DS18B20中寫入邏輯0。每個寫時段最小必須有60us的持續(xù)時間且獨立的寫時段間至少有1us的恢復(fù)時間。兩個寫時段都是由主設(shè)備通過將1-Wire總線拉低來進行初始化(詳見圖14)。為了形成寫1時段,在將1-Wire總線拉低后,主設(shè)備必須在15us之內(nèi)釋放總線。當(dāng)總線釋放后,5kΩ的上拉電阻將總線拉至高。為了形成寫0時段,在將1-Wire總線拉低后,在整個時段期間主設(shè)備必須一直拉低總線(至少60us)。在主設(shè)備初始化寫時段后,DS18B20將會在15us至60us的時間窗口內(nèi)對總線進行采樣。如果總線在采樣窗口期間是高電平,則邏輯1被寫入DS18B20;若總線是低電平,則邏輯0被寫入DS18B20。圖14讀/寫時段時序圖讀時段僅在讀時段期間DS18B20才能向主設(shè)備傳送數(shù)據(jù)。因此,主設(shè)備在執(zhí)行完讀暫存寄存器[BEh]或讀取供電模式[B4h]后,必須與時地生成讀時段,這樣DS18B20才能提供所需的數(shù)據(jù)。此外,主設(shè)備可以在執(zhí)行完轉(zhuǎn)換溫度[44h]或拷貝EEPROM[B8h]命令后生成讀時段,以便獲得在“DS18B20功能命令”章節(jié)中提到的操作信息。每個讀時段最小必須有60us的持續(xù)時間且獨立的寫時段間至少有1us的恢復(fù)時間。讀時段通過主設(shè)備將總線拉低超過1us再釋放總線來實現(xiàn)初始化(見圖14)。當(dāng)主設(shè)備初始化完讀時段后,DS18B20將會向總線發(fā)送0或者1。DS18B20通過將總線拉至高來發(fā)送邏輯1,將總線拉至低來發(fā)送邏輯0。當(dāng)發(fā)送完0后,DS18B20將會釋放總線,則通過上拉電阻該總線將會恢復(fù)到高電平的閑置狀態(tài)。從DS18B20中輸出的數(shù)據(jù)在初始化讀時序后僅有15us的有效時間。因此,主設(shè)備在開始改讀時段后的15us之內(nèi)必須釋放總線,并且對總線進行采樣。圖15讀時段中的Tint,Trc與Tsample必須小于15us。圖16顯示系統(tǒng)的時序正確保證即是保持Tinit和Trc盡可能的短,同時主設(shè)備必須在讀時段開始15us時間內(nèi)采樣。相關(guān)應(yīng)用筆記ThefollowingapplicationnotescanbeappliedtotheDS18B20andareavailableonourwebsiteat.ApplicationNote27:UnderstandingandUsingCyclicRedundancyCheckswithMaximiButtonProductsApplicationNote122:UsingDall

溫馨提示

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

評論

0/150

提交評論