新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于單總線器件DS18B20的溫度測量儀

        基于單總線器件DS18B20的溫度測量儀

        作者:廖琪梅,韓彬,楊文昭,屈景輝 時間:2008-08-28 來源:中電網 收藏

          1 引言

        本文引用地址:http://www.104case.com/article/87493.htm

          許多情況下需要測量溫度參數。通常系統的主要器件是熱敏電阻,由于它體積小、重復性好、測量方法簡單,所以在系統中廣泛應用。但采用熱敏電阻的系統需要轉換,而且測量精度不高。本文采用Dallas公司生產的一種新型溫度DS18B20,它集溫度測量、轉換于一體,其測量范圍寬(-55℃~+125℃),精度高(0.0625℃),DS18B20是一款具有單總線結構的器件。

          由DS18B20組建的溫度測量單元體積小,便于攜帶、安裝。同時,DS18B20的輸出為數字量,可以直接與連接,無需后級轉換,控制簡單。由于DS18B20具有單總線特性,便于擴展,可在一根總線上掛接多個DS18B20來組建溫度測量網絡。

          2 硬件電路設計

          本系統設計采用 Mega8控制DS18B20,由顯示電路顯示當前溫度。其系統硬件電路如圖1所示。Atmel的Mega8采用RTSC(精簡指令集),指令執行速度快,內嵌8 KB Flash程序存儲器,支持ISP(在系統編程),片內含有大容量的RAM區,具有SPT總線、I2C總線、ADC功能。Mega8單片機體積小,功能強,具有PDIP-28封裝及TQFP封裝。

          DS18B20采用單總線方式和Mega8單片機相連,即DS18B20的1引腳和3引腳接地,2引腳通過一只240 Ω的電阻接至Mega8的PB7引腳,同時將PB7引腳采用一只4.7 kΩ的電阻上拉至VCC。

          單總線即只用一根信號線,既供電,又傳輸數據,而且數據傳輸是雙向的,單總線具有"線與"功能,連接方便,便于擴展。

          由于DS18B20采用 CMOS技術,耗電量很小,從總線上"偷"一點電保存到DS18B20內的電容中就可供給器件工作。串聯240 Ω電阻的目的是防止有缺陷的程序損壞DS18B20,如果沒有正確地采用OC(集電極開路)或OD(漏極開路)結構驅動DS18B20,而是選擇推挽方式,DS18B20可能被燒壞。 2.1 DS18B20的控制時序

          由于DS18B20是采用一根I/O總線讀寫數據,因此,DS18B20對讀寫數據位有嚴格的時序要求。DS18B20遵循相應的通信協議從而保證數據傳輸的正確性和完整性。該通信協議定義了多種信號時序:初始化時序、讀時序、寫時序。所有時序都是將單片機作為主機,DS18B20作為從機。每一次命令和數據傳輸都是從主機啟動寫時序開始,如果要求從機回送數據,在寫命令后,主機需啟動讀時序接收數據。所有的讀、寫時序至少需要60μs,且每兩個獨立的時序之間至少需要1μs的恢復時間。數據和命令的傳輸都足低位優先。

          DS18B20的復位時序包括主機發出的復位脈沖和從機發出的應答脈沖。上機通過拉低單總線并保持至少480μs產十復位脈沖,然后由主機釋放總線,進入接收模式。主機釋放總線時,會產生一個由低電半跳變為高電平的上升沿,DS18B20檢測到該上升沿后,延時15μs~60μs,接著DS18B20通過拉低總線60μs~240μs產生應答脈沖。主機接收到DB18B20的應答脈沖后就開始對DS18B20進行ROM命令和功能命令操作。DS18B20的復位時序如圖2所示。

          DS18B20的讀時序分為讀0時序和讀1時序。DS18B20的讀時序是主機將單總線拉為低電平,在15μs之內釋放單總線,以便使DS18B20將數據傳輸到單總線上。若DS18B20發送1,總線保持高電平,若發送0,則總線為低電平。由于DS18B20發送數據后保持15μs有效時間,因此,主機在讀時序時必須釋放總線,且保持15μs的采樣總線狀態,以便接收DS18B20發送數據。DS18B20的讀時序如圖3所示。

           DS18B20的寫時序仍然分為寫0時序和寫1時序。但DS18B20寫0時序和寫1時序的要求不同。DS18B20寫0時序時,單總線需要被拉低至少60μs,保證DS18B20能夠在15μs~45μs能夠正確地采樣I/O總線上的"0"電平;DS18B20寫1時序時,單總線被拉低,并在15μs內釋放單總線。DS18B20的寫時序如圖4所示。
         

         

          DS18B20具有下面控制命令,如表1所示。

          2.2 DS18B20的控制命令


           單片機向DS18B20發送這些控制命令,完成相應操作。例如,向DS18B20發送0x44命令,則DS18B20開始啟動溫度轉換。 

          3 軟件設計

          Mega8單片機對DS18B20的控制嚴格遵循單總線的復位及讀、寫時序要求,同時,需要寫入必要的控制字控制DS18B20完成相應工作。當寫入0x44控制字啟動DS18B20溫度轉換后,需要等待至少800 ms,在這個時間段內DS18B20完成溫度的采集和A/D轉換,此時讀取的數據才是正確的。軟件程序流程圖如圖5所示。

          主程序如下所示:


          4 結束語 

          DS18B20集溫度測量、A/D轉換于一體,具有體積小、動態范圍寬、測量精度高、單總線結構等特點。經試驗,基于Mega8單片機和DS18B20的溫度測量儀,設計簡單,控制方便,測量準確,測溫范圍寬,完全可以取代水銀溫度計和熱敏電阻測量。利用單總線具有很強的擴展性,還可以組建多點的溫度檢測網絡。因此,基于Mega8單片機和DS18B20的溫度測量儀,具有廣泛的應用前景。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 林州市| 常熟市| 大渡口区| 马关县| 秦安县| 灵山县| 朔州市| 措美县| 内丘县| 云安县| 通江县| 西城区| 连云港市| 方城县| 绵阳市| 沾益县| 宣武区| 彝良县| 新龙县| 石首市| 彭泽县| 太仆寺旗| 天气| 金川县| 上思县| 扎赉特旗| 沙雅县| 杨浦区| 屏边| 临沭县| 洱源县| 星座| 嵊泗县| 岐山县| 靖江市| 饶河县| 娄底市| 贺州市| 西乌| 凤翔县| 青铜峡市|