文档库 最新最全的文档下载
当前位置:文档库 › DS2408

DS2408

DS2408
DS2408

DS2408

1-Wire 8通道可寻址开关https://www.wendangku.net/doc/d5388653.html,

特性

八通道可编程漏极开路输出I/O

PIO输出下拉晶体管的导通电阻为:100?

(最大值);关断电阻为:10M? (典型值)

状态变化锁存器彼此之间相互独立,可以捕

获PIO输入口线上的异步状态变化,以备

总线主机查询

数据选通输出能够实现PIO逻辑状态与外

部读/写电路的同步

内置多节点控制器,保证器件兼容于其它

1-Wire网络产品

支持1-Wire条件搜索命令,是否响应取决

于可编程的PIO搜索条件

内置工厂光刻的唯一64位注册码,保证无

差错的器件选择和绝对的器件唯一性

使用1-Wire协议,通过单根数字信号线和

主机通信,传输速度为15.3kbps或100kbps

工作电压范围:2.8V 至5.25V,温度范围

:-40°C 至 +85°C

引脚排列

N.C.

N.C.

P1

P2

P3

P4

RSTZ

P5

N.C.

P0

V CC

I/O

GND

N.C.

P7

P6

定购信息

PART

TEMP

RANGE

PACKAGE

DS2408S-40°C to +85°C 16-Pin SO, 150 mil

DS2408S

/T&R

-40°C to +85°C

Tape-and-Reel of

DS2408S

概述

DS2408是一款八通道的可编程I/O 1-Wire器件。该器件的PIO引脚为漏极开路输出,最大导通电阻100?。可靠的PIO访问通道通信协议保证万无一失的PIO输出设置。器件的数据有效选通端可将PIO的逻辑状态锁存到外部设备,如D/A转换器(DAC)或微控制器的数据总线。

DS2408的工作由1-Wire单总线来控制,总线上的器件按照Dallas Semiconductor 标准的1-Wire协议来实现通信。每片DS2408都具有不可更改的64位ROM注册码,由出厂激光刻度在器件内。该注册码保证唯一的身份,并用于多节点1-Wire网络中的器件寻址。多个DS2408可以复用一条公共的1-Wire总线,且各自独立工作。DS2408还支持基于PIO状态或上电复位的1-Wire条件搜索,这些搜索条件是可编程设置的。另外,DS2408还有备选的V CC供电方式。当没有外部电源供电时,DS2408通过1-Wire总线寄生供电;使用了外接电源时,即使1-Wire总线断开,DS2408仍维持PIO 上的状态。RSTZ信号可用作PIO输出的硬复位信号,也可以用作外部电路的选通信号,用来指示PIO的写操作或PIO读操作已结束。

1-Wire是Dallas Semiconductor的注册商标。

ABSOLUTE MAXIMUM RATINGS*

P0 to P7, RSTZ, I/O Voltage to GND

-0.5V, +6V P0 to P7, RSTZ, I/O combined sink current 20mA

Operating Temperature Range -40°C to +85°C Junction Temperature

+150°C

Storage Temperature Range -55°C to +125°C

Lead Temperature (10s)

See J-STD-020A specification

* This is a stress rating only and functional operation of the device at these or any other conditions above 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.

ELECTRICAL CHARACTERISTICS

(V CC = 0V or ≥ V PUP , T A = -40°C or +85°C.)

PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS

Standard speed

2.8 5.25

1-Wire Pullup Voltage V PUP

Overdrive speed 3.3 5.25 V

Standby Supply Current I CCS

V CC at V PUP,

I/O pin at 0.3V

1 μA I/O Pin General Data 1-Wire Pullup

Resistance

R PUP (Notes 1, 2)

2.2 k ? Input Capacitance C IO (Notes 3, 4)

1200

pF

Input Load Current I L

I/O pin at V PUP,

V CC at 0V

1 μA High-to-Low

Switching Threshold V TL (Notes 4, 5, 6)

0.5 3.2 V Input-Low Voltage V IL (Notes 1, 7) 0.30 V Low-to-High

Switching Threshold V TH (Notes 4, 5, 8)

0.8 3.4 V Switching Hysteresis V HY (Notes 9, 4) 0.16 0.73

V

Output-Low Voltage

at 4mA

V OL

(Note 10) 0.4 V Standard speed, R PUP = 2.2k ?

5 Overdrive speed, R PUP =

