DS2505 16k 位只添加存储器 www.maxim-ic.com.cn 特性 1-Wire 是 Dallas Semiconductor 的注册商标。 TSOC 封装 TO-92 DALLAS DS2505 GND 1 6 DATA NC 2 5 NC 3 4 NC NC NC DATA 顶视图 3.7 x 4.0 x 1.5mm GND 16384 位电可编程只读存储器 (EPROM), 采用更为经济的单根信号线加地线的接口 方式 工厂激光刻度的、唯一经过测试的 64 位注 册码(8 位家族码 + 48 位序列码 + 8 位 CRC 校验码),确保准确跟踪每个器件, 因为每个器件的注册码不可能相同 内置多点控制器,保证兼容于其它 1-Wire® 网络产品 EPROM 划分为六十四个 256 位页面,用 于随机存贮数据包 为防止数据丢失,每个存储页均可进行永 久性的写保护 该芯片具有“只添加”存储功能,当在 EPROM 内存储其他数据时,也不会破坏 已有数据 结构设计上允许软件来对一个旧存贮页进 行修补数据,而不需要新打开一个可编程 页 将控制线、地址线、数据线、电源和可编 程信号线集于一条总线 直接与微处理器的一个口线连接、通信速 率可达 16.3kbps 8 位家族码通知读写器按照 DS2505 要求进 行通信 当读写器首次上电时进行在线检测应答 低成本 TO-92 或 6 引脚 TSOC 表面贴封装 在-40°C 至+85°C 温度范围内,读取数据电 压范围为 2.8V 至 6.0V;在-40°C 至 +50°C 温度范围内,编程电压为 11.5V 至 12.0V 范围 引脚排列 测试图 参考机械 制图部分 1 2 3 底视图 参考机械制图 注:卷带中TO-92 封装的引脚间隔约为 100mil (2.54mm),详细信息请参考封装图56-G0006003。 定购信息 DS2505 DS2505/T&R DS2505P DS2505P/T&R DS2505+ DS2505+T&R DS2505P+ DS2505P+T&R TO-92 封装 TO-92 封装,卷带包装 TSOC 封装 TSOC 封装,卷带包装 TO-92 封装 TO-92 封装,卷带包装 6 引脚 TSOC 封装 TSOC 封装,卷带包装 + 表示无铅封装。 本文是Maxim正式英文资料的译文,Maxim不对翻译中存在的差异或由此产生的错误负责。请注意译文中可能存在文 字组织或翻译错误,如需确认任何词语的准确性,请参考Maxim提供的英文版资料。 索取免费样品和最新版的数据资料,请访问 Maxim 的主页:www.maxim-ic.com.cn。 1 of 24 071107 DS2505 硅标签说明 DS2505 为 16k 位只添加存储器,可以识别和存储与产品相关的信息。这个标签或特殊产品的信息 可以通过最少的接口访问,例如微控制器的一个端口引脚。DS2505 由一个工厂刻度的注册码, 其中包括:48 位唯一序列码、8 位 CRC 校验码和 8 位家族码(0Bh),以及 16k 位的用户可编程 EPROM 组成。DS2505 进行编程和读取操作的电源全部来自于 1-Wire 通信线。采用 1-Wire 协 议,即仅通过一条信号线和一条地线,实现数据的串行传输。可以对整个器件进行编程,并根据 需要加入写保护。也可以采用顺序编程该器件,多次编程添加新的数据,而不是覆盖已有的数 据。注意:每位只能由逻辑 1 编程为逻辑 0,但永远不能从逻辑 0 改为逻辑 1。当某页或某些页不 再有效时,他们可以被那些驻留在其它页面地址的新数据或更新数据所取代,这种页面地址重定 向功能允许软件修补数据,从而加强了该器件作为一个独立数据库的灵活性。工厂对每片 DS2505 刻入的 48 位序列号保证其唯一性,以精确跟踪每个器件。常用的 TO-92 或 TSOC 封装提 供了一种紧凑的结构,允许采用标准安装设备处理器件在电路板上的安装或连接。典型应用包括 存储校准系数、维护记录、资产跟踪、产品修正状态和访问代码等 概述 图 1 所示方框图说明了 DS2505 的主控部分和存储部分之间的关系。 DS2505 包括 3 个数据部分: 1)64 位激光刻度 ROM,2)16384 位 EPROM,3)704 位 EPROM 状态存储器。 对器件读操作 的电源完全来自于 1-Wire 通信线,当信号线为高时,其内部的电容可以存储电荷;当 1-Wire 为 低时,该“寄生”电源放电,器件继续保持工作,直到 1-Wire 恢复高时再对寄生(电容)电源进 行充电。在编程期间,1-Wire 在平常电压幅度下进行通信,在需要编程选择的 EPROM 位时,产 生瞬间的编程脉冲进行编程。1-Wire 线上必须能够提供 12V 电压和 10mA 电流,以满足对 EPROM 的编程。 无论编程电压何时出现在 1-Wire 线上,DS2505 内部的高电压检测电路就会产 生一个内部的逻辑信号,以指示这种状态。图 2 所示为 1-Wire 协议的层次结构图。总线主机必须 先提供下述四种 ROM 功能命令之一:1)Read ROM,2)Match ROM,3)Search ROM, 4) Skip ROM。这些命令针对每个器件的 64 位激光刻度 ROM 操作,能够在 1-Wire 线上出现多个器 件时,辩识出某个特定器件,并且能够向主机指示在线器件的数量和类型。这些 ROM 功能命令 所要求的协议如图 8 所述。在成功执行一条 ROM 功能命令后,操作 DS2505 的 EPROM 部分的存 储器功能命令才能生效,总线主机就可以发出 DS2505 指定的 5 条存储器功能命令之一,以读取 或编程不同的数据段。这些存储器功能命令的协议如图 5 所述,所有数据的读写都是低有效位在 前。 64 位光刻 ROM 每个 DS2505 包含有 64 位长、唯一的 ROM 码。前 8 位为 1-Wire 家族码,接下来 48 位为唯一的 序列码,最后 8 位为前 56 位的 CRC 校验码(如图 3 所示)。64 位 ROM 和 ROM 功能控制部分 使 DS2505 可作为一个 1-Wire 器件操作,遵循“1-Wire 总线系统”所描述的 1-Wire 协议。当 ROM 功能协议满足后,读和编程 DS2505 的 EPROM 所要求的存储器功能命令才能有效,该协议 见图 8 所示的 ROM 功能流程图。1-Wire 总线主机必须先发出四个 ROM 功能命令之一:1)Read ROM,2)Match ROM,3)Search ROM,4)Skip ROM。成功地执行 ROM 功能时序后,接着, 总线主机就可以发出 DS2505 指定的任何一个存储器功能命令(见图 5)。 2 of 24 DS2505 8 5 4 激光刻入ROM的 1-Wire CRC校验码由多项式X + X + X + 1 生成。关于Dallas Semiconductor的 1-Wire循环冗余校验码的详细信息,请参阅Book of DS19xx iButton Standards。 用于CRC计算的移 位寄存器初始化为 0。从家族码的最低有效位起始,每次移入一位。在处理完家族码的第 8 位 后,再移入序列码;在序列码的第 48 位移入后,移位寄存器的内容就是CRC校验码。移入 8 位 CRC校验码后,移位寄存器应该回到全 0。 DS2505 原理框图 图 1 3 of 24 DS2505 1-Wire 协议的层次结构 图 2 64 位光刻 ROM 图 3 8-Bit CRC Code MSB 48-Bit Serial Number LSB MSB 8-Bit Family Code (0Bh) LSB MSB LSB 16384 位 EPROM 存储器结构分配图如图 4 所示,表示 DS2505 的 16384 位 EPROM 地址分配表,分为 4 页,每页 32 个字节。当编程存储器时,8 位暂存器作为一个附加寄存器,充当缓冲器。数据首先被写在暂 存器里,然后通过读取 DS2505 的 16 位 CRC 校验码进行校对,以确认数据和地址的正常接收。 如果缓冲器的内容是正确的,则应该加入编程电压,该字节数据就被写入存储器的指定地址。这 个过程能够保证编程存储器时的数据完整性。读和编程 DS2505 的 16384 位 EPROM 的详细说明 参见存储器功能命令一节。 4 of 24 DS2505 EPROM 状态字节 除了 16384 位数据存储器之外,DS2505 还提供了其他可访问的 704 位状态存储器和暂存器。 EPROM 状态字节可被读取或编程,以便在软件查询 DS2505 时指示其不同的状态。EPROM 状态 存储器的前 8 个字节 (地址从 000 至 007h) 包含写保护页(Write Protect Page)位,如果某个写保 护位被编程后,则将禁止编程 16384 位主存储区域的对应页。一旦页面写保护字节被编程,则该 位对应的 32 个字节页将不可能更换,只能读出。 接下来的 EPROM 状态存储器的 8 个字节 (地址从 020 至 027h) 包含写保护位,用来禁止改变 16384 位主存储区域每个页面对应的页地址重新定向字节。 EPROM状态存储器的后续 8 个字节 (地址从 040 至 047h) 被保留,供iButton运行TMEX软件使 用。用于指示已经使用的存储器页。初始条件下,这些位均没有编成,表示器件尚未储存任何数 据。一旦数据在TMEX的控制下写入器件的任何页面,则储存在位图内部与页面相对应的位将被 置为 0,表示这一页已经使用。这些位仅用作标记,对DS2505 的内部逻辑没有影响。 EPROM 状态存储器随后的 64 个字节 (地址从 100h 至 13Fh) 包含了页面地址重新定向字节,用于 说明 16384 位 EPROM 中某页或多页数据是否无效,以及是否被定向到其它的页面地址。DS2505 的硬件电路无法决定页面地址重新定向字节的内容,这些附加的状态 EPROM 字节允许把整页内 容重新定向到另一页,表示原来的数据页内容不再有效。采用 EPROM 技术,每页的位通过编程 可由逻辑 1 改为逻辑 0,但不能改回来。因此,数据需要修改或更新不可能通过简单地重写一页 来实现,但如果空间允许,可以把一页的数据重新定向到 DS2505 的另一页,这需要把新页面地 址的 1 的补码写到与旧(被替代)页面对应的页面地址重新定向寄存器。 这种结构允许用户软件对 EPROM 做“数据修补”,只需指明某特殊页面由页面地址重新定向字 节寄存器中指向的页面所替代。为了产生可靠的数据修补查找索引,建议在页面重新定向编程后 对页面地址重新定向字节进行写保护设置。如果不进行写保护设置,就有可能更改页面地址重新 定向字节,指向不正确地存储器页。 如果页面地址重新定向字节为 FFh ,则主存储器中与该页相关的数据有效,如果该字节为其他十 六进制数,则其对应的页面数据无效,有效数据可在其对应的页面地址重定向字节所指向的页面 中找到。例如,如果第一页的重新定向字节值为 FDh,则说明更新数据存储在第 2 页里。关于 DS2505 EPROM 状态存储器读取和编程的详细说明参见存储器功能命令一节。 5 of 24 DS2505 DS2505 的状态存储器地址扩展到 000 至 13Fh,位于 008h 至 01Fh、028h 至 03Fh、048h 至 0FFh 和 140h to 7FFh 的存储器物理不可实现。对这些存储器的读操作结果是 FFh,对这些存储器的写 操作将被忽略。如果总线主机发送一个高于 7FFh 的起始地址,5 位最高有效位地址将被芯片内部 电路置为 0。这将导致 DS2505 计算出的 CRC 结果与总线主机计算的 CRC 结果不一致,表示一个 错误状态。 DS2505 存储器图 图 4 状态存储器图 6 of 24 DS2505 存储器功能命令 “存储器功能流程图”(图 5 所示)描述了访问 DS2505 不同数据段的协议。存储器功能控制部 分、8 位暂存器和编程电压检测电路组合起来解释总线主机发出的命令,并在器件内产生正确的 控制信号。主机按照协议发送 3 个字节,包括 1 个说明操作类型的命令字节和 2 个指定数据段起 始位置的地址字节。命令字节指明是否要对器件读取或写入。写数据不仅包括发出正确的命令序 列,还应在适当的时候提供 12V 编程电压。执行写序列时,数据的一个字节首先被装载到暂存 器,然后编程到所选地址,写序列通常每次写入一个字节。执行读序列时,总线主机发出起始地 址,便从初始位置读取数据,一直读到所选数据段结束,或者直到发出复位命令。所有由总线主 机向 DS2505 发送和接收的数据都是低有效位在前。 Read Memory [F0h] Read Memory 命令用于从 16384 位 EPROM 数据段读取数据。总线主机在发出命令字节之后,紧 跟 2 字节地址 (TA1=(T7:T0), TA2=(T15:T8)),以指示起始字节在数据段中的位置。总线主机在随 后的读数据时隙接收来自 DS2505 的数据,从起始地址开始,直到读完 16384 位数据区域或发出 复位脉冲为止。读到存储空间结束时,总线主机可能发出 16 个另外的读时隙,DS2505 将返回从 由命令、地址字节和所有的数据字节所生成的 16 位 CRC 校验码。这个 CRC 是清 CRC 发生器和 随后移入的命令字节、2 个地址字节和从第一个地址存储器到 EPROM 数据存储器最后一个数据 字节的结果。总线主机收到 CRC 校验码后,随后的读时隙将一直保持为逻辑 1,直到发出复位脉 冲。任何在读到存储器结尾之前而被复位脉冲结束的读操作,均不包含 16 位 CRC 校验码。 通常,可以将每页数据的 16 位CRC校验码存储起来,以便快速、无误码地传输数据,从而避免由 于判断接收数据正确与否而进行的多次读取页操作。(有关 1-Wire环境下推荐使用的数据结构请 参考Book of DS19xx iButton Standards,第 7 章。)如果CRC值已经嵌入在数据中,那么执行Read Memory命令期间,在读到存储区域结尾时就可以发出复位脉冲。 Read Status [AAh] Read Status 命令用于从 EPROM 状态数据段读取数据。总线主机在发出命令字节之后,紧跟 2 字 节地址(TA1=(T7:T0), TA2=(T15:T8)),用以指出起始字节在数据段中的位置。总线主机在随后的 读数据时隙接收来自 DS2505 的数据,从指定地址开始,直到读完 EPROM 状态数据区域的最后 8 个字节。从该点开始,总线主机将接收命令字节、地址字节和状态数据字节的 16 位 CRC 校验 码,这个 CRC 校验码由 DS2505 计算、总线主机读回后验证接收到的命令字节、起始地址和数据 是否正确。如果总线主机读到的 CRC 校验码不正确,则必须发出复位脉冲,重新执行整个时序。 7 of 24 DS2505 存储器功能流程图 图 5 8 of 24 DS2505 存储器功能流程图 图 5 (续) 9 of 24 DS2505 存储器功能流程图 图 5 (续) 10 of 24 DS2505 注意:最初通过 Read Status 流程将产生一个 16 位 CRC 校验码,它是清 CRC 发生器和随后移入 的命令字节、2 个地址字节和从第一个地址存储器到 EPROM 状态数据页最后一个数据字节的计 算结果。状态数据页的最后字节总是 xx7 或 xxFh。随后通过 Read Status 流程产生的 16 位 CRC 是 清 CRC 发生器和随后移入的新数据字节(从下一页 EEPROM 状态数据区域的第一个字节开始) 的结果。 由于 EPROM 状态信息可能被修改,导致不可能一次性编程数据,且包含了始终有效的相关 CRC 校验码,所以 Read Status 命令提供了这个基于且与当前存储在 EPROM 状态数据段的数据保持一 致的 16 位 CRC 码。在读完 16 位 CRC 校验码后,总线主机将一直从 DS2505 读到逻辑 1,直至发 出复位脉冲为止。Read Status 命令序列可以随时终止,只需发出复位脉冲。 Extended Read Memory [A5h] Extended Read Memory 命令在从 16384 位 EPROM 数据区域读取数据时支持页重定向功能, Extended Read Memory 与基本的 Read Memory 命令的根本区别是:总线主机在从被寻址的存储器 读数据之前首先接收重新定向字节。这样,总线主机可以很快决定是否继续访问所选择的起始页 的数据,或终止上述进程、重新启动对重新定向页中数据的读操作。没有重新定向的页由数值为 FFh 的重新定向字节标示(参考“EPROM 状态字节”部分)。如果重新定向字节不同于此,主机 必须对其进行处理以获得新的页码地址。将页码乘以 32(20h)可以得到新的地址,主机需要将 其发送给 DS2505 读取更新后的数据,以替代旧的数据。任何存储器页的重新定向数没有逻辑限 制,只是受 DS2505 内部所能提供存储器容量的限制。 除了页重新定向外,Extended Read Memory 还能够在用户无法同时存储 16 位 CRC 和数据时支持 “位定向”功能,利用位定向功能,可以在一页内随时改变 EPROM 的信息,但它无法总是伴随 一个有效的 CRC。所以,Extended Read Memory 命令按照 DS2505 产生和提供的基于并始终与当 前数据(位于 16384 位 EPROM 数据区域的每一页)保持一致的 16 位 CRC 对每一页进行判断。 发出 Extended Read Memory 命令代码后,总线主机需要随后发送 2 个字节的地址 (TA1=(T7:T0), TA2=(T15:T8),表示数据区域起始字节的位置。通过发送 8 个读数据时隙,主机可以收到起始地 址所指定的数据页的重新定向字节。在接下来的 16 个读时隙中主机将接受命令字节、地址字节和 重新定向字节的 16 位 CRC。这个 CRC 码是由 DS2505 计算、由主机读回的数据,用于验证所收 到的命令字、起始地址和重新定向字节是否正确。 如果总线主机读取的 CRC 不正确,则必须发出一个复位脉冲,重新启动整个时序。如果总线主机 接收到的 CRC 是正确的,主机将发送读时隙,接收来自 DS2505、位于起始地址到 32 字节页的最 后一个地址的数据。读数据结束后,总线主机将发送额外的 16 个读时隙,以便接收 16 位 CRC, 这 16 位 CRC 是从起始字节到当前页面最后一个字节、移入 CRC 发生器的全部数据的结果。 主机在随后的 24 个读时隙中将接收下一页的重新定向字节和 16 位重新定向字节的 CRC,然后从 起始地址开始读取 16,384 位 EPROM 新数据页的内容。这个过程将持续到最后一页,直到主机读 回所伴随的 CRC 为止。 11 of 24 DS2505 Extended Read Memory 命令在流程图的两个位置提供 16 位 CRC:1) 读取重新定向字节后,2) 每 个存储器页结束时。存储器页结束时的 CRC 始终是清 CRC 发生器和移入 EPROM 数据页的第一 个地址到该页最后一个地址的数据字节的计算结果。总线主机收到的 CRC 直接跟随着重新定向字 节,按照两种不同方式计算。首先通过 Extended Read Memory 流程的 16 位 CRC 是移入清 CRC 发生器的命令字节和随后的 2 个地址字节以及重新定向字节的计算结果。此后通过 Extended Read Memory 流程的 16 位 CRC 则是清 CRC 发生器和移入的重新定向字节的计算结果。 读取最后一页的 16 位 CRC 后,总线主机将在发送复位脉冲之前从 DS2505 收到逻辑 1 码。通过 发送复位脉冲可以在任意时刻终止 Extended Read Memory 命令时序。 Write Memory [0Fh]/Speed Write Memory [F3] Write Memory 命令用于编程 16384 位 EPROM 数据区域。总线主机在发出命令字节之后,紧跟 2 字节地址 (TA1=(T7:T0), TA2=(T15:T8)) 和 1 个字节的数据(D7:D0)。 DS2505 根据命令、地址 和数据字节计算出 16 位 CRC 校验码,总线主机读回该值,以确认其接收的命令字、起始地址和 数据字节是否正确。 DS2505 的最高起始地址为 07FFh。如果总线主机发送的起始地址比该值还高,则芯片内部电路会 将 5 个最高地址位全部置为 0,这将使 DS2505 计算的 CRC 值与总线主机计算的 CRC 值不同,以 指示出错。 如果总线主机读到的 CRC 校验错误,则必须发出复位脉冲,重新进行这个序列。若主机接收到的 CRC 码正确,则总线主机发出编程脉冲(1-Wire 总线上的 12V 脉冲,保持 480µs)。在编程之 前,未编程的 16384 位 EPROM 均为逻辑 1,如果总线主机是将其设为逻辑 0,编程脉冲出现后, 被选中的字节对应的位被编程为逻辑 0。 在 480µs 编程脉冲过后,数据线回到空闲电平,总线主机发出 8 个读时隙,以验证相应位是否被 编程。DS2505 将响应被选中 EPROM 地址,按照最低有效位在先格式发送的数据。该字节包括写 到这个 EPROM 数据地址的所有字节的逻辑“与”,如果 EPROM 数据字节在某些位为 1,而总 线主机发出的字节对应为 0,则应该发出复位脉冲,当前字节地址需要被重新编程。如果 DS2505 EPROM 数据字节在与数据字节相同位置的位为 0,说明编程成功,DS2505 自动将地址计数器加 1,指向 16384 位 EPROM 的下一个字节 。新的 2 字节地址中的最低有效字节也作为起始值载入 16 位 CRC 发生器。总线主机将发出 8 个写时隙,送入下一数据字节。 12 of 24 DS2505 DS2505 将数据接收到暂存器,同时将数据移到 CRC 发生器,此时生成器中已经预加载了当前地 址的最低有效字节,因此 16 位 CRC 的结果由新数据和新地址的最低有效字节生成。提供完数据 后,总线主机使用 16 个读时隙从 DS2505 读回 16 位 CRC 码,以确认地址累加及接收数据是否正 确。若 CRC 错误,则必须发出复位脉冲,重新开始 Write Memory 命令时序。若 CRC 正确,总线 主机再发出编程脉冲,编程存储器中被选中的字节。 需要说明的是,最初通过 Write Memory 命令流程将产生一个 16 位 CRC,它是由移入 CRC 发生 器的命令字节以及随后移入的 2 个地址字节和 1 个数据字节生成的。随后通过 Write Memory 命令 流程产生的 16 位 CRC 码归结于 DS2505 自动增加地址计数器,其 CRC 码结果由加载(不是移入 的)到 CRC 发生器的新(增加的)地址的最低有效字节和移入的新数据字节生成。 对于以上两种情况,是否继续流程(为 DS2505 提供编程脉冲)完全由总线主机决定,这是因为 DS2505 不能判断出总线主机计算的 16 位 CRC 校验码与其自身计算值是否一致。如果错误的 CRC 码被忽略,总线主机又发出了编程脉冲,那么 DS2505 内就出现了错误编程。同时也应注意 到 DS2505 在接收到总线主机为验证选定的 EPROM 编程字节而发出的 8 个读时隙以后,其内部 地址计数器将加 1。是否继续,决定权完全在总线主机,因此如果 EPROM 数据字节与要求的数 据字节不符,而总线主机又继续进行 Write Memory 命令,那么在 DS2505 内部也会产生错误编 程。Write Memory 命令时序可以随时终止,只需发出复位脉冲。 为了在连续写入 DS2505 数据存储器时节省时间,可以省略 16 位 CRC 码的读操作,这 16 位 CRC 码能够在数据拷贝到 EPROM 存储器之前验证数据和地址。这种方式能够在每个编程字节节省 16 个读时隙或 976µs。快速编程模式的访问代码是 F3h,而不是 0Fh。其工作流程与 Write Memory 基本相同,但跳过了发送 CRC 而直接发送编程脉冲。这种命令只能用于总线主机与 DS2505 保持 良好接触的条件下,一旦出现不良接触,将在 EPROM 存储器中写入错误数据。 Write Status [55h]/Speed Write Status [F5] Write Status 命令用于对 EPROM 状态数据区域进行编程。总线主机在发出命令字节之后,紧跟 2 字节地址 (TA1=(T7:T0), TA2=(T15:T8))和 1 个状态字节的数据(D7:D0)。DS2505 由命令、地址 和数据字节计算出 16 位 CRC 校验码,总线主机读回该值,以确认其接收的命令字、起始地址和 数据字节是否正确。 如果总线主机读到的 CRC 错误,则必须发出复位脉冲,重新执行整个过程。若读回的 CRC 码正 确,则总线主机发出编程脉冲(1-Wire 总线上 12V 脉冲,保持 480µs)。在编程之前,EPROM 状态数据区域的字节为逻辑 1,对于总线主机提供的、被置为逻辑 0 的数据字节的每一位,在编 程脉冲出现后,被选中的 EPROM 状态数据字节对应的位被编程为逻辑 0。 13 of 24 DS2505 在 480µs 编程脉冲及数据线回到空闲电平以后,总线主机发出 8 个读时隙,以验证相应位的编程 是否正确。DS2505 将以所选择的 EPROM 状态地址中的数据进行响应,最低有效位在前。该字节 是所有写入该 EPROM 状态字节地址内的数据的逻辑“与”,如果 EPROM 状态字节在某些位为 1,而总线主机发出的字节对应为 0,则应该发出复位脉冲,当前字节地址需要被重新编程。若 DS2505 相应的 EPROM 状态字节也为 0,说明编程成功,DS2505 自动将地址计数器加 1,指向 EPROM 状态数据段的下一个字节 。新的 2 字节地址中的最低有效字节也作为起始值载入 16 位 CRC 发生器。总线主机将提供 8 个写时隙发送下一数据字节。 DS2505 将数据接收到暂存器,同时将数据移入 CRC 发生器,此时生成器中已经预先加载了当前 地址的最低有效字节,因此 16 位 CRC 的结果由新数据和新地址的最低有效字节生成。提供数据 后,总线主机通过 16 个读时隙从 DS2505 读回 16 位 CRC 码,以确认地址累加以及接收数据是否 正确。若 CRC 校验错误,则必须发出复位脉冲,重新开始 Write Status 命令时序。若 CRC 正确, 总线主机再发出编程脉冲,编程存储器中所选择的字节。 需要说明的是,最初通过 Write Status 命令流程的 16 位 CRC 码是由移入 CRC 发生器的命令字节 以及随后移入的 2 个地址字节和 1 个数据字节生成的。随后通过 Write Status 命令流程的 16 位 CRC 码归结于 DS2505 自动增加地址计数器,其 CRC 码结果由加载(不是移入的)到 CRC 发生 器的新(增加的)地址的最低有效字节和移入的新数据字节所生成的。 对于以上两种情况,是否继续操作(为 DS2505 提供编程脉冲)完全由总线主机决定,这是因为 DS2505 不能判断总线主机计算的 16 位 CRC 校验码与其自身计算值是否一致。如果错误的 CRC 码被忽视,总线主机又发出了编程脉冲,那么 DS2505 内就出现了错误编程。同时也应注意到 DS2505 在接收到总线主机为验证选定的 EPROM 编程字节而发出的 16 个读时隙后,其内部地址 计数器将加 1。是否继续,决定权完全在总线主机,因此如果 EPROM 数据与要求数据不符,而 总线主机又继续进行 Write Status 命令,那么在 DS2505 内部也会产生错误编程。Write Status 命令 序列可以随时终止,只需发出复位脉冲。 为了在连续写入 DS2505 状态存储器时节省时间,可以省略 16 位 CRC 码的读操作,这 16 位 CRC 码能够在数据拷贝到 EPROM 存储器之前验证数据和地址。这种方式能够在每个编程字节节省 16 个读时隙或 976µs。快速编程模式的访问代码是 F5h,而不是 55h。其工作流程与 Write Status 基 本相同,但跳过了发送 CRC 而直接发送编程脉冲。这种命令只能用于总线主机与 DS2505 保持良 好接触的条件下,一旦出现不良接触,将在 EPROM 状态存储器中写入错误数据。 1-Wire 总线系统 1-Wire 是在一条总线上连接一个总线主机和一个或多个从机设备的系统。任何情况下,DS2505 都是从机设备,而总线控制器通常是一个微控制器。有关总线系统的讨论将分为三个主题:硬件 结构、处理流程和 1-Wire信令(信号类型和时序)。1-Wire 协议基于特定时隙内的总线状态定义 总线传输,该时隙起始于由总线主机发出的同步脉冲的下降沿。对于更详细的协议描述,请参阅 Book of DS19xx iButton Standards的第四章。 14 of 24 DS2505 硬件配置 1-Wire 总线只定义了一根信号线,所以在适当的时刻驱动总线上的各个器件非常重要。为达到这 一目的,每个接入 1-Wire 总线的器件都采用漏极开路或三态输出。DS2505 为漏极开路输出,其 内部等效电路如图 6 所示。总线主机可以采用相同的等效电路,如果没有可利用的双向引脚,则 可将独立的输入、输出管脚连接起来使用。 在总线主机端需加一个上拉电阻,总线主机的等效电路如图 7a 和 7b 所示,短距离传输时上拉电 阻值约为 5kΩ。 由多个从机连接到 1-Wire 总线上组成多节点总线。标准速率下,1-Wire 总线的最高数据传输速率 为 16.3kbps。如果总线主机欲对 DS2505 的 EPROM 进行编程,则要求编程电源具备输出 12V/10mA 的能力,需要保持 480µs。1-Wire 总线的空闲状态为高电平。不管是何种原因,如果需 要暂停传输,且要求传输还能够重新开始,则总线必须停留于空闲状态;如果情况不是这样,且 总线保持低电平的时间超过 120µs,那么总线上的某个或多个器件可能被复位。 处理流程 通过 1-Wire 接口访问 DS2505 的过程如下: 初始化 ROM 功能命令 存储器功能命令 读/写存储器/状态 初始化 1-Wire 总线上所有的传输均由初始化命令开始。初始化命令由主机发出的复位脉冲和从机响应的 在线应答脉冲(presence pulse)组成。 在线应答脉冲让总线主机知晓 DS2505 在总线上,并且已经准备就绪。更多详细内容,请参考 “1-Wire 信令”一节。 ROM 功能命令 一旦总线主机检测到应答脉冲,就发出四种 ROM 功能命令中的一种。所有 ROM 功能命令的字长 为 8 位。下面列出了这些命令(流程图参见图 8): Read ROM [33h] 此命令允许总线主机读取 DS2505 的 8 位家族码、唯一的 48 位序列号和 8 位 CRC 校验码。此命 令只能在总线上仅有一片 DS2505 时使用。如果总线上出现多个从器件,则当各个从器件同时发 送时,将会造成数据冲突(漏极开路产生线“与”结果)。 15 of 24 DS2505 DS2505 等效电路 图 6 总线主机电路 图 7 A)漏极开路 B)标准 TTL 16 of 24 DS2505 ROM 功能流程图 图 8 17 of 24 DS2505 Match ROM [55h] Match ROM 命令和随后的 64 位 ROM 序列号,允许总线主机在多点时访问某个特定的 DS2505。 只有与该 64 位 ROM 序列号匹配的 DS2505 才会对随后的存储器功能命令进行响应。其他不匹配 的从机将等待下一个复位脉冲。此命令可以应用于总线上有单个或多个器件的情况。 Skip ROM [CCh] 此命令允许在单节点总线系统中使用,访问存储器功能时无需提供 64 位 ROM 码,从而节省时 间。如果总线上存在多个从机,而又在 Skip ROM 命令之后发出了读数据命令,则多个从机将同 时发送数据,势必引起数据冲突(漏极开路时产生线“与”结果)。 Search ROM [F0h] 当一个系统启动初始化时,总线主机可能不知道有多少器件挂接在 1-Wire 总线上,并且也不知道 它们的 64 位ROM码。Search ROM 命令允许总线主机采用排除法确认总线上所有从机器件的 64 位ROM码。ROM 搜索过程只是简单地反复执行三个步骤:读一位、读该位的补码、然后写入该 位的期望值。总线主机对ROM的每一位执行这三个步骤,完成这个过程后,总线主机就能知道某 个器件的ROM码。余下的器件数目及其ROM码通过继续执行上述过程检测。有关ROM搜索的更 深入讨论,请参阅Book of DS19xx iButton Standards的第五章,其中包括一个实例。 1-Wire 信令 DS2505 要求严格的协议规范,以保证数据的完整性。此协议包括在一根线上运行的五种信令:复 位脉冲和应答脉冲的复位序列、写 0、写 1、读数据和编程脉冲。除了在线应答脉冲外,其他所 有信号都由总线主机产生。与DS2505 进行任何通信的初始化序列如图 9 所示。在复位脉冲之后如 果出现在线应答脉冲,则说明DS2505 已经准备接收ROM 命令。总线主机发送(TX)一个复位脉 冲(tRSTL ,最小 480µs),然后释放总线,并转入接收(RX)状态。通过上拉电阻,1-Wire 总线被 拉为高电平。在检测到数据引脚出现上升沿后, DS2505 继续等待(tPDH ,15 至 60µs),然后发 送在线应答脉冲 (tPDL , 60 至 240µs)。 读/写时隙 读、写时隙的定义如图 10 所示。所有时隙都起始于总线主机拉低数据总线。数据总线的下降沿通 过触发 DS2505 的一个延时电路,使 DS2505 同步于总线主机。在写时隙期间,延时电路决定了 DS2505 何时采样数据总线。对于一个读时隙,如果传输的是“0”,则延时电路决定 DS2505 将 数据线拉低的时间。如果数据位为“1”,器件将保持数据总线状态不变。 编程脉冲 从 8 位暂存器将数据拷贝到 EPROM 存储器或状态存储器时,在总线主机确认当前字节的 CRC 校 验正确之后,需要在数据总线上加 12V 的编程脉冲。编程期间,总线主机控制数据总线从上拉电 阻所置的空闲高电平状态转换到数据总线被有源驱动至 12V 的编程电压状态,为 DS2505 提供至 少 10mA 的电流。图 11 所示的编程电压应保持 480µs,在此之后,总线主机将数据线返回到上拉 电阻所控制的空闲高电平状态。值得注意的是,由于任何 1-Wire EPROM 器件都需要高电压编 程,非 EPROM 类型的 1-Wire 器件的内部二极管会将数据总线电压嵌位在大约 8V,且有可能损 坏这些器件,因此,在编程 DS2505 过程中,总线上不允许挂接其它非 EPROM 的 1-Wire 器件。 18 of 24 DS2505 “复位和在线应答脉冲” 初始化时序 图 9 * 为了不屏蔽 1-Wire总线上其他器件的中断信令,tRSTL + tR 应该始终小于 960µs。 读/写时隙图 图 10 RESISTOR MASTER 19 of 24 DS2505 读/写时隙图 图 10 (续) 注: 主机的最佳采样点应尽可能靠近tRDV,不要超出 15µs窗口。执行读 1 时隙时,这样做会给上拉电 阻留出足够的时间以将总线恢复为高电平。执行读 0 时隙时,这将确保在最快的 1-Wire器件释放 总线前 (tRELEASE = 0) 执行读操作。 20 of 24 DS2505 编程脉冲时序图 图 11 CRC 的产生 DS2505 有两种类型的CRC(循环冗余校验)。其中一种CRC是 8 位类型,存储在 64 位ROM的最 高有效位字节。总线主机可以用 64 位ROM码的前 56 位计算CRC值,并将它与存储在DS2505 内 部的数值进行比较,以确定主机是否正确无误地收到了ROM码。该CRC的等效多项式是:X8 + X5 + X4 + 1。读DS2505 的ROM码时,可以接收到这 8 位CRC校验码的原码(未反相)。 另一类CRC是 16 位的,根据标准的CRC16 多项式函数X16 + X15 + X2 + 1 产生。该CRC校验码在执 行读数据存储器或状态存储器命令时用于保护用户定义的EPROM数据。它与基于iButton的NV RAM所采用的保护iButton 文件结构数据包的CRC类型相同。与 8 位CRC校验不同的是,16 位 CRC校验总是返回补码格式。DS2505 芯片内部的CRC发生器(图 12)用于在图 5 所示命令流程 中计算一个新的 16 位CRC校验码。 DS2505 将 CRC 码提供给总线主机用于验证与主机之间的命令、地址和数据传输是否正确。利用 Read Memory 命令读取 DS2505 的数据存储器时,只在到达存储器的终点时发送 16 位 CRC,这 16 位 CRC 是由清 CRC 发生器和移入的命令字节、低地址字节、高地址字节和从第一个地址到数 据存储器最后一个地址的所有数据字节计算得到的。 利用 Read Status 命令读取状态存储器时,在到达每个 8 字节页的末尾时发送 16 位 CRC。最初通 过 Read Status 命令流程的 16 位 CRC 码是由清 CRC 发生器以及随后移入的命令字节、低地址字 节、高地址字节和从第一个地址到所寻址的 EPROM 状态数据页最后一个地址的所有数据字节计 算得到的。随后通过 Read Status 流程产生的 CRC 码是由清 CRC 发生器和移入的下一页 EPROM 状态数据的第一个地址到该页末尾的新数据字节计算得到的。 21 of 24 DS2505 利用 Extended Read Memory 命令读取 DS2505 数据存储器的数据时,在两种情形下发送 16 位 CRC。一种是在重新定向字节后的 16 位 CRC;另一种是在每个存储器页结束时收到的 16 位 CRC。存储器页结束时的 CRC 始终是清 CRC 发生器和移入 EPROM 数据页的第一个地址到该页 最后一个地址的数据字节的计算结果。首先通过 Extended Read Memory 流程的 16 位 CRC 是移入 清 CRC 发生器的命令字节和随后的 2 个地址字节以及重新定向字节的计算结果。此后通过 Extended Read Memory 流程的 16 位 CRC 则是清 CRC 发生器和移入的重新定向字节的计算结果。 向 DS2505 写数据时(写入数据存储器或状态存储器),总线主机接收 16 位 CRC 用来在发出编 程脉冲之前验证数据传输的正确性。最初通过 Write Memory/Status 流程的 16 位 CRC 是由清 CRC 发生器以及随后移入的命令字节、低地址字节、高地址字节和数据字节计算得到的。随后通过 Write Memory/Status 流程产生的 16 位 CRC 码归结于 DS2505 自动增加地址计数器,其 CRC 码结 果由加载(不是移入的)到 CRC 发生器的新(增加的)地址的最低有效字节和移入的新数据字节 生成。 CRC校验码的比较和是否继续操作过程的完全由总线主机决定。当DS2505 内部储存的或计算的 CRC与总线主机产生的数值不一致时,DS2505 内部没有电路能够终止命令时序。有关产生CRC 校验码的硬件和软件的详细说明,请参考Book of DS19xx iButton Standards,其中还给出了一个范 例。 CRC-16 硬件描述和多项式 图 12 22 of 24 DS2505 ABSOLUTE MAXIMUM RATINGS* Voltage on any Pin Relative to Ground Operating Temperature Storage Temperature Soldering Temperature -0.5V to +12.0V -40°C to +85°C -55°C to +125°C See J-STD-020A specification * This is a stress rating only and functional operation of the device at these or any other conditions outside those indicated in the operation sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods of time may affect reliability. DC ELECTRICAL CHARACTERISTICS PARAMETER Logic 1 Logic 0 Output Logic Low @ 4 mA Output Logic High Input Load Current Operating Charge Programming Voltage @ 10 mA SYMBOL VIH VIL VOL VOH IL QOP VPP (VPUP=2.8V to 6.0V; -40°C to +85°C) MIN 2.2 -0.3 TYP VPUP 5 MAX +0.8 0.4 6.0 30 12.0 11.5 CAPACITANCE PARAMETER Data (1-Wire) NOTES 1, 6 1, 10 1 1, 2 3 7, 8 11 (tA = 25°C) SYMBOL CIN/OUT MIN AC ELECTRICAL CHARACTERISTICS PARAMETER Time Slot Write 1 Low Time Write 0 Low Time Read Data Valid Release Time Read Data Setup Recovery Time Reset Time High Reset Time Low Presence Detect High Presence Detect Low Delay to Program Delay to Verify Program Pulse Width Program Voltage Rise Time Program Voltage Fall Time UNITS V V V V µA nC V SYMBOL tSLOT tLOW1 tLOW0 tRDV tRELEASE tSU tREC tRSTH tRSTL tPDH tPDL tDP tDV tPP tRP tFP TYP MAX 800 UNITS pF NOTES 9 (VPUP=2.8V to 6.0V; -40°C to +85°C) MIN 60 1 60 0 1 480 480 15 60 5 5 480 0.5 0.5 23 of 24 TYP 15 15 MAX 120 15 120 45 1 60 240 5.0 5.0 UNITS µs µs µs µs µs µs µs µs µs µs µs µs µs µs µs µs NOTES 12 5 4 11 11 11 DS2505 NOTES: 1. All voltages are referenced to ground. 2. VPUP = external pullup voltage. If VPUP is lower than 3.0V the first byte read (any read command) may not reproduce the correct memory contents. Therefore, under low voltage conditions, it is recommended to set either the most significant bit or all five most significant bits of TA2 to 1. Internal circuitry of the chip will force these 5 bits back to 0 before they are shifted in the address counter and CRC generator. 3. Input load is to ground. 4. An additional reset or communication sequence cannot begin until the reset high time has expired. 5. Read data setup time refers to the time the host must pull the 1-Wire bus low to read a bit. Data is guaranteed to be valid within 1µs of this falling edge and will remain valid for 14µs minimum. (15µs total from falling edge on 1-Wire bus.) 6. VIH is a function of the external pullup resistor and VPUP. 7. 30 nanocoulombs per 72 time slots @ 5.0V. 8. At VCC = 5.0V with a 5kΩ pullup to VCC and a maximum time slot of 120µs. 9. Capacitance on the data pin could be 800pF when power is first applied. If a 5kΩ resistor is used to pull up the data line to VCC, 5µs after power has been applied the parasite capacitance will not affect normal communications. 10. Under certain low voltage conditions VILMAX may have to be reduced to as much as 0.5V to always guarantee a presence pulse. 11. Operational temperature range for memory programming is -40°C to +50°C. 12. For read-data time slots the optimal sampling point for the master is as close as possible to the end of the tRDV period without exceeding the 15µs window. For the case of a read-one time slot, this maximizes the amount of time for the pull-up resistor to recover the line to a high land. For a readzero time slot it ensures that a read will occur before the fastest 1-Wire device releases the line (tRELEASE = 0) Maxim 北京办事处 北京 8328 信箱 邮政编码 100083 免费电话:800 810 0310 电话:010-6211 5199 传真:010-6211 5299 24 of 24