一种信道编码纠错方法_2

文档序号:9202501阅读:来源:国知局
:数据接收端将接收到的数据帧放入缓存,然后逐帧进行处理。从帧头开始以三个字节大小为移动窗口,逐位对数据帧进行滑动移位,若移动窗内数据为0XFFFF00或0X00FFFF则找到该帧数据偏移量,再按此偏移量对整帧数据进行反向移位纠偏;
[0034]步骤7:若纠偏后的数据全为OXAA则不处理,否则将数据存入缓存进行拼包处理,若出现以0XFFFF00开始、以0X00FFFF结束的一段数据则提取出一个数据包;
[0035]步骤8:移除包头与包尾,并将其中连续两个字节OXDBDC替换为0XFF,将连续两个字节OXDBDD替换为OXDB ;
[0036]步骤9:按照数据包中的包所属原始数据块编号、原始数据块分割的包数、当前包编号信息即可拼接出完整的原始数据块。
[0037]本发明的实施例包括以下内容:
[0038]数据发送端:
[0039]1.原始数据分割
[0040]数据发送端首先将所要发送的原始数据以2000个字节为标准划分为若干个数据包。这样做主要基于两方面的考虑:
[0041]第一,受无线数据传输系统的限制,其单次所能发送的最大数据帧为2171个字
-K-
T ;
[0042]第二,数据分割为较小的数据包,并在其中加入唯一包编号、包所属原始数据块编号、原始数据块分割的包数、当前包编号信息。如果某数据包在传输过程中丢失或误码,则数据接收端发现后可要求数据发送端进行重传。
[0043]2.协议转换
[0044]无线数据传输系统发送的数据帧有可能会产生移位,只有得知该帧的数据偏移量,才能对其进行反向移位。故需要在数据包的最前端与末端各添加一个唯一的标识符(即包头与包尾),组成一个新的数据包,使得数据接收端能够逐位对数据帧进行偏移操作,直至找到包头或包尾,从而确定数据偏移位数,之后对整个数据帧进行反向移位运算。数据包的协议转换具体过程如下:
[0045]I)数据包添加包头与包尾。确定数据包头为0XFFFF00,数据包尾为0X00FFFF;
[0046]2)端字符转义。为保证包头、包尾的唯一性,遍历数据包除包头包尾外的其他内容,与OXFF相同的数据用字符OXDBDC代替,与字符OXDB相同的数据用字符OXDBDD代替;
[0047]3)空闲数据的处理。无线数据传输系统在不发送有效数据时,仍会持续向接收端发送空闲数据帧(内容可设),因此指定其发送的空闲数据为0ΧΑΑ。
[0048]数据接收端:
[0049]1.数据帧纠偏
[0050]I)查找数据偏移量
[0051]数据接收端首先将接收的数据帧存储至缓冲区,然后依次对各数据帧SrcBuf (长度为Len)从首字节SrcBuf [O]起进行遍历(i从O至Len-4):
[0052]若SrcBuf [i]+SrcBuf [i+1]+SrcBuf [i+2]整体向右移动 j 位(j 从 O 至 7)后所得新数据为包头0XFFFF00或包尾0X00FFFF则确定该数据帧的偏移量为j位,同时退出循环。
[0053]如果没有找到包头或包尾,若数据帧SrcBuf的最后三个字节为包头或包尾,则该帧数偏移量为0,否则沿用上一帧数据的偏移量(初始值为O)。
[0054]2)数据帧反向移位
[0055]将上一帧的最后一个字节(初始值为O)插入数据帧SrcBuf的帧头位置后,对该数据整体(除最后一个字节外)向右移动j位,得到纠偏后的正确数据。若该帧数据全为空闲数据0ΧΑΑ,则丢弃。
[0056]2.数据包提取
[0057]将上述反向移位得到的数据帧插入已有的已纠偏数据缓存中后,对其进行遍历,若找到一个完整的数据包(包头0XFFFF00、包尾0X00FFFF),则提取出该包数据。
[0058]3.反向协议转换
[0059]对上一步提取出的数据包首先去除其包头0XFFFF00与包尾0X00FFFF。然后对其进行遍历,若连续两个字节为0XDBDC,则将其替换为OXFF ;若连续两个字节为0XDBDD,则将其替换为0XDB。于是,得到一包完整的数据发送端发送的原始数据。
[0060]如果该数据包解析后发现唯一包编号与上一包不连续或者数据有误码,则需要时可要求数据发送端进行重发。
【主权项】
1.一种信道编码纠错方法,其特征在于包括下述步骤: 步骤1:数据发送端将待发送的原始数据块划分为若干个数据包,每个数据包的长度为2000字节,若最后一个数据包的长度不足2000字节,则无需补齐; 步骤2:在每个数据包的包首位置插入包所属原始数据块编号、原始数据块分割的包数和当前包编号; 步骤3:将每个数据包的所有字节按照无符号字节累加后取低字节,作为校验码插入数据包包尾; 步骤4:对数据包按下述方法进行协议转换:给数据包添加新的包头0XFFFF00与包尾0X00FFFF ;将数据包中除包头、包尾外与OXFF相同的数据用字符OXDBDC代替,与字符OXDB相同的数据用字符OXDBDD代替; 步骤5:将协议转换后的数据包依次发送,当无数据发送时,发送空闲数据帧OXAA ; 步骤6:数据接收端将接收到的数据帧放入缓存,然后逐帧从帧头开始以三个字节大小为移动窗口,逐位对数据帧进行滑动移位,若移动窗内数据为0XFFFF00或0X00FFFF则找到该帧数据偏移量,再按此数据偏移量对整帧数据进行反向移位纠偏; 步骤7:若反向移位纠偏后的数据全为OXAA则不处理,否则将反向移位纠偏后的数据存入缓存进行拼包处理,若出现以0XFFFF00开始、以0X00FFFF结束的一段数据则提取出一个数据包; 步骤8:移除包头与包尾,并将其中连续两个字节OXDBDC替换为0XFF,将连续两个字节OXDBDD 替换为 OXDB ; 步骤9:按照数据包中的包所属原始数据块编号、原始数据块分割的包数、当前包编号信息拼接出完整的原始数据块。
【专利摘要】本发明提供了一种信道编码纠错方法,数据发送端按规定长度对原始数据进行分割,在分割后的数据包中加入相关信息后,采用规定的协议对其进行转换,再经无线数据传输系统进行发送。数据接收端首先确定所收数据帧的偏移量,再对数据帧进行反向移位,之后将移位后的数据帧进行拼接,提取到一包完整数据后进行反向协议转换即可获得正确数据。本发明能兼顾数据处理效率与效果两方面的要求,可较好地解决无线传输中的数据移位现象,提高数据传输的可靠性。
【IPC分类】H04L1/18, H04L1/00
【公开号】CN104917590
【申请号】CN201510311838
【发明人】王博, 冯晓辉, 赵永明
【申请人】西安长远电子工程有限责任公司
【公开日】2015年9月16日
【申请日】2015年6月9日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1