基于 1Wire 总线的 DS18B20 测温实验
1wire总线的基本原理:
1Wire总线整体结构与特点:
说明:
? 单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机
或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图所示。
? 单总线通常要求外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时,其状态为
高电平。
? 主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire
器件和交换数据。
? 由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire
器件都必须严格遵循单总线命令序列,即初始化、ROM命令、功能命令。
单总线芯片序列号:
? 单总线器件的基本特点就是每个器件都有一个唯一的采用激光刻制的序列号,当有
许多单总线器件连接在同一总线时,系统主机可以通过器件的序列号进行器件识别. ? 序列号
信号方式
? 所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。1-wire协议定
义了复位脉冲、应答脉冲、写0、写1、读0和读1时序等几种信号类型。
? 所有的单总线命令序列(初始化,ROM命令,功能命令)都是由这些基本的信号类
型组成的。在这些信号中,除了应答脉冲外,其它均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。
信号时序设计原理
信号时序设计原理说明
? 总线主机启动和控制所有1-Wire通信。
? 1-Wire通信波形与脉宽调制类似,因为在数据位传输期间(或时隙(Time slot))是通过
宽脉冲(逻辑0)和窄脉冲(逻辑1)发送数据的。
? 当总线主机发出一个预定宽度的“复位”脉冲时,启动通信过程,并通过该脉冲同
步整个总线系统。所有从机都会以一个逻辑低“应答”脉冲来响应复位脉冲。(初始化)
? 写数据时,主机首先拉低1-Wire总线以启动一个时隙,然后保持总线为低(宽脉冲)
来发送逻辑0,或释放总线(窄脉冲)使总线返回逻辑1状态。(写周期)
? 读数据时,主机以窄脉冲方式拉低总线,重新启动一个时隙。然后从机可以通过导
通开漏极输出并保持线路为低来延长该脉冲,从而返回逻辑0;或保持开漏极的关
闭状态以允许总线恢复,从而返回逻辑1。(读周期)
? 大多数1-Wire器件都支持两种数据速率:15kbps标准速率和111kbps高速速率。
初始化信号
? 初始化时序,初始化时序包括主机发出的复位脉冲和从机发出的应答脉冲。主机通
过拉低单总线至少480μs产生Tx复位脉冲;然后由主机释放总线,并进入Rx接收模式。
? 主机释放总线时,会产生一由低电平跳变为高电平的上升沿,单总线器件检测到该
上升沿后,延时15~60μs,接着单总线器件通过拉低总线60~240μsμ来产生应答脉冲。主机接收到从机的以应答脉冲后,说明有单总线器件在线,然后主机就可以开始对从机进行ROM命令和功能命令操作。
初始化时序图
写时序:
读时序:
命令序列
典型的单总线命令序列如下: 第一步:初始化
第二步:ROM 命令(跟随需要交换的数据) 第三步:功能命令(跟随需要交换的数据)
每次访问单总线器件必须严格遵守这个命令序列,如果出现序列混乱,则单总线器件不会响应主机。但是这个准则对于搜索ROM 命令和报警搜索命令例外。
在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。
ROM命令: