0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为嵌入式应用选择合适的1-Wire主机

星星科技指导员 来源:ADI 作者:ADI 2023-06-13 09:40 次阅读

1-Wire总线是一个简单的信号传输电路,可通过一根共用的数据线实现主控制器与一个或一个以上从器件之间的半双工双向通信电源和数据通信通过单根数据线传输,使得1-Wire器件具有无与伦比的强大功能,可减少系统间的互联。 1-Wire器件通过单触点串行接口提供存储器、混合信号和安全认证功能。 1-Wire器件的典型应用如下:打印墨盒或医疗消耗品的识别; 机架卡的校准和控制; 印刷电路板、配件及外设的识别和认证; 知识产权保护、防克隆、安全功能控制。

采用1-Wire技术时,需要通过1-Wire主机发送信号来识别总线上的器件并与它们通信。 构建一个1-Wire主机有很多方法。 本文讨论了嵌入式应用的主机,包括半径不超过1米且1-Wire从器件数目不超过三至五的小型网络。 设计1-Wire大型网络或从器件数目较多时,可参考应用笔记148:"长线1-Wire网络可靠设计指南"。

本文中提到的1-Wire主机兼容于采用3V至5V供电的主机电路。 1-Wire电路不涉及协议转换, 也适用于工作电压低于3V的主机,在这种情况下,主机和1-Wire从机之间需要一个电平转换器。 应用笔记4477:"1-Wire®双向电平转换器(1.8V至5V)参考设计"介绍了这样一种电路。 本文中的RPUP和应用笔记4477中的R4对应。

细节部分

1-Wire术语

首先解释几个1-Wire文档中常见的术语。

主机接口

本文讨论的电路为1-Wire主机控制器,它们均与1-Wire从器件通信。 但是,这些1-Wire主机控制器不能作为单独的主体,需要一个主机(计算机)告诉它们在1-Wire侧如何工作。 主机接口指1-Wire主控制器和“系统中更高级的指挥官”(即主机)之间的连接类型。

工作电压

通常情况下,1-Wire器件的工作电压范围为2.8V (最小值)至5.25V (最大值)。 多数1-Wire器件没有电源引脚。 因此,这种器件以寄生供电的方式从1-Wire通信线路获取电源。 工作电压和1-Wire上拉电压实际上是同义词。 工作(上拉)电压越高,1-Wire器件所得到的功率就越大。 电压越高,网络中可以挂接的1-Wire从器件也越多,时隙之间的恢复时间也越短。

强上拉

强上拉是指一种在时隙之间向1-Wire网络提供额外电源的方法。 需要额外电源的部件如下:EEPROM器件(当把数据从缓冲区复制到EEPROM单元时); 安全存储器(当SHA-1引擎运行时); 1-Wire温度传感器(在温度转换期间)。 当这些1-Wire器件用于3V电压供电时,强上拉是必需的; 同样的1-Wire从器件处于5V环境中时,强上拉则是可选的。 关于什么情况下使用强上拉或如何选择合适的上拉电阻值,请参考应用笔记4255:"为1-Wire®器件的扩展功能供电"。

1-Wire时序

下面介绍1-Wire时隙和复位/应答检测时序波形的一般形式,以及产生这些波形的方法。 可以采用特殊的硬件(如自带定时发生器的芯片)或通过软件直接产生波形。 对于软件开发人员来说,硬件方式比较容易,但需要另加芯片。 软件方式节省了硬件成本,但如果所选择的微控制器没有软件支持,则可能会增加软件开发和测试成本。 如果应用软件是用高级语言编写的,采用软件方式时需要特别考虑。 对于产生时隙和复位/应答检测时序的低级功能来说,均有必要用汇编语言编写,这样一来可以计算出执行一条指令所需的时钟周期个数。

支持高速模式

多数1-Wire从器件可以两种速度通信:标准速度和高速模式。 高速模式下的速度比标准速度约快8倍。 所有1-Wire从器件均支持标准速度通信。 所有2类至4类的主机(下文中提到的)均支持高速模式。 1类主机是否支持高速模式取决于微控制器性能(时钟速率,每指令周期所需时钟周期个数)。

有源上拉

