基于DS18B20和nRF2401的库区测温网络无线传输系统

3.1.2 读写操作

所有的读写时序至少需要60μs,在位读和位写时序中,主机要在规定的时间内读回或写出数据。

写时序时,主机在拉低总线15μs之内释放总线,并向1-wire器件写1;读时序时,主机发出读数据命令,产生读时序,1-wire器件随即向主机传输数据。

3.2 DS18B20的温度转换

DS18B20网络温度测量的步骤一般是:器件初始化、复位、ROM操作、温度转换。初始化及复位完成后,要对网络中的器件进行ROM识别,然后再读取温度数据。3.2.1 利用二叉树遍历算法进行器件识别

二叉树遍历算法是搜索识别网络中1-Wire器件的编程首选,二叉树遍历算法的要点可归纳为“读2位,写1位” 。

首先主机向从机发出搜索命令,等待从机向主机发回当前位之后,再读从机发回当前位的反码,这两个位数据的编码存在4种可能:00、01、10和11。

00表示从机在当前位上有位分叉,即0和1两个分支;

01表示从机的当前位均为0;

10表示从机的当前位均为1;

11表示总线上无器件响应。

显然,出现11时搜索应退出。

对于前3种情况,根据搜索策略,主机向从机写1位数据,决定继续搜索哪一分支。第2和第3种情况下,搜索仅有一个方向,如果是第1种情况即出现00时,需要选择下一步搜索路径,方法是比较搜索位所在位置和最后一次发生位差异的所在位置,若二者相等,搜索1分支,若前者》后者,搜索0分支,若前者[10];二是DS18B20中64位ID码标记为第1—64位,而不是0—63位,空出来的0用来表示差异位位置记录的初始状态。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查