1,wire,协议

合集下载

1-WIRE总线详解

1-WIRE总线详解

1-WIRE总线详解。

讯号线会连接一个4.7K 欧姆的Pull-High 电阻,电阻再接到电源(3V 到5.5V)。

1-WIRE 总线传输使用的速度有标准速度与高速两种。

每个1-WIRE 总线有独立的64 位辨识码以供装置辨识用,因此最多可以连接1.8*1019 个装置,几乎是无限制。

1-WIRE 常见的应用是在EEPROM 上与一些传感器界面上。

1- WIRE 的速度有标准:1MHz(1us),高速:5MHz(0.2us).1-WIRE 有四种数据包:1.Reset:每个通讯周期都是由Reset 讯号开始。

Master 会先发送Reset Pulse 让所有在1-WIRE 上的Slave 装置进入辨别状态,当一个Slave 或很多个Slave 接收到Reset Pulse 讯号之后,Slave 会回传一个Presence Pulse 讯号,用来表示接收到。

2.Write 0:发送一个0bit 给Slave(Write 0 time slot)。

3.Write 1:发送一个1bit 给Slave(Write 1 time slot)。

4.Read Data:Read Data Sequences 很像Write 1 Time Slot,但是在Master 释放总线线并且从Slave 装置读回数据后,Master会取样Bus 的状态,透过这种方法Master 可以从Slave 读回任何0 或1 的bit。

Reset:一开始Master 要跟Slave 做任何通讯时,Master 会先传送一个低准位的Reset Pulse(TX)of(标准速度:480us;高速:48us)的一段时间。

接着Master 会释放出总线线并进入接收模式(RX),1-WIRE Bus 会透过上拉电阻将准位拉回High 状态。

然后Master 在Data Line 上会侦测到Rising Edge,此时任何一个Slave 会等待一段时间()(标准速度:15-60us;高速:2-6us)并且传回一个Presence Pulse()(标准速度:60-240us;高速:8-24us)给Master。

单片机学习(十二)1-Wire通信协议和DS18B20温度传感器

单片机学习(十二)1-Wire通信协议和DS18B20温度传感器

单⽚机学习(⼗⼆)1-Wire通信协议和DS18B20温度传感器⽬录⼀、DS18B201. DS18B20简介DS18B20是⼀种常见的数字温度传感器,其控制命令和数据都是以数字信号的⽅式输⼊输出,相⽐较于模拟温度传感器,具有功能强⼤、硬件简单、易扩展、抗⼲扰性强等特点测温范围:-55°C 到 +125°C通信接⼝:1-Wire(单总线)其它特征:可形成总线结构、内置温度报警功能、可寄⽣供电2. 电路原理图其中1和3号引脚分别连接GND和VCC,⽽⼆号引脚则⽤于使⽤1-Wire(单总线)接⼝进⾏通信。

即:3. 内部结构内部完整结构框图64-BIT ROM:作为器件地址,⽤于总线通信的寻址SCRATCHPAD(暂存器):⽤于总线的数据交互EEPROM:⽤于保存温度触发阈值和配置参数其中配置寄存器可以配置温度变化的精度值。

存储器结构当我们希望修改EEPROM中存储的内容时,我们需要先将数据写⼊到暂存器中,然后再发送⼀条指令使从机将暂存器中的数据写⼊到EEPROM中。

⼆、单总线(1-Wire BUS)由于DS18B20使⽤的通信接⼝是1-Wire,因此我们需要学习1-Wire相关的通信协议,这样才能使单⽚机和它进⾏通信。

1. 单总线简介单总线(1-Wire BUS)是由Dallas公司开发的⼀种通⽤数据总线⼀根通信线:DQ异步、半双⼯单总线只需要⼀根通信线即可实现数据的双向传输,当采⽤寄⽣供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线2. 电路规范设备的DQ均要配置成开漏输出模式DQ添加⼀个上拉电阻,阻值⼀般为4.7KΩ左右若此总线的从机采取寄⽣供电,则主机还应配⼀个强上拉输出电路3. 单总线的时序结构①初始化:主机将总线拉低⾄少480us然后释放总线,等待15~60us存在的从机拉低总线60~240us以响应主机最后从机将释放总线对应的信号时序图:②发送⼀位:主机将总线拉低60~120us,然后释放总线,表⽰发送0;主机将总线拉低1~15us,然后释放总线,表⽰发送1。

DS18B20数据手册-中文版

DS18B20数据手册-中文版

DS18B20数据手册-中文版DS18B20 分辨率可编程概述1-Wire数字温度传感器 DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程? 温度转换时间在转换精度为12-Bits时达到的非易失性且具有过温和低温触发报警的报警最大值750ms。

功能。

DS18B20采用的1-Wire通信即仅采用一? 用户自定义非易失性的的温度报警设置。

个数据线(以及地)与微控制器进行通信。

该? 定义了温度报警搜索命令和当温度超过用户传感器的温度检测范围为-55?至+125?,并且自定义的设定值时。

在温度范围超过-10?至85?之外时还具有? 可选择的8-Pin SO (150 mils), 8-PinμSOP,+-0.5?的精度。

此外,DS18B20可以直接由数及3-Pin TO-92封装。

据线供电而不需要外部电源供电。

? 与DS1822程序兼容。

每片DS18B20都有一个独一无二的64位? 应用于温度控制系统,工业系统,民用产品,序列号,所以一个1-Wire总线上可连接多个温度传感器,或者任何温度检测系统中。

DS18B20设备。

因此,在一个分布式的大环境管脚定义图里用一个微控制器控制多个DS18B20是非常简单的。

这些特征使得其在HVAC环境控制,在建筑、设备及机械的温度监控系统,以及温度过程控制系统中有着很大的优势。

特性独特的1-Wire总线接口仅需要一个管脚来通信。

每个设备的内部ROM上都烧写了一个独一无二的64位序列号。

多路采集能力使得分布式温度采集应用更加简单。

无需外围元件。

能够采用数据线供电;供电范围为3.0V至5.5V。

温度可测量范围为:-55?至+125?(-67?至+257?)。

温度范围超过-10?至85?之外时具有+-0.5?的精度。

内部温度采集精度可以由用户自定义为9-Bits至12-Bits。

DS18B20订购信息零件温度范围引脚数-封装顶部标号DS18B20 3 TO-92 18B20 -55?至+125?DS18B20+ 3 TO-92 18B20 -55?至+125?DS18B20/T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20+T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20-SL/T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20-SL+T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20U 8 uSOP 18B20 -55?至+125?DS18B20U+ 8 uSOP 18B20 -55?至+125?DS18B20U/T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20+T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20Z 8 SO DS18B20 -55?至+125?DS18B20Z+ 8 SO DS18B20 -55?至+125?DS18B20Z/T&R DS18B20 -55?至+125? 8 SO(2500片)DS18B20Z+T&R DS18B20 -55?至+125? 8 SO(2500片)“+”号表示的是无铅封装。

1-wire总线接口应用

1-wire总线接口应用
学号:
实验日期:
成绩:
1-wire
实验目的
1、理解1-wire总线的工作时序。
2、掌握DS18B20传感器的使用方法。
3、理解不同数码之间的转换方法。
实验仪器
单片机开发板、万利仿真机、稳压电源、计算机
实验原理
1、1-wire总线
近年来,美国的DALLAS公司推出了一项特有的单总线(1-Wire Bus)技术。该技术采用单根信号线进行数据传输。既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
1-wire总线的读位时序如图4-25所示。首先把总线拉成地电平约8μS,然后IO口为高电平释放总线。主机(单片机)约在开始后15μS读IO数据,再等待读时序结束(约45μS),最后释放总线,准备读下一位。位与位之间间隔没有限制,但至少1μS以上。
图4-25 1-wire总线读位时序图
总线复位时序如图4-26所示。主机先把总线拉成低电平并保持480μS-960μS,然后主机释放总线(变成高电平)约15μS-60μS,DS18B20发出存在信号(低电平60μS-240μS),然后DS18B20也释放总线,准备开始通信。
此命令读暂存存储器的内容读开始于字节0,并继续经过暂存存储器直至第九个字节字节8CRC被读出为止。主机可以在任何时候发出一复位以中止读操作。
复制暂存存储器Copy Scratchpad [48h]
此命令把暂存存储器复制入DS18B20的E2PROM存储器,把温度存储器字节存贮入非易失性存储器。如果由寄生电源供电总线主机在发出此命令之后必须能立即强制上拉至少10mS。
Skip ROM(跳过ROM)[CCh]
在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件,而且在SkipROM命令之后发出读命令,那么由于多个从片同时发送数据会在总线上发生数据冲突漏极开路下拉会产生线与的效果。

