性能优异的 1-Wire网络驱动器AN2082C
- 格式:pdf
- 大小:84.26 KB
- 文档页数:8
1 of 8 082004 应用笔记 244 性能优异的1-Wire网络驱动器 www.maxim-ic.com 简介
1-Wire网络的可靠性在很大程度上取决于主机与1-Wire从机器件之间所采用的通信驱动电路的性能采用精细的阻抗匹配和“智能”Ç¿ÉÏÀ-µÈ·½·¨ÇÒͨОàÀë¿É´ï500mÇë²Î¼ûÓ¦ÓñʼÇ148
ͼ1Q1C1和上拉部分R2R6晶体管Q3 与周围的元件(C4¿ÉΪÖîÈçEEPROM 本文没有讨论“强上拉”的功能三个晶体管中最多只有一个处于导通状态“空闲”状态这三个晶体管都不导通App244 2 of 8 R4ÔÚÕâÖÖµç·Çé¿öÏÂ当1-Wire线空闲时由于R4与Q1的漏极相连但不会影响1-Wire总线的低电平电压不建议减小R4阻值而这不是我们所期望的D2分别导通至GND 和VCCµç×èR3限制ESD电流
该驱动器一个最明显的特性就是可以在主机端实现与 1-Wire电缆之间严格的终端匹配其特性阻抗约为100欧总线终端匹配分别通过R3与R1或R2的串联来实现为了驱动器适应不同的特征阻抗电缆
驱动器的三个部分在相应的晶体管导通时当驱动器将1-Wire总线变为低电平R6和C2限制动态上拉信号变为有效状态时的压摆率这三个部分的时间常数均为0.5µs关于详细资料和示波器波形
电路工作原理 若忽略强上拉电路(Q3, R7, C4)ÕâЩÐźŷֱðΪDRIVEDRIVE为高电平有效信号来启动 1-Wire通信用来激活动态上拉晶体管Q21-Wire的地线与驱动器/微控制器GND共地必须发出恰当的DRIVE信号和DPU信号1-Wire通信有四种波形和三种通信时隙波形
之后跟随在线应答脉冲当需要发出复位脉冲时参见图2从A点开始在B点除非1-Wire器件将总线拉低以产生中断信号中断类型2否则1-Wire电压开始上升从C点开始就要对1-Wire进行重复采样在D点之后很短时间内E点1-Wire总线将会以更快的速度被拉至5V¼Ù¶¨×ÜÏßÉÏ´æÔÚÒ»¸ö1-Wire器件从 G点开始在G与I之间的某个地方判定是否存在1-Wire 器件1-Wire电压开始升至5VÅжÏÊÇ·ñ·¢ÉúÁË1A类中断信号逻辑状态为高电平以确保1-Wire总线电压上升到5Vµ±ÓÐÖжÏÐźŲúÉúʱ同时开始下一轮重复采样过程如返回C点继续采样如果在总线上还存在其它的1-Wire器件它们将把此中断脉冲看作是复位脉冲1-Wire 的逻辑状态为高复位/在线应答脉冲检测在M点结束 App244 3 of 8 图2复位与在线应答脉冲时序
MILKFGEBADRIVE
HSampleDPUSENSE(1-Wire)JCD 复位/在线应答脉冲检测序列的时间建议值 A to B B to C D to E E to F E to H H to J J to K K to L L to M 480µs 0 to 2µs 0 to 2µs 8µs 72µs 240µs 0 to 2µs 60µs >2µs 采样点H必须选在应答脉冲窗口之内数据手册中将此窗口时间长度规定为tMSPµ±1-Wire器件检测
到逻辑高电平时图2中该参考点近似为E点当发生2类中断时参见DS1994/DS2404数据手册从E到M的时间称为高电平复位时间tRSTH并说明了如何确定最小的tRSTH值
通信时隙 写0时隙 写0时隙用于在1-Wire总线中传送比特0ÐèÒª½øÐÐд0时隙操作时图中对应的为A点和B0点1-Wire总线的电压缓降至0V1-Wire总线电压开始上升动态上拉DPU变为有效动态上拉信号在D0点结束
写0时隙不需要对数据线进行采样但是也允许对1-Wire总线按照读时隙图5²»¹ý»ñµÃµÄ²ÉÑùÂß¼-״̬½«Ê¼ÖÕΪ0´ÓA到C0的持续时间长度等于tF (下降时间)与 tW0L (写0低电平时间)之和数据手册规定了tW0L和tREC的最小值
App244
4 of 8 图3.写0时隙
E0D0C0B0ADRIVE
DPUSENSE(1-Wire)
推荐的写0时隙时间值 A to B0 B0 to C0 C0 to D0 A to E0 60µs 2µs 16µs 80µs
写1/读1时隙 写1时隙用于从1-Wire总线上传送比特1ʵ¼ÊÉÏÒò´ËÈôÒª²úÉúд1或读1时隙从A点开始在BR点无论是在进行读1操作还是进行写1操作在CR点对1-Wire总线进行取样动态上拉DPU将立即变为有效状态这将使1-Wire总线电压以更快的速度升至5V
采样点CR必须落在主机采样窗口范围内在数据手册中该时间窗口称为tMSR1-Wire器件检测到逻辑低电平时作为tMSR的开始点从A到BR的持续时间等于tF (下降时间)和tRL (读低电平时间)之和从A到F1的时间也就是时隙周期时间tSLOT
¶Á1App244
5 of 8 读时隙
读0时隙用于从1-Wire总线上读取比特0ÐèÒª½øÐжÁʱ϶²Ù×÷ʱͼÖжÔӦΪA点和BR点1-Wire总线的电压缓降至0V 1-Wire器件需要把1-Wire拉为低电平到BR点结束1-Wire总线在开始时先由1-Wire主机将电压拉低随后由总线上存在的一个或多个1-Wire器件继续把1-Wire总线电压维持在逻辑低电平状态由于读到的比特为0ÔÚD0点1-Wire器件停止下拉随后在E0再次进行取样同时动态上拉DPU变为有效状态动态上拉DPU的有效状态从F0持续到G0
CR采样点的选取与写1/读时隙时相同从A到H0的时间也就是时隙周期时间tSLOT¶Á0
¶Á0
È»¶øÒò´ËÕâ¸öÇý¶¯Æ÷ͨ³£ÓÃÈí¼þÀ´ÊµÏÖÒÔ²úÉúʵʱÐźÅÈκÎÒ»¿îÄܹ»Âú×ãÒªÇóµÄ΢¿ØÖÆÆ÷À´ÊµÏÖ¸ÃÇý¶¯Æ÷±ØÐëÒª¿¼ÂÇÔÚÑ¡¶¨¾§ÕñƵÂÊÏÂÿ¸öÃüÁîµÄÖ´ÐÐʱ¼äApp244
6 of 8 软件流程图
Reset/Presence Detect Sequence Presence = FALSE; Short = TRUE (see Note 2) Sample SENSE HIGH LOW
Short = FALSE RETURN (1-Wire is shorted)
Activate DRIVE from A to B
Set Timer for Short (or Interrupt) Time-out Sample SENSE LOW HIGH
Decrement Timer (see Note 1) (no action) End this loop when Sample = HIGH or when the timer expires Timer expired ? No Yes
Activate DPU from E to F RETURN (1-Wire is shorted) Wait until H (presence pulse sampling point) Sample SENSE LOW HIGH
Presence = TRUE RETURN (no 1-Wire parts) Wait until J (interrupt pulse sampling point) Sample SENSE LOW HIGH (Interrupt, see Note 2) Activate DPU from K to L
Do it again Wait until M (begin of next Time Slot)
注1: 若仅将定时器作为计数器而不是实时定时器定时器应该在5000µs后终止由于在这里只有一款可产生中断的1-Wire芯片(DS1994/DS2404)Òò´ËÖжϲ»×÷Ϊ±äÁ¿À´½øÐб¨¸æApp244 7 of 8 Generate Time Slot Activate DRIVE (begin time slot) Write Zero Case ? No (Write One or read case) Yes
Deactivate DRIVE at BR BitValue = 0 (see Figure 3)
Wait until CR (sampling point) Deactivate DRIVE at B0
Sample SENSE LOW HIGH Wait until C0
BitValue = 0 (see Figure 5) BitValue = 1 (see Figure 4) Activate DPU from C0 to D0
Set Timer for Time Slot Time-out Activate DPU from D1 to E1 Wait until E0 (begin of next Time Slot)
Sample SENSE LOW HIGH Wait until F1 (begin of next Time Slot)
Decrement Timer (see Note 1) Activate DPU (see Note 2)
Continue this loop until the timer expires (no action)
Wait until G0 (no action) Deactivate DPU Wait until H0 (begin of next Time Slot)
在该流程图写1时隙与读0时隙是相同的
注 1: 若仅将定时器作为计数器而不是实时定时器定时器应该在45µs后终止在定时器停止之前若信号已处于有效状态因此允许对已处于有效状态的DPU信号进行激活也可以进行检测DPU信号是否有效则在执行程序时无需再次激活
当对信号进行检验时必须使用差分探头否则探头的地将旁路1-Wire的参考地如果不能提供差分探头将示波器地同总线地隔离以断开示波器电源电缆的安全接地