![](https://csdnimg.cn/release/download_crawler_static/88023130/bgd.jpg)
采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问。
由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的
时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该
协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作
为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动
写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完
成数据接收。数据和命令的传输都是低位在先。
DS18B20 的复位时序如图 3.3 所示:
图3.3 DS18B20 的复位时序
DS18B20 的读时序分为读 0 时序和读 1 时序两个过程,如图 3.4 所示。
对于 DS18B20 的读时序是从主机把单总线拉低之后,在 15 微秒之内就得释放单
总线,以让 DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程,至
少需要 60us 才能完成。
图3.4 DS18B20 的读时序
DS18B20 的写时序分为写 0 时序和写 1 时序两个过程,如图 3.5 所示。
对于 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被
拉低至少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 I/O 总线上