2.2k ?

2

Recovery Time

(Note 1)

t REC Overdrive speed, Directly prior to reset pulse; R PUP = 2.2k ?

5

μs

Standard speed

0.5 5

Rising-Edge Hold-off Time (Notes 11, 4) t REH

Overdrive speed 0.5 2 μs

Standard speed

65

Timeslot Duration (Notes 1, 12) t SLOT

Overdrive speed

10

μs

PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS I/O Pin, 1-Wire Reset, Presence-Detect Cycle

Standard speed, V PUP > 4.5V 480

720

Standard speed

660 720 Reset-Low Time

(Notes 1, 12) t RSTL

Overdrive speed

53 80 μs

Standard speed

15 60

Presence-Detect High Time (Note 12) t PDH

Overdrive speed

2 7

μs

Standard speed, V PUP > 4.5V 1

5

Standard speed

1 8 Presence-Detect Fall

Time (Note 13) t FPD

Overdrive speed

1

μs

Standard speed, V PUP > 4.5V 60

240

Standard speed

60 280 Presence-Detect Low

Time (Note 12) t PDL

Overdrive speed

7 27

μs

Standard speed, V PUP > 4.5V 65

75

Standard speed

68 75 Presence-Detect

Sample Time (Note 1) t MSP

Overdrive speed

8 9 μs

I/O Pin, 1-Wire Write Standard speed

60 120

Write-0 Low Time (Notes 1, 12) t W0L

Overdrive speed 8 13 μs

Standard speed

5 15 - ε

Write-1 Low Time (Notes 1, 12, 14) t W1L

Overdrive speed 1 1.8 - ε μs

Standard speed

15 60

Write Sample Time (Slave Sampling)

(Note 12)

t SLS Overdrive speed

1.8

8 μs I/O Pin, 1-Wire Read Standard speed

5 15 - δ Read-Low Time (Notes 1, 15) t RL

Overdrive speed 1 1.8 - δ μs Standard speed

15 60 Read-0 Low Time (Data From Slave)

(Note 12)

t SPD Overdrive speed

1.8 8 μs Standard speed

t RL + δ 15 Read-Sample Time (Notes 1, 12, 15) t MSR

Overdrive speed t RL + δ 1.8 μs P0 to P7, RSTZ Pin Input-Low Voltage V IL (Notes 1, 7)

0.30

V

Input-High Voltage V IH

V X = max (V PUP ,V CC )

(Note 1)

V X - 0.8

5.25 V Output-Low Voltage

at 4mA

V OL

(Note 10)

0.4 V

Leakage Current I LP 5.25V at the pin 1 μA Output Fall Time t FPIO (Notes 4, 16) 100 ns Minimum-Sensed

PIO Pulse

t PWMIN (Notes 4, 17)

1

5 μs

注释 1: 系统要求

注释 2: 1-Wire系统中上拉电阻的最大允许值是系统中的1-Wire器件的个数和1-Wire恢复时间的函数。这里给出的值是当系统中只有一个1-Wire器件,而且恢复时间为最小值时

的电阻值。当负载较重时,则需要选用像DS2480那样的有源上拉。

注释 3: 当采用2.2k?电阻作为数据线和V PUB之间的上拉电阻时,在上电5μs后,寄生电容将不再影响电路的正常工作。

注释 4: 由设计保证,未作生产测试。

注释 5: V TL 和V TH是内部电源电压的函数。

注释 6: 在下降沿期间,如果I/O电压低于该值,则判定为逻辑“0”。

注释 7: 不管何时主机将总线变为低电平,I/O上的电压要求不超过V ILMAX

注释 8: 在上升沿期间,如果I/O电压高于该值,则判定为逻辑“1”。

注释 9: 在上升沿期间,当I/O电压超过V TH后,此时I/O电压下降V HY,直到变为逻辑“0”。注释 10: 当电压小于1V时,I-V呈线性关系。

注释 11: 最早识别的下降沿可能出现在t REH之前、总线电压超过V TH之后。

注释 12: 表中高亮度部分的数字,和已经发布的1 Wire 标准不兼容,参见后面的对照表。

注释 13: 在I /O在线检测脉冲起始下降沿,从90%的V PUP电压变为10%之间的时间间隔。

注释 14: ε表示上拉电路将I/O电压从V IL上拉到V HL所需要的时间。

