《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 數(shù)字溫度傳感器DS18S20及無線測溫系統(tǒng)設(shè)計
數(shù)字溫度傳感器DS18S20及無線測溫系統(tǒng)設(shè)計
鄭啟忠 朱宏輝 耿四軍
武漢理工大學(xué)物流工程系(430063)
摘要: 介紹了高精度數(shù)字溫度傳感器DS18S20的結(jié)構(gòu)和用法、射頻片上系統(tǒng)nRF9E5芯片的結(jié)構(gòu)、液晶顯示器12864-12及其串行接口,分析了無線測溫系統(tǒng)的系統(tǒng)組成、端機(jī)的結(jié)構(gòu)和基站的工作原理,給出了系統(tǒng)的部分程序。
關(guān)鍵詞: DS18S20 nRF9E5 Maxim
Abstract:
Key words :
</a></a>摘   要: 介紹了高精度數(shù)字溫度傳感器DS18S20" title="DS18S20">DS18S20" title="DS18S20">DS18S20的結(jié)構(gòu)和用法、射頻片上系統(tǒng)nRF9E5芯片的結(jié)構(gòu)、液晶顯示器12864-12及其串行接口,分析了無線測溫系統(tǒng)的系統(tǒng)組成、端機(jī)的結(jié)構(gòu)和基站的工作原理,給出了系統(tǒng)的部分程序。
關(guān)鍵詞: DS18S20  溫度傳感器  無線測溫  nRF9E5

  無線測溫系統(tǒng)是一種集溫度信號采集、大容量存儲、射頻發(fā)送、LCD動態(tài)顯示、控制與通信等功能于一體的新型系統(tǒng)。適用于發(fā)電廠、采油廠、鉆井施工等許多不宜進(jìn)行有線測溫的場合。本文介紹的無線測溫系統(tǒng)包括數(shù)字溫度傳感器DS18S20、射頻SoC nRF9E5、LCD、E2PROM和RS232串行口等模塊。整個系統(tǒng)由多個端機(jī)和1個基站組成。端機(jī)工作在各個測溫地點(diǎn),進(jìn)行溫度數(shù)據(jù)采集和無線發(fā)送;基站與多個端機(jī)進(jìn)行無線通信,并通過LCD把數(shù)據(jù)顯示出來,同時可以通過RS232串口將數(shù)據(jù)發(fā)送給PC機(jī)。
