单总线技术的原理
顾名思义,单总线只有一根数据线系统中的数据交换、控制都在这根线上完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,这样允许设备不发送数据时释放总线,以便其他设备使用总线,其内部等效电路如图2所示。
单总线要求外接一个约4.7Ω的上拉电阻,这样当总线闲置时,状态为高电平。主机和从机之间的通信通过以下三个步骤完成:初始化1-wire器件,识别1-wire器件,交换数据。由于二者是主从结构,只有主机呼叫从机时,从机才能答应,因此主机访问1-wire器件都必须严格遵循单总线命令序列:初始化、ROM命令、功能命令。如果出现序列混乱,1-wire器件不会响应主机(搜索ROM命令,报警搜索命令除外)。
单总线的硬件结构
顾名思义,单总线只有一根数据线。设备(主机或从机)通过一个漏极开路或三态端口连接至该数据线,这样允许设备在不发送数据时释放数据总线,以便总线被其它设备所使用。单总线端口为漏极开路,其内部等效电路如图,1所示单总线要求外接一个约5k的上拉电阻,这样,单总线的闲置状态为高电平不管什么原因,如果传输过程需要暂时挂起,且要求传输过程还能够继续的话,则总线必须处于空闲状态,位传输之间的恢复时间没有限制,只要总线在恢复期间处于空闲状态高电平。如果总线保持低电平超过,480s总线上的所有器件将复位,另外,在寄生方式供电时,为了保证单总线器件在某些工作状态下(如温度转换期间、EEPROM写入等)具有足够的电源电流,必须在总线上提供强上拉,如图1所示的MOSFET
单总线技术的作用
单总线适用于单个主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,如图1所示,
他们之间的数据交换只通过一条数据线。当只有一个从机设备时系统可按单节点系统操作;当有多个从机设备时,则系统按多节点系统操作。
单总线技术的信号方式
所有单总线器件要求遵循严格的通信协议,以保证数据的完整性。1-wire协议定义了几种信号类型:复位脉冲、答应脉冲、写0、写1、读0和读1时序。所有的单总线命令序列(初始化、ROM命令、功能命令)都是由这些基本的信号类型组成。这些信号,除了应答脉冲外都是由主机发出同步信号,并且发出的所有命令和数据都是字节的低位在前。初始化时序包括主机发送的复位脉冲和从机发出的应答脉冲主机通过拉低单总线至少480us,以产生TX复位脉冲:然后主机释放总线,并进入RX接收模式,当主机释放总线时,总线由低电平跳变为高电平时产生一上升沿,单总线器件检测到这上升沿后,延时15~60us,接着单总线器件通过拉低总线60~240us,以产生应答脉冲。主机接收到从机应答脉冲后,说明有单总线器件在线,然后主机就开始对从机进行ROM命令和功能命令操作。
写1、写0和读时序。在每一个时序中,总线只能传输一位数据。所有的读写时序至少需要60us,且每两个独立的时序之间至少需要1us的恢复时间。读写时序均起始于主机拉低总线。在写时序中,主机拉低总线后保持至少60us的低电平则向单总线器件写0。单总线器件又在主机发发出读时序时才向主机传送数据,所以当主机向单总线器件发出数据命令后,必须马上产生读时序,以便单总线能传输数据。在主机发出读时序之后,单总线器件才开始在总线上发送0或1,若单总线器件发送1,则保持总线高电平,若发送0,则拉低总线。单总线器件发送之后,保持有效时间,因而,主机在读时序期间必须释放总线,并且必须在15us之中采样总线状态,从而接收到从机发送的数据。