单总线协议分析

it2022-05-05  161

1-wire,即单线总线,又叫单总线。

近年来,美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)推出了一项特有的单总线(1-Wire Bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,但是和i2c不同的是从低位到高位传输。因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。

单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按多节点系统操作。设备(主机或者从机)通过一个漏极开路或三态断口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线。单总线通常要求外接一个5KΩ的上拉电阻。

DS18B20是单总线协议,结构上的简单一定会导致时序上的复杂。在时序上要求严格按照数据手册上面的要求来完成。对于每一次的写命令来说都要按照下面的步骤来执行:

所有的单总线命令序列(初始化,ROM命令,功能命令) (1)初始化:单总线上所有传输过程都需要以初始化开始 (2)ROM命令:在主机检测到从机的应答脉冲后,就可以发出ROM命令 (3)功能命令:每个单总线器件都有自己的专用指令,需要参照各自的数据手册

1.初始化

初始化过程 = 复位脉冲 + 从机应答脉冲。

主机通过拉低单总线480 ~ 960 us产生复位脉冲,然后释放总线,进入接收模式。主机释放总线时,会产生低电平跳变为高电平的上升沿,单总线器件检测到上升沿之后,延时15 ~ 60 us,单总线器件拉低总线60 ~ 240 us来产生应答脉冲。主机接收到从机的应答脉冲说明单总线器件就绪,初始化过程完成。

初始化时序图如下所示:

2.rom命令和功能命令

分为读0,1和写0,1 写0,1 写间隙有两种,包括写0的时间隙和写1的时间隙 当数据线拉低后,在15 ~ 60 us的时间窗口内对数据线进行采样。如果数据线为低电平,就是写0,如果数据线为高电平,就是写1。 主机要产生一个写1时间隙,就必须把数据线拉低,在写时间隙开始后的15 us内允许数据线拉高(即在0~15us内释放总线)。主机要产生一个写0时间隙,就必须把数据线拉低并保持60 us

读0,1

两次读操作之间主机都是先拉低信号至少1us后才能释放总线进行采样,如果读1,那就信号就会拉高一直到一个读周期结束,如果读0,则拉低总线并在该周期结束后释放总线。

ds18b20驱动编写:https://blog.csdn.net/qq_40215005/article/details/96433114


最新回复(0)