One-Wire总线背景介绍
One-Wire(单总线) 是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,
它是采用一根信号线进行通信,既传输时钟信号又传输数据,而且能够进行双向通信,
具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
每个One-Wire器件内嵌唯一的地址码(ROM码),以实现主机对不同从机的寻址。主机可通过 种方式联入计算机系统。
◈常用到单总线的器件,一般是温度传感器、EEPROM、唯一序列号芯片等,如DS18B20、DS2431。
One-Wire的信号方式
One-Wire总线传输协议来确保数据的完整性。该协议定义了几个信号:复位脉冲、写0脉冲、写1脉冲、读脉冲、应答脉冲。除了应答脉冲,其他脉冲都由主机发出。One-Wire协议有两种模式,标准模式和高速模式,高速模式下时间间隙要小。
复位和应答
1、主机发送复位脉冲,至少480us。
2、主机置高释放总线,等待15-60us后等待从机应答。
3、从机应答脉冲60-240us。
写时序
1、主机产生一个下降沿产生写信号
2、15us内写入数据,15-60us从机采样
3、写和读时间间隙相同,至少60us。
读时序
1、主机数据线先从高拉至低电平1us以上,再释放数据线使其被上拉至高电平,从而产生 读信号。
2、0-15us释放总线,15-60us后主机采样
3、写和读时间间隙相同,至少60us。
程序分析--读DS18B20温度值
1、初始化
2、 0XCC跳过ROM匹配,0X44开始温度转换
3、0XCC跳过ROM匹配,0XBE读寄存器值
|