【導(dǎo)讀】本文使用的DS75LX是一款高精度的串行數(shù)字輸出型溫度傳感器,測(cè)量的溫度數(shù)據(jù)可通過兩線串行總線(與I2C總線兼容)輸出。實(shí)現(xiàn)傳感精度和靈敏度等性能的提高。
DS75LX
DS75LX工作電壓為1.7 V到3.7 V。除了基本的測(cè)溫功能外,DS75LX還具有溫度報(bào)警功能,允許用戶通過軟件設(shè)置報(bào)警溫度的門限值。DS75LX測(cè)溫范圍為-55℃~+125℃,當(dāng)測(cè)溫范圍為-25℃~+100℃時(shí),測(cè)量精度為±2℃。DS75LX同時(shí)具有可編程的9至12位的溫度數(shù)據(jù)輸出格式。輸出的溫度數(shù)據(jù)為12位時(shí),其分辨率可達(dá)0.0625℃。該傳感器具有三個(gè)地址引腳,可設(shè)置為三種狀態(tài)中的任意一種:接GND、VDD,或懸空,可設(shè)置27種地址組合。例如A2、A1和A0分別為接電源、接地和懸空時(shí),DS75LX的器件地址為0101110。圖1是DS75LX的引腳排列,各功能描述如表1所示。
圖1:DS75LX引腳排列
DS75LX的工作原理
DS75LX通過一個(gè)能隙帶溫度感知體系結(jié)構(gòu)來實(shí)現(xiàn)溫度測(cè)量。片上△-∑模數(shù)轉(zhuǎn)換器將所測(cè)的環(huán)境溫度直接轉(zhuǎn)換成數(shù)字量并存儲(chǔ)在溫度寄存器中。DS75LX一上電就開始測(cè)量溫度,用戶可通過軟件設(shè)置配置寄存器的內(nèi)容以滿足自身的測(cè)量要求。DS75LX除了基本的溫度測(cè)量外還具有溫度報(bào)警模塊。與溫度報(bào)警模塊相關(guān)的兩個(gè)寄存器分別為報(bào)警門限寄存器Tos和溫度遲滯寄存器Thyst。該模塊可配置為兩種工作模式:比較器模式和中斷模式。在比較器模式時(shí)只要被測(cè)溫度在連續(xù)1、2、4或6次測(cè)量的結(jié)果均高于Tos中的值,O.S.引腳觸發(fā)并按照配置寄存器中的POL位的值輸出特定電平,此時(shí)與Thyst中的設(shè)定值無關(guān);而在中斷模式時(shí)只要被測(cè)的溫度在連續(xù)1、2、4或6次溫度測(cè)量的結(jié)果均高于Tos中的值或低于Thyst中的值時(shí)觸發(fā)O.S.引腳,輸出特定電平。
DS75LX的內(nèi)部結(jié)構(gòu)
DS75LX的內(nèi)部結(jié)構(gòu)主要是由地址、I/O口控制單元、精確參考源、采樣調(diào)節(jié)器和可訪問寄存器等組成。對(duì)于用戶來說,只需了解DS75LX的地址、I/O口控制單元和可訪問寄存器即可,因?yàn)镈S75LX的所有操作均是通過串行I/O口讀寫可訪問寄存器來實(shí)現(xiàn)的。
DS75LX的配置寄存器
DS75LX的配置寄存器如表2所示,該寄存器可讀/寫,允許用戶選擇不同功能。這些功能包括報(bào)警輸出類型、溫度測(cè)量分辨率等。
該寄存器各位的含義說明:最高位為保留位,該位讀出值為0;R1和R0位的取值決定了DS75LX輸出的溫度數(shù)據(jù)的位數(shù)。當(dāng)R1和R0分別為00、01、10、或11時(shí),DS75LX輸出溫度有效數(shù)據(jù)分別為9、10、11或12位;F1和F0位的值決定了觸發(fā)O.S.引腳所需要進(jìn)行的連續(xù)溫度測(cè)量次數(shù)。當(dāng)F1和F0分別為00、01、10、11時(shí)對(duì)應(yīng)的連續(xù)溫度測(cè)量次數(shù)為1、2、4和6次;POL位的值決定了O.S.引腳觸發(fā)時(shí)為高電平還是低電平。當(dāng)POL=0時(shí)O.S.引腳觸發(fā)時(shí)輸出低電平,POL值為1時(shí)0.S.引腳觸發(fā)時(shí)輸出高電平;TM=0時(shí)溫度報(bào)警模塊工作在比較器模式,TM=1時(shí)溫度報(bào)警模塊工作在中斷模式;SD=1時(shí)DS75LX處于關(guān)斷模式,此時(shí)DS75LX不進(jìn)行溫度采集,SD=0時(shí),DS75LX處于正常工作狀態(tài)。該配置寄存器的各位上電時(shí)均為0。
DS75LX的可訪問寄存器
DS75LX有4個(gè)用戶可訪問寄存器,分別為溫度寄存器、配置寄存器、溫度遲滯寄存器和報(bào)警門限寄存器。其中溫度寄存器為只讀寄存器,用于存取測(cè)量的環(huán)境溫度數(shù)據(jù),報(bào)警門限寄存器和溫度遲滯寄存器均為可瀆/寫寄存器,用于提供用戶可編程的報(bào)警溫度值。如果環(huán)境溫度漂移超出編程設(shè)定值則溫度報(bào)警引腳輸出報(bào)警信號(hào)。
寄存器指針
寄存器指針是向用戶提供所要訪問寄存器地址,寄存器指針的內(nèi)容即為可訪問寄存器地址。由于DS75LX內(nèi)部只含有4個(gè)可訪問寄存器,因此寄存器指針的內(nèi)容只有低兩位(P1、P0)有效,當(dāng)訪問某個(gè)寄存器時(shí),必須確保寄存器指針已指向該寄存器。P1和P0的值與可訪問寄存器對(duì)應(yīng)關(guān)系如表3所示。
輸出的溫度數(shù)據(jù)格式
DS75LX將測(cè)量的溫度轉(zhuǎn)換為16位二進(jìn)制補(bǔ)碼形式并存儲(chǔ)在兩個(gè)字節(jié)的溫度寄存器中。最高位是符號(hào)位,為0時(shí)表示測(cè)量的溫度在0℃以上,反之,所測(cè)的溫度在0℃以下。而低字節(jié)的低4位無用,其值為0。當(dāng)DS75LX輸出的溫度數(shù)據(jù)為12位即DS75LX具有12位分辨率時(shí),溫度寄存器的位15至位4為有效的溫度數(shù)據(jù)。同理,當(dāng)分辨率分別為11、10、和9位時(shí),對(duì)應(yīng)的有效溫度數(shù)據(jù)分別是溫度寄存器的位15至位5、位15至位6和位15至位7。
兩線串行總線
DX75LX的讀寫操作是通過兩線串行總線接口實(shí)現(xiàn)的,該串行總線與I2C總線兼容。圖2所示為讀溫度及溫度門限寄存器的時(shí)序圖。此時(shí)假定寄存器指針已指向溫度寄存器,否則需要對(duì)指針進(jìn)行設(shè)置。設(shè)置方法如下:主器件產(chǎn)生起始位、發(fā)送包含DS75LX地址的寫命令、收到應(yīng)答、發(fā)送寄存器指針字節(jié)。注意只有指針字節(jié)的低兩位(P1、P0位)有效。
圖2:溫度門限寄存器時(shí)序
DS75LX與PIC單片機(jī)接口電路
DS75LX與PIC單片機(jī)的硬件接口電路很簡(jiǎn)單,如圖3所示。由于PIC16F737具有I2C總線接口,只需將兩者的時(shí)鐘和數(shù)據(jù)引腳對(duì)應(yīng)相連,無論時(shí)鐘還是數(shù)據(jù)線都必須通過上拉電阻與電源相連。本文假定DS75LX的三個(gè)地址輸入引腳都接地,此時(shí)DS75LX的地址為1001000。
圖3:DS75LX與PIC單片機(jī)的硬件接口電路
軟件設(shè)計(jì)
軟件設(shè)計(jì)部分包括DS75LX與PIC單片機(jī)的初始化程序,讀溫度數(shù)據(jù)子程序等,限于篇幅以下給出PIC單片機(jī)讀取DS75LX輸出的溫度數(shù)據(jù)的子程序。該子程序?qū)?yīng)的時(shí)序見圖2。采用C語(yǔ)言編程,編譯器為PICC編程環(huán)境MPLAB IDE。該程序既可用查詢方式也可用中斷方式實(shí)現(xiàn),本文利用查詢中斷標(biāo)志SSPIF實(shí)現(xiàn)。
結(jié)束語(yǔ)
本文主要介紹數(shù)字溫度傳感器DS75LX的工作原理以及與單片機(jī)的接口設(shè)計(jì)。DS75LX具有測(cè)量精度高、分辨率可調(diào)等特點(diǎn)。DS75LX的片選引腳具有三態(tài)輸入,在同樣數(shù)量的地址引腳情況下,與其他同類器件相比,DS75LX具有更多的地址組合可用,因此非常適用于多點(diǎn)溫度測(cè)量系統(tǒng)。同時(shí)DS75LX的兩線串行接口簡(jiǎn)化了與單片機(jī)的硬件接口設(shè)計(jì)。DS75LX體積小巧,可廣泛應(yīng)用在小型基站、路由器、服務(wù)器及便攜式溫度計(jì)。