課件--單總線數(shù)字溫度傳感器DS18B20---2014 (1)_第1頁(yè)
課件--單總線數(shù)字溫度傳感器DS18B20---2014 (1)_第2頁(yè)
課件--單總線數(shù)字溫度傳感器DS18B20---2014 (1)_第3頁(yè)
課件--單總線數(shù)字溫度傳感器DS18B20---2014 (1)_第4頁(yè)
課件--單總線數(shù)字溫度傳感器DS18B20---2014 (1)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(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、單總線數(shù)字溫度傳感器DS18B20劉 升 DS18B20數(shù)字溫度計(jì)是數(shù)字溫度計(jì)是DALLAS公司生公司生產(chǎn)的產(chǎn)的1Wire,即單總線器件,具有線路簡(jiǎn),即單總線器件,具有線路簡(jiǎn)單,體積小,抗干擾能力強(qiáng),精度高的特點(diǎn)。單,體積小,抗干擾能力強(qiáng),精度高的特點(diǎn)。 DS18B20具有唯一的序列號(hào),在一根通具有唯一的序列號(hào),在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。方便。單線總線特點(diǎn) 單總線即只有單總線即只有一根數(shù)據(jù)線一根數(shù)據(jù)線,系統(tǒng)中的,系統(tǒng)中的數(shù)據(jù)數(shù)據(jù)交換交換,控制控制都由這根線完成。都由這根線完成。 單總線通常要求外接一個(gè)約為單總線通常要求外接一個(gè)約為

2、 4.7K10K 的上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)的上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。為高電平。一、一、DS18B20的主要特征:的主要特征:l全數(shù)字溫度轉(zhuǎn)換及輸出。全數(shù)字溫度轉(zhuǎn)換及輸出。 l先進(jìn)的單總線數(shù)據(jù)通信。先進(jìn)的單總線數(shù)據(jù)通信。 l最高最高12位分辨率,精度可達(dá)土位分辨率,精度可達(dá)土0.5攝氏度。攝氏度。 l12位分辨率時(shí)的最大工作周期為位分辨率時(shí)的最大工作周期為750毫秒。毫秒。 l可選擇數(shù)據(jù)線寄生電源工作方式??蛇x擇數(shù)據(jù)線寄生電源工作方式。 l檢測(cè)溫度范圍為檢測(cè)溫度范圍為55C +125Cl內(nèi)置內(nèi)置EEPROM,限溫報(bào)警功能。,限溫報(bào)警功能。 l64位光刻位光刻ROM

3、,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。 l多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。 二、二、DS18B20內(nèi)部結(jié)構(gòu)如圖所示內(nèi)部結(jié)構(gòu)如圖所示 4個(gè)主要數(shù)據(jù)部件:個(gè)主要數(shù)據(jù)部件:64 位位ROM、溫度傳溫度傳感器感器、非揮發(fā)的、非揮發(fā)的溫度報(bào)警觸發(fā)器溫度報(bào)警觸發(fā)器TH和和TL、配配置寄存器置寄存器。 三、三、DS18B20芯片封裝結(jié)構(gòu): u DS18B20詳細(xì)詳細(xì)引腳功能引腳功能描述描述:序號(hào)名稱 引腳功能描述 GND 電源電源地2 DQ 數(shù)字信號(hào)輸入輸出端數(shù)字信號(hào)輸入輸出端。開(kāi)漏單總線接口引腳。當(dāng)被用在寄生電源方式下,也可以向器件提供電源。 VD

4、D 為外接供電電源輸入端為外接供電電源輸入端。1 (在寄生電源接線方式時(shí)接地)u 四、DS18B20共有三種形態(tài)的存儲(chǔ)器資源:、ROM 只讀存儲(chǔ)器只讀存儲(chǔ)器,用于存放DS18B20的ID編碼,其前8位是單線系列編碼(DS18B20的是 H),后面48位是芯片唯一的序列號(hào),最后8位是以上56位的CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改。DS18B20共64位ROM。、RAM 數(shù)據(jù)暫存器數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個(gè)字節(jié)RAM,每個(gè)字節(jié)為8位。第1、2個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值(溫度寄存器),第3、4個(gè)字節(jié)是用戶EEPROM(溫度報(bào)警值TH、T

5、L儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第5個(gè)字節(jié)則是用戶第3個(gè)EEPROM的鏡像(配置寄存器)。第6、7、8個(gè)字節(jié)保留未用。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。u DS18B20共有三種形態(tài)的存儲(chǔ)器資源:、EEPROM 非易失性記憶體非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上、下限溫度報(bào)警值、配置寄存器,DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。1、64位ROM的結(jié)構(gòu)分析8位檢驗(yàn)CRC48位序列號(hào)8位工廠代碼(28H)MSBMSBMSBMSBMSBMSBLSBLSBLSBLSBLSBLSB 開(kāi)始開(kāi)始8 8位是產(chǎn)品類型的編號(hào),接著是每位是產(chǎn)品類型的編號(hào),接著是

6、每個(gè)器件的惟一的序號(hào),共個(gè)器件的惟一的序號(hào),共4848位,最后位,最后8 8位是位是前面前面5656位的位的CRCCRC檢驗(yàn)碼。檢驗(yàn)碼。 2、DS18B20內(nèi)部RAM分析 DS18B20的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM (Scratchpad) 和一個(gè)非易失性的可電擦除EEROM。 高速暫存RAM的結(jié)構(gòu)為字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如右: 字節(jié)0、1:為溫度信息; 字節(jié)2、3:是TH、TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新; 字節(jié)4:用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率配置寄存器和各位定義 字節(jié)4的內(nèi)容確定DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。低位一直為,是測(cè)試模式位是測(cè)

7、試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在出廠時(shí)該位被設(shè)置為,用戶不要去改動(dòng)用戶不要去改動(dòng),R1R1和和R2R2決定溫度轉(zhuǎn)換的精度位數(shù)決定溫度轉(zhuǎn)換的精度位數(shù)。TMR1R211111R1 R2 分辨率位溫度最大轉(zhuǎn)換時(shí)間ms00993.750110187.510113751112750 DS18B20溫度溫度轉(zhuǎn)換的時(shí)間轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且設(shè)比較長(zhǎng),而且設(shè)定的定的分辨率分辨率越高,所需的溫度轉(zhuǎn)換時(shí)間就越長(zhǎng)。越高,所需的溫度轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。衡考慮。 高速暫存高速暫存RAM的第、字節(jié)保留未的第、字

8、節(jié)保留未用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有個(gè)字節(jié)的個(gè)字節(jié)的CRC碼,用來(lái)檢驗(yàn)數(shù)據(jù),從而保證碼,用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。通信數(shù)據(jù)的正確性。 當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存RAM中第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.06250C/LSB形式表示,溫度值格式如下:232221202-12-22-32-4SSSSS262524LSBLSBMSBMSB當(dāng)符號(hào)位當(dāng)符號(hào)位S=0S=0時(shí)時(shí),表示測(cè)得的溫度值為正值,

9、可直,表示測(cè)得的溫度值為正值,可直接將其轉(zhuǎn)換為十進(jìn)制數(shù)。接將其轉(zhuǎn)換為十進(jìn)制數(shù)。當(dāng)符號(hào)位當(dāng)符號(hào)位S=1S=1時(shí)時(shí),表示測(cè)得的溫度值為負(fù)值,要先,表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)。將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)。二進(jìn)制補(bǔ)碼與十進(jìn)制的轉(zhuǎn)換 已知一個(gè)負(fù)數(shù)求補(bǔ)碼: 先寫(xiě)出該負(fù)數(shù)相對(duì)應(yīng)的正數(shù)的補(bǔ)碼表示,然后按位求反,最后未位加1 。 已知一個(gè)負(fù)數(shù)的補(bǔ)碼,將其轉(zhuǎn)換為十進(jìn)制數(shù): 先對(duì)各位求反; 再將其轉(zhuǎn)換成十進(jìn)制數(shù); 加上負(fù)號(hào),再減1。溫度與測(cè)得值的對(duì)應(yīng)表 DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若值高于TH或低于TL,則將該器件的報(bào)警標(biāo)志

10、位置位,并對(duì)主機(jī)發(fā)出報(bào)警搜索命令作出響應(yīng)。因此,可用于多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。溫度/0C二進(jìn)制表示十六進(jìn)制表示+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FHu五、單片機(jī)對(duì)DS18B20操作流程:1、 復(fù)位:首先復(fù)位,由單片機(jī)給DS18B20單總線至少480uS的低電

11、平信號(hào)。當(dāng)DS18B20接到此復(fù)位信號(hào)后則會(huì)在1560uS后回發(fā)一個(gè)芯片的存在脈沖。 2、存在脈沖:在復(fù)位后,單片機(jī)將數(shù)據(jù)單總線拉高,在1560uS后接收一個(gè)60240uS的低電平信號(hào)存在脈沖。通信雙方達(dá)成了基本的協(xié)議,之后是單片機(jī)與DS18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時(shí)間不足或是單總線的電路斷路都不會(huì)接到存在脈沖,在設(shè)計(jì)時(shí)要注意意外情況的處理。3、單片機(jī)發(fā)送ROM指令:雙方達(dá)成協(xié)議之后將進(jìn)行交流,ROM指令共有5條,一個(gè)工作周期發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報(bào)警芯片搜索。ROM指令為8位長(zhǎng)度,功能是對(duì)片內(nèi)的64位光刻ROM進(jìn)行操作。其主要目

12、的是為了分辨一條總線上掛接的多個(gè)器件并作處理。4、單片機(jī)發(fā)送存儲(chǔ)器操作指令:在ROM指令發(fā)送給18B20之后,接著(不間斷)發(fā)送存儲(chǔ)器操作指令。操作指令同樣為8位,共6條,分別是寫(xiě)RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報(bào)警值復(fù)制到RAM、工作方式切換。存儲(chǔ)器操作指令的功能是命令存儲(chǔ)器操作指令的功能是命令18B20工作,是芯片控制的關(guān)鍵。工作,是芯片控制的關(guān)鍵。 5、執(zhí)行或數(shù)據(jù)讀寫(xiě):一個(gè)存儲(chǔ)器操作指令結(jié)束后進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫(xiě),此操作視存儲(chǔ)器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則單片機(jī)必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時(shí)間為500uS。如執(zhí)行數(shù)

13、據(jù)讀寫(xiě)指令則需要嚴(yán)格遵循18B20的讀寫(xiě)時(shí)序來(lái)操作。 要讀出當(dāng)前的溫度數(shù)據(jù)需要執(zhí)行兩次工作周期,第一個(gè)周期為復(fù)位、跳過(guò)ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲(chǔ)器操作指令、等待500uS溫度轉(zhuǎn)換時(shí)間。第二個(gè)周期為復(fù)位、跳過(guò)ROM指令、執(zhí)行讀RAM的存儲(chǔ)器操作指令、讀數(shù)據(jù)(最多為9個(gè)字節(jié),中途可停止,只讀簡(jiǎn)單溫度值則讀前2個(gè)字節(jié)即可)。u DS28B20芯片ROM指令表: Read ROM(讀ROM)33H 這個(gè)命令允許總線單片機(jī)讀到DS18B20的64位ROM。只當(dāng)總線上只存在一個(gè)DS18B20時(shí)才可以用此指令,如果掛接不只一個(gè),通信時(shí)將會(huì)發(fā)生數(shù)據(jù)沖突。 Match ROM(指定匹配芯片)55H 這個(gè)指令后

