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

  無線測溫系統(tǒng)是一種集溫度信號采集,、大容量存儲、射頻發(fā)送,、LCD動態(tài)顯示,、控制與通信等功能于一體的新型系統(tǒng)。適用于發(fā)電廠,、采油廠,、鉆井施工等許多不宜進行有線測溫的場合。本文介紹的無線測溫系統(tǒng)包括數(shù)字溫度傳感器DS18S20,、射頻SoC nRF9E5,、LCD、E2PROM和RS232串行口等模塊,。整個系統(tǒng)由多個端機和1個基站組成,。端機工作在各個測溫地點,,進行溫度數(shù)據(jù)采集和無線發(fā)送;基站與多個端機進行無線通信,,并通過LCD把數(shù)據(jù)顯示出來,,同時可以通過RS232串口將數(shù)據(jù)發(fā)送給PC機。
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為高電平端),以串行通信的方式與微控制器進行通信,;工作電壓為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位二進制數(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存儲當前溫度,字節(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進行操作,。
  DS18S20的溫度測量范圍在-55°C~+125°C,分辨率的默認值為12位,。檢測溫度由2個字節(jié)組成,,字節(jié)1的高5位S代表符號位,字節(jié)0的低4位是小數(shù)部分,,中間7位是整數(shù)部分,,字節(jié)4是配置寄存器控制字的格式。當R1R0的值為00B,、01B,、10B、11B時,,對應(yīng)的分辨率為9,、10、11,、12位,,轉(zhuǎn)換時間分別為93ms、187ms,、375ms,、750ms。
  當主機發(fā)出溫度轉(zhuǎn)換命令時,,即啟動了溫度轉(zhuǎn)換過程,,轉(zhuǎn)換時間最長為750ms。主機通過暫存器功能命令將溫度值讀出,可通過寫暫存器功能命令改變分辨率的設(shè)置,。
2  射頻SoC nRF9E5[2]
  nRF9E5是挪威Nordic公司于2004年推出的射頻片上系統(tǒng),,其片內(nèi)集成了射頻收發(fā)器nRF905和與標準51兼容的微控制器。nRF9E5的片內(nèi)微控制器的指令時序與標準51稍有區(qū)別,,如nRF9E5的片內(nèi)微控制器的指令周期為4~20個指令周期(標準51的指令周期為2~40),。nRF9E5的功能圖如圖2所示,其片內(nèi)資源簡要介紹如下,。


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

4  無線測溫系統(tǒng)的組成及硬件
  無線測溫系統(tǒng)分有基站和端機二大模塊,。
  (1)端機布置在數(shù)據(jù)采集點,一般由溫度傳感器,、微控制器,、射頻收發(fā)器和電池組成,根據(jù)需要可以有多個端機,,它們與基站之間通過射頻進行無線通信,。
  本系統(tǒng)在設(shè)計中,為了減小體積,,射頻片上系統(tǒng)采用了Nordic公司的nRF9E5,,其片內(nèi)集成了51系列微控制器和射頻收發(fā)器。端機由智能數(shù)字溫度傳感器DS18S20,、射頻片上系統(tǒng)nRF9E5和電池組成,,其硬件連接如圖4所示。其中,,25AA320為E2PROM程序存儲器,。端機上電后,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機進行通信,。LM1117為電源管理模塊(有多種封裝形式,,設(shè)計時可以靈活選擇),為系統(tǒng)提供+3.3V工作電源,。12864-12共有20個引腳,,在本系統(tǒng)中采用串行接口的連接方式,只需要使用其中的10個引腳(接法見圖3),。射頻發(fā)射天線為印制天線,,布置在PCB板上,。實際應(yīng)用中,,也可根據(jù)需要使用單鞭天線。
5  無線測溫系統(tǒng)軟件設(shè)計
  本系統(tǒng)程序比較復雜,,限于篇幅,,只列舉其中幾個函數(shù)供讀者設(shè)計時參考。本程序用C語言編寫,,用Keil C51進行編譯,。
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點的函數(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)用中,可對其進行擴充(如增加鍵盤模塊等),。實踐證明,,該系統(tǒng)具有很高的推廣應(yīng)用價值。
參考文獻
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)載。