




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ds18b20使用 一 ds18b20介绍 温度传感器的种类众多 在应用于高精度 高可靠性的场合时DALLAS 达拉斯 公司生产的DS18B20温度传感器当仁不让 超小的体积 超低的硬件开消 抗干扰能力强 精度高 附加功能强 使得DS18B20更受欢迎 二 ds18b20实物与示例图 二 ds18b20特点 与主机相互通信 只需要一根导线 出厂时 任何一个ds18b20在其ROM中都有存储自己唯一的一个64位的serialcode Vcc接地时 可以只由信号线 获取能量 电压为3 3v 5v 温度转换范围为 55 125 67 Fto 257 F 在 10 85 之间 转换精确度为 0 5 转换分辨率 9 12位 用户可控 当转换分辨率为12位时 最大转换时间为750ms 用户可定义的 非易失性 及断电不消失 的高低警报温度设置 可选择的8 pinSO 150mil 8 pin SOP 和3 pinTO 92封装 软件协议与ds1822兼容 在温度控制 工业系统 日常消费品 等领域广泛使用 三 特点详述 Ds18b20提供了9 12位精度的温度转换功能 以及非易失性的高低温度报警 Ds18b20与主机交换信息时最少只需要一根数据线 当然地线必须接地 55 125 转换 在 10 85 之间精度为 0 5 Ds18b20可以仅由数据线获取power 因为ds18b20内部有一个寄生电容在数据线为3 3 5v时存储power 当数据线为低电平时为其供电 而不需要外接电源 任何一个ds18b20 都有仅属于自己的一个64位的识别码 这使得 可以有多个ds18b20通过一条数据线与主机相连并发挥功能 换句话说 也就是一个主机 可以通过一条数据线 同时控制多个ds18b20进行工作 可以在大范围 多地点温度采集控制中使用 四 ds18b20内部构造综述 Ds18b20内部构造框架图为 64位ROM存储了ds18b20的唯一的序列码 高速暂存寄存器包含了2byte的温度存储器 用来存储ds18b20温度转换得到的数据 非易失性的警报触发存储器 用来存储高低警报温度T high与T low configurationregister 用户对其操作 可以控制ds18b20的转换精度 Ds18b20存在一个内部电容Cpp 起到寄生电源的作用 这使得 ds18b20的Vdd接地时 依然可以通过数据线 获取power 当DQ为高电平时 Cpp充电 当DQ为低电平时 Cpp放电 为ds18b20提供能量 五 温度寄存器 Ds18b20内部有一个2byte的高速暂存寄存器 用来存储ds18b20转换得到的温度数据 温度寄存器格式如图 其中高位字节中的bit11 bit15这五位用来表示温度的正负 即s 0时 表示温度为正值 S 1时 表示温度为负值 Ds18b20有用户可控的9 12位转换精度 当转换精度为12位时 如图 由bit0 bit11存储 符号也算一位 转换精度为11位时 bit0不再使用 转换精度为10位时 bit0 bit1不再使用 转换精度为9位时 bit0 bit2不再使用 12位转换精度时的存储示例图 12位转换精度时 即最小分辨率为0 0625负数存储时采用补码方式 这里有一点需要主要的是 Ds18b20温度存储器是高速暂存 也就是说 ds18b20掉电时 这个数据将会丢失 Ds18b20上电复位时 温度存储器中内容 默认为 85 所以 使用ds18b20时 如果在温度显示之前 没有来的及进行一次转换完成 那么就会看到一个85 的短暂显示 六 警报信号 每当ds18b20完成一次温度转换后 都会将得到的数据与两个警报存储器中的数据进行比较 与TH 或TL 中的bit7 bit0 相对应的是温度存储器中的bit11 bit4 两者进行比较 当温度 TH或 TL时 处于ds18b20内部中的警报标志将会置位 每一次温度转换后 ds18b20中的警报标志位都会刷新 所以如果警报状况消失后 在接下来的一次温度转换中 这个标志位将清零 主机可以通过 ECh 命令来查看警报标志位情况 具体祥看datasheet 七 ds18b20供电 分为两种 Vdd接外部电源供电 Vdd与GND连接置地 由内部寄生电源供电 两种情况电路图 使用寄生电源时 具体注意事项 看datasheet第5页 八 配置寄存器 用来控制ds18b20的转换精度 九 信息控制交互顺序 Step1 InitializationStep2 ROMCommand followedbyanyrequireddataexchange Step3 DS18B20FunctionCommand followedbyanyrequireddataexchange 操作时遵从这个顺序十分重要 因为这个顺序中任何一个步骤丢失或者不按规定执行 ds18b20将不会进行响应 可以不按这个顺序进行的命令只有searchrom F0H 以及AlarmSearch ECh commands 因为在以上两个命令进行后 必须紧随着进行的是step1 即初始化命令 十 初始化 所有对ds18b20的处理都是由初始化开始的 初始化过程 包含主机的reset脉冲传递 resetpulsetransmitted 和一个紧随其后的 ds18b20的存在脉冲传递 presencepulse s transmitted 存在脉冲 使得主机知道 在数据线上 存在着ds18b20准备好了接受操作命令 首先 主机将数据线 拉低 480us以上 然后释放数据线 即使其变为高电平 15 60us等待后 ds18b20将数据线拉低60 240us作为应答 然后释放数据线 等待与应对整个过程应该 480us以上 整个初始化完成 初始化时序 所对应的程序 voiddsinit uinti ds 0 i 60 while i 0 i 延时523us datasheet要求 480us ds 1 i 4 while i 0 i ds18b20wait函数voiddswait uinti while ds 这行无用 反而容易出现错误 可注释掉while ds 检测到应答脉冲i 60 while i 0 i 延时 因为ds18b20会拉低dq约240us 切RX时间不小于480us 十一 ROMcmd ROMCMD作为step2 是主机对ds18b20的64序列码的操作 保证在数据线上有一个以上ds18b20时 能找到选定其中的一个 这些命令也可以使主机检测有多少或什么样的device在数据线上 以及是否有device处于了警报状态 主机必须确保在进行ds18b20功能命令前 先进行一个romcmd 所有的romcmdSEARCHROM F0h READROM 33h MATCHROM 55h SKIPROM CCh ALARMSEARCH ECh 具体各命令作用祥看datasheet 因为这里 我们只外接一个ds18b20 不需要进行64位序列码确认 也没有警报功能 所以 只需要进行skipROM cch 命令即可 程序中该语句为writebyte 0 xcc skipromcmd 十二 ds18b20功能命令 这些命令可以使主机对ds18b20的高速暂存寄存器中某些寄存器进行读写 开启一次温度转换以及检测电源供应方式 所有的功能命令 CONVERTT 44h 温度转换命令WRITESCRATCHPAD 4Eh READSCRATCHPAD BEh COPYSCRATCHPAD 48h RECALLE2 B8h READPOWERSUPPLY B4h 这里 我们只需要启动温度转换和读取结果两个命令 程序中 writebyte 0 x44 convertTcmdwritebyte 0 xbe readscratchpadcmd 程序 启动一次温度转换的完整程序 向ds18b20发送温度转换指令voidsendchangecmd dsinit 初始化ds18b20dswait 等待da18b20回应writebyte 0 xcc skipromcmdwritebyte 0 x44 convertTcmd 读取温度结果的命令顺序 向ds18b20读取数据命令voidsendreadcmd dsinit dswait writebyte 0 xcc skipromcmdwritebyte 0 xbe readscratchpadcmd 其他操作顺序 可以详看datasheet 图11 讲解很详细 我们这里只是最简单的应用 十三 writetimeslot 主机在writetimeslot时对ds18b20进行写操作 很显然 write有两种情况 Write1andwrite0 无论是write1orwrite0 writeslot最少持续60us 而且 两次write之间 间隔必须大于1us 作为recovertime Write1 首先 主机将数据线拉低 并在15us之内释放数据线 当释放数据先后 主机将数据线拉高保持45us Write0 很简单 只需要主机 将数据线拉低 并保存60us以上即可 程序 voidwritebyte uchardat uinti ucharj bitb for j 0 j 1 if b 写 1 将ds拉低15us后 在15us 60us内将ds拉高 即完成写1 ds 0 i i 拉低约6us 符合0 i 延时约64us 与前6us相加 60us else 写 0 将ds拉低60us 120us ds 0 i 8 while i 0 i 延时约72usds 1 i i 整个写 0 过程已经超过60us 这里就不需要延时太长了 这里要注意一下b dat这使得b依次取到dat的八位 有低位到高位 这是因为 ds18b20读写时 均采取由低位到高位的顺序 十四 readtimeslots 只有主机开始readtimeslot时 ds18b20才能向主机传送信息 Therefore themastermustgeneratereadtimeslotsimmediatelyafterissuingaReadScratchpad BEh orReadPowerSupply B4h command sothattheDS18B20canprovidetherequesteddata 与write一样 readtimeslots最少需要持续60us以上 而且两次read之间最少需要1us的间隔即recovertime 一个readtimeslot是由主机拉低数据位开始的 主机拉低数据位最少需要1us 即 1us Ds18b20传输出来的数据 在主机拉低数据线后15us时有效 所以 主机必须在拉低数据线后15us以内释放数据线 并在即将到15us时 对数据线上的值进行采集 看15 16图 也就是说 主机采集数据线上数据时 最好尽量靠近15us末尾时 程序 bitreadbit uinti bitb ds 0 i 延时约8us符合至少1usds 1 i i 延时6us符合在15us内取样b ds i 8 while i 0 i 延时约64us符合读时隙不小于60usreturnb 在readbit基础上得到readbyte的程序 ucharreadbyte uinti ucharj dat dat 0 for i 0 i 1 returndat 注意j readbit 最先读出的为低位dat j 1 通过移位和或操作 将得到的bit 按照先低位后高位的顺序组成一个byte 附录 程序 ds18b20init函数voiddsinit uinti ds 0 i 60 while i 0 i 延时523us datasheet要求 480us ds 1 i 4 while i 0 i ds18b20wait函数voiddswait uinti while ds while ds 检测到应答脉冲i 60 while i 0 i 延时 因为ds18b20会拉低dq约240us 切RX时间不小于480us 向DS18B20读取一位数bitreadbit uinti bitb ds 0 i 延时约8us符合至少1usds 1 i i 延时6us符合在15us内取样b ds i 8 while i 0 i 延时约64us符合读时隙不小于60usreturnb 向ds18b20读取一个字节 使用readbit ucharreadbyte uinti ucharj dat dat 0 for i 0 i 1 returndat 向ds18b20写一字节数据voidwritebyte uchardat uinti ucharj bitb for j 0 j 1 if b 写 1 将ds拉低15us后 在15us 60us内将ds拉高 即完成写1 ds 0 i i 拉低约6us 符合0 i 延时约64us 与前6us相加 60us else 写 0 将ds拉低60us 120us ds 0 i 8 while i 0 i 延时约72usds 1 i i 整个写 0 过程已经超过60us 这里就不需要延时太长了 向ds18b20发送温度转换指令voidsendchangecmd dsinit 初始化ds18b20dswait 等待da18b20回应writebyte 0 xcc skipromcmdwritebyte 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借款购房协议书模板模板
- 仓库带展厅出租合同范本
- 产权出租代理人合同范本
- 债务抵押担保协议书范本
- 住宅水电清包工合同范本
- 务农打工合同协议书模板
- 合伙人协议股份合同范本
- 伐木工红酒售卖合同范本
- 原木定制代加工合同范本
- 借调合同书人事调度协议
- 精神康复与躯体管理训练体系
- 移动式压力容器安全技术监察规程(TSG R0005-2011)
- 隧道运营养护管理手册上册
- 《废旧锂电池的回收与再利用》课件
- 汽车制造工艺技术课件:汽车总装生产工艺流程及检测工艺
- 硬笔书法训练行业深度调研及发展战略咨询报告
- 人教版小学三年级下册数学期末检测试题(含答案)共5套
- 2024年中国心力衰竭诊断与治疗指南更新要点解读
- 医院医保智能审核与规则解释
- 中国三氯吡氧乙酸原药市场现状规模与投资前景方向预测报告2025-2031年
- JJF(新) 146-2024 可燃气体和有毒气体检测报警控制系统校准规范
评论
0/150
提交评论