单片机原理第10章-一线总线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及程序设计 1)DS18B20内部存储器布局
第10章
18B20内部存储器布局如图10-18所示。分为两个区,
图中左边9个SRAM单元,称为暂存寄存器,括号内的数
据为18B20的上电复位值。
图右侧3个非易失性(EEPROM)存储单元。由于 TH和TL及芯片配置寄存器与18B20的工作任务有关,需 要长期保存。它们的内容(出厂值或用户设定值),决定 了图中左边暂存寄存器组中第2、3、4字节的内容。
即ROM。用于多从器件系统的识别。其数据板式如图1022所示。其中最低8位为18B20家族编码,固定为28H;接
下来是48位序列号,最高位是前56位(7字节)数据的
CRC校验值。
单片机原理及程序设计
第10章
6) CRC算法
DALLAS一总线器件的CRC方程统一为:
CRC X X X 1
单片机原理及程序设计
第10章
设“两读”结果为01,说明总线上所有器件该位
ROM码均为0,为保持器件与总线的联系,“一写”内容 0。同理,如“两读”数据为10,主机则应写1。“一写” 的“排除”功能,使每64次 “两读一写”,确定一个器 件的64位编码成为可能。
单片机原理及程序设计
第10章
2)ROM编码的“排除”搜索算法示例
单片机原理及程序设计 10.4.3 DS18B20的应用
第10章
1.DS18B20命令流程
为应用好DS18B20,使用者需要具备以下条件:
(1)对DS18B20的数据手册中关于工作原理和操作 技术细节的内容有深入的理解。
(2)深入理解DS18B20的操作时序。 (3)掌握实现DS18B20各种功能的流程,并能编写 驱动程序实现其功能。
态、温度转换和数据传输的正确性等状态的判别。
DS18B20中有两个不同意义的CRC值。一个是暂存 寄存器组中的CRC值,它是寄存器组中前8个寄存器值的 CRC值,用于检验温度转换和数据传输的正确性。上电 后,该CRC值由EEPROM的值决定,见图10-18。
单片机原理及程序设计
第10章
另一个是18B20内部有唯一的64位激光编码,只读,
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
图10-25是单片机与18B20的接口电路图。图中
18B20采用外接电源方式,其VDD端用3~5.5V电源供电。
单片机原理及程序设计
第10章
图10-26是18B20寄生供电方式。为此,VDD必须接
地。单片机通过I/O控制图中的MOSFET管,为18B20提 供能量。以这种寄生供电方式构成的系统,可以带更多的 一线产品,并能可达到较远的传输距离。
单片机原理及程序设计
第10章
Powerpoint 制作:
五邑大学信息工程学院
刘焕成
课程主讲:刘焕成
电话:0750-3299035(O)
单片机原理及程序设计
内容提要
第10章
一线总线时序分析及应用
单片机原理及程序设计
第10章
10.4 一线总线时序分析应用
代表产品是温度传感器和ID码芯片。特点如下:
(1)一线传输。数据线和串行时钟线合并,统称
第10章
(1)工作电压范围3~5V,并可通过数据线对器件供电。 (2)温度测量范围为-55℃~+125℃。在-10℃~+85℃范围 内,保证±0.5℃的测量精度;整个测量范围内,保证±2℃的测量
精度。其测量结果可选择9位或12位转换输出。
(3)温度转换速度:12位数字转换时间为750ms。 (4)具有温度报警功能,可长期保存报警温度的设置值, 掉电不丢失。 (5)64位串行地址编码,用于系统主机对其识别与通信。
WRITE_BYTE
单片机原理及程序设计 LCALL MOV LCALL INC MOV SJMP CLR MOV DJNZ
温度上或下限值时,“S”位被置“1”。如在下一次温度转
换后,温度不超限,则“S”位被自动复位。
单片机原理及程序设计
第10章
4)DS18B20的芯片配置寄存器的数据格式
18B20的芯片配置寄存器的功能是确定18B20的温度 芯片配置寄存器数据格式如图10-21所示。
转换结果的位数,以实现不同测量精度和转换时间的要求,
单片机原理及程序设计
第10章
2. DS18B20的内部结构 18B20内部结构如图10-17所示。18B20主要由 一线接口和64位ROM、寄存器组和控制电路、温 度传感器和CRC(循环校验码产生器)等4个部分 组成。器件外部只有DQ(数据传送线)、VDD和
GND三个管脚。
单片机原理及程序设计
第10章
又如,温度转换值为FF5EH=1111111101011110B
求补码:0000000010100001+1=0000000010100010
则检测到的温度值为-(23+21+2-3) = -10.125℃
单片机原理及程序设计
第10章
3) TH和TL触发寄存器
18B20的温度报警功能是通过设置其内部TH和TL触
工作,参考的汇编程序如下:
单片机原理及程序设计 DQ EQU
第10章
P1.1
RESULT
ORG
EQU
0000H
40H
LJMP
ORG MAIN: MOV MOV LCALL MOV
MAIN
0040H SP,#5FH R0,#RESULT INIT ;复位一总线,并检测应答 A,#0CCH
单片机原理及程序设计
单片机原理及程序设计
第10章
18B20的操作一般由以下固定的步骤顺序组成:
(1)初始化18B20,包括主机发复位脉冲,18B20
应答,主机确认等。 (2)主机发ROM命令到18B20,后跟所需的数据。 (3)主机发功能命令,后跟所需的数据。 DS18B20的ROM命令流程如图10-29所示,其功能 命令流程如图10-30所示。
单片机原理及程序设计
第10章
单片机原理及程序设计 2)读/写时序
百度文库
第10章
18B20读/写操作是靠时间片来识别总线信息的。又
有读、写“0”和“1”时间片两种。写时间片至少要持续
60μs(但不要超过120μs),包括两个时间片中间的至少
1μs的电平转换时间。图10-28(a)为写时序,图10-28 (b)为读时序。
发寄存器实现的。他们存储用户设定的报警温度上、下限
图中的“S”位为报警标志位,当S=1时,表示被测温度超 出了设定的报警温度上或下限值。
值。TH和TL触发寄存器的数据格式相同,如图10-20所示。
单片机原理及程序设计
第10章
DS18B20每次完成温度转换后,与TH和TL触发寄
存器的内容进行比较,当测得的温度超出用户设定的报警
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
2) 转换温度寄存器格式
DS18B20的转换温度存于其内部的转换温度寄存器
中,其格式如图10-19所示。
单片机原理及程序设计
第10章
当温度为负值时,输出值以补码的形式输出,表1011为典型温度的对应输出值。DS18B20上电复位时转换温
度寄存器的内容为0550H即85℃。
单片机原理及程序设计
第10章
单片机原理及程序设计 (3)读时序
第10章
读数据的过程从DQ端由高向低电平跃变开始。读与
写不同于:在读时间片开始后,主机要在15μs之内完成读
进程,因为在读命令下达后,读时间片就开始了,总线状
态随18B20的输出而变化。因此,在读过程中主机要保持 DQ为低电平15μs。之后,主机要释放DQ端,总线回到高 电平状态最长时间为45μs,整个过程应在60μs之内完成。 见图10-28。
单片机原理及程序设计 5.一线总线时序分析
第10章
(1)初始化时序
初始化时序如图10-27所示。主器件将总线拉低至少
480μs后,将总线拉成高电平,之后等待从器件的应答信
号,等待时间在15~60μs之间。正常情况下,从器件将产 生60~240μs宽的低脉冲作为应答信号,表示从器件在线, 可接收主器件的命令与读操作。
第10章
LCALL
MOV LCALL LCALL LCALL MOV LCALL
WRITE_BYTE;发跳过ROM命令
A,#44H WRITE_BYTE INIT A,#0CCH;发跳过ROM命令 WRITE_BYTE
;发启动转换命令
DEYAY1S;延时1s待温度转换完成
MOV
LCALL
A,#0BEH ;发读存储器命令
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
2.搜索ROM原理
1)搜索算法的物理基础
要在众多器件中,一个个地确定它们的64位ROM编
码,需要18B20对搜索ROM命令(F0H)有特别的反应。 事实正是如此,听到搜索广播命令后,每个18B20会向总 线输出两个数据位,前面是64位ROM编码之一,后跟此 位的“非” 。主机读到的是所有器件码的“与”值。
【例10-5】为使讨论的问题简单扼要,假设某一线
总线器件有4位ROM编码,器件具有DS18B20的功能。现 0101、1010。试描述ROM编码的“排除”搜索算法确定 它们编码的过程。 解:4个4位编码器件在总线上,需要4轮4循环“两 读一写”才能完成搜索。表10-15为一个器件编码搜索的
有4个这种器件在总线上,它们的编码分别为 0000、1111、
现的,其算法如图10-23所示。
8
5
4
(8-1)
在18B20中的循环冗余校验,是通过CRC发生器实
单片机原理及程序设计 3. DS18B20的ROM功能命令集
第10章
18B20命令集分ROM命令和功能命令两类。ROM命
令用于器件64位编码的识别、总线上器件的数量和种类; 功能命令用于实现DS18B20的功能。现将DS18B20命令集 列于表10-13中,以便在整体上掌握其指令系统。
单片机原理及程序设计 的位数及转换时间。
第10章
图中R1、R0位的组合,确定了芯片对温度转换结果
转换结果的位数及转换时间与R1、R0的关系如表 10-12所示。
单片机原理及程序设计
第10章
5)DS18B20的循环冗余校验码(CRC)的意义
CRC由DS18B20的CRC发生器自动生成。借用CRC
值,用户可实现对多点温度采集系统中节点位置、工作状
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
当温度为负值时,输出值以补码的形式输出,表1011为典型温度的对应输出值。DS18B20上电复位时转换温 度寄存器的内容为0550H即85℃。 例如,温度转换值为191H=0000000110010001B
则检测到的温度值为+24+23+20+2-4=25.0625℃
“两读”内容的4种组合,对搜索ROM编码所提供的信息
及分析结果如表10-14所示。
单片机原理及程序设计
第10章
单片机原理及程序设计 算法的物理基础之一。
第10章
“两读”内容(原码、非码、线与)的特征,是搜索
“一写”,写什么?18B20对 “一写”的内容有如 下反应:如果器件编码位与写的值相同,则继续保持与总 线的联系;否则从总线上“退出”,不再响应主机发布的 命令,直到主机进行下一次复位为止。这就是识别算法的 物理基础之二。
DQ线,为数据数输入/输出端。 (2)单主机,外围接口器件都是从器件。 (3)总线中的从器件采用器件地址编码方法。每个 器件唯一的64位串行码,用于主机对从器件识别和寻址。 (4)一线总线时序中有严格的时间参数,对时间操 作的精度要求很高。
单片机原理及程序设计
10.4.1 DS18B20简介
1. DS18B20的一般特性
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
6. DS18B20的引脚功能及供电方式
18B20采用TO-92、8Pin SO及8Pin μSOP三种封装。 图10-24为TO-92封装器件引脚图。注意:当面对芯片的 标称平面时,最左边为1号引脚(GND)。当1、3接反时, 18B20在短时间内不会烧毁,但器件发热,不能正常读、 写。
全过程,确定总线上有一个ROM编码为0000的器件。
单片机原理及程序设计
第10章
单片机原理及程序设计
第10章
3.DS18B20的51机应用程序举例
【例10-6】 DS18B20的基本功能-温度采集的用法。
设总线上只有一片一总线器件,即一片18B20。设在图825(b)中,51机用P1.0与DS18B20的DQ端相连接。并设 系统时钟频率为:fosc=12MHz。 解:在系统中若一总线上只有一个器件,可以利用 DS18B20命令,直接命令器件进行温度转换或读取温度的