欢迎来到天天文库
浏览记录
ID:47877108
大小:229.58 KB
页数:10页
时间:2019-11-16
《1-Wire总线的基本通信协议作为一种单主机多从机的总线系(共享)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1-Wire总线的基本通信协议作为-•种单主机多从机的总线系统,在一条1-Wire总线上可挂接的从器件数量几乎不受限制。为了不引起逻辑上的冲突,所有从器件的1-Wire总线接口都是漏极开路的,因此在使用时必须对总线外加上拉电阻(一般取5kQ左右)。主机对1-Wire总线的基木操作分为复位、读和写三种,其屮所有的读写操作均为低位在前高位在后。复位、读和写是1-Wire总线通信的基础,卜•面通过具体程序详细介绍这3种操作的时序要求。(程序中DQ代表1-Wire总线,定义为Pl.0,uchar定义为unsignedchar)11-Wire总线
2、的复位复位是1-Wire总线通信中最为重要的一种操作,在每次总线通信ZlW主机必须首先发送复位信号。如程序1・1所示,产牛复位信号时主机首先将总线拉低480〜960us然后释放,由于上拉电阻的存在,此时总线变为高电平。1-Wire总线器件在接收到有效跳变的15〜60us内会将总线拉低60〜240卩s,在此期间主机可以通过对DQ采样来判断是否有从器件挂接在当前总线上。函数Reset()的返回值为0表示有器件挂接在总线上,返回值为1表示没有器件挂接在总线上。程序1.1总线复位ucharReset(void){uchartdq;DQ二0;//
3、主机拉低总线delay480us();〃等待480usDQ二1;//主机释放总线delay60us();//等待60卩stdq=DQ;//主机对总线采样delay480us();//等待复位结束returntdq;//返回采样值}21-Wire总线的写操作由于只有一条I/O线,主机1-Wire总线的写操作只能逐位进行,连续写8次即可写入总线一个字节°如程序1.2所示,当MCS-51单片机的时钟频率为12MHz时,程序中的语句_nop_0;可以产生lus的延时,调用此函数时需包含头文件"intrins.h”。向1-Wire总线写lbit至
4、少需要60us,同时述要保证两次连续的写操作有lus以上的间隔。若待写位wbit为0则主机拉低总线60us然后释放,写0操作完成。若待写位wbit为1,则主机拉低总线并在1〜15us内释放,然后等待60us,写1操作完成。程序1.2向总线写lbitvoidWritebit(ucharwbit){_nop_();//保证两次写操作间隔1us以上DQ二0;_nop_();//保证主机拉低总线lus以上if(wbit){//向总线写1DQ二1;delay60us();}else{〃向总线写0delay60us();DQ二1;)11-Wire总
5、线的读操作与写操作类似,主机对1-Wire总线的读操作也只能逐位进行,连续读8次,即可读入主机一个字节。从1-Wire总线读取lbit同样至少需耍60us,同时也要保证两次连续的读操作间隔lus以上。如程序1.3所示,从总线读数据时,主机首先拉低总线lus以上然示禅放,在释放总线后的1〜15us内主机对总线的采样值即为读取到的数据。程序1・3从总线读lbitucharReadbit()uchartdq;_nop_0;〃保证两次连续写操作间隔1us以上DQ二0;_nop_();//保证拉低总线的时间不少于1usDQ二1;_nop_();t
6、dq二DQ;//主机对总线采样delay60us();〃等待读操作结束returntdq;//返回读取到的数据数字温度传感器DS18B201DS18B20的基本特性•采川1-Wire总线接口,可以方便实现多点测温。•与主机连接方便,除5kQ的总线上拉电阻外无须其他额外器件。•电源电压范围为3.0〜5.5V,与3.3V和5V数字系统均町很好地兼容。•测量范围为-55〜+125°C,分辨率为9〜12位对编程。•通过编程可设置温度报警上下限,设置值掉电不丢失。•内部集成了用于器件寻址的64bit光刻ROM编码。2DS18B20屮的存储器在DS
7、18B20屮共有三种存储器,分别是ROM、RAM、EEPROM,每种存储器部有其特定的功能,可查阅相关资料。31-Wire总线ROM功能命令在DS18B20内部光刻了一个长度为64bit的ROM编码,这个编码是器件的身份识别标志。当总线上挂接着多个DS18B20时町以通过ROM编码对特定器件进行操作。ROM功能命令是针对器件的ROM编码进行操作的命令,共有5个,长度均为8bit(lByte)0①读R0M(33H)当挂接在总线上的1-Wire总线器件接收到此命令时,会在主机读操作的配合下将自身的ROM编码按由低位到高位的顺序依次发送给主机
8、。总线上挂接有多个DS18B20时,此命令会使所有器件同时向主机传送门身的ROM编码,这将导致数据的冲突。①匹配ROM(55H)主机在发送完此命令示,必须紧接着发送一个64bit的ROM编码,与此ROM编码
此文档下载收益归作者所有