毕业设计--基于数字温度传感器的粮库温度监测系统内容摘要:

PER_C),就可以得到小数位的温度值勤。 2 步得到的整数温度值勤和第 3 步得到的小数温度值相加,然后减去 1/2LSB( 0。 25℃)的量化偏移,就得到高分辨率的实际温度值。 应用公式为: TEMPRATURE=+(COUNT_PER_CCOUNT_REMIAN)/COUNT_PER_C 注: COUNT_PER_C 和 COUNT_REMIAN 可以用读高速暂存器命令读出。 表 31 给出了直接读取温度( ℃分辨率)和计算出的高分辨率温度值的关系。 表 31 直读温度与高 分辨率温度值对比表 直接读取温度值 COUNT_PER_C COUNT_REMAIN 高精度温度值 78 2 25 81 51 86 6 88 24 62 94 66 的内部结构 DS1820 主要由三部分组成: 64 位光刻 ROM、温度传感器和非挥发的温度报警触发器TH 和 TL,如图 33 所示。 64位ROM和一线端口存储器和控制逻辑高速暂存存储器温度传感器TH高温触 发器TL低温触 发器8位CRC生成器供电方式感知内部电源DQVDD 图 33 DS1820 结构图 哈尔滨理工大学远东学院毕业论文 13 光刻 ROM 中的 64 位序号是出厂前被唯一光刻好的,它可以被看作是该 DS1820 的地址序列码。 64 位光刻 ROM 的排列是:开始 8 位( 10H)的产品类型标号,接着的 48 位是该 DS1820 自身的序列号,最后 8 位是前面 56 位的 CRC(循环冗余校验码)。 光刻 ROM的作用是使每一个 DS1820 都各不相同,这样就可以实现一根总线上挂接多个 DS1820 的目的。 高速暂存器是一个 8 字节的存储器,开始两个字节包含测量温度的信息,第 4字节是 TH、 TL的临时拷贝,每一次上电复位时被刷新。 另外两个字节未用,但一旦读回数据,它们立刻表 现为全逻辑 1。 第 8 两个字节是计数器寄存器,它们是被用来产生较高的分辨率的,前面已经介绍过。 最后值得注意的是缓存的第 9 个字节,他可以用一个“读高速暂存存储器”命令读出。 该字节包含一个循环冗余校验码,它是前面所有 8 个字节的CRC。 CRC 可被用来进行通信的差错校验。 温度报警触发器 TH 和 TL 均由一个字节的EEPROM 组成,使用一个存储器功能命令可对 TH 和 TL写入,而对它们的读出则需要通过高速暂存存储器进行。 所有数据的读写均由最低位开始。 TH 和 TL 分别存储着温度报警的高温阀值和低温阀值。 这两个字节常和 DS1820 提供的报警搜索功能联合使用。 总线控制器发一个报警搜索命令可以读出温度报警点 DS1820 的 ROM 号。 这样可以在现场而不通过上位 PC 检测到温度报警并且作反应。 高速暂存存储器和 EEPROM 的结构及关系如图34 所示。 THTL低 8 位温度值高 8 位温度值TH 装入值TL 装入值保留保留计数器 A 的值( COU NT _ REMAIN )斜率累加器的值( COU NT _ PER _ C )CRC高速暂存器021435678EEPROM字节 图 34 高速暂存器和 EEPROM 图 34 中高速暂存器阴影处的两个字节可以由用户通过写高速暂存器命令写入。 DS1820 中是以 ℃ /LSB 形式表达,用 16 位符号扩展的二进制补码读数形式提供的,哈尔滨理工大学远东学院毕业论文 14 表 32 给出温度与数据的关系: 表 32 DS1820 温度与数据的关系 温度 数据输出 125℃ 00000000 11111010 25℃ 00000000 00110010 1/2℃ 00000000 00000001 1/2℃ 11111111 11111111 25℃ 11111111 11001110 因高 8 位是扩展符号位,常取 9 位数字,若第 9 位是 0,表示正温度,低 8 位数据量转换成十进制除以 2 即得到实际温度。 DS1820 的一线协议 DS1820 与 MicroLAN 总线是完全兼容的。 总线协议由若干命令组合而成。 DS1820 提供了 3 类命令,分虽是 ROM 命令、可写存储器命令和温度转换命令。 命令 由于有众多 DS1820 挂接在 1Wire 网络上,所以在 ROM 功能建立之前,其他功能都无法实现。 ROM功能相当于网络寻址。 BM必须首先提供 5 个 ROM命令之一: 1)计 ROM。 2)配接 ROM。 3)搜索 ROM。 4)跳过 ROM。 5)报警 ROM 搜索。 执行读 ROM 命令(命令字 33H)要求总线上只挂接一个 DS1820。 这个命令的功能是读出总线上 DS1820 的光刻 ROM 号。 ROM 号就 这个 DS1820 的“姓名”,当有多个 DS1820以及其他 1Wire 器件挂接在 MicroLAN 上,以 ROM 号作为网络上节点的地址。 与计算机网络不同的是, DS1820 的 ROM 号不能更改。 所以我们必须要先读出 DS1820 的 ROM 号也即知道了它的网络节点地址后才能把它挂接在总线上。 配接 ROM 命令(命令字 55H)就是寻址命令。 总线控制器在发出这个命令后,紧接着发出目标 DS1820 的 ROM 号。 这个过程建立了总线控制器和地址相符的 DS1820 之前的点对点的通信联系,而其他 DS1820 对此后的命令不予理睬。 搜索 ROM 命令(命令字 F0H)和读出 ROM 命令都是用来读 出总线上 DS1820 的光刻ROM 号的,两者不同之处在于总线控制器在执行搜索 ROM 命令时不要求总线上只挂接一个 DS1820。 搜索 ROM 命令可以搜索出所有挂接在总线上的 1Wire 器件的 ROM 号。 跳过 ROM 命令(命令字 CCH)建立一点( BM)对多点( DS1820)的通信。 当需要总线上所有的 1Wire 器件都对 BM响应时使用这个命令。 例如呆以发出跳过 ROM命令后,接着发出转换温度命令,这样总线上所有 DS1820 都会在收到命令后转换温度成数字值并存储到高速暂存存储器中。 报警 ROM 搜索命令(命令字 ECH)可以读出 温度报警点 DS1820 的 ROM 号。 我们由此可以判断是否有报警以及报警点的网络节点地址。 哈尔滨理工大学远东学院毕业论文 15 温度转换类命令 温度转换类只有一个命令 — 启动温度转换命令(命令字 44H) DS1820 在收到这个命令后开始转换温度到数值,存储到高速暂存器里。 转换温度的典型时间约为 200ms。 可写存储器命令 可写存储器命令类包含所有和可写存储器操作有关的命令。 DS1820 包含高速暂存器( RAM)和 EEPROM 两种可写存储器,前面已做这介绍。 以下分别介绍读高速暂存器命令、写高速暂存器命令、拷贝高速暂存器命令和调用 EEPROM 命令等。 读高速暂存器命令(命令字 BEH)读出包括 CRC 校验码在内的 9 个字节的高速斩存器的内容。 这个命令常用来读出温度值并进行 CRC 校验。 写高速暂存器命令(命令字 4EH)写两个字节到高速暂存器里,而且只能写入到 TH和 TL 的临时装入字段。 这个命令必须和拷贝高速暂存器命令联合使用。 EEPROM 不能同用户直接写入,但是可以先写入报警阀值到高速暂存器,然后再从高速暂存器拷贝到EEPROM 里。 两个命令连用就可以设置报警阀值了。 拷贝高速斩存器命令(命令字 48H)拷贝 TH、 TL 两个临时装入字段的值以 EEPROM里。 这在前面已经做了介绍。 调用 EEPROM 命令(命令字 B8H)是拷贝高速暂存器命令的反过程。 它把 EEPROM里的值拷贝到高速暂存器里。 这个操作在每次上电复位时都会自动执行。 可见读高速暂存器命令和温度采集密切相关,而其他 3 个命令都与报警搜索有关。 协议流程 前面已经讲过 MicroLAN 总线用统一协议来保证通信的可靠性。 由总线控制器发起并控制通信。 总线控制器首先复位总线,过程是总线控制器将总线拉到低电平并保持到少480181。 s之扣释放总线,然后搜寻线上挂接的 1Wire 器件发出的响应脉冲。 如果搜索到响 应脉冲,总线控制器接着对要寻址打器件发出对应的地址、命令并传递需要的数据。 DS1820 的协议规定 3类命令按照特定的顺序组合,完成特定的功能。 一线工作协议流程式是:初始化(复位总线)→ ROM 操作指令(寻址)→(启动温度转换命令)→可写存储器操作指令→数据传送。 具体到每一类命令中,每一条指令完成不同的功能,可以灵活选择。 举一个读取温度的程序片段作为例子,总线控制器协议流程如图 35 所示,此时假定温度已经经过转换并存储到高速暂存器里。 哈尔滨理工大学远东学院毕业论文 16 发初始化脉冲发读高速暂存器命令得到温度值发目标 DS 1820 的 ROM 号发匹配 ROM 命令 图 35 读温 度协议流程 初始化虽然不是命令,但在每次执行命令前必须进行初始化。 它的功能是通知总线上只有一个 DS1820 的情况,初始化还可以判断这个 DS1820 是否存在,但这对于总线上有多个 DS1820 的情况不适用。 因为此时总线上的电平是各个 DS1820 电平的与,我们无法判断总线上存在几个 DS1820。 在实际应用中,总线上挂接多个 DS1820 是最常见的情况,这里不必关心存在几个 DS1820,我们的目标是总线上的 DS1820 都能正常复位。 这一目标只要初始化程序设计合理,留有充足的时间裕量就能实现。 供电方式选择 在前面介绍 MicroLAN 时我们提到所有的 1Wire 器件都有“窃电”的功能,数据线和电源线合二为一,因此一根地线和一根数据线就可以满足传输线路的要求。 这种供电方式称为“寄生电源供电”方式。 DS1820 还可以由 Vdd 引脚提供电源。 寄生电源工作方式的连接电路如图 35 所示。 由 Vdd 引脚代电的连接电路图和图 36基本一致,只是在 DS1820的 Vdd 引脚上额外施加了 5V 电源。 故不另行画出。 DS 1820BM连接其它 1 Wir e 器件5 VR 图 36 寄生电源供电连接线路图 寄生电源可以省掉一根电源线,所 以大大降低了布线的成本。 因此 DALLAS 公司在低温测量中推荐使用寄生电源供电方式。 可是寄生电源供电方式 也存在着一些弊端。 单从供电的角度看, Vdd 引脚供电方式在可以在一根总线上挂接任意多个 DS1820,而且这些DS1820 还可以同时进行大电流操作。 选择何种供电方式取决于系统对布线、采集速度、采哈尔滨理工大学远东学院毕业论文 17 集精度的综合考虑。 DS1820 数据手册中推荐图 35中的 R 取值 5KΩ,我们就些来讨论。 为了使 DS1820 能够精确地进行温度转换,在进行温度转换时必须供应足够的电能。 按图 35 所示连接电路,在不考虑 DS1820 内部电阻 的情况下,总线上的电流最大只有 1mA。 由于每个 DS1820 在进行温度转换时的工作电流高达 ,图 35所示的连接电路不能保证供给足够的电流。 当总线上挂接多个 DS1820 且这些 DS1820 同时转换温度时,电能供应的不足就显得尤其严重。 那么能不能通过降低 R 值的办法来获得足够的工作电流呢。 答案是否定的。 上拉电阴R 的选取不是任意的。 它的取值必须保证总线上的电流不会过大以至于损坏总线上的挂接的 DS1820。 DS1820 内部采用了漏级开路的 MOSFET(参看图 31),必须外接上拉电阴和电源才能形成有效高电 平输出。 但是如果 R取值太小,就会使 DS1820 内部的 MOSFET 由于 IOL最大不能超过 10mA,所以从保护单片机的方面来看 R的值也不能取得太小。 另外一个原因是上拉电阻的取值太小会使总线的低电平变高,以至于混淆高低电平。 基于以上原因,DS1820 要求上拉电阴 R最小值为了 5KΩ。 在 R取 ,图 35所示总线上的电流最大值也只有 ,只能为 3 个 DS1820 提供足够的电能。 可见,当总线上需要挂接超过 3个 DS1820 时,图 35所示的电路不可行。 寄生电源另外一个缺陷是总线的最大扇出小。 1Wire总线的最大扇出是指这条总线上能够驱动的最大数量的 1Wire 器件。 以图 36 所示电路来讨论,最大扇出的数值取决于上拉电阻的阻值和总线上每个 DS1820 处于接收发送数据状态时的工作电流。 总线上的器件越多,上拉电阻压降就越大。 当上拉电阻消耗了足够的压降以至于总线上的电压不足 时,就会使寄生电源工作方式失效,因为 是寄生电源充电的最低电压。 由些我们可以计算图 35 的最大扇出为:( ) /5K/15μ A=29 个。 15μ A 是 DS1820 在接收发送数据状态时可能消耗的最大电流。 综上所述,考虑到粮库 现场可以提供直流电源,所以采用外接 VDD 引脚供电方式。 DS1820 的时序配合 一线器件的数据和命令都通过一条线来串行按位传输。 每个字节传输的正确性建立在每一位传输正确的基础上。 正确识别有效数据位和噪声是通信线路必备的功能。 DS1820有非常严格的时序,时序主要规定了传输和接收每一位数据的格式。 只有满足该时序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。