CN114928662B - 自定义协议支持多接口的通讯方法 - Google Patents
自定义协议支持多接口的通讯方法 Download PDFInfo
- Publication number
- CN114928662B CN114928662B CN202210428774.9A CN202210428774A CN114928662B CN 114928662 B CN114928662 B CN 114928662B CN 202210428774 A CN202210428774 A CN 202210428774A CN 114928662 B CN114928662 B CN 114928662B
- Authority
- CN
- China
- Prior art keywords
- command
- protocol
- data
- spacer
- port
- 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
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/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明提出一种自定义协议支持多接口的通讯方法,涉及通信技术领域,包括以下步骤:S10、自定义协议的初始化;S20、端口初始化;S30、端口接收数据,数据为字符串帧,字符串帧的数据包括设备ID、ID间隔符、多命令间隔符、命令段间隔符、无参命令、带参命令以及多命令结束符;S40、解析命令ID,判断当前设备ID与接收到的数据ID是否匹配,若ID匹配则进入下一步骤,否则清空协议接收缓冲区;S50、分解多命令,根据各命令之间的分隔符切成多个命令段;S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令;S70、单个命令处理;S80、端口发送数据。本发明具有更换通讯接口时不用更换通讯协议、能兼容多种通讯接口或设备的优点。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种自定义协议支持多接口的通讯方法。
背景技术
通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规 定,通信双方必须共同遵守,它也叫做链路控制规程。
传统的串口通讯传输,主要针对固定的某种通讯协议进行数据收发、解析。中国发明专利 CN107306256B 公开了一种基于字符串类型数据的通讯协议解析方法,首先提供一个通讯协议编辑工具给测试人员录入或导入已有的通讯协议信息,并保存成指定格式的xml 文件, 然后测试人员在接收到被测件的数据时,通讯协议解析模块自动地解析出当前收到的数据包属于哪种协议格式,以及该协议格式内各个协议字段的值,便于测试过程中进行测试判断和处理。该发明能够对通讯过程中收发数据自动进行解析、识别和处理,但是存在接收字符串长度有限定的问题。
发明内容
本发明的目的是提出一种自定义协议支持多接口的通讯方法,以解决背景技术中提出的问题。
为实现上述目的,本发明提供如出的自定义协议支持多接口的通讯方法,包括以下步骤:
S10、自定义协议的初始化,即设定数据解析的格式,具体为设定接收 ID 命令间隔符、 命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符,发送命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符;
S20、端口初始化,即初始化硬件;
S30、端口接收数据,端口接收的数据为字符串帧,并将字符串帧存储在协议接收缓冲区,字符串帧的数据包括设备 ID、ID 间隔符、多命令间隔符、命令段间隔符、无参命令、带参命令以及多命令结束符;
S40、解析命令 ID,判断当前设备 ID 与接收到的数据 ID 是否匹配,若 ID 匹配则进入下一步骤,否则清空协议接收缓冲区;
S50、分解多命令,根据各命令之间的分隔符切成多个命令段;
S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令;
S70、单个命令处理,即获取每个命令段的具体信息并且填充到发送缓冲区;
S80、端口发送数据。
进一步地,所述自定义协议的初始化还包括设定端口,清空协议接收缓冲区,设定命令间隔符、符号标志,指定传输指针。
进一步地,所述自定义协议为 devSource、devPort、cmdLineIndex、devHandle、recvReady、szCurRxBufPos、szRxBufSize、rxSeparator、rxTerminator、rxDelimiter、rxCmdDelimiter、 txSeparator、txTerminator、txDelimiter、szCurTxBufPos、multiCmdDelimiter、multiCmdFbDelimiter、 transmit、receive 中的任何一种。
进一步地,所述端口为 RS485、RS232、RS422、SPI、I2C、TCP、Soket、GPIB 中的任何一种。
进一步地,所述数据还包括整型 int、长整型 long、短整型 short、单精度浮点型float、 双精度浮点型 double、void、有符号型 signed、无符号型 unsigned 中的任何一种类型。
进一步地,所述端口发送数据包括 1 个或多个 ADC 通道数据、数据间隔符、命令间隔符、1 个或多个电压值、设置命令响应以及命令结束符。
本发明提出的自定义协议支持多接口的通讯方法,通过自定义协议、设定数据解析的格式以及对字符串帧的解析,支持在多种通讯接口或设备上接收数据和发送数据。本发明的有益效果是:具有更换通讯接口时不用更换通讯协议,能兼容多种通讯接口或设备。
附图说明
图 1 是本发明自定义协议支持多接口的通讯方法的实现流程图;
图 2 是本发明自定义协议支持多接口的通讯方法的初始化流程图;
图 3 是本发明自定义协议支持多接口的通讯方法的软件工作流程图;
图 4 是本发明自定义协议支持多接口的通讯方法应用的总线拓扑图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图 1-图 3,在本发明一实施例中,本发明提出的自定义协议支持多接口的通讯方法,包括以下步骤:
S10、自定义协议的初始化,即设定数据解析的格式,具体为设定接收 ID 命令间隔符、 命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符,发送命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符。
所述自定义协议的初始化还包括设定端口,清空协议接收缓冲区,设定命令间隔符、 符号标志,指定传输指针。
可选地,自定义协议为 devSource、devPort、cmdLineIndex、devHandle、recvReady、 szCurRxBufPos、szRxBufSize、rxSeparator、rxTerminator、rxDelimiter、rxCmdDelimiter、txSeparator、txTerminator 、txDelimiter 、szCurTxBufPos 、multiCmdDelimiter 、multiCmdFbDelimiter 、transmit、receive 中的任何一种;在实际应用中,可以根据需求进行选择,此处不作限定。通过自定义协议,本发明具有更换通讯接口时不用更换通讯协议的优点。
S20、端口初始化,即初始化硬件。可选地,所述端口为 RS485、RS232、RS422、 SPI、I2C、TCP、Soket、GPIB 中的任何一种,此处不作限定。
S30、端口接收数据,端口接收的数据为字符串帧,并将字符串帧存储在协议接收缓冲区;字符串帧没有帧起始,只有帧终止,并且不限定字符串的长度。在一实施例中,设备2 接收数据为 DEV1:VERSION;DEV2:ADC 1,2,3#VOLT 1,2,3#COEF 2.05\r,其中:
DEV1、DEV2 为设备 ID;
冒号为 ID 间隔符;
分号为多命令间隔符;
井号为命令段间隔符;
VERSION 为无参命令;
ADC 1,2,3、VOLT 1,2,3、COEF 2.05 均为带参命令;
\r 为多命令结束符。
字符串是设备 2 接收的主要数据类型,设备 2 还能接收整型 int、长整型long、短整型 short、单精度浮点型 float、双精度浮点型 double、void、有符号型signed、无符号型 unsigned 中的任何一种数据类型。
S40、解析命令 ID,判断当前设备 ID 与接收到的数据 ID 是否匹配,若 ID 匹配则进入下一步骤,否则清空协议接收缓冲区。
S50、分解多命令,根据各命令之间的分隔符切成多个命令段。
S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令。
S70、单个命令处理,即获取每个命令段的具体信息并且填充到发送缓冲区。
S80 、端口发送数据 。在一实施例中 ,设 备 2 发送的数据为 2584.0,135.0,116.4;1.2,0.8,0.954;OK\r,其中:
2584.0、135.0、116.4 分别为 ADC 通道 1 数据、ADC 通道 2 数据、ADC 通道 3数据;
逗号为数据间隔符;
分号为命令间隔符;
1.2、0.8、0.954 分别为电压值 1、电压值 2、电压值 3;
OK 为设置命令响应;
\r 为数据结束符。
参照图 4,主机通过 SPI 接口分别连接 SPI 从机 1、SPI 从机 2 与 SPI 从机3,主机还通过 UART 接口分别连接 UART 从机 1、UART 从机 2 与 UART 从机 3。UART 接口可以换成 RS232 接口或 RS485 接口或 RS422 接口,RS232 接口或 RS485 接口或RS422 接口的从机均可以和主机连接通信。本发明提出的自定义协议支持多接口的通讯方法,可应用于总线型网络拓扑结构,具有兼容多种通讯接口或设备的优点。
Claims (6)
1.自定义协议支持多接口的通讯方法,其特征在于,包括以下步骤:
S10、自定义协议的初始化,即设定数据解析的格式,具体为设定接收 ID 命令间隔符、命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符,发送命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符;
S20、端口初始化,即初始化硬件;
S30、端口接收数据,端口接收的数据为字符串帧,并将字符串帧存储在协议接收缓冲区,字符串帧的数据包括设备 ID、ID 间隔符、多命令间隔符、命令段间隔符、无参命令、带参命令以及多命令结束符;
S40、解析命令 ID,判断当前设备 ID 与接收到的数据 ID 是否匹配,若 ID 匹配则进入下一步骤,否则清空协议接收缓冲区;
S50、分解多命令,根据各命令之间的分隔符切成多个命令段;
S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令;
S70、单个命令处理,即获取每个命令段的具体信息并且填充到发送缓冲区;
S80、端口发送数据。
2.根据权利要求 1 所述的自定义协议支持多接口的通讯方法,其特征在于,所述自定义协议的初始化还包括设定端口,清空协议接收缓冲区,设定命令间隔符、符号标志,指定传输指针。
3.根据权利要求 1 所述的自定义协议支持多接口的通讯方法,其特征在于,所述自定义协议 为 devSource 、 devPort 、 cmdLineIndex 、 devHandle 、 recvReady 、szCurRxBufPos 、 szRxBufSize 、 rxSeparator 、 rxTerminator 、 rxDelimiter 、rxCmdDelimiter 、 txSeparator 、 txTerminator 、 txDelimiter 、 szCurTxBufPos 、multiCmdDelimiter 、 multiCmdFbDelimiter 、 transmit、receive 中的任何一种。
4.根据权利要求 1 所述的自定义协议支持多接口的通讯方法,其特征在于,所述端口为 RS485、RS232、RS422、SPI、I2C、TCP、Soket、GPIB 中的任何一种。
5.根据权利要求 1 所述的自定义协议支持多接口的通讯方法,其特征在于,所述数据还包括整型 int、长整型 long、短整型 short、单精度浮点型 float、双精度浮点型double、void、有符号型 signed、无符号型 unsigned 中的任何一种类型。
6.根据权利要求 1 所述的自定义协议支持多接口的通讯方法,其特征在于,所述端口发送的数据包括 1 个或多个 ADC 通道数据、数据间隔符、命令间隔符、1 个或多个电压值、设置命令响应以及命令结束符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210428774.9A CN114928662B (zh) | 2022-04-22 | 2022-04-22 | 自定义协议支持多接口的通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210428774.9A CN114928662B (zh) | 2022-04-22 | 2022-04-22 | 自定义协议支持多接口的通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114928662A CN114928662A (zh) | 2022-08-19 |
CN114928662B true CN114928662B (zh) | 2023-09-29 |
Family
ID=82807112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210428774.9A Active CN114928662B (zh) | 2022-04-22 | 2022-04-22 | 自定义协议支持多接口的通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114928662B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107489A (en) * | 1989-10-30 | 1992-04-21 | Brown Paul J | Switch and its protocol for making dynamic connections |
CN101420768A (zh) * | 2008-12-03 | 2009-04-29 | 武汉虹信通信技术有限责任公司 | 一种直放站网管监控协议的自适应解析方法 |
CN107306256A (zh) * | 2016-04-22 | 2017-10-31 | 上海真虹信息科技有限公司 | 一种基于字符串类型数据的通讯协议解析方法 |
CN107947982A (zh) * | 2017-11-24 | 2018-04-20 | 合肥维博自动化科技有限公司 | 一种设备软件管理系统 |
CN109684246A (zh) * | 2018-12-19 | 2019-04-26 | 东莞博力威电池有限公司 | 不同接口协议的设备之间进行数据传输的方法及系统 |
CN109842629A (zh) * | 2019-03-03 | 2019-06-04 | 北京立思辰安科技术有限公司 | 基于协议解析框架的自定义协议的实现方法 |
CN110502467A (zh) * | 2019-07-25 | 2019-11-26 | 江苏诺蓝翌新能源科技有限公司 | 一种基于串口modbus通信协议的通用采集接口软件系统 |
CN112069176A (zh) * | 2020-08-26 | 2020-12-11 | 北京航天发射技术研究所 | 一种通讯协议的数据库设计方法、装置、设备和存储介质 |
CN113242534A (zh) * | 2021-06-11 | 2021-08-10 | 合肥工业大学 | 一种基于wi-fi的通用型多协议数字仪表物联模块 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9479275B2 (en) * | 2012-06-01 | 2016-10-25 | Blackberry Limited | Multiformat digital audio interface |
-
2022
- 2022-04-22 CN CN202210428774.9A patent/CN114928662B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107489A (en) * | 1989-10-30 | 1992-04-21 | Brown Paul J | Switch and its protocol for making dynamic connections |
CN101420768A (zh) * | 2008-12-03 | 2009-04-29 | 武汉虹信通信技术有限责任公司 | 一种直放站网管监控协议的自适应解析方法 |
CN107306256A (zh) * | 2016-04-22 | 2017-10-31 | 上海真虹信息科技有限公司 | 一种基于字符串类型数据的通讯协议解析方法 |
CN107947982A (zh) * | 2017-11-24 | 2018-04-20 | 合肥维博自动化科技有限公司 | 一种设备软件管理系统 |
CN109684246A (zh) * | 2018-12-19 | 2019-04-26 | 东莞博力威电池有限公司 | 不同接口协议的设备之间进行数据传输的方法及系统 |
CN109842629A (zh) * | 2019-03-03 | 2019-06-04 | 北京立思辰安科技术有限公司 | 基于协议解析框架的自定义协议的实现方法 |
CN110502467A (zh) * | 2019-07-25 | 2019-11-26 | 江苏诺蓝翌新能源科技有限公司 | 一种基于串口modbus通信协议的通用采集接口软件系统 |
CN112069176A (zh) * | 2020-08-26 | 2020-12-11 | 北京航天发射技术研究所 | 一种通讯协议的数据库设计方法、装置、设备和存储介质 |
CN113242534A (zh) * | 2021-06-11 | 2021-08-10 | 合肥工业大学 | 一种基于wi-fi的通用型多协议数字仪表物联模块 |
Non-Patent Citations (2)
Title |
---|
Masashi Kono ; Satoshi Tsutsumi ; Hidehiro Toyoda.A port expander using protocol-independent link-aggregation technologies for large-scale data-center networks.The 20th Asia-Pacific Conference on Communication (APCC2014).2015,全文. * |
基于FPGA的软件定义协议无关解析器;苗力心;刘勤让;汪欣;;网络与信息安全学报(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114928662A (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108600192B (zh) | 一种基于正则表达式的dbc文件解析及报文分析方法 | |
CN107132832B (zh) | 一种基于can通讯的dbc文件解析及其程序设计方法 | |
CN101651683B (zh) | 一种信令消息解析源代码生成方法 | |
CN102098131B (zh) | 一种基于动态参数配置的串口数据帧通用组帧解帧方法 | |
CN202770933U (zh) | 一种高精度多通道模拟量自动测试系统 | |
CN113612654B (zh) | 一种基于数据库的车载网关功能测试方法 | |
CN111526052A (zh) | 网元指令管理方法、装置、网络设备及存储介质 | |
CN109756514B (zh) | 一种航天器复杂协议的遥测数据动态处理方法 | |
JP2011041455A (ja) | 変電自動化システムレポート通信試験装置およびその方法 | |
CN110390082B (zh) | 一种通信矩阵对比方法及系统 | |
CN114928662B (zh) | 自定义协议支持多接口的通讯方法 | |
CN106649165A (zh) | 建立嵌入式系统和pc主机通信连接的方法 | |
CN107885675B (zh) | 一种多功能测量仪器程控命令处理方法 | |
CN103378994A (zh) | 一种通信设备的测试方法及终端 | |
CN104836636B (zh) | 基于新型can帧进行通信的方法、装置及系统 | |
CN111881044A (zh) | 一种根据配置文件自动匹配测试案例系统 | |
CN113238936A (zh) | 一种可扩展的通用嵌入式软件通信接口测试方法及装置 | |
CN110825617B (zh) | 一种用于模拟设备间通讯交互的方法及装置 | |
CN109814816B (zh) | 在can总线上增加打印日志的系统及方法 | |
CN116521602A (zh) | 一种总线数据的传输方法和装置及存储介质 | |
CN106844819A (zh) | 智能站二次图模库设计工具数据库采集系统 | |
CN107144751B (zh) | 一种多信道矢量网络参数分析系统及方法 | |
CN107579871B (zh) | 基于模型检测的分布式测试脚本的生成方法与生成系统 | |
CN111026590A (zh) | 接口电路的数据验证方法及平台 | |
CN113722340A (zh) | 基于配电装置的远程自动点表更新的处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |