自定义协议支持多接口的通讯方法技术

技术编号:34608772 阅读:23 留言:0更新日期:2022-08-20 09:13
本发明专利技术提出一种自定义协议支持多接口的通讯方法,涉及通信技术领域,包括以下步骤:S10、自定义协议的初始化,即设定数据解析的格式;S20、端口初始化;S30、端口接收数据,数据为字符串帧;S40、解析命令ID,用当前的设备ID识别端口接收数据的ID,若ID匹配则进入下一步骤,否则清空协议接收缓冲区;S50、分解多命令,根据各命令之间的分隔符切成多个命令段;S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令;S70、单个命令处理,即获取每个命令段的具体信息并填充到发送缓冲区;S80、端口发送数据。本发明专利技术具有更换通讯接口时不用更换通讯协议、能兼容多种通讯接口或设备的优点。或设备的优点。或设备的优点。

【技术实现步骤摘要】
自定义协议支持多接口的通讯方法


[0001]本专利技术涉及通信
,特别涉及一种自定义协议支持多接口的通讯方法。

技术介绍

[0002]通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。
[0003]传统的串口通讯传输,主要针对固定的某种通讯协议进行数据收发,解析。中国专利技术专利CN107306256B公开了一种基于字符串类型数据的通讯协议解析方法,首先提供一个通讯协议编辑工具给测试人员录入或导入已有的通讯协议信息,并保存成指定格式的xml文件,然后测试人员在接收到被测件的数据时,通讯协议解析模块自动地解析出当前收到的数据包属于哪种协议格式,以及该协议格式内各个协议字段的值,便于测试过程中进行测试判断和处理。该专利技术能够对通讯过程中收发数据自动进行解析、识别和处理,但是存在接收字符串长度有限定的问题。
[0004]
技术实现思路

[0005]本专利技术的目的是提出一种自定义协议支持多接口的通讯方法,以解决
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如出的自定义协议支持多接口的通讯方法,包括以下步骤:S10、自定义协议的初始化,即设定数据解析的格式,具体为设定接收ID命令间隔符、命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符,发送命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符;S20、端口初始化,即初始化硬件;S30、端口接收数据,端口接收的数据为字符串帧,并将字符串帧存储在协议接收缓冲区;S40、解析命令ID,用当前的设备ID识别端口接收数据的ID,若ID匹配则进入下一步骤,否则清空协议接收缓冲区;S50、分解多命令,根据各命令之间的分隔符切成多个命令段;S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令;S70、单个命令处理,即获取每个命令段的具体信息并且填充到发送缓冲区;S80、端口发送数据。
[0007]进一步地,所述自定义协议的初始化还包括设定端口,清空协议接收缓冲区,设定命令间隔符、符号标志,指定传输指针。
[0008]进一步地,所述自定义协议为devSource、devPort、cmdLineIndex、devHandle、
recvReady、szCurRxBufPos、szRxBufSize、rxSeparator、rxTerminator、rxDelimiter、rxCmdDelimiter、txSeparator、txTerminator、txDelimiter、szCurTxBufPos、multiCmdDelimiter、multiCmdFbDelimiter、transmit、receive中的任何一种。
[0009]进一步地,所述端口为RS485、RS232、RS422、SPI、I2C、TCP、Soket、GPIB中的任何一种。
[0010]进一步地,所述数据还包括整型int、长整型long、短整型short、单精度浮点型float、双精度浮点型double、void、有符号型signed、无符号型unsigned中的任何一种类型。
[0011]进一步地,所述字符串帧的数据包括设备ID、ID间隔符、多命令间隔符、命令段间隔符、无参命令、带参命令以及多命令结束符。
[0012]进一步地,所述端口发送数据包括1个或多个ADC通道数据、数据间隔符、命令间隔符、1个或多个电压值、设置命令响应以及命令结束符。
[0013]本专利技术提出的自定义协议支持多接口的通讯方法,通过自定义协议、设定数据解析的格式以及对字符串帧的解析,支持在多种通讯接口或设备上接收数据和发送数据。本专利技术的有益效果是:具有更换通讯接口时不用更换通讯协议,能兼容多种通讯接口或设备。
附图说明
[0014]图1是本专利技术自定义协议支持多接口的通讯方法的实现流程图;图2是本专利技术自定义协议支持多接口的通讯方法的初始化流程图;图3是本专利技术自定义协议支持多接口的通讯方法的软件工作流程图;图4是本专利技术自定义协议支持多接口的通讯方法应用的总线拓扑图。
[0015]具体实施方式
[0016]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0017]参照图1

图3,在本专利技术一实施例中,本专利技术提出的自定义协议支持多接口的通讯方法,包括以下步骤:S10、自定义协议的初始化,即设定数据解析的格式,具体为设定接收ID命令间隔符、命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符,发送命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符。
[0018]所述自定义协议的初始化还包括设定端口,清空协议接收缓冲区,设定命令间隔符、符号标志,指定传输指针。
[0019]可选地,自定义协议为devSource、devPort、cmdLineIndex、devHandle、recvReady、szCurRxBufPos、szRxBufSize、rxSeparator、rxTerminator、rxDelimiter、rxCmdDelimiter、txSeparator、txTerminator、txDelimiter、szCurTxBufPos、multiCmdDelimiter、multiCmdFbDelimiter、transmit、receive中的任何一种;在实际应用
中,可以根据需求进行选择,此处不作限定。通过自定义协议,本专利技术具有更换通讯接口时不用更换通讯协议的优点。
[0020]S20、端口初始化,即初始化硬件。可选地,所述端口为RS485、RS232、RS422、SPI、I2C、TCP、Soket、GPIB中的任何一种,此处不作限定。
[0021]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为多命令结束符。
[0022]字符串是设备2接收的主要数据类型,设备2还能接收整型int、长整型long、短整型short、单精度浮点型float、双精度浮点型double、void、有符号型signed、无符号型unsigned中的任何一种数据类型。
[0023]S4本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.自定义协议支持多接口的通讯方法,其特征在于,包括以下步骤:S10、自定义协议的初始化,即设定数据解析的格式,具体为设定接收ID命令间隔符、命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符,发送命令段间隔符、命令参数间隔符、协议定界符、协议帧终止符;S20、端口初始化,即初始化硬件;S30、端口接收数据,端口接收的数据为字符串帧,并将字符串帧存储在协议接收缓冲区;S40、解析命令ID,用当前的设备ID识别端口接收数据的ID,若ID匹配则进入下一步骤,否则清空协议接收缓冲区;S50、分解多命令,根据各命令之间的分隔符切成多个命令段;S60、解析单个命令,根据设置的参数处理单个命令段或者确定含义的单个命令;S70、单个命令处理,即获取每个命令段的具体信息并且填充到发送缓冲区;S80、端口发送数据。2.根据权利要求1所述的自定义协议支持多接口的通讯方法,其特征在于,所述自定义协议的初始化还包括设定端口,清空协议接收缓冲区,设定命令间隔符、符号标志,指定传输指针。3.根据权利要求1所述的自定义协议支持多接口的通讯方法,其特征在于,所述自定义协议为devSource、devPort、cmdLineIndex、devHandle、recvReady、szCurRxBufPos、szRxBufSize、rxSe...

【专利技术属性】
技术研发人员:徐建文黄海阳
申请(专利权)人:深圳市天陆海导航设备技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1