注释 15: δ表示上拉电路将I/O电压从V IL上拉到总线主机高电平门限所要求的时间。

注释 16: 在任意I /O引脚或RSTZ引脚上器件产生的下降沿,从90%的VPUP电压变为10%之间的时间间隔。假定PIO的上拉电阻为2.2k?。

注释 17: 状态变化锁存器(与所有的PIO引脚对应的)的触发脉冲或RSTZ引脚的复位脉冲的最小宽度。设脉宽为t PW,当t PW < t PWMIN(min)时,该脉冲将不起作用。当t PWMIN(min) < t PW <

t PWMIN(max)时,该脉冲可能有效,也可能无效。当t PW > t PWMIN(max) 时,该脉冲将被视为

有效脉冲,并被锁定。

注释 18: 流过所有端口和RSTZ引脚的最大瞬时下拉电流。引脚之间无电流平衡要求。

STANDARD VALUES DS2408 VALUES

STANDARD SPEED OVERDRIVE

SPEED

STANDARD

SPEED

OVERDRIVE

SPEED

PARAMETER

NAME

MIN MAX MIN MAX MIN MAX MIN MAX t SLOT (incl. t REC)61μs (undef.) 7μs (undef.)65μs

1)(undef.) 10μs (undef.)

t RSTL480μs (undef.) 48μs 80μs 660μs 720μs 53μs 80μs

t PDH15μs 60μs 2μs 6μs 15μs 60μs 2μs 7μs

t PDL60μs 240μs 8μs 24μs 60μs 280μs 7μs 27μs

t W0L60μs 120μs 6μs 16μs 60μs 120μs 8μs 13μs

t SLS, t SPD15μs 60μs 2μs 6μs 15μs 60μs 1.8μs 8μs

1) Intentional change, longer recovery-time requirement due to modified 1-Wire front end.

引脚功能描述

应用

DS2408是一个多用途器件。典型应用包括微控制器的端口扩展、远程多通道传感器/执行机构、微型终端的通信和控制单元,或用作微控制器的网络接口。下文中的图17 ~ 图22给出了DS2408的典型应用电路和通信示例。

概述

DS2408主要功能块之间的关系如图1 所示。该器件包括两个主要数据单元:1)64位激光刻度的ROM码;2)64位的控制和状态寄存器组。1-Wire协议的层次结构如图2所示。总线主机必须要先发出8种ROM功能命令之一:1)Read ROM;2)Match ROM;3)Search ROM;4)Conditional Search ROM,;5)Skip ROM;6)Overdrive-Skip ROM;7)Overdrive-Match ROM;8)Resume命令。在标准速率下执行了高速ROM命令字后,器件便进入高速模式,此后将以高速工作模式进行通信。图12给出了这些ROM操作命令所需的协议。在ROM功能命令成功执行后,就可以进行控制操作了,主机随后发出6个控制命令之一。图8给出了这些控制命令的协议。读入和写出数据都是最低有效位在前。

图1. DS2408内部结构框图

V CC

I/O

GND

RSTZ

P0P1P2P3P4

P5P6P7

图2. 1-Wire 协议的层次结构

寄生电源

DS2408可以从1-Wire总线上获取所需的电能。当信号线为高电平时,DS2408通过把能量存储在内部电容中来为自身供电。当信号线为低电平时,器件仍然可以用其‘寄生’电源继续工作,直到1-Wire总线变为高电平时再次对这个寄生电源(电容)进行充电。有外部电源供电时,需将其与VCC引脚相连接。

图3. 64位光刻ROM

MSB LSB

8-BIT CRC CODE 48-BIT SERIAL NUMBER

8-BIT FAMILY

CODE (29h)

MSB LSB MSB LSB MSB LSB

64位光刻ROM

每片DS2408都包含一串唯一的64位长ROM码,其中前8位是1-Wire家族码,后面的48位是唯一的序列号,最后8位是由前56位ROM码所计算出的CRC校验码,详见图3。其中的1-Wire CRC 通过由移位寄存器和异或门组成的多项式发生器来产生,见图4,该多项式为:X8 + X5 + X4 + 1。有关Dallas 1-Wire CRC其它更详细的资料可参见应用笔记27。

校验时,首先把移位寄存器的位全部初始化为0,然后从家族码的最低有效位开始,把数据依次移入移位寄存器,每次移入一位。当家族码的最后一位(第8位)被移入后,再移入序列码。当序列码的最后一位(第48位)也被移入时,该移位寄存器就是CRC校验值。移入8位CRC校验码后,移位寄存器的所有位将全部归零。