1  DS18S20[1]
  數(shù)字溫度傳感器DS18S20是美國DALLAS公司生產(chǎn)的新型總線數(shù)字溫度傳感器,它有2種封裝形式:3引腳封裝和8引腳封裝。3引腳封裝的DS18S20結(jié)構(gòu)如圖1所示。DS18S20的數(shù)據(jù)寫入只需要1線I/O(即圖1中的DQ,GND為接地端,VDD為高電平端),以串行通信的方式與微控制器進(jìn)行通信;工作電壓為3~5V,測量溫度范圍為-55°C~+125°C,測量溫度為-10°C~+85°C時的測量精度為±0.5°C;可編程數(shù)據(jù)位為9~12位,轉(zhuǎn)換12位溫度信號所需時間為750ms(最大);用戶可自行設(shè)定預(yù)警上下限溫度。DS18S20主要應(yīng)用于調(diào)溫控制、工業(yè)系統(tǒng)、溫度計和其他的溫度傳感系統(tǒng)。
  DS18S20主要由64位ROM、溫度傳感器、用于設(shè)定溫度報警上限的TH和設(shè)定溫度下限的TL三部分組成。此外,還帶有電源感應(yīng)模塊、存儲和控制邏輯器、中間結(jié)果暫存器和8位循環(huán)冗余校驗碼(CRC)發(fā)生器部分(見圖1)。


  

  DS18S20內(nèi)部存儲器由ROM、RAM和E2PROM組成。其中,ROM由64位二進(jìn)制數(shù)字組成,共分為8個字節(jié),字節(jié)0的內(nèi)容是系列代號10H,字節(jié)1~6的內(nèi)容是48位器件序列號,字節(jié)7為ROM前56位的CRC校驗碼。由于64位ROM碼具有惟一性,因此在使用時作為該器件的地址,通過讀ROM命令可以將它讀出來。RAM由9個字節(jié)的高速度暫存器和非易失性電擦寫E2PROM組成,其中字節(jié)1、字節(jié)2存儲當(dāng)前溫度,字節(jié)3、字節(jié)4存儲上、下限報警溫度TH和TL,字節(jié)5是結(jié)構(gòu)寄存器的易失性拷貝,字節(jié)6、7、8用于內(nèi)部計算,字節(jié)9是RAM前64位的CRC校驗碼。RAM中E2PROM用于存儲TH、TL和配置器的值。數(shù)據(jù)先寫入RAM,經(jīng)校驗后再傳送給E2PROM。通過DS18S20功能命令對RAM進(jìn)行操作。
  DS18S20的溫度測量范圍在-55°C~+125°C,分辨率的默認(rèn)值為12位。檢測溫度由2個字節(jié)組成,字節(jié)1的高5位S代表符號位,字節(jié)0的低4位是小數(shù)部分,中間7位是整數(shù)部分,字節(jié)4是配置寄存器控制字的格式。當(dāng)R1R0的值為00B、01B、10B、11B時,對應(yīng)的分辨率為9、10、11、12位,轉(zhuǎn)換時間分別為93ms、187ms、375ms、750ms。
  當(dāng)主機(jī)發(fā)出溫度轉(zhuǎn)換命令時,即啟動了溫度轉(zhuǎn)換過程,轉(zhuǎn)換時間最長為750ms。主機(jī)通過暫存器功能命令將溫度值讀出,可通過寫暫存器功能命令改變分辨率的設(shè)置。
2  射頻SoC nRF9E5[2]
  nRF9E5是挪威Nordic公司于2004年推出的射頻片上系統(tǒng),其片內(nèi)集成了射頻收發(fā)器nRF905和與標(biāo)準(zhǔn)51兼容的微控制器。nRF9E5的片內(nèi)微控制器的指令時序與標(biāo)準(zhǔn)51稍有區(qū)別,如nRF9E5的片內(nèi)微控制器的指令周期為4~20個指令周期(標(biāo)準(zhǔn)51的指令周期為2~40)。nRF9E5的功能圖如圖2所示,其片內(nèi)資源簡要介紹如下。


  nRF9E5片內(nèi)中斷控制器支持5個擴(kuò)展的中斷源:ADC中斷、SPI中斷、RADIO1中斷、RADIO2中斷和喚醒定時器中斷。其片內(nèi)控制器有3個與8052相同的定時器,1個和8051相同的串口,可以用定時器1和定時器2來作為異步通信的波特率產(chǎn)生器。此外,還擴(kuò)展了2個數(shù)據(jù)指針,以便從XRAM區(qū)讀取數(shù)據(jù)。微處理器中有256字節(jié)的數(shù)據(jù)RAM和512字節(jié)的ROM。上電復(fù)位或軟件復(fù)位后,處理器自動執(zhí)行ROM中的引導(dǎo)區(qū)中的代碼。用戶程序通常是在引導(dǎo)區(qū)的引導(dǎo)下,從E2PROM加載到1個4KB的RAM中,該RAM也可作存儲數(shù)據(jù)用。當(dāng)進(jìn)行批量生產(chǎn)時,可以要求廠家代理把程序固化在片內(nèi),這樣可以省去E2PROM的費(fèi)用并進(jìn)一步減小系統(tǒng)體積。
  nRF9E5收發(fā)器通過內(nèi)部并行口或內(nèi)部SPI口與其他模塊進(jìn)行通信,具有同單片射頻收發(fā)器nRF905相同的功能。DuoCeiver接收器輸出的數(shù)據(jù)準(zhǔn)備信號,可通過程序使其作為微處理器的中斷信號或通過GPIO口傳給CPU。nRF9E5工作于433/868/915MHz頻段。收發(fā)器由1個完整的頻率合成器、1個功率放大器、1個調(diào)節(jié)器和2個接收器組成。輸出功率、頻道和其他射頻參數(shù)可通過對特殊功能寄存器RADIO(0xA0)編程進(jìn)行控制。發(fā)射模式下,射頻電流消耗僅為11mA,接收模式下為12.5mA。為了降低能耗,可通過程序控制收發(fā)器的開/關(guān)。
  nRF9E5還具有載波檢測功能。在ShockBurstTM接收方式(這是Nordic公司為了節(jié)省射頻收發(fā)的能耗而采取的一種收發(fā)方式)下,當(dāng)出現(xiàn)nRF9E5工作信道內(nèi)的射頻載波時,載波檢測引腳(CD)被置高。這個特性很好地避免了同一工作頻率下不同發(fā)射器的數(shù)據(jù)包之間的碰撞。
