国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于DS18B20的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2011-11-06 07:19:52查方勇
關(guān)鍵詞:存儲(chǔ)器溫度傳感器字節(jié)

查方勇

(中國(guó)鐵路物資股份有限公司信息管理部,北京100032)

基于DS18B20的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

查方勇

(中國(guó)鐵路物資股份有限公司信息管理部,北京100032)

介紹了一種基于1-wire總線的低成本,高可靠性的多點(diǎn)溫度采集系統(tǒng)。指出了1-wire總線接口數(shù)字溫度傳感器DS18B20的特點(diǎn),詳細(xì)闡述了系統(tǒng)硬件以及軟件的設(shè)計(jì)過(guò)程。整個(gè)系統(tǒng)采用DS18B20數(shù)字溫度傳感器作為溫度采集單元,單片機(jī)采用STC89C52。

1-wire總線;單片機(jī);多點(diǎn)溫度采集;數(shù)字溫度傳感器

1 1-wire單總線簡(jiǎn)介

單總線是Dallas公司的一項(xiàng)專有技術(shù)。它具有節(jié)省I/O口線資源、結(jié)構(gòu)簡(jiǎn)單、成本低廉、便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn)[1]。1-wire單總線適用于單個(gè)主機(jī)系統(tǒng),能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備。當(dāng)只有一個(gè)從機(jī)位于總線上時(shí),系統(tǒng)可按照單節(jié)點(diǎn)系統(tǒng)操作;而當(dāng)多個(gè)從機(jī)位于總線上時(shí),系統(tǒng)則按照多節(jié)點(diǎn)系統(tǒng)操作。

2 DS18B20簡(jiǎn)介及工作原理

DS18B20是DALLAS公司的單總線數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝,其封裝形式與引腳配置如圖1所示。其溫度測(cè)量范圍為-55~+125℃;具有可編程的9~12位的轉(zhuǎn)換精度,測(cè)溫分辨率最高可達(dá) 0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;用戶可自行設(shè)定非易失性的溫度報(bào)警上下限值;工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式供電;每個(gè)DS18B20在出廠之前ROM中光刻有彼此不同的64位系列號(hào),ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以在單總線上掛接多個(gè)DS18B20;多個(gè)DS18B20可以并聯(lián)到單總線上,單片機(jī)只需一個(gè)I/O口與單總線連接就能與多個(gè)DS18B20通信,可以節(jié)省大量的引線和單片機(jī)資源[2]。因具有以上特點(diǎn),DS18B20非常適合于遠(yuǎn)距離的多點(diǎn)溫度采集系統(tǒng)。

圖1 DS18B20封裝與引腳配置

DS18B20內(nèi)部主要由四部分組成:存儲(chǔ)64位序列碼的光刻ROM、高速緩存存儲(chǔ)器、非易失的溫度報(bào)警觸發(fā)器TH和TL、溫度傳感器。

DS18B20的結(jié)構(gòu)框圖如圖2所示。

圖2 DS18B20內(nèi)部結(jié)構(gòu)框圖

(1)64位光刻ROM從高位到低位的組成如表1。

表1 64位光刻ROM組成

光刻ROM在產(chǎn)品出廠之前就已經(jīng)被光刻好,從低位到高位,開(kāi)始8位是產(chǎn)品類型的編碼,接著是每個(gè)器件的唯一的48位系列號(hào),最后8位是前56位的CRC校驗(yàn)碼。

(2)非易失性的溫度報(bào)警觸發(fā)器TH和TL。TH和TL的作用是配置溫度報(bào)警的上下限值,當(dāng)溫度超過(guò)TH或低于TL時(shí),系統(tǒng)就發(fā)出報(bào)警指示。TH和TL的值可以通過(guò)軟件寫(xiě)入相應(yīng)的數(shù)值來(lái)設(shè)定溫度報(bào)警上下限。DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與TH、TL作比較,若T>TH或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。

(3)高速暫存存儲(chǔ)器。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存存儲(chǔ)器和一個(gè)非易失性的可電擦除的EEPROM。數(shù)據(jù)先寫(xiě)入高速暫存存儲(chǔ)器,經(jīng)校驗(yàn)后再傳給EEPROM。高速暫存存儲(chǔ)器組成見(jiàn)表2。

表2 高速暫存存儲(chǔ)器

高速暫存存儲(chǔ)器由9個(gè)字節(jié)的存儲(chǔ)器組成。第1~2個(gè)字節(jié)是溫度的顯示位;第3~4個(gè)字節(jié)是溫度報(bào)警高低限值,這兩個(gè)字節(jié)的數(shù)字可以更新;第5個(gè)字節(jié)是配置寄存器,同時(shí)這個(gè)字節(jié)的數(shù)據(jù)也可以更新;第6、7、8個(gè)字節(jié)是保留的,默認(rèn)值都為1。第9個(gè)字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來(lái)保證通信正確。第5個(gè)字節(jié)的配置寄存器用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20工作時(shí)按此寄存器中設(shè)定的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如表3:低5位一直都是1,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,建議用戶不要改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即用來(lái)設(shè)置分辨率,分辨率配置如表4所示(DS18B20出廠時(shí)被設(shè)置為12位)。

