基于單總線的溫度實時監(jiān)控系統(tǒng)(YST).doc_第1頁
基于單總線的溫度實時監(jiān)控系統(tǒng)(YST).doc_第2頁
基于單總線的溫度實時監(jiān)控系統(tǒng)(YST).doc_第3頁
基于單總線的溫度實時監(jiān)控系統(tǒng)(YST).doc_第4頁
基于單總線的溫度實時監(jiān)控系統(tǒng)(YST).doc_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課 程 設(shè) 計 報 告 書 專 用 紙基于單總線的實時溫度監(jiān)控系統(tǒng)1 引言基于數(shù)字溫度傳感器構(gòu)成的實時監(jiān)控系統(tǒng)確實具有精度高、抗干擾能力強、電路簡單等諸多優(yōu)點,溫度傳感器得到電纜長度達到幾十米都可以正常讀取溫度數(shù)據(jù),并且已經(jīng)在站長開發(fā)的機房安全監(jiān)控系統(tǒng)中得到了實際考驗,那可是要365天從不間斷地對機房及相關(guān)設(shè)備提供實時溫度監(jiān)控。1.1 流程圖本系統(tǒng)軟件部分采用Delphi來實現(xiàn)初始化、數(shù)據(jù)采集處理、溫度報表管理,其主程序的流程圖見圖1。 圖1主程序流程圖本系統(tǒng)軟件部分共分為3個部分,分別是:1)初始化程序。a設(shè)置串行通信波特率;b串行通訊方式的初始化;c對TO,T1兩個計數(shù)器的初始化;d中斷控制程序的初始化。此外,還負(fù)責(zé)從E2PROM 中調(diào)出以前的采樣參數(shù),使器件能夠以它采樣溫度數(shù)據(jù)。2) 當(dāng)監(jiān)控到ONTIME1和NTIME2標(biāo)記時作相應(yīng)溫度的存儲、轉(zhuǎn)換、發(fā)送處理。ONTIME1和NTIME2的標(biāo)記主要有定時電路決定,當(dāng)?shù)竭_采樣間隔時,做出相應(yīng)的處理。3)采用動態(tài)顯示方式即時顯示溫度,以節(jié)省電路規(guī)模,使得整個系統(tǒng)的體積變小。2 硬件電路設(shè)計在硬件電路設(shè)計時,應(yīng)著重考慮電子器件的供電方式,以及對器件的限壓和限流保護。因為本次設(shè)計要求利用單總線技術(shù),所以可以考慮使用寄生供電方式。設(shè)計的電路圖如下。圖2 基于單總線的溫度實時監(jiān)控系統(tǒng)硬件電路總圖2.1軟件設(shè)計2.1.1設(shè)計窗體本次設(shè)計要求軟件的可視化窗體中包含實時溫度顯示、數(shù)據(jù)記錄、存儲管理和ROM數(shù)據(jù),并且能將測得的數(shù)據(jù)保存到指定的數(shù)據(jù)庫中。窗體界面如下。(a)溫度計 (b)存儲管理(c) 數(shù)據(jù)記錄(d)存儲管理(e)ROM數(shù)據(jù)圖3 窗體界面實時溫度顯示中可以看到當(dāng)前室溫,并且可以顯示攝氏溫度和華氏溫度。數(shù)據(jù)記錄包含溫度曲線和溫度日志,可以顯示一天內(nèi)的溫度變化曲線。存儲管理和ROM數(shù)據(jù)用來對數(shù)據(jù)庫中已經(jīng)保存的溫度數(shù)據(jù)進行管理,如刪除、轉(zhuǎn)移等操作。3 元器件的選擇3.1主要元器件知識3.1.1DS18B20DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式;溫度測量范圍為55125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統(tǒng)。 1) DS18B20的內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)如圖5所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖7所示,DQ為數(shù)字信號輸入輸出端;GND為電源地;VDD為外接供電電源輸入端,在寄生電源接線方式時接地,見圖5。圖4 DS18B20的內(nèi)部結(jié)構(gòu)圖5 DS18B20的管腳排列ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個DS18B20的64位序列號均不相同。64位ROM的排的循環(huán)冗余校驗碼(CRC=X8X5X41)。ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。DS18B20中的溫度傳感器完成對溫度的測量,用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625/LSB形式表達,其中S為符號位。例如125的數(shù)字輸出為07D0H,25.0625的數(shù)字輸出為0191H,25.0625的數(shù)字輸出為FF6FH,55的數(shù)字輸出為FC90H。 高低溫報警觸發(fā)器TH和TL、配置寄存器均由一個字節(jié)的EEPROM組成,使用一個存儲器功能命令可對TH、TL或配置寄存器寫入。其中配置寄存器的格式如下:0 R1 R0 1 1 1 1 1 MSBLSBR1、R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0=“00”,9位精度,最大轉(zhuǎn)換時間為93.75ms;R1R0=“01”,10位精度,最大轉(zhuǎn)換時間為187.5ms;R1R0=“10”,11位精度,最大轉(zhuǎn)換時間為375ms;R1R0=“11”,12位精度,最大轉(zhuǎn)換時間為750ms;未編程時默認(rèn)為12位精度。高速暫存器是一個9字節(jié)的存儲器。開始兩個字節(jié)包含被測溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH、TL、配置寄存器的臨時拷貝,每一次上電復(fù)位時被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的CRC碼,可用來保證通信正確。 2) DS18B20的工作時序DS18B20的一線工作協(xié)議流程是:初始化ROM操作指令存儲器操作指令數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序,如圖6(a)(b)(c)所示。(a)初始化時序(b)寫時序(c)讀時序圖6 DS18B20的工作時序圖3) DS18B20與微處理器的連接DS18B20與微處理器的連接如下圖7所示。(a)寄生電源工作方式(b)外接電源工作方式圖7 DS18B20與微處理器的典型連接圖3.1.2DS2480B1) DS2480B主要特性串口UART/RS232至單總線通信協(xié)議的轉(zhuǎn)接橋,可直接連到UART和5V RS232系統(tǒng)中, 支持Dallas全系列單總線器件,如數(shù)字溫度傳感器DS18B20、A/D轉(zhuǎn)換器DS2450等;將主機從單總線時序控制中解脫出來,提供規(guī)范的、靈活的和強驅(qū)動的單總線定時;支持標(biāo)準(zhǔn)UART通信,支持9.6(默認(rèn))、19.2、57.6和115.2 kbps速率;具有較強的總線驅(qū)動能力,通信距離可達300 m;可編程下拉擺率控制和有源上拉,工作范圍 5 V,-40 +85 ,8引腳SOIC封裝。12348765RXDTXDPOLVPPGND1-WNCVDD2)管腳圖及引腳說明圖8 DS2480B的封裝和引腳DS2480B為8腳貼片式封裝,如圖8所示。引腳功能如表1所列引腳號引腳名稱引 腳 功 能1GND地線21-W單總線輸入輸出端3NC懸空4VDD4.55.5V電壓5VPPEPROM編程電壓6POLRXD/TXD選擇端7TXD發(fā)送端8RXD接收端表1 引腳功能說明DS2480B工作原理框圖如圖9所示。圖9 DS2480B工作原理框圖3) DS2480B與RS232的接口技術(shù):DS2480B與RS232的接口如圖10所示。 圖10 DS2480B與RS232的接口圖 3.2元件清單序號元件個數(shù)1PC機串行口UART/RS2321 個2轉(zhuǎn)接橋DS2480B1 個3數(shù)字溫度傳感器DS18B201 個4電容U07HF1 個5穩(wěn)壓管2 個6二極管M72 個7電路板XF071 個 表2 元件清單4 學(xué)習(xí)心得實訓(xùn)結(jié)束了,說長也不長,說短也不短,但是的確難熬。因為每天對著一臺電腦,機械著制作、調(diào)試。測試成功激動萬分,可萬一出現(xiàn)一些小問題,那這是像熱鍋上的螞蟻,到處亂竄,找老師找同學(xué)來幫忙解決,雖然實訓(xùn)過程有些苦,中午都是在機房度過,也沒好好吃過一頓好午餐,但是收獲還是頗豐。每一門專業(yè)的學(xué)習(xí)都需要理論結(jié)合實踐,只是有時候?qū)W校的教學(xué)條件受到限制。但是沒關(guān)系,對于每一次的實訓(xùn)我們都很珍惜,因為每一次我們都有很多的感受,因為這不僅僅是一次實訓(xùn),也是對于我們各方面能力的培養(yǎng),也能證明我們自己的實力。這次實訓(xùn)給我的最大的啟發(fā)就是學(xué)習(xí)需要靈活應(yīng)變,學(xué)以致用,更要動腦子去思考問題。因為,對于我個人而言,有些程序的代碼我還是看得懂的,但是我沒有聯(lián)系到實際。如果我在實訓(xùn)當(dāng)中能認(rèn)真的去思考一些問題,并把操作好好調(diào)試幾遍,我想問題也就會減少很多。也就是說,知識需活學(xué)活用,勤學(xué)善思,當(dāng)然,在以后的生活中、學(xué)習(xí)中也是如此。5 參考文獻1 DS18B20 Programmable Resolution 1-Wire Digital Thermometer2 DS2480B Serial 1-Wire Line Driver with Load Sensor3 左冬紅,謝瑞和.實現(xiàn)單總線搜索ROM命令的一種算法4 求是科技.單片機典型模塊設(shè)計實例導(dǎo)航附:源程序清單- procedure TForm1.ReadTemperature2(session_handle : longint);var tsht, i, tmp1 : smallint; cr,cpc, tmpf,tmp : Extended; rbuf : array0.9 of smallint ; st : longint; CRCByte ,xiaxianbyte: Byte;begin tmp := 0.00; access the device if (TMAccess(session_handle,StateBuf)= 1) then begin Send the recall E2 command (by setting $B8 to outbyte in TMTouchByte) make sure Scratch is correct TMTouchByte(session_handle, $B8); Send the start T command if (TMAccess(session_handle,StateBuf) = 1) then begin Prepare the strong pullup after next TMTouchByte TMOneWireLevel(session_handle,LEVEL_SET,LEVEL_STRONG_PULL_UP, PRIMED_BYTE); Send the conversion command (by setting $44 to outbyte in TMTouchByte) TMTouchByte(session_handle, $44); Sleep for a second st := GetTickCount + 1000; While (GetTickCount st) do TMValidSession(Session_handle); Disable the strong pullup TMOneWireLevel(session_handle, LEVEL_SET,LEVEL_NORMAL,PRIMED_NONE); verify conversion is complete by setting $01 to outbit in TMTouchBit and check the return value with 1 if (TMTouchBit(session_handle,$01) = $01) then begin Access device If (TMAccess(session_handle,StateBuf) = 1 ) then begin Send read scratch command by setting $BE to outbyte in TMTouchByte TMTouchByte(session_handle,$BE); CRC8 := 0; Read scratch (setting $FF to outbyte in TMTouchByte) and check crc for each byte for i := 0 to 7 do begin rbufi:= TMTouchByte(session_handle, $FF); CRCByte := Byte(rbufi); the byte to run through CRC8 routine CRC8 := TMCRC(1, CRCByte, CRC8, 0); end; Check crc CRCByte := Byte(TMTouchByte(session_handle, $FF); the byte to run through CRC8 routine CRC8 := TMCRC(1, CRCByte, CRC8, 0); if ( CRC8 = 0 ) then begin Calculate the temperarure tsht := rbuf0; if (rbuf1 and $01)= 1) then tsht := tsht or (-256); tmp1 := Round(tsht)/2); tmp := tmp1; cr := rbuf6; cpc := rbuf 7; if (rbuf7 0) then tmp := tmp - (0.25) + (cpc-cr)/cpc; if (rbuf1 and $F8)= $F8) then BEGIN/溫度為負(fù)值 END ELSE BEGIN/溫度為正值 case (rbuf4 and $60) of $00: begin tmp:=(rbuf1 and $07)*16+(rbuf0 and $f8)/16;/9位分辨率 fenbianlv2 :=9; diwei2 :=(rbuf0 and $f8)/16; end; $20: begin fenbianlv2 :=10; tmp:=(rbuf1 and $07)*16+(rbuf0 and $fc)/16;/10位分辨率 diwei2 :=(rbuf0 and $fc)/16; end; $40: begin fenbianl

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論