3  LCD模塊12864-12[3]
  12864-12漢字圖形點(diǎn)陣液晶顯示模塊可顯示漢字、圖形、ASCII碼和自定義字形,內(nèi)置8 192個16×16的中文漢字、128個8×16字符以及64×256點(diǎn)陣顯示RAM。12864-12液晶顯示屏為128×64點(diǎn)陣,可顯示4行(每行8個)漢字,外形尺寸為93mm×70mm×12.5mm,視域尺寸為72mm×40mm。模塊內(nèi)有多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、反白、清除、關(guān)閉顯示和睡眠模式等,可方便地對模塊進(jìn)行控制。為了便于和多種微處理器的接口設(shè)計,12864-12提供了2線串行、3線串行、4位并行及8位并行多種接口方式。12864-12內(nèi)置升壓電路,無需負(fù)壓,配置了LED背光,只需1個20kΩ的電阻把V0和地相接,就可在3V低電平下工作。具有為3.3~5.5V寬范圍的工作電壓,故適用于目前比較常見的3.3V或5V工作電壓的系統(tǒng)中。控制器為臺灣矽創(chuàng)電子公司的ST7920,具有串/并接口方式,其內(nèi)部含有中文字庫。
  考慮到nRF9E5的I/O接口比較少,本無線測溫系統(tǒng)的基站中,12864-12采用串行接口方式。使用12864-12的3線串行接口方式可大大簡化液晶顯示模塊與單片機(jī)之間的接口設(shè)計;同時,也使液晶顯示模塊顯示漢字變得極為容易,從而改變過去單片機(jī)系統(tǒng)人機(jī)界面不夠友好的弊端。當(dāng)模塊的PSB腳接低電平時,模塊即進(jìn)入串行接口模式。串行模式使用串行數(shù)據(jù)線SID與串行時鐘線SCLK來傳送數(shù)據(jù),即構(gòu)成2線串行模式。12864-12還允許同時接入多個液晶顯示模塊以完成多路信息顯示功能。此時,要利用片選端“CS”構(gòu)成3線串行接口方式,即當(dāng)“CS”接高電位時,模塊可正常接收并顯示數(shù)據(jù),否則模塊顯示將被禁止。通常情況下,當(dāng)系統(tǒng)僅使用1個液晶顯示模塊時,“CS”可連接固定的高電平。nRF9E5與12864-12的接口電路如圖3所示。

