专利名称::一种计算循环冗余校验码的方法及装置的制作方法
技术领域:
:本发明涉及冗余校验技术,特别涉及一种计算循环冗余校验码的方法及装置。
背景技术:
:循环冗余校验(CRC)采用多项式编码方法,被处理的数据块可以看作是一个n阶的二进制多项式,具体说就是,CRC校验码的编码方法是用待发送的二进制数据g(x)除以生成多项式m(x),将最后的余数C(X)作为CRC校验码。图I为现有的采用标准查找表计算循环冗余校验的方法流程图,现结合图1,对现有的采用标准查找表计算循环冗余校验的方法进行说明,具体如下设定寄存器的宽度为n,输入比特位数为m;步骤101:定义一个宽度为n比特的寄存器R用来存放循环冗余校验码,并将寄存器R的值置为0;寄存器的长度一般为处理器的基本存储单元的整数倍,比如8比特、16比特、32比特等等;寄存器R的值置为0,即设置(Iv1,...,r0)比特序列为O。步骤102比较m与n的大小关系,如果m小于n,执行步骤103,如果m等于n,执行步骤105,如果m大于n,执行步骤109;步骤103:将寄存器R右移n-m比特,即得到(Iv1,…,rn_kJ序列,将所得到的序列和m个输入比特异或;步骤104:根据步骤103的异或结果,在查找表中找到对应的值,与寄存器R左移m比特得到的序列Ov1,...,r0)异或,得到新的CRC值,之后执行步骤107;步骤105:将输入的m个比特与寄存器R异或;该步骤就是将输入的m比特与Ovh,…,rQ)异或。步骤106:根据步骤105的异或结果,在查找表中找到对应的值,就得到新的CRC值;步骤107:判断是否所有消息比特都被移入处理,如果是,执行步骤108,否则执行步骤102;步骤108:留在寄存器R中的数值就是输入序列的循环冗余校验码;步骤109:结束。图I所示现有的采用标准查找表计算循环冗余校验的方法需要提供存储2mXn比特大小的查找表,虽然运算量小,速度快,但并行度不能过高,且不能处理m大于n时的情况。申请号为200310122447.8的发明专利公开了“一种循环冗余校验的快速计算方法”,该方法与图I所示的方法相比,能够通过预先生成的查找表,快速处理m大于n的情况。图2为现有的循环冗余校验的快速计算方法的流程图。现结合图2,对现有的循环冗余校验的快速计算方法进行说明,具体如下步骤201:根据当前所采用CRCn生成器的逻辑结构,获取并存储该生成器中每个移位寄存器在处理输入序列的每个输入比特时的状态;步骤202:从步骤201所获取的所有移位寄存器的全部状态中,提取出处理完输入序列每个比特后CRCn生成器中每个移位寄存器的状态;并将所提取出的每个移位寄存器状态组成中的移位寄存器初始状态表示部分和输入序列表示部分分别存储;步骤203:以每个分别存储部分包含自变量的不同取值为地址索引,生成该存储部分对应的查找表,所述查找表中包括所述自变量的不同取值与所述处理完输入序列每个比特后CRCn生成器中每个移位寄存器状态间的对应关系;步骤204:以CRCn模式进行CRC校验时,判断当前需处理的比特数是否大于每次能处理的比特数m,如果不是,则按步骤101至步骤109的方法进行处理,如果是,则读取m比特,分别以输入比特和移位寄存器变量的当前取值为地址索引,查找输入序列表示部分对应的查找表和移位寄存器初始状态表示部分对应的查找表,然后将所有查找结果进行异或并保存异或结果;将对应每个移位寄存器的异或结果分别作为该移位寄存器的当前状态,返回步骤204。综上所述,现有的采用标准查找表计算循环冗余校验的方法中,内存消耗和数据处理量之间相互制约,比如以n代表CRC长度,如果每次处理m比特数据,则需要的CRC查找表大小为2mXn比特,以24比特长度CRC为例,如果每次处理32比特数据,需要的CRC查找表大小为232X24,即103079215104比特,如果按每次处理大于8比特数据的方式计算冗余校验,则数据处理量较小,但内存耗费巨大;如果按每次处理8比特数据的方式计算冗余校验,需要的CRC查找表大小为28X24,S卩6144比特,且后续8比特数据的处理依赖前8比特数据处理的结果,虽然内存消耗小,但数据处理量较大,数据处理的并行度较低。
发明内容有鉴于此,本发明的目的在于提供一种计算循环冗余校验码的方法,该方法能够提高数据处理的并行度,降低数据处理量和内存消耗。本发明的目的在于提供一种计算循环冗余校验码的装置,该装置能够提高数据处理的并行度,降低数据处理量和内存消耗。为达到上述目的,本发明的技术方案具体是这样实现的一种计算循环冗余校验码的方法,该方法包括A、根据CRCn生成多项式及移位寄存器的初始状态,生成一个基础查找表crctable、第一个快速查找表crctablea、第二个快速查找表crctableb和第三个快速查找表crctablec;所述n为整数;B、判断待处理的输入数据数据量是否大于或等于32比特,如果是,读取待处理的输入数据的前32比特数据后,执行步骤C;C、将待处理的输入数据的第m个字节数据与第m个字节的移位寄存器的初始状态值进行异或,以异或结果为索引,读取第m个快速查找表,得到第m个中间结果;所述m为I、2和3;将待处理的输入数据的第四个字节作为索引,读取基础查找表,得到第四个中间结果;D、将步骤C得到的第一个中间结果、第二个中间结果、第三个中间结果及第四个中间结果进行异或,将异或结果作为CRCn计算结果。较佳地,所述步骤D之后进一步包括E、判断待处理的输入数据的数据量是否为0,如果是,结束计算,否则,将CRCn计算结果作为移位寄存器的初始状态值,执行步骤B。较佳地,所述步骤B之后进一步包括B’、在判定待处理的输入数据数据量小于32比特时,采用循环冗余校验的快速计算方法计算冗余校验码。上述方法中,所述步骤A包括Al、利用CRCn生成多项式、移位寄存器的初始状态及循环冗余校验的快速计算方法,生成一个基础查找表crctable;A2、根据基础查找表及CRCn生成多项式,从利用标准查找表算法计算获得的CRC值及查找基础查找表的次数,反推演获得第一个快速查找表crctablea、第二个快速查找表crctableb及第三个快速查找表crctablec。上述方法中,所述步骤A2包括根据CRC8的基础查找表crctable及CRC8生成多项式,计算获得第一个快速查找表crctablea表不为crctablea[xO]=crctableOOOO[xO];计算获得第二个快速查找表crctableb表示为crctableb[xO]=crctableOOO[xO];计算获得第三个快速查找表crctablec表示为crctablec[xO]=crctableOO[xO];所述crctableOOOO[xO]表示以字节xO为索引查找基础查找表crctable,并以前一次查表结果作为后一次查表的索引数据,循环查表四次的结果;所述crctableOOO[xO]表示以字节xO为索引查找基础查找表crctable,并以前一次查表结果作为后一次查表的索引数据,循环查表三次的结果;所述crctableOO[xO]表示以字节xO为索引查找基础查找表crctable,并以前一次查表结果作为后一次查表的索引数据,循环查表两次的结果。上述方法中,所述步骤A2包括根据CRC16的基础查找表crctable及CRC16生成多项式,计算获得第一个快速查找表crctablea衰不为:crctableaO[x0]=crctable0000[x0]①crctableOOI[xO]crctableO10[x0]①crctablel00[x0]①crctablell[x0];crctableaI[xO]=crctable1000[xO]crctable101[xO]crctable110[xO];计算获得第二个快速查找表crctableb表示为crctablebO[xO]=crctable000[x0]crctableOI[xO]crctable10[xO];crctablebI[xO]=crctable100[x0]①crctable11[xO];计算获得第三个快速查找表crctablec表示为crctablecO[xO]=crctablel[xO]①crctableOO[xO];crctablecl[xO]=crctablelO[xO];所述crctable入0[x0]表不以字节xO为索引,查找表crctableX获得的查找结果的第一个字节;所述crctableXI[xO]表示以字节xO为索引,查找crctableX获得的查找结果的第二个字节;所述入为a、b或c;所述crctablen[xO]表示以字节xO为索弓丨,查找基础查找表crctable获得的查找结果的第n+i个字节数据,再以第n+i个字节数据为索弓I,查找基础查找表crctable获得的查找结果的第(+1个字节数据,再以第(+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第v+1个字节数据,再以第v+1个字节数据为索弓丨,查找基础查找表crctable获得的查找结果的第U+1个字节数据,即为crctableUV2,n[xO];所述i!的取值均为0或I;所述V的取值均为0或I;所述(的取值均为0或I;所述n的取值为0或I。上述方法中,所述步骤A2包括根据CRC24的基础查找表crctable及CRC24生成多项式,计算获得第一个快速查找表crctablea表不为:crctableaO[xO]=crctableOOOO[xO]crctableOOI[xO]crctableO10[x0]①crctable02[x0]crctablel00[x0]crctablell[x0]crctable20[x0];crctableaI[xO]=crctable1000[xO]crctable101[xO]④crctable110[x0]crctable12[x0]crctable200[x0]crctable21[xO];crctablea2[x0]=crctable2000[x0]①crctable201[x0]crctable210[x0]crctable22[x0];计算获得第二个快速查找表crctableb表示为crctablebO[xO]=crctableOOO[xO]①crctableOI[xO]crctable10[xO]crctable2[xO];crctablebI[xO]=crctable100[x0]crctable11[x0]crctable20[x01;crctableb2[x0]=crctable200[x0]crctable21[x0];计算获得第三个快速查找表crctablec表示为crctablecO[xO]=crctableOO[xO]crctableI[xO]crctablecI[xO]=crctable10[x0]crctable2[xO];crctablec2[xO]=crctable20[xO];所述crctable入0[x0]表示以字节xO为索引,查找表crctable入获得的查找结果的第一个字节;所述crctableXI[xO]表示以字节xO为索引,查找crctableX获得的查找结果的第二个字节;所述crctable入2[xO]表示以字节xO为索引,查找crctable入获得的查找结果的第三个字节;所述X为a、b或c;所述crctableiiV(n[xO]表示以字节xO为索弓丨,查找基础查找表crctable获得的查找结果的第n+i个字节数据,再以第n+i个字节数据为索弓I,查找基础查找表crctable获得的查找结果的第(+1个字节数据,再以第(+1个字节数据为索弓丨,查找基础查找表crctable获得的查找结果的第v+1个字节数据,再以第v+1个字节数据为索弓I,查找基础查找表crctable获得的查找结果的第y+1个字节数据,即为crctableUv,r[[xO];所述ii的取值为0、1或2;所述v的取值为0、1或2;所述4的取值为0、1或2;所述n的取值为O、I或2。一种计算循环冗余校验码的装置,该装置包括数据读取模块,从输入数据中读取32比特的数据,输出第一个字节数据至第一CRC模块,输出第二字节数据至第二CRC模块,输出第三字节数据至第三CRC模块,输出第四字节数据至第四CRC模块;第一CRC模块,将第一个字节数据与从状态寄存器更新模块中读取的第一个字节的初始状态值进行异或,以异或结果为索引,查找该模块保存的第一个快速查找表crctablea,获得第一个中间结果,输出第一个中间结果至CRC计算模块;第二CRC模块,将第二个字节数据与从状态寄存器更新模块中读取的第二个字节的初始状态值进行异或,以异或结果为索引,查找该模块保存的第二个快速查找表crctableb,获得第二个中间结果,输出第二个中间结果至CRC计算模块;第三CRC模块,将第三个字节数据与从状态寄存器更新模块中读取的第三个字节的初始状态值进行异或,以异或结果为索引,查找该模块保存的第三个快速查找表crctablec,获得第三个中间结果,输出第三个中间结果至CRC计算模块;第四CRC模块,以第四个字节数据为索弓丨,查找该模块保存的基础查找表crctable,获得第四个中间结果,输出第四个中间结果至CRC计算模块;CRC计算模块,将接收到的第一个中间结果、第二个中间结果、第三个中间结果和第四个中间结果进行异或,将异或结果作为更新后的状态值,输出至状态寄存器更新模块保存;状态寄存器更新模块,将接收到的更新后的状态值作为CRC计算结果进行保存。较佳地,该装置进一步包括查找表生成模块,根据CRC的位数n及CRCn的生成多项式,生成一个基础查找表crctable、第一个快速查找表crctablea、第二个快速查找表crctableb和第三个快速查找表crctablec,输出第一个快速查找表crctablea至第一CRC模块保存,输出第二个快速查找表crctableb至第二CRC模块保存,输出第三个快速查找表crctablec至第三CRC模块保存,输出基础查找表crctable至第四CRC保存。由上述的技术方案可见,本发明提供了一种计算循环冗余校验码的方法及装置,根据CRCn的生成多项式产生一个基础查找表,再根据CRC的位数n和与该CRCn对应的基础查找表,对标准查找表算法进行反推演,获得三个快速查找表,将输入数据的前三个字节和移位寄存器相应字节的初始状态值的异或结果作为索引,查找三个快速查找表,将输入数据的第四个字节作为索引查找基础查找表,将四个查表结果进行异或,获得移位寄存器的当前状态,及CRCn计算结果。采用本发明的方法及装置,能够独立地进行四个数据的查表,提高数据处理的并行度,降低数据处理量和内存消耗。图I为现有的采用标准查找表计算循环冗余校验的方法流程图。图2为现有的循环冗余校验的快速计算方法的流程图。图3为本发明计算循环冗余校验码的方法流程图。图4为CRC8生成器的逻辑结构示意图。图5为CRC16生成器的逻辑结构示意图。图6为本发明计算循环冗余校验码的装置的结构示意图。具体实施例方式为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。本发明仅以处理32比特输入数据的方法为例进行说明,处理32整数倍比特的输入数据的方法与处理32比特输入数据的方法相同,以下不再具体说明处理32整数倍比特的输入数据的方法。图3为本发明计算循环冗余校验码的方法流程图。现结合图3,对本发明计算循环冗余校验码的方法进行说明,具体如下步骤301:生成一个基础查找表和3个快速查找表;该步骤中包括步骤3011,利用CRCn生成多项式、CRCn生成器包含的移位寄存器的初始状态、及以待处理的输入数据为自变量,生成一个基础查找表;步骤3012,根据基础查找表及CRCn生成多项式,从利用标准查找表算法计算获得的CRC值及查找基础查找表的次数,反推演获得第一个快速查找表、第二个快速查找表及第三个快速查找表。其中,n为整数,可为8、16或24。步骤3011中,可采用图2中步骤201至步骤203的方法生成一个基础查找表crctable;该基础查找表中包括所述自变量的不同取值与所述处理完输入序列每个比特后CRCn生成器中每个移位寄存器当如状态间的对应关系。下面以CRC8、CRC16和CRC24为例,说明生成基础查找表和快速查找表的方法,具体如下CRC8的生成多项式如公式(I)所示gCEC8(D)=[D8+D7+D4+D3+D+l](I)CRC的数据长度为8比特。CRC8生成器的逻辑结构如图4所示,CRC8的生成器包括8个移位寄存器RlR8,图4中的表示模2加,也就是异或。假设以RlR8分别代表这8个移位寄存器的初始状态,并且当前的待处理的输入数据为M,Mi代表输入序列的第i位比特位,本实施例中,输入序列M由8个比特位组成,即MlM8。那么,可以根据图4得出每次处理一个输入比特时每个移位寄存器的状态更新情况,其中移位寄存器的所有状态都是由初始状态RlR8和待处理的输入数据M表示的。每个移位寄存器每个时刻的状态具体如表I所示权利要求1.一种计算循环冗余校验码的方法,其特征在于,该方法包括A、根据CRCn生成多项式及移位寄存器的初始状态,生成一个基础查找表crctable、第一个快速查找表crctablea、第二个快速查找表crctableb和第三个快速查找表crctablec;所述n为整数;B、判断待处理的输入数据数据量是否大于或等于32比特,如果是,读取待处理的输入数据的前32比特数据后,执行步骤C;C、将待处理的输入数据的第m个字节数据与第m个字节的移位寄存器的初始状态值进行异或,以异或结果为索引,读取第m个快速查找表,得到第m个中间结果;所述m为1、2和3;将待处理的输入数据的第四个字节作为索弓丨,读取基础查找表,得到第四个中间结果;D、将步骤C得到的第一个中间结果、第二个中间结果、第三个中间结果及第四个中间结果进行异或,将异或结果作为CRCn计算结果。2.根据权利要求I所述的方法,其特征在于,所述步骤D之后进一步包括E、判断待处理的输入数据的数据量是否为O,如果是,结束计算,否则,将CRCn计算结果作为移位寄存器的初始状态值,执行步骤B。3.根据权利要求I或2所述的方法,其特征在于,所述步骤B之后进一步包括B’、在判定待处理的输入数据数据量小于32比特时,采用循环冗余校验的快速计算方法计算冗余校验码。4.根据权利要求3所述的方法,其特征在于,所述步骤A包括Al、利用CRCn生成多项式、移位寄存器的初始状态及循环冗余校验的快速计算方法,生成一个基础查找表crctable;A2、根据基础查找表及CRCn生成多项式,从利用标准查找表算法计算获得的CRC值及查找基础查找表的次数,反推演获得第一个快速查找表crctablea、第二个快速查找表crctableb及第三个快速查找表crctablec。5.根据权利要求4所述的方法,其特征在于,所述步骤A2包括根据CRC8的基础查找表crctable及CRC8生成多项式,计算获得第一个快速查找表crctablea表不为crctablea[xO]=crctableOOOO[xO];计算获得第二个快速查找表crctableb表示为crctableb[xO]=crctableOOO[xO];计算获得第三个快速查找表crctablec表示为crctablec[xO]=crctableOO[xO];所述crctableOOOO[xO]表示以字节xO为索引查找基础查找表crctable,并以前一次查表结果作为后一次查表的索引数据,循环查表四次的结果;所述crctableOOO[xO]表示以字节xO为索引查找基础查找表crctable,并以前一次查表结果作为后一次查表的索引数据,循环查表三次的结果;所述crctableOO[xO]表示以字节xO为索引查找基础查找表crctable,并以前一次查表结果作为后一次查表的索引数据,循环查表两次的结果。6.根据权利要求4所述的方法,其特征在于,所述步骤A2包括根据CRC16的基础查找表crctable及CRC16生成多项式,计算获得第一个快速查找表crctablea表不为crctableaO[xO]=crctableOOOO[xO]①crctable001[x0]crctable010[x0]crctablelOO[xO]crctablell[xO];crctableaI[xO]=crctable1000[xO]crctable101[xO]①crctable110[xO];计算获得第二个快速查找表crctableb表示为crctablebO[xO]=crctableOOO[xO]crctableOI[xO]crctable10[xO];crctablebI[xO]=crctable100[xO]①crctable11[xO];计算获得第三个快速查找表crctablec表示为crctablecO[xO]=crctableI[xO]①crctableOO[xO];crctablecl[xO]=crctablelO[xO];所述crctable入0[x0]表示以字节xO为索引,查找表crctable入获得的查找结果的第一个字节;所述crctable入I[xO]表示以字节xO为索引,查找crctable入获得的查找结果的第二个字节;所述、为a、b或c;所述crctableiiV(n[xO]表示以字节xO为索引,查找基础查找表crctable获得的查找结果的第n+1个字节数据,再以第n+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第(+1个字节数据,再以第(+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第v+1个字节数据,再以第v+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第u+1个字节数据,即为crctableUv2,n[xO];所述U的取值均为0或I;所述V的取值均为0或I;所述(的取值均为0或I;所述n的取值为0或I。7.根据权利要求4所述的方法,其特征在于,所述步骤A2包括根据CRC24的基础查找表crctable及CRC24生成多项式,计算获得第一个快速查找表crctablea表不为crctableaO[x0]=crctable0000[x0]crctableOOI[xO]crctableO10[x0]crctable02[x0]crctable100[xO]①crctable11[x0]crctable20[x0];crctableaI[xO]=crctable1000[x0]crctable101[xO]crctable110[x0]crctable12[xO]crctable200[xO]crctable21[xO];crctablea2[x0]=crctable2000[x0]crctable201[x0]crctable210[x0]crctable22[x0];计算获得第二个快速查找表crctableb表示为crctableb0[x0]=crctable000[x0]crctable01[x0]crctablel0[x0]crctable2[xO];crctablebI[xO]=crctable100[x0]crctable11[xO]crctable20[xO];crctableb2[x0]=crctable200[x0]crctable21[x0];计算获得第三个快速查找表crctablec表示为crctablecO[xO]=crctableOO[xO]crctablel[xO]crctablecI[xO]=crctableIO[xO]①crctable2[xO];crctablec2[xO]=crctable20[xO];所述crctable入O[xO]表示以字节xO为索引,查找表crctable入获得的查找结果的第一个字节;所述crctable入I[xO]表示以字节xO为索引,查找crctable入获得的查找结果的第二个字节;所述crctableX2[xO]表示以字节xO为索引,查找crctableX获得的查找结果的第三个字节;所述X为a、b或c;所述crctableiiV(n[xO]表示以字节xO为索引,查找基础查找表crctable获得的查找结果的第n+1个字节数据,再以第n+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第(+1个字节数据,再以第(+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第v+1个字节数据,再以第v+1个字节数据为索引,查找基础查找表crctable获得的查找结果的第ii+1个字节数据,即为crctableUv,r\[xO];所述U的取值为0、1或2;所述V的取值为0、1或2;所述(的取值为0、1或2;所述n的取值为O、I或2。8.一种计算循环冗余校验码的装置,其特征在于,该装置包括数据读取模块,从输入数据中读取32比特的数据,输出第一个字节数据至第一CRC模块,输出第二字节数据至第二CRC模块,输出第三字节数据至第三CRC模块,输出第四字节数据至第四CRC模块;第一CRC模块,将第一个字节数据与从状态寄存器更新模块中读取的第一个字节的初始状态值进行异或,以异或结果为索引,查找该模块保存的第一个快速查找表crctablea,获得第一个中间结果,输出第一个中间结果至CRC计算模块;第二CRC模块,将第二个字节数据与从状态寄存器更新模块中读取的第二个字节的初始状态值进行异或,以异或结果为索引,查找该模块保存的第二个快速查找表crctableb,获得第二个中间结果,输出第二个中间结果至CRC计算模块;第三CRC模块,将第三个字节数据与从状态寄存器更新模块中读取的第三个字节的初始状态值进行异或,以异或结果为索引,查找该模块保存的第三个快速查找表crctablec,获得第三个中间结果,输出第三个中间结果至CRC计算模块;第四CRC模块,以第四个字节数据为索引,查找该模块保存的基础查找表crctable,获得第四个中间结果,输出第四个中间结果至CRC计算模块;CRC计算模块,将接收到的第一个中间结果、第二个中间结果、第三个中间结果和第四个中间结果进行异或,将异或结果作为更新后的状态值,输出至状态寄存器更新模块保存;状态寄存器更新模块,将接收到的更新后的状态值作为CRC计算结果进行保存。9.根据权利要求8所述的装置,其特征在于,该装置进一步包括查找表生成模块,根据CRC的位数n及CRCn的生成多项式,生成一个基础查找表crctable、第一个快速查找表crctablea、第二个快速查找表crctableb和第三个快速查找表crctablec,输出第一个快速查找表crctablea至第一CRC模块保存,输出第二个快速查找表crctableb至第二CRC模块保存,输出第三个快速查找表crctablec至第三CRC模块保存,输出基础查找表crctable至第四CRC保存。全文摘要本发明提供了一种计算循环冗余校验码的方法及装置,根据CRCn生成多项式及移位寄存器的初始状态,生成基础查找表、第一个快速查找表、第二个快速查找表和第三个快速查找表;在确认待处理的输入数据量大于或等于32比特时,将待处理的输入数据的第m个字节数据与第m个字节的移位寄存器的初始状态值进行异或,以异或结果为索引,读取第m个快速查找表,得到第m个中间结果;将待处理的输入数据的第四个字节作为索引,读取基础查找表,得到第四个中间结果;将第一个中间结果、第二个中间结果、第三个中间结果及第四个中间结果进行异或,获得CRCn计算结果。采用本发明的方法及装置,能够提高数据处理的并行度,降低数据处理量和内存消耗。文档编号H03M13/09GK102739258SQ20111009367公开日2012年10月17日申请日期2011年4月14日优先权日2011年4月14日发明者刘富芝,史满姣,许萍申请人:普天信息技术研究院有限公司