摘要:设计1-Wire网络时,通常需要考虑的一个问题就是确定适当的恢复时间,以确保为寄生供电的1-Wire从器件提供足够的电能。本文分析了确定对供电有严格要求事件所需的1-Wire协议,并提供了不同1-Wire从机数、不同工作电压以及温度条件下的恢复时间计算方法。
引言
本应用笔记适用于典型的1-Wire网络,该1-Wire网络由带上拉电阻的1-Wire驱动器(主控制器)和1个或多个1-Wire从机器件组成,如图1所示。大多数1-Wire器件都是寄生供电,这就意味着1-Wire总线同时作为电源线和双向数据线。1-Wire协议规定无通信时进入空闲状况,1-Wire从器件恰好能从总线获取电源。限制1-Wire从器件可用电源数目的临界参数是恢复时间tREC。产品数据资料中规定了tREC的大小,并给出了只在单从机1-Wire网络中有效的读/写波形。
图1. 1-Wire网络典型框图
图2. 启动过程的时序图:复位和应答脉冲
图2所示为最新1-Wire器件数据资料中给出的复位/在线应答检测周期。恢复时间开始于在线应答脉冲之后,并在下一个时隙的下降沿结束。通常情况下,所选取的tRSTL和tRSTH持续时间相同。标准速率下,tRSTL为480µs。在最坏的情况下,tPDH + tPDL为300µs,tREC为180µs。高速模式下,则上述时间值较短,是标准速率下的1/10,tREC减少至18µs。与数据资料规定的tREC最小值相比,留出了一些时间余量以使寄生电源(从机内的一个电容)再充电。因此,只要tRSTL不超过数据资料中的最大极限值,并且寄生电源在tRSTL开始之前达到充电饱和,复位/在线应答检测周期就不是电源设计考虑中的关键因素。在高速模式下,复位脉冲之前的恢复时间值延长为最小值的2.5倍,在此期间寄生电源可进行额外充电。标准速率下,复位脉冲之前的扩展恢复时间值是任意的。
下文给出的读/写时序框图由三个波形组成:写1时隙-写逻辑1;写0时隙-写逻辑0;读数据时隙-从1-Wire从机器件读取一位。从图3中很容易看出,写1时隙对供电的要求并不严格。标准速率下供电窗口(tSLOT-tW1L)至少为50µs,高速模式下至少为6µs。而高速模式下的6µs刚刚超过tREC的最小规定值。在写0时隙中,由于总线为低电平的时间相较恢复时间而言要长一些,因此写0时隙对于供电的要求更为苛刻,尤其是在一行有多个0时。数据资料中给出的tREC适合用2.2kΩ上拉电阻将总线驱动至2.8V的单从机1-Wire网络,正确理解这一点是非常重要的。在读数据时隙进行读0操作时,对供电的要求也很严格。然而,由于通常从机拉低1-Wire总线,并至少保持60µs (标准速率)或6µs (高速模式),因而是比较有利的一个方面。
本应用笔记阐述了如何设置写0时隙中的tREC以及派生值tSLOT,以确保多从机1-Wire网络中有足够的电源。如果得出的数值还被用于读数据时隙和写1时隙,那么tSLOT决定了在特定1-Wire网络中实现可靠通信所需的最大数据速率。
写1时隙
写0时隙
读数据时隙
图3. 读/写时序图
影响参数
在分析供电时的恢复时间时,需考虑几个主要参数和次要参数。这些参数如下:
主要参数
从机数 |
所需的电源能量随从机数增加而增大。 |
上拉电压 |
电压越高,耗能就越多。 |
通信速率 |
在高速模式下,写0时隙的占空比较高。 |
1-Wire驱动器类型 |
“智能”驱动器需要更多的电量。 |
次要参数
工作温度 |
低温1-Wire器件需要较多的电量。 |
电缆长度 |
电缆电容也需要进行充电。 |
1-Wire器件类型 |
某些器件比其他器件需要更多或更少的电量。 |
我们先从数据资料给出的条件开始分析:一个带2.2kΩ上拉电阻器(上拉至2.8V)的驱动器、最坏情况下的温度,总线上有单个1-Wire从机器件,以及可忽略的电缆电容。本文以1-Wire从机器件的个数为主要参数,并提供不同工作电压、速率以及温度下恢复时间的值。如果1-Wire驱动器和从机之间的电缆非常重要,那么在计算中每15米长的电缆就可等效成一个附加的从机器件。
这里得出的结果适合典型的1-Wire从机器件,可以实现ROM功能、通用寄存器读功能以及SRAM写功能。写EEPROM、温度转换以及SHA-1计算有特定的供电要求(如强上拉),具体依器件而定,这不影响该计算方法的有效性。就ROM功能和存储器读操作而言,1-Wire EPROM器件也被视为典型器件;为了实现编程目的,只允许在网络上挂接单个EPROM器件。
结果矩阵
用线性公式:tREC = a * N + b,计算恢复时间的大小。假设所有从机器件并联在1-Wire线路和接地基准之间,则N表示网络中寄生供电的从机器件数。由VCC引脚供电的1-Wire从机器件不会明显给1-Wire总线加载;它们应计为器件的1/10。斜率'a'随温度、工作(上拉)电压以及1-Wire速率变化而变化。本文中让失调量'b'仅随速率变化就足够了。表1所列是含有斜率和失调量的公式。通过手动曲线拟合产生数字值;则结果近似与基于科学模型通过迭代法得到的结果吻合。N = 1时,该结果矩阵不能产生与器件数据资料中一样的数据。这一数值差异是曲线拟合的偏差,不应被视为与规范要求冲突。
表1. 结果矩阵
Operating Voltage (V) |
Temperature (°C) |
Standard Speed (µs) |
Overdrive Speed (µs) |
4.5 and higher |
-40 |
tREC = 2.12 × N + 1.0 |
tREC = 1.43 × N + 0.5 |
-5 |
tREC = 1.99 × N + 1.0 |
tREC = 1.37 × N + 0.5 |
+25 |
tREC = 1.83 × N + 1.0 |
tREC = 1.30 × N + 0.5 |
+85 |
tREC = 1.54 × N + 1.0 |
tREC = 1.18 × N + 0.5 |
2.8 (minimum) |
-40 |
tREC = 3.52 × N + 1.0 |
tREC = 1.82 × N + 0.5 |
-5 |
tREC = 3.30 × N + 1.0 |
tREC = 1.80 × N + 0.5 |
+25 |
tREC = 3.17 × N + 1.0 |
tREC = 1.74 × N + 0.5 |
+85 |
tREC = 2.70 × N + 1.0 |
tREC = 1.63 × N + 0.5 |
低工作电压和低温下的恢复时间最长。如果应用要求工作在极低的温度下,则应选用-40°C项。室温环境下,可选用+25°C项,并且温度更高时该项也适合,能保证安全工作。+85°C项则产生一个仅应用在+85°C温度下的结果;应该作为一个基准,不作为其他温度的设计值。
高工作电压下的恢复时间最短。上拉电压为4.5V或更高时应选用4.5V项。2.8V项对应的恢复时间也适用于更高的电压,但不会降低数据速率。工作电压Vx在2.8V和4.5V之间时,可通过线性插补获得新斜率值:Slope@Vx = Slope@2.8V - (Vx - 2.8V)/1.7V * (Slope@2.8V - Slope@4.5V)。
实例
假定某应用需要一个带有10个1-Wire器件(N = 10)的网络,标准速率下tW0LMIN = 60µs,高速模式下为6µs。(这些数值来自于器件的数据资料,对于不同的器件类型,采用tW0LMIN的最大值。) 假定该网络工作在0°C至70°C温度下。工作电压未定。适合该温度范围的项为-5°C,因为它是低于最小工作温度且与之最接近的数值。由于更高温度下的斜率比-5°C时的斜率低,因此该结果对于高于-5°C的所有温度是有效的。表2列出该实例的tREC以及具有恢复时间的最大数据速率。
在标准速率下,数据速率降至单从机网络15.3kbps基准的大约70%。在高速模式下,数据速率低于125kbps基准的40%。如果表2中数据速率都适合应用,则工作电压的选择不重要。然而,如果可提供大约5V的工作电压,则具有较好的噪声抑制性,应将其做为首选。
表2. 实例计算结果(N = 10)
Operating Voltage (V) |
Standard Speed |
Overdrive Speed |
4.5 and higher |
tREC = (19.9 + 1)µs
= 20.9µs data rate = 1/(60µs + 20.9µs)
= 12.3kbps |
tREC = (13.7 + 0.5)µs
= 14.2µs data rate = 1/(6µs + 14.2µs)
= 49.5kbps |
2.8 (minimum) |
tREC = (33.0 + 1)µs
= 34µs data rate = 1/(60µs + 34µs)
= 10.6kbps |
tREC = (18.0 + 0.5µs)
= 18.5µs data rate = 1/(6µs + 18.5µs)
= 40.8kbps |
可采用的改进方法
如果该表中的恢复时间不能达到要求,还可以采用下列几种方法提高数据速率。
- 减小上拉电阻,例如,由2.2kΩ降至1kΩ。
较低的电阻可使1-Wire网络再充电电流加倍,这样可减小50%的恢复时间。采用这种方法时,在读数据时隙拉低1-Wire总线时,确认每个从机器件是否能处理所增加的电流VPUP/RPUP是非常重要的。
- 改变网络拓扑。
不采用一个网络,而是采用2个或多个更小的网络,或用DS2409 1-Wire耦合器将一些从机器件从网络的有源部分断开。
- 考虑采用有源1-Wire驱动器
有源驱动器采用晶体管临时旁路上拉电阻。这样允许1-Wire网络以最快的速率进行再充电,从而降低必需的恢复时间。
有源1-Wire驱动器
Dallas Semiconductor产品中包含三个有源1-Wire驱动器:DS2480B、DS2490和 DS2482。
DS2480B和DS2490具有同样的5V 1-Wire驱动器,但是有不同的主机接口。两款器件的恢复时间均终止于1-Wire总线电压超过规定门限的时候。采用DS2480B,只要1-Wire有效(例如,写1字节),主机就能通过UART端接收一个应答字节。采用USB兼容的DS2490,主机需要轮询以检测1-Wire有效性是否结束。
DS2482通过其I²C接口与主机通信。该器件的1-Wire侧可工作在3.3V和5V电压下。采用DS2482,当1-Wire时隙结束时,恢复时间终止。如果有源上拉功能被激活,则在固定持续时间内,可在1-Wire总线的上升沿提供额外的电量。DS2482比一个单纯的阻性上拉强,但是不如DS2480B或DS2490。DS2482的8通道版本有助于将一个较大的应用分离成几个每线具有较少1-Wire器件的更小的网络。采用DS2490时,DS2482的主机需要轮询驱动器芯片以检测1-Wire有效性是否结束。
采用可作为智能1-Wire驱动器的微控制器可以实现更大的灵活性,特别是驱动一个物理的大型1-Wire网络。该电路及其必需软件所应考虑事项的详细描述,请参见Dallas应用笔记244。这种驱动器工作在3.3V或5V电压下,具体取决于微控制器特性。
结束语
计算多从机器件1-Wire应用所需的恢复时间是一个非常简单和直观的过程。对于1-Wire网络,通常采用5V电压是最佳选择。对于更多的应用来说,采用带上拉电阻的1-Wire驱动器就足够了。对于大型的网络,则需要带有源上拉的驱动器。
参考文献:
- DS2480B数据资料 串行、1-Wire线驱动器,带有负荷检测
- DS2490数据资料 USB与1-Wire桥接芯片
- DS2482-800数据资料8通道1-Wire主控制器
- DS2482-100数据资料单通道1-Wire主控制器
- 应用笔记244 性能优异的1-Wire网络驱动器
- DS2409数据资料 MicroLAN耦合器。新设计中不推荐使用DS2409。
- 应用笔记192 DS2480B串行接口1-Wire线驱动器的使用
- 应用笔记3684 如何使用带有I2C接口的DS2482 1-Wire主控制器
- 应用笔记126 用软件实现1-Wire通信