信息发送方法和设备
技术领域
本发明属于数据传输领域,尤其涉及一种信息发送方法和设备。
背景技术
CRC(Cyclical Redundancy Check:循环冗余校验)是利用除法及余数的原理来控制数据传输的正确率的一种检验算法,由于其编码简单、出错率低而被通信系统所广泛应用。
循环冗余校验基本原理是:在发送方和接收方采用同一个固定生成多项式G(X),G(X)的最高次幂为r。
1、在发送方,待发送的原始信息的多项式表示为C(X),将C(X)左移r位表示为rC(X),rC(X)除以生成多项式G(X)得到r位的校验码多项式R(X),那么得到编码后的带循环冗余校验码的多项式T(X)=rC(X)+R(X),并发送该T(X)。
2、在接收方,接收到T(X)后,将T(X)除以固定的生成多项式G(X),如果余数为0,则表示数据传输无误。
利用循环冗余校验可以高效的传输待发送的原始信息。如在WLAN(WirelessLocal Area Networks:无线局域网)IEEE802.11系统中,发送端在HT-SIG(High-Throughput SIGNAL field:高吞吐量信号域)或VHT-SIG(Very High-Throughput SIGNALfield:超高速信号域)中有一个循环冗余校验码字段,用于确认(V)HT-SIG中所包含的信息传输正确。如图1所示,HT-SIG包括48个比特,分成HT-SIG1和HT-SIG2两部分,分别有24个比特,HT-SIG2的10-18位为循环冗余校验码位,用于保护HT-SIG1的0-23位和HT-SIG2的0-9位字段的原始信息。
在实际情况下,可能会新增加数据位来传输信息,比如在IEEE802.11ah标准中,由于存在大量的终端,为了省电,允许部分没有业务的终端进入休眠状态,因此,需要新增加数据位来传递报文的业务类型。由于HT-SIG1的0-23位和HT-SIG2的0-9位都已经定义了相应的状态信息,如果新增加一个数据位的话,需要对现有的芯片和协议做很大的修改,开发成本太大。
发明内容
本发明实施例提供一种信息发送方法和设备,在不增加原始信息的数据位的前提下,有效的传送信息,以减少开发成本。
本发明实施例是这样实现的,一种信息发送方法,所述方法包括下述步骤:
根据信息与序列的映射表,选择待发送原始信息对应的序列;
根据所述序列对所述原始信息进行循环冗余校验得到循环冗余校验码;
发送原始信息和循环冗余校验码。
本发明实施例提供一种信息发送设备,所述设备包括:
选择单元:根据信息与序列的映射表,选择待发送原始信息对应的序列;
编码单元:用于根据所述序列对所述原始信息进行循环冗余校验得到循环冗余校验码;
发送单元:用于发送原始信息和循环冗余校验码。
本发明的实施例提供一种信息接收方法,所述方法包括如下步骤:
接收循环冗余校验码和原始信息;
根据信息与序列的映射表和所述循环冗余校验码,由映射表中的序列对接收的原始信息分别进行循环冗余校验解码;
如果解码正确,根据信息与序列的映射表获取此时使用的序列在所述映射表对应的信息。
本发明实施例提供一种信息接收设备,所述设备包括:
接收单元:用于接收循环冗余校验码和原始信息;
解码单元:用于根据信息与序列的映射表和接收的循环冗余校验码,由映射表中的序列对接收的原始信息分别进行循环冗余校验循环冗余校验解码;
获取单元:用于如果解码正确,根据信息与序列的映射表获取此时使用的序列在所述映射表对应的信息。
在本发明实施例中,根据在发送方和接收方存储的信息与序列的映射表,选择需要携带的信息所对应的序列,将该选择的序列作为生成多项式对原始信息或者原始信息与所选择的序列组成的新信息进行循环冗余校验循环冗余校验编码得到循环冗余校验码,将循环冗余校验码与原始信息一起发送至接收方,接收方接收到信息使用存储的映射表中的序列进行循环冗余校验循环冗余校验解码,当解码正确时,此时解码所使用的序列即为发送方编码所用的序列,在映射表中查找该序列所对应的信息,从而使接收方得到该信息。本发明实施例不用增加原始信息的数据位,能够完成信息的发送和接收,有效的传送数据。与现有技术中一般的增加原始信息的数据位技术相比,本发明实施例可以不需要对现有芯片和协议做修改,节约开发成本。
附图说明
图1为高吞吐量信号域的数据位格式示意图;
图2是本发明第一实施例提供的信息发送方法实现流程图;
图3本发明第一实施例提供的信息接收方法实现流程图;
图4是本发明第二实施例提供的又一信息发送方法实现流程图;
图5是本发明第二实施例提供的又一信息发送方法实现流程图;
图6是本发明第三实施例提供的信息发送和接收设备框图;
图7为本发明第四实施例提供的信息发送和接收设备框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,将平时的循环冗余校验编码与解码所采用的生成码替换为多个序列,并通过接收双方约定每个序列指定相应的信息,当需要携带某一信息时,发送方选用该信息所对应的序列作为生成多项式进行循环冗余校验循环冗余校验编码,在接收当且仅当使用同样的序列解码时才能余数为0,因而根据解码结果可得到该序列所对应的信息,完成信息的携带传递。由于携带的信息通过循环冗余校验编码所使用的不同的生成多项式进行携带,解码时仅能用相同的生成多项式解码,通过逐个解码后得到编码使用的序列,查表即可得到该序列所对应的信息。无需要修改芯片和协议,开发成本小。
实施例一:
图2示出了本发明信息发送方法实现流程,详述如下:
在步骤S201中,根据信息与序列的映射表,选择待发送原始信息对应的序列。
具体的,首先根据需要携带信息的的数量,确定序列的长度。理论上,长度为a的序列可以携带的信息的个数为2的a次方个,但考虑到生成多项式对于校验结果精确性的要求,如在不同位发生错误时,应该使余数不同,排除一些影响校验结果精确性的序列,所得到的序列与需要携带的信息的个数一一进行匹配,如下表所示:
序列1 |
信息1 |
............ |
............ |
序列K |
信息K |
............ |
............ |
序列N |
信息N |
在本实施例中,假设需要携带信息K,根据表格可知,信息K所与序列K对应,因此选择序列K,假设该序列为八位的二进制序列11001,那么该序列所对应的多项式为x4+x3+1,其最高次幂为4。
在步骤S202中,根据所述序列对所述原始信息进行循环冗余校验得到循环冗余校验码,该步骤可以分为多种情况,将所述选择的序列对应的生成多项式对原信息进行循环冗余校验得到循环冗余校验码,或直接对原始信息与所选择的序列组成的新信息进行循环冗余校验得到循环冗余校验码。
假设需要发送的原始信息的字段代码为1011001,对应的多项式为x6+x4+x3+1,其向左移4位后得到x10+x8+x7+x4,对应的代码为10110010000,对移位后的序列除以映射表抉择的序列11001,得到的余数即为循环冗余校验码。采用计算机的模二除法,即,除数和被除数做异或运算。进行异或运算时除数和被除数最高位对齐,
故本实施例所对应的循环冗余校验码为1010。
在步骤S203中,发送原始信息和循环冗余校验码。
根据在步骤S202中得到的循环冗余校验码1010,将其与原始信息1011001一起发送至接收方。
图3示出了本发明信息接收方法实现流程,详述如下:
在步骤S301中,接收带循环冗余校验码的原始信息。
接收由步骤S203发送的循环冗余校验码1010与原始信息1011001。
在步骤S302中,根据信息与序列的映射表和接收的循环冗余校验码,由映射表中的序列对接收的原始信息分别进行循环冗余校验循环冗余校验解码。
在对接收的数据进行循环冗余校验循环冗余校验解码前,在接收方也存储有与发送方一致的信息与序列的映射表,具体解码过程如下:
将得到的循环冗余校验码1010直接添加于原始信息1011001之后,得到序列为10110011010,并将该序列依次除以映射表中的序列,在解码过程中,由序列10110011010除以映射表中的序列1、映射表中的序列2……直到解码得到余数为0的序列K为止。根据前后映射表中数据的一致性,序列K的内容为11001。
在步骤S303中,如果解码正确,查找此时使用的序列在所述映射表对应的信息。
根据11001在映射表中序列K所对应的信息,查找得到该信息K,即信息K与原始信息成功由接收方接收。
本实施例在不用新增数据位的情况下,准确有效的完成数据的传送。所携带的信息的个数与序列的长度有关,根据信息的个数的多少相应增减映射表中的映射个数,可携带的信息量大。
实施例二:
图4示出了本发明信息发送方法实现流程,详述如下:
在步骤S401中,建立与接收方一致的信息与序列的映射表。
其中,所述信息一般为控制信息,当然也可以为其它的信息等,可以根据用户的需要灵活在映射表中进行定义。
此处,建立与接收方一致的信息与序列的映射表需要在数据交换的双方进行循环冗余校验循环冗余校验前保持一致,此步骤与步骤S501中描述的建立与发送方一致的信息与序列的映射表的表述一致。用户可通过同步更新或者导入映射表格数据等方式保持收、发双方映射表内容的一致性。本实施例中,所建立的映射表格如下:
控制信息位序列1 |
控制信息1 |
............ |
............ |
控制信息位序列K |
数据包是offloading类型 |
............ |
............ |
控制信息位序列N |
控制信息N |
在步骤S402中,根据信息与序列的映射表,选择待发送原始信息对应的序列。
在本实施例中,假设需要发送的控制信息为数据包是off loading(卸载)类型,那么根据表格中该选择控制信息所对应的控制信息位序列K,序列K对应的生成多项式最高次幂为r,r最小的情况为1,即对应的生成多项式为x+1,假设此实施例中的控制信息序列K为11001,所对应的生成多项式为4x+3x+1,所对应的多项式的最高次幂r=4,所需发送的原始信息对应的序列为1011001。
在步骤S403中,在原始信息左移r+1位后与所述选择的序列求和。
具体的,原始信息为1011001左移r+1=5位,得到序列101100100000,与选择的序列11001求和,得到序列101100111001。
在步骤S404中,将所述求和得到的序列向左移r位。
将在步骤S403求和得到的序列101100111001左移4位,得到序列1011001110010000。
在步骤S405中,将所述移位后的序列除以所述选择的序列,得到的余码即为循环冗余校验码。
移位后的序列为1011001110010000,将其除以选择的控信息位序列11001,得到的循环冗余校验码为0001。
在步骤S406中,发送原始信息和循环冗余校验码。
此处,将原始信息1011001与循环冗余校验码0001一起发送至接收方。
图5示出了本发明信息接收方法实现流程,详述如下:
在步骤S501中,建立与发送方一致的信息与序列的映射表。
此处映射表的建立与发送方的建立方式相同,并且要求与发送方的映射表中的信息同步一致,以确保校验得到的携带信息的正确性。
在步骤S502中,接收带循环冗余校验码的原始信息。
根据步骤S406所述,所接收的信息为原始信息1011001与循环冗余校验码0001。
在步骤S503中,将映射表中的控制信息位序列添加到原始信息后,循环冗余校验码添加到所述映射表中的该序列后。
与实施例1不同的是,本实施例需要将映射表中的序列直接添加到原始信息之后,然后将循环冗余校验码添加到所述映射表中的该序列后。当然在其它实施方式中也可以将映射表中的序列直接添加到原始信息之前,此实施例仅举例说明其中一种方式,其它方式的操作方式与其类似。映射表中的序列11001所对应的多项式的最高次幂为4,用逻辑语言描述为将原始信息的序列左移4+1位与映射表中的序列求和,然后将求和后的序列再将左移4位,与循环冗余校验码求和,如果在映射表中有N个序列,那么可以得到N个由带原始信息、控制信息位序列和循环冗余校验码组成的序列,如下表所示:
在步骤S504中,将所述添加有映射表中的序列和循环冗余校验码的原始信息依次除以所述映射表中的该序列。
分别将上述表格右边的序列除以对应的左边的序列。
在步骤S505中,判断余数是否为零,如果是则转向步骤S506,如果不是则转向步骤S503。
按该表格从上到下依次做除运算,判断得到的余数是否为零,在前面的K-1次运算中,所得到答数不为零,直接在第K次除运算时,得到的余数为零。
在步骤S506中,查找此时使用的序列在所述映射表对应的信息。
第K次运算将1011001110010001除以11001,得到余数为零,11001为控制信息位序列K,所对应的控制信息为“数据包是offloading类型”,表示所接收的数据类型为offloading类型的数据。
与实施实施例一相比,本实施例将映射表中所选择的序列添加于原始信息后进行编码,在解码时也需要完成相应的添加后才能得到正确的携带的信息,其编码、解码的对象有区别。当然不应该局限于本实施例所举的所选择的序列添加于原始信息后的方式,同样也存在其它的组合方式,只需要相应的修改编码解码对象即可。即使其它用户有获得信息与序列的映射表,如果没有在原始信息后添加映射表中的序列或其它组合方式进行解码,也不能解码得出正确的携带信息,在一定程度上可提高信息传送安全性。
实施例三:
图6示出了本发明信息的发送和接收设备框图,发送设备可以是无线局域网中的接入点AP或者STA站点,详述如下:
其中发送设备61包括第一建立映射单元610、选择单元611、编码单元612和发送单元613;接收设备62包括第二建立映射单元620、接收单元621、解码单元622和获取单元623,其中所述编码单元612包括第一移位单元6121和第一除法单元6122,所述解码单元622包括第一添加单元6221和第三除法单元6222,选择的序列对应的多项式最高次幂为r,r大于或等于1。
所述第一映射建立单元610和第二映射建立单元620用于建立发送方和接收方内容一致的信息与序列的映射表,其创建过程可由用户直接存储于通信双方的存储器中,也可以通过网络同步调整更新表格中的数据内容。
所述选择单元611根据信息与序列的映射表,选择待发送原始信息对应的序列。
所述编码单元612用于根据所述序列对所述原始信息进行循环冗余校验得到循环冗余校验码,其包括:
第一移位单元6121:用于将原始信息所对应的序列左移r位;
第一除法单元6122:用于将所述移位后的原始信息所对应的序列除以所述选择的序列,得到的余码即为循环冗余校验码。
所述发送单元613用于发送原始信息和循环冗余校验码。
所述接收单元621用于接收带循环冗余校验码的原始信息。
所述解码单元622用于根据信息与序列的映射表,由映射表中的序列对接收的带循环冗余校验码的原始信息分别进行循环冗余校验循环冗余校验解码。
所述解码单元622包括:
第一添加单元6221:用于将所述循环冗余校验码直接添加于原始信息之后;
第三除法单元6222:用于将所述附有循环冗余校验码的原始信息依次除以所述映射表中序列。
所述获取单元623用于如果解码正确,根据信息与序列的映射表获取获取此时使用的序列在所述映射表对应的信息。
本实施例提供的设备框图与实施例一的方法相对应,详情请参见实施例一中的描述,在此不作重复赘述。
实施例四:
图7示出了本发明信息的发送和接收设备框图,详述如下:
其中发送设备61包括第一建立映射单元710、选择单元711、编码单元712和发送单元713;接收设备72包括第二建立映射单元720、接收单元721、解码单元722和查获取单元723,其中所述编码单元712包括移位求和单元7121、第二移位单元7122和第二除法单元7123,所述解码单元722包括第二添加单元7221和第四除法单元7222.
与实施例三不同之处在于,所述编码单元712包括:
移位求和单元7121:用于将原始信息左移r+1位后与所述选择的序列求和;
第二移位单元7122:用于将所述求和得到的序列向左移r位;
第二除法单元7123:用于将所述移位后的序列除以所述选择的序列,得到的余码即为循环冗余校验码。
所述解码单元722包括:
第二添加单元7221:用于将映射表中的序列添加到原始信息后,循环冗余校验码添加到所述映射表中的该序列后;
第四除法单元7222:用于将所述添加有映射表中的序列和循环冗余校验码的原始信息依次除以所述映射表中的该序列。
本实施例提供的设备框图与实施例二的方法相对应,详情请参见实施例一中的描述,在此不作重复赘述。
值得注意的是,上述设备和系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。