14、面緊跟著由單片機(jī)發(fā)出了64位序列號(hào),當(dāng)總線上有多只DS18B20時(shí),只有與控制發(fā)出的序列號(hào)相同的芯片才可以做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適應(yīng)單芯片和多芯片掛接。 Skip ROM(跳躍ROM指令)CCH 這條指令使芯片不對(duì)ROM編碼做出反應(yīng),單總線的情況,為節(jié)省時(shí)間可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯(cuò)誤出現(xiàn)。 Search ROM(搜索芯片)F0H 在芯片初始化后,搜索指令允許總線上掛接多芯片時(shí)用排除法識(shí)別所有器件的64位ROM。 Alarm Search(報(bào)警芯片搜索)ECH 在多芯片掛接情況,報(bào)警芯片搜索指令只對(duì)符合溫度高于TH或小于TL報(bào)警條

15、件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將被保持,直到再一次測(cè)得溫度達(dá)不到報(bào)警條件為止。 u DS18B20芯片存儲(chǔ)器操作指令表: Write Scratchpad (向RAM中寫(xiě)數(shù)據(jù))4EH 這是向RAM中寫(xiě)入數(shù)據(jù)的指令,隨后寫(xiě)入的兩個(gè)字節(jié)的數(shù)據(jù)將會(huì)被存到地址2(報(bào)警RAM之TH)和地址3(報(bào)警RAM之TL)。寫(xiě)入過(guò)程中可以用復(fù)位信號(hào)中止寫(xiě)入。 Read Scratchpad (從RAM中讀數(shù)據(jù))BEH 此指令從RAM中讀數(shù)據(jù),讀地址從地址0開(kāi)始,一直可以讀到地址9,完成整個(gè)RAM數(shù)據(jù)的讀出。芯片允許在讀過(guò)程中用復(fù)位信號(hào)中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時(shí)間。 Copy Scr

16、atchpad (將RAM數(shù)據(jù)復(fù)制到EEPROM中)48H 此指令將RAM中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲(chǔ)存處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持10MS,來(lái)維持芯片工作。Convert T(溫度轉(zhuǎn)換)44H 收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第0、1地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至

17、少保持500MS,來(lái)維持芯片工作。 Recall EEPROM(將EEPROM中的報(bào)警值復(fù)制到RAM)B8H 此指令將EEPROM中的報(bào)警值復(fù)制到RAM中的第2、3個(gè)字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時(shí)被自動(dòng)執(zhí)行。這樣RAM中的兩個(gè)報(bào)警字節(jié)位將始終為EEPROM中數(shù)據(jù)的鏡像。 Read Power Supply(工作方式切換)B4H 此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片會(huì)返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。 u 小結(jié)小結(jié)DS18B20- ROM 指令表 u小結(jié)小結(jié)DS1

18、8B20- RAM 指令表u 六、六、DS18B20 讀寫(xiě)時(shí)序: 由于DS18B20單線通信功能是分時(shí)完成,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:、初始化DS18B20(發(fā)復(fù)位脈沖);、發(fā)ROM功能命令;、發(fā)存儲(chǔ)器操作命令;、處理數(shù)據(jù)。 由于DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。 由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的

19、時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。 協(xié)議定義了幾種信號(hào)的時(shí)序協(xié)議定義了幾種信號(hào)的時(shí)序: 初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸數(shù)據(jù)和命令的傳輸都是低位在先。都是低位

20、在先。1 DS18B20的復(fù)位時(shí)序主機(jī)接收所需最短時(shí)間主機(jī)接收所需最短時(shí)間480us480us DS18B20 DS18B20發(fā)出發(fā)出應(yīng)答脈沖應(yīng)答脈沖主機(jī)發(fā)出復(fù)位脈沖主機(jī)發(fā)出復(fù)位脈沖最小值:最小值:480us480us最大值:最大值:960us960us60 - 240us60 - 240usDS18B20DS18B20等待等待15 - 60us15 - 60usVDDVDDGNDGNDDS18B20DS18B20復(fù)位時(shí)序圖復(fù)位時(shí)序圖總線控制器低電平總線控制器低電平DS18B20DS18B20低電平低電平電阻上拉電阻上拉與與DS18B20DS18B20間的任何通訊都需要以初始間的任何通訊都需要

