专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

精确把握DS18B20读写时序延长连接距离

作者:huqin   来源:本站原创   点击数:  更新时间:2014年03月12日   【字体:

   单线智能温度传感器DS18B20无需外部电路和其他变换电路就可以直接输出被测温度,测温范围宽、精度高、转换时间快并可适配各种单片机或系统机等众多优点,在各种领域已得到了广泛的应用。我公司采用DS18B20温度传感器制作四路温度巡检控制的温控仪。在对温控仪进行各种环境适应验证试验中发现一个问题:DS18B20传感器采用10m长连接线时工作不正常,而采用3m长连接线时工作正常。DS18B20传感器的连接线缆长度一般可达到50~100m,当采用双绞线芯的屏蔽电缆时,其最大长度可达150m。图1为温控仪传感器连接部分电路图,传感器采用单独供电,接在P1口上。

 



  后经对DS18B20传感器的读写子程序分析及对传感器读写时序波形分析得出的结论,是因为读写子程序对DS18B20传感器的读写的时序把握不够准确造成的。下面就DS18B20传感器的读写的时序把握度进行分析,希望能对初步接触该传感器的人员有所帮助。  
 DSl8B20传感器对读写时序的要求
首先对DS18B20传感器的读写时序的要求进行分析和了解。按D S 1 8 B 2 0 器件手册介绍, 对DSl8B20写数据时,主机产生读时间片。当主机把I/O数据总线从逻辑高电平拉至逻辑低电平时,低电平持续时间最少1μs,就产生写时间片。在变为低电平15μs之后,DSl8B20在15~45μs之间对线采样,如果线为高电平,写1就发生,如果线为低电平,便发生写0。时间片必须有最短为60μs的持续期,各写周期之间必须有最短为1μs的恢复时间。图2为DS18B20生产厂家提供的读写时序图。 
  从DSl8B20读数据时,主机产生读时间片。当主机把数据线从逻辑高电平拉至低电平时,产生读时间片。低电平持续时间至少1μs;来自DS18B20 的输出数据在读时间片下降沿之后15μs有效,因此,在产生读时间片15μs后主机必须停止把I/O线驱动至低电平,由上拉电阻拉回至高电平,主机在15μs末期对数据线采样,如果线为高电平,就读为1,如果线为低电平,便读为0。读时间片的最短持续期限为60μs,各读时间片之间必须有最短为1μs的恢复时间。     在处理高低电平跳变时,还有必要了解DS18B20传感器直流参数特性。其特性为:I/O口检测低电平范围为-0.3~0.8V,高电平范围为2.2~5.5V,同单片机的I/O口检测低电平范围为-0.5V~0.2Vcc-0.1 V和高电平范围为0.2Vcc+0.9V~Vcc+0.5V基本上相同。  
数据连接线缆对读写数据波形的影响
针对微秒级数据脉冲信号,对于较长的数据线缆,不应仅看作纯阻性线缆,应充分考虑线缆中存在的分布电容对数据脉冲信号在跳变时造成延时和变形的影响。其等效电路原理见图3。一般线芯的内阻远小于上拉电阻,决定延时量的是上拉电阻与分布电容乘积。在上拉电阻一定的情况下,线缆越长,其分布电容越大,对数据脉冲信号影响也就越大。电缆的材料、结构、工艺等不同,其存在的分布电容指标亦不同,良好的同轴线缆分布电容一般在60 pF/m以下,而扁平排线相邻线芯间的分布电容在300pF/m左右。  
  用记忆示波器在连接10m长RVV3×0.5mm2型线缆的传感器上观察到的数字波形见图4(上拉电阻为5kΩ)。从图4中可看出,在t 1时刻主机将数据线拉低,在t 2时刻才能被DS18B20识别为低电平,延迟了3μs。在t 3时刻主机释放数据线,在上拉电阻的作用下,在t 4时刻才上升为被DS18B20识别的高电平,延迟了3μs。从t 2到t 4时刻,对DS18B20来说,是近19μs低电平。因此,在采用较长线缆时,如对传感器读写时刻把握不准确的话,会因使对读写的数据信号产生时延变形而不符合DS18B20对读写时序的要求,使对其读写操作失败。在选用较长数据线缆时,还应考虑抗干扰的问题,因此建议尽量采用双绞线或带屏蔽的双绞线作传感器的数据线缆。



 
 

    
换位理解DSl8B20传感器对读写时序的要求

图2是对DS18B20传感器读写时序在主机处的波形图,如果是在DS18B20处的话,其波形图应如图5所示。考虑实际长短数据线的影响,对读写时序的要求理解为:对DSl8B20 写数据时,主机产生读时间片。当主机把I/O数据线在7μs时间内从高逻辑电平拉至低逻辑电平时,维持时间最少1μs就产生写时间片。如写入0,则应维持低电平45~60μs以上,如写入1,应在第8μs后释放数据线,在7μs 时间内拉到为逻辑高电压, 并维持45~60μs以上。写时间片必须有最短为60μs的持续期,在各写周期之间必须有最短为1μs的恢复时间。从DS18B20 读数据时,主机产生读时间片。主机在7μs时间内把数据线从逻辑高电平拉至低电平,产生读时间片。数据线必须保持在逻辑低电平至少1μs;来自DS18B20的输出数据在读时间片下降沿之后15μs有效。因此,在产生读时间片8μs后主机必应把I/O 数据线释放,由上拉电阻将数据线拉回至逻辑高电平,主机在15μs末期对数据线采样,如果线为高电平,就读为1,如果线为低电平,便读为0。读时间片的最短持续期限为60μs,各个读时间片之间必须有最短为1μs的恢复时间。在考虑到线缆对波形的延迟和DS18B20传感器发送数据表现的典型时间,在实际操作中,建议将主机对数据线的采样滞后5~9μs,可提高正确读取DS18B20的可靠性。 
 



对DS18B20的读写程序探讨
经过上面的分析和了解后,参见图1,对接在P1.0口上的DS18B20传感器读写子程序进行修改,分别见“写子程序”和“读子程序”。将修改后的对DS18B20传感器读写子程序移入主程序并写入89C51单片机,对用RVV3×0.5mm2型线缆为传感器连线,用1~50m传感器连线,在高、低温环境条件下进行了试验验证,温控仪工作正常,稳定可靠。题图为我公司温控仪的照片。

 

关闭窗口

相关文章