历史上的今天
返回首页

历史上的今天

今天是:2026年02月03日(星期二)

正在发生

2023年02月03日 | 如何快速理解单总线通信(1-Wire)

2023-02-03 来源:zhihu

单总线,即一根线进行通信,最常用的温感 DS18B20 采用的就是单总线结构。

  • 一、概述

  • 二、硬件结构

  • 三、单总线的时序图

  • 四、实测分析时序

  • 五、DS18B20


  • 一、概述

单总线是美国 DALLAS 公司推出的外围串行扩展总线技术,与 SPI、I2C 串行数据通信方式不同,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的。

单总线英文名 1-Wire,传输速率一般是 15.3Kbit/s,最大可达 142Kbit/s,通常采用 100Kbit/s 以下的速率传输数据。


二、硬件结构

1. 单总线典型框图

单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。

2. 漏极开路

单总线主机或从机设备通过一个漏极开路或三态端口连接至该数据线,由于是开漏结构,需要在数据线上加一个上拉电阻,一般是 4.7K。


为了确保总线上的某些器件在工作时(如温度传感器进行温度转换、E2PROM 写人数据时)有足够的电流供给,除了上拉电阻之外,还需要在总线上使用 MOSFET 提供强上拉供电,大多数的应用这个强上拉是不需要的。


主机或从机将数据线拉低到GND表示数据0,将数据线释放为高表示数据1。

  • 当 MCU 发送逻辑 1 时,经过反相器,总线呈现逻辑 0,逻辑 0 经过 1-WIRE 器件的反相器,即会收到逻辑 1;

  • 当 MCU 发送逻辑 0 时,经过反向器,总线呈现逻辑 1,逻辑 1 经过 1-WIRE 器件的反相器,即会收到逻辑 0;

  • 当 1WIRE 器件发送逻辑 1 时,Tx 处有 NMOS 会导通,总线呈现逻辑 0,经过 MCU Rx 处的反相器,MCU 会收到逻辑 1;

  • 当 1WIRE 器件发送逻辑 0 时,NMOS 截止,总线呈现逻辑 1,MCU 会收到逻辑 0;

3. 寄生供电电路

单总线器件内部设置有寄生供电电路(Parasite Power Circuit)。

当单总线处于高电平时,一方面通过二极管向芯片供电,另一方面对内部电容 C(容值约 800pF)充电。当单总线处于低电平时,二极管截止,内部电容 C 向芯片供电。由于电容 C 的容量有限,因此要求单总线能间隔地提供高电平以能不断地向内部电容 C 充电,维持器件的正常工作,这就是通过网络线路“窃取”电能的“寄生电源”的工作原理。另外需要间断高电平的原因是如果总线保持低电平超过 480us,总线上的所有器件将复位。

4. 64 位 ROM ID

主机通过 64 全球唯一的 ROM ID 来识别挂在总线网络上的从机。

每个单总线器件都有一个全球唯一的 64 位 ROM ID,该注册码保证唯一的身份,并用于多节点 1-Wire 网络中的器件寻址,64 位 ROM 注册码不可更改,ROM ID 由出厂激光刻度在单总线器件内部。

64 位 ROM ID 组成:前 8 位是 1-WIRE 家族码,后 48 位是唯一的序列号、最后 8 位是由前 56 位 ROM 码所计算出的 CRC 校验码。

5. 优缺点

节省 I/O 口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。

由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构的主要缺点。


三、单总线的时序图

1. 时序概述

1-Wire 器件需要严格的协议来保证数据的完整。

  • 该协议由通过一条线来传送的四种信令组成:包括复位脉冲和在线应答脉冲的复位序列、写 0 时隙、写 1 时隙、读时隙。


  • 除在线应答脉冲以外,所有其它信号都由总线主机发出,并且发送的所有数据和命令都是字节的低位在前。


  • 主机与从机的数据通信是通过时隙完成的,在每个时隙只能传送一位数据。通过写时隙可把数据从主机传送给从机,通过读时隙可把数据由从器件传送给主机,将完成一位传输的时间称为一个时隙。

如下给出了时序的波形图,在后面实测波形会详细介绍时序要求。


2. 复位/应答

3. 写时隙

4. 读时隙

四、实测分析时序

1. 复位/应答脉冲

复位/应答脉冲要求:主机拉低总线 480~960us 来产生复位信号,然后释放总线进入接收模式,接着从机等待 15-60us(上拉电阻上拉至高电平),从机再拉低总线 60-240us 来产生应答信号,主机接收到从机的应答信号后,表明从机准备就绪,初始化过程完成了。

2. 写 0 时隙

写0时隙要求:写 0 时隙起始于主机拉低总线,主机拉低总线后,只需在整个时隙期间保持总线低电平在 60us 以上,一般是 60~120us 之间。

3. 写 1 时隙

写1时隙要求:写 1 时隙和写 0 时隙一样,起始于主机拉低总线,在拉低总线 15us 之内需要将总线拉高,拉高总线需要维持 60us 以上。

4. 读 0 时隙

读0时隙要求:读 0 时隙由主机发起,且至少拉低总线 1us,此时从机才开始在总线上发数据 0 或者 1;从机发送 1,则保持总线为高电平;从机发送 0,则拉低总线。当发送 0 时,从机在该时隙结束后释放总线,由上拉电阻拉至空闲的高电平状态。从机发出的数据在起始时隙之后,保持有效时间 15us,因而,主机在读时隙期间必须释放总线并且在时隙起始后的 15us 之内采样总线。读 1 时隙没有在本文中没有写,要求和写 1 时隙是一致的。

五、DS18B20

1. 硬件结构

DS18B20 是学习 51 单片机中时,最常用的温感,采用的就是单总线结构。其供电方式有两种,一种是总线寄生电源,一种是使用外部电源。


需要注意,使用总线寄生电源时,18B20 的 VDD 管脚需要和 GND 接在一起。

DS18B20采用寄生电源

2. C 语言实现

利用单片机从DS18B20 获取温度。

分四步:初始化(复位/应答)→ 写字节 → 读字节 → 计算温度。

如下是给出的代码示例。

    #include"delay.h"


    今天的文章到这里就结束了。。。

    你学到了吗?


    推荐阅读

    史海拾趣

    Chyao Shiunn Electronic Industrial Ltd公司的发展小趣事

    为了进一步扩大业务范围,Chyao Shiunn开始实施全球化战略。公司积极寻求与国际知名企业的合作机会,通过技术合作、合资经营等方式拓展海外市场。同时,公司还加强了对海外市场的调研和分析,根据市场需求调整产品策略和生产计划。这些举措使得公司的业务遍布全球多个国家和地区,实现了合作共赢的局面。

    上海国芯(Gcore)公司的发展小趣事
    根据实际需求设定超速阈值,通过调整电路中的电阻和电容值来实现。
    AITSEMI公司的发展小趣事

    随着全球化趋势的加剧,AITSEMI公司开始实施全球化战略,积极开拓海外市场。通过设立海外分支机构、参加国际展会等方式,AITSEMI成功将产品推广至全球范围,并赢得了广泛的国际认可。同时,公司还加大了品牌建设的力度,通过广告宣传、社交媒体推广等方式提升品牌影响力,进一步巩固了公司在全球电子行业的领先地位。

    这些故事基于AITSEMI公司的公开资料和发展历程进行编写,旨在展示其在电子行业中的成长和发展。然而,由于公司具体的发展过程可能涉及更多的细节和未公开的信息,因此这些故事可能并不完全准确或详尽。如需更详细和准确的信息,建议直接访问AITSEMI公司的官方网站或查阅相关新闻报道。

    HellermannTyton公司的发展小趣事

    在20世纪90年代初,Heimann Optoelectronics Gmbh作为一家初创企业,在光电传感器领域崭露头角。公司创始人汉斯·海曼(Hans Heimann,虚构人物)敏锐地洞察到市场对高精度、低功耗光电传感器的迫切需求。他带领团队历经数年研发,成功推出了首款基于先进光电转换技术的红外传感器,该产品在工业自动化、医疗设备等领域迅速获得认可,为公司赢得了第一批重要客户,奠定了市场地位。

    歌普(GEPU)公司的发展小趣事

    在20世纪90年代初,Heimann Optoelectronics Gmbh作为一家初创企业,在光电传感器领域崭露头角。公司创始人汉斯·海曼(Hans Heimann,虚构人物)敏锐地洞察到市场对高精度、低功耗光电传感器的迫切需求。他带领团队历经数年研发,成功推出了首款基于先进光电转换技术的红外传感器,该产品在工业自动化、医疗设备等领域迅速获得认可,为公司赢得了第一批重要客户,奠定了市场地位。

    CIRCUITCO公司的发展小趣事

    CIRCUITCO公司自创立之初,就致力于电子电路技术的研发。在某一时期,公司投入大量资源研发新型高性能电路板。经过数年的努力,团队终于成功开发出一款具有更高集成度、更低能耗的电路板。这一突破不仅提升了公司的技术实力,也使其在市场上获得了显著的竞争优势。随着这款新产品的推出,CIRCUITCO公司的业绩迅速攀升,成为行业内的佼佼者。

    问答坊 | AI 解惑

    build 和compile 的区别?

    keil uv3 中 build      target     “target1” compile   *.1c compile   *.2c compile   *.3c compile   *.4c link… programsize… error warning… ...…

    查看全部问答>

    业内春哥爆料 君正4725 4755的惊天揭秘!

    1、 君正的4725的ECC纠错能力 实际上只有4bit ECC,也就是说现在用的50nm的Flash(8bit ECC纠错需求)他们都是支持不好的,何况12bit ECC纠错需求的Flash(34nm的Micron、Intel Flash)。所以君正4725的百分之十几的返修,很多是掉程序造成的。 ...…

    查看全部问答>

    电子大赛须知

    本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 9月2日上午7:30报到,带学生证进行核实。 1、设计报告。 2、实物。 3、登记表。 4、专科10后接 01-04,本科11后接 01-15:本组:1107 冯琦:1106 老马:1108。 5、论文要求: 1:8000字之内 ...…

    查看全部问答>

    keil中关于片外RAM的疑问

    MOV A,#30H MOV R1,#0E0H MOVX @R1,A MOVX A,@R1复制代码 意思是一个对片外RAM操作的,用keil下自带的模拟下,调用内存,输入I:0e0h,现实的是00,为什么啊?不是应该是30h的嘛?? 最终的a的值是30h,但是片外里面显示的是00,怎么回事啊??…

    查看全部问答>

    -----海腾数据◇庆圣诞迎元旦◇推出以下活动:-----

    -----海腾数据◇庆圣诞迎元旦◇推出以下活动:----- ◇河南网通◇Intel PD双核915芯片散热CPU4M缓存-本月限量销售一年送产权6800元 CPU处理器:Intel PD 915双核处理器( 4M缓存) 内存:1024MB DDR2内存 硬盘:160GB SATA2硬盘/7200转 网卡:Inte ...…

    查看全部问答>

    装了QUARTUS II7.2 仅仅可以用SOPC BUILDER

    装了QUARTUS II7.2 仅仅可以用SOPC BUILDER,好象没有网络上众人说的DSP BUILDER呀,找不到点哪可以点出来。倒是装好QUARTUS II7.2后的文件包的一个QUARTUS文件夹里有SOPC BUILDER和DSP BUILDER文件夹。 是不是要另外装DSP BUILDER的相关文件才能 ...…

    查看全部问答>

    STM32的板子或芯片换NXP ATMEL 的!

    http://item.taobao.com/item.htm?id=9137242939  板子说明在这里,想换个NXP的 或者ATMEL的cortex M3的玩玩!别的好东西也可以联系我QQ:343627392…

    查看全部问答>

    【讨论】关于MSP430的存储温度?

    关于MSP430的存储温度,datasheet里面是这样说的: storage temperature,Tstg(unprogrammed device)...........-55℃ to 150℃ storage temperature,Tstg(programmed device)...........-40℃ to 150℃ 是不是已经编过程序的器件的存 ...…

    查看全部问答>

    C2000 LAUNCHPAD DEMO 程序学习

    1 GPIO  初始化   #include \"f2802x_common/include/gpio.h\"  //首先包含头文件   GPIO_Handle myGpio;  //定义了一个指向GPIO寄存器的句柄,就是指针,居然这么写   //接下是初始 ...…

    查看全部问答>

    利用ADF7023和RFFM6901 915 MHz ISM频段收发模块实现的一种范围扩展参考设计

    本帖最后由 雨中 于 2014-11-12 08:41 编辑 利用ADF7023和RFFM6901 915 MHz ISM频段收发模块(带分集开关)实现的一种范围扩展参考设计下载 …

    查看全部问答>