1-Wire总线或网络是一个开漏环境,0V (逻辑0)为有效状态。 空闲时,总线通过一个电阻拉高到上拉电压(电阻上拉)。 因此,下降沿是陡峭的; 上升沿由于电阻和寄生电源的作用相当平缓。 有源上拉是指一种测试上升沿的方法,如果已经超过规定门限,通过低阻通道在有限的时间内旁路上拉电阻。 小型网络或只有一个从器件的网络一般不需要有源上拉。 如果带有源上拉,1-Wire总线再充电的速度比电阻上拉快得多,因此,网络中支持多个1-Wire从器件时,无需延长时隙之间的恢复时间。 各种1-Wire主机的旁路上拉强度(阻抗)和控制有源上拉时间的方法有所不同

1-Wire主机电路

下面详细讨论不同的主机电路。 电路分为以下四类:

微处理器端口-引脚连接

内置1-Wire主机的微控制器

合成的1-Wire总线主机

串行接口协议转换

每个分类介绍了一个或多个电路。 给出了电路原理图,列出了前提条件,衡量了优缺点,给出了注意事项、建议阅读的参考文档和支持软件网址。

1类. 微处理器端口-引脚连接

图1为最基本的1-Wire主机。

电路的唯一先决条件是需要一个备用双向端口及一定的程序存储器空间。 电路的优点在于它的额外硬件成本极低,仅需一个上拉电阻。 缺点在于,1-Wire时序通过软件产生,增加了前期软件开发的时间和成本。 根据应用中1-Wire从器件数目和1-Wire上拉电压,需要其它端口引脚来实现强上拉。 1-Wire总线最高工作电压取决于双向端口特性(最好具有5V容限)。 1-Wire总线上挂接多个从器件时,RPUP值应取低一些。 如果那样的话检查VOLMAX是否与1-Wire从器件和微处理器端口的输入特性兼容。 高速通信模式要求微处理器具备高时钟频率和/或较低的每指令周期时钟数。 更多信息,请参阅应用笔记3829:"确定多从机1-Wire网络的恢复时间"和应用笔记126:"用软件实现1-Wire通信"。 应用软件示例见1-Wire Public Domain Kit。

wKgaomSHyRyAPwi_AABlWoTs6Qc306.jpg

图1.单向端口引脚,带用于强上拉的可选电路(虚线)

图2给出与图1类似的另一种基本电路。

图2电路的先决条件是需要两个备用单向端口、下拉晶体管及一定的程序存储器空间。 电路的优点是不需要双向端口。 缺点在于,1-Wire时序通过软件产生,增加了前期软件开发的时间和成本。 根据应用中1-Wire从器件和1-Wire上拉电压,有时需要其它端口引脚提供强上拉。 1-Wire总线最高工作电压取决于双向端口特性(最好具有5V容限)。 1-Wire总线上挂接多个从器件时,RPUP值应取低一些。 此时,应检查VOLMAX是否与1-Wire从器件和微处理器端口的输入特性兼容。 高速通信模式要求微处理器具备较高的时钟频率和/或较低的每指令周期时钟数。 更多信息请参阅应用笔记3829:"确定多从机1-Wire网络的恢复时间"和应用笔记126:"用软件实现1-Wire通信"。 应用软件示例见1-Wire Public Domain Kit。

wKgZomSH2VyADM2FAACRQQzTKxU673.png

图2.双向端口引脚,带用于强上拉的可选电路(虚线)

2类. 内置1-Wire主机的微控制器

图3电路与图1非常类似,不同之处在于微控制器类型。

图3电路的主要前提是需要一个内置1-Wire主机的微控制器,如DS80C400、DS80C410或DS80C411,以及一定的程序存储器空间。 电路的优点在于1-Wire时序由硬件产生,可以减少前期软件开发的时间和成本。 因此,整个应用软件可以用高级语言编写。 DS80C400系列微控制器端口带有5V容限。 缺点在于,只有高端微控制器才内置有1-Wire主机。 根据应用中1-Wire从器件和1-Wire上拉电压,可能需要其它端口引脚提供强上拉。 1-Wire总线上有不止一个从器件时,RPUP值应取低一些。 此时,应检查VOLMAX是否与1-Wire从器件和微处理器端口的输入特性兼容。 更多信息,请参阅应用笔记3829:"确定多从机1-Wire网络的恢复时间"、应用笔记613:"DS80C400的Keil C语言编程"、以及DS80C400数据资料。 应用软件示例见1-Wire Public Domain Kit。

