如何使用单总线数字温度传感器实现自动识别的技术
本文档的主要内容详细介绍的是如何使用单总线数字温度传感器实现自动识别的技术。r r t r r t在多点温度测量系统中,单总线数字温度传感器(例如DS18X20)因其体积小、构成的系统结构简单等优点,应用越来越广泛。每一个数字温度传感器内均有唯一的64位序列号(最低8位是产品代码,其后48位是器件序列号,最后8位是前56位循环冗余校验码),只有获得该序列号后才可能对其进行操作,也才能在多传感器系统中将它们一一识别。实际应用时的一般做法是:将每一个传感器的序列号测出,以表格的形式和程序存放在一起,并且给每个测温点编上号,做成标签粘贴在对应的传感器上。当系统中有传感器故障时,必须由专业人员测出备用的传感器序列号,贴上相应的标签,并在程序中修改表格,再将程序固化到程序存储器中。显然,这样做非常不利于系统维护。r r t r r t现有的单总线数字温度传感器的文献很少涉及自动识别序列号和排序(即与测量点对应)的问题,文献1给出了一种方法:通过特制的编码器,将一个传感器的序列号读出,并将其中48位器件序列号转换成BCD码,再通过手动拨盘将测温点编号拨入编码器,与器件序列号一起写入到传感器内的上下限温度报警寄存器TH/TL中(两个字节的EEPROM)。使用该方法,系统可以由运行人员来维护,并减少维护工作量,但仍有缺点:需要专门的编码器,维护工作量减少得仍不够;必须是在TH/TL不使用的前提下。本文给出一种方法,只需在系统中增加一片EEPROM芯片,通过编程,可实现多个传感器的出错指示、自动识别。单总线数字温度传感器在多点温度测量系统中的应用越来越广泛,主要得益于它们小巧的体积和简单的系统构建。其中,DS18X20是一个常见的型号,它内置了一个唯一的64位序列号,包括8位产品代码、48位器件序列号和8位循环冗余校验码。在实际应用中,通常会先测量每个传感器的序列号,然后与程序中的表格匹配,并在传感器上贴上对应的编号标签。然而,当传感器出现故障需要更换时,这个过程需要专业人员操作,增加了维护难度。为了解决这个问题,文献1提出了一种方法,通过特制编码器读取传感器序列号,将其48位器件序列号转换为BCD码,然后与手动输入的测温点编号一起写入传感器的上下限温度报警寄存器TH/TL。这种方法虽然减少了维护工作量,但仍需要专用设备,并且要求TH/TL未被其他功能占用。本文提供了一种改进方案,只需添加一片EEPROM芯片,通过编程实现多传感器的自动识别和出错指示。系统电路主要包括PIC16C63单片机、LED显示器、锁存器、译码器、EEPROM和数字温度传感器DS18B20等。PIC16C63是一种高性能的8位微控制器,具有电可擦写存储器,能直接驱动LED并存储传感器序列号。当需要更换传感器时,通过拨动开关启动自动识别程序。识别传感器序列号的过程涉及到单总线的ROM操作命令,如读ROM命令(33H)和搜索ROM命令(F0H)。搜索ROM命令允许主机通过“消去”过程识别所有传感器的序列号。具体操作包括初始化、读位补码和写位,最终获取传感器的ROM内容。然而,这种方法仅能得到序列号,无法直接将传感器与测温点对应。为了解决这个问题,可以通过建立关系表来实现传感器与测温点的对应。假设总线上连接了8个传感器,可以预先设定一个顺序,例如按照传感器的物理位置或预设的编号顺序,将每个传感器的序列号存储在EEPROM中,并与对应的测温点编号关联。当系统检测到传感器故障时,通过比较当前传感器的序列号和EEPROM中的记录,可以快速定位到相应的测温点,从而实现自动识别和故障指示。此外,系统电路的设计允许采用总线结构或星型结构连接传感器。星型结构更有利于识别多个传感器并进行错误指示,因为它减少了总线驱动的压力,简化了布线,使得自动识别和故障处理更为高效。通过结合单总线数字温度传感器的特性,以及引入额外的存储和处理单元,可以实现多传感器系统的自动识别和维护优化。这种技术对于降低系统维护成本和提高运行效率具有重要意义。
用户评论