单总线数字温度传感器与AVR单片机接口技术及应用

更新时间:2023-07-19 21:45:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机 应用 电子制作 毕业设计

第18卷第2期       山 东 理 工 大 学 学 报(自然科学版)       Vol.18No.2          2004年3月       JournalofShandongUniversityofTechnology(Sci&Tech)       Mar.2004文章编号:1672-6197(2004)02-0065-07

单总线数字温度传感器与

AVR单片机接口技术及应用

赵明波1,张严利2,陈 平1

(1.山东理工大学计算机科学与技术学院,淄博2550492.河北摘 要:介绍了Dallas、工作原理及传输通讯协议.,,AVR单片机具有较.AVR系列单片机的接口技术及应用实例.

关键词;数字温度传感器;AVR单片机

中图分类号:TP212文献标识码:A

Applicationof12wiredigitalthermometerbasedonAVR

ZHAOMing2bo1,ZHANGYan2li2,CHENPing1

(1.SchoolofComputerScienceandTechnology,ShandongUniversityofTechnology,Zibo255049,China;

2.No.54Institute,ChinaElectricalScienceGroupCo.,Shijiazhuang050081,China)

Abstract:Thecharacteristics,principlesandtransactionsequenceof12wiredigitalthermometer(DS18B20)areintroduced,whichisproducedbyDallasCrop.12wirecantransmitdataseriallytomeasuremulti2droptemperature,andAVRsingle2chiphasbetterperformance.Thepro2grammableresolutionisalsogivenbasedonAVR.

Keywords:12wire;digitalthermometer;AVRsingle2chip

12wire单总线是Maxim全资子公司Dallas的一项专有技术.与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE不同,它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的.它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点.

DS18B20是美国DALLAS半导体公司生产的可组网的一线式数字温度传感器,与其它温度传感器相比,DS18B20具有以下特性:

(1)具有3引脚TO-92小体积封装形式.在其内部使用了在板(ON2BOARD)专利技术,全部传感元件及转换电路集成在形如一只三极管的集成电路内.

收稿日期:2003-11-06

作者简介:赵明波

(1974-),女,讲师,硕士.

单片机 应用 电子制作 毕业设计

                 山 东 理 工 大 学 学 报               2004年 66

(2)温度测量范围为-55~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达010625℃,被测温度用符号扩展的16位数字量方式串行输出.

(3)其工作电源既可在远端引入,也可采用寄生电源方式产生(见图3).

(4)独特的单线接口方式.DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯.

(5)DS18B20支持多点组网功能.多个DS18B20可以并联在唯一的三线上,实现多点测温,可节省大量的引线和逻辑电路.

以上特点使DS18B20非常适用于远距离多点温度检测系统.AVR系列单片机性能较为优越.本文从应用的角度出发,介绍了DS18B20与AVR单片机的接口技术.

1 DS18B20的主要内部结构DS18B20内部结构主要由4TH和TL、配置寄存器.,该序号值存放在DSl8B20内部的ROM(.(DSl8B20编码均为28H),接着的48位是每个器件唯一的序号,8位的CRC(循环冗余校验)码.ROM的作用是使每一个DS18B20都各不相同,DS18B20的目的.

DS18B20用12位存贮温度值,最高位为符号位.图1[1]为18B20的温度存储方式,负温度S=1,正温度S=01如:0550H为+85℃,0191H为25.0625℃,FC90H为-55℃.

bit7    bit6    bit5    bit4    bit3    bit2    bit1    bit0

LSByte

MS

Byte232221202-12-22-32-4bit15    bit14    bit13    bit12    bit11    bit10    bit9    bit8SSSSS262524

图1 18B20的温度寄存器

2 DS18B20的工作命令和时序

2.1 工作命令

1)典型的单总线命令序列[2]

第一步:初始化;

第二步:ROM操作命令(跟随需要交换的数据);

第三步:功能命令(跟随需要交换的数据).

每次访问单总线器件,必须严格遵守这个命令序列.如果出现序列混乱,则单总线器件不会响应主机.但是该限制对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步.

2)ROM操作命令