21、以初始化序列開(kāi)始,一個(gè)復(fù)位脈沖跟著一個(gè)存在脈沖化序列開(kāi)始,一個(gè)復(fù)位脈沖跟著一個(gè)存在脈沖表明表明DS18B20DS18B20已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)。已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)。初始化時(shí)序 主機(jī)首先發(fā)出一個(gè)主機(jī)首先發(fā)出一個(gè)480960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖剑⒃陔S后的并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說(shuō)明總線上有器件微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說(shuō)明總線上有器件已做出應(yīng)答。若無(wú)低電平出現(xiàn)一直都是高電平說(shuō)明總線上無(wú)器件應(yīng)答。已做出應(yīng)答。若無(wú)低電平出現(xiàn)一直都是高電平說(shuō)明總線上無(wú)器件應(yīng)答。做為從器件的做為從器

22、件的DS18B20在一上電后就一直在檢測(cè)總線上是否有在一上電后就一直在檢測(cè)總線上是否有480960微秒微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待1560微秒后將總線電平拉低微秒后將總線電平拉低60240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒(méi)有檢測(cè)到就一微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒(méi)有檢測(cè)到就一直在檢測(cè)等待。直在檢測(cè)等待。 n 接下來(lái)就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向接下來(lái)就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫(xiě)寫(xiě)0和寫(xiě)和寫(xiě)1組組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從成的命令字節(jié),接收

23、數(shù)據(jù)時(shí)也是從DS18B20讀取讀取0或或1的過(guò)程。因此首先要搞清主的過(guò)程。因此首先要搞清主機(jī)是如何進(jìn)行寫(xiě)機(jī)是如何進(jìn)行寫(xiě)0、寫(xiě)、寫(xiě)1、讀、讀0和讀和讀1的。的。n 寫(xiě)周期最少為寫(xiě)周期最少為60微秒,最長(zhǎng)不超過(guò)微秒,最長(zhǎng)不超過(guò)120微秒。寫(xiě)周期一開(kāi)始做為主機(jī)先把總線拉微秒。寫(xiě)周期一開(kāi)始做為主機(jī)先把總線拉低低1微秒表示寫(xiě)周期開(kāi)始。隨后若主機(jī)想寫(xiě)微秒表示寫(xiě)周期開(kāi)始。隨后若主機(jī)想寫(xiě)0,則繼續(xù)拉低電平最少,則繼續(xù)拉低電平最少60微秒直至寫(xiě)微秒直至寫(xiě)周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫(xiě)周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫(xiě)1,在一開(kāi)始拉低總線電平,在一開(kāi)始拉低總線電平1微秒微秒后就釋放總線為高電平

24、,一直到寫(xiě)周期結(jié)束。而做為從機(jī)的后就釋放總線為高電平,一直到寫(xiě)周期結(jié)束。而做為從機(jī)的DS18B20則在檢測(cè)到則在檢測(cè)到總線被拉底后等待總線被拉底后等待15微秒然后從微秒然后從15us到到45us開(kāi)始對(duì)總線采樣,在采樣期內(nèi)總線為開(kāi)始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為高電平則為1,若采樣期內(nèi)總線為低電平則為,若采樣期內(nèi)總線為低電平則為0。對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)隙是從主機(jī)把單總線拉時(shí)序兩個(gè)過(guò)程。讀時(shí)隙是從主機(jī)把單總線拉低之后,在低之后,在1微秒之后就得釋放單總線為高電平,以讓微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)

25、據(jù)傳輸?shù)絾伟褦?shù)據(jù)傳輸?shù)絾慰偩€上??偩€上。DS18B20在檢測(cè)到總線被拉低在檢測(cè)到總線被拉低1微秒后,便開(kāi)始送出數(shù)據(jù),若是要送出微秒后,便開(kāi)始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一則釋放總線為高電平。主機(jī)在一開(kāi)始拉低總線開(kāi)始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期。采樣期內(nèi)總線為高電平