1-Wire(单线)概述

1-Wire(单线)概述
达拉斯半导体公司的 1-Wire 总线是一种简单的信号交换方式,它是在主机与外围器件 之间通过一条线路进行双向通信。所有的 1-Wire 总线器件都具有一个共同的特征:无论是 芯片内还是 iButton 内,在出厂时每个器件都有一个与其它任何器件互不重复的固定的序列 号。也就是说,每一个器件都是唯一的。这就使得在众多连到同一总线的器件中可以选择出 任意一个器件。因为一个、二个甚至几十个 1-Wire 器件能共用一条线路进行通信,所以可 采用对半检索法依次查找每一个器件。一旦器件的序列号已知,通过访问序列号,任何器件 都可被唯一地选出以用于通信。
会话 分时使用总线。这对于操作系统或几个进程或线程要求同时使用总线的情况下是非 常重要的。当多项操作在同一器件上运行而又不能被打断的时候,需要独占总线的使用 权。
链路 基本的 1-Wire 总线通信功能。所有的 1-Wire 总线的通信功能可以归结为:复位 所有的器件和读写位。这也包括设置总线电特性的功能,如提供专用的 EPROM 编程脉 冲或进行供电。
选定 1-Wire 器件
执行一个特定器件操作
每个受控器件的序列号的整数部分是一个 8 位的家族代码。这个代码对器件模型来说是 特定的。因为每种器件模型执行不同的功能,所以可以用代码来选择用于控制或者查询器件 的协议。表 1 是达拉斯半导体公司的器件型号的家族代码。
家族代码对照 表 1
家族代码
器件型号()iButton 封装
(DS1921Z)22 NhomakorabeaDS1822
23
(DS1973), DS2433
24
(DS1904), DS2415
26
DS2438
27
DS2417
28
DS18B20

ZDS2022示波器百集实操视频之51:1-wire协议触发

ZDS2022示波器百集实操视频之51:1-wire协议触发

文库资料 ©2014 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.
文章源自ZLG 致远电子,转载或引用请注明出处
1 ZDS2022
示波器百集实操视频之51:1-wire 协议触发
大家好,上期视频我们跟大家分享了1-wire 协议的解码,今天来看看它的触发功能。

在解码模块中一旦打开协议触发,按下【Trigger 】键后,触发类型就自动变成了解码的1-wire 协议,将触发方式设为普通,在协议参数中可对1-wire 协议进行触发参数设置,触发源根据实际输入进行通道设置。

速度模式包括标准和驱动两种,驱动模式下数据的传输速率比标准模式下数据的传输速率会高一点,我们选择标准模式。

触发模式包括开始段触发、指令触发和自定义触发三种模式,设置自定义触发,长按旋钮A 可得知指令1的帮助信息,指令1是指输入要触发的第一条的8位指令,当您在对某个设置不清楚时,可先将其选中,长按对应的旋钮查看其帮助信息,指令1设置为0xCC ,指令2设置为0x01,确定两个指令后,设定其中的间隔位宽为16位。

图1 1-wire 协议自定义触发
返回到主界面,可见触发点已准确定位在0x01结束处,在解码环境下,观察协议触发情况,对协议分析更加有利!
腾讯视频:/page/g/3/2/g014552hz32.html
优酷视频:/v_show/id_XODgxMTM5NDk2.html。

