1-wire,即单线总线,又叫单总线。
近年来,美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)推出了一项特有的单总线(1-Wire Bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,但是和i2c不同的是从低位到高位传输。因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按多节点系统操作。设备(主机或者从机)通过一个漏极开路或三态断口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线。单总线通常要求外接一个5KΩ的上拉电阻。
DS18B20是单总线协议,结构上的简单一定会导致时序上的复杂。在时序上要求严格按照数据手册上面的要求来完成。对于每一次的写命令来说都要按照下面的步骤来执行:
所有的单总线命令序列(初始化,ROM命令,功能命令)
(1)初始化:单总线上所有传输过程都需要以初始化开始
(2)ROM命令:在主机检测到从机的应答脉冲后,就可以发出ROM命令
(3)功能命令:每个单总线器件都有自己的专用指令,需要参照各自的数据手册
1.初始化
初始化过程 = 复位脉冲 + 从机应答脉冲。
主机通过拉低单总线480 ~ 960 us产生复位脉冲,然后释放总线,进入接收模式。主