表3 配置寄存器

表4 分辨率配置模式表

由表4可見(jiàn),設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間之間權(quán)衡考慮。

當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)中。數(shù)據(jù)的存儲(chǔ)格式如表5所示。

DS18B20在出廠時(shí)默認(rèn)配置為12位,其中最高位為符號(hào)位,溫度值共11位,單片機(jī)讀取數(shù)值時(shí)一次會(huì)讀兩字節(jié)共16位,讀完后將低11位的二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)后再乘以0.0625便是所測(cè)的實(shí)際溫度值。另外還需要判斷溫度的正負(fù)。前5個(gè)數(shù)字為符號(hào)位,這5位同時(shí)變化。前5位為1時(shí),讀取的溫度為負(fù)值,此時(shí)測(cè)取的數(shù)值取反加1再乘以0.0625得到的數(shù)值即為負(fù)值時(shí)的實(shí)際溫度值。前5位為0時(shí),讀取的溫度為正值,此時(shí)只要將測(cè)得的數(shù)值乘以0.0625即可得到實(shí)際的溫度值。當(dāng)DS18B20設(shè)置為其它分辨率的時(shí)候,根據(jù)相應(yīng)的轉(zhuǎn)換精度,其溫度的處理方法與上述相同。在本系統(tǒng)中由于對(duì)轉(zhuǎn)換的精度要求較高,而且轉(zhuǎn)換時(shí)間也不是很苛刻,所以DS18B20設(shè)置為默認(rèn)的12位分辨率。

(4)CRC的校驗(yàn)。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。

表5 溫度數(shù)據(jù)存儲(chǔ)格式

3 系統(tǒng)硬件設(shè)計(jì)

系統(tǒng)由多個(gè)外接的溫度傳感器及數(shù)碼管顯示單元、鍵盤(pán)電路、報(bào)警電路、單片機(jī)、通信接口組成。傳感器將溫度轉(zhuǎn)為模擬信號(hào)后由傳感器內(nèi)部的A/D轉(zhuǎn)換單元將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),數(shù)字信號(hào)經(jīng)過(guò)單總線傳輸至單片機(jī)處理,最后將溫度值顯示并存儲(chǔ)起來(lái)。通過(guò)鍵盤(pán)可以控制數(shù)據(jù)的回放,同時(shí)也讓系統(tǒng)具有超溫報(bào)警功能。

3.1 系統(tǒng)主控芯片

本系統(tǒng)采用STC89C52單片機(jī)⑴為主控芯片。STC89C52是一種低功耗、高性能CMOS 8位微控制器,具有8Kb容量的在系統(tǒng)可編程Flash存儲(chǔ)器[3]。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧8位CPU和在線系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52具有以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,2個(gè)外部中斷源,全雙工串行口等。

在本設(shè)計(jì)中STC89C52單片機(jī)的引腳配置如圖3所示。

圖3 89C52的引腳配置

3.2 系統(tǒng)顯示部分

系統(tǒng)顯示部分選擇四個(gè)共陽(yáng)極數(shù)碼管來(lái)作為顯示單元,如圖4所示。用數(shù)碼管作為顯示單元不僅節(jié)約成本而且顯示效果更直觀。圖中DS1顯示數(shù)據(jù)代表測(cè)溫線路的路數(shù),其余三個(gè)則顯示溫度的具體數(shù)值,精確到小數(shù)點(diǎn)后一位。

圖4 數(shù)碼管顯示單元

3.3 系統(tǒng)功能按鍵

按鍵部分設(shè)有一個(gè)開(kāi)關(guān)按鍵,一個(gè)復(fù)位按鍵,五個(gè)功能按鍵。功能按鍵S1為溫度路線切換按鍵,按鍵S2、S3分別用來(lái)選擇設(shè)置好的溫度報(bào)警的上下限數(shù)值,按鍵S4、S5為溫度報(bào)警數(shù)值的設(shè)定按鈕。按鍵電路如圖5所示,按鍵電路設(shè)計(jì)為一端接地,一端直接接單片機(jī)I/O端口。由于沒(méi)有采用硬件消抖電路,在程序設(shè)計(jì)上需要采取相應(yīng)的軟件消抖措施,這樣可以避免一些不必要的誤操作。

圖5 按鍵電路

3.4 系統(tǒng)測(cè)溫電路

溫度采集部分由于是單總線傳輸模式,所以單片機(jī)與DS18B20的通信部分采用三線可拔插接口設(shè)計(jì),如圖6所示,其中1為接地端,2為數(shù)據(jù)總線,3為電源端。多個(gè)DS18B20只需將DQ數(shù)據(jù)端口掛接在數(shù)據(jù)總線上就可以進(jìn)行多路溫度采集。在數(shù)據(jù)總線上用4.7千歐的上拉電阻保證數(shù)據(jù)總線在空閑狀態(tài)時(shí)為高電平。

