CN102075376B - 一种多通信协议检测方法 - Google Patents
一种多通信协议检测方法 Download PDFInfo
- Publication number
- CN102075376B CN102075376B CN 201010571333 CN201010571333A CN102075376B CN 102075376 B CN102075376 B CN 102075376B CN 201010571333 CN201010571333 CN 201010571333 CN 201010571333 A CN201010571333 A CN 201010571333A CN 102075376 B CN102075376 B CN 102075376B
- Authority
- CN
- China
- Prior art keywords
- protocol
- agreement
- protocol frame
- pointer
- frame
- 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.)
- Active
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明涉及通信协议技术领域,特别是一种多通信协议检测方法。一种多通信协议检测方法,所述方法包括:当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理。本发明通过一个循环数据接收链表完成接收数据的缓存;通过多个通信协议指针与接收指针之间关系,完成各个通信协议帧的判定和处理,并且互不影响。
Description
技术领域
本发明涉及通信协议技术领域,特别是一种多通信协议检测方法。
背景技术
目前处理多协议系统中,每个通信协议所有独立的接收缓冲区,独立判定各个通信协议;
数据接收大部分中断服务程序中完成,如果多个协议接收缓冲区需要处理接收数据,延长中断服务时间,并且每个协议都需要一个接收数据缓冲区,需要占用大量RAM区资源。
发明内容
本发明提供一种多通信协议检测方法,以解决现有技术不能对多个通信协议统一处理的技术问题。
为了实现本发明的发明目的,采用的技术方案如下:
一种多通信协议检测方法,所述方法包括:
当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理。
作为一种优选方案,所述方法还包括:
设置数据缓冲区用于接收协议帧,通过接收指针指向缓冲区的起始地址;
当数据缓冲区接收到数据,则用协议指针指向接收到的数据的地址;
定时检测协议指针,如果协议指针与接收指针一致,则判断为没有接收到协议帧,如果协议指针与接收指针不一致,则判断为接收到协议帧,检查协议指针指向的数据是否为合法完整的协议帧,如果协议指针指向的数据为合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,完成协议处理后,令协议指针指向接收指针所指向的地址。
作为进一步的优选方案,通过如下方法检查协议指针指向的数据是否为合法完整的协议帧:
比较接收指针与协议指针的差值,如果差值大于或等于协议最小帧的长度,则判断为接收到完整的协议帧,否则判断为协议帧未接收完成;
当判断为接收到完整的协议帧后,则检查协议指针指向的数据,检查是否符合协议帧的特征,如果符合,则判断为接收到合法完整的协议帧,检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,否则协议指针地址加一。
本发明通过一个循环数据接收链表完成接收数据的缓存;通过多个通信协议指针与接收指针之间关系,完成各个通信协议帧的判定和处理,并且互不影响。
附图说明
图1为本发明实施例的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
本发明实施例为多种通信协议检测方法的编程技术,在一个通信接口中有多种通信协议接收、发送;本实施例通过一个循环数据接收链表完成接收数据的缓存;在初始状态下,接收指针与各协议指针指向循环接收缓冲区的同一地址,当有数据接收时,数据存放到循环接收缓冲区,并且接收指针自动循环相加。
如图1所述,本实施例操作步骤如下:
1、判定协议指针与接收指针是否相等;
2、如果相等,表示循环接收缓冲区无接收数据,立即退出;
3、如果不等,进入相应的协议帧判定服务程序;
4、接收指针与协议指针之差是否大于或等于协议帧的最小长度;
5、如果小于,表示未接收到完帧协议帧,立即退出;
6、如果大于或等于,进入协议帧格式判定服务程序;
7、是否符合协议帧;
8、如果符合,进入相应的协议帧服务程序,对接收数据作相应的功能处理,最后重新将协议指针指向接收指针所指向的同一地址,等待下一次协议判定。
9、如果不符合,协议指针地址自动循环加一,重复1-9判定过程。
以上为单个协议判定过程,如果有多个协议需要判定,分别用各协议指针替换上述协议指针及相应的协议帧判定服务程序;即可完成多协议处理。
Claims (2)
1.一种多通信协议检测方法,所述方法包括:
当接收到合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行协议处理;
所述方法还包括:
设置数据缓冲区用于接收协议帧,通过接收指针指向缓冲区的起始地址:
当数据缓冲区接收到数据,则用协议指针指向接收到的数据的地址:
定时检测协议指针,如果协议指针与接收指针一致,则判断为没有接收到协议帧,如果协议指针与接收指针不一致,则判断为接收到协议帧,检查协议指针指向的数据是否为合法完整的协议帧,如果协议指针指向的数据为合法完整的协议帧,则检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,完成协议处理后,令协议指针指向接收指针所指向的地址;
以上为单个协议判定过程,如果有多个协议需要判定,分别用各协议指针替换上述单个协议判定过程中的协议指针及相应的协议帧判定服务程序,即可完成多协议处理,通过一个循环数据接收链表完成接收数据的缓存并且互不影响。
2.根据权利要求1所述的检测方法,其特征在于,通过如下方法检查协议指针指向的数据是否为合法完整的协议帧:
比较接收指针与协议指针的差值,如果差值打印协议最小帧的长度,则判断为接收到完整的协议帧,否则判断为协议帧未接收完成;
当判断为接收到完整的协议帧后,则检查协议指针指向的数据,检查是否符合协议帧的特征,如果符合,则判断为接收到合法完整的协议帧,检查协议帧的格式,根据协议帧的格式调取相应的协议处理服务进行处理,否则协议指针地址加一。
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 CN102075376A (zh) | 2011-05-25 |
CN102075376B true 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) |
Families Citing this family (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 | 深圳市同洲电子股份有限公司 | 一种实现环形缓冲区的方法、装置及数字电视接收终端 |
Also Published As
Publication number | Publication date |
---|---|
CN102075376A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106559086B (zh) | 移动终端和无线通信方法 | |
CN107371264B (zh) | 一种上行数据传输的方法及设备 | |
CN101146102B (zh) | Rru网络中hdlc数据下行、上行的方法及通讯装置 | |
CN104052758A (zh) | 电能表多通信协议的自适应方法 | |
CN101222430B (zh) | 一种高速多协议数据传输系统和方法 | |
CN102811176B (zh) | 一种数据流量控制方法和装置 | |
CN102868635A (zh) | 多核多线程的报文保序方法及系统 | |
CN104242981B (zh) | 一种基于软件无线电的嵌入式通讯装置 | |
CN109062847A (zh) | 片上系统、用于rs485串口通讯的ip核及其控制方法 | |
CN101645832A (zh) | 一种基于fpga的虚拟机网络数据包处理方法 | |
CN102075376B (zh) | 一种多通信协议检测方法 | |
CN102413054B (zh) | 数据流量控制方法、装置及系统、网关设备、交换机设备 | |
CN106332227B (zh) | 搜网方法及装置 | |
CN101217786A (zh) | 一种基带资源共享方法、通信系统及设备 | |
CN105553615B (zh) | 基于fpga的流水线型多用户数据流接收装置及方法 | |
US20120044941A1 (en) | Data transmission system, data transmission method, and data transmission device | |
CN104394606B (zh) | 一种基于消息的无线通信网关的实现方法 | |
CN111770055A (zh) | 一种应用于电能表的多协议通讯帧快速判别方法 | |
CN106658388A (zh) | 蓝牙网关 | |
CN103152134B (zh) | 基于rtp协议的接收端重排语音包的方法和系统 | |
CN104539388B (zh) | 数据发送、接收方法和装置 | |
CN106034346B (zh) | 一种信息处理方法及电子设备 | |
CN103347023A (zh) | 一种工业现场环境下hdlc通信控制器 | |
CN111258937B (zh) | 一种环式链表dma的传输方法及系统 | |
CN104796997A (zh) | 无线传感网络中一种基于节点优先级的解决冲突的方法 |
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 |