[发明专利]一种基于字节流的解码方法有效
| 申请号: | 201610044846.4 | 申请日: | 2016-01-22 |
| 公开(公告)号: | CN105721105B | 公开(公告)日: | 2020-06-02 |
| 发明(设计)人: | 杜强华;林建创;李面换 | 申请(专利权)人: | 广州市毅航互联通信股份有限公司 |
| 主分类号: | H04L1/00 | 分类号: | H04L1/00 |
| 代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 胡吉科 |
| 地址: | 510630 广东省广州市天河*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 字节 解码 方法 | ||
本发明适用于解码技术领域,提供了一种基于字节流的解码方法,所述解码方法包括以下步骤:A、利用bit字节流解码算法生成byte的解码表;B、根据新生成的解码表对输入的byte进行解码并输出结果。最初采用bit解码算法,最多能够做到32路并发解码,在将算法替换为byte解码后,最多能够做到128路并发解码,处理能力提高4倍。提高了处理能力,节省了处理时间、提高了处理效率。
技术领域
本发明属于解码技术领域,尤其涉及一种基于字节流的解码方法。
背景技术
HDLC是电信产品中常用的物理层协议,ISDN-PRI和SS7信令就是建立在HDLC协议之上。
HDLC bit流由“标志+信息+FCS(CRC16)”构成,由“标志”字节开始,到下一个“标志”字节结束,中间部分就是“信息+FCS”。在规范中,最后2个字节是CRC16算法的校验字,通过CRC16算法计算的校验结果来判断信息是否完整。
“标志”字节:标志字节也称为Flag,用于HDLC信息帧之间的分界。也就是两个HDLC信息帧间必须有一个Flag,但也可能有多个Flag。Flag为“01111110”的bit流。
为避免HDLC信息帧中有Flag相同的数据,在发送端,连续5个bit 1就插入bit 0,在接收端,如果收到连续的5个bit 1,后面的bit 0自动丢弃。
FCS:帧校验。对于PRI/SS7规范,采用CRC16算法。
为了拆分出信息部分和计算FCS,必须对整个bit流做处理。在常规上一般采用专门的硬件芯片来做这个工作,但是,在某些情况下,也需要通过C代码来实现HDLC的解码。
对于用程序实现HDLC解码,已经有非常多的实践,主要的优化在于将复杂的CRC16FCS计算表格化,而信息部分的解码还是采用按bit处理。
字节流的HDLC解码算法是从bit流解码算法优化过来的,因此,先介绍bit流HDLC解码算法。
HDLC解码算法也是相对比较复杂,下面就最基本的部分做描述。
解码状态机
根据HDLC的特点,有如下的解码过程状态:
HDLC_ZERO_SEARCH
查找0。由于HDLC以flag开始,而flag是”01111110’的bit流,因此,解码的第一个状态就是查找0的状态。
HDLC_FLAG_SEARCH
查找HDLC的flag。用于匹配后续的标志bit。
HDLC_FLAG_FOUND
Flag已经找到,解码HDLC信息字节。
HDLC解码状态机如图1所示。
HDLC解码流程的简单描述:
HDLC解码的初始状态是ZERO_SEARCH状态,在此状态,需要查找bit流中的0,找到0后,状态切换到FLAG_SEARCH状态。
在FLAG_SEARCH状态:记录收到的bit流,直到连续收到HDLC标志“01111110”,切换到FLAG_FOUND状态。另外,如果在此状态收到连续的7个bit1,切换到ZERO_SEARCH状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市毅航互联通信股份有限公司,未经广州市毅航互联通信股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610044846.4/2.html,转载请声明来源钻瓜专利网。