图4. 1-Wire CRC发生器

访问寄存器

DS2408工作所需的寄存器是按寄存器页来组织的,参见图5。所有这些寄存器都不是非易失性的,一旦器件断电,将会丢失掉所有的状态消息。器件可通过Read PIO Register和Write Conditional Search Register命令来读/写PIO寄存器、条件搜索寄存器及控制/状态寄存器,有关这些命令更详细的介绍可参见图8及本文的后续部分。

图5. DS2408寄存器地址分配表

ADDRESS RANGE ACCESS TYPE DESCRIPTION

0000h to 0087h R Undefined Data

0088h R PIO Logic State

0089h R PIO Output Latch State Register

008Ah R PIO Activity Latch State Register

008Bh R/W Conditional Search Channel Selection Mask

008Ch R/W Conditional Search Channel Polarity Selection

Register 008Dh R/W

Control/Status

008Eh to 008Fh R These Bytes Always Read FFh

PIO逻辑状态寄存器

通过读PIO寄存器命令可读取该寄存器,从而获取PIO引脚的逻辑状态。即使将RSTZ引脚设为STRB,在读取该寄存器时也不会在RSTZ引脚产生选通信号。有关STRB更详细的信息,可参见Channel Access命令。

PIO逻辑状态寄存器位分配表

ADDR b7 b6 b5 b4 b3 b2 b1 b0

0088h P7 P6 P5 P4 P3 P2 P1 P0

PIO逻辑状态寄存器是只读寄存器,分配表中的每位都分别与某个PIO通道相对应,参见图6。读取该寄存器中的数据时,首先从字节的末位(最高位)开始,一直到寄存器的首位(最低位)。详情可参见Read PIO Register命令部分。

PIO输出锁存器的状态寄存器

该寄存器用于保存用Channel access Write命令写入的PIO通道最新控制数据,可用Read PIO Register命令来读出。即使将RSTZ引脚被设为STRB,读取该寄存器时也不会在RSTZ引脚产生信号。有关STRB更详细的信息,可参见Channel Access命令。即使在受ESD的影响,器件重新初始化时,该寄存器的值也不会改变。

PIO输出锁存器的状态寄存器位分配表

ADDR b7 b6 b5 b4 b3 b2 b1 b0

0089h PL7 PL6 PL5 PL4 PL3 PL2 PL1 PL0

PIO输出锁存器的状态寄存器是只读寄存器。分配表中的每位都分别与某位PIO通道相对应,其简图见图6。

该寄存器的触发器状态在上电时是随机的。如果希望在上电时要求器件的所有PIO通道处于关闭状态,则必须在RSTZ引脚上产生一个低脉冲,例如,采用具有漏极开路输出的CPU监控复位器件(见图20)。当采用RC电路来产生上电复位信号时,则不要将RSTZ引脚配置为选通输出(控制/状态寄存器008Dh的ROS位需置0)。

PIO状态变化锁存器的状态寄存器

该寄存器中的数据表示PIO状态变化锁存器的当前状态,可用Read PIO Registers命令读取该寄存器的内容。即使将RSTZ引脚设为STRB,读取该寄存器时也不会在RSTZ引脚产生信号。有关

更详细的信息,可参见Channel Access命令。

PIO状态变化锁存器的状态寄存器位分配表

ADDR b7 b6 b5 b4 b3 b2 b1 b0

008Ah AL7 AL6 AL5 AL4 AL3 AL2 AL1 AL0

PIO状态变化锁存器的状态寄存器是只读寄存器,分配表中的每位都分别与某位PIO通道相对应,参见图6。通过上电复位、在RSTZ引脚上产生低脉冲(当且仅当RSTZ引脚设为RST输入时)、或成功执行Reset Activity Latches命令,都可以将该寄存器清为00h。

图6. IO通道和RSTZ引脚的简化逻辑图

条件搜索通道选择屏蔽寄存器

该寄存器用于决定某个PIO通道是否有权响应条件搜索命令。将该寄存器中与通道相对应的位置1可以使该通道参与条件搜索。该寄存器只能通过Write Conditional Search Register命令写入数据。

条件搜索通道选择屏蔽寄存器位分配表

ADDR b7 b6 b5 b4 b3 b2 b1 b0