4  無線測溫系統(tǒng)的組成及硬件
  無線測溫系統(tǒng)分有基站和端機(jī)二大模塊。
  (1)端機(jī)布置在數(shù)據(jù)采集點(diǎn),一般由溫度傳感器、微控制器、射頻收發(fā)器和電池組成,根據(jù)需要可以有多個端機(jī),它們與基站之間通過射頻進(jìn)行無線通信。
  本系統(tǒng)在設(shè)計中,為了減小體積,射頻片上系統(tǒng)采用了Nordic公司的nRF9E5,其片內(nèi)集成了51系列微控制器和射頻收發(fā)器。端機(jī)由智能數(shù)字溫度傳感器DS18S20、射頻片上系統(tǒng)nRF9E5和電池組成,其硬件連接如圖4所示。其中,25AA320為E2PROM程序存儲器。端機(jī)上電后,nRF9E5把25AA320內(nèi)的程序自動加載到其片內(nèi)的4KB RAM中,這個過程由nRF9E5片內(nèi)固化在512字節(jié)ROM中的程序來自動執(zhí)行。DS18S20在空閑時,其DQ口由一個3kΩ的上拉電阻置為高電平。完成數(shù)據(jù)采集以后,以無線射頻信號的形式發(fā)射給基站。


  (2)每套系統(tǒng)一般只有1個基站,包括微控制器、射頻收發(fā)器和顯示器等(基站的具體硬件連接見圖3)。基站在接收到數(shù)據(jù)后,把信息顯示在液晶顯示屏上,根據(jù)需要,也可以通過RS232接口與PC機(jī)進(jìn)行通信。LM1117為電源管理模塊(有多種封裝形式,設(shè)計時可以靈活選擇),為系統(tǒng)提供+3.3V工作電源。12864-12共有20個引腳,在本系統(tǒng)中采用串行接口的連接方式,只需要使用其中的10個引腳(接法見圖3)。射頻發(fā)射天線為印制天線,布置在PCB板上。實際應(yīng)用中,也可根據(jù)需要使用單鞭天線。
5  無線測溫系統(tǒng)軟件設(shè)計
  本系統(tǒng)程序比較復(fù)雜,限于篇幅,只列舉其中幾個函數(shù)供讀者設(shè)計時參考。本程序用C語言編寫,用Keil C51進(jìn)行編譯。
5.1 串行傳送1字節(jié)的數(shù)據(jù)到LCD的函數(shù)
  void SendBYTE(uchar dat)
  {
     uchar i;
     for(i=0;i<8;i++)
     {
      LCD_CLK=0;//串行時鐘
      if((dat&0x80)!=0)//連續(xù)發(fā)送8字節(jié)
      {
       LCD_SID=1;//數(shù)據(jù)信號,高為1
    }
    else
    {
       LCD_SID=0;//數(shù)據(jù)信號,低為1
    }
    LCD_CLK=1;
    dat=dat<<1;//右移1位
    }
  }
5.2 圖形方式顯示1個16×16點(diǎn)的函數(shù)
  void DisplayNum(uchar x_pos1,uchar y_pos16,uchar code*
         _p1,uchar code*_p2)
  {
  uchar y_label;
  for(y_label=0;y_label<16;y_label++)
  {
     SendCMD(y_pos16);//行地址
     SendCMD(x_pos1);//列地址
     SendDAT(*_p1++);//高8位數(shù)據(jù)
     SendDAT(*_p2++);//低8位數(shù)據(jù)
     y_pos16++;
  }
}
5.3 射頻發(fā)送函數(shù)
  void Transmitter(void)
  {
    uchar b;
    CS=1;//使2401(RADIO)工作于發(fā)送模式
    Delay100μs(0);
    for(b=0;b<tconf.n;b++)
  {
        SpiReadWrite(tconf.buf[b]);//發(fā)送nRF9E5的配置字
  }
   CS=0;
   b=Temperature;//溫度數(shù)據(jù)
   PutChar(b);//送到RS232串行口
   TransmitPacket(b);//射頻發(fā)送
  }
6  結(jié)束語
  本文系統(tǒng)地介紹了無線測溫系統(tǒng)的組成和其中所用到的數(shù)字溫度傳感器、LCD等。該系統(tǒng)適用于多種場合。實際應(yīng)用中,可對其進(jìn)行擴(kuò)充(如增加鍵盤模塊等)。實踐證明,該系統(tǒng)具有很高的推廣應(yīng)用價值。
參考文獻(xiàn)
1   Dallas Semiconductor.DS18S20 High Precision 1-Wire   Digital Thermometer.2002
2   Nordic VLSI ASA Inc.433/868/915MHz RF Transceiver   with Embedded 8051 Compatible Microcontroller and 4   Input,10 bit ADC.2004
3   LCD在線.LCD在線液晶顯示器技術(shù)手冊12864-12.2003
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。