用户中心

资讯 > 现场总线

1-Wire总线与DS18B20应用仿真

来源:作者:刘兴宾 来源 www.epc.com.cn2008.07.31阅读 3834

1-wire总线的基本通信协议

  作为一种单主机多从机的总线系统,在一条1-Wire总线上可挂接的从器件数量几乎不受限制。为了不引起逻辑上的冲突,所有从器件的1-Wire总线接口都是漏极开路的,因此在使用时必须对总线外加上拉电阻(一般取5kΩ左右)。主机对1-Wire总线的基本操作分为复位、读和写三种,其中所有的读写操作均为低位在前高位在后。复位、读和写是1-Wire总线通信的基础,下面通过具体程序详细介绍这3种操作的时序要求。(程序中DQ代表1-Wire总线控制工程网版权所有,定义为P1.0,uchar定义为unsigned char)


1 1-Wire总线的复位

  复位是1-Wire总线通信中最为重要的一种操作www.cechina.cn,在每次总线通信之前主机必须首先发送复位信号。如程序1.1所示,产生复位信号时主机首先将总线拉低480~960μs然后释放,由于上拉电阻的存在,此时总线变为高电平。1-Wire总线器件在接收到有效跳变的15~60μs内会将总线拉低60~240μs控制工程网版权所有,在此期间主机可以通过对DQ采样来判断是否有从器件挂接在当前总线上。函数Reset()的返回值为0表示有器件挂接在总线上CONTROL ENGINEERING China版权所有,返回值为1表示没有器件挂接在总线上。

程序1.1 总线复位

uchar Reset(void)
{
uchar tdq;
DQ=0;  //主机拉低总线
delay480μs(); //等待480μs
DQ=1; //主机释放总线
delay60μs();  //等待60μs
tdq=DQ;  //主机对总线采样
delay480μs();  //等待复位结束
return tdq;  //返回采样值
}


2 1-Wire总线的写操作

  由于只有一条I/O线,主机1-Wire总线的写操作只能逐位进行,连续写8次即可写入总线一个字节。如程序1.2所示,当MCS-51单片机的时钟频率为12MHz时CONTROL ENGINEERING China版权所有,程序中的语句_nop_();可以产生1μs的延时,调用此函数时需包含头文件“intrins.h”。向1-Wire总线写1bit至少需要60μs,同时还要保证两次连续的写操作有1μs以上的间隔。若待写位wbit为0则主机拉低总线60μs然后释放,写0操作完成。若待写位wbit为1,则主机拉低总线并在1~15μs内释放,然后等待60μs,写1操作完成。

程序1.2 向总线写1bit

void Writebit(uchar wbit)
{
 _nop_(); 
//保证两次写操作间隔1μs以上
 DQ=0;
 _nop_(); 
//保证主机拉低总线1μs以上
 if(wbit)
 {             
//向总线写1
 DQ=1;
delay60μs();
 }
 else
 {             
//向总线写0
 delay60μs();
 DQ=1;
 }
}


3 1-Wire总线的读操作

  与写操作类似,主机对1-Wire总线的读操作也只能逐位进行,连续读8次,即可读入主机一个字节。从1-Wire总线读取1bit同样至少需要60μs,同时也要保证两次连续的读操作间隔1μs以上。如程序1.3所示,从总线读数据时,主机首先拉低总线1μs以上然后释放,在释放总线后的1~15μs内主机对总线的采样值即为读取到的数据。

程序1.3 从总线读1bit


uchar Readbit()
{
 uchar tdq;
 _nop_(); 
//保证两次连续写操作间隔1μs以上
 DQ=0;
 _nop_();  
//保证拉低总线的时间不少于1μs
 DQ=1;
 _nop_();
 tdq=DQ;  
//主机对总线采样
 delay60μs();
//等待读操作结束
 return tdq; 
//返回读取到的数据
}

数字温度传感器DS18B20

1 DS18B20的基本特性

● 采用1-Wire总线接口,可以方便实现多点测温。
● 与主机连接方便,除5kΩ的总线上拉电阻外无须其他额外器件。
● 电源电压范围为3.0~5.5V,与3.3V和5V数字系统均可很好地兼容。
● 测量范围为-55~+125℃,分辨率为9~12位可

版权声明:版权归控制工程网所有,转载请注明出处!
继续阅读

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688