一种在线快速搜索单线器件序列号的方法及系统技术方案

技术编号:21571317 阅读:26 留言:0更新日期:2019-07-10 15:21
本发明专利技术公开了一种在线快速搜索单线器件序列号的方法及系统,在测试过程中,通过生成一条正式码,依次发送给总线,从而得到一个器件的序列号,正式码就是所得到的序列号,而在生成正式码的同时,还生成一条预备码,预备码不是器件的序列号,但它可指导下一条正式码的生成,因而主机只需极少的次数即可识别总线上的全部器件,不需对总线进行额外的测试即可判断是否搜索完毕,而搜索过程中可自动生成序列号,供主机使用,不必人为另行输入,因而可较大程度上减小制造和维护的工作量,实用性高。

A Method and System for On-line Quick Search for Sequence Numbers of Single-Wire Devices

【技术实现步骤摘要】
一种在线快速搜索单线器件序列号的方法及系统
本专利技术涉及单线总线器件组网应用领域,尤其涉及一种在线快速搜索单线器件序列号的方法及系统。
技术介绍
单线(1-Wire)器件是美国Dallas半导体公司的产品。它是基于一根信号线实现互连通信的系列集成电路。单线器件易于实现工业现场温度采集、开关量控制等自动化控制网。截至2011年,单线器件已有30多种,包括DS1820(温度传感器)、DS2405(开关)、DS2450(A/D转换器)等。单线总线是一种简单的信号交换方式,它是在主机与外围器件之间通过一条线路进行双向通信。所有的单线总线器件都有一个共同的特征:在出厂时每个器件都有一个与其它任何器件互不重复的固定的64位2进制序列号。也就是说,每一个器件都是唯一的。这就使得在众多连到同一总线的器件中可以选择出任意一个器件。一旦器件的序列号已知,通过访问序列号,任何器件都可被唯一地选出以用于通信。单线总线通信具有线路简单、硬件开销少、成本低廉、便于扩展和维护等优点,已广泛应用于各个领域。以温度测量为例简单说明,温度测量可采用测温电阻或单线器件等方法,测温电阻的阻值随温度变化,通过测其阻值即可得到对应的温度,但是测量阻值需要一套电路,但测量点很多时,则需要多套电路和大量连线,总体结构非常复杂。采用单线器件DS1820,它完成了前端数字化,且用3根连线即可实现多点测温,结构简单,测温精度高,连接方便,维护方便。采用单线器件组网时,主机需要与指定序列号的器件进行通讯。器件的序列号可以通过离线测试来获取。在文献1“由单片机和多片DS1820组成的多点温度测控系统.《国外电子元器件》2001年第1期,戴蓉等.”中,离线测试的方法是,将所用的DS1820逐个与主机挂接,以读出其序列号。检测到序列号之后,需要将序列号人为输入到应用系统中。这造成在生产和使用过程中,需要额外测试,且维护不便。器件的序列号也可利用搜索ROM指令在线测试。但是如果采用简单的逐位检测法来进行识别,需要检测的次数为264。根据器件特性,每检测一次需要13毫秒,则全部检测需要76亿年,这是不可行的,因而需要寻找快速检测方法。
技术实现思路
本专利技术所要解决的技术问题是:提供一种搜索效率高且逻辑运算简单的在线快速搜索单线器件序列号的方法及系统。为了解决上述技术问题,本专利技术是通过以下技术方案实现的:一种在线快速搜索单线器件序列号的方法,包括以下步骤,步骤一,主机发送搜索ROM命令;步骤二,所有单线器件接收到命令之后发送其序列号上的数据供主机读取,根据单线器件搜索协议,主机先读取所有单线器件的序列号第一位的数据,获得第一位的判别码;步骤三,主机调用位处理子程序,根据第一位的判别码以及位处理子程序,生成第一位的正式码,并根据位处理子程序生成第一位的预备码;步骤四,主机根据生成的第一位正式码进行序列号的挑选,挑选出与第一位正式码相同的若干单线器件的序列号;步骤五,主机在剩下的若干单线器件中,继续重复步骤二至四的过程,得到下一位的正式码和预备码,如此往复循环,直至完成一轮所有位的数据读取和生成过程,继而得到一组正式码与预备码,此组正式码即为其中一个单线器件的序列号;步骤六,主机保存上一组的正式码与预备码,并继续重复步骤一至五的过程,并生成余下单线器件的序列号,继而搜索到所有单线器件的序列号。作为优选,所述步骤三中,调用所述位处理子程序前,先由主机生成一组预备码,其预备码位上的数值均设置为0。作为优选,所述正式码生成方法为,对编码中的每一位,依次进行如下操作:如果主机接收到的判别码为“01”,则该位的正式码为0;如果主机接收到的判别码为“10”,则该位的正式码为1;如果主机接收到的判别码为“00”,则检查对应位的预备码,若预备码为0,则该位的正式码为0;若预备码为1,则该位的正式码为1,待查找完所有位上的数据,即生成一条正式码,也即某一单线器件的序列号。作为优选,所述预备码生成方法为,对编码中的每一位,依次进行如下操作:如果主机接收到的判别码为“01”,则该位的预备码为0;如果主机接收到的判别码为“10”,该位的预备码为0;如果主机接收到的判别码为“00”,则检查对应位的现有预备码,若现有预备码为0,则将该位的预备码改为1,且将该位之前所有位的预备码,改为对应位的正式码,若现有预备码为1,则将该位的预备码改为0。作为优选,所述步骤四中,所述序列号的挑选过程为,主机在对应位生成一位正式码数据后,总线上的所有单线器件读取该数据,如果其序列号的当前位与主机生成的正式码数据相同,此单线器件的序列号继续挂在总线上,等待挑选;如果其序列号的当前位与主机生成的正式码数据不同,此序列号退出总线通讯,不再向总线发送数据,直到主机再次发送复位脉冲将其唤醒。作为优选,所述步骤六中,所有单线器件序列号的搜索过程完成的判断标准为所有预备码的所有位全部为0。为达上述目的,本专利技术还公开了一种在线快速搜索单线器件序列号的系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一所述方法中的步骤。与现有技术相比,本专利技术的有益之处是:所述在线快速搜索单线器件序列号的方法及系统,主机每向总线发送一次数据,即可得到一个在线器件的序列号,因而主机只需极少的次数即可识别总线上的全部器件,不需对总线进行额外的测试即可判断是否搜索完毕,而搜索过程中可自动生成序列号,供主机使用,不必人为另行输入,因而可较大程度上减小制造和维护的工作量,实用性高。附图说明下面结合附图对本专利技术进一步说明:图1是查找一个单线总线器件序列号的流程示意图;图2是查找所有单线总线器件序列号的流程示意图;图3是位处理子程序的处理流程示意图。具体实施方式下面将对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围:一种在线快速搜索单线器件序列号的方法,其单线器件的工作过程以及工作原理参考文献2“DALLAS公司半导体手册.1996”中的单线器件的工作原理,在本实施例中,如图1至图3所示,以搜索64位序列号为例,设定序列号位数为n位,其n取值范围是0-63,,则所述搜索方法包括以下步骤,步骤一,主机向总线网络发送复位脉冲,然后读取存在脉冲,再向总线网络发送搜索ROM命令;步骤二,所有的单线器件在接收到主机的搜索ROM命令之后,根据搜索协议,将其对应的序列号从高位到低位依次发送当前位的原码和反码,如若当前位的原码为“1”,则反码为“0”,而若原码为“0”,则反码为“1”,每个位置的原码和反码均分两次送出,所有单线器件的原码及反码经“线与”逻辑运算后,供主机读取;主机逐位依次读取所有单线器件的序列号每一位上对应的所有数据,每读取一位数据后,根据读取的数据以及自定义数据识别规则,得到一个判别码,在实际应用中,主机开始会先读取所有单线器件的序列号第一位上的数据,继而得到第一位的判别码;步骤三,主机调用位处理子程序,根据第一位的判别码以及位处理子程序,生成第一位的正式码,并根据位处理子程序生成第一位的预备本文档来自技高网
...

