CN102075376A - 一种多通信协议检测方法 - Google Patents
一种多通信协议检测方法 Download PDFInfo
- Publication number
- CN102075376A CN102075376A CN2010105713331A CN201010571333A CN102075376A CN 102075376 A CN102075376 A CN 102075376A CN 2010105713331 A CN2010105713331 A CN 2010105713331A CN 201010571333 A CN201010571333 A CN 201010571333A CN 102075376 A CN102075376 A CN 102075376A
- Authority
- CN
- China
- Prior art keywords
- protocol
- agreement
- protocol frame
- frame
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明涉及通信协议技术领域,特别是一种多通信协议检测方法。一种多通信协议检测方法,所述方法包括:当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理。本发明通过一个循环数据接收链表完成接收数据的缓存;通过多个通信协议指针与接收指针之间关系,完成各个通信协议帧的判定和处理,并且互不影响。
Description
技术领域
本发明涉及通信协议技术领域,特别是一种多通信协议检测方法。
背景技术
目前处理多协议系统中,每个通信协议所有独立的接收缓冲区,独立判定各个通信协议;
数据接收大部分中断服务程序中完成,如果多个协议接收缓冲区需要处理接收数据,延长中断服务时间,并且每个协议都需要一个接收数据缓冲区,需要占用大量RAM区资源。
发明内容
本发明提供一种多通信协议检测方法,以解决现有技术不能对多个通信协议统一处理的技术问题。
为了实现本发明的发明目的,采用的技术方案如下:
一种多通信协议检测方法,所述方法包括:
当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理。
作为一种优选方案,所述方法还包括:
设置数据缓冲区用于接收协议帧,通过接收指针指向缓冲区的起始地址;
当数据缓冲区接收到数据,则用协议指针指向接收到的数据的地址;
定时检测协议指针,如果协议指针与接收指针一致,则判断为没有接收到协议帧,如果协议指针与接收指针不一致,则判断为接收到协议帧,检查协议指针指向的数据是否为合法完整的协议帧,如果协议指针指向的数据为合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,完成协议处理后,令协议指针指向接收指针所指向的地址。
作为进一步的优选方案,通过如下方法检查协议指针指向的数据是否为合法完整的协议帧:
比较接收指针与协议指针的差值,如果差值大于或等于协议最小帧的长度,则判断为接收到完整的协议帧,否则判断为协议帧未接收完成;
当判断为接收到完整的协议帧后,则检查协议指针指向的数据,检查是否符合协议帧的特征,如果符合,则判断为接收到合法完整的协议帧,检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,否则协议指针地址加一。
本发明通过一个循环数据接收链表完成接收数据的缓存;通过多个通信协议指针与接收指针之间关系,完成各个通信协议帧的判定和处理,并且互不影响。
附图说明
图1为本发明实施例的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
本发明实施例为多种通信协议检测方法的编程技术,在一个通信接口中有多种通信协议接收、发送;本实施例通过一个循环数据接收链表完成接收数据的缓存;在初始状态下,接收指针与各协议指针指向循环接收缓冲区的同一地址,当有数据接收时,数据存放到循环接收缓冲区,并且接收指针自动循环相加。
如图1所述,本实施例操作步骤如下:
1、判定协议指针与接收指针是否相等;
2、如果相等,表示循环接收缓冲区无接收数据,立即退出;
3、如果不等,进入相应的协议帧判定服务程序;
4、接收指针与协议指针之差是否大于或等于协议帧的最小长度;
5、如果小于,表示未接收到完帧协议帧,立即退出;
6、如果大于或等于,进入协议帧格式判定服务程序;
7、是否符合协议帧;
8、如果符合,进入相应的协议帧服务程序,对接收数据作相应的功能处理,最后重新将协议指针指向接收指针所指向的同一地址,等待下一次协议判定。
9、如果不符合,协议指针地址自动循环加一,重复1-9判定过程。
以上为单个协议判定过程,如果有多个协议需要判定,分别用各协议指针替换上述协议指针及相应的协议帧判定服务程序;即可完成多协议处理。
Claims (3)
1.一种多通信协议检测方法,其特征在于,所述方法包括:
当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理。
2.根据权利要求1所述的检测方法,其特征在于,所述方法还包括:
设置数据缓冲区用于接收协议帧,通过接收指针指向缓冲区的起始地址;
当数据缓冲区接收到数据,则用协议指针指向接收到的数据的地址;
定时检测协议指针,如果协议指针与接收指针一致,则判断为没有接收到协议帧,如果协议指针与接收指针不一致,则判断为接收到协议帧,检查协议指针指向的数据是否为合法完整的协议帧,如果协议指针指向的数据为合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,完成协议处理后,令协议指针指向接收指针所指向的地址。
3.根据权利要求2所述的检测方法,其特征在于,通过如下方法检查协议指针指向的数据是否为合法完整的协议帧:
比较接收指针与协议指针的差值,如果差值大于或等于协议最小帧的长度,则判断为接收到完整的协议帧,否则判断为协议帧未接收完成;
当判断为接收到完整的协议帧后,则检查协议指针指向的数据,检查是否符合协议帧的特征,如果符合,则判断为接收到合法完整的协议帧,检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,否则协议指针地址加一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010571333 CN102075376B (zh) | 2010-11-25 | 2010-11-25 | 一种多通信协议检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010571333 CN102075376B (zh) | 2010-11-25 | 2010-11-25 | 一种多通信协议检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102075376A true CN102075376A (zh) | 2011-05-25 |
CN102075376B CN102075376B (zh) | 2013-12-18 |
Family
ID=44033730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010571333 Active CN102075376B (zh) | 2010-11-25 | 2010-11-25 | 一种多通信协议检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102075376B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052758A (zh) * | 2014-07-14 | 2014-09-17 | 威胜集团有限公司 | 电能表多通信协议的自适应方法 |
CN104464246A (zh) * | 2014-12-10 | 2015-03-25 | 广东广联电子科技有限公司 | 一种远程抄表系统中的串口数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227351A (zh) * | 2008-01-23 | 2008-07-23 | 深圳国人通信有限公司 | 一种远程监控中多协议数据包的处理方法及装置 |
CN101277293A (zh) * | 2007-06-25 | 2008-10-01 | 广东中大讯通软件科技有限公司 | 一种实现数字家庭设备间多协议互联互通的适配器及其方法 |
CN101800867A (zh) * | 2010-01-19 | 2010-08-11 | 深圳市同洲电子股份有限公司 | 一种实现环形缓冲区的方法、装置及数字电视接收终端 |
-
2010
- 2010-11-25 CN CN 201010571333 patent/CN102075376B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101277293A (zh) * | 2007-06-25 | 2008-10-01 | 广东中大讯通软件科技有限公司 | 一种实现数字家庭设备间多协议互联互通的适配器及其方法 |
CN101227351A (zh) * | 2008-01-23 | 2008-07-23 | 深圳国人通信有限公司 | 一种远程监控中多协议数据包的处理方法及装置 |
CN101800867A (zh) * | 2010-01-19 | 2010-08-11 | 深圳市同洲电子股份有限公司 | 一种实现环形缓冲区的方法、装置及数字电视接收终端 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052758A (zh) * | 2014-07-14 | 2014-09-17 | 威胜集团有限公司 | 电能表多通信协议的自适应方法 |
CN104464246A (zh) * | 2014-12-10 | 2015-03-25 | 广东广联电子科技有限公司 | 一种远程抄表系统中的串口数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102075376B (zh) | 2013-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105577567A (zh) | 基于Intel DPDK的网络数据包并行处理方法 | |
CN104052758A (zh) | 电能表多通信协议的自适应方法 | |
CN103139157B (zh) | 一种基于socket的网络通信方法、装置及系统 | |
CN105791439A (zh) | 一种数据处理方法、数据接收设备及数据处理系统 | |
CN103748845A (zh) | 报文发送方法、接收方法、装置及系统 | |
CN104679596A (zh) | 一种提高服务器端并发性能的消息处理方法及其系统 | |
CN109062847A (zh) | 片上系统、用于rs485串口通讯的ip核及其控制方法 | |
CN107992367A (zh) | 一种Modbus串口数据处理方法 | |
CN102970244A (zh) | 一种多cpu核间负载均衡的网络报文处理方法 | |
CN102891809A (zh) | 多核网络设备报文按接口保序方法及系统 | |
CN103944880B (zh) | 一种ZigBee数据传输的方法 | |
CN102497297A (zh) | 基于多核多线程的深度报文检测技术的实现系统和方法 | |
CN102075376A (zh) | 一种多通信协议检测方法 | |
CN101241451A (zh) | 一种嵌入式系统的串口可靠通讯控制方法 | |
CN105357148A (zh) | 避免网络交换芯片输出报文乱序的方法及系统 | |
CN104079398B (zh) | 一种数据通信方法、装置及系统 | |
CN107277062A (zh) | 数据包的并行处理方法及装置 | |
CN103248679A (zh) | 一种网络消息传递方法 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN104394606B (zh) | 一种基于消息的无线通信网关的实现方法 | |
CN102970191A (zh) | 一种分布式系统中检测协议的实现方法和装置 | |
CN103152134B (zh) | 基于rtp协议的接收端重排语音包的方法和系统 | |
CN106027137B (zh) | 多星兼容的卫星遥感地面接收处理方法 | |
CN103678235B (zh) | 基于并行流水线网络数据处理装置及方法 | |
JP7052865B2 (ja) | サーバ、通信システム、通信方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |