没有合适的资源?快使用搜索试试~ 我知道了~
首页DS2480B应用笔记.pdf
DS2480B应用笔记.pdf
需积分: 50 283 浏览量
更新于2023-05-26
评论
收藏 389KB PDF 举报
DS2480B 串行接口1-Wire 线驱动器的使用,DS2480B 是从串行接口到1-Wire 网络协议转换的桥接器。只要主机具有普通的串行通信UART, 就可以通过该桥接器产生严格定时和电压摆率控制的1-Wire 波形
资源详情
资源评论
资源推荐

AVAILABLE
1 of 26 032703
引言
1-Wire
®
通信协议可以通过微处理器上的一个 IO 引脚产生,不过,为了创建可靠的 1-Wire 网络,
必须提供正确的时序和适当的输出电压摆率。1-Wire 主机发送的时序不正确会导致与 1-Wire 从器
件之间的通信间断或完全失败。输出电压摆率若不加以控制,可能严重限制网络的长度,并产生
时通时断的现象。如果可以提供串行通信 UART,那么通过一个串口至 1-Wire 桥接器(DS2480B)
就可以解决上述问题。
DS2480B 是从串行接口到 1-Wire 网络协议转换的桥接器。只要主机具有普通的串行通信 UART,
就可以通过该桥接器产生严格定时和电压摆率控制的 1-Wire 波形。DS2480B 接收所要发送的指令
与数据,执行 1-Wire 操作,并将结果返回至主机。图 1 给出了 DS2480B 配置的简化框图。实现
该协议并浏览所有的 DS2480B 指令可能需要花大量的时间并容易混淆。为此,本指南将介绍通用
的 1-Wire 操作,并解释 DS2480B 的输入串行数据包结构,以及输出串行数据包的含义。
本文作为DS2480B 数据资料的补充,并不能代替数据资料。该数据资料可以在网页
http://www.maxim-ic.com.cn/quick_view2.cfm/qv_pk/2923中找到。
DS2480B 的使用(简化) 图 1
与该桥接器一起工作的主机 UART 至少应能够支持 8 位、无奇偶校验、9600 波特(位/秒)的通信。
该桥接器可以实现更高的数据速率,最高可以达到 115200 波特,但是上电时以 9600 波特启动。
DS2480B 数据资料中介绍了电气方面的注意事项,如 RS232。
1-Wire 接口
只有在所有指令与模式均被转换到 1-Wire通信接口,使得各种应用能够基于该接口使用,
DS2480B才是有用的。为了执行 1-Wire操作,应用中必须具备的一些基本 1-Wire函数。第一项操
作是使总线上所有 1-Wire从器件复位,为接收来自 1-Wire主机的指令做好准备。第二项操作是从
1-Wire主机向从器件执行写一位操作,第三项操作是从 1-Wire从器件中读一位操作。由于必须由
1-Wire主机来启动所有的 1-Wire位通信,所以“读取”操作实际上是在“写入”一位后采样得到
的结果。几乎所有其他 1-Wire操作都可以由这三个操作构成。例如,向 1-Wire总线写 1 个字节相
当于 8 个一位写操作。1-Wire 搜索算法( 参见应用笔记 187 ,位于http://www.maxim-
ic.com.cn/appnotes.cfm/an_pk/187)也可以由上述基本操作构成。不过,这并不见得是效率最高的
1-Wire
是
Dallas Semiconductor
的注册商标。
应用笔记 192
DS2480B 串行接口 1-Wire 线驱动器的使用
1-Wire master
DS2480B
(serial bridge)
1-Wire bus
RXD
HOST UART
(μ or PC)
TXD
1-Wire
slave
1-Wire
slave