26、則確認(rèn)為內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過(guò)程,至少需要。完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成才能完成DS18B20 單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,如果出現(xiàn)序列混亂,單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,如果出現(xiàn)序列混亂, 1-WIRE 器件將不響應(yīng)主機(jī),因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)器件將不響應(yīng)主機(jī),因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì) DS18B20 的各種操作必的各種操作必須按協(xié)議進(jìn)行。根據(jù)須按協(xié)議進(jìn)行。根據(jù) DS18B20 的協(xié)議規(guī)定,微控制器控制的協(xié)議規(guī)定,微控制器控制 DS18B20 完成溫度的轉(zhuǎn)換完成溫度的轉(zhuǎn)換必須經(jīng)過(guò)以下必須經(jīng)過(guò)以下 4 個(gè)步驟個(gè)步驟 :

27、()每次讀寫(xiě)前對(duì)()每次讀寫(xiě)前對(duì) DS18B20 進(jìn)行復(fù)位初始化。復(fù)位要求主進(jìn)行復(fù)位初始化。復(fù)位要求主 CPU 將數(shù)據(jù)線將數(shù)據(jù)線下拉下拉 500us ,然后釋放,然后釋放, DS18B20 收到信號(hào)后等待收到信號(hào)后等待 16us60us 左右,然后發(fā)出左右,然后發(fā)出 60us240us 的存在低脈沖,主的存在低脈沖,主 CPU 收到此信號(hào)后表示復(fù)位成功。收到此信號(hào)后表示復(fù)位成功。()發(fā)送一條()發(fā)送一條 ROM 指令指令 ()發(fā)送存儲(chǔ)器指令()發(fā)送存儲(chǔ)器指令DS18B20 的存儲(chǔ)器指令集的存儲(chǔ)器指令集 現(xiàn)在我們要做的是讓現(xiàn)在我們要做的是讓DS18B20進(jìn)行一次溫度的轉(zhuǎn)換進(jìn)行一次溫度的轉(zhuǎn)換,那具

28、體的操作就是:,那具體的操作就是:1、主機(jī)先作個(gè)復(fù)位操作,、主機(jī)先作個(gè)復(fù)位操作,2、主機(jī)再寫(xiě)跳過(guò)、主機(jī)再寫(xiě)跳過(guò)ROM的操作(的操作(CCH)命令,)命令,3、然后主機(jī)接著寫(xiě)個(gè)轉(zhuǎn)換溫度的操作命令,、然后主機(jī)接著寫(xiě)個(gè)轉(zhuǎn)換溫度的操作命令,后面釋放總線至少一秒后面釋放總線至少一秒,讓讓DS18B20完成轉(zhuǎn)換的操作。在這里要注意的是每個(gè)命令字節(jié)在寫(xiě)完成轉(zhuǎn)換的操作。在這里要注意的是每個(gè)命令字節(jié)在寫(xiě)的時(shí)候都是低字節(jié)先寫(xiě),例如的時(shí)候都是低字節(jié)先寫(xiě),例如CCH的二進(jìn)制為的二進(jìn)制為11001100,在寫(xiě)到總,在寫(xiě)到總線上時(shí)要從低位開(kāi)始寫(xiě),寫(xiě)的順序是線上時(shí)要從低位開(kāi)始寫(xiě),寫(xiě)的順序是“零、零、壹、壹、零、零、壹、零、零、壹、壹、零、零、壹、壹壹”。整個(gè)操作的總線狀態(tài)如下圖。整個(gè)操作的總線狀態(tài)如下圖。讀取讀取RAM內(nèi)的溫度數(shù)據(jù)。內(nèi)的溫度數(shù)據(jù)。同樣,這個(gè)操作也要接照三個(gè)步驟。同樣,這個(gè)操作也要接照三個(gè)步驟。1、主機(jī)發(fā)出復(fù)位操作并接收、主機(jī)發(fā)出復(fù)位操作并接收DS18B20的應(yīng)答(存在)脈沖。的應(yīng)答(存在)脈沖。2、主機(jī)發(fā)出跳過(guò)對(duì)、主機(jī)發(fā)出跳過(guò)對(duì)ROM操作的命令(操作的

溫馨提示

  • 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)論