黑 龙 江 工 程 学 院 学 报(自然科学版) Vol.22l.2
Jun.,2008JournalofHeilongjiangInstituteofTechnology
基于DS18B20的数字温度计设计及其应用
胡天明,齐建家
(黑龙江工程学院机电工程系,黑龙江哈尔滨150050)
摘 要:介绍数字温度传感器DS18B20的结构与性能,对比数字温度传感器DS18B20与传统温度传感器的差异,并详细介绍数字温度传感器DS18B20的操作方法和操作指令。同时设计数字温度计的硬件电路和软件,对数字温度传感器DS18B20的写操作源代码进行解析,介绍温度计在无线温度采集系统中的应用,并阐述数字温度传感器DS18B20的应用前景。
关键词:DS18B20;温度计;单片机;无线传感器网络
中图分类号:TP273 文献标识码:A 文章编号:167124679(2008)0220059204
ThedesignandapplicationofdigitalthermometerbasedonDS18B20
HUTian2ming,QIJiang2jia
(Dept.ofElectromechanicEngineering,HeilongjiangInstituteofTechnology,Harbin150050,China)
Abstract:TheconfigurationandperformanceofdigitaltemperatureDS18B20areintroduced.TheoperatingmethodandtheinstructionsofdigitaltemperaturesensorDS18B20areintroducedcomparingDS18B20dig2italtemperaturesensorandtraditionaltemperaturesensor.Thehardwareandsoftwareofthedigitalther2mometeraredesigned.ThewriteoperatingsourcecodeofthedigitaltemperatureDS18B20isanalyzed.AndthewirelesstemperaturetestsystemusingDS18B20isintroduced.Alsotheapplicationprospectofdigitaltemperaturesensorisexpounded.
Keywords:DS18B20;thermometer;Micro-controller;wirelesstemperaturetestsystem 传统的温度传感器系统大都采用放大、调理、A/D转换,转换后的数字信号送入计算机处理,处理电路复杂、可靠性相对较差,占用计算机的资源较多。DS18B20是一线制数字温度传感器,它可将温度信号直接转换成串行数字信号送给微处理器,电路简单,成本低,每一只DS18B20内部的ROM存储器都有唯一的64位系列号,在1根地址/信号线上可以挂接多个DS18B20,易于扩展,便于组网和多点测量。
小体积封装形式,内部使用在板(ON2BOARD)专利技术,全部传感元件及转换电路集成在形如一只三极管的集成电路内。3个管脚中,GND是地信号;DQ是数据输入/输出引脚,开漏单总线接口引脚,当被用在寄生电源下,也可以向器件提供电源;VDD是可选择的VDD引脚,当工作于寄生电源时,此引脚必须接地。DS18B20的测量温度范围为-55~+125e,在-10~+85e范围内,精度为?0.5e,可将程序设定9~12位的分辨率。
DS18B20的内部存储器包括1个高速暂存RAM和1个非易失性的、可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL以及结构寄存器。暂存存储器包含8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低八位,第2个字节是温度的高八位。第3个和第4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一
1 DS18B20的结构与性能
DS18B20采用Dallas公司的单总线数据通信方式专有技术,单根信号线既传输时钟,又可双向传输数据,占用I/O口资源少,结构简单,成本低廉,便于总线扩展和维护。DS18B20采用3引脚TO292
收稿日期:2008203201
作者简介:胡天明(1964~),男,副教授,工程硕士,研究方向:流体传
动与控制.
#60#黑 龙 江 工 程 学 院 学 报(自然科学版) 第22卷
次上电复位时被刷新。第6、7、8个字节用于内部计算。第9个字节是冗余检验字节。
操作DS18B20应遵循以下顺序:初始化、ROM操作命令、暂存器操作命令。
初始化:总线上的所有操作要初始化,MCU先发复位信号,之后,DS18B20发出在线信号,并等待接受命令。
ROM操作命令:MCU收到DS18B20在线信号后,发送4个ROM操作命令中的一个,这些命令机发出读时序来读总线,如果转存正在进行,读结果为0,转存结束为1。¼开始转换(44H)。DS18B20收到该命令后立刻开始温度转换,不需要其它数据。此时DS18B20处于空闲状态,当温度转换正在进行时,MCU读总线将收到0,转换结束为1。如果DS18B20是由信号线供电,M发出此命令后必须立即提供至少相应于分辨率的温度转换时间的上拉。½回调(B8H)。执行该命令把EERAM中的内容回调到寄存器TH、TL和设置寄存器单元,字均为8位(最低位在前):¹读命令(33H)。通过该命令MCU可以读出DS18B20的ROM中8位系列产品代码、48位产品序列号和8位CRC码。读命令仅用在单个DS18B20在线情况,当多于一个时由于DS18B20为开漏输出将产生线与,从而引起数据冲突。º选择定位命令(55H)。多片DS18B20在线时,MCU发出该命令和1个64位数列,DS18B20内部ROM与主机数列一致,响应主机发送的寄存器操作命令,其他DS18B20等待复位。该命令也可以用在单片DS18B20情况。»跳过ROM序列号检测命令(CCH)。对于单片DS18B20在线系统,该命令允许MCU跳过ROM序列号检测而直接对寄存器操作,从而节省时间。对于多片DS18B20系统,该命令将引起数据冲突。¼查询命令(F0H)。当系统初建时,MCU可能不知道总线上有多少设备及各自的64位序列号,用该命令可以做到这点。½报警查询命令(ECH)。该命令操作过程同ROM查询命令,但是,仅当上次温度测量值已置位报警标志(由于高于TH或低于TL时),DS18B20才响应该命令,如果DS18B20处于上电状态,该标志将保持有效,直至遇到下列两种情况:本次测量温度发生变化,测量值处于TH、TL之间:TH、TL改变,温度值处于新的范围之间,设置报警时要考虑到EERAM中的值。
存储器操作命令:¹写入(4EH)。用此命令把数据写入寄存第二至第四字节,从第二字节(TH)开始。复位信号发出之前必须把这3个字节写完。º读出(BEH)。用此命令读出寄存器中的内容,从第一字节开始,直到读完第九字节,如果仅需要寄存器中部分内容,MCU可以在合适时刻发送复位命令结束该过程。»复制(48H)。用该命令把暂存器第二至第四字节转存到DS18B20的EERAM中,如果DS18B20是由信号线供电,主机发出此命令后,总线必须保证至少10ms的上拉,当发出命令后,主
DS18B20上电时能自动回调,因此,设备上电后TH、TL存在有效数据。该命令发出后,如果MCU跟着读总线,读到0意味着忙,1为回调结束。¾读电源标志(B4H)。MCU发出命令后读总线,DS18B20将发送电源标志,0为信号线供电,1为外接电源。
根据DS18B20的通讯协议,MCU控制DS18B20完成温度转换要经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,对DS18B20进行预定的操作。复位要求MCU将数据线下拉500Ls,然后释放,DS18B20收到信号后等待16~60Ls,发出60~240Ls的存在低脉冲,主CPU收到此信号表示复位成功。由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则将无法读取测温结果。DS18B20的通讯协议定义了初始化时序、读时序、写时序的时序。所有时序都是将MCU作为主设备,DS18B20作为从设备。而每一次命令和数据的传输都是从MCU主动启动写时序开始,如果要求DS18B20回送数据,在进行写命令后,MCU需启动读时序完成数据接收。数据和命令的传输都是低位在先。对DS18B20的读时序分为读0时序和读1时序2个过程。对于DS18B20的读时序是从主机把单总线拉低之后,在15s之内释放单总线,以让DS18B20把数据传输到单总线上。DS18B20完成1个读时序过程至少需要60Ls。DS18B20的写时序分为写0时序和写1时序。DS18B20对于写0时序和写1时序的要求不同,当写0时序时,单总线要被拉低至少60Ls,保证DS18B20能够在15~45Ls之间正确地采样I/O总线上的/00电平,当要写1时序时,单总线被拉低之后,在15Ls之内释放单总线。
第2期 胡天明,等:基于DS18B20的数字温度计设计及其应用#61#
2 数字温度计设计
数字温度计电路如图1所示,MCU采用Mi2croChip公司的PIC18F65J10-I/PT,软件采用C编程语言,DS18B20的时序要靠精确的延时来保证,短时间延时可使用空指令,较长时间延时可使用循环语句。DS18B20所有的指令、数据发送均由数据写完成。DS18B20的写操作都是逐位进行的,源代码如下:
return(i);
}
系统初始化过程源代码如下:
write(0xcc);/*发跳过序列号检测命令*/ write(0x44);/*发启动温度转换命令*/ for(j=350;j>0;j--)
{display(te);}/*延时800ms等待A/D转换完成*/
start();/*初始化*/
voidwrite(uchari)/*向DS18B20写一字节函数*/{
ucharj=8;/*设置读取的位数,一字节8位*/for(;j>0;j--) {
sensor=0;/*总线拉低,启动/写时间片0*/if(i&1)sensor=1;i>>=1;
delay(4);/*延时60Ls,使写入有效*/sensor=1;/*准备启动下一个/写时间片0*/ }}
MCU对DSl8B20温度值和其它状态信息的读取均由数据读完成,源代码如下:
unsignedcharread()/*从DS18B20读一字节函数*/{
unsignedchari,j=8; for(;j>0;j--){
sensor=0;/*总线拉低,启动读/时间片0*/;
sensor=1;/*总线拉高,准备读取*/i>>=1;;;
if(sensor)i+=0x80;/*从总线拉低时算起,约15Ls后读取总线数i+=0x80;*/delay(4);/*延时60Ls*/ }
write(0xcc);/*发跳过序列号检测命令*/ write(0xbe);/*发读取温度数据命令*/ tl=read();/*先读低8位温度数据*/ th=read();/*再读高8位温度数据*/ start();/*不需其他数据,初始化DS18B20结束读取*/
3 无线温度采集系统设计
为了实现节能降耗,哈尔滨某企业提出要对其各办公室、车库、工作间的温度进行检测,并把信息及时传送至锅炉房以调整锅炉的燃料量和送、引风量,从而控制锅炉的蒸汽温度,即根据各办公室、车库、工作间的温度值对锅炉进行燃烧控制以达到节能的目的,由于不能布线,温度采集系统采用无线数据传输的方式。系统中,锅炉房内放置一台主机(工业PC),通过RS232接口与无线数传模块相连,向各数据采集节点发送指令、接收各数据采集节点发送的地址和温度数据,并将这些数据提供给锅炉燃烧控制系统,当某节点温度超标时主机可控制警报器报警,主机还具有数据存储、显示、绘图、报表、打印、查询历史数据等功能。为了方便设计、制造,与主机相连的无线数传模块和数据采集节点采用了同一个电路原理图(如图1所示)和PCB,MCU和射频芯片采用MicroChip公司的PIC18F65J102I/PT和IA4421。
该系统是一个简单的点对多点通讯,所以通讯协议分为3层即可。第1层为物理层,由IA4421硬件实现;第2层为数据链路层;第3层为应用层。数据链路层的功能是提供可靠的无线数据传输。发送数据时,将应用层发来的比较长的数据帧拆分为短的数据帧,并加上包头和校验和,重新打包后发送出去。接收数据时,将接收到的数据解包并重新组合成完整的长数据,移交给应用层。引导码和通讯地址为IA4421的识别码,接收到的有效数据
#62#黑 龙 江 工 程 学 院 学 报(自然科学版) 第22卷
图1 无线温度采集系统电路原理图
从数据头开始,使用TEA算法,迭代次数16次,密钥为ASCII码(0xB9SDE2EA,0xB5C2CDFR,0xD6C7BGHY,0xB5RGL7RE)。硬件地址与命令码16位、校验和16位进行加密运算。加密后的数据必须放入原来的位置。本系统使用的通讯频率范围是900.72~929.27MHz,步长7.5kHz,共3808个频道。跳频使用人工跳频,以适应不同的应用环境。跳频步长频率3MHz(F=400),共8个频道,初始频率为915MHz,如果有干扰,进行人工跳频。本系统在2007年冬季供热前设计、安装、调试完成,至今运行良好。
线抄表、供热收费等诸多领域,应用前景非常广泛。
参考文献
[1]金伟正.单线数字温度传感器的原理与应用[J].仪表技术与传感器,2000(7):42243.
[2]王广志,吴颖.数字式温度传感器与分布式温度测量系统[J].传感技术学报,2001,14(1):26231.
[3]吴志忠,王克家,吴利予,等.一种基于单线数字温度传感器DSl8B20的储粮温度检测系统的设计[J].应用科技,2001,28(7):15216.
[4]张 萌,和 湘,姜 斌.单片机应用系统开发[M].北京:清华大学出版社,2007.
[5]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,2005.
[6]党 峰,王敬农,高国旺.基于DS18B20的数字式温度计的实现[J].山西电子技术,2007(3).
[7]周月霞,孙传友.DS18B20硬件连接及软件编程[J].传感器世界,2001(12).
4 结束语
基于DSl8B20的数字温度计工作稳定、可靠,体积小巧、线路简单、成本低、应用灵活、测温精度和转换速度足以保证大多数测温系统工作的要求。本文设计的无线温度采集系统实现了预期功能和节能效果,工作稳定可靠,可用于工业控制、环境监测、无
[责任编辑:郝丽英]
因篇幅问题不能全部显示,请点此查看更多更全内容