單線(xiàn)數字溫度傳感器的原理與應用
摘 要:介紹單線(xiàn)數字溫度傳感器DS1820的特性及工作原理,給出了DS1820與89C51單片機接口的應用實(shí)例,以及由DS1820組成溫度檢測系統的方法,并給出了對DS1820進(jìn)行各種操作的軟件流程圖。
本文引用地址:http://dyxdggzs.com/article/255640.htm關(guān)鍵詞: 單線(xiàn)制(1-Wire) 時(shí)隙 A/D變換
美國DALLAS公司生產(chǎn)的單線(xiàn)數字溫度傳感器DS182,可把溫度信號直接轉換成串行數字信號供微機處理。由于每片DS1820含有唯一的硅串行數所以在一條總線(xiàn)上可掛接任意多個(gè)DS1820芯片。從DS1820讀出的信息或寫(xiě)入DS1820的信息,僅需要一根口線(xiàn)(單線(xiàn)接口)。讀寫(xiě)及溫度變換功率來(lái)源于數據總線(xiàn),總線(xiàn)本身也可以向所掛接的DS1820供電,而無(wú)需額外電源。DS1820提供九位溫度讀數,構成多點(diǎn)溫度檢測系統而無(wú)需任何外圍硬件。
本文給出了DS1820與89C51單片機接口的應用實(shí)例和DS1820組成溫度檢測系統的方法,并給出了對DS1820進(jìn)行各種操作的軟件流程圖。
1 DS1820的特性
·單線(xiàn)接口:僅需一根口線(xiàn)與MCU連接
·無(wú)需外圍元件
·由總線(xiàn)提供電源
·測溫范圍為-55℃~75℃,精度為0.5℃
·九位溫度讀數
·A/D變換時(shí)間為200ms
·用戶(hù)自設定溫度報警上下限,其值是非易失性的
·報警搜索命令可識別哪片DS1820超溫度限
2 DS1820引腳及功能
DS1820的引腳見(jiàn)圖1(PR35封裝)。
GND:地;
DQ:數據輸入/輸出腳(單線(xiàn)接口,可作寄生供電);
VDD:電源電壓。
3 DS1820的工作原理
DS1820的內部結構如圖2所示。由圖2可知,DS1820由三個(gè)主要數字器件組成:
① 64bit閃速ROM;②溫度傳感器;③非易失性溫度報警觸發(fā)器TH和TL。64bit閃速ROM的結構如下:
對DS1820的使用,多采用單片機實(shí)現數據采集。處理時(shí),將DS1820信號線(xiàn)與單片機一位口線(xiàn)相連,單片機可掛接多片DS1820,從而實(shí)現多點(diǎn)溫度檢測系統。
系統對DS1820的操作以ROM命令和存儲器命令形式出現。
3.1 ROM命令代碼及其含義
·READROM命令代碼[33H]:如果只有一片DS1820,可用此命令讀出其序列號,若在線(xiàn)DS1820多于一個(gè),將發(fā)生沖突。
·MATCHROM命令代碼[55H]:多個(gè)DS1820在線(xiàn)時(shí),可用此命令匹配一個(gè)給定序列號的DS1820,此后的命令就針對該DS1820。
·SKIPROM命令代碼[CCH]:此命令執行后的存儲器操作將針對在線(xiàn)的所有DS1820。
·SEARCHRDH命令代碼[F0H]:用以讀出在線(xiàn)的DS1820的序列號。
·ALARMSEARCH命令代碼[ECH]:當溫度值高于TH或低于TL中的數值時(shí),此命令可以讀出報警的DS1820。
3.2 存儲器操作命令代碼及其含義
· WRITESCRATCHPAD命令代碼[4EH]:寫(xiě)兩個(gè)字節的數據到溫度寄存器。
· READSCRATCHPAD命令代碼[BEH]:讀取溫度寄存器的溫度值。
·COPYSCRATCHPAD命令代碼[48H]:將溫度寄存器的數值拷貝到EERAM中,保證溫度值不丟失。
·CONVERT命令代碼[44H]:?jiǎn)?dòng)在線(xiàn)DS1280做溫度A/D轉換。
·RECALL EE命令代碼[B8H]:將EERAM中的數值拷貝到溫度寄存器中。
·READPOWERSUPPLY命令代碼[B4H]:在本命令送到DS1280之后的每一個(gè)讀數據間隙,指出電源模式:“0”為寄生電源;“1”為外部電源。
DS1820單線(xiàn)通信功能是分時(shí)完成的,它有嚴格的時(shí)隙概念。因此系統對DS1820的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS1820(發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數據。各種操作的時(shí)序圖如圖3和圖4所示。
4 溫度檢測系統原理及程序流程圖
溫度檢測系統原理圖如圖5所示,采用寄生電源供電方式。為保證在有效的DS1820時(shí)鐘周期內,提供足夠的電流,我們用一個(gè)MOSFET管和89C51的一個(gè)I/O口(P1.0)來(lái)完成對DS1820總線(xiàn)的上拉。當DS1820處于寫(xiě)存儲器操作和溫度A/D變換操作時(shí),總線(xiàn)上必須有強的上拉,上拉開(kāi)啟時(shí)間最大為10μs。采用寄生電源供電方式時(shí)VDD必須接地。由于單線(xiàn)制只有一根線(xiàn),因此發(fā)送接收口必須是三態(tài)的,為了操作方便我們用89C51的P1.1口作發(fā)送口Tx,P1.2口作接收口Rx。通過(guò)試驗我們發(fā)現此種方法可掛接DS1820數十片,距離可達到50米,而用一個(gè)口時(shí)僅能掛接10片DS1820,距離僅為20米。同時(shí)由于讀寫(xiě)在操作上是分開(kāi)的故不存在信號競爭問(wèn)題。
無(wú)論是單點(diǎn)還是多點(diǎn)溫度檢測,在系統安裝及工作之前,應將主機逐個(gè)與DS1820掛接,讀出其序列號。其工作過(guò)程為:主機Tx發(fā)一個(gè)脈沖,待“0”電平大于480μs后,復位DS1820,待DS1820所發(fā)響應脈沖由主機Rx接收后,主機Tx再發(fā)讀ROM命令代碼33H(低位在前),然后發(fā)一個(gè)脈沖(15μs)并接著(zhù)讀取DS1820序列號的一位。用同樣方法讀取序列號的56位。對于圖5系統的DS1820操作的總體流程圖如圖6所示。它分三步完成:①系統通過(guò)反復操作,搜索DS1820序列號;②啟動(dòng)所有在線(xiàn)DS1820做溫度A/D變換;③逐個(gè)讀出在線(xiàn)DS1820變換后的溫度數據。主機啟動(dòng)溫度變換并讀取溫度值的詳細流程圖如圖7所示;主機寫(xiě)入存儲器數據詳細流程圖如8所示。當有更多的檢測點(diǎn)需要測溫時(shí),可利用89C51的其它口進(jìn)行擴展。同時(shí),也可利用89C51的串行通信口(RXD,TXD)與上位計算機進(jìn)行通信,從而構成微機溫度測量系統網(wǎng)。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論