【技术保护点】
1.一种在线快速搜索单线器件序列号的方法,其特征在于:包括以下步骤,步骤一,主机发送搜索ROM命令;步骤二,所有单线器件接收到命令之后发送其序列号上的数据供主机读取,根据单线器件搜索协议,主机先读取所有单线器件的序列号第一位的数据,获得第一位的判别码;步骤三,主机调用位处理子程序,根据第一位的判别码以及位处理子程序,生成第一位的正式码,并根据位处理子程序生成第一位的预备码;步骤四,主机根据生成的第一位正式码进行序列号的挑选,挑选出与第一位正式码相同的若干单线器件的序列号;步骤五,主机在剩下的若干单线器件中,继续重复步骤二至四的过程,得到下一位的正式码和预备码,如此往复循环,直至完成一轮所有位的数据读取和生成过程,继而得到一组正式码与预备码,此组正式码即为其中一个单线器件的序列号;步骤六,主机保存上一组的正式码与预备码,并继续重复步骤一至五的过程,并生成余下单线器件的序列号,继而搜索到所有单线器件的序列号。

【技术特征摘要】
1.一种在线快速搜索单线器件序列号的方法,其特征在于:包括以下步骤,步骤一,主机发送搜索ROM命令;步骤二,所有单线器件接收到命令之后发送其序列号上的数据供主机读取,根据单线器件搜索协议,主机先读取所有单线器件的序列号第一位的数据,获得第一位的判别码;步骤三,主机调用位处理子程序,根据第一位的判别码以及位处理子程序,生成第一位的正式码,并根据位处理子程序生成第一位的预备码;步骤四,主机根据生成的第一位正式码进行序列号的挑选,挑选出与第一位正式码相同的若干单线器件的序列号;步骤五,主机在剩下的若干单线器件中,继续重复步骤二至四的过程,得到下一位的正式码和预备码,如此往复循环,直至完成一轮所有位的数据读取和生成过程,继而得到一组正式码与预备码,此组正式码即为其中一个单线器件的序列号;步骤六,主机保存上一组的正式码与预备码,并继续重复步骤一至五的过程,并生成余下单线器件的序列号,继而搜索到所有单线器件的序列号。2.根据权利要求1所述的一种在线快速搜索单线器件序列号的方法,其特征在于:所述步骤三中,调用所述位处理子程序前,先由主机生成一组预备码,其预备码位上的数值均设置为0。3.根据权利要求1所述的一种在线快速搜索单线器件序列号的方法,其特征在于:所述正式码生成方法为,对编码中的每一位,依次进行如下操作:如果主机接收到的判别码为“01”,则该位的正式码为0;如果主机接收到的判别码为“10”,则该位的正式码为1;如果主机接收到的判别码为“00”,则检查对应位的预备码,若预备码为0,则该位的正...

【专利技术属性】
技术研发人员:李恬晨
申请(专利权)人:华北电力大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1