008Bh SM7 SM6 SM5 SM4 SM3 SM2 SM1 SM0

条件搜索通道选择屏蔽寄存器是可读/写寄存器。分配表中的每一位都分别与其PIO通道相对应,参见图7。上电复位时该寄存器被清零。

条件搜索通道极性选择寄存器

该寄存器用于设置可响应条件搜索命令的每个PIO通道的极性,以便根据其极性来响应条件搜索命令。对于某个PIO通道来说,数据源可以来自通道的输入信号(引脚),也可以来自通道的状态变化锁存器,具体由控制/状态寄存器008Dh中对应的PLS位来决定。该寄存器只能通过Write Conditional Search Register命令写入数据。

条件搜索通道极性选择寄存器位分配表

ADDR b7 b6 b5 b4 b3 b2 b1 b0

008Ch SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0

条件搜索通道极性选择寄存器是可读/写寄存器。分配表中的每一位都分别与其PIO通道相对应,参见图7。上电复位时该寄存器被清零。

图7. 条件搜索逻辑电路

控制/状态寄存器

该寄存器中的数据报告状态信息,决定RSTZ引脚的功能,以及进一步设置器件的条件搜索。其写入只能用Write Conditional Search Register命令来完成。

控制/状态寄存器的位分配表

ADDR b7 b6 b5 b4 b3 b2 b1 b0

CT PLS

PORL ROS

008Dh

0 0 0

VCCP

该寄存器为可读/写寄存器。当不采用V CC供电时,上电复位后该寄存器的值将是08h。该寄存器中各位的功能介绍参见下表。其中位4~位6没有使用,读入始终为0,不可能置为1。

多个决定DS2408是否响应条件搜索的信号之间的相互作用如图7所示。选择屏蔽SM用于设定参与条件搜索的通道;极性选择SP用于设定状态为0的通道还是状态为1的通道来响应条件搜索;PLS位用于设定通道上的信号是来自状态变化锁存器还是IO引脚。所有通道上的这些信号还要送到一个AND门和一个OR门,最后通过CT位来选择是把AND后的结果还是OR后的结果来作为条件搜索响应信号CSR。

CT位的说明:

只要其中有一个通道的输入(引脚状态或状态变化锁存器)满足指定的极性条件时,就认OR

为满足条件。

AND 只有当选定的所有通道的输入(引脚状态或状态变化锁存器)满足指定的极性条件时,才认为满足条件。

控制功能命令

一旦主机执行完一条ROM功能命令,就可发出控制功能命令了。图8的控制功能流程图详细描述了访问PIO通道和DS2408特殊功能寄存器所需的协议。主机和DS2408之间的通信速率可以设成标准速率(默认:OD = 0)或高速模式(OD = 1)。如果没有明确地设为高速模式,器件将以标准速率进行通信。

Read PIO Registers [F0h]

Read PIO Register命令可以读取所有的DS2408寄存器。当主机发出该命令后,必须紧跟着送出2字节的目标地址。发出这两个目标字节后,主机就开始从DS2408读取数据,读取的起始地址为发送的目标地址,一直读到地址008Fh。如果主机继续读数据,则将接收由命令字节、地址字节和发出的所有数据等生成的16位CRC反码。这个CRC16的生成过程如下:首先清零CRC发生器,然后移入命令字,跟着移入两个地址字节,最后依次移入从指定起始位置开始到寄存器页结束地址的所有数据,此时CRC发生器的值就是所产生的CRC。当主机接收CRC16之后,DS2408在随后的读时隙中将一直以逻辑‘1’响应,直到主机发出1-Wire复位命令为止。如果主机在发出Read PIO Register命令后跟随目标地址0088h(PIO逻辑状态寄存器),则DS2408将在主机传输TA2的最高位期间对PIO进行采样。如果该命令之后发送的目标地址小于0088h,则将会在主机读地址0087h最高位时进行采样。

Channel Access Read [F5h]

与从88h地址读取PIO逻辑状态的命令相比,Channel Access Read命令可以不断地读取DS2408的状态。在发出32字节的PIO引脚状态后,DS2408紧跟着发送相应数据的CRC16的反码,以便主机判断接收到的数据是否准确无误。Channel Access Read操作可随时通过1-Wire复位信号来终止。

图9. 访问通道的读时序

IO (1-Wire)

STRB\Example - Sampled State = 72h

注:

