1-Wire总线

来源:互联网 发布:织梦pc怎么做手机网站 编辑:程序博客网 时间:2024/05/16 17:02

1-Wire总线

1-wire总线是一个具有单总线主机和一个或者多个从机的系统,一般在任何情况下单总线设备(如18B20)都是从机设备,主机一般是一颗MCU。总线可以分为4个部分:64位的网络地址、硬件配置、处理流程、1-wire信令。

64位网络地址

每个1-wire设备都带用唯一的、由工厂设置的64位的网络地址。前8位是1-wire家族码(18B20位0x28),其后48位为唯一的序列码,最后8位是前56位的CRC校验。

硬件配置

一般需要设备器件位漏极开路或者三态输出驱动连接到总线上,一般需要外接4.7K的上拉电阻,总线默认为高电平。

处理流程

处理流程一般包括以下部分:

  • 初始化协议
  • 网络地址命令
  • 功能命令
  • 1-wire信令

初始化协议

1-Wire总线的所用的传输操作都是重新初始化开始的,一般总线发起复位命令,等待从机响应。

网络地址命令

网络地址命令一般用于多从机通信,这里暂时不做介绍,一般使用跳过网络地址命令,进行和单一的设备进行数据交互。

功能命令

在执行完网络地址命令后,总线可以执行功能命令进行操作设备。
例如18B20,写入0x44命令后18B20开始进行温度的转换,写入0xBE后可以进行温度的读取操作。所有的操作都是主机发生,主机发送命令,从机响应。

1-wire信令

1-wire信令包括:复位、写0、写1、读。除在线应答外所有的信令都是由主机发起。
信令的时序分析以18B20为例。
- 复位信令
这里写图片描述
主机需拉低总线480-960us,然后释放总线15-60us,等待设备响应。
设备响应在主机释放总线后拉低总线,无设备响应在上拉的电阻作用下会是一直高电平。
- 写0&写1
这里写图片描述
一位(1bit)写操作整体时序需要60-120us,写完后需要最少1us等待时间。
写操作时从设备采样在总线拉低后15-60us进行采样,写时序需要在总线拉低后15us内设置总线是写1还是写0(高电平写1,低电平写0)。
- 读0&读1
这里写图片描述
两次之间最少需要1us的时间间隔。
读时序最少需要拉低总线1us,然后释放总线,从设备会在15-45us操作总线,主机进行采样。

0 0
原创粉丝点击