2 系统软件设计
这里主要介绍关于多个DS1825的自动搜索算法,由于系统中使用了多片DS1825构成温度传感器网络,因此,如何准确、有效地对每一温度传感器进行寻址成为该系统的一个核心问题。结合DS1825的实际特点和系统需要,提出如下解决方案:首先利用DS1825内部报警上限寄存器(TH寄存器)存放温度传感器的编号,并将其编号贴在温度传感器表面。由于TH寄存器具有掉电不丢失数据功能,因此,便把每片DS1825的惟一64位注册码及其编号一一对应起来。这一过程需要对DS1825进行单独编程。然后,将确定好编号的DS1825接入单线网络,利用DS1825特有的单线网络自动搜索功能,即可搜寻到每片DS1825的注册码,再利用该注册码和相应的ROM操作指令,即可从每片DS1825的TH寄存器中读出相应的设定编号,实现多个DS1825的寻址功能。
每片DS1825有惟一的64位注册码,存储在只读存储器ROM中,其中低8位是产品的工厂代码,接着是每个器件的惟一序号,共48位,最高8位是前56位的循环冗余校验码。这就准许总线主机对总线上特定的DS1825进行寻址。只有与64位注册码严格相符的DS1825,才能对后续的操作做出反应,所有与64位注册码不符的DS1825将等待复位脉冲。搜索算法首先通过复位和在线应答时隙将单线总线上所有DS1825复位。成功地执行该操作后发送1 B的搜索命令,使所有连接到单总线的DS1825准备就绪,开始进行搜索操作。搜索命令发出之后,开始实际的搜索过程。首先,总线上所有DS1825同时发送注册码的第1位,按照单线总线特性,当所有DS1825同时应答主机时,结果相当于全部被发送数据位的逻辑“与”。DS1825发送其注册码的第1位后,主机启动下一位操作,接着DS1825发送第1位数据的补码。从两次读到的数据位可以对注册码的第1位做出几种判断,如表1所列。
然后,主机向总线上的所有器件发回一个指定位。如果DS1825注册码的当前位的值与该数据位匹配,则继续参与搜索过程;若DS1825的当前位与这不匹配,则该器件转换到等待状态并保持等待状态,直到下一个复位信号到来。其余63位注册码的搜索依然按照这种读2位写1位的模式进行重复操作。按照这种搜索算法进行下去,最终除了惟一一个DS1825外,所有DS1825将等待状态,经过最后一轮检测就可得到最后保留未进入等待状态的DS1825的注册码。在后续搜索过程中选用不同的路径或分支来查找其他器件的注册码,即可完成所有器件注册码的识别。
下位机软件采用MCS51汇编语言编写,在中断服务程序中,实现用户输入以及和以太网控制器的通信功能;在主程序中,实现温度传感器网络的自动搜索、编号排序、获取温度信息等,并根据预先设定的温度上下限值,实现相应的报警功能。由于设计中使用传感器网络的自动搜索算法,因此,当对网络中的温度传感器作出调整(如更换、添加、删除等操作)时,系统具有很强的自适应能力。下位机软件程序流程图如图4所示。
3 测量结果
网络化多点温度测控系统对被测对象温度的监控结果在PC机的显示如图5所示,由图可清楚观察到温度数据随时间变化而变化的趋势。
4 结 语
基于Internet的嵌入式多点温度监控系统灵活性高、交互性强,可在线根据需要随时修改温度上下限值,系统设计开发过程中充分利用了网络技术与多点温度监控技术相结合的方法及软硬件协同设计的思想,采用模块化设计,稍加裁剪改造可适用于多种不同场合的分布式远程多点温度智能监控系统。该系统经实验测试,稳定可靠,测量精度高,实时性强且充分利用了现有网络,利于传统的基于RS 485温度监控系统快速改造为以太网远程智能监控系统,取得更好的社会经济效益。