当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如下:

   指令

ReadROM(读ROM)    

MatchROM(匹配ROM)代码[33H][55H]

单片机 应用 电子制作 毕业设计

第2期         赵明波,等:单总线数字温度传感器与AVR单片机接口技术及应用67

SkipROM(跳过ROM)[CCH]

SearchROM(搜索ROM)[F0H]

Alarmsearch(告警搜索)[ECH]

3)存储器操作命令(功能命令)

     指令代码

WriteScratchpad(写暂存存储器)   [4EH]

ReadScratchpad(读暂存存储器)[BEH]

CopyScratchpad(复制暂存存储器)[48H]

ConvertTemperature(温度变换)[44H]

RecallEPROM(重新调出)[B8H]

ReadPowersupply(读电源)2

.2 操作时序

其工作时序包括初始化时序、].

(a)初始化时序

(b)写时序

(c)读时序

图2 DS18B20工作时序图

3 DS18B20与AVR

单片机的接口

ATMEL公司把51内核与其擅长的FLASH制造技术相结合,推出可重复擦写1000次以上低功耗的89C51/52/1051/2051等产品,取代其它8751系列,称霸单片机市场数年.1997年由A及V先生共同研发RISC(ReducedInstructionSetCPU)单片机,简称AVR.AVR单片机吸取PIC及8051单片机的

单片机 应用 电子制作 毕业设计

                 山 东 理 工 大 学 学 报               2004年 68

优点,并作了重大改进.

AVR单片机片内程序存储器采用

Flash存储器,可反复编程修改上千次,

便于新产品开发;程序高度保密,避免

非法窃取;速度快,大多数指令仅用1个

晶振周期;能采用C语言编程,从而能

高效快速发出目标产品;CMOS工艺生

产,功耗低;有主电源3V以下的品种,

进一步降低功耗,一般只需几mA;还有

多种低功耗方式,在掉电方式下,工作

电流小于1uA;计数器/定时器C/T有8

位和16位,可作比较器,计数器外部中

断和PWM(也可当D/A)用于控制输

出;有串行异步通讯UAR时器和SPI,达576K.A为8KB,数据存储器为512B,另外还有

EEPROM存储器512B,在该系统中几

乎不需要任何外部附加电路即可构成图3 DS18B20与AVR单片机接口原理图

单片机最小系统.[4]

由于DS18B20工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条I/O线与DS18B20的数据总线相连即可,如图3所示[3],因此本文重点介绍DS18B20与AVR单片机的软件接口技术.

以下为DS18B20在AT90S8515中的应用程序.应用中应根据实际晶振调整延迟时间.

3.1 初始化及读、写子程序

初始化子程序流程图见图4.

INIT:          ;初始化子程序

  SBIDDRA,B20D;将数据线B20D拉低

μs    LDIR16,180;并延时约500

  RCALLDTB20

  CBIDDRA,B20D

  LDIR16,1

  RCALLDTB20

  SBISPINA,B20D

  RJMPINIT

INIT1:SBICPINA,B20D

RJMPINIT1

LDIR16,18

RCALLDTB20

INIT2:SBISPINA,B20D

RJMP

INIT2

LDIR16,100

RCALLDTB20;释放B20D信号(即将PINB7引脚拉高)μs;调延时子程序约3μs后数据线还没变高则重启或报错;若释放3

单片机 应用 电子制作 毕业设计

第2期         赵明波,等:单总线数字温度传感器与AVR

单片机接口技术及应用69

RET

W-18B20:           ;写18B20子程序

LDIR18,8

CLC

W-B201:CBIDDRA,B20D

LDIR16,1

RCALLDTB20

SBIDDRA,B20D;将数据线拉低产生

;写信号下降沿;将数据线拉高μs;约3 

LDIR16,3

RCALLDTB20

RORR17;拉低约433=12; ;将数据线拉高

W-B202:LDIR16,16;发送位延时约

 

RCALLDTB20

DECR18

BRNE   W-B201

CBIDDRA,B20D

RET

R-18B20: 

LDIR18,$80