AN192
2 of 26
实现方法。DS2480B 包含搜索加速器模式,可以大大降低执行搜索操作所需的串行通信量。效率
更高的方法是将位通信捆绑为字节组,甚至将字节组捆绑为字节块。为了获得最高的效率,应用
中应当尽可能使用最大的指令组(最大的数据包)。
表 1 是高效率 1-Wire 函数至少应具备的接口操作。操作名称以特定操作的标识提供,将在下面文
中使用。
基本的 1-Wire 操作 表 1
操作 说明
OWReset
发送 1-Wire 复位激励,并检查 1-Wire 从器件的在线脉冲。
OWWriteBit / OWReadBit
发送或接收 1-Wire 总线上的 1 位数据。
OWWriteByte / OWReadByte
发送或接收 1-Wire 总线上的 1 字节数据。
OWBlock
向 1-Wire 总线发送或从总线接收多个字节的数据。
OWSearch
执行 1-Wire 搜索算法(参见应用笔记 187)。
在基本操作之外,还有扩展的 1-Wire 函数。一些 1-Wire 从器件可以工作在两种不同的通信速度
下:标准和加速模式。所有器件都至少支持标准速度。加速模式大约是标准速度的 10 倍。
DS2480B 同时支持这两种 1-Wire 速度。
1-Wire 器件通常从 1-Wire 总线上获得部分或全部的操作能量。不过有些器件在协议的特定位置需
要额外的电源传输。例如,某器件可能需要进行温度转换或计算 SHA-1 散列。这时电源通过
1-Wire 总线上允许更强的上拉来提供。在这种电源传输方式中无法进行正常的通信。DS2480B 具
有一些先进的特性,用来提供电源传输。
EPROM (一次性可编程) 1-Wire 存储器在进行写操作时需要专门的 12V 脉冲。如果 DS2480B 具有
12V,那么它将被要求向 1-Wire 总线传输一个脉冲,用于 EPROM 编程。
表 2 中列出了扩展的 1-Wire 操作,用于 1-Wire 速度设定、电源传输,以及编程脉冲。
扩展的 1-Wire 操作 表 2
操作 说明
OWSpeed
设定 1-Wire 通信速度。选项为标准速度或加速模式。需要注意的
是,该操作仅改变 1-Wire 主机的通信速度,而对 1-Wire 从器件,必
须通过指令,使其完成从标准速度到加速模式的切换。1-Wire 从器
件在遇到标准速度的 1-Wire 复位时,总是还原到标准速度。
OWLevel
设定 1-Wire 电源电平(正常或电源传输)。
OWProgramPulse
为 EPROM 1-Wire 器件的写操作发送定时的 12V 编程脉冲。
OWReadBitPower
从 1-Wire 总线上读取 1 位数据,可以选择在该位读取结束后,立即
进行电源传输。
OWWriteBytePower
向 1-Wire 总线发送 1 字节数据,在该字节发送结束后,立即进行电
源传输。

AN192
3 of 26
本文将介绍使用 DS2480B 高效率地实现基本与扩展的 1-Wire 操作。这些操作构成了一个完整的
组合,为目前和未来的 1-Wire 器件完成所有的功能。按这种方式摘取 1-Wire 操作,使 1-Wire 应
用不依赖于 1-Wire 主机类型(参见实例 1)。需要注意的是,该应用不是唯一的,也不需要利用
DS2480B 的所有功能。在本文的最后还将给出更多的 1-Wire 应用实例。
读取存储器的伪代码 实例 1
trans_block – temporary transmit buffer, values expressed in hexadecimal notation
// reset the 1-Wire bus
If OWReset = TRUE
// sent the MATCH ROM sequence for the device to read, ROM is R0...R7
trans_block = 55,R0,R1,R2,R3,R4,R5,R6,R7
OWBlock(trans_block)
// send the Read Memory command, address (0),
// and 32 read bytes for the page of data
trans_block = F0,00,00,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,
FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF, FF,FF,FF,FF
OWBlock(tran_block)
// page 0 data is now in last 32 bytes of trans_block
...
Else
// no device present
...
EndIF
主机配置
DS2480B 主机必须具有一个 UART,该 UART 至少支持 8 位、无奇偶校验、9600 波特的通信方
式。该主机 UART 的配置是一个专用平台,因此本文中不涉及这方面内容。不过,它必须提供标
准的接口操作,包括读写操作、刷新等待中的读/写操作、发送暂停,以及可选择的波特率调整。
表 3 给出了操作定义列表,用来说明与一般主机 UART 的接口。这些定义将用来说明对 UART 完
成的操作。
必须的主机 UART 操作 表 3
操作 说明
Break
在通信端口发送 BREAK 至少 2ms。
Flush
完成所有等待状态的写操作,并清空输入(读取)缓冲区。
Read
从串口读取指定字节数的数据。提供足够长的时延,以确保在正常条件下
所有字节均被接收。
Write
向串口写指定字节数的数据。所有字节都写完后返回。
SetBaud
将串行 BAUD 率改为指定速率。
(当需要加速模式时可选择。)
Delay
延时至少指定的毫秒数。

