一种基于嵌入式的多机通讯协议设计方法



1.本发明涉及电子、通讯、信息工程类的技术领域,具体是一种基于嵌入式的多机通讯协议设计方法。


背景技术:



2.通信协议是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,数据长度,数据校验方式,帧头和帧尾等问题做出统一规定,通信双方必须共同遵守规则。
3.在工业控制计算机期刊中发表“stmzet6与s7-1200自定义通信协议实现串行通信”的论文中stm32单片机与西门子s7-1200系列plc实现远距离自定义通信协议的串行通信。其通信协议由单字节的起始符、标识符、数据、校验符和结束符组成。
4.以上是一种常用的一对一单机通信协议的设定,一般由单个固定字节的帧头和帧尾、数据内容、校验位组成。
5.现有的嵌入式自定义通信协议,结构定义简单,无法进行一对多的通信方式,效率较低。其次,校验方式单一,对于不同的嵌入式设备以及传输的数据长度没用采用合适的校验方式。


技术实现要素:



6.本发明的目的在于提供一种基于嵌入式的多机通讯协议设计方法,通过针对不同嵌入式设备之间的差异性,在协议中加入了校验方式数据位,可以选用不同的校验方式对接受到的数据进行校验,采用了灵活的校验方式,确保传输数据的准确性和可靠性,使其通信协议更加灵活和完整,实现一对多的嵌入式设备通信。
7.本发明的目的可以通过以下技术方案实现:
8.一种基于嵌入式的多机通讯协议设计方法,所述通讯协议由帧头、数据位、校验方式、校验位和帧尾组成,帧头id是由单个字节组成,数据位由接收端的 id、数据长度和具体传输的数据内容组成,校验位和帧尾校验方式用户可以自行定义。
9.进一步的,所述帧头通过用户自行定义发送方和接收方的id,发送方只能有一个,接收端可以有多个,第二个字节@是个固定字符,@字符asci i码对应的十六进制是0x40,第三个字节是接收端的个数,这个数字对应后面的字节个数,从第四个字节开始就是接收端的id,接收端id的数目与接收端的个数一致。
10.进一步的,所述数据位通过不同的接收端可以对应不同的数据,数据位第一个字节对应于接收端id1,数据位第二个字节和第三个字节是接收端id1要接收数据的个数,由两个字节构成,第二个字节是数据长度的高八位,第三个字节是数据长度的低八位。
11.两个字节共同构成接收端id1的数据长度,第四个字节就是接收端id1具体要接收的数据,其个数对应于第二和第三字节构成的长度,接着就是接收端i d2,其构成与接收端id1一样。
12.进一步的,所述校验位和校验方式根据嵌入式设备选择。校验方式用户自行定义,
如和校验、bbc校验、crc校验等其它的校验方式。校验位是根据不同的校验方式最终计算出来的校验数据。校验的数据是由帧头到校验位之前所有的数据,也就是除了最后两位不需要校验外,其它的数据全部参与校验。帧尾由一个固定的字符$组成,其asci i码对应的十六进制是0x24。
13.进一步的,所述通讯协议接收端接受数据的方法包括以下步骤:
14.s1:接收端接收数据
15.接收端在收到数据后根据帧头、帧尾、固定的字符和数据长度来确保收到的是一帧完整的数据。
16.s2:判断数据
17.在收到一帧完整的数据后,判断是否是一帧完整的数据,如不是返回s1,如是进行下一步骤。
18.s3:判断帧头
19.通过一帧完整的数据,接收端根据帧头里面的接收方的id是否包含自己的id 来判断是否有发送给自己的数据;如果不包含自己的id,说明不是发给自己的,那么丢弃此帧数据。
20.s4:校验数据
21.通过s3判断帧头如果包含自己的id,那么再根据校验方式来校验接收到的数据,与收到的数据校验位相比较,如果两个数据一致,那么接收端接受此帧发送给自己的数据。如果与收到的数据校验位相比较,校验不一致,则丢弃此帧数据。
22.本发明的有益效果:
23.1、本发明通讯协议设计方法完善了嵌入式系统之间常用的自定义通信协议,针对不同嵌入式设备之间的差异性,在协议中加入了校验方式数据位,可以选用不同的校验方式对接受到的数据进行校验;
24.2、本发明通讯协议设计方法采用了灵活的校验方式,确保传输数据的准确性和可靠性,使其通信协议更加灵活和完整;
25.3、本发明通讯协议设计方法实现了一对多的嵌入式设备通信。
附图说明
26.下面结合附图对本发明作进一步的说明。
27.图1是本发明通讯协议接收端接受数据的流程图;
28.图2是本发明通讯协议设计方法主机和从机连接图。
具体实施方式
29.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
30.结合图1、图2所示,一种基于嵌入式的多机通讯协议设计方法,通讯协议由帧头、数据位、校验方式、校验位和帧尾组成,帧头id是由单个字节组成,数据位由接收端的id、数
据长度和具体传输的数据内容组成,校验位和校验方式用户可以自行定义。
31.帧头通过用户自行定义发送方和接收方的id,如下表所示:
32.发送方id@接收方个数接收方id1接收方id2接收方id3......
33.其中发送方只能有一个,接收端可以有多个,第二个字节@是个固定字符,@字符 ascii码对应的十六进制是0x40,第三个字节是接收端的个数,这个数字对应后面的字节个数,从第四个字节开始就是接收端的id,接收端id的数目与接收端的个数一致。
34.数据位通过不同的接收端可以对应不同的数据,如下表所示:
35.接收方id1数据长度数据1数据2......接收方id2数据长度数据1......
36.其中,第一个字节对应于接收端id1,第二个字节和第三个字节是接收端id1要接收数据的个数,由两个字节构成,第二个字节是数据长度的高八位,第三个字节是数据长度的低八位,两个字节共同构成接收端id1的数据长度,第四个字节就是接收端id1具体要接收的数据,其个数对应于第二和第三字节构成的长度,接着就是接收端id2,其构成与接收端id1一样。
37.校验位和帧尾的校验方式根据嵌入式设备选择,如下图所示:
38.校验方式校验位$
39.其中,校验方式用户自行定义,如和校验、bbc校验、crc校验等其它的校验方式。校验位是根据不同的校验方式最终计算出来的校验数据。校验的数据是由帧头到校验位之前所有的数据,也就是除了最后两位不需要校验外,其它的数据全部参与校验。帧尾由一个固定的字符$组成,其ascii码对应的十六进制是0x24。
40.通讯协议接收端接受数据的方法包括以下步骤:
41.s1:接收端接收数据
42.接收端在收到数据后根据帧头、帧尾、固定的字符和数据长度来确保收到的是一帧完整的数据。
43.s2:判断数据
44.在收到一帧完整的数据后,判断是否是一帧完整的数据,如不是返回s1,如是进行下一步骤。
45.s3:判断帧头
46.通过一帧完整的数据,接收端根据帧头里面的接收方的id是否包含自己的id 来判断是否有发送给自己的数据。如果不包含自己的id,说明不是发给自己的,那么丢弃此帧数据。
47.s4:校验数据
48.通过s3判断帧头如果包含自己的id,那么再根据校验方式来校验接收到的数据,与收到的数据校验位相比较,如果两个数据一致,那么接收端接受此帧发送给自己的数据。如果与收到的数据校验位相比较,校验不一致,则丢弃此帧数据。
49.具体例子如图2所示,发送方的id是

r’字符,其ascii码对应的十六进制是0x52,接收端有多个,但是接收方就两个,接收方分别是

m’和

s’,其ascii 码对应的的十六进制分别为0x4d和0x53,发送的数据分别是0x11、0x22、0x33 和0x77、0x88、0x99。
50.检验采用bbc校验,校验是除了最后两位数据不参与校验外,其它数据全部参与校
验,校验方式用1表示,那么根据协议发送方一帧发送的数据如下:
51.[0x52、0x40、0x02、0x4d、0x53、0x4d、0x00、0x03、0x11、0x22、0x33、 0x53、0x00、0x03、0x77、0x88、0x99,0x01,0x77,0x24]。
[0052]
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0053]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

技术特征:


1.一种基于嵌入式的多机通讯协议设计方法,其特征在于,所述通讯协议由帧头、数据位、校验方式、校验位和帧尾组成,帧头id是由单个字节组成,数据位由接收端的id、数据长度和具体传输的数据内容组成,校验位和帧尾校验方式用户可以自行定义。2.根据权利要求1所述的一种基于嵌入式的多机通讯协议设计方法,其特征在于,所述帧头通过用户自行定义发送方和接收方的id,发送方只能有一个,接收端可以有多个,第二个字节@是个固定字符,@字符asci i码对应的十六进制是0x40,第三个字节是接收端的个数,这个数字对应后面的字节个数,从第四个字节开始就是接收端的id,接收端id的数目与接收端的个数一致。3.根据权利要求2所述的一种基于嵌入式的多机通讯协议设计方法,其特征在于,所述数据位通过不同的接收端可以对应不同的数据,数据位第一个字节对应于接收端id1,数据位第二个字节和第三个字节是接收端id1要接收数据的个数,由两个字节构成,第二个字节是数据长度的高八位,第三个字节是数据长度的低八位;两个字节共同构成接收端id1的数据长度,第四个字节就是接收端id1具体要接收的数据,其个数对应于第二和第三字节构成的长度,接着就是接收端id2,其构成与接收端id1一样。4.根据权利要求3所述的一种基于嵌入式的多机通讯协议设计方法,其特征在于,所述校验位和校验方式根据嵌入式设备选择。校验方式用户自行定义,如和校验、bbc校验、crc校验等其它的校验方式。校验位是根据不同的校验方式最终计算出来的校验数据。校验的数据是由帧头到校验位之前所有的数据,也就是除了最后两位不需要校验外,其它的数据全部参与校验。帧尾由一个固定的字符$组成,其ascii码对应的十六进制是0x24。5.根据权利要求4所述的一种基于嵌入式的多机通讯协议设计方法,其特征在于,所述通讯协议接收端接受数据的方法包括以下步骤:s1:接收端接收数据接收端在收到数据后根据帧头、帧尾、固定的字符和数据长度来确保收到的是一帧完整的数据;s2:判断数据在收到一帧完整的数据后,判断是否是一帧完整的数据,如不是返回s1,如是进行下一步骤;s3:判断帧头通过一帧完整的数据,接收端根据帧头里面的接收方的id是否包含自己的id来判断是否有发送给自己的数据;如果不包含自己的id,说明不是发给自己的,那么丢弃此帧数据。s4:校验数据通过s3判断帧头如果包含自己的id,那么再根据校验方式来校验接收到的数据,与收到的数据校验位相比较,如果两个数据一致,那么接收端接受此帧发送给自己的数据。如果与收到的数据校验位相比较,校验不一致,则丢弃此帧数据。

技术总结


本发明公开一种基于嵌入式的多机通讯协议设计方法,所述通讯协议由帧头、数据位、校验方式、校验位和帧尾组成,帧头ID是由单个字节组成,数据位由接收端的ID、数据长度和具体传输的数据内容组成,校验位和帧尾校验方式用户可以自行定义。本发明通讯协议设计方法完善了嵌入式系统之间常用的自定义通信协议,针对不同嵌入式设备之间的差异性,在协议中加入了校验方式数据位,可以选用不同的校验方式对接受到的数据进行校验,采用了灵活的校验方式,确保传输数据的准确性和可靠性,使其通信协议更加灵活和完整,实现一对多的嵌入式设备通信。实现一对多的嵌入式设备通信。实现一对多的嵌入式设备通信。


技术研发人员:

丁腾腾 周旺平 徐德邻 吴海波

受保护的技术使用者:

南京信息工程大学

技术研发日:

2022.08.08

技术公布日:

2022/11/22

本文发布于:2024-09-21 21:58:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/19464.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   字节   自己的   方式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议