一种自适应的二进制电子标签碰撞处理算法的制作方法

文档序号:12670315阅读:172来源:国知局
一种自适应的二进制电子标签碰撞处理算法的制作方法与工艺

本发明涉及智能电表识别技术领域,尤其涉及一种自适应的二进制电子标签碰撞处理算法。



背景技术:

随着电子标签技术的发展,电子标签越来越多的应用到智能电表领域,智能电表通过设置电子标签,可以极大的方便智能电表在制造、安装及使用过程中对智能电表信息的读写。但对电子标签的读取,现有技术中通常采用的为二进制树搜索方法。这种方法采用曼彻斯特(Manchester)编码,它能按位识别出碰撞,如图1所示,由两个(或多个)标签同时发送的数位有不同之值,则接收的上升边和下降边互相抵消,以致在整个位窗的持续时间内接收器接收到的是不间断的载波信号。这种方法本身是确定的,不存在电子标签在长时间内得不到响应的情况,但这种方法比较复杂,且识别时间较长。在实际的应用场景中,智能电表通常采用相对集中的安装方式,即根据供电区域的划分,同一区域中各用户的智能电表集中安装,集中安装的智能电表少则几块、十几块,多则几十、上百块,在抄表时需要通过智能抄表设备对每个安装点的智能电表进行抄表,因此,如何缩短智能电表电子标签的识别时间,提高识别效率,可以大大提高智能电表的抄表效率,具有现实的意义。



技术实现要素:

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种可有效解决电子标签识别过程中的碰撞问题,识别率高,识别速度快的自适应的二进制电子标签碰撞处理算法。

为解决上述技术问题,本发明提出的技术方案为:一种自适应的二进制电子标签碰撞处理算法,包括如下步骤:

S1.初始化查询堆栈;

S2.读取所述查询堆栈中的查询码,发送查询指令;

S3.接收电子标签的应答信号,分析所述应答信号,当发生碰撞时跳转至步骤S4,当应答信号不为空且未发生碰撞时,跳转至步骤S5,当应答信号为空时跳转至步骤S6;

S4.计算碰撞因子,当所述碰撞因子大于等于预设的碰撞因子门槛值时,根据所述查询码的应答情况生成H条新查询码,并将所述H条新查询码写入所述查询堆栈,否则生成K条新查询码,并将所述K条新查询码写入所述查询堆栈;跳转至步骤S2;所述H大于K;

S5.该查询指令查询成功,完成对该查询码的识别,跳转到步骤S6;

S6.判断所述查询堆栈是否为空,是则结束,否则跳转至步骤S2。作为本发明的进一步改进,所述碰撞因子为碰撞时隙内碰撞比特占电子标签响应比特位的比值;所述碰撞因子门槛值为0.75。

作为本发明的进一步改进,所述H的取值为4。

作为本发明的进一步改进,所述K的取值为2。

作为本发明的进一步改进,所述步骤S4中根据所述查询码生成4条新查询码的具体步骤包括:根据所述查询码的应答情况,将发生碰撞的最高2个碰撞位的查询码分别设置为11、10、01、00,生成4条新的查询码,将其余碰撞位的查询码设置为1。

作为本发明的进一步改进,所述步骤S4中根据所述查询码生成K条新查询码的具体步骤包括:根据所述查询码的应答情况,将发生碰撞的最高1个碰撞位的查询码分别设置为1和0,生成2条新的查询码,将其余碰撞位的查询码设置为1。

与现有技术相比,本发明的优点在于:本发明可有效解决电子标签识别过程中的碰撞问题,识别率高,识别速度快,提高智能电表抄表的速度与效率。

附图说明

图1为Manchester编码的碰撞情况原理示意图。

图2为本发明具体实施例的流程示意图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

如图2所示,本实施例的自适应的二进制电子标签碰撞处理算法,包括如下步骤:S1.初始化查询堆栈;S2.读取所述查询堆栈中的查询码,发送查询指令;S3.接收电子标签的应答信号,分析所述应答信号,当发生碰撞时跳转至步骤S4,当应答信号不为空且未发生碰撞时,跳转至步骤S5,当应答信号为空时跳转至步骤S6;S4.计算碰撞因子,当所述碰撞因子大于等于预设的碰撞因子门槛值时,根据所述查询码的应答情况生成H条新查询码,并将所述H条新查询码写入所述查询堆栈,否则生成K条新查询码,并将所述K条新查询码写入所述查询堆栈;跳转至步骤S2;所述H大于K;S5.该查询指令查询成功,完成对该查询码的识别,跳转到步骤S6;S6.判断所述查询堆栈是否为空,是则结束,否则跳转至步骤S2。

