王安敏 孔令布 孟海彥
(青島科技大學(xué)機(jī)電學(xué)院 青島 266061)
隨著工業(yè)不斷的發(fā)展,生產(chǎn)中需要對溫度測量精度的要求越來越高,傳統(tǒng)的溫度檢測大多以熱敏電阻為傳感器不能滿足某些場合對精度的要求。數(shù)字溫度傳感器與傳統(tǒng)的熱敏電阻有所不同的是把溫度傳感器集成在芯片中,同時它可以直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號,抗干擾能力強(qiáng),測溫精度高。SD5020采用TO-92封裝形式,具有體積小,使用方便等特點。為了能測量液體溫度,把SD5020芯片裝入不銹鋼保護(hù)管中密封,具有耐磨耐碰、防水等功能。
單片機(jī)選用AT89C52芯片,AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,完全可以滿足系統(tǒng)的對數(shù)據(jù)采集處理等要求[1],溫度傳感器選用SD5020。電路原理圖如圖1所示,SD5020的DIO引腳與單片機(jī)的P3.7引腳連接,進(jìn)行雙方通信,采用4.7kΩ的電阻上拉。采用外接電源方式供電通過HT7533降壓3.3V給SD5020芯片供電。
圖1 基于SD5020數(shù)字溫度計電路原理圖
SD5020是12位數(shù)字溫度傳感器芯片,分辨率0.0625,SD5020的測量精度可以滿足工業(yè)現(xiàn)場的使用以及普通家庭對溫度精度的要求。SD5020內(nèi)部集成了溫度傳感器AD,SD5020進(jìn)行溫度測量時溫度傳感器產(chǎn)生與溫度成正比變換的電壓信號,由AD轉(zhuǎn)換成數(shù)字信號再經(jīng)過51單片機(jī)處理將溫度顯示給數(shù)碼管。SD5020內(nèi)部有溫度結(jié)果寄存器、配置寄存器、遲滯閾值寄存器、過溫閾值寄存器、CRC寄存器、單次測溫命令、從機(jī)地址、地址CRC等,可以通過設(shè)置相關(guān)的寄存器來確定過溫報警的溫度。SD5020具有單次測溫工作模式功率小,可以減少發(fā)熱提高溫度的測量精度。SD5020引腳如圖2所示DIO引腳為數(shù)據(jù)的輸入/輸出;開漏端口;單總線數(shù)據(jù)接口。NC引腳為懸空。GND引腳為接地。VDD為電源,電壓范圍為2.7℃~5.5℃。
圖2 SD5020引腳
SD5020相關(guān)寄存器的配置如表1所示。通過設(shè)置SD5020相關(guān)的寄存器,當(dāng)溫度超過設(shè)定的最高值將會自動報警。SD5020具有單次測溫模式,完成一次測溫后進(jìn)入待機(jī)狀態(tài)。
表1 SD5020寄存器配置
因為數(shù)字溫度傳感器SD5020的非線性輸出和輸出誤差隨著溫度變化,所以SD5020輸出的溫度值包含了實際檢測溫度值以及SD5020自身對環(huán)境溫度的漂移量兩個部分。不同的SD5020數(shù)字溫度芯片由于制造工藝中的微小差別對溫度測量的精確度離散型較大,但是對同一個SD5020數(shù)字溫度傳感器芯片其輸出溫度值與環(huán)境溫度是一個固定的對應(yīng)關(guān)系。SD5020數(shù)字溫度傳感器芯片具有0.0625的分辨率,所以只要用0.05級的溫度表對其進(jìn)行標(biāo)定,然后通過軟件補(bǔ)償就可以實現(xiàn)SD5020在-20℃~120℃內(nèi)測量誤差在±0.1℃。通過軟件算法不但能提高溫度的測量精度而且還能保證SD5020數(shù)字溫度傳感器溫度輸出的一致性。
線性差值原理的基本方法是將非線性測溫曲線按照一定的要求分成若干段,把相鄰的分割點用直線連接起來,用此段直線代替相應(yīng)的曲線,通過標(biāo)定溫度值和實際測量的溫度值從而對曲線進(jìn)行遷移這樣可以完成線性化處理和誤差校正。式(1)~(3)為插值公式
x為實際測得溫度值,Y為校正以后的溫度,xi為標(biāo)定點的溫度值,yi為校正點的溫度補(bǔ)償值,y為在溫度測量范圍內(nèi)任一點的溫度補(bǔ)償值,ki為校正點曲線的斜率。
1)在-20℃~120℃內(nèi)以10℃為等距間隔選取插值點可以確定-20℃,-10℃,0℃,10℃,20℃,30℃,40℃,50℃,60℃,70℃,80,90℃,100℃,110℃,120℃等15個插值點。
2)用精密儀器對插值點進(jìn)行標(biāo)定,并確定各插值點的補(bǔ)償溫度。
3)根據(jù)確定的插值點值及其對應(yīng)的溫度補(bǔ)償值確定相鄰的插值點的擬合直線的斜率。并以表格的形式存儲在ROM中以供CPU需要時查找。
4)根據(jù)實際測的溫度值x作為查表基準(zhǔn)點,確定所在區(qū)間(xx,xx+1),并取出該區(qū)間的擬合直線斜率ki基準(zhǔn)點溫度值xx以及基準(zhǔn)點的溫度補(bǔ)償值yi。
5)計算實測溫度值x的溫度補(bǔ)償值y=yi+ki(x-xx)。
6)計算測得溫度補(bǔ)償以后的實際溫度值Y=x+y。
7)如圖3所示分段線性插值的程序流程圖。通過實驗結(jié)果證明采取上述方法可以有效減小每段線性化誤差,保證測量精度的要求[2]。
圖3 線性插值流程圖
SD5020數(shù)字溫度芯片與51單片機(jī)之間的數(shù)據(jù)傳輸必須嚴(yán)格遵守單總線協(xié)議,確保數(shù)據(jù)傳輸?shù)恼_性。使用串行單總線技術(shù)可以使該系統(tǒng)設(shè)計過程大大簡化,系統(tǒng)的體積減小,可靠程度提高,使該產(chǎn)品數(shù)字溫度計便于攜帶,更加方便地在工業(yè)現(xiàn)場和一般家庭中使用。而且在后續(xù)完善產(chǎn)品性能中更加方便更改系統(tǒng)和擴(kuò)充系統(tǒng)。SD5020數(shù)字溫度與51單片機(jī)之間總線通信主要有以下過程:初始化;讀/寫寄存器;讀取從機(jī)地址等[3~4]具體過程如下:
1)初始化:初始化的過程主機(jī)拉低總線5ms~8ms后從機(jī)檢測到主機(jī)的信號后等待180μs~500μs后從機(jī)在拉低總線100μs~250μs主機(jī)檢測到從機(jī)的響應(yīng)后表示握手成功,握手之后主機(jī)就可以向從機(jī)發(fā)送數(shù)據(jù)了。由于一個系統(tǒng)中可能存在多個從機(jī),所以為了避免數(shù)據(jù)傳輸混亂,主機(jī)在向從機(jī)發(fā)送數(shù)據(jù)之前必須進(jìn)行尋址操作。在該測溫系統(tǒng)中由于只有一個從機(jī),此時不用尋址操作直接發(fā)送跳過地址命令69H。
2)讀寄存器:由于該測溫系統(tǒng)只有一個從機(jī)主機(jī),可以不進(jìn)行尋址操作直接發(fā)送跳過地址命令69H進(jìn)行讀寫操作,發(fā)送讀命令24H,之后主機(jī)開始接受從機(jī)發(fā)送的數(shù)據(jù)。直到數(shù)據(jù)全部發(fā)送完畢。
3)寫寄存器:主機(jī)向從機(jī)發(fā)送寫命令36H,然后主機(jī)就要發(fā)送寫入從機(jī)寄存器的據(jù),直到全部數(shù)據(jù)發(fā)送完畢。
4)讀從機(jī)地址:主機(jī)首先要發(fā)送讀從機(jī)的地址命令A(yù)AH,然后主機(jī)就可以接受從機(jī)發(fā)送的地址數(shù)據(jù)。SD5020數(shù)字溫度芯片與單片機(jī)進(jìn)行通信時必須嚴(yán)格遵守單總線通信協(xié)議,以保證數(shù)據(jù)傳輸?shù)恼_性與準(zhǔn)確性。通信流程如圖4所示。
圖4 單片機(jī)通信流程
軟件設(shè)計是該測溫裝置進(jìn)行溫度精確測量的保證,其主要任務(wù)是配置SD5020數(shù)字溫度芯片,在初始化之后設(shè)置SD5020數(shù)字溫度傳感器芯片進(jìn)入單次測溫模式,可以減少能耗,降低發(fā)熱,提高溫度測量的過動態(tài)掃描的方式將SD5020數(shù)字溫度傳感器芯顯示在數(shù)碼管上。根據(jù)以上分析得到如圖5所示單片機(jī)主要程序流程圖。
圖5 單片機(jī)程序流程圖
在完成硬軟件設(shè)計的基礎(chǔ)上,為了檢測該測溫裝置在實際使用時測量的誤差以及該裝置在實際應(yīng)用中測量溫度的穩(wěn)定性。所以用該測溫裝置與高精密的測溫裝置在相同環(huán)境,相同溫度下進(jìn)行溫度測量以驗證在實際應(yīng)用的測溫效果。步驟如下:
1)首先在該測溫裝置允許測量溫度范圍-10℃~120℃內(nèi)設(shè)置14個溫度測量點。
2)把精密測溫裝置和基于SD5020的數(shù)字溫度計放在環(huán)境相同的封閉恒溫槽容器內(nèi),通過串口把測得的溫度值顯示在LCD12864液晶顯示屏上。
3)每十分鐘觀測一次溫度值,并將觀測的溫度數(shù)據(jù)記錄下來。各個溫度點的測量值,數(shù)據(jù)記錄見表2。通過對比高精密測溫裝置與基于SD5020數(shù)字溫度計,實際測得溫度數(shù)據(jù)表明該測溫裝置測溫穩(wěn)定性能好,測溫精度達(dá)到一般家庭和工業(yè)現(xiàn)場使用的要求。同時利用線性插值的方法,可以減小每段的線性化誤差,在整個的測溫范圍內(nèi)具有±0.1℃測量誤差,保證了測溫的準(zhǔn)確性。
表2 測量數(shù)據(jù)
傳統(tǒng)的溫度檢測以熱敏電阻為傳感器,測量溫度準(zhǔn)確性和可靠性不高。熱敏電阻容易受溫度影響,當(dāng)溫度發(fā)生變化的熱敏電阻測量溫度準(zhǔn)確性將大大降低。該數(shù)字溫度計采用SD5020芯片,SD5020內(nèi)部集成了A/D轉(zhuǎn)換,可以將測得的與溫度成正比的電壓信號直接轉(zhuǎn)換成數(shù)字信號,增加了測量溫度的準(zhǔn)確性。通過對本系統(tǒng)的理論分析及實際測試,與更高精度的測量儀器進(jìn)行對比,具有結(jié)構(gòu)簡單,測溫精度高,穩(wěn)定性好等優(yōu)點,可廣泛在工業(yè)現(xiàn)場和普通家庭使用,若想進(jìn)一步提高該裝置的測溫精度,可在分段線性插值的快速定位和直線方程的擬合上做進(jìn)一步的研究。
[1]廣州周立功單片機(jī)發(fā)展有限公司.AT89C52微控器數(shù)據(jù)手冊[EB/OL].(2008-04-16)[2009-06-17].http://www.zlgmcu.com/LUMINARY/Stellaris/lm3s615/
LM3S615_ds_cn.pdf.Guangzhou ZLG MCU Development Co.,Ltd.AT89C52 MicrocontrollerData Sheet[EB/OL]. (2008-04-16)[2009-06-17].http://www.zlgmcu.com/LUMINARY/Stel?laris/lm3s615/LM3S615_ds_cn.pdf.
[2]劉曉陽,周炎濤.一線總線結(jié)構(gòu)的DS18B20的序列號搜索算法研究[J].計算技術(shù)與自動化,2010,29(1):38-42.
LIU Xiaoyang,ZHOU Yantao.DS18B20 line bus struc?ture,the serial number of the search algorithm[J].Com?puting Technology and Automation,2010,29(1):38-42.
[3]李鋼,趙彥峰.1-Wire總線數(shù)字溫度傳感器DSl8820原理及應(yīng)用[J].現(xiàn)代電子技術(shù),2005(21):77-79.
LI Gang,ZHAO Yanfeng.1-Wire bus digital temperature sensor DSl8820 theory and application[J].Modern Elec?tronic Technology,2005(21):77-79.
[4]潘理剛.一種高精度數(shù)據(jù)采集系統(tǒng)的電路設(shè)計與實現(xiàn)[J].中國科技信息,2009(15):151-152.
PAN Ligang.Circuit of high precision data acquisition sys?tem design and lmplementation[J].China Science and Technology Information,2009(15):151-152.
[5]羅文廣.單總線數(shù)字溫度傳感器的自動識別技術(shù)[J].電子產(chǎn)品世界,2002(16):69-70.
LUO Wenguang.Single-bus digital temperature sensor of automatic identification technology[J].Electronic World,2002(16):69-70.
[6]吳越,方方,周偉,等.基于SHT75的氡室溫濕度測控系統(tǒng)[J].核電子學(xué)與探測技術(shù),2008,28(4):783-785.
WU Yue,F(xiàn)ANG Fang,ZHOU Wei,et al.The temperature&humidity measurement and control system for radon chamber based on SHT75[J].NuclearElectronicsDetec?tionTechnology,2008,28(4):783-785.
[7]王靜濤,張立軍.液晶顯示控制器T6963C與C8051F的接口及編程[J].儀表技術(shù),2009(2):9-13.
WANG Jingtao,ZHANG Lijun.Interface circuit and pro?gramming for LCD controller T6963C and C8051F[J].In?strumentation Technology,2009(2):9-13.
[8] Carreira J,Madeira H,Silva J G.Xception:A tech?nique for the experimental evaluation of dependability in modern computers[J].IEEE Transactions on Software En?gineering,1998,24(2):125-136.
[9]趙躍齊,馬瑞卿,梁貴毅,等.基于單片機(jī)C8051F的智能溫控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)測量與控制,2009,17(3):490-491,514.
ZHAO Yueqi,MA Ruiqing,LIANG Guiyi,et al.Design and realization of intelligent temperature control system based on C8051F microcontrollers[J].Computer Measure?ment&Control,2009,17(3):490-491,514.
[10]武剛.基于AT89C52單片機(jī)的溫度巡回檢測系統(tǒng)設(shè)計[J].國外電子元器件,2008(9):30-32.
WU Gang.Design of temperature detection system based on AT89S52[J].International Electronic Elements,2008(9):30-32.
[11]曹玉珍,陳敏.高速A/D轉(zhuǎn)換器AD7654與單片機(jī)接口電路設(shè)計[J].國外電子元器件,2006(10):45-47.
CAO Yuzhen,CHEN Min.Design of interface circuit for high speed A/D converter AD7654 and single-chipmi?crcomputer[J].International Electronic Elements,2006(10):45-47.