[发明专利]一种多通信协议检测方法有效
申请号: | 201010571333.1 | 申请日: | 2010-11-25 |
公开(公告)号: | CN102075376A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 雷刚 | 申请(专利权)人: | 广东雅达电子股份有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/06 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 罗晓林;李志强 |
地址: | 517000 广东省河源市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通信协议 检测 方法 | ||
技术领域
本发明涉及通信协议技术领域,特别是一种多通信协议检测方法。
背景技术
目前处理多协议系统中,每个通信协议所有独立的接收缓冲区,独立判定各个通信协议;
数据接收大部分中断服务程序中完成,如果多个协议接收缓冲区需要处理接收数据,延长中断服务时间,并且每个协议都需要一个接收数据缓冲区,需要占用大量RAM区资源。
发明内容
本发明提供一种多通信协议检测方法,以解决现有技术不能对多个通信协议统一处理的技术问题。
为了实现本发明的发明目的,采用的技术方案如下:
一种多通信协议检测方法,所述方法包括:
当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理。
作为一种优选方案,所述方法还包括:
设置数据缓冲区用于接收协议帧,通过接收指针指向缓冲区的起始地址;
当数据缓冲区接收到数据,则用协议指针指向接收到的数据的地址;
定时检测协议指针,如果协议指针与接收指针一致,则判断为没有接收到协议帧,如果协议指针与接收指针不一致,则判断为接收到协议帧,检查协议指针指向的数据是否为合法完整的协议帧,如果协议指针指向的数据为合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,完成协议处理后,令协议指针指向接收指针所指向的地址。
作为进一步的优选方案,通过如下方法检查协议指针指向的数据是否为合法完整的协议帧:
比较接收指针与协议指针的差值,如果差值大于或等于协议最小帧的长度,则判断为接收到完整的协议帧,否则判断为协议帧未接收完成;
当判断为接收到完整的协议帧后,则检查协议指针指向的数据,检查是否符合协议帧的特征,如果符合,则判断为接收到合法完整的协议帧,检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,否则协议指针地址加一。
本发明通过一个循环数据接收链表完成接收数据的缓存;通过多个通信协议指针与接收指针之间关系,完成各个通信协议帧的判定和处理,并且互不影响。
附图说明
图1为本发明实施例的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
本发明实施例为多种通信协议检测方法的编程技术,在一个通信接口中有多种通信协议接收、发送;本实施例通过一个循环数据接收链表完成接收数据的缓存;在初始状态下,接收指针与各协议指针指向循环接收缓冲区的同一地址,当有数据接收时,数据存放到循环接收缓冲区,并且接收指针自动循环相加。
如图1所述,本实施例操作步骤如下:
1、判定协议指针与接收指针是否相等;
2、如果相等,表示循环接收缓冲区无接收数据,立即退出;
3、如果不等,进入相应的协议帧判定服务程序;
4、接收指针与协议指针之差是否大于或等于协议帧的最小长度;
5、如果小于,表示未接收到完帧协议帧,立即退出;
6、如果大于或等于,进入协议帧格式判定服务程序;
7、是否符合协议帧;
8、如果符合,进入相应的协议帧服务程序,对接收数据作相应的功能处理,最后重新将协议指针指向接收指针所指向的同一地址,等待下一次协议判定。
9、如果不符合,协议指针地址自动循环加一,重复1-9判定过程。
以上为单个协议判定过程,如果有多个协议需要判定,分别用各协议指针替换上述协议指针及相应的协议帧判定服务程序;即可完成多协议处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东雅达电子股份有限公司,未经广东雅达电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010571333.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种联合会话建立方法和设备
- 下一篇:物体感应开关控制电路系统