wKgZomSHySCASCZwAADPdtBjoM4655.jpg

图3.DS2480B 连接到主机微控制器 UART 端口

3类. 合成的1-Wire总线主机(ASIC/FPGA)

图4电路与图3非常类似。 不同之处在于微控制器和1-Wire端口是内置在ASIC或PFGA中的。

图4电路的主前提是需要具有单片机能力的ASIC或FPGA,至少有一个空闲的双向端口引脚,3470个未使用的门和一定的程序存储器空间。 电路的优点在于1-Wire时序由硬件产生,可以减少前期软件开发的时间和成本。 因此,整个应用软件可以用高级语言编写。 缺点在于,并非所有ASIC或FPGA都有5V容限端口。 1-Wire工作电压取决于ASIC/FPGA的端口特性。 一些2.5V FPGA有5V容限I/O端口,比3.3V FPGA理想。 根据应用中1-Wire从器件和1-Wire上拉电压,可能需要其它端口引脚提供强上拉。 1-Wire总线上挂接多个从器件时,RPUP值应取低一些。 此时,应检查VOLMAX是否与1-Wire从器件和微处理器端口的输入特性兼容。 更多信息请参阅应用笔记119:"在FPGA或ASIC中嵌入1-Wire主机"、应用笔记120:"利用API控制DS1WM 1-Wire总线主机"、应用笔记145:"Interfacing the Maxim 1-Wire Master (DS1WM) to an ARM7 Processor"、应用笔记3829:"确定多从机1-Wire网络的恢复时间 "、以及DS1WM数据资料。 欲获取1-Wire主机Verilog®/VHDL代码,请通过提交技术支持要求。 应用软件示例请参见应用笔记120和145。

wKgaomSHySGASXkBAADY_6pzos0969.jpg

图4.DS2484连接到主机微控制器I2C 端口

4类. 串行接口协议转换

图5电路只需一个额外器件即可构建一个功能齐备的1-Wire主机。

图5电路的主要前提是需要一种控制UART的方式,例如微控制器、FPGA或PC串行端口,还需要一定的程序存储器空间。 电路的优点在于1-Wire时序由硬件产生,可以减少前期软件开发的时间和成本。 因此,整个应用软件可以用高级语言编写。 1-Wire时序可以通过控制寄存器微调。 DS2480B支持强上拉和有源上拉。 嵌入式应用不需要对1-Wire时序和有源上拉进行微调,不过,内置的4位搜索加速器使1-Wire ROM搜索在软件中更易实现。 就缺点而言,DS2480B较图1至图4中的分立元件昂贵。 DS2480B仅采用5V工作电压。 它是功能最强的单芯片1-Wire主机,适合与大量从器件通信。 有源上拉持续直至超过第二个门限。 DS2480B也可以编程1-Wire EPROM器件。 更多信息请参阅应用笔记192:"DS2480B串行接口1-Wire线驱动器的使用" 、应用笔记4104:"DS2480B 1-Wire时序的理解及配置"、以及DS2480B数据资料。 可点此处下载应用笔记192的源代码。

wKgZomSHySOAfqVSAAEEueGAUVg371.jpg

图5.DS2485连接到主机微控制器I2C 端口

图6电路非常适合I²C总线应用。

图6电路的主要前提是需要一个I²C总线控制器,如微控制器或FPGA/ASIC,还需要一定的程序存储器空间。 电路的优点是性价比高。 1-Wire时序由硬件产生,可以减少前期软件开发的时间和成本。 因此,整个应用软件可以用高级语言编写。 DS2482支持强上拉以及有源上拉。 然而,嵌入式应用不需要有源上拉。 内置1位搜索加速器使1-Wire ROM搜索更容易在软件中实施。 缺点在于,DS2482驱动1-Wire从器件的数目比不上DS2490或DS2480B。 DS2482还提供8通道版本。 单通道的DS2482-100和DS2482-101有一个控制输出,用于增加强上拉功能(Q1)。 与DS2480B和DS2490相比,DS2482的有源上拉持续时间是固定的。 I²C上拉电阻值取决于I²C总线的长度和分布范围。 更多信息请参阅应用笔记3684:"如何使用I²C接口的DS2482 1-Wire®主控制器"、以及DS2482数据资料。 可点击此处下载应用笔记3684中的源代码。

wKgaomSHySWAMSyAAADtc7JzFus362.jpg

图6.DS2465 1-Wire主站连接多个1-Wire SHA-256器件

图7中的1-Wire主机特性与DS2480B非常类似。

图7电路的主要前提是需要USB端口,一般PC中都有。 电路的优点在于1-Wire时序由硬件产生,可以减少前期软件开发的时间和成本。 因此,整个应用软件可以用高级语言编写。 1-Wire时序可以通过控制寄存器微调。 DS2490支持强上拉和有源上拉。 不过,嵌入式应用不需要对1-Wire时序和有源上拉进行微调。 内置的4位搜索加速器使1-Wire ROM搜索在软件中更容易实施。 就缺点而言,DS2490较图5中的器件成本高,且工作电压仅为5V。 作为1-Wire主机,DS2490没有DS2480B功能强大。 有源上拉持续直至超过第二个门限。 更多信息请参阅DS2490数据资料。 应用软件示例见1-Wire Public Domain Kit。 注意DS2490不推荐用于新的设计。

wKgZomSHySeACyhdAACuPjCBAAU589.jpg

图7.DS2477与DS2E28从机连接到主机微控制器I50C端口。

可接PC的适配器方案

由于它们不需要由用户开发软件,因此作为1-Wire主机的PC机附件非常便于作为原型评估1-Wire器件。 除了适配器、待检测1-Wire器件和现成的电缆,用户需要的就是评估软件,如基于Java的可免费下载的OneWireViewer。 PC机适配器1-Wire端口即适合连接iButton®也适合母RJ-11连接器。 具体情况如表1所列。

用OneWireViewer评估1-Wire器件时,识别芯片存在与否没有差别。 然而,当对具有1个从器件的应用进行建模时,识别芯片需要执行Search ROM命令,而不是Read ROM命令。 这使得建立软件原型较为复杂。

港口 适配器/套件部件 1-线主站 笔记
USB DS9481R-3C7+ DS2480B 对于 iButton 评估用途:DS1402D-DR8 电缆或 DS1402D-DR8+ 蓝点™接收器
对于其他1-Wire器件,请使用:DS9120插座板
USB DS2484评估板 DS2484 包含:DS2484 评估板、DS9400 USB 转 I2C 适配器、USB 数据线
USB DS28E50VKIT DS2477 包含:TDFN封装的DS5和DS2477E28各50块,2块DS9120BQ+评估板和1块DS9481P-300 USB转I2C/1线适配器
USB DS2485VKIT DS2485 包含:TDFN封装的DS5和DS2485E28各07块,2块DS9120BQ+评估板和1块DS9481P-300 USB转I2C/1线适配器

结论

适合嵌入式应用的1-Wire主站应能以合理的成本满足1-Wire器件的电气要求(即工作电压、必要时的强上拉),同时提供最佳的整体功能。最终选择取决于应用程序中的备用(未使用)资源,可以是端口引脚、UART 或 I2C 总线和程序存储器中的空间。目前,Maxim提供的硬件1-Wire母版(类别2)是市场上最通用的选择,成本非常合理。它们功能丰富且可编程,支持任何和所有1-Wire系统,包括具有高安全性要求的<>-Wire系统。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171192
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288464
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117723
收藏 人收藏

    评论

    相关推荐

    基于C++模板技术的1-wire总线编程

    操作。得益于 C++ 的模板编程,这个 1-wire 库是非常灵活而高效的:它可以选择枚举、数据链路、以及实现数据链路的物理方法。例如示例中的定义:ds18b20_t ds18b20[8];表示了以
    发表于 11-22 23:40

    1-Wire时序的理解及配置

    本帖最后由 gk320830 于 2015-3-8 23:26 编辑 摘要:DS2480B是带有UART主机接口的1-Wire?主机(驱动器)。该驱动器专门电源传输进行优化,并
    发表于 11-12 00:17

    1-Wire接口

    1-Wire接口要适应12V供电的芯片有什么?
    发表于 11-12 11:20

    如何访问1-Wire API

    任何组件在创建者来实现这一点。有人知道如何访问1-Wire API吗?谢谢 以上来自于百度翻译 以下为原文I have been looking for a 1-wire component
    发表于 07-29 15:25

    如何采用Verilog语言创建1-Wire主机

    如何采用Verilog语言创建1-Wire主机
    发表于 04-29 06:42

    如何使用FlexIO块访问1-wire设备?

    我的 MCU 是 RT1052,现在我需要访问一个温度传感器 DS18B20,这是一个具有单线协议的设备。使用延迟功能访问 1-wire 协议的方法不适用于 RTOS。 从参考手册来看,1-wire
    发表于 04-23 06:43

    嵌入式应用选择合适的1-Wire®主机

    摘要:本应用笔记介绍了嵌入式应用中的四类1-Wire主机电路,并讨论了它们与备用(即未用)系统资源相关的性能与要求。文中给出的电路适用于半径不超过1米,只挂接少量1-Wire从器
    发表于 04-17 10:37 570次阅读
    为<b class='flag-5'>嵌入式</b>应用<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的1-<b class='flag-5'>Wire</b>®<b class='flag-5'>主机</b>

    嵌入式应用选择合适1-Wire主机

    摘要:本应用笔记介绍了嵌入式应用中的四类1-Wire主机电路,并讨论了它们与备用(即未用)系统资源相关的性能与要求。文中给出的电路适用于半径不超过1米,只挂接少量1-Wire从器
    发表于 04-24 09:02 503次阅读
    为<b class='flag-5'>嵌入式</b>应用<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的<b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>

    1-Wire搜索算法

    摘要:Maxim的1-Wire®器件都带有一个64位的唯一注册码,存储在只读存储器内(ROM),能够在1-Wire网络中通过1-Wire主机对其寻址。如果
    发表于 04-30 14:09 1224次阅读
    <b class='flag-5'>1-Wire</b>搜索算法

    嵌入1-Wire主机

    摘要:本应用指南阐述如何将1-Wire主机(1WM)嵌入到用户ASIC设计之中。本文包含了采用Verilog语言如何创建1-Wire主机例程
    发表于 04-30 14:14 919次阅读
    <b class='flag-5'>嵌入</b><b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>

    嵌入1-Wire主机

    摘要:本应用指南阐述如何将1-Wire主机(1WM)嵌入到用户ASIC设计之中。本文包含了采用Verilog语言如何创建1-Wire主机例程
    发表于 05-06 08:54 990次阅读
    <b class='flag-5'>嵌入</b><b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>

    1-Wire总线主机

    Abstract: Communication with 1-Wire slave devices requires a 1-Wire master. There are numerous ways
    发表于 10-19 17:02 53次下载

    嵌入式应用中的四类1-Wire主机电路设计

    引言 1-Wire总线是一个简单的信号传输电路,可通过一根共用的数据线实现主控制器与一个或一个以上从器件之间的半双工双向通信。电源和数据通信通过单根数据线传输,使得1-Wire器件具有无与伦比的强大
    发表于 11-30 07:37 536次阅读
     <b class='flag-5'>嵌入式</b>应用中的四类<b class='flag-5'>1-Wire</b><b class='flag-5'>主机</b>电路设计

    实现隔离式1-Wire总线

    1-Wire总线在需要电气隔离的医疗设备中传感器和耗材的认证和校准中越来越受欢迎。本文以应用笔记4206“为嵌入式应用选择合适1-Wire
    的头像 发表于 01-17 10:39 2290次阅读
    实现隔离式<b class='flag-5'>1-Wire</b>总线

    如何将1-Wire主机复用到多个通道?

    如何将1-Wire主机复用到多个通道? 1-Wire是一种串行通信协议,可用于连接各种感测器和芯片,如温度传感器、湿度传感器、EEPROM等。通常情况下,每个1-Wire
    的头像 发表于 10-29 14:21 296次阅读