1."previous byte"可以是命令码,也可以是以前PIO采样到的数据字,还可以是CRC16的高字节。本例是一个读1时隙。

2.当"previous byte"是写确认字节(write confirmation byte)(AAh)时,该采样点时序也适用于Channel Access Write命令。当在Channel Access Write命令期间进行采样时,将不会产生STRB 脉冲信号。

DS2408对八个PIO 通道状态的采样是同时进行的。第一次采样发生在命令码F5h 的最末位(最高有效位)期间;当主机接收到PIO 状态的最高位(即P7引脚的状态)时,DS2408就进行第二次采样,如此循环,一直到主机接收到31次PIO 采样值,之后主机将接收由命令码和32个PIO 采样值生成的CRC16的反码(第一次读循环),或接收仅由32个PIO 采样值生成的CRC 的反码(随后的读循环)。一旦CRC 的末位(最高位)发送完成,DS2408就马上开始继续对PIO 进行采样。该时隙起始与采样点之间的延时不会受传输位值和数据方向的影响(见图9)。若RSTZ 引脚设为STRB ,则会在发送PIO 数据的最低前两位时产生一个选通信号。该选通信号请求FIFO 或微控制器发送下一个数据至PIO ,以便主机通过1-Wire 读取。

Channel Access Write [5Ah]

Channel Access Write 命令是向PIO 输出锁存器的状态寄存器(地址:0089h) 写入数据的唯一途径,该寄存器控制PIO 通道漏极开路输出晶体管。主机可以通过这个命令先向DS2408写入新数据,然后再回读PIO 状态,这样可以一直循环下去。通过这种先写后读的方式可以使主机验证输出状态,或与PIO 和RSTZ 引脚连接的微处理器进行快速的数据通信。Channel Access Write 操作可随时被1-Wire 复位信号终止。

图10. 访问通道的写时序

Case #1 - MS Bit of new PIO state is 0

Example - Old State = 39h, New state = 72h

以上两个例子均假定RSTZ 引脚设为输出。如果RSTZ 设为输入(默认值),那么RSTZ 引脚必须接到高电平(V CC 或 V PUP ),以便Channel Access Write 能够正常运行。若该引脚悬空,则会使PIO 通道的输出晶体管处于“关断”状态,此时读出来的PIO 输出锁存器的值全部为“1”,其逻辑图参见图6。

在发出该命令之后,主机要随后发出一个用来控制PIO 输出晶体管状态的字节。该字节的首位(最低位)与P0相对应,把相应的位置1就会关断输出晶体管(非导通状态),置0则会使对应的晶体管处于导通状态。这样作为新的PIO 输出状态传输的数据是以原码形式出现在PIO 引脚上。为了避免错误的数据传输,主机还必须再次发送PIO 数据的反码。只有当整个通信成功时,PIO 上的状态才能改变。DS2408 PIO 状态的真正改变是在收到了新PIO 数据字反码的末位(最高位)以后再根据对应的位的极性来进行,如图10所示。如果相应位为1,在t SLS 结束后PIO 状态发生改变;如果为0,则是在时隙的最后部分,当总线电压超过V TH 门限之后,状态才会改变。为把PIO 状态成功改变的信息传递给主机,DS2408将发送一个确认字节AAh 。如果RSTZ 引脚设为STRB ,在传送确

主机,如图9所示。主机根据实际情况,是继续向PIO写数据,还是发出1-Wire复位信号来终止该命令。

Write Conditional Search Register [CCh]

该命令用于设定DS2408器件条件搜索命令的响应条件、RSTZ引脚的功能以及清除上电复位标志。

当主机发出该命令后,随后发送2字节的目标地址,其地址范围为:008Bh ~ 008Dh,之后,发送的字节被写入到指定地址。如果该地址有效,该数据就会被立即写到寄存器页中相应的位置。此时,主机可以通过发送1-Wire复位来结束该命令,也可以发送更高地址的数据。一旦寄存器地址008Dh写入了数据,后续的数据将被忽略。由于Write Conditional Search Register流程图中没有包括用于校验寄存器中新数据的差错校验,那么通过Read PIO Registers命令来回读寄存器的值对验证写入数据的正确与否显得尤为重要。

状态变化锁存器复位(Reset Activity Latches) [C3h]

