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信令包括