单总线是
美国DALLAS公司推出的外围串行扩展总线技术。与
SPI、
I2C串行数据通信方式不同.它采用单根
信号线,既传输
时钟又传输数据,而且
数据传输是双向的,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
单总线器件内部设置有寄生供电电路(Parasite Power Circuit)。当单总线处于高电平时,一方面通过二极管VD向芯片供电,另方面对内部电容C(约800pF)充电;当单总线处于低电平时,二极管截止,内部电容c向芯片供电。由于电容c的容量有限,因此要求单总线能间隔地提供高电平以能不断地向内部电容C充电、维持器件的正常工作。这就是通过网络线路“窃取”电能的“
寄生电源”的工作原理。要注意的是,为了确保总线上的某些器件在工作时(如
温度传感器进行温度转换、E2PROM写入数据时)有足够的电流供给,除了上拉电阻之外,还需要在总线上使用MOSFET(
场效应晶体管)提供强上拉供电。
单总线的数据传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s以下的速率传输数据。主设备I/O口可直接驱动200m范围内的从设备,经过扩展后可达1km范围。
单总线主机或从机设备通过一个漏极开路或三态端口连接至该数据线,这样允许设备在不发送数据时释放数据总线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线,其内部等效电路。
单总线要求外接一个约5 k的
上拉电阻.这样,当单总线在闲置时,状态为
高电平。如果传输过程需要暂时挂起,且要求传输过程还能够继续,则总线必须处于空闲状态。
传输之间的恢复时间没有限制,只要总线在恢复期间处于空闲状态(高电平)。如果总线保持
低电平超过480 us,总线上的所有器件将
复位。另外,在寄生方式供电时,为了保证单总线器件在某些工作状态下(如:温度转换器件、EEPROM写入等)具有足够的电源电流,必须在总线上提供强上拉。
1一wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种信号类型。所有的单总线命令序列(初始化ROM命令,功能命令)都是由这些基本的信号类型组成。在这些信号中,除了应答脉冲外,其他均由主机发出同步信号、命令和数据,都是
字节的低位在前。典型的单总线命令序列如下:
每次访问单总线器件.都必须遵守这个命令序列.如果序列出现混乱,则单总线器件不会响应主机。但是这个准则对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令后,主机不能执行其他功能命令,必须返回至第一步。
当主机检测到应答脉冲后,就发出ROM命令,这些命令与各个从机设备的唯一64位ROM代码相关,允许主机在单总线上连接多个从设备时,指定操作某个从设备。使得主机可以操作某个从机设备。这些命令能使主机检测到总线上有多少个从机设备以及设备类型,或者有没有设备处于报警状态。从机设备支持5种ROM命令,每种命令长度为8位。丰机在发出功能命今之前.必须发出ROM命今.