每个PIO通道都含有一个状态变化锁存器,当PIO引脚的状态发生改变时,状态变化锁存器就被置位。状态变化可能由外部事件和信号,也可能由PIO写数据引起。取决于应用要求,在DS2408捕获并处理某个外部事件后,可能需要复位该状态变化锁存器。由于对PIO的状态变化寄存状态寄存器只能进行读操作访问,DS2408就需要支持一个特定命令来复位该锁存器。在收到Reset Activity Latches命令码之后,DS2408会立即复位所有的状态变化锁存器。主机验证Reset Activity Latches命令是否正常执行的方法有两种。最简单的方法是在发送完该命令码后,从1-Wire线路上开始读数据。此时主机将始终读入AAh字节,直到发出1-Wire复位信号为止。另一种方法是读寄存器地址008Ah。

1-Wire总线系统

1-Wire总线系统由一个主机和一个或多个从器件组成。在所有的应用中,DS2408都作为从器件使用,主机通常是一个微控制器或PC。对于小规模的系统,可通过软件利用一个信号端口引脚来生成1-Wire通信信号。而对于多点监视网络来说,推荐使用1-Wire线路驱动器DS2480B或基于DS2480B的串行接口适配器(DS9097U系列),这样可简化硬件设计,使微处理器从实时响应的繁琐工作中解放出来。

对1-Wire总线系统的讨论分为3个部分:硬件配置、处理流程和1-Wire信令(信号类型和时序)。1-Wire协议以特定时隙期间的总线状态来定义总线通信方式,该特定时隙起始于总线主机发出的同步脉冲的下降沿。

硬件配置

1-Wire总线系统仅定义了一条信号线,因此在合适的时间驱动总线上的各个器件是十分重要的。为使上述操作易于实现,接到1-Wire总线上的每个从器件的输出必须为漏极开路或三态输出。DS2408的1-Wire端口是漏极开路输出,其内部等效电路如图11所示。

图11. 硬件配置

多点总线系统由一条1-Wire总线和多个从器件组成。标准速度模式时,1-Wire总线的最大数据传输速度为15.3kbps,高速模式时的通信速度可高达142kbps,但DS2408在高速模式时的最高速度为100kbps。上拉电阻的大小主要取决于网络规模和负载情况。通常情况下,标准速率模式时上拉电阻的阻值最好在2.2k?左右,高速模式时电阻大小最好为1.5k?。

1-Wire总线的空闲状态为高电平。如果由于某种原因需要暂停工作,稍后还有恢复工作的话,必须将总线置于空闲状态。否则,当以标准速度进行通信时,如果总线被置低的时间超过120μs,或当以高速模式进行通信时,总线置低的时间超过16μs,总线上的器件将被复位。对于DS2408来说,高速模式下时总线置低的时间不能超过13μs,这样才能保证不会使1-Wire总线上的从器件复位。DS2408当与1-Wire驱动器DS2408B或基于该驱动器的串行端口适配器配套使用时,通信会更简单、更可靠。当DS2408工作在高速模式或工作电压低于4.5V时,1-Wire I/O的一些定时值(见EC表)必须进行相应的调整。

处理流程

通过1-Wire端口访问DS2408的顺序如下:

初始化

ROM操作命令

控制操作命令

处理/数据

各种控制功能命令的处理流程将在后文进行讨论。

初始化

1-Wire总线上的所有数据处理均从初始化序列开始。该初始化序列由主机发送的复位脉冲和从器件发送的在线应答脉冲组成。在线应答脉冲用于通知主机DS2408已挂接在总线上,并已准备就绪。有关这方面的详细内容,请参阅“1-Wire信令”部分。

ROM 功能命令

一旦总线主机检测到在线应答脉冲,就可以发出DS2408所支持的七条ROM功能命令之一。所有ROM功能命令的长度均是8位。下面是这些ROM命令的简要介绍(参考图12所示的流程图)。

Read ROM [33h]

主机利用该命令读取DS2408的8位家族码、唯一的48位序列号和8位CRC码。该命令适用于总线上只有一个从器件的情况。如果总线上挂接有多个从器件,那么当所有从器件都试图在同一时刻传送数据时,就会发生数据冲突(漏极开路输出产生“线与”结果),由此读取的家族码和48位序列号将无法匹配CRC校验码。

Match ROM [55h]