圖6 溫度采集接口

3.5 系統(tǒng)總體電路圖

系統(tǒng)總體電路設(shè)計(jì)除了以上所述各部分電路以外還應(yīng)包括時(shí)鐘電路、電源供電電路、系統(tǒng)復(fù)位電路、報(bào)警電路等部分組成,以下圖7所示為系統(tǒng)設(shè)計(jì)的總體電路圖。

圖7 系統(tǒng)總電路圖

4 系統(tǒng)軟件設(shè)計(jì)

軟件部分用C語(yǔ)編寫(xiě),由頭文件、延時(shí)程序、溫度檢測(cè)程序、溫度數(shù)據(jù)處理程序、數(shù)碼管顯示及報(bào)警程序、現(xiàn)實(shí)數(shù)據(jù)處理程序、溫度報(bào)警設(shè)置函數(shù)和程序主函數(shù)八個(gè)部分組成。部分程序代碼如下:

4.1 溫度顯示處理程序[4]:

4.2 程序主函數(shù)

本設(shè)計(jì)介紹了遠(yuǎn)程多點(diǎn)溫度采集的解決方案,并給出了硬件電路及部分驅(qū)動(dòng)程序。該設(shè)計(jì)是一種低成本的解決方案。該方案具有實(shí)現(xiàn)簡(jiǎn)單、應(yīng)用廣泛、通信可靠、可移植性強(qiáng)等特點(diǎn),在工業(yè)領(lǐng)域中有著較為廣闊的應(yīng)用空間。

[1]何立民.單片機(jī)高級(jí)教程—應(yīng)用與設(shè)計(jì)(第2版)[M].北京:北京航空航天大學(xué)出版社,2007.

[2]美國(guó)達(dá)拉斯半導(dǎo)體公司,數(shù)字溫度傳感器DS18B20芯片手冊(cè)[EB/OL].2008.

[3]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社出版,2005.

[4]郭天翔.新概念51單片機(jī)C語(yǔ)言教程——入門(mén)、提高、開(kāi)發(fā)、拓展[M].北京:電子工業(yè)出版社,2009.

Design and realization of multipoint temperature acquisition system based on D218B20

ZHA Fang-yong
(Information Management Department,China Railway Materials Commercial Company Limited,Xicheng 100032,Beijing,China)

The article introduces a multipoint temperature acquisition system based on 1-wire bus,in dicates the characters of 1-wire bus interface digital temperature sensor and explains in detail the design process of control system software and hardware.The whole system takes DS18B20 digital temperature sensor as temperature gathering unit.Single-chip microcomputer is STC89C52.A multi point temperature gathering scheme with low cost and high reliability has been realized.

1-wire bus;single-chip computer;multipoint temperature acquisition;digital temperature sensor

TP212.1+1;TP212.9

A

1003-8078(2011)06-0046-05

2011-09-24 doi10.3969/j.issn.1003 -8078.2011.06.13

查方勇,男,湖北蘄春人,工程師,碩士,主要從事計(jì)算機(jī)軟件工程研究和開(kāi)發(fā).

在許多傳統(tǒng)行業(yè)中,多路高精度溫度采集系統(tǒng)是不可或缺的。糧倉(cāng)、電廠、石化行業(yè)、鋼鐵廠以及制藥廠等企業(yè)生產(chǎn)過(guò)程中,普遍存在著需要進(jìn)行大量的溫度測(cè)量的場(chǎng)合。本文結(jié)合實(shí)際使用需求,采用DS18B20⑷數(shù)字溫度傳感器及單片機(jī)設(shè)計(jì)硬件連接電路,并給出了硬件電路圖及部分程序。

(張所濱)

猜你喜歡
存儲(chǔ)器溫度傳感器字節(jié)
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
溫度傳感器DS18B20在溫度計(jì)設(shè)計(jì)中的應(yīng)用
電子制作(2019年12期)2019-07-16 08:45:44
No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
一種高性能CMOS溫度傳感器
XTR105電流變送器在溫度傳感器中的應(yīng)用
電子制作(2018年12期)2018-08-01 00:47:40
簡(jiǎn)談MC7字節(jié)碼
溫度傳感器在筆記本電腦散熱系統(tǒng)中的應(yīng)用
存儲(chǔ)器——安格爾(墨西哥)▲
基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
工布江达县| 淮南市| 临潭县| 和田市| 晋宁县| 靖安县| 房产| 威远县| 柳林县| 孝感市| 阜康市| 安平县| 临汾市| 吴江市| 渝北区| 方山县| 西盟| 广安市| 清新县| 巢湖市| 新竹县| 延寿县| 武功县| 兰溪市| 广南县| 建昌县| 滦平县| 广水市| 甘孜| 石屏县| 闻喜县| 文昌市| 山西省| 湖口县| 饶平县| 丰宁| 昔阳县| 阜阳市| 莆田市| 九台市| 繁峙县|