R-B201:CBIDDRA,B20D

LDIR16,1

RCALLDTB20

SBIDDRA,B20D

NOP

CBIDDRA,B20D

LDIR16,3

RCALLDTB20

SEC

SBISPINA,B20D

CLC

RORR18

LDIR16,25

RCALLDTB20

BRCCR-B201;将数据线拉高;将数据线拉低产生;读信号下降沿图4 初始化流程框图μs;1533=45;将数据线拉高;读18B20子程序;将数据线拉高μs;拉高约3

单片机 应用 电子制作 毕业设计

                 山 东 理 工 大 学 学 报               2004年 70

CBIDDRA,B20D

RET

DTB20:NOP;将数据线拉高μs;延时子程序每循环约3

……

RET

3.2 读出DS18B20的序列号应用程序

调试中也可以用此程序测试DS18B20的初始化及读、写子程序是否正确.  wd:            ;读出DS18B20的序列号,晶振8M

.EQUB20D=7;DS18B20(接口的CLI

B20:RCALL INIT

 -RCALL

RCALL

RCALL

RCALL

RCALL

RCALL

RCALL

SEI

RETR-18B20R-18B20R-18B20R-18B20R-18B20R-18B20R-18B20R-18B20ST X+,R18ST X+,R18ST X+,R18ST X+,R18ST X+,R18ST X+,R18ST X+,R18ST X+,R18    LDIR17,;读(3.3 获取单个DS18B20转化的温度值应用程序

WD2:            ;获取单个DS18B20转化的温度值,晶振8M

.EQU

B20D=7;DS18B20的数据线(接A口的PA7)

CLI

RCALL INIT

LDIR17,$CC

RCALL W-18B20

R-AD:LDIR17,$44;关中断;18B20初始化;跳过内部ROM命令;启动A/D转换命令

单片机 应用 电子制作 毕业设计

第2期         赵明波,等:单总线数字温度传感器与AVR单片机接口技术及应用71

RCALL W-18B20

RCALL INIT

LDIR17,$CC

RCALL W-18B20

LDIR17,$BE

RCALL W-18B20

RCALL R-18B20

LDIXL,$AB

ST -X,R18

RCALL R-18B20

ST -X, R18

SEI

RET

3.4 多路测量;18B20初始化;跳过内部ROM命令;读RAM命令;读出温度的低字节并暂存;读出温度的高字节并暂存;

开中断

每一片48位序列号,在出厂前已写入片内ROM中.主机在(33H)命令将该DSl8B20的序列号读出.

18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),接着主机提供64位序列(包括该18B20的48位序列号),之后的操作就是针对该DSl8B20的.而跳过ROM命令,即为之后的操作是对所有DSl8B20的.程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据.

在DSl8B20组成的多点测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DSl8B20的统一转换.再经过1s后就可以用很少的时间去逐一读取.这种方式使其时间值往往小于传统方式(由于采取公用的放大电路和AD转换器,只能逐一转换).显然通道数越多这种省时效应就越明显.

4 结束语

我们已成功地将DS18B20应用于所开发的“锅炉测控系统”及“充电器测控系统”中,其转换精度高,抗干扰能力强,使用时无需标定或调试;与微处理器的接口简单,可方便地实现多点组网测温,给硬件设计工作带来了极大的方便.另外采用DS18B20能有效地降低成本,简化系统设计,缩短开发周期,占用系统I/O资源少、扩展方便,在多点温度检测中将有极为广泛的应用前景.

参考文献:

[1]

DallasCorp.DS18B20[EB/OL].,2003209211.

[2]Maxim公司.12Wire单总线的基本原理[EB/OL]./article/1-wire.pdf,20032092.

[3]马云峰,陈子夫,李培全.数字温度传感器DS18B20的原理与应用[EB/OL]./dzkw/200221/9.htm,20022

01212/2003209226.

[4]耿德根,宋建国,马 潮,等.AVR高速嵌入式单片机原理与应用[M].北京:北京航空航天大学出版社,2001.

本文来源:https://www.bwwdw.com/article/g671.html

Top