Match ROM命令后紧跟着64位ROM码,总线主机利用该命令来访问多点总线上某个特定的DS2408。只有其内部ROM码与主机发出的64位ROM码匹配的DS2408才会响应随后的存储器功能命令,而与64 位ROM 码不匹配的其他所有从器件就处于等待状态,等待复位脉冲。总线上有一个或多个从器件时都可使用该命令。

Search ROM [F0h]

当一个系统启动初始化时,总线主机可能不知道在1-Wire 总线上挂接有多少个器件,而且也不知道各个器件的64位ROM码。总线主机利用Search ROM命令,采用排除法,来识别总线上所有从机器件的64 位ROM码。Search ROM通过重复简单的三个步骤:读一位,读该位的反码,然后写入该位的期望路径。总线主机对ROM的每一位都执行这三个步骤。当所有的ROM ID中的每位都进行了一次这样的操作后,总线主机就可得到某个器件的64位ROM码。继续进行类似的过程可获悉其他从器件的ROM码。若想对Search ROM命令有更深入的了解,请参阅应用笔记187,那里还给出了软件实例。

Conditional Search [ECh]

除了满足规定条件的从器件才能够参与搜索外,在其它方面,Conditional Search ROM命令的执行情况与Search ROM命令类似。搜索条件通过条件搜索通道寄存器、条件搜索极性选择寄存器(地址为:008Bh, 008Ch) 、控制/状态寄存器(地址为:008Dh)的功能位CT和PLS位以及PIO通道状态来决定,更加详细的Conditional Search逻辑参见图7。如果PORT位为1,对应的从器件就会

须报告一些重要事件(如外部信号所引起的PIO引脚状态改变)的从器件提供了一种有效的方法。当每次成功地搜索到多点总线上的某个器件的64位ROM码后,其它所有器件都将退出搜索过程,等待下一个复位脉冲的到来,此时就可单独访问该器件了,就像发出Match ROM命令一样。

Skip ROM [CCh]

在单点总线系统中,主线主机可使用该命令在不知道从器件64位ROM码的情况下访问控制功能,从而节省时间。如果总线上挂接有多个从器件,在Skip ROM命令后发出读命令时,就会有多个从器件同时发送数据,从而引起冲突(漏极开路下拉将产生“线与”结果)。

Resume Command [A5h]

通常,要多次访问DS2408才能完成某个控制或调整操作。在多点应用环境中,也就意味着每次访问都必须重复读取Match ROM命令的64位ROM序列码。为了提高网络的数据吞吐量,可使用该Resume命令。执行该操作时首先检查RC标志的状态,如果RC标志为1,则直接传送控制操作,类似于Skip ROM命令。待Match ROM、 Search ROM、Conditional Search ROM 命令或Overdrive Match ROM命令成功运行后,可把RC标志设为1,此后便可用Resume命令来反复访问该器件。为了防止总线上的多个器件同时响应这个Resume命令,当访问总线上的另外一个器件时将会清除RC标志。

Skip ROM [3Ch]

在单点总线系统中,总线主机可使用该命令在不知道从器件64位ROM码的情况下访问控制功能,从而节省时间。跟普通Skip ROM命令不同的是,Overdrive Skip ROM能将DS2408设为高速运行模式(OD = 1)。运行该命令后的通信均为高速通信,直到主机发出一个最少时长为480μs的复位脉冲,才能把总线上的器件设成标准速率(OD = 0)。多点总线上的主机发出该命令后,所有支持高速通信的器件都将进入高速模式。如果网络中只有一个支持高速通信的器件,在发出复位脉冲后,紧跟着发送一个Match ROM或Search ROM命令码即可,这样可加快搜索进程。如果总线上挂接有多个支持高速模式的器件,在Overdrive Skip ROM命令之后发出一个read命令,那么就会有多个从器件同时传输数据,从而发生冲突(漏极开路下拉将产生一个“线与”结果)。

Overdrive Match ROM [69h]

在高速模式下,在发出Overdrive Match ROM命令后紧跟着发出64位ROM码,主机可寻址多点总线上某个特定的DS2408,同时将其设为高速模式。只有其内部ROM码与主机发出的64位ROM 码匹配的DS2408才会响应随后的控制操作命令。网络中已经通过Overdrive Skip命令或Match命令设为高速模式的从机也将一直保持高速模式,直到主机发送一个最小时长为480μs的复位脉冲才能使它们返回到标准速度。Overdrive Match ROM命令既适用于总线上只有一个从器件的系统中,也适用于有多个从器件的系统中。

相关文档