1 引言
許多情況下需要測量溫度參數(shù)。通常測溫系統(tǒng)的主要器件是熱敏電阻,由于它體積小、重復(fù)性好、測量方法簡單,所以在測溫系統(tǒng)中廣泛應(yīng)用。但采用熱敏電阻的測溫系統(tǒng)需要A/D轉(zhuǎn)換,而且測量精度不高。本文采用Dallas公司生產(chǎn)的一種新型溫度傳感器DS18B20,它集溫度測量、A/D轉(zhuǎn)換于一體,其測量范圍寬(-55℃~+125℃),精度高(0.0625℃),DS18B20是一款具有單總線結(jié)構(gòu)的器件。
由DS18B20組建的溫度測量單元體積小,便于攜帶、安裝。同時,DS18B20的輸出為數(shù)字量,可以直接與單片機連接,無需后級A/D轉(zhuǎn)換,控制簡單。由于DS18B20具有單總線特性,便于擴展,可在一根總線上掛接多個DS18B20來組建溫度測量網(wǎng)絡(luò)。
2 硬件電路設(shè)計
本系統(tǒng)設(shè)計采用 Mega8單片機控制DS18B20,由顯示電路顯示當前溫度。其系統(tǒng)硬件電路如圖1所示。Atmel的Mega8單片機采用RTSC(精簡指令集),指令執(zhí)行速度快,內(nèi)嵌8 KB Flash程序存儲器,支持ISP(在系統(tǒng)編程),片內(nèi)含有大容量的RAM區(qū),具有SPT總線、I2C總線、ADC功能。Mega8單片機體積小,功能強,具有PDIP-28封裝及TQFP封裝。
DS18B20采用單總線方式和Mega8單片機相連,即DS18B20的1引腳和3引腳接地,2引腳通過一只240 Ω的電阻接至Mega8的PB7引腳,同時將PB7引腳采用一只4.7 kΩ的電阻上拉至VCC。
單總線即只用一根信號線,既供電,又傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,單總線具有"線與"功能,連接方便,便于擴展。
由于DS18B20采用 CMOS技術(shù),耗電量很小,從總線上"偷"一點電保存到DS18B20內(nèi)的電容中就可供給器件工作。串聯(lián)240 Ω電阻的目的是防止有缺陷的程序損壞DS18B20,如果沒有正確地采用OC(集電極開路)或OD(漏極開路)結(jié)構(gòu)驅(qū)動DS18B20,而是選擇推挽方式,DS18B20可能被燒壞。 2.1 DS18B20的控制時序
由于DS18B20是采用一根I/O總線讀寫數(shù)據(jù),因此,DS18B20對讀寫數(shù)據(jù)位有嚴格的時序要求。DS18B20遵循相應(yīng)的通信協(xié)議從而保證數(shù)據(jù)傳輸?shù)恼_性和完整性。該通信協(xié)議定義了多種信號時序:初始化時序、讀時序、寫時序。所有時序都是將單片機作為主機,DS18B20作為從機。每一次命令和數(shù)據(jù)傳輸都是從主機啟動寫時序開始,如果要求從機回送數(shù)據(jù),在寫命令后,主機需啟動讀時序接收數(shù)據(jù)。所有的讀、寫時序至少需要60μs,且每兩個獨立的時序之間至少需要1μs的恢復(fù)時間。數(shù)據(jù)和命令的傳輸都足低位優(yōu)先。
DS18B20的復(fù)位時序包括主機發(fā)出的復(fù)位脈沖和從機發(fā)出的應(yīng)答脈沖。上機通過拉低單總線并保持至少480μs產(chǎn)十復(fù)位脈沖,然后由主機釋放總線,進入接收模式。主機釋放總線時,會產(chǎn)生一個由低電半跳變?yōu)楦唠娖降纳仙?,DS18B20檢測到該上升沿后,延時15μs~60μs,接著DS18B20通過拉低總線60μs~240μs產(chǎn)生應(yīng)答脈沖。主機接收到DB18B20的應(yīng)答脈沖后就開始對DS18B20進行ROM命令和功能命令操作。DS18B20的復(fù)位時序如圖2所示。
DS18B20的讀時序分為讀0時序和讀1時序。DS18B20的讀時序是主機將單總線拉為低電平,在15μs之內(nèi)釋放單總線,以便使DS18B20將數(shù)據(jù)傳輸?shù)絾慰偩€上。若DS18B20發(fā)送1,總線保持高電平,若發(fā)送0,則總線為低電平。由于DS18B20發(fā)送數(shù)據(jù)后保持15μs有效時間,因此,主機在讀時序時必須釋放總線,且保持15μs的采樣總線狀態(tài),以便接收DS18B20發(fā)送數(shù)據(jù)。DS18B20的讀時序如圖3所示。
DS18B20具有下面控制命令,如表1所示。
3 軟件設(shè)計
Mega8單片機對DS18B20的控制嚴格遵循單總線的復(fù)位及讀、寫時序要求,同時,需要寫入必要的控制字控制DS18B20完成相應(yīng)工作。當寫入0x44控制字啟動DS18B20溫度轉(zhuǎn)換后,需要等待至少800 ms,在這個時間段內(nèi)DS18B20完成溫度的采集和A/D轉(zhuǎn)換,此時讀取的數(shù)據(jù)才是正確的。軟件程序流程圖如圖5所示。
4 結(jié)束語
DS18B20集溫度測量、A/D轉(zhuǎn)換于一體,具有體積小、動態(tài)范圍寬、測量精度高、單總線結(jié)構(gòu)等特點。經(jīng)試驗,基于Mega8單片機和DS18B20的溫度測量儀,設(shè)計簡單,控制方便,測量準確,測溫范圍寬,完全可以取代水銀溫度計和熱敏電阻測量。利用單總線具有很強的擴展性,還可以組建多點的溫度檢測網(wǎng)絡(luò)。因此,基于Mega8單片機和DS18B20的溫度測量儀,具有廣泛的應(yīng)用前景。