表1. 复位/在线应答脉冲检测序列的时间建议值 A to BB to CD to EE to FE to HH to JJ to KK to LL to M480µs0 to 2µs0 to 2µs8µs72µs240µs0 to 2µs60µs> 2µs
采样点H必须选在应答脉冲窗口之内,在线应答脉冲窗口由最快和最慢的1-Wire器件在线应答脉冲的时间决定,数据资料中将此窗口时间长度规定为tMSP。复位脉冲结束后,当1-Wire器件检测到逻辑高电平时,标志着tMSP开始,图2中该参考点近似为E点。A到C之间的时间长度等于tF (下降时间)与tRSTL (低电平复位时间)之和。当发生2类中断时,有效的复位时间长度就是从A到B的持续时间与中断脉冲(参见DS1994/DS2404数据资料)持续时间的总和。从E到M的时间称为高电平复位时间tRSTH。数据资料规定了tRSTL,并说明了如何确定最小的tRSTH值,但对于tRSTH没有最大值要求。
通信时隙写0时隙写0时隙用于在1-Wire总线中传送比特0,对应的1-Wire波形如图3所示。需要进行写0时隙操作时,DRIVE信号首先要变为有效电平状态并持续一段时间,图中对应的为A点和B0点。从A点开始,1-Wire总线的电压缓降至0V。在B0点当DRIVE信号释放时,1-Wire总线电压开始上升。B0点之后很短时间内,动态上拉DPU变为有效(C0点),1-Wire总线将会以更快的速度被拉至5V。动态上拉信号在D0点结束,下一个时隙或复位/在线脉冲检测序列将紧随在E点之后。
表2. 推荐的写0时隙时间值 A to B0B0 to C0C0 to D0A to E060µs2µs16µs80µs
写1/读1时隙写1时隙用于从1-Wire总线上传送比特1,对应的1-Wire波形如图4所示。实际上,从1-Wire总线读取比特1的操作与写1操作的工作波形是相同的,因此,写1操作和读1操作就作为一种情况来讨论。若要产生写1或读1时隙,首先在A点将DRIVE信号变为有效并持续到BR。从A点开始,1-Wire总线电压缓降至0V。在BR点,DRIVE信号释放,无论是在进行读1操作还是进行写1操作,1-Wire总线电压都开始上升。在CR点对1-Wire总线进行取样。由于读到的比特为1,动态上拉DPU将立即变为有效状态,并从D1持续到E1。这将使1-Wire总线电压以更快的速度升至5V。下一时隙或复位/在线应答脉冲检测序列可以从F1点开始。
表3. 推荐的写1/读时隙(读1)时间值 A to BRA to CRCR to D1D1 to E1A to F19µs18µs0 to 2µs60µs80µs
读时隙(读0)读0时隙用于从1-Wire总线上读取比特0,对应的1-Wire波形如图5所示。需要进行读时隙操作时,DRIVE信号首先要变为有效电平状态并持续一段时间,图中对应为A点和BR点。从A点开始,1-Wire总线的电压缓降至0V。为了发送比特0, 1-Wire器件需要把1-Wire拉为低电平,从A点,到BR点结束。这样的话,1-Wire总线在开始时先由1-Wire主机将电压拉低,在BR点时主机下拉结束,随后由总线上存在的一个或多个1-Wire器件继续把1-Wire总线电压维持在逻辑低电平状态。在CR点对1-Wire总线进行采样。由于读到的比特为0,1-Wire总线将被重复采样。在D0点1-Wire器件停止下拉, 1-Wire总线电压开始升高。随后在E0再次进行取样,判断总线是否已经处于逻辑高电平状态,同时动态上拉DPU变为有效状态,1-Wire总线电压开始以更快的速度升至5V。动态上拉DPU的有效状态从F0持续到G0。下一个时隙或复位/在线应答脉冲检测时序可以从H0开始。
表4. 推荐的读时隙(读0)时间值 A to BRA to CRE0 to F0CR to G0A to H09µs18µs0 to 2µs60µs82µs应用注意事项控制这个高级的1-Wire网络驱动器的信号结构相对来说比较复杂。然而,算法还是比较直观,因此这个驱动器通常用软件来实现,采用速度足够快的微控制器,以产生实时信号。下面的流程图将有助于用户采用自己熟悉的、任何一款能够满足要求的微控制器来实现该驱动器。为能产生合适的定时信号,必须要考虑在选定晶振频率下每个命令的执行时间。 软件流程图