公开一种高效率的双机通讯反馈方法,设置通过串口连接的数据发送端和数据接收端,数据包设置同步头,数据段和校验码,所述的数据发送端设置反馈等待链表,所述的数据接收端设置数据发送链表,所述的同步头设置两位反馈位,所述的双机通讯反馈方法设置以下步骤:数据发送端发送软件任务的数据包,进入反馈等待链表,启动定时器;数据接收端接收到数据包,对数据包进行数据校验,根据校验结果,设置数据发送链表的第一个数据包的同步头的反馈位;数据接收端接发送数据发送链表的第一个数据包;数据发送端接收到数据包,根据反馈位的数值,删除或者重启反馈等待链表的第一个软件任务,并停止定时器的定时工作;当定时器的定时时间到,数据发送端重新启动反馈等待链表的第一个软件任务。软件任务。软件任务。
【技术实现步骤摘要】
一种高效率的双机通讯反馈方法
[0001]本专利涉及一种高效率的双机通讯反馈方法,属于计算机通讯
技术介绍
[0002]在多机系统中,处理器之间通过串口交换信息,为了保证通讯的稳定性会设计通讯协议,包括数据包的格式以及反馈机制。其中,反馈机制是在数据接收方收到数据包以后,发送确认信息给数据发送方,说明接收数据校验正确,或者接收数据校验错误,数据发送方需要重新发送。反馈机制保证了数据接收方接收到正确数据,但是反馈机制并不发送应用数据,在数据收发频繁,通讯带宽有限的情况下,会给数据通讯造成压力。
技术实现思路
[0003]本专利的目的是为了解决上述问题,提供一种高效率的双机通讯反馈方法,在不挤占通讯带宽的前提下,完成反馈机制,实现可靠而高效的数据通讯。
[0004]本专利技术解决其技术问题所采用的技术方案是:一种高效率的双机通讯反馈方法,设置数据发送端和数据接收端,所述的数据发送端和数据接收端通过串口连接,可发送和接收规定格式的数据包,所述的数据包设置同步头,数据段和校验码,所述的数据发送端设置反馈等待链表,所述的反馈等待链表设置为先入先出规则,所述的数据接收端设置数据发送链表,所述的数据发送链表设置为先入先出规则,所述的同步头设置两位反馈位,二进制00为默认状态,表示无反馈,二进制01表示数据接收正确,二进制10表示数据接收错误,二进制11为预留状态,所述的双机通讯反馈方法设置以下步骤:(1) 当所述的数据发送端发送了软件任务的一个数据包,则将该软件任务加入所述的反馈等待链表,并启动定时器,定时时间为软件任务的最长反馈等待时间;(2) 所述的数据接收端接收到数据包以后,首先检查所述的数据发送链表,如果为空,则生成一个所述的数据段为空的数据包;然后,对接收到的数据包进行数据校验,如果校验合格则将所述的数据发送链表的第一个数据包的同步头的反馈位设置为二进制01,如果校验不合格,则在所述的数据发送链表的第一个数据包的同步头的反馈位设置为二进制10;(3) 所述的数据接收端接发送所述的数据发送链表的第一个数据包;(4) 所述的数据发送端接收到所述的数据包以后,如果所述的反馈位为二进制01,则删除所述的反馈等待链表的第一个软件任务,停止定时器的定时工作;如果反馈位为二进制10,则重启所述的反馈等待链表的第一个软件任务进行数据发送,并停止定时器的定时工作;(5) 当所述的定时器的定时时间到了,则所述的数据发送端重新启动所述的反馈等待链表的第一个软件任务,返回步骤(1)。
[0005]当所述的数据接收端需要发送数据时,所述的数据接收端设置为数据发送端,所
述的数据发送端设置为数据接收端。
[0006]本专利技术的有益效果主要表现在:在多机系统中,在不挤占通讯带宽的前提下,完成反馈机制,实现可靠而高效的数据通讯。
附图说明
[0007]图1是本专利实施提供的流程图。
具体实施方式
[0008]为了更好的理解本专利,下面结合附图对其具体说明。
[0009]参照图1,在多机系统中,为了提高数据通讯效率,提出一种高效率的双机通讯反馈方法。设置数据发送端和数据接收端,所述的数据发送端和数据接收端通过串口连接,可发送和接收规定格式的数据包,所述的串口可以设置为全双工串口,也可以设置为半双工串口,不影响专利的实施。所述的数据包设置同步头,数据段和校验码,所述的数据段是需要发送的信息,所述的校验码用于判断所述的数据包是否出现错误,所述的同步头用于说明所述的数据包的起始位置,设置两位反馈位,二进制00为默认状态,表示无反馈,二进制01表示数据接收正确,二进制10表示数据接收错误,二进制11为预留状态。当不需要发送反馈信息的时候,所述的反馈位设置为二进制00;当需要发送反馈信息的时候,所述的反馈位设置为二进制01或者二进制10。
[0010]所述的数据发送端设置反馈等待链表,所述的反馈等待链表设置为先入先出规则,用于存储完成数据发送过程并等待所述的数据接收端的反馈信息的软件任务;所述的数据接收端设置数据发送链表,所述的数据发送链表设置为先入先出规则,用于存放待发送的数据包。
[0011]所述的双机通讯反馈方法设置以下步骤:(1) 当所述的数据发送端发送了软件任务的一个数据包,则将该软件任务加入所述的反馈等待链表,并启动定时器,定时时间为软件任务的最长反馈等待时间;软件任务完成数据包发送之后,进入所述的反馈等待链表等待反馈信息。
[0012](2) 所述的数据接收端接收到数据包以后,首先检查所述的数据发送链表,如果为空,则生成一个所述的数据段为空的数据包;然后,对接收到的数据包进行数据校验,如果校验合格则将所述的数据发送链表的第一个数据包的同步头的反馈位设置为二进制01,如果校验不合格,则在所述的数据发送链表的第一个数据包的同步头的反馈位设置为二进制10;所述的数据接收端接收到数据包以后,第一步是保证所述的数据发送链表至少存在一个待发送的数据包,如果没有,则增加一个所述的数据段为空的数据包,这样可以在所述的同步头上附加反馈信息。第二步,进行数据包的数据校验,根据校验结果对所述的反馈位设置二进制信息。
[0013](3) 所述的数据接收端接发送所述的数据发送链表的第一个数据包;所述的数据接收端发送带有反馈信息的数据包。
[0014](4) 所述的数据发送端接收到所述的数据包以后,如果所述的反馈位为二进制01,则删除所述的反馈等待链表的第一个软件任务,停止定时器的定时工作;如果反馈位为
二进制10,则重启所述的反馈等待链表的第一个软件任务进行数据发送,并停止定时器的定时工作;所述的数据发送端接收到所述的数据包以后,首先,对所述的数据包的同步头进行解析,包括判断所述的同步头是否符合通讯协议,以及解析所述的反馈位的数值,以决定等待反馈的软件任务是成功结束数据发送任务,还是重启数据发送。
[0015](5) 当所述的定时器的定时时间到了,则所述的数据发送端重新启动所述的反馈等待链表的第一个软件任务,返回步骤(1)。
[0016]步骤(5)是针对所述的反馈等待链表的第一个软件任务在等待超时情况下的处理方法。
[0017]所述的数据发送端和数据接收端是相对于数据发送和接收的,当所述的数据接收端需要发送数据时,所述的数据发送端和数据接收端的功能互换,所述的数据接收端设置为数据发送端,所述的数据发送端设置为数据接收端。对于全双工的串口而言,可以同时进行数据的发送和接收,因此多机系统中的处理器可以既是所述的数据发送端,又是数据接收端。
[0018]综上所述,针对多机系统中数据收发频繁,通讯带宽有限的情况,提供一种高效率的双机通讯反馈方法,在现有通讯协议中增加反馈位,在不挤占通讯带宽的前提下,完成反馈机制,实现可靠而高效的数据通讯。
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种高效率的双机通讯反馈方法,设置数据发送端和数据接收端,所述的数据发送端和数据接收端通过串口连接,可发送和接收规定格式的数据包,所述的数据包设置同步头,数据段和校验码,其特征在于:所述的数据发送端设置反馈等待链表,所述的反馈等待链表设置为先入先出规则,所述的数据接收端设置数据发送链表,所述的数据发送链表设置为先入先出规则,所述的同步头设置两位反馈位,二进制00为默认状态,表示无反馈,二进制01表示数据接收正确,二进制10表示数据接收错误,二进制11为预留状态,所述的双机通讯反馈方法设置以下步骤:(1) 当所述的数据发送端发送了软件任务的一个数据包,则将该软件任务加入所述的反馈等待链表,并启动定时器,定时时间为软件任务的最长反馈等待时间;(2) 所述的数据接收端接收到数据包以后,首先检查所述的数据发送链表,如果为空,则生成一个所述的数据段为空的数据包;然后,对接收到的数据包...
【专利技术属性】
技术研发人员:ꢀ五一IntClH零四L一一六,
申请(专利权)人:杭州晶一智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。