专利名称:设备扫描方法
技术领域:
本发明涉及一种设备的扫描方法,尤其涉及一种利用二叉树算法进行设备扫描的方法。
背景技术:
ALD(天线设备)在WCDMA、CDMA、GSM基站设备中得到广泛应用。基站设备对天线设备的管理目前存在AISG协议(文献[1]AISG Issue 1.0Control interface for antenna line devices,Antenna Interface Standards Group,Standard No.AISG1Issue 1 29 October 2003中有描述)和WCDMA的3GPPTS 25.460/1/2/3协议(文献[2]3GPP TS 25.462 3rd Generation PartnershipProiec中有描述),但这两个协议主要侧重于定义和规范天线设备的功能和接口,对于承担天线设备管理的天线设备控制器的行为和功能没有制订统一规范。
其中天线设备扫描功能就是一个例子。在AISG和3GPP TS 25.462协议中均定义了天线设备提供的设备扫描接口,以及天线设备对设备扫描命令的处理功能,但没有规范天线设备控制器如何使用天线设备提供的设备扫描接口完成天线扫描功能。
天线设备扫描为天线设备管理的关键技术之一,通过对天线设备进行扫描,天线控制器才能够查询出总线上所连接的天线设备的个数以及各个天线设备的唯一标识(即序列号)。天线设备的唯一标识是天线控制器给天线设备分配地址和建立通信链路从而维护天线设备所必须的。
下面简要介绍一下扫描天线设备的流程。
按照AISG和3GPP TS 25.462协议,天线控制器发送设备首先扫描广播命令到总线上所有天线设备,命令中包含掩码字段和唯一标识字段;天线设备收到扫描命令后,将自身的唯一标识使用掩码屏蔽后,同命令中给出的唯一标识比较,如果相同,则响应,响应消息中包含其唯一标识;否则不响应;如果多个天线设备比较的结果是都匹配,则多个设备将作出响应;若多个响应的延时的时间差较小,即多个设备在同一时间内响应,则天线控制器将接收到响应冲突,即无法区分出所响应的天线设备的唯一标识,从而导致扫描失败,需要重新扫描;如果没有设备匹配,则天线控制器将不会接收到任何的响应,这种情况下,扫描也是失败的,也需要重新扫描。
具体响应消息内容参见参考文献[1]或[2]。天线设备校验自己Unique ID(唯一标识)同扫描命令中的Unique ID是否匹配的算法有多种,这里给出一种效率较高的校验方法,首先,用扫描命令中的掩码同自己的Unique ID做二进制或运算,设得到二进制数A,用扫描命令中的掩码同扫描命令中的Unique ID做二进制或运算,设得到二进制数B,之后,判断A和B是否完全相同,如果相同,则匹配,否则不匹配。
因此,天线控制器在扫描命令中提供的唯一标识和掩码是决定扫描成功的关键。
通常使用穷举法进行扫描,即天线控制器穷举天线设备唯一标识去扫描。因为天线设备的唯一标识为19位的字母数字字符串,其中每个字符取值可能有62种(为26大写字母加上26小写字母再加上10数字),因此如果是最悲观的情况(每一位都不相同),则需要穷举扫描62的19次方次。即使把其中的2位能够确定的供应商编码提取出来,扫描次数也要多于62的17次方。
如上所述,现有技术的穷举扫描法缺点是扫描次数多,最悲观情况下需要扫描多于62的17次方次,扫描效率低,扫描时间长,实际上几乎不可操作。
发明内容
为此,本文提出一种设备扫描方法,该方法包括设备控制器使用二叉树结构构造二进制唯一标识和掩码,设备控制器按先根遍历法遍历该二叉树,对于遍历到的每个节点,执行如下步骤设备控制器广播包含所述二进制唯一标识和掩码的扫描命令;
设备接收到该扫描命令,将扫描命令中的唯一标识同设备自身的序列号进行匹配运算,如果设备的序列号匹配,则向设备控制器发送包含其序列号的响应。
应用本发明的上述技术方案,天线控制器使用二叉树算法选择扫描设备命令中使用的唯一标识和掩码,能够大大减少重复扫描次数,从而大力提高设备扫描的效率和速度,解决穷举法扫描次数多时间长的问题。
图1示出了本发明优选实施例的二叉树结构图。
具体实施例方式
为了方便、直观地描述本发明的技术方案,结合图1所示的二叉树结构图进行具体说明。
图1描述了Unique ID(唯一标识)的二进制构造图和所有可能的扫描路径。
如图所示,因为Unique ID为长度19个字符的字符串,因此上二叉树共有153层(二进制形式的一个字符为8bit,19个字符为19×8=152bit),每层节点数目为2的T次方(T为层编码,自Root层开始从0开始编码)。
二叉树的叶子节点为Unique ID的二进制值的全集,为二进制形式的19位字符串的所有可能取值。从ROOT(根)节点(T=0)开始到某个叶子节点的路径,即表征了一次成功的天线设备Unique ID的扫描路径,其中每个中间层次的节点的值为共152比特的二进制比特串。
该串分为两部分取值比特部分,即该部分比特有明确的取值。如图中各节点内白色背景字符所示;屏蔽比特部分,即该部分比特没有明确的取值,任意值均可。如图中各节点内灰色背景字符所示。
取值比特部分同屏蔽比特部分无严格的顺序区别,图1中仅表征了屏蔽比特部分在字符串前部而取值比特部分在整个19字节字符串后部的例子,这种分布适用于实际网络中应用的天线设备Unique ID取值在后部区别较大情况,实际上根据需要二者顺序也可以相互颠倒一下,如果实际网络中应用的天线设备Unique ID取值在前部区别较大,则分布取值比特部分在前部而屏蔽比特部分在后部则扫描起来更有效。
下面对本发明的扫描方法进行详细的描述。
天线控制器对上述二叉树进行先根遍历进行天线设备扫描,从根节点开始遍历,每遍历到一个节点,即发起一次扫描操作,一次扫描操作包括构造扫描命令,广播发送给总线上的所有ALD(天线)设备,等待和处理响应,根据扫描结果决定是否遍历其从节点。
详细的每个节点的遍历过程如下。
1)构造扫描命令,其中关键是构造掩码串和Unique ID串。
构造并赋值掩码串。掩码串长度与Unique ID串长度相同,即19个字节共152比特。根据当前节点值中掩码比特的分布决定掩码串每个比特的取值,即把掩码串比特同当前节点值的每个比特从首到尾一一对应,如果掩码串中某比特对应的节点值中同一位号的比特为掩码部分,则掩码串中该比特取0,否则取1。例如层1的节点掩码字符串前151个比特均为0,仅最后一个比特为1。
构造并赋值Unique ID串直接用当前节点值作为扫描命令的Unique ID,其中节点值中掩码部分可以取任意比特。
扫描命令其余内容参见相关协议的AISG或3GPP TS 25.462要求构造。
2)广播扫描命令,等待天线设备的响应;3)天线设备接收到天线控制器发送的扫描命令后,根据扫描命令中的掩码,校验自己的Unique ID是否同扫描命令中的Unique ID相匹配,即天线设备本身的Unique ID同扫描命令中的Unique ID均屏蔽掉掩码中为0的比特位,比较剩下的所有比特位取值是否相同。如果匹配,则回响应给扫描命令,否则不回响应。
4)根据检测响应情况做相应处理,如果接收一到多个正确响应,则此次节点扫描成功,保存扫描结果以用于扫描结束后进一步处理;然后截取树中含该节点以下分支,即不遍历该节点下属各分支,而继续从步骤1)开始按先根遍历算法遍历下一节点,下一个要遍历的节点根据先根遍历算法判定。
例如,如果当前节点有右兄弟节点,则下一个要遍历节点为其右兄弟节点,否则如果当前节点没有右兄弟节点,则下一个要遍历节点为其父节点的右兄弟节点;如果其父节点仍没有右兄弟节点,则下一个要遍历的节点为其父节点的父节点的右兄弟节点,如此循环,直到整个树遍历完为止遍历结束。
如果检测到天线设备响应冲突,则需要对当前节点的所有子节点进行先根遍历,即从步骤1开始先根遍历其最左子节点,如果当前节点没有任何子节点,则从步骤1开始按先根遍历算法遍历下一个要遍历的节点(下一个要遍历的节点根据先根遍历算法判定)。
如果没有接收到任何响应,则截取树中含该节点以下分支,即不遍历该节点下属各分支,则从步骤1开始按先根遍历算法遍历下一个要遍历的节点(下一个要遍历的节点根据先根遍历算法判定)。
以图1中节点屏蔽比特部分在字符串前部而取值比特部分在整个字符串后部,如果一条总线上有两个ALD设备,其UNIQUE ID(序列号)分别为01......1(除第一比特为0外,其余151比特均为1)、1......1(全部152比特均为1),即仅首比特取值不同,则此算法为最悲观情况,这种情况下扫描过程为从根节点开始遍历,根据根结点,发送扫描消息,掩码为全0的152位比特串,Unique ID为任意值的19字节字符串;由于根节点将Unique ID所有位都屏蔽,因此两个ALD设备同时匹配,从而同时发送响应给天线控制器;天线控制器收到响应,由于检测到冲突,因此自根节点的子节点(即层1节点)“X......X0”开始遍历;先遍历左兄弟节点,即子节点“X......X0”节点,发送扫描消息后等待,由于两个ALD设备的Unique ID最后一位均为1不与最后一位为0的节点匹配,因此无响应上报,从而二叉树中此子节点对应的分支被截取,即不再遍例该分支;然后遍历到右兄弟节点节点,即子节点“X......X1”,由于两个ALD设备的Unique ID最后一位均为1与最后一位为1的节点匹配,因此同时响应;天线控制器检测到响应冲突,则重复步骤2,遍历子节点“X......X1”下的所有子节点;重复上述步骤,直到整个树遍历完为止。
最终成功的遍历路径为自根节点遍历到叶子01......1(除第一比特为0外,其余151比特均为1)、1......1(全部152比特均为1)。遍历次数(即遍历的节点数目、也是发送的扫描消息数)为305次,计算方法为扫描根节点1次,从层1到层152每层的扫描次数均为2次,所以总的扫描次数为152×2+1=305次。
综上所述,此算法在总线上最多两个天线设备情况下的最悲观情况仅需遍历305次,相对与穷举法扫描最悲观情况下的62的17次方次,可以说大大减少了扫描次数,加快扫描速度,提高了扫描效率,从而有效提高可服务性。对于非最悲观情况,也能大大提高扫描效率,例如总线上共3个ALD设备序列号为“X......X0011111111”,“X......X0111111111”、“X......X1011111111”(一共152比特,前142比特可取任意值,用X表示)情况,二叉树扫描算法只需要扫描10×2+1(只需要扫描到树的第10层)=21次,而采用穷举法扫描,至少需要扫描2的10次方次。
需要说明的是,该实施例仅为方便说明本发明的技术方案所进行优选的实施例,本领域技术人员应该能够理解,该二叉树算法也可以不按照从序列号包含的字符的尾部到头部进行构造,也可以挑选出任意的位置比特进行构造,例如,第1层的二叉树的两个节点值分别为第2位取为0和1,这样依次的左和右子节点也可以再从其上层的根节点中的非固定值比特位中任意挑选出一个比特位分别取为0和1,只要保证同一个父节点的左右两个子节点在同一个比特位取为互相相反的两个值(0和1)而其他的比特位的值相同。
上述算法为基础的扫描算法,在此算法基础上,根据实际情况,利用已知的信息,对基础的二叉树扫描算法作小的改动,即可形成如下几种衍生算法,用于根据实际应用场景,进一步减少扫描次数和提高扫描效率Unique ID的某些特定字节位的取值是已知的常数值情况下(如UniqueID中的供应商编码部分、或Serial No的部分字节),可以把这些字节的比特位固定取此常数值,而上面描述的多叉树算法树中这些字节的比特位取值非常数值的分支截取不遍历,能进一步降低扫描次数,假设已知常数值的字节位数目为N,则最悲观情况扫描次数为(152-N×8)×2+1。
Unique ID的某些特定字节位的取值是已知的有限常数值集合情况下,利用此集合,参考图1所示的衍生算法,可以截取上面描述的多叉树算法树中这些字节的比特位取值非此集合中的常数值的分支,即不遍历这些分支,能进一步降低扫描次数。
不扫描根节点,直接从层1节点开始扫描,可以省去扫描根节点步骤。此衍生算法适用于确定总线上一定有多个ALD设备情况,这种情况下,扫描根节点一定会有多个ALD设备响应冲突,所以扫描根节点可以省略。
二叉树节点中屏蔽比特同取值比特顺序颠倒一下,即首部为取值比特,尾部为屏蔽比特。此衍生算法适用于已知ALD设备间Unique ID首部区别较尾部大情况。
二叉树节点中取值比特的取值顺序在
集合范围内变换,例如,调整为[1,0]。
上述衍生算法可以根据情况组合多个同时应用。
用于天线设备唯一标识(Unique ID)扫描的二叉树算法。实施本算法,将大大减少扫描次数,减少扫描所需时间,提高扫描效率。
二叉树算法的各种衍生算法,用于根据实际应用场景,在本文重点描述的二叉树算法基础上,进一步减少扫描次数和提高扫描效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。例如,本发明不局限于应用于天线设备的扫描,任何均适用于本发明的方法。例如该设备特征为,一到多个以设备唯一标识区别开的同类设备以共享总线通信方式连接到同一个设备控制器上,设备控制器需要自动获取其共享总线下所连接的一到多个设备的设备唯一标识后,才能同每个设备分别进行一对一的通信。
权利要求
1.一种设备的扫描方法,该方法包括设备控制器使用二叉树结构构造二进制唯一标识和掩码,设备控制器按先根遍历法遍历该二叉树,对于遍历到的每个节点,执行如下步骤设备控制器广播包含所述二进制唯一标识和掩码的扫描命令;设备接收到该扫描命令,将扫描命令中的唯一标识同设备自身的序列号进行匹配运算,如果设备的序列号匹配,则向设备控制器发送包含其序列号的响应。
2.根据权利要求1所述的方法,其特征在于,设备控制器如果接收到对应某一节点的唯一标识和掩码的正确响应,则获取出其中的序列号,然后截取掉该二叉树中以当前节点为根节点的子树,再按先根遍历法判决下一个遍历节点,继续遍历二叉树,直到无下一个要遍历的节点为止;若设备控制器没有收到任何响应,则截取以当前二叉树节点为根节点子树,按先根遍历法判决下一步遍历的节点继续扫描;如果下一步要遍历的节点不存在,则结束;若设备控制器检测到多个响应导致的冲突,则按先根遍历方法遍历其下子节点继续扫描,直到下一步遍历的节点不存在为止。
3.根据权利要求2所述的方法,其特征在于,所述先根遍历法为如果当前节点有右兄弟节点,则下一个要遍历节点为其右兄弟节点,否则如果当前节点没有右兄弟节点,则下一个要遍历节点为其父节点的右兄弟节点,如果其父节点仍没有右兄弟节点,则下一个要遍历的节点为其父节点的父节点的右兄弟节点,如此循环,直到整个树遍历完为止遍历结束。
4.根据权利要求1所述的方法,其特征在于,该设备的序列号有n字节,所述构造二叉树的步骤包括设备控制器使用二叉树结构构造n×8位的二进制唯一标识和掩码,该二叉树由0至n×8层构成,设m为层号,则每层节点数目为2m个,且第m层的2m个节点值分别为第m+1层的节点的父节点,一个父节点有一个左子节点及一个右子节点,使用各节点值作为唯一标识的值;每个节点值有两部分任意取值部分和固定取值部分,任意取值部分可以不存在,也可以取任意值;掩码值构造成用于屏蔽除固定取值部分的其余位;相同层的所有节点的固定取值部分包含的位号相同;其中第0层的节点值为各位取任意值;第1层中,第0层的左子节点值为将其根节点的其中第x1位取0或1、第0层的右子节点为将其根节点的第x1位取与左子节点相反的值,第1层的x1位为固定取值部分,除x1位的其余位为任意取值部分,第1层的掩码构造成用于屏蔽除x1位的其余位;第2层中,所有节点取值中固定取值部分继承其第1层的父节点的固定取值部分,即所有第2层节点中位号同其父节点固定取值部分位号相同的位也为固定取值,且该位取值同其父节点的该位取值相同,但所有第2层节点的固定取值部分增加一位,设为x2,第1层节点的左子节点x2位的取值为0或1,其右子节点x2位的取值则同左子节点x2位的取值相反,即对应为1或0;第2层的掩码构造成用于屏蔽第2层的所有任意取值部分的所有位,其中x1≠x2;依此类推,第m层所有节点取值中固定取值部分继承其父节点的固定取值部分,即所有第m层节点中位号同其位于第m-1层的父节点固定取值部分位号相同的位也为固定取值,且该位取值同其父节点的该位取值相同,但所有第m层节点的固定取值部分增加一位,设为xm,第m-1层节点的左子节点第xm位的取值为0或1,其右子节点第xm位的取值则同左子节点第xm位的取值相反,即对应为1或0,第m层的任意取值部分为第m-1层节点的任意取值部分所有位除去第xm位。第m层的掩码构造成用于屏蔽第m层的所有任意取值部分的所有位;其中x1≠x2≠xm。
5.根据权利要求1至4之一所述的方法,其特征在于该设备为天线。
6.根据权利要求1至4之一所述的方法,其特征在于所述设备控制器从二叉树的第1层开始遍历。
7.根据权利要求1至4之一所述的方法,其特征在于若预知所述设备的序列号的某段的区别较其他部分大,则首先遍历该段的节点。
8.根据权利要求1至4之一所述的方法,其特征在于若预知所述设备的序列号的其中k个位的值,则将每层节点值的任意取值部分均包含该k个位,其中k为小于n×8的正整数。
全文摘要
本发明涉及一种设备的扫描方法,该方法包括设备控制器使用二叉树结构构造二进制唯一标识和掩码,设备控制器按先根遍历法遍历该二叉树,对于遍历到的每个节点,执行如下步骤设备控制器广播包含所述二进制唯一标识和掩码的扫描命令;设备接收到该扫描命令,将扫描命令中的唯一标识同设备自身的序列号进行匹配运算,如果设备的序列号匹配,则向设备控制器发送包含其序列号的响应。利用该扫描方法,能够大大减少重复扫描次数,从而大力提高设备扫描的效率和速度,解决穷举法扫描次数多时间长的问题。
文档编号H04L29/06GK1863210SQ20061000802
公开日2006年11月15日 申请日期2006年2月23日 优先权日2006年2月23日
发明者周荣国 申请人:华为技术有限公司