什么是单总线
扫描二维码
随时随地手机看文章
单总线(1-Wire)是DALLAS公司推出的一种单线双向串行总线,仅用一根线即可实现多个器件间的数据传输。目前,常用的单总线接口芯片有数字温度传感器DS18B20、单总线控制器DSIWM和D-A转换器DS2450等。本节将以单总线温度传感器DS18B20为例,介绍单总线接口器件的引脚功能、时序及使用方法;最后,给出AT89C52单片机扩展DS18B20的例子。
单总线的引脚功能和时序
1.单总线的引脚功能
在单总线接口扩展中,一根线DQ将所有器件连接在一起,如图6-19所示。DQ是双向传输线,可以传送时钟信号和数据。为保证总线空闲时该引脚为高电平,DQ引脚必须经过一个约5kΩ的电阻与正电源相连,如图6-20所示。另外,在图6-20中,主机是指单片机等控制器。没有专用单总线引脚的单片机可以用I/O口引脚模拟单总线引脚。
图6-19单总线接口扩展示意图
图6-20 DS18B20单总线引脚硬件结构示意图
使用单总线接口器件时要注意:
1)在单总线通信中,只能有一个主机(只有含CPU的器件可以做主机),并且从机只能被动地与主机通信。
2)单总线接口器件都具有唯一、不能更改,且与其他器件不同的64位ROM序列号,主机可以通过该序列号寻址单总线上挂接的从机。
3)单总线的数据传输顺序是“先低位,后高位”。
4)单总线接口器件采用寄生电源的供电方式时,不需要外接电源。
2.单总线的引脚时序
为保证数据传输的正确性,单总线接口器件通信过程中必须按照通信协议要求产生总线信号。单总线协议中的信号类型有以下几种,分别是复位脉冲、存在脉冲、写0信号、写1信号、读0信号和读1信号。上述信号中,除了存在脉冲,所有信号均由主机产生。这些信号的时序如图6-21所示,下面分别介绍。
图6-21 DS18B20的DQ引脚时序
(1)复位脉冲
单总线的数据传输开始于主机发出复位脉冲,这是总线初始化操作。如图6-21所示,主机(即控制器)将DQ引脚置为低电平,即将总线的电平拉低,并保持480~960μs,以产生“复位脉冲”。复位脉冲发出后,主机重新将DQ置为高电平(即释放总线)并等待15~60μs,之后检测从机是否发出了“存在脉冲”。若检测到“存在脉冲”则开始通信,否则不通信。
(2)存在脉冲
主机发出复位脉冲并释放总线时,总线上产生上升沿。从机(此处指DS18B20)检测到该上升沿后,等待15~60μs再将总线DQ引脚置为低电平,并保持60~240μs。如图6-21所示,这个持续60~240μs的低电平即是从机发出的“存在脉冲”。
(3)主机的写时隙
主机通过写“0”时隙向从机发送逻辑0,通过写“1”时隙向从机发送逻辑1。写“0”时隙和写“1”时隙都必须维持至少60μs。两次写时隙之间至少需要1μs的恢复时间。产生写“0”时隙和写“1”时隙的方法分别如下:
1)产生写“0”时隙的方法是,主机拉低总线电平,并保持60~120μs,然后释放总线(即向总线写1)。
2)产生写“1”时隙的方法是,主机拉低总线电平,并在15μs内释放总线,
写“0”时隙和写“1”时隙都以拉低总线开始,从机检测到由此产生的下降沿后,将在15~60μs内读取数据,即检测总线上的电平,低电平为0,高电平为1。
(4)主机的读时隙
主机产生读时隙后,从机才能向主机发送数据。主机产生读时隙的方法是将总线拉底,并保持至少1μs,然后释放总线。从机检测到总线上的这个上升沿信号后,将数据送到总线上、发给主机。若从机发给主机的是0,则总线上产生主机读“0”时隙,若发给的是1,则产生读“1”时隙。需要注意的是,从机的数据只能保持15μs,因此主机必须在产生读时隙后的15μs内完成读数据的操作。