在本实施例中,所述碰撞因子为碰撞时隙内碰撞比特占电子标签响应比特位的比值;所述碰撞因子门槛值为0.75。所述H的取值为4。所述K的取值为2。

在本实施例中,所述步骤S4中根据所述查询码生成4条新查询码的具体步骤包括:根据所述查询码的应答情况,将发生碰撞的最高2个碰撞位的查询码分别设置为11、10、01、00,生成4条新的查询码,将其余碰撞位的查询码设置为1。

在本实施例中,所述步骤S4中根据所述查询码生成K条新查询码的具体步骤包括:根据所述查询码的应答情况,将发生碰撞的最高1个碰撞位的查询码分别设置为1和0,生成2条新的查询码,将其余碰撞位的查询码设置为1。在本实施例中,假设系统内的标签数量为N,系统分配的分支数为M,系统在搜索深度为1的时候,识别概率p(1)为:

当搜索深度为d时,系统识别的概率p(d)为:

p(d)=[1-p(1)]d-1

则系统在一次完整的识别过程中,对N个标签进行搜索所需深度的平均值E(d)为:

对上式进行化简,整理,并根据等比数列求和公式可以得到:

上式中,M为等比数列的公比,也就是系统所分配的分支数。这样我们就可以求得系统搜索过程中所需的平均时隙数T为:

当搜索算法有两个分支时,所需的平均时隙数为T2=2/(1-1/2)N-1。当搜索算法有四个分支时,所需的平均时隙数为T4=4/(1-1/4)N-1。比较上述两式可知,当N>3时,四分支搜索算法所用到的平均时隙较少,系统性能优于二分支搜索算法;当N≤3时,二分支搜索算法所用到的平均时隙较少,系统性能优于四分支搜索算法。

在本实施例中,假设四个电子标签的序列号分别为,标签1:10110010;标签2:10100011;标签3:10110011;标签4:11100011。在初始状态下,生成查询码为11111111,存储查询堆栈。读取查询堆栈中的查询码,向标签发送查询指令。此时,全部标签均响应该查询指令,发送自身ID。根据对查询码的响应情况,检查到第0,4,6位发生碰撞,即1x1x001x,计算碰撞因子为:3/8=0.375。小于预设的碰撞因子门槛值,K取2,即生成2条新的查询码。将发生碰撞的最高位的查询码分别设置成1和0,生成2条新的查询码,分别为:11110011和10110011,并将该两条查询码加入到查询堆栈。然后,再从查询堆栈的栈顶中取出查询码10110011,重复上述查询过程,根据对查询码的响应情况,检查到第0和4位发生碰撞,即101x001x,通过计算碰撞因子小于预设的碰撞因子门槛值,生成2条新查询码,10110011和10100011,加入堆栈。再从栈顶取出查询码10100011,进行查询,可以无碰撞的读到标签2,令标签2进入无响应状态。再从栈顶取出查询码10110011进行查询,此时,只有标签1和标签3响应,第0位发生碰撞,则生成10110011和10110010共2条新查询码加入堆栈,再读取栈顶的查询码10110010进行查询,可以无碰撞的查询到标签1,令标签1进入无响应状态。再从栈顶读取查询码10110011,可以无碰撞的查询到标签3,令标签3进入无响应状态。再从查询堆栈中读取查询码11110011,可以无碰撞的查询到标签4,完成对整个标签的查询。

在本实施例中,假设通过初始查询码11111111进行查询时,检查到0至6位均发生碰撞,即1xxxxxxx,计算碰撞因子7/8=0.875,大于等于预设的碰撞因子门槛值,则生成4条新的查询码,分别为11111111、11011111、10111111、10011111,依次加入查询堆栈,然后,再从栈顶读取查询码10011111进行查询。依此方法,完成对全部标签的查询。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1