CN105187420A - 一种基于rs422总线的通讯协议匹配方法 - Google Patents
一种基于rs422总线的通讯协议匹配方法 Download PDFInfo
- Publication number
- CN105187420A CN105187420A CN201510534673.XA CN201510534673A CN105187420A CN 105187420 A CN105187420 A CN 105187420A CN 201510534673 A CN201510534673 A CN 201510534673A CN 105187420 A CN105187420 A CN 105187420A
- Authority
- CN
- China
- Prior art keywords
- communications protocol
- frame head
- data
- protocol
- byte
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
一种基于RS422总线的通讯协议匹配方法,涉及通讯协议匹配方法,尤其涉及一种基于RS422总线的通讯协议匹配方法。本发明是要解决现有的复杂信息系统内部由于RS422数据接收过程中断数据分组不均匀导致数据包易丢失和通讯过程易受到错误帧干扰问题、通讯协议数据完整性和正确性难以保障的问题。本发明方法通过以下步骤进行:一、建立通讯协议匹配模板;二、接收并缓存RS422数据;三、匹配传输通道;四、匹配帧头首字节;五、匹配帧头全内容;六、匹配帧长度;七、匹配帧尾。采用本发明方法后,通讯协议数据满足了完整性和正确性要求。本发明可应用于航空航天和工业控制等各个领域中。<!-- 2 -->
Description
技术领域
本发明涉及通讯协议匹配方法,尤其涉及一种基于RS422总线的通讯协议匹配方法。
背景技术
RS422标准全称是“平衡电压数字接口电路的电气特性”,它定义了422通讯方式接口电路的特性。由于采用接收器高输入阻抗和发送器强驱动能力,RS422允许在相同传输线上连接多个接收节点,最多可以连接256个节点,其最大传输距离为1219米,最大传输速率为10Mb/s。凭借其高可靠性和高传输速率特点,RS422总线目前广泛应用于航空航天和工业控制等各个领域中,成为连接复杂电子信息系统内部各部件或子系统之间的重要信息传输通道。
在复杂电子信息系统内部,接口控制文件(ICD)作为描述复杂电子信息系统内部各部件之间及子系统之间通讯协议的依据,定义了各部件或子系统的电气及电子接口,是电子信息系统规范的重要组成部分。在复杂电子信息系统运行过程中,各部件或子系统在接收外部发送来的数据后,根据ICD中规定的通讯协议特征(如协议帧头、帧尾、长度等信息)对所接收的数据进行匹配,准确的查找出相应的通讯协议是后续进行信息处理的先决条件。
随着信息系统复杂度的增加,系统内部各部件或子系统之间所传输的信息种类也日渐增多,系统内部信息传输过程容易受到外部因素的干扰而影响所传输数据的完整性和正确性。如何根据RS422总线所接收的数据从种类繁多的ICD中快速查找其所对应的通讯协议,提高通讯协议的匹配速度,同时解决RS422数据接收过程中断数据分组不均匀导致数据包易丢失、通讯过程易受到错误帧干扰、通讯协议数据完整性和正确性难以保障的问题,是保障复杂电子信息系统正常运行的关键技术途径。
发明内容
本发明为解决现有的复杂信息系统内部由于RS422数据接收过程中断数据分组不均匀导致数据包易丢失问题,以及通讯过程易受到错误帧干扰、通讯协议数据完整性和正确性难以保障的问题,而提出一种基于RS422总线的通讯协议匹配方法。
一种基于RS422总线的通讯协议匹配方法,按以下步骤进行:
一、建立通讯协议匹配模板:
通讯协议匹配模板是根据ICD中所定义的通讯协议信息在软件中建立的模型,根据RS422总线常用ICD格式,以XML文件手动撰写方式建立通讯协议匹配模板,其中协议帧头数组和协议帧尾数组为由若干元素组成的动态数组,其内部每个元素为一个协议帧头或协议帧尾;
二、接收并缓存RS422数据:
在建立通讯协议匹配模板后,利用RS422通讯板卡进行数据接收;在接收RS422数据之前,需要按照各个部件或子系统的通讯参数对通讯板卡每个传输通道进行初始化,初始化的具体参数包括:波特率、数据位、停止位和校验位;由于复杂信息系统内部所含部件较多,需要采用多传输通道模式进行信息传输,因此需要为每个传输通道建立数据缓冲区;
每个传输通道的数据缓冲区大小为65535个字节,同时为管理数据缓冲区并使后续帧头匹配和帧长度匹配能够顺利进行,需要为每个传输通道设置单独的数据当前位置标识,该标识用于表征该通道当前所缓存等待进行通讯协议匹配的RS422数据量;
三、传输通道匹配:
接收到的RS422数据经过各通道数据缓存后,首先根据通讯协议匹配模板中的传输通道字段进行匹配,通讯协议匹配模板中某条协议的传输通道字段与本次接收的数据传输通道相同则认为传输通道匹配成功,将该条通讯协议加入到条件1协议队列中,并启动后续帧头首字节匹配过程;对于其它传输通道非本次接收的数据或传输通道不匹配的通讯协议不进行任何处理;
四、匹配帧头首字节:
采用帧头首字节匹配从数据缓冲区中寻找所有可能的数据起始位置;
四.一、从步骤三传输通道匹配成功后的条件1协议队列中取出一条通讯协议;
四.二、从该通讯协议的帧头数组中取出第一个帧头元素;
四.三、根据该帧头的是否固定值标识判断该帧头是否是固定值;
四.三.一、如果该帧头是固定值,则取该帧头值中的第一个字节数据与缓冲区中的数据从起始位置依次进行比较;
四.三.一.一、如果存在两者值相同的情况,则记录第一个相同数据在缓冲区的位置,判断该位置是否小于之前其它通讯协议首字节匹配成功后的首字节位置;
四.三.一.一.一、如果该条协议的首字节位置小于之前其它通讯协议首字节匹配成功后的首字节位置,则清空条件2协议队列中的所有通讯协议,将该条通讯协议加入到条件2协议队列中;
四.三.一.一.二、如果该条协议的首字节位置等于之前其它通讯协议首字节匹配成功后的首字节位置,将该条通讯协议加入到条件2协议队列中;
四.三.一.一.三、如果该条协议的首字节位置大于之前其它通讯协议首字节匹配成功后的首字节位置,则对该条通讯协议不进行任何处理;
四.三.一.二、如果不存在两者值相同的情况,则对该条通讯协议不进行任何处理;
四.三.二、如果该帧头是变值,则取该条通讯协议中帧头数组的下一个帧头元素进行比较,转至步骤四.三;
四.四、如果条件1协议队列中还包含其它协议,则转至步骤四.一,否则转至四.五;
四.五、完成帧头首字节匹配,输出条件2协议队列;
五、帧头全内容匹配:
帧头全内容匹配过程也同样采用线性查找方式;
五.一、从步骤四帧头首字节匹配成功后的条件2协议队列中取出一条通讯协议;
五.二、判断该通讯协议帧头长度与帧头首字节位置到该传输通道数据当前位置标识的大小关系;
五.二.一、如果该通讯协议帧头长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,认为帧头全内容匹配失败;
五.二.二、如果该通讯协议帧头长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,则从帧头首字节位置开始按照单字节取值的方法将该通讯协议帧头与缓冲区数据进行比较;
五.二.二.一、如果出现任意一个单字节不相同的情况,则认为帧头全内容匹配失败;
五.二.二.二、如果出现所有单字节比较都相同,则认为帧头全内容匹配成功,将该条协议加入到条件3协议队列;
五.三、如果条件2协议队列中还包含其它协议,则转至步骤五.一,否则转至步骤五.四;
五.四、完成帧头全内容匹配,输出条件3协议队列;
六、帧长度匹配:
在帧头全内容匹配成功后,该条通讯协议有较大可能匹配成功,但是在帧头之后数据所蕴含的内容是否完整也是通讯协议匹配的重要依据,因此在帧头全内容匹配成功之后,对于步骤五输出的条件3协议队列中的通讯协议,根据通讯协议匹配模板中的协议长度字段进行帧长度匹配;如果通讯协议长度小于或等于帧头首字节位置到该传输通道数据当前位置标识的长度,则该条协议是将携带完整的数据信息,将其加入到条件4协议队列中;如果通讯协议长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,则认为该条通讯协议尚未传输完成或者传输过程出现了数据丢失,通讯协议匹配过程失败;
七、帧尾匹配:
在协议帧长度匹配成功后,对于所传输数据需要通过帧尾内容再次进行匹配验证;
七.一、从步骤五帧长度匹配成功后的条件3协议队列中取出一条通讯协议;
七.二、计算该通讯协议帧尾在通讯协议数据中的起始位置;
七.三、取出该通讯协议的下一个帧尾数据,判断帧尾数据与缓冲区中该帧尾所在位置的数据是否相同;
七.三.一、如果帧尾数据与缓冲区中该帧尾所在位置数据相同,则转至步骤七.四;
七.三.一、如果帧尾数据与缓冲区中该帧尾所在位置数据不同,则将该条通讯协议从条件3协议队列中删除,并转至步骤七.五;
七.四、如果完成已经完成该通讯协议所有帧尾数据的比对,转至步骤七.五;否则转至步骤七.三;
七.五、如果条件3协议队列中还包含其它协议,则转至步骤七.一,否则转至步骤七.六;
七.六、输出条件3协议队列中剩余的通讯协议极为最终匹配成功的通讯协议。
本发明包括以下有益效果:
1、本发明所提出的通讯协议匹配方法通过帧头首字节匹配能够解决RS422数据接收过程中断数据分组不均匀导致数据包易丢失的问题;
2、通过帧头全内容匹配去除通讯过程的错误帧干扰的问题;
3、通过帧长度匹配保证通讯协议数据的完整性的问题;
4、通过帧尾匹配提高通讯协议数据的正确性的问题;
5、该本发明所述方法已经应用于舰载指控系统现场调试过程中,能够实现各模拟电台与指控平台之间的RS422协议快速高效匹配。
附图说明
图1为数据缓存过程流程图;
图2为帧头首字节匹配流程图;
图3为帧头全内容匹配流程图;
图4为帧尾匹配流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合图1至图4和具体实施方式对本发明作进一步详细的说明。
具体实施方式一、本实施方式所述的一种基于RS422总线的通讯协议匹配方法,按以下步骤进行:
一、建立通讯协议匹配模板:
通讯协议匹配模板是根据ICD中所定义的通讯协议信息在软件中建立的模型,根据RS422总线常用ICD格式,以XML文件手动撰写方式建立通讯协议匹配模板,其具体格式如表1所示:
表1通讯协议匹配模板
序号 | 名称 | 类型 | 备注 |
1 | 协议名称 | 字符串 | 不超过255字符 |
2 | 传输通道 | 无符号整型 | 0-16之间 |
3 | 协议帧头数组 | 动态数组 | |
4 | 协议帧尾数组 | 动态数组 | |
5 | 协议长度 | 无符号整型 | 1-512之间 |
6 | 协议当前值 | 无符号指针 | 指针大小由协议长度规定 |
其中协议帧头数组和协议帧尾数组为由若干元素组成的动态数组,其内部每个元素为一个协议帧头或协议帧尾,协议帧头格式如表2所示,协议帧尾格式如表3所示:
表2协议帧头格式
表3协议帧尾格式
二、接收并缓存RS422数据:
在建立通讯协议匹配模板后,利用RS422通讯板卡进行数据接收;在接收RS422数据之前,需要按照各个部件或子系统的通讯参数对通讯板卡每个传输通道进行初始化,初始化的具体参数包括:波特率、数据位、停止位和校验位;由于复杂信息系统内部所含部件较多,需要采用多传输通道模式进行信息传输,因此需要为每个传输通道建立数据缓冲区;
每个传输通道的数据缓冲区大小为65535个字节,同时为管理数据缓冲区并使后续帧头匹配和帧长度匹配能够顺利进行,需要为每个传输通道设置单独的数据当前位置标识,该标识用于表征该通道当前所缓存等待进行通讯协议匹配的RS422数据量,数据缓存过程如图1所示;
三、传输通道匹配:
接收到的RS422数据经过各通道数据缓存后,首先根据通讯协议匹配模板中的传输通道字段进行匹配,通讯协议匹配模板中某条协议的传输通道字段与本次接收的数据传输通道相同则认为传输通道匹配成功,将该条通讯协议加入到条件1协议队列中,并启动后续帧头首字节匹配过程;对于其它传输通道非本次接收的数据或传输通道不匹配的通讯协议不进行任何处理;
四、匹配帧头首字节:
RS422数据接收过程长数据包容易产生数据丢失的问题,采用帧头首字节匹配从数据缓冲区中寻找所有可能的数据起始位置就能够解决数据包丢失问题,处理流程如图2所示:
四.一、从步骤三传输通道匹配成功后的条件1协议队列中取出一条通讯协议;
四.二、从该通讯协议的帧头数组中取出第一个帧头元素;
四.三、根据该帧头的是否固定值标识判断该帧头是否是固定值;
四.三.一、如果该帧头是固定值(是否固定值标识为true),则取该帧头值中的第一个字节数据与缓冲区中的数据从起始位置依次进行比较;
四.三.一.一、如果存在两者值相同的情况,则记录第一个相同数据在缓冲区的位置,判断该位置是否小于之前其它通讯协议首字节匹配成功后的首字节位置;
四.三.一.一.一、如果该条协议的首字节位置小于之前其它通讯协议首字节匹配成功后的首字节位置,则清空条件2协议队列中的所有通讯协议,将该条通讯协议加入到条件2协议队列中;
四.三.一.一.二、如果该条协议的首字节位置等于之前其它通讯协议首字节匹配成功后的首字节位置,将该条通讯协议加入到条件2协议队列中;
四.三.一.一.三、如果该条协议的首字节位置大于之前其它通讯协议首字节匹配成功后的首字节位置,则对该条通讯协议不进行任何处理;
四.三.一.二、如果不存在两者值相同的情况,则对该条通讯协议不进行任何处理;
四.三.二、如果该帧头是变值(是否固定值标识为false),则取该条通讯协议中帧头数组的下一个帧头元素进行比较,转至步骤四.三;
四.四、如果条件1协议队列中还包含其它协议,则转至步骤四.一,否则转至四.五;
四.五、完成帧头首字节匹配,输出条件2协议队列;
五、帧头全内容匹配:
帧头全内容匹配是为了解决出现数据传输中存在错误帧和帧内容对于帧头产生干扰的问题,通过全内容的匹配,使得通讯协议中尽可能多的特征信息用于接收数据的识别匹配,能够极大的提高通讯协议数据匹配的准确性,帧头全内容匹配过程也同样采用线性查找方式,处理流程如图3所示:
五.一、从步骤四帧头首字节匹配成功后的条件2协议队列中取出一条通讯协议;
五.二、判断该通讯协议帧头长度与帧头首字节位置到该传输通道数据当前位置标识的大小关系;
五.二.一、如果该通讯协议帧头长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,认为帧头全内容匹配失败;
五.二.二、如果该通讯协议帧头长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,则从帧头首字节位置开始按照单字节取值的方法将该通讯协议帧头与缓冲区数据进行比较;
五.二.二.一、如果出现任意一个单字节不相同的情况,则认为帧头全内容匹配失败;
五.二.二.二、如果出现所有单字节比较都相同,则认为帧头全内容匹配成功,将该条协议加入到条件3协议队列;
五.三、如果条件2协议队列中还包含其它协议,则转至步骤五.一,否则转至步骤五.四;
五.四、完成帧头全内容匹配,输出条件3协议队列;
六、帧长度匹配:
在帧头全内容匹配成功后,该条通讯协议有较大可能匹配成功,但是在帧头之后数据所蕴含的内容是否完整也是通讯协议匹配的重要依据,因此在帧头全内容匹配成功之后,对于步骤五输出的条件3协议队列中的通讯协议,根据通讯协议匹配模板中的协议长度字段进行帧长度匹配,可以完成通讯协议完整性校验的功能;如果通讯协议长度小于或等于帧头首字节位置到该传输通道数据当前位置标识的长度,则该条协议是将携带完整的数据信息,将其加入到条件4协议队列中;如果通讯协议长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,则认为该条通讯协议尚未传输完成或者传输过程出现了数据丢失,通讯协议匹配过程失败;
七、帧尾匹配:
帧尾匹配过程主要起到通讯协议正确性校验功能;在协议帧长度匹配成功后,可以认为协议的完整性校验已经完成,但是对于所传输数据的正确性需要通过帧尾内容再次进行匹配验证,帧尾匹配流程如图4所示:
七.一、从步骤五帧长度匹配成功后的条件3协议队列中取出一条通讯协议;
七.二、计算该通讯协议帧尾在通讯协议数据中的起始位置;
七.三、取出该通讯协议的下一个帧尾数据,判断帧尾数据与缓冲区中该帧尾所在位置的数据是否相同;
七.三.一、如果帧尾数据与缓冲区中该帧尾所在位置数据相同,则转至步骤七.四;
七.三.一、如果帧尾数据与缓冲区中该帧尾所在位置数据不同,则将该条通讯协议从条件3协议队列中删除,并转至步骤七.五;
七.四、如果完成已经完成该通讯协议所有帧尾数据的比对,转至步骤七.五;否则转至步骤七.三;
七.五、如果条件3协议队列中还包含其它协议,则转至步骤七.一,否则转至步骤七.六;
七.六、输出条件3协议队列中剩余的通讯协议极为最终匹配成功的通讯协议。
本发明包括以下有益效果:
1、本发明所提出的通讯协议匹配方法通过帧头首字节匹配能够解决RS422数据接收过程中断数据分组不均匀导致数据包易丢失的问题;
2、通过帧头全内容匹配去除通讯过程的错误帧干扰的问题;
3、通过帧长度匹配保证通讯协议数据的完整性的问题;
4、通过帧尾匹配提高通讯协议数据的正确性的问题;
5、该本发明所述方法已经应用于舰载指控系统现场调试过程中,能够实现各模拟电台与指控平台之间的RS422协议快速高效匹配。
具体实施方式二、本实施方式是对具体实施方式一所述的一种基于RS422总线的通讯协议匹配方法的进一步说明,步骤一中所述的通讯协议匹配模板具体内容为:1、协议名称,字符串,不超过255字符;2、传输通道,无符号整型,0-16之间;3、协议帧头数组,动态数组;4、协议帧尾数组、动态数组;5、协议长度,无符号整型,1-512之间;6、协议当前值,无符号指针,指针大小由协议长度规定。
通讯协议匹配模板是根据ICD中所定义的通讯协议信息在软件中建立的模型,根据RS422总线常用ICD格式,以XML文件手动撰写方式建立通讯协议匹配模板
具体实施方式三、本实施方式是对具体实施方式一或二所述的一种基于RS422总线的通讯协议匹配方法的进一步说明,步骤一中所述的协议帧头格式为:1、帧头序号,无符号整型,1-20之间;2、帧头类型,枚举型,byte/char/int/uint/short/ushort/float/double/bool;3、帧头进制,枚举型,八进制/十进制/十六进制;4、是否固定值标识,布尔型,true为固定值false为变值;5、帧头值,无符号指针,指针大小由帧头类型规定。
通过帧头首字节匹配能够解决RS422数据接收过程中断数据分组不均匀导致数据包易丢失的问题;通过帧头全内容匹配去除通讯过程的错误帧干扰的问题。
具体实施方式四、本实施方式是对具体实施方式一或二所述的一种基于RS422总线的通讯协议匹配方法的进一步说明,步骤一中所述的协议帧尾格式为:1、帧尾序号,无符号整型,1-20之间;2、帧尾类型,枚举型,byte/char/int/uint/short/ushort/float/double/bool;3、帧尾进制,枚举型,八进制/十进制/十六进制;4、是否固定值标识,布尔型,true为固定值false为变值;5、帧尾值,无符号指针,指针大小由帧尾类型规定。
通过帧尾匹配提高通讯协议数据的正确性。
Claims (4)
1.一种基于RS422总线的通讯协议匹配方法,其特征在于它按以下步骤进行:
一、建立通讯协议匹配模板:
通讯协议匹配模板是根据ICD中所定义的通讯协议信息在软件中建立的模型,根据RS422总线常用ICD格式,以XML文件手动撰写方式建立通讯协议匹配模板,其中协议帧头数组和协议帧尾数组为由若干元素组成的动态数组,其内部每个元素为一个协议帧头或协议帧尾;
二、接收并缓存RS422数据:
在建立通讯协议匹配模板后,利用RS422通讯板卡进行数据接收;在接收RS422数据之前,需要按照各个部件或子系统的通讯参数对通讯板卡每个传输通道进行初始化,初始化的具体参数包括:波特率、数据位、停止位和校验位;由于复杂信息系统内部所含部件较多,需要采用多传输通道模式进行信息传输,因此需要为每个传输通道建立数据缓冲区;
每个传输通道的数据缓冲区大小为65535个字节,同时为管理数据缓冲区并使后续帧头匹配和帧长度匹配能够顺利进行,需要为每个传输通道设置单独的数据当前位置标识,该标识用于表征该通道当前所缓存等待进行通讯协议匹配的RS422数据量;
三、传输通道匹配:
接收到的RS422数据经过各通道数据缓存后,首先根据通讯协议匹配模板中的传输通道字段进行匹配,通讯协议匹配模板中某条协议的传输通道字段与本次接收的数据传输通道相同则认为传输通道匹配成功,将该条通讯协议加入到条件1协议队列中,并启动后续帧头首字节匹配过程;对于其它传输通道非本次接收的数据或传输通道不匹配的通讯协议不进行任何处理;
四、匹配帧头首字节:
采用帧头首字节匹配从数据缓冲区中寻找所有可能的数据起始位置;
四.一、从步骤三传输通道匹配成功后的条件1协议队列中取出一条通讯协议;
四.二、从该通讯协议的帧头数组中取出第一个帧头元素;
四.三、根据该帧头的是否固定值标识判断该帧头是否是固定值;
四.三.一、如果该帧头是固定值,则取该帧头值中的第一个字节数据与缓冲区中的数据从起始位置依次进行比较;
四.三.一.一、如果存在两者值相同的情况,则记录第一个相同数据在缓冲区的位置,判断该位置是否小于之前其它通讯协议首字节匹配成功后的首字节位置;
四.三.一.一.一、如果该条协议的首字节位置小于之前其它通讯协议首字节匹配成功后的首字节位置,则清空条件2协议队列中的所有通讯协议,将该条通讯协议加入到条件2协议队列中;
四.三.一.一.二、如果该条协议的首字节位置等于之前其它通讯协议首字节匹配成功后的首字节位置,将该条通讯协议加入到条件2协议队列中;
四.三.一.一.三、如果该条协议的首字节位置大于之前其它通讯协议首字节匹配成功后的首字节位置,则对该条通讯协议不进行任何处理;
四.三.一.二、如果不存在两者值相同的情况,则对该条通讯协议不进行任何处理;
四.三.二、如果该帧头是变值,则取该条通讯协议中帧头数组的下一个帧头元素进行比较,转至步骤四.三;
四.四、如果条件1协议队列中还包含其它协议,则转至步骤四.一,否则转至四.五;
四.五、完成帧头首字节匹配,输出条件2协议队列;
五、帧头全内容匹配:
帧头全内容匹配过程也同样采用线性查找方式;
五.一、从步骤四帧头首字节匹配成功后的条件2协议队列中取出一条通讯协议;
五.二、判断该通讯协议帧头长度与帧头首字节位置到该传输通道数据当前位置标识的大小关系;
五.二.一、如果该通讯协议帧头长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,认为帧头全内容匹配失败;
五.二.二、如果该通讯协议帧头长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,则从帧头首字节位置开始按照单字节取值的方法将该通讯协议帧头与缓冲区数据进行比较;
五.二.二.一、如果出现任意一个单字节不相同的情况,则认为帧头全内容匹配失败;
五.二.二.二、如果出现所有单字节比较都相同,则认为帧头全内容匹配成功,将该条协议加入到条件3协议队列;
五.三、如果条件2协议队列中还包含其它协议,则转至步骤五.一,否则转至步骤五.四;
五.四、完成帧头全内容匹配,输出条件3协议队列;
六、帧长度匹配:
在帧头全内容匹配成功后,该条通讯协议有较大可能匹配成功,但是在帧头之后数据所蕴含的内容是否完整也是通讯协议匹配的重要依据,因此在帧头全内容匹配成功之后,对于步骤五输出的条件3协议队列中的通讯协议,根据通讯协议匹配模板中的协议长度字段进行帧长度匹配;如果通讯协议长度小于或等于帧头首字节位置到该传输通道数据当前位置标识的长度,则该条协议是将携带完整的数据信息,将其加入到条件4协议队列中;如果通讯协议长度大于帧头首字节位置到该传输通道数据当前位置标识的长度,则认为该条通讯协议尚未传输完成或者传输过程出现了数据丢失,通讯协议匹配过程失败;
七、帧尾匹配:
在协议帧长度匹配成功后,对于所传输数据需要通过帧尾内容再次进行匹配验证;
七.一、从步骤五帧长度匹配成功后的条件3协议队列中取出一条通讯协议;
七.二、计算该通讯协议帧尾在通讯协议数据中的起始位置;
七.三、取出该通讯协议的下一个帧尾数据,判断帧尾数据与缓冲区中该帧尾所在位置的数据是否相同;
七.三.一、如果帧尾数据与缓冲区中该帧尾所在位置数据相同,则转至步骤七.四;
七.三.一、如果帧尾数据与缓冲区中该帧尾所在位置数据不同,则将该条通讯协议从条件3协议队列中删除,并转至步骤七.五;
七.四、如果完成已经完成该通讯协议所有帧尾数据的比对,转至步骤七.五;否则转至步骤七.三;
七.五、如果条件3协议队列中还包含其它协议,则转至步骤七.一,否则转至步骤七.六;
七.六、输出条件3协议队列中剩余的通讯协议极为最终匹配成功的通讯协议。
2.如权利要求1所述的一种基于RS422总线的通讯协议匹配方法,其特征在于步骤一中所述的通讯协议匹配模板具体内容为:1、协议名称,字符串,不超过255字符;2、传输通道,无符号整型,0-16之间;3、协议帧头数组,动态数组;4、协议帧尾数组、动态数组;5、协议长度,无符号整型,1-512之间;6、协议当前值,无符号指针,指针大小由协议长度规定。
3.如权利要求1或2所述的一种基于RS422总线的通讯协议匹配方法,其特征在于步骤一中所述的协议帧头格式为:1、帧头序号,无符号整型,1-20之间;2、帧头类型,枚举型,byte/char/int/uint/short/ushort/float/double/bool;3、帧头进制,枚举型,八进制/十进制/十六进制;4、是否固定值标识,布尔型,true为固定值false为变值;5、帧头值,无符号指针,指针大小由帧头类型规定。
4.如权利要求1或2所述的一种基于RS422总线的通讯协议匹配方法,其特征在于步骤一中所述的协议帧尾格式为:1、帧尾序号,无符号整型,1-20之间;2、帧尾类型,枚举型,byte/char/int/uint/short/ushort/float/double/bool;3、帧尾进制,枚举型,八进制/十进制/十六进制;4、是否固定值标识,布尔型,true为固定值false为变值;5、帧尾值,无符号指针,指针大小由帧尾类型规定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510534673.XA CN105187420B (zh) | 2015-08-27 | 2015-08-27 | 一种基于rs422总线的通讯协议匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510534673.XA CN105187420B (zh) | 2015-08-27 | 2015-08-27 | 一种基于rs422总线的通讯协议匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105187420A true CN105187420A (zh) | 2015-12-23 |
CN105187420B CN105187420B (zh) | 2018-03-30 |
Family
ID=54909264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510534673.XA Active CN105187420B (zh) | 2015-08-27 | 2015-08-27 | 一种基于rs422总线的通讯协议匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105187420B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573958A (zh) * | 2016-01-12 | 2016-05-11 | 西北工业大学 | 一种基于rs-422串行总线技术的数据可靠交互方法 |
CN106713343A (zh) * | 2017-01-09 | 2017-05-24 | 青岛金思特电子有限公司 | 一种基于云计算实现通信协议智能解析的方法 |
CN106851282A (zh) * | 2017-02-15 | 2017-06-13 | 福建时迅信息科技有限公司 | 一种vdi协议中减少视频图像编码数据量的方法和系统 |
CN107295014A (zh) * | 2017-08-09 | 2017-10-24 | 广州市中海达测绘仪器有限公司 | 电台通信协议转换方法、装置及系统 |
CN107395565A (zh) * | 2017-06-15 | 2017-11-24 | 北京机械设备研究所 | 一种定长单字节格式报文协议下串口接收预处理方法 |
CN108877178A (zh) * | 2018-07-05 | 2018-11-23 | 成都希格玛光电科技有限公司 | 一种工业现场远程数据采集方法及采集系统 |
CN109728879A (zh) * | 2019-01-17 | 2019-05-07 | 同方电子科技有限公司 | 串口突发接入应用层slip协议报文同步纠错方法 |
CN112671721A (zh) * | 2020-12-11 | 2021-04-16 | 浙江万胜智能科技股份有限公司 | 一种智能电能表的报文解析方法 |
CN113098873A (zh) * | 2021-04-02 | 2021-07-09 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置、计算机设备和计算机可读存储介质 |
CN115022413A (zh) * | 2022-06-27 | 2022-09-06 | 四川摩比斯智能物联科技有限公司 | 一种物联网通信协议的构建及交互的方法、装置 |
CN115866077A (zh) * | 2023-02-23 | 2023-03-28 | 眉山环天智慧科技有限公司 | 一种自适应的物联网tcp协议动态处理系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151883A1 (en) * | 2006-12-22 | 2008-06-26 | Geoffrey Cockerell | Serial digital communication protocol |
CN101588370A (zh) * | 2009-07-02 | 2009-11-25 | 浙江大学 | 一种多速率通讯数据流格式的解析方法 |
CN102510323A (zh) * | 2011-09-22 | 2012-06-20 | 航天科工惯性技术有限公司 | 一种串口数据的帧识别方法 |
CN104486034A (zh) * | 2014-12-08 | 2015-04-01 | 江西洪都航空工业集团有限责任公司 | 一种rs422/485串口通信数据组包方法 |
-
2015
- 2015-08-27 CN CN201510534673.XA patent/CN105187420B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151883A1 (en) * | 2006-12-22 | 2008-06-26 | Geoffrey Cockerell | Serial digital communication protocol |
CN101588370A (zh) * | 2009-07-02 | 2009-11-25 | 浙江大学 | 一种多速率通讯数据流格式的解析方法 |
CN102510323A (zh) * | 2011-09-22 | 2012-06-20 | 航天科工惯性技术有限公司 | 一种串口数据的帧识别方法 |
CN104486034A (zh) * | 2014-12-08 | 2015-04-01 | 江西洪都航空工业集团有限责任公司 | 一种rs422/485串口通信数据组包方法 |
Non-Patent Citations (1)
Title |
---|
王计波: ""面向智能断路器的多协议通信技术研究"", 《万方学位论文》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573958B (zh) * | 2016-01-12 | 2018-04-13 | 西北工业大学 | 一种基于rs‑422串行总线技术的数据可靠交互方法 |
CN105573958A (zh) * | 2016-01-12 | 2016-05-11 | 西北工业大学 | 一种基于rs-422串行总线技术的数据可靠交互方法 |
CN106713343A (zh) * | 2017-01-09 | 2017-05-24 | 青岛金思特电子有限公司 | 一种基于云计算实现通信协议智能解析的方法 |
CN106713343B (zh) * | 2017-01-09 | 2019-11-05 | 青岛金思特电子有限公司 | 一种基于云计算实现通信协议智能解析的方法 |
CN106851282A (zh) * | 2017-02-15 | 2017-06-13 | 福建时迅信息科技有限公司 | 一种vdi协议中减少视频图像编码数据量的方法和系统 |
CN107395565A (zh) * | 2017-06-15 | 2017-11-24 | 北京机械设备研究所 | 一种定长单字节格式报文协议下串口接收预处理方法 |
CN107395565B (zh) * | 2017-06-15 | 2020-03-17 | 北京机械设备研究所 | 一种定长单字节格式报文协议下串口接收预处理方法 |
CN107295014A (zh) * | 2017-08-09 | 2017-10-24 | 广州市中海达测绘仪器有限公司 | 电台通信协议转换方法、装置及系统 |
CN107295014B (zh) * | 2017-08-09 | 2020-04-21 | 广州市中海达测绘仪器有限公司 | 电台通信协议转换方法、装置及系统 |
CN108877178A (zh) * | 2018-07-05 | 2018-11-23 | 成都希格玛光电科技有限公司 | 一种工业现场远程数据采集方法及采集系统 |
CN109728879A (zh) * | 2019-01-17 | 2019-05-07 | 同方电子科技有限公司 | 串口突发接入应用层slip协议报文同步纠错方法 |
CN109728879B (zh) * | 2019-01-17 | 2022-02-11 | 同方电子科技有限公司 | 串口突发接入应用层slip协议报文同步纠错方法 |
CN112671721A (zh) * | 2020-12-11 | 2021-04-16 | 浙江万胜智能科技股份有限公司 | 一种智能电能表的报文解析方法 |
CN113098873A (zh) * | 2021-04-02 | 2021-07-09 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置、计算机设备和计算机可读存储介质 |
CN113098873B (zh) * | 2021-04-02 | 2021-11-16 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置、计算机设备和计算机可读存储介质 |
CN115022413A (zh) * | 2022-06-27 | 2022-09-06 | 四川摩比斯智能物联科技有限公司 | 一种物联网通信协议的构建及交互的方法、装置 |
CN115866077A (zh) * | 2023-02-23 | 2023-03-28 | 眉山环天智慧科技有限公司 | 一种自适应的物联网tcp协议动态处理系统及方法 |
CN115866077B (zh) * | 2023-02-23 | 2023-05-23 | 眉山环天智慧科技有限公司 | 一种自适应的物联网tcp协议动态处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105187420B (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105187420A (zh) | 一种基于rs422总线的通讯协议匹配方法 | |
CN107147657B (zh) | 适用于多机可靠通信的编解码方法及通讯设备 | |
EP3803578B1 (en) | Dynamic data transport between enterprise and business computing systems | |
CN111327687B (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN111352889B (zh) | 一种基于mctp协议的设备管理方法、设备、装置和介质 | |
CN104750588A (zh) | 一种基于串口通信的压力测试方法 | |
CN104038450B (zh) | 基于pcie总线的报文传输方法与装置 | |
US10999357B1 (en) | Data transmission system and data transmission method | |
CN102724122B (zh) | 基于硬件系统的串口可靠传输方法及装置 | |
CN104765573A (zh) | 一种串口通讯数据处理分析方法 | |
CN112671771A (zh) | 数据传输方法、装置、电子设备及介质 | |
CN203706058U (zh) | 一种基于can总线的多i/o板卡扩展结构 | |
US10574392B2 (en) | System. methods and devices for transmitting and/or receiving data using an inter communication link | |
CN114143119A (zh) | 一种基于fpga的行情低延时接口装置 | |
CN104660372A (zh) | 一种基于单片机异步串行端口多通道数据传输方法及系统 | |
CN107645747B (zh) | 一种发送和接收数据的方法及设备 | |
CN206224459U (zh) | 一种基于单片机的多机串口通信电路 | |
CN116506530A (zh) | 一种误码率低的多协议rfid读写器 | |
WO2023050045A1 (zh) | 数据传输方法、装置以及系统 | |
CN115379020A (zh) | 一种基于嵌入式的多机通讯协议设计方法 | |
CN113377363B (zh) | 对多种电控端私有协议自动生成源代码的云端实现方法 | |
CN108446551A (zh) | 一种无人机防改装系统 | |
CN107608679A (zh) | 一种通过Socket高效烧写机顶盒数据的方法 | |
CN107318128A (zh) | 无线通信优化方法、装置、存储介质及其计算机设备 | |
CN203658995U (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |