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

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

作者联系方式

引言

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。

    Figure 1. Unidirectional port pins with optional circuit for strong pullup (dashed lines)

    Figure 1. Unidirectional port pins with optional circuit for strong pullup (dashed lines)

    图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。

    Figure 2. Bidirectional port pin with optional circuit for strong pullup (dashed lines)

    Figure 2. Bidirectional port pin with optional circuit for strong pullup (dashed lines)

    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。

    Figure 3. DS2480B connected to a host microcontroller UART port

    Figure 3. DS2480B connected to a host microcontroller UART port

    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。

    Figure 4. DS2484 connected to a host microcontroller I2C port

    Figure 4. DS2484 connected to a host microcontroller I2C port

    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的源代码。

    Figure 5. DS2485 connected to a host microcontroller I2C port

    Figure 5. DS2485 connected to a host microcontroller I2C port

    图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中的源代码。

    Figure 6. DS2465 1-Wire master connected to multiple 1-Wire SHA-256 devices

    Figure 6. DS2465 1-Wire master connected to multiple 1-Wire SHA-256 devices

    图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不推荐用于新的设计。

    Figure 7. DS2477 connected to a host microcontroller I2C port with DS28E50 slaves.

    Figure 7. DS2477 connected to a host microcontroller I2C port with DS28E50 slaves.

    可接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命令。这使得建立软件原型较为复杂。

    Table 1. PC-Based Adapters and EV Kits
    Port Adapter/Kit Part 1-Wire Master Notes
    USB DS9481R-3C7+ DS2480B
  • For iButton evaluation use: DS1402D-DR8 cable or DS1402D-DR8+ Blue Dot™ receptor
  • For other 1-Wire devices use: DS9120 socket boards
  • USB DS2484EVKIT DS2484 Contains: DS2484 evaluation board, DS9400 USB-to-I2C adapter, USB cable
    USB DS28E50VKIT DS2477 Contains: 5 each of DS2477 and DS28E50 in TDFN package, 2 DS9120BQ+ evaluation boards, and 1 DS9481P-300 USB-to-I2C/1-Wire adapter
    USB DS2485VKIT DS2485 Contains: 5 each of DS2485 and DS28E07 in TDFN package, 2 DS9120BQ+ evaluation boards, and 1 DS9481P-300 USB-to-I2C/1-Wire adapter

    Conclusion

    The right 1-Wire master for an embedded application is the one that meets the electrical requirements for the 1-Wire device(s) (i.e., operating voltage, strong pullup if needed) at a reasonable cost but provides the best overall functionality. The final choice depends on the spare (unused) resources in the application, which can be port pins, a UART or I2C bus, and space in program memory. Currently, the hardware 1-Wire masters provided by Maxim (Category 2) are the most versatile options available in the market at a very reasonable cost. They are feature-rich and programmable to support any and all 1-Wire systems, including the ones with high security requirements.

    Trademarks

    • 1-Wire and iButton are registered trademarks of Maxim Integrated Products, Inc.
    • Blue Dot and ChipDNA are trademarks of Maxim Integrated Products, Inc.
    • Java is a registered trademark of Oracle and/or its affiliates.