发明名称 一种SIP协议栈的16位实现方法
摘要 本发明涉及一种在16位数字信号处理器上实现SIP协议栈的方法,包括SIP消息的存储、SIP消息的构建和SIP消息的解析;其特征在于,所述的SIP消息的存储是将SIP消息中的每两个8位字符合并成一个16位数据单元,SIP消息均采用16位数据存储;所述的SIP消息的构建是在16位数据存储的基础上,采用16位数据整合方式构建SIP消息;所述SIP消息的解析是将SIP消息还原成8位字符形式进行解析。本发明的优点是兼顾了资源与效率。与现有技术相比,本发明实现的16位SIP协议栈,能够在充分利用16位DSP数据带宽的同时,不增加代码量,保证系统运行效率。
申请公布号 CN100571274C 申请公布日期 2009.12.16
申请号 CN200610072170.6 申请日期 2006.04.14
申请人 中国科学院声学研究所;北京中科智网科技有限公司 发明人 王劲林;叶晓舟;邓峰;张武;齐向东;朱晓东;张建东;武晓华;曾学文
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京泛华伟业知识产权代理有限公司 代理人 高存秀
主权项 1、一种SIP协议栈的16位实现方法,包括SIP消息的构建和SIP消息的解析;其特征在于,所述的SIP消息的构建是在16位数据格式的基础上,采用16位数据整合方式构建SIP消息;所述的16位数据格式是将SIP消息中的每两个8位文本合并成一个16位数据单元,采用16位数据单元为基本数据单元的存储方式;所述的用16位数据整合方法的SIP消息构建包括如下步骤:11)在DSP处理器内存中开辟一段用于存储SIP消息的16位数据存储区,同时记录该16位数据存储区起始位置i;所述16位数据存储区是以16位作为基本数据单元的存储区;12)生成组成SIP消息起始行、头域、空行和消息体的各个信息字段,采用16位数据存储方式存储至DSP内存或外部设备;13)按照SIP消息起始行、头域、空行和消息体的顺序,获取一个16位信息字段作为当前信息字段,并读取该信息字段的长度j;14)将当前信息字段存储至由位置i起始的16位数据存储区中;15)记录当前存储区位置i=i+j+1;16)重复步骤13)、14)、15)直到组成SIP消息的所有信息字段整合完毕;所述SIP消息的解析采用将16位存储数据还原成8位文本,然后对文本信息进行解析的方法,包括如下步骤:21)从传输层获取SIP消息;22)将16位数据格式的SIP消息的起始行、头域和消息体分别存储至DSP内存或外部设备;23)在DSP处理器内存中开辟一段供SIP消息解析使用的公共缓冲区;24)获取一个待解析的起始行、头域或消息体作为当前数据信息;25)将当前数据信息由16位数据格式转换成8位文本,然后存储至公共缓冲区中;26)对公共缓冲区中的8位文本数据信息进行解析,获得所需的信息字段;27)重复步骤24)、25)、26)操作直至组成SIP消息的所有信息字段解析完毕;所述将16位数据格式的数据字段转换为8位文本的过程中,进行去空洞操作,所述去空洞操作包括如下步骤:31)记录当前文本数据存储区起始位置i;32)从16位数据格式的数据字段中获取一个16位数据单元;如果所获取的16位数据单元是16位0,则转换结束;否则,执行步骤33);33)将步骤32)获取的16位数据单元的低8位数据取出,放置在8位文本数据存储区当前位置i,记录8位文本数据存储区当前位置为i=i+1;34)将步骤32)获取的16位数据单元的高8位数据取出,如果高8位为0,则跳转到步骤35);否则,将数据右移8位并放置在8位文本数据存储区当前位置i,记录8位文本数据存储区当前位置为i=i+1;35)重复步骤32)、33)、34)的操作,直至转换结束。
地址 100080北京市海淀区北四环西路21号