1.简介
单总线即one-wire总线,与SPI、I²C串行数据通信方式不同。它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的。
单总线是DALLAS公司研制开发的种协议由一个总线主节点、或多个从节点组成系统,通过根信号线对从芯片进行数据的读取。每一个符合OneWire协议的从芯片都有一个唯一的地址,包括48位的序列号、8位的家族代码和8位的CRC代码。主芯片对各个从芯片的寻址依据这64位的不同来进行。
单总线利用一根线实现双向通信。因此其协议对时序的要求较严格,如应答等时序都有明确的时间要求。基本的时序包括:复位、应答时序、写1位时序、读1位时序。在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读出或写出数据。
2.单总线原理
单总线器件内部设置有寄生供电电路。当单总线处于高电平时,一方面通过二极管向芯片供电,另方面对内部电容C(约800pF)充电;当单总线处于低电平时,二极管截止,内部电容C向芯片供电。由于电容c的容量有限,因此要求单总线能间隔地提供高电平以能不断地向内部电容C充电、维持器件的正常工作。这就是通过网络线路“窃取”电能的“寄生电源”的工作原理。要注意的是,为了确保总线上的某些器件在工作时(如温度传感器进行温度转换、E2PROM写入数据时)有足够的电流供给,除了上拉电阻之外,还需要在总线上使用MOSFET(场效应晶体管)提供强上拉供电。
单总线的数据传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s以下的速率传输数据。主设备I/O口可直接驱动200m范围内的从设备,经过扩展后可达1km范围。
2.1单总线通信信号类型
单总线通信协议定义了如下几种类型,即复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲外,所有的信号都由主机发出同步信号,并且发送的所有的命令和数据都是字节的低位在前。
(1)复位脉冲和应答脉冲
![](https://i-blog.csdnimg.cn/blog_migrate/8c157742b071bf672fbb97ad5d345128.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5d97b44699cdb0ec6286488d98bba421.png)
在写时隙开始后15us~60us期间,单总线器件采样总电平状态。如果在此期间采样值为高电平,则逻辑1被写入器件;如果为0,写入逻辑0。
(3)读时序
![](https://i-blog.csdnimg.cn/blog_migrate/c2dec16845a328aadb6913049a26cd9d.png)
2.2单总线通信的ROM命令
当主机检测到应答脉冲后,就发出ROM命令,这些命令与各个从机设备的唯一64位ROM代码相关,允许主机在单总线上连接多个从设备时,指定操作某个从设备。
主机在发出功能命今之前,必须发出ROM命令。
3.总结