一种基于字节流的解码方法_3

文档序号:9930937阅读:来源:国知局
c_state 中记录的:r_one值查询出转换后的状态:hdlc_state_decode_tbl,所需要的信息得到后,根 据hdlc_state记录的状态做不同的状态跳转处理。状态跳转处理完成后,用hdlc_state_ decode_tbl中的8七3七6和1'_〇116更新hdl c_state中的相应值,为下次解码做好准备。在HDLC_ ZER0_SEARCH中没有状态跳转处理。
[0125] HDLC_FLAG_SEARCH 的by te 处理如图 11所示,在由 FLAG_SEARCH 跳转到 FLAG_F0UND 状态时,此时表示解码到一个新的HDLC帧,需要从hdlc_state_decode_tbl中取出o_bi tent 和1~_^1,这些值表示此byte解码的输出值。
[0126] o_bitcnt表示r_val中有多少bit是有效值,如果不够8bit,需要在外部缓冲区中 保存,在下次的输出中在累加。
[0127] HDLC_FLAG_FOUND的byte处理如图12所示,如果新状态跳转到FLAG_F0UND,实际上 是状态没有变化。但是,有可能是又收到了一个HDLC Flag,表示一帧已经结束了。因此,通 过判断b_nextfrm来确定是一帧结束还是状态没有变化。
[0128] 如果是一帧已经结束,从hdlc_state_decode_tbl中取出o_bitcnt和r_val,从而 获得此次解码的输出bits,将输出的bits和前次记录的bits进行组合后,作为最后的byte 输出。所有byte输出后,对一帧数据做CRC16校验,校验后,将此HDLC帧数据输出。
[0129] 如果还在原来的帧解码中,从hdlc_state_decode_tbl中取出o_bitcnt和r_val, 从而获得此次解码的输出bits,将输出的bits和前次记录的bits进行组合后,作为此次的 byte输出。
[0130] 如果状态跳转到非FLAG_F0UND状态,表示HDLC帧异常退出和结束。从hdlc_state_ decode_tbl中取出o_bitcnt和r_val,从而获得此次解码的输出bits,将输出的bits和前次 记录的bits进行组合后,作为最后的byte输出。所有byte输出后,对一帧数据做CRC16校验, 校验后,将此HDLC帧数据输出。
[0131] 已经详细描述了单个byte的HDLC解码,对于字节流的HDLC解码就是对字节流中的 每个byte,调用上述的单个byte解码过程。
[0132] 在通信的信令包捕获项目中,最初采用bit解码算法,最多能够做到32路并发解 码,在将算法替换为byte解码后,最多能够做到128路并发解码,处理能力提高4倍。
[0133] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种基于字节流的解码方法,其特征在于,所述解码方法包括以下步骤: A、 利用bit字节流解码算法生成byte的解码表; B、 根据新生成的解码表对输入的byte进行解码并输出结果。2. 根据权利要求1所述的解码方法,其特征在于,所述步骤A中byte的解码表包括HDLC_ ZERO_SEARCH 表、HDLC_FLAG_SEARCH 表及 HDLC_FLAG_FOUND 表。3. 根据权利要求2所述的解码方法,其特征在于,所述HDLC_ZERO_SEARCH表生成包括以 下步骤: A11、判断产生hdlcO . c文件是否成功;如是,则写入全局变量头FAST_HDLC_DE⑶DE_ STATE_MACHINE HDLC_ZERO_SEARCH_SM并执行步骤A12,如否,则结束生成本表; A12、枚举所有的字节0~255和连续的bit(r_one)0~7; A13、将ZERO_SEARCH 设置成r_one 值; A14、调用bit流HDLC解码并获得struct hdlc_decode_state_tbl结构值; A15、将struct hdlc_decode_state_tbl结构写入文件并枚举所有的连续的bitl(r_ one)0~7和字节0~255; A16、对生成的HDLC_ZERO_SEARCH表写入结束信息并关闭文件结束本次表生成。4. 根据权利要求3所述的解码方法,其特征在于,所述HDLC_FLAG_SEARCH表生成包括以 下步骤: A21、判断产生hdlcl. c文件是否成功;如是,则写入全局变量头FAST_HDLC_DE⑶DE_ STATE_MACHINE HDLC_FLAG_SEARCH_SM并执行步骤A12,如否,则结束生成本表; A22、枚举所有的字节0~255和连续的bit(r_one)0~7; A23、将 FLAG_SEARCH 设置成 r_one 值; A24、调用bit流HDLC解码并获得struct hdlc_decode_state_tbl结构值; A25、将struct hdlc_decode_state_tbl结构写入文件并枚举所有的连续的bitl(r_ one)0~7和字节0~255; A26、对生成的HDLC_FLAG_SEARCH表写入结束信息并关闭文件结束本次表生成。5. 根据权利要求4所述的解码方法,其特征在于,所述HDLC_FLAG_FOUND表生成包括以 下步骤: A31、判断产生hdlc2 . c文件是否成功;如是,则写入全局变量头FAST_HDLC_DE⑶DE_ STATE_MACHINE HDLC_FLAG_FOUND_SM并执行步骤A12,如否,则结束生成本表; A32、枚举所有的字节0~255和连续的bit(r_one)0~7; A33、将 FLAG_FOUND 设置成 r_one 值; A34、调用bit流HDLC解码并获得struct hdlc_decode_state_tbl结构值; A35、将struct hdlc_decode_state_tbl结构写入文件并枚举所有的连续的bitl(r_ one)0~7和字节0~255; A36、对生成的HDLC_FLAG_FOUND表写入结束信息并关闭文件结束本次表生成。6. 根据权利要求5所述的解码方法,其特征在于,所述步骤B中单个byte的解码包括以 下步骤: B11、根据 hdlc_state 中记录的 state 值确定 zero_search/flag_sea;rch/fiag_found 中 的某个表格; B12、根据hdlc_state中记录的1"_〇116和当前的解码byte获得新的状态表项hdlc_ statc_dccodc_tbl并使用byte X 7+r_one作为下标直接查表; B13、根据 hd 1 c_s tate 中记录的 s tat e 值在 HDLC_FLAG_SEARCH 表及 HDLC_FLAG_FOUND 表 做状态转换处理; 1314、用11(11(3_8七&七6_(16(30(16_1:131中的8七&七6和1'_0116更新11(11(3_8七&七6中记录8七&七6和1'_ one〇7. 根据权利要求6所述的解码方法,其特征在于,所述步骤B13中还包括以下步骤: B131、判断状态是否跳转到HDLC_FLAG_FOUND表;如是,则执行步骤B132,如否,则结束 本次操作; B132,新的HDLC帧开始去除hdlc_state_decode_tbl表中记录的输出值0_bitcnt和;r_ val; B133,将r_Val中的0_bitcnt个有效值数据copy到外部缓冲区并结束本次操作。8. 根据权利要求7所述的解码方法,其特征在于,所述步骤B131还包括以下步骤: B1311、判断状态是否跳转到HDLC_FLAG_FOUND表;如是,则执行步骤B1312,如否,则表 不HDLC-帧解码错误停止并取出hdlc_state_decode_tbl中的0_bitcnt和r_val,并执行步 骤1313; B1312、判断是否收到新的HDLC标志b_nextfrm;如是,则表示前一帧HDLC解码完成并取 出 hdlc_state_decode_tbl 中的 0_bitcnt 和 r_val 并执行步骤 B1313,如否,则一帧 HDLC 解码 进行中并取出hdlc_state_decode_tbl中的0_bitcnt和r_val并执行步骤B1314; B1313、将〔¥& 1中的0_b i t cn t个有效值和记录的前此解码的r_va 1组合为最后的输出 byte并执行步骤1315; B1314、将r_val中的0_bitcnt个有效值和记录的前此解码的1*_^1组合后输出并结束 本次操作; B1315、进行HDLG帧的CRC16校验并输出一帧的值且结束本次操作。
【专利摘要】本发明适用于解码技术领域,提供了一种基于字节流的解码方法,所述解码方法包括以下步骤:A、利用bit字节流解码算法生成byte的解码表;B、根据新生成的解码表对输入的byte进行解码并输出结果。最初采用bit解码算法,最多能够做到32路并发解码,在将算法替换为byte解码后,最多能够做到128路并发解码,处理能力提高4倍。提高了处理能力,节省了处理时间、提高了处理效率。
【IPC分类】H04L1/00
【公开号】CN105721105
【申请号】CN201610044846
【发明人】杜强华, 林建创, 李面换
【申请人】广州市毅航互联通信股份有限公司
【公开日】2016年6月29日
【申请日】2016年1月22日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1