技术领域
[0001] 本
发明涉及电子雷管领域,具体涉及一种电子雷管网络防冲突方法。
背景技术
[0002] 电子雷管在组网400发,通讯距离1000m的时候存在网络通讯
质量变差的问题,此时需要降低通讯速率来保证稳定通讯。如果使用完整的命令
帧去轮询每一发电子雷管,目前设计的通讯速率需要30秒以上的时间(实验测量,读状态11发/秒-13发/秒)。而在最后起爆阶段,需要快速的检测出模
块是否具有起爆能
力和在线状态,此时要求时间不能超过10秒。通过调高通讯速率虽也能解决快速检,但整个网络的功耗也由此增加,影响网络的
稳定性和电子雷管的起爆能力。
发明内容
[0003] 鉴于以上所述
现有技术的缺点,本发明的目的在于提供一种电子雷管网络防冲突方法,用于解决现有技术的至少一个
缺陷。
[0004] 为实现上述目的及其他相关目的,本发明提供一种电子雷管网络防冲突方法,所述方法包括:
[0006] 步骤2.主机通过广播的方式读取从机的唯一标记码UID,若读取成功,则进行步骤3,若所述从机没有应答,则进入步骤4;若是出现的错误,则执行步骤5;
[0007] 步骤3.通过所述唯一标记码UID与从机建立点对点通讯,设置从机通讯地址,给从机加锁B,不再响应主机的读UID命令;
[0008] 步骤4.连续多次读取所述唯一标记码UID,若从机依旧没有应答主机命令,防冲突流程结束;
[0009] 步骤5.将所述从机的唯一标记码UID作为一个位流,则每次是按位进行比较;将已确认的数据长度Len、当前待确认窗口2bits的值Step、已确认窗口的数据通过广播命令发送下去;
[0010] 其中,如果Len=0,那么Step=1,表示从机判断滑动窗口bit0,不做加锁确认;如果Len>0,主机在上一次比对时没有收到从机应答,Step=2,表示判断待确认窗口bit1,上次识别的数据是0;如果Len>0,主机在上一次比对时收到从机应答,Step=3,表示判断待确认窗口bit1,上次识别的数据是1;
[0011] 步骤6.读取从机应答
信号,若总线异常,防碰撞失败,退出;如果有应答信号,该搜索位为1,如果读取信号超时,则该搜索位为0。
[0012] 步骤7.若已经验证的位数量为8的整数倍,跳转到2步骤,否则跳转到5。
[0013] 可选地,若Len>2且Len-2小于等于已确认窗口长度,则从窗口低位开始比较,唯一标记码UID的起始比较位索引为0,结束索引Len-2;
[0014] 若Len>2且Len-2大于已确认窗口长度,则从窗口高位开始比较,起始比较位索引为Len-2,结束索引是Len-2-n,n是已确认窗口宽度。
[0015] 可选地,将已确认窗和从机的唯一标记码UID位流重叠部分进行异或,若结果大于1认为比较失败,则从机上A锁。
[0016] 可选地,根据Len的值,找到从机待确认位与Step值进行异或得到C;
[0017] 如果Len==0,唯一标记码UID的第一个bit是1,则应答主机;
[0018] 当Len>0时,如果C&0x01大于0,从机自己上A锁;如果C&0x03等于0x02,从机不返回应答信号;如果C&0x03等于0从机返回主机应答。
[0019] 为实现上述目的及其他相关目的,本发明提供一种存储介质,存储
计算机程序,所述计算机程序被处理器运行时执行所述的方法。
[0020] 为实现上述目的及其他相关目的,本发明提供一种电子终端,包括:处理器及
存储器;
[0021] 所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述的方法。
[0022] 如上所述,本发明的一种电子雷管网络防冲突方法,具有以下有益效果:
[0023] 可以盲搜网络上的设备,完成搜索后得到从机的唯一标识码UID;
[0024] 设置窗口确认机制,增强了比对过程的鲁棒性;
[0025] 使用待确认窗口和已确认窗口机制,一次比对实现对隐性码的识别,提高稳定性。
附图说明
[0026] 图1为本发明一
实施例一种电子雷管网络防冲突方法的
流程图。
具体实施方式
[0027] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本
说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0028] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0029] 本实施例提供一种电子雷管网络防冲突方法,其中电子雷管被设定为从机,由主机控制,主机与从机之间通过总线通讯,从机返回数据给主机采用同步通讯方式,主机发送一个脉冲,从机才能应答一个信号。
[0030] 总线物理特性只有两种状态,但通信需要3种状态及0、1、空闲。本实施例中将0和空闲就结合在一起,就造成了0是一种隐性。从机应答0的时候,主机是不知道从机应答还是没有应答。主机问从机位是不是1的时候,只要有一个从机应答,主机就能收到信号。但存在一特殊情况:如果从机全部是零,那么总线上就没有信号,但如果从机是1,而从机出现异常没有应答,主机也认为是0,这时出现错误,所以需要二次确认。由于只要有一个从机应答了1,主机收到信号,但有从机是0,网络上的从机不知道其它从机有应答。这也是本通信的一个特点,从机间不知道有其他从机有应答信号。主机收到1就会问询下一位。是0的从机就需要主机告诉从机上一位的值,是0还是1。如果从机上一位于主机的确认不相符合,就终止。
[0031] 主机读取从机的唯一标识码UID有两个锁,A和B。默认状态下A和B两个锁均是开启。主机有对A和B锁加锁的能力,从机有对A锁进行加锁的能力及自锁。在后的描述都是按照位流说明,4字节就是32个位流。在计算机存储的时候,这个位流是连续的,就存在高位和地位。
[0032] 防冲突
算法是按位进行搜索,每次主机发送的命令就是问bit1在不在总线再通过滑动已确认窗,实现按位检索的功能。窗口分两个部分,2bit待确认+nbit已经确认。
[0033] 2bit待确认+nbit已经确认。n的值由出从机事先约定好。待确认窗口的由来是因为从机的反码通信存在显隐之分。待确认窗口的数据从机需要进行二次确认,其中bit0是上次主机确认的位值,bit1是主机询问的当前位值,已经确认窗口时主机已经识别到的位序列。
[0034] 具体的步骤如下:
[0035] 步骤1.主机发送解A锁命令,从机就具有广播读唯一标识码UID的能力。
[0036] 步骤2.主机通过广播的方式读取唯一标识码UID,从机返回的数据的帧格式具有校验能力,判断出返回的命令帧出现的错误,如果没有错误,成功读取了唯一标识码UID,进入步骤3。若是从机没有应答进入步骤4。若是出现的错误,说明总线有冲突进入步骤5。
[0037] 步骤3.通过唯一标识码UID与从机建立点对点通讯,设置从机通讯地址,给从机加锁B,不再响应主机的读唯一标识码UID命令。跳转执行步骤1。
[0038] 步骤4.连续多次读取唯一标识码UID,若从机依旧没有应答主机命令,则防冲突流程结束。
[0039] 在所述主机读取所述从机的唯一标记码UID过程中出现错误,执行步骤5~7,其中,所述步骤5~7具体为:
[0040] 步骤5.将已确认的数据长度Len、当前待确认窗口2bits的值Step、已确认窗的数据通过广播命令发送下去;
[0041] 其中,如果Len=0,那么Step=1,表示从机判断滑动窗口bit0,不做枷锁确认;如果Len>0,主机在上一次比对时没有收到从机应答,Step=2,表示判断待确认窗口bit1,上次识别的数据是0;如果Len>0,主机在上一次比对时收到从机应答,Step=3,表示判断待确认窗口bit1,上次识别的数据是1;
[0042] 步骤6.读取从机应答信号,若总线异常,防碰撞失败,退出;如果有应答信号,该搜索位为1,如果读取信号超时,则该搜索位为0。
[0043] 步骤7.若已经验证的位数量为8且都等于0,跳转到2步骤,否则跳转到5。
[0044] 在步骤5中,若Len>2且Len-2小于等于已确认窗口长度,则从窗口低位开始比较,唯一标记码UID的起始比较位索引为0,结束索引Len-2;
[0045] 若Len>2且Len-2大于已确认窗口长度,则从窗口高位开始比较,起始比较位索引为Len-2,结束索引是Len-2-n,n是已确认窗口宽度。
[0046] 将已确认窗和从机唯一标识码UID位流重叠部分进行异或,结果大于1认为比较失败,从机上A锁。
[0047] 根据Len的值,找到从机待确认位与Step值进行异或得到C。如果Len==0,UID的第一个bit是1,则应答主机。当Len>0时,如果C&0x01大于0,从机自己上A锁。如果C&0x03等于0x02,从机不返回应答信号;如果C&0x03等于0从机返回主机应答。
[0048] 走完这个流程后,所有从机都会被上B锁,最后解锁B,就能够和从机进行点对点正常通讯,也获得了所有从机的唯一标识码UID。
[0049] 具体地,可以设两个从机的UID是0x05(00000101B),0x07(00000111B)[0050] Len=0的时候,Step=1,UID位0是1的应答,两个从机均应答。
[0051] Len=1的时候,Step=3(11B),及bit1=1,bit0=1。bit0表示主机上一次接收到1应答,有从机应答信号。UID=0x05的bit1=0,不应答。UID=0x07的bit1=1应答。
[0052] Len=2的时候,Step=3(11B)。UID=0x05在收到Step的bit0=1,根据Len-1得到上一个UID的比较位bit1=0。于Step的描述不符,自己上A锁。UID=0x07于自己相符,进入下一轮检索。
[0053] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用
硬件的形式实现,也可以采用
软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本
申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0054] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0055] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0056] 在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些
接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0057] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0058] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0059] 所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动
硬盘、磁碟、光盘、计算机存储器、
只读存储器(ROM,Read-Only Memory)、
随机存取存储器((RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
[0060] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的
权利要求所涵盖。