1-Wire软件资源指南和驱动程序说明

1-Wire软件资源指南和驱动程序说明

Java OWAPI OWAPI OWAPI OWAPI OWAPI
图 2. API 功能集
会话
分时使用 1-Wire 总线。这对于操作系统或几个进程或线程尝试同时使用同一总线的情况下是非常重要 的。当多项操作在同一器件上运行而又不能被打断的时候,需要独占总线的使用权。
链路
基本的 1-Wire 总线通信功能。 所有的 1-Wire 总线通信功能可以归结为:复位所有的器件和读写位。这 也包括设置总线电特性的功能,如提供专用的 EPROM 编程脉冲或进行供电。
是 执行其它 操作吗?
否 会话 释放 1-Wire 的独占式使用权
其它 处理申请表中的其它任务
AN155
iButton通信实质上是通过与其触头相接触来实现的。这意味着与器件的联系有时是不可靠的。iButton也可 能被安装到阅读器里,在阅读的时候弹出,从而必须有一个相容的纠错方法紧跟其后。当检测到虚假错误 时必须重发数据并在数据通信中进行CRC校验。API中的文件输入输出功能所利用的标准文件结构在 应用 笔记 114 (English only) 1-Wire File Structure中进行了详细说明。这种结构在每页数据上都使用CRC16, 以快速地校验所读数据的正确性。大多数 1-Wire API功能很少或者不能自动重发。重发受应用软件控制。 应用笔记 159 (English only)绝对可靠的 1-Wire通信 讲述了纠错方法和 1-Wire通信的风险评估。
图 3 概括了使用这些功能的典型顺序。‘会话’功能围绕着调用器件进行通信,具有代表性的是先使用一 个‘网络’功能,然后运行存储器或‘器件’的特定操作。
3
10/11/05
图 3. API 用法流程
会话 获取 1-Wire 的独占式使用权

1-wire单总线数据通信

1-wire单总线数据通信

1-wire单总线数据通信
功能命令
主器件借助功能命令访问从器件。 在成功执行初始化和ROM命令后,即可由主器件发出功能
命令,实现主器件与从器件的通信。 Dallas公司现已开发出多种信息纽扣,各器件的功能命令并
不完全相同,使用时须查阅该芯片的技术文档。
1-wire单总线数据通信
基本ROM命令
Read ROM [33H] 即将信息纽扣的注
册码读出。 用于主器件略过其
他ROM命令,直 接读取从器件的 64bit ROM注册码。
1-wire单总线数据通信
基本ROM命令
Match ROM [55H] 用于从多个从器
件中选中一个 命令字节[55H]后
必须紧随64bit ROM注册码
复位时序
1-wire单总线数据通信
写0时序
当单总线上的电平降至VTL以下时,从器件启动内部定时, 于采样窗口内(tSLSMIN至tSLSMAX)写数据0。
单总线在采样点处的电平决定了从器件在窗口内写1或0。 为了保证可靠的通信,整个采样窗口内电平值应该保持恒

写0时序
1-wire单总线数据通信
硬件结构
主器件或从器件通过OC门或OD门(即集电极开路或漏极 开路)连接至单总线
单总线要求外接一个5千欧姆左右的上拉电阻 如果单总线保持低电平超过480,单总线上的所有器件将复

1-wire单总线数据通信
单总线操作流程
初始化 执行ROM命令 执行功能命令
1-wire单总线数据通信
初始化
1-wire单总线数据通信
复位时序
主器件(单片机或PC机)发送复位脉冲(使单总线为低电 平的持续时间大于tRSTL的)
主器件释放单总线,同时转换为接收模式。 通过上拉电阻将单总线拉至高电平;从器件在检测到数据
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

竭诚为您提供优质文档/双击可除1,wire,协议篇一:单总线(1-wiRebus)技术及其应用单总线(1-wirebus)技术及其应用摘要:介绍了美dallas公司推出的单总线技术的原理和信号传输方式,说明了单总线通信协议,最后以单总线器件ibutton在安防系统中的应用为例,给出了单总线的数据传输方法。

关键词:单总线单总线协议ibutton1引言目前常用的微机与外设之间进行数据传输的串行总线主要有i2c总线、spi总线和sci 总线。

其中i2c总线以同步串行2线方式进行通信(一条时钟线,一条数据线),spi总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而sci总线是以异步方式进行通信(一条数据输入线,一条数据输出线)的。

这些总线至少需要两条或两条以上的信号线。

近年来,美国的达拉斯半导体公司(dallassemiconductoR)推出了一项特有的单总线(1-wirebus)技术。

该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。

单总线适用于单主机系统,能够控制一个或多个从机设备。

主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。

当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。

图1所示是单总线多节点系统的示意图。

2单总线的工作原理顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。

设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图2所示。

单总线通常要求外接一个约为4.7k Ω的上拉电阻,这样,当总线闲置时,其状态为高电平。

主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据。

由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、Rom、命令功能命令。

如果出现序列混乱,1-wire器件将不响应主机(搜索Rom命令,报警搜索命令除外)。

表1是列为ΔΙΩ命令的说明,而功能命令则根据具体1-wire器件所支持的功能来确定。

表1Rom命令说明Rom命令说明搜索Rom(F0h)识别单总线上所有的1-wire器件的Rom编码读Rom(33h)(仅适合单节点)直接读1-wire器件的序列号匹配Rom(55h)寻找与指定序列号相匹配的1-wire器件跳跃Rom(cch)(仅适合单节点)使用该命令可直接访问总线上的从机设备报警搜索Rom(ech)(仅少数器件支持)搜索有报警的从机设备3信号方式所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。

1-wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种信号类型。

所有的单总线命令序列(初始化,Rom命令,功能命令)都是由这些基本的信号类型组成的。

在这些信号中,除了应答脉冲外,其它均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。

图3是这些信号的时序图。

其中,图3(a)是初始化时序,初始化时序包括主机发出的复位脉冲和从机发出的应答脉冲。

主机通过拉低单总线至少480μs产生tx复位脉冲;然后由主机释放总线,并进入Rx接收模式。

主机释放总线时,会产生一由低电平跳变为高电平的上升沿,单总线器件检测到该上升沿后,延时15~60μs,接着单总线器件通过拉低总线60~240μsμ来产生应答脉冲。

主机接收到从机的以应答脉冲后,说明有单总线器件在线,然后主机就可以开始对从机进行Rom命令和功能命令操作。

图3中的(b)、(c)、(d)分别是写1、写0和读时序。

在每一个时序中,总线只能传输一位数据。

所有的读、写时序至少需要60μs,且每两个独立的时序之间至少需要1μs的恢复时间。

图中,读、写时序均始于主机拉低总线。

在写时序中,主机将在拉低总线15μs之内释放总线,并向单总线器件写1;若主机拉低总线后能保持至少60μs的低电平,则向单总线器件写0。

单总线器件仅在主机发出读时序时才向主机传输数据,所以,当主机向单总线器件发出读数据命令后,必须马上产生读时序,以便单总线器件能传输数据。

在主机发出读时序之后,单总线器件才开始在总线上发送0或1。

若单总线器件发送1,则总线保持高电平,若发送0,则拉低总线。

由于单总线器件发送数据后可保持15μs有效时间,因此,主机在读时序期间必须释放总线,且须在15μs的采样总线状态,以便接收从机发送的数据。

[!--empirenews.page--]图3单总线的几种信号时序4单总线器件通常把挂在单总线上的器件称之为单总线器件,单总线器件内一般都具有控制、收*发、存储等电路。

为了区分不同的单总线器件,厂家生产单总线器件时都要刻录一个64位的二进制Rom代码,以标志其id号。

目前,单总线器件主要有数字温度传感器(如ds18b20)、a/d转换器(如ds2450)、门标、身份识别器(如ds1990a)、单总线控制器(如ds1wm)等。

这里介绍一种ibutton形式的单总线器件,它是利用瞬间接触来进行数字通信的,这些器件的应用已经渗透到货币交易和高度安全的认证系统之中。

ibutton是采用纽扣状不锈钢外壳封装的微型计算机晶片,它具有抗撞击、防水渍、耐腐蚀、抗磁扰、防折叠、价格便宜等特点,能较好的解决传统识别器存在的不足,同时又可满足系统在可靠性、稳定性方面的要求。

ibutton主要有三种类型,分别是memoryibutton(存储器);java-poweredcryptographicibutton(加密型);thermochronibutton(温度型)。

存储型ibutton最大存储空间为64kb,可以存储文本或数字照片。

加密型ibutton是一种微处理器和高速算法加速器,可以产生大量需要加密和解密的数据信息,它的运行速度非常快,可与internet应用相结合,并可应用于远程鉴定识别。

温度型ibutton可以测量温度变化,它内含温度计、时钟、热记录和存储单元等。

图4安防系统硬件原理图5单总线器件的应用现以单总线器件ibutton在安防系统上的应用为例来进行说明,该安防系统就是利用ibutton来进行门禁识别的。

其门禁识别部分的硬件原理图如图4所示,它由主机微控制器、从机(包括ibutton信息读取头和ibutton)、主机通过Rs485进行远程通信(或通过microweb连上internet)等三部分组成。

微控制器采用microchip公司的pic16F873芯片,而api8108a 语音芯片则用来告诉用户系统[1][2]下一页信息;ibutton 采用ds1990a,信息读取头被读取并同时送到主机微控制器,然后由主机把收到的标识码与原先存储的ibutton标识码进行比较判断,若吻合,则系统按设定要求程序工作,否则,系统给出语音提示。

ds1990a与主机微控制器之间的通信软件设计流程图如图5所示。

通常主机与单总线器件的通信都是通过初始化、写0、写1、读0、读1时序来的完成的,下面给出用汇编语言编写的子程序,需要说明的是,这些程序虽然是针对ibutton所写的,但适用于所有的单总线器件,且简单易懂,现予给出,以供大家参考。

篇二:1-wire程序ds18b20程序-超详细注释#include#include#defineucharunsignedchar#defineuintunsignedintsbitdq=p2^2;//数据口defineinterfacesbitdula=p2^6;//数码管段选sbitwela=p2^7;//数码管位选uinttemp;//温度值variableoftemperature//不带小数点unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0 x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x 71};//带小数点unsignedcharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};/*************精确延时函数*****************/voiddelay(unsignedchari){while(--i);}/******************************************此延时函数针对的是12mhz的晶振delay(0):延时518us误差:518-2*256=6delay(1):延时7us(原帖写"5us"是错的)delay(10):延时25us误差:25-20=5delay(20):延时45us误差:45-40=5delay(100):延时205us误差:205-200=5delay(200):延时405us误差:405-400=5*******************************************//*****************ds18b20******************/voidinit_ds18b20(void)//ds18b20初始化sendresetandinitializationcommand{dq=1;//dq复位,不要也可行。

delay(1);//稍做延时dq=0;//单片机拉低总线delay(250);//精确延时,维持至少480usdq=1;//释放总线,即拉高了总线delay(100);//此处延时有足够,确保能让ds18b20发出存在脉冲。

}ucharRead_one_byte()//读取一个字节的数据readabytedate//读数据时,数据以字节的最低有效位先从总线移出{uchari=0;uchardat=0;for(i=8;i>0;i--){dq=0;//将总线拉低,要在1us之后释放总线//单片机要在此下降沿后的15us内读数据才会有效。

_nop_();//至少维持了1us,表示读时序开始dat>>=1;//让从总线上读到的位数据,依次从高位移动到低位。

dq=1;//释放总线,此后ds18b20会控制总线,把数据传输到总线上delay(1);//延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分if(dq)//控制器进行采样{dat|=0x80;//若总线为1,即dq为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0}delay(10);//此延时不能少,确保读时序的长度60us。

相关文档
最新文档