AN192
4 of 26
本篇应用笔记中的‘C’代码工具,使用的是 Microsoft Windows 32 位操作系统 RS232 串
口,以 DS9097U 适配器作为主机,该代码可以从以下链接中下载:
http://files.maxim-ic.com/sia_bu/public/an192.zip
该 C 代码工具是 1-Wire Public Domain 套件提供的简化版本。1-Wire Public Domain 套件中还包含
器件特殊的模块与实例,可以在以下链接中找到:
http://www.maxim-ic.com.cn/products/ibutton/software/tmex/。
DS2480B 配置
在尝试 1-Wire 操作之前,主机必须初始化,并与 DS2480B 串行 1-Wire 线驱动器进行同步。检测
到主机与桥接器之间的通信故障时,也需要执行该初始化与同步过程。在初始化过程中,
DS2480B 要求 9600 波特率。初始化结束后,可以实现高达 115200 的波特率。不过,改变波特率
时应当注意,因为 DS2480B 只有 1 字节的输入缓冲区。输入的 1-Wire 指令必须能够在下一条指
令移入之前完成。关于各指令分别工作在多少波特率下,请参照 DS2480B 数据资料中的表 7。
DS2480B_Detect
由于 DS2480B 中没有晶振,它必须通过采样主机发送的串行通信来调节自身的时基。初始化的时
序从复位 DS2480B 开始,然后发送一个预先定义好的定时字节。该器件的复位将使所有 1-Wire
配置参数复位到缺省状态。为了在小型到中等长度的 1-Wire 网络中获得良好的性能,在进行标准
速度通信时,推荐在“伸缩”模式下使用 DS2480B。1-Wire 设置参数用来为伸缩模式下的 1-Wire
信号整形。因此,不管什么时候 DS2480B 被复位,配置参数就需要重装。理想的伸缩模式设置为
PDSRC = 1.37V/μs, W1LD = 10μs, DSO/W0RT = 8μs。该复位与配置时序被组合为一项操作,称为
DS2480B_Detect。
如果检测到停止位为空号,DS2480B 就被复位。产生该复位信号最简单的方法是,发送比 9600
波特 8 位的字长更长的串行暂停。如果主机 UART 上不提供暂停,那么切换到较低的波特率下,
并发送一个 0 字节,可以模拟一次暂停。切换到空号奇偶校验位或改为最高有效位为 0 的 9 位字
长也可以模拟一次暂停。
在配置时序中的一些延时值(参见图 2)可以任意大,以适应大多数 UARTS。这些值可以被减小。
在初始化时序结束之后执行 read baud rate register 和 write 1-Wire bit 操作,以检验 DS2480B 初始
化功能的正确性。如果这些操作中任意一个的返回值为无效应答,则认定初始化过程失败。
需要注意的是,该执行过程并不检查 DS2480B 主动在线脉冲通报字节。当调用 DS2480B_Detect
函数时,这可能引起某些 1-Wire 操作得到格式化不正确的应答字节。由于在一些接触不良的环境
中也会产生一些异常的在线脉冲,每个 1-Wire 应用都应该具有重试功能,因此,这也解决了上述
问题。

AN192
DS2480B_DETECT 流程 图 2
Start
Set baud to 9600
Send break (2ms)
Delay (2ms)
Flush
Write timing byte
(C1 hex)
Delay (2ms)
Construct Packet:
Set PDSRC=1.37V/μs
Set W1LD=10μs
Set DSO/W0RT=8μs
Read Baud (RBR)
Send a 1-Wire bit
Write the packet and
receive the
5-byte response
Flush
Packet
received and
valid?
Yes
No
Outbound Packet (to DS2480B)
set
PDSRC
set
W1LD
set DSO/
W0RT
read
RBR
1-Wire
Bit
17 (hex) 45 5B 0F 91
Response Packet (from DS2480B)
re
sponse
PDSRC
response
W1LD
response
DSO/
W0RT
read
RBR
response
1-Wire
Bit
re
sult
16 44 5A 00 93
DS2480B NOT
Present
DS2480B
Present
5 of 26
剩余25页未读,继续阅读












weixin_44927660
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0