CN102075376A - 一种多通信协议检测方法 - Google Patents

一种多通信协议检测方法 Download PDF

Info

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
Application number
CN2010105713331A
Other languages
English (en)
Other versions
CN102075376B (zh
Inventor
雷刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Yada Electric Co Ltd
Original Assignee
Guangdong Yada Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Yada Electric Co Ltd filed Critical Guangdong Yada Electric Co Ltd
Priority to CN 201010571333 priority Critical patent/CN102075376B/zh
Publication of CN102075376A publication Critical patent/CN102075376A/zh
Application granted granted Critical
Publication of CN102075376B publication Critical patent/CN102075376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的检测方法,其特征在于,通过如下方法检查协议指针指向的数据是否为合法完整的协议帧:
比较接收指针与协议指针的差值,如果差值大于或等于协议最小帧的长度,则判断为接收到完整的协议帧,否则判断为协议帧未接收完成;
当判断为接收到完整的协议帧后,则检查协议指针指向的数据,检查是否符合协议帧的特征,如果符合,则判断为接收到合法完整的协议帧,检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,否则协议指针地址加一。
CN 201010571333 2010-11-25 2010-11-25 一种多通信协议检测方法 Active CN102075376B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 深圳市同洲电子股份有限公司 一种实现环形缓冲区的方法、装置及数字电视接收终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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