单总线1-Wire介绍
1-Wire,即大家说的单总线。
单总线是美国DALLAS公司推出的外围串行扩展总线技术。与SPI、I²C串行数据通信方式不同。它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
1-Wire原理
顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。
设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如下图所示:
单总线通常要求外接一个约为4.7kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。
主机和从机之间的通信主要通过3个步骤完成,分别为:初始化1-wire器件、识别1-wire器件和交换数据。
由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索ROM命令,报警搜索命令除外)。
1-Wire时序描述
所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。
1-wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种信号类型。
所有的单总线命令序列(初始化,ROM命令,功能命令)都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外,其它均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。
1-Wire应用
单总线应用在很多领域,比如:单总线IC器件、存储器、温湿度传感器、逻辑器件、时钟芯片等。
学过单片机的同学,应该都用过DS18B20这个经典的温度传感器,单片机与它的连接(通信)就是通过单总线(1-Wire)实现的。
DS18B20电路图:
DS18B20单总线应用:
除了这个经典的DS18B20之外,其实我们接触的很多器件,也是支持单总线通信的。