微控器等),一线总线器件在采用这种工作方式时就充当着从设备的作用。由于只有一根线,并且没有译码功能,所以这些器件是一线总线系统唯一的从设备,所有的数据和命令都在这根总线上传送,数据和命令字节传送顺序是从低位到高位。
为了使其它的设备也能使用这根线,一线总线协议通过一个三态门转换传输状态,使得每一个设备在不传送数据时空出该数据线给其它设备。因为一线总线在外部有一个上拉电阻,所以在总线空闲时是高电平。为保证信号的完整性,一线总线协议定义了以下几种信号:复位脉冲、存在脉冲、读写0或1。除存在脉冲外,其它的信号均由主设备发出。
如上图所示,RX和TX分别是内部数据的发送和接收端,外界的环境量变化引起敏感膜的变化,产生的电信号被编码成数字量,存储在专用寄存器当中,经由DQ端读入到单片机当中。
主设备给低电平并保持480 u s就空出总线并进入接收模式RX。此时上拉电阻器使总线为高电平,即空闲状态。一旦一线总线器件检测到这一上升沿,就会等待15~60us,并给出存在脉冲使总线保持60~240u s的低电平。而写操作均在读、写时隙之间进行,在每个时隙中,系统只传送一个二进制位。
1-Wire协议定义的几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1时序,组成了所有总线上传输的信号。也就是说,所有的一线总线命令序列(初始化、ROM命令、功能命令)都是由这些基本的信号类型组成的。这些信号,除了应答脉冲外,都是由主机发出,并且发送的所有命令和数据都是字节的低位在前。另外,初始化时序同时包括主机发出的复位脉冲和从机发出的应答脉冲。主机通过拉低一线总线至少480 u s,以产生TX复位脉冲;然后主机释放总线,并进入RX接收模式。当主机释放总线时,总线由低电平跳变为高电平时产生一个上升沿,一线总线器件检测到这上升沿后,延时15~60 u s,接着一线总线器件通过拉低总线60~240 u s,以产生应答脉冲。主机接收到从机应答脉冲后,说明有一线总线器件在线,然后主机就可以开始对从机进行ROM命令和功能命令操作。
综上所述,在一线总线上进行数据传输时,一线总线器件和主机之间必须遵循严格的读时序和写1、写0时序。在每一个时序中,总线只能传输一位数据。所有的读、写时序至少需要60 u s,且每两个独立的时序之间至少需要1 u s的恢复时间。读、写时序均起始于主机拉低总线。在写时序中,主机拉低总线后,在15 u s之内释放总线,向一线总线器件写1;若主机拉低总线后,保持至少60 u s的低电平,则向一线总线器件写0。一线总线器件仅在主机发出读时序时才向主机传输数据,所以,当主机向一线总线器件发出读数据命令后,必须马上产生读时序,以便一线总线器件能传输数据。在主机发出读时序之后,一线总线器件才开始在总线上发送0或1,若一线总线器件发送1,则保持总线高电平,若发送0,则拉低总线。一线总线器件发送数据之后,保持有效时间15 u s,因而,主机在读时序期间必须释放总线,并且必须在15 u s之内采样,从而接收到从机发送的一位数据。