一种用于通信系统的号码十进制数奇偶个数识别方法与流程

文档序号:11778125阅读:274来源:国知局
一种用于通信系统的号码十进制数奇偶个数识别方法与流程
本发明属于通信领域,涉及一种用于通信系统的号码十进制数奇偶个数识别方法。
背景技术
:通信的一个重要特点就是需要通信双方以约定好的编码方式交换数据,tlv编码是一种常用的编码方式。tlv为type、length以及value的缩写,type唯一标识数据单元的类型,length标识后续数据单元的value域所占字节的个数,value为数据单元本身内容。通信时,发送方将所需数据的单元按tlv的方式编码方式发送;接收时,接收方先根据type域解码数据单元类型,再根据length和value域解码该类型对应数据单元的内容。所谓bcd码,就是每个十进制数用四位二进制数编码表示。相关行业术语见下表1:表1行业命令和字符释义通信系统中,对于包含多个十进制数的号码的通信,例如:mdn、gdn等,tlv编码是常用的一种形式,而tlv的value值通常都以bcd方式进行编码,如图1所示。其中图1的各符号含义见下表2:表2图1英文及字符释义正因为号码包含多个十进制数字,十进制数字的个数为可变的,可为奇数,也可以为偶数。而tlv编码length为value域的字节的个数,根据每四位二进制数表示一个十进制数的原则,则每字节可对两个十进制数字进行编码,而最后一个字节既可对一个十进制数字编码,又可对两个十进制数字编码,则存在不同十进制个数号码而tlv编码后bcd码length相同的情况。例如:号码长度为2m和2m-1(m>0,且为整数),以bcd方式编码后的length都为m。这种情况下,发送方编码不存在问题,但接收方解码存在问题,接收方解码时并不知道号码的长度为奇数还是偶数,解码后号码的长度可以是2m,也可以是2m-1。这种情况下会造成接收方识别通信号码错误的问题,造成后续通信相关的错误问题,因此,需要提供一种方法来识别通信号码的十进制数字的奇偶个数。针对这一问题,目前3gpp的24301协议对于epsmobileidentity的实现方式由奇偶bit来进行识别,如图2所示,这主要是因为epsmobileidentity的编码中存在typeofidentity字段,该字段已经占用value第一个字节的3bit,第一个字节还剩余空闲bit可以使用,3gpp使用这种方式编码,不管号码是奇数个数还是偶数个数并没有浪费字节。其中图2的各符号含义见下表3:表3图2英文及字符释义命令或字符释义epsmobileidentityieieps移动标识的信元标识lengthofepsmobileidentitycontentseps移动标识内容长度odd/evenindic奇/偶指示位typeofidentity移动标识类型identitydigitp移动标识数字p(p为数字序号)octet4*第4字节及以后字节而如果当前bcdnumber所表示号码(如图1)如果还使用这种方式实现编码,则在号码十进制数字个数为偶数的场景下白白浪费了一个字节且需要改动原有bcdnumber的tlv编码框架。这种实现方式不仅增加额外的人力、物力,还浪费通信带宽,降低效率。技术实现要素:本发明针对现有技术的问题,结合当前通信系统bcdnumbertlv编码框架,设计一种方案实现bcdnumber表示号码十进制数字奇偶个数的识别,在保证不改动原有bcdnumbertlv编码架构的基础上实现目的。本发明的技术方案提供一种用于通信系统的号码十进制数奇偶个数识别方法,通过对bcdnumbertlvvalue最后4bit的bcd码的范围来识别bcdnumber表示号码十进制数字的奇偶个数;通信发送方编码时根据通信号码的十进制数字奇偶个数设置tlvvalue最后4bit为不同范围的bcd码,实现方式包括通过计算得到bcd码表示的十进制数字的范围,在发送方编码时将最后4bit的bcd码设置为有效范围或有效范围之外,用于标识该bcd码是正常十进制数字的编码还是结束标志;通信接收方解码时判别tlvvalue的最后4bit的bcd码的范围,如果最后4bitbcd码的范围在十进制数字有效范围,则bcdnumber标识的十进制个数为偶数个数,如果最后4bitbcd码的范围不在十进制数字有效范围,则根据发送方和接收方预先约定的结束标志来识别。而且,结束标志由接收方和发送方在通信之前约定,编码和解码对结束标志进行判断的值或范围是一致的。而且,当bcdnumber表示的号码的十进制数字个数为奇数时,最后4bit编码值为十进制数字bcd码无效范围作为结束标志。而且,结束标志在十进制数字bcd码的有效编码范围之外,范围为1010~1111。而且,结束标志取1111。而且,发送方编码bcdnumber的流程如下,首先,获取需要发送的号码以及号码表示的十进制数字个数m,然后判别十进制数字个数,如果是奇数,bcdnumbertlv编码如下,1.t为对应bcdnumber协议规定type;2.length设置为m/2+1;3.按协议约定的方式对value进行编码;4.设置value的最后4bit为1111并进行编码。如果是偶数,bcdnumbertlv编码如下,1.t为对应bcdnumber协议规定type;2.length设置为m/2;3.按协议约定的方式对value所有字节和bit进行编码。而且,接收方解码bcdnumber的流程如下,首先,按协议约定的方式对bcdnumber解码并获取每个bcd码解码后的十进制数字,然后判别value的最后4bit解码后的值,如果值为0xf,bcdnumber表示号码十进制数字个数为奇数,为2length-1,号码的各个十进制数字为value中除最后4bit外其他bcd码的解码后的十进制数字;如果值为0~9,bcdnumber表示号码十进制数字个数为偶数,为2length,号码的各个十进制数字为value中各bcd码解码后的十进制数字。本发明技术方案的主要改进为:使用十进制数字bcd码的范围值来判断bcdnumber表示号码编码是否结束进而判断号码的十进制数字的奇偶个数。所述技术方案的主要优势在于:1.在原有bcdnumbertlv编码框架基础上进行,架构重用,兼容性较好,且实现简单。2.没有增加额外的字节和bit来识别bcdnumber表示号码的十进制的个数,充分利用通信带宽。3.应用广泛,可以应用到涉及bcdnumber编解码的所有通信系统,包括有线通信系统和无线通信系统,特别是集群通信系统,具有重要的市场价值。附图说明图1是bcdnumber的tlv编码框架图。图2是3gppepsmobileidentity编码结构图。图3是本发明实施例的发送方编码bcdnumber实现流程图。图4是本发明实施例的接收方解码bcdnumber实现流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提出一种用于通信系统号码十进制数奇偶个数识别的方法,通过对bcdnumbertlvvalue最后4bit的bcd码的范围来识别bcdnumber表示号码十进制数字的奇偶个数。通信发送方编码时根据通信号码的十进制数字奇偶个数设置tlvvalue最后4bit为不同范围的bcd码;本发明进一步提出,所述在通信发送方编码时根据号码的十进制数字奇偶个数设置value最后4bit为不同范围的bcd码,是通过计算得到bcd码表示的十进制数字有一定的范围,在发送方编码时将最后4bit的bcd码设置为有效范围或有效范围之外,用于标识该bcd码是正常十进制数字的编码还是结束标志。通信接收方解码时判别tlvvalue的最后4bit的bcd码的范围;相应地,所述在通信接收方解码时判别tlvvalue的最后4bit的bcd码的范围,bcd码的有效范围是通过计算十进制数字的范围得到的;如果最后4bitbcd码的范围在十进制数字有效范围,则bcdnumber标识的十进制个数为偶数个数,如果最后4bitbcd码的范围不在十进制数字有效范围,则根据发送方和接收方预先约定的结束标志来识别。进一步地,结束标志是接收方和发送方在通信之前约定好的,结束标志编码和解码进行判断的值或范围是一致的。这样能够进一步提高效率。如图3、图4所示,是本发明的一个实施例,提供了一种如何识别通信系统号码十进制数奇偶个数识别的方法。本发明实施例充分利用十进制数bcd码的范围值,根据bcdnumber的value最后4bit(图1中“numberdigit/endmarkm+1=[0000-1111]”处)bcd码的范围是十进制数编码的有效范围还是无效范围来判断bcdnumber所表示号码的十进制数的奇偶个数。实施例中,提供通信双方如何编解码bcdnumber以及如何识别bcdnumber对应号码十进制个数的场景,涉及到发送方和接收方,发送方负责对bcdnumber进行编码,接收方负责对bcdnumber进行解码。通信的网元既可以作为通信的发送方,也可以作为通信的接收方。通信的发送方在发送数据之前,增加对bcdnumbertlv编码中value最后4bit的编码范围值的特殊编码方式来区分所表示号码的十进制数字奇偶个数。通信的接收方在接收数据之后,增加对bcdnumbertlv编码中value最后4bit的编码范围值的判断来确定发送方发送的该bcdnumber所表示的号码的十进制数字的奇偶个数以进一步确定bcdnumber表示的号码。所述编码范围值的特殊编码方式为bcdnumber表示的号码的十进制数字个数为奇数时,最后4bit编码值为十进制数字bcd码无效范围作为结束标志。所述编码范围值的特殊编码方式为bcdnumber表示的号码的十进制数字个数为偶数时,最后4bit编码值在十进制数字bcd码的有效范围作为正常十进制数字编码。所述特殊编码方式根据通信双方约定的方式实现,通信发送方以什么方式编码,则通信接收方根据该方式进行解码。具体实现如下:通信过程中,通信发送方负责以按照通信约定的方式对bcdnumber进行特殊编码。所述的“特殊编码”是指,在对bcdnumber进行编码时,如果bcdnumber对应号码的十进制数个数为奇数个数,则需设置tlvvalue的最后4bit为结束标志来编码识别;如果为偶数个数,则tlvvalue的最后4bit按实际bcdnumber表示的号码的最后一个十进制数字进行编码,范围为0000~1001。该结束标志需在十进制数字bcd码的有效编码范围之外,即为无效码,范围为1010~1111。参见图3,本发明实施例的发送方编码bcdnumber实现流程如下:首先,获取需要发送的号码以及号码表示的十进制数字个数m,然后判别十进制数字个数,如果是奇数,bcdnumbertlv编码如下:1.t为对应bcdnumber协议规定type;2.length设置为m/2+1;3.按协议约定的方式对value进行编码;4.设置value的最后4bit为1111并进行编码。如果是偶数,bcdnumbertlv编码如下:1.t为对应bcdnumber协议规定type;2.length设置为m/2;3.按协议约定的方式对value所有字节和bit进行编码。其中,length为bcd号码长度。通信过程中,通信接收方负责接收发送方发送的bcdnumber并按约定的方式对bcdnumber进行特殊解码。所述的“特殊解码”是指,在对bcdnumber进行解码时,如果tlv中length要求的value的最后4bit为结束标志,即范围为1010~1111,则认为bcdnumber的十进制数字个数为奇数个数,为2×length-1,并认为解码的最后4bit为无效值;如果tlv中length要求的value的最后4bit范围为0000~1001,则认为bcdnumber表示号码的十进制数字个数为偶数个数,为2×length,最后4bit解码后为bcdnumber表示号码的最后一个十进制数字。参见图4,本发明实施例的接收方解码bcdnumber实现流程如下:首先,按协议约定的方式对bcdnumber解码并获取每个bcd码解码后的十进制数字,然后判别value的最后4bit解码后的值,如果值为0xf,bcdnumber表示号码十进制数字个数为奇数,为2length-1。号码的各个十进制数字为value中除最后4bit外其他bcd码的解码后的十进制数字;如果值为0~9,bcdnumber表示号码十进制数字个数为偶数,为2length。号码的各个十进制数字为value中各bcd码解码后的十进制数字。为便于实施方便,发送方和接收方可约定结束标志为固定值1111。具体实施时,可采用计算机软件技术实现以上方案的自动运行。以上所述仅为本发明的实施例之一,并不用于限制本发明,凡在本发明原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1