一种通信方法及装置转让专利

申请号 : CN201510016690.4

文献号 : CN104615573B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 笪禹周应学

申请人 : 大唐移动通信设备有限公司

摘要 :

本发明提供了一种通信方法及装置,用以准确进行收发模式切换,避免数据传输不完整,从而保障通信的可靠性。所述方法包括:当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。

权利要求 :

1.一种通信方法,其特征在于,该方法包括:

当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;

分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式;

其中,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据;

其中,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,包括:将所述数据帧划分为两个阶段需要发送的数据,其中第一阶段需要发送的数据包括所述结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。

2.根据权利要求1所述的方法,其特征在于,在发送相邻两个阶段需要发送的数据之间,间隔预设时长。

3.根据权利要求1所述的方法,其特征在于,所述预设时长大于或等于发送最后一个阶段需要发送的数据所需要的时间。

4.根据权利要求1所述的方法,其特征在于,在切换本端的数据传输模式为接收模式之后,该方法还包括:接收对端发送的所述数据帧的接收完成响应。

5.一种通信方法,其特征在于,该方法包括:

当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志;

当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式;

其中,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据;

其中,该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,包括:该数据帧是对端分成两个阶段发送的数据,其中第一阶段接收到的数据包括结束标志之前的所有数据,第二个阶段接收到的数据中仅包括单字节的结束标志。

6.根据权利要求5所述的方法,其特征在于,在切换本端的数据传输模式为发送模式之后,该方法还包括:向对端发送所述数据帧的接收完成响应。

7.一种通信装置,其特征在于,该装置包括:

发送单元,用于当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;

切换单元,用于分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式;

其中,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据;

其中,所述发送单元中将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,具体用于:将所述数据帧划分为两个阶段需要发送的数据,其中第一个阶段需要发送的数据包括所述结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。

8.根据权利要求7所述的装置,其特征在于,切换单元在发送相邻两个阶段需要发送的数据之间,间隔预设时长。

9.根据权利要求7所述的装置,其特征在于,切换单元中所述预设时长大于或等于发送最后一个阶段需要发送的数据所需要的时间。

10.根据权利要求7所述的装置,其特征在于,在切换本端的数据传输模式为接收模式之后,所述切换单元,还用于:接收对端发送的所述数据帧的接收完成响应。

11.一种通信装置,其特征在于,该装置包括:

接收单元,用于当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志;

切换单元,用于当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式;

其中,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据;

其中,所述接收单元中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,包括:该数据帧是对端分成两个阶段发送的数据,其中第一阶段接收到的数据包括结束标志之前的所有数据,第二个阶段接收到的数据中仅包括单字节的结束标志。

12.根据权利要求11所述的装置,其特征在于,在切换本端的数据传输模式为发送模式之后,所述切换单元,还用于:向对端发送所述数据帧的接收完成响应。

13.根据权利要求12所述的装置,其特征在于,该装置还包括:发送单元,用于当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;

所述切换单元,还用于分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。

说明书 :

一种通信方法及装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种通信方法及装置。

背景技术

[0002] 基于串口的主从模式半双工广泛应用于工业控制和通信系统领域,每次通信过程由主节点设备轮询从节点设备,被轮询的从节点设备响应主节点设备的请求。
[0003] 由于半双工串口在任意时刻只能处于发送或接收状态,因此设备节点存在发送和接收切换过程,一般情况下默认串口处于接收状态,当有数据需要发送时切换到发送状态,发送完毕后切换回接收状态。
[0004] 主从模式的半双工通信中,接收、发送模式的正确切换是保证可靠通信的关键,在软件流程,当有数据需要发送时,软件会将串口配置为发送模式,这个过程一般很容易实现。反向,当数据发送完成时需要切换到接收模式,这个切换时间点是影响通信的关键点,如果切换时间过早,数据可能还在底层硬件上排队,并未完全发送到线路上,从而导致发送数据不完整;如果切换时间过晚,有可能错过接收通信对端的返回数据,导致接收不完整。
[0005] 针对这个问题,现有的技术方法一般采用借助硬件手段来进行判断切换时间。以主设备发送数据给从设备为例,进行详细描述,包括步骤:
[0006] 步骤一,当主设备有数据需要发送到从设备时,主设备将与该从设备的数据传输模式切换为发送模式,并发送数据给该从设备。
[0007] 步骤二,当底层硬件接收到数据后,将返回一个发送完成标志给主设备。
[0008] 步骤三,主设备接收从设备底层硬件发送的完成标识,延时一段时间,预计数据全部到达线路,则将主设备的数据传输模式切换为接收模式,并接收该从设备返回的发送响应。
[0009] 其中,线路是指主设备到从设备之间的物理线路,底层硬件为串口的数据写入层或缓冲区,完成标志为底层硬件返回的中断或标志。
[0010] 然而,在实际应用中,很多底层硬件只提供了数据写入底层先进先出队列(First Input First Output,FIFO)或缓冲区的标志,但这种标志只能表示数据已经到达底层硬件,但是底层硬件何时将数据完全发送到线路上是不确定的,由于发送延时不确定导致切换时间点不好把握,所以在接收到硬件发送的检测标志并进行延时后,才能切换到接收模式。
[0011] 具体地,定义主设备开始发送数据时间为t1,底层硬件返回完成标志时间为t2,数据全部到达线路时间为t3,从设备接收数据完毕时间为t4,从设备发送响应时间为t5,从设备第一个字节到达主设备时间为t6。主设备接收到硬件返回完成标志时间至主设备切换到接收模式的时间段为延长时长,其中延长时长用△t表示。
[0012] 针对延长时长△t,分为两种情况。
[0013] 参见图1,△t<(t3-t2)情况:当主设备发送的数据到底层硬件后,底层硬件将返回一个完成标志,延长△t后,主设备切换到接收模式,但此时底层硬件存储的需要发送的数据还没有完全发送到线路,导致需要发送的数据的尾部因为主设备已经接换到接收模式,而发送数据不完整。
[0014] 参见图2,△t>(t6-t2)情况:当主设备发送的数据到底层硬件,且底层硬件将数据完全发送到线路,从设备将接收到的数据统计计算后,返回发送响应给主设备。但此时,主设备仍然处于发送模式,还没切换到接收模式,不能接收从设备发送的响应,从而导致主设备接收从设备发送的数据不完整。
[0015] 因此,利用现有技术进行数据通信,需要确定接收到底层硬件返回的完成标志,并延长一段时间后,切换数据传输模式为接收模式,其中,延长时长△t需要符合(t6-t2)>△t>(t3-t2),才能保证数据接收完整以及发送完整。
[0016] 综上所述,采用借助硬件手段来进行判断切换时间,会受到发送数据字节长度和操作系统实现方式的影响,以及因为硬件不支持发送完毕标志,导致主从模式半双工串口的收发模式切换不准确,从而造成数据发送不完整或接收不完整,降低了通信的可靠性。

发明内容

[0017] 本发明实施例提供了一种通信方法及装置,用以准确进行收发模式切换,避免数据传输不完整,从而保障通信的可靠性。
[0018] 本发明实施例提供了一种通信方法,该方法包括:
[0019] 当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;
[0020] 分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。
[0021] 具体地,通过该方法,首先当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,然后分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。从而准确进行收发模式切换,避免数据传输不完整,保障了通信的可靠性。
[0022] 较佳地,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0023] 较佳地,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,包括:
[0024] 将所述数据帧划分为两个阶段需要发送的数据,其中第一个阶段需要发送的数据包括所述结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。
[0025] 具体地,将需要发送的数据帧划分为两个阶段发送,从而准确进行主从模式半双工串口的收发切换。
[0026] 较佳地,分别发送每一阶段需要发送的数据,包括:
[0027] 在发送相邻两个阶段需要发送的数据之间,间隔预设时长。
[0028] 较佳地,所述预设时长大于或等于发送最后一个阶段需要发送的数据所需要的时间。
[0029] 较佳地,在切换本端的数据传输模式为接收模式之后,该方法还包括:
[0030] 接收对端发送的所述数据帧的接收完成响应。
[0031] 本发明实施例提供了一种通信方法,该方法包括:
[0032] 当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志;
[0033] 当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式。
[0034] 具体地,通过该方法,首先当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,然后当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式。从而准确进行收发模式切换,避免数据接收不完整,保障了通信的可靠性。
[0035] 较佳地,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0036] 较佳地,该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,包括:
[0037] 该数据帧是对端分成两个阶段发送的数据,其中第一阶段接收到的数据包括结束标志之前的所有数据,第二个阶段接收到的数据中仅包括单字节的结束标志。
[0038] 较佳地,在切换本端的数据传输模式为发送模式之后,该方法还包括:
[0039] 向对端发送所述数据帧的接收完成响应。
[0040] 本发明实施例提供了一种通信装置,该装置包括:
[0041] 发送单元,用于当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;
[0042] 切换单元,用于分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。
[0043] 具体地,通过该装置,首先当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,然后分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。从而准确进行收发模式切换,避免数据传输不完整,保障了通信的可靠性。
[0044] 较佳地,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0045] 较佳地,所述发送单元中该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,具体用于:
[0046] 将所述数据帧划分为两个阶段需要发送的数据,其中第一个阶段需要发送的数据包括所述结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。
[0047] 较佳地,切换单元在发送相邻两个阶段需要发送的数据之间,间隔预设时长。
[0048] 较佳地,切换单元中所述预设时长大于或等于发送最后一个阶段需要发送的数据所需要的时间。
[0049] 较佳地,在切换本端的数据传输模式为接收模式之后,所述切换单元,还用于:
[0050] 接收对端发送的所述数据帧的接收完成响应。
[0051] 本发明实施例提供了一种通信装置,该装置包括:
[0052] 接收单元,用于当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志;
[0053] 切换单元,用于当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式。
[0054] 具体地,通过该装置,首先当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,然后当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式。从而准确进行收发模式切换,避免数据接收不完整,保障了通信的可靠性。
[0055] 较佳地,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0056] 较佳地,所述接收单元中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,包括:
[0057] 该数据帧是对端分成两个阶段发送的数据,其中第一阶段接收到的数据包括结束标志之前的所有数据,第二个阶段接收到的数据中仅包括单字节的结束标志。
[0058] 较佳地,在切换本端的数据传输模式为发送模式之后,所述切换单元,还用于:
[0059] 向对端发送所述数据帧的接收完成响应。
[0060] 较佳地,该装置还包括:
[0061] 发送单元,用于当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;
[0062] 所述切换单元,还用于分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。

附图说明

[0063] 图1为现有技术提供的一种通信方法的具体流程示意图;
[0064] 图2为现有技术提供的另一种通信方法的具体流程示意图;
[0065] 图3为本发明实施例提供的一种通信方法的流程示意图;
[0066] 图4为本发明实施例提供的一种通信方法的流程示意图;
[0067] 图5为本发明实施例提供的一种通信方法的具体流程示意图;
[0068] 图6为本发明实施例提供的一种通信装置的结构示意图;
[0069] 图7为本发明实施例提供的一种通信装置的结构示意图。

具体实施方式

[0070] 本发明实施例提供了一种通信方法及装置,用以准确进行收发模式切换,避免数据传输不完整,从而保障通信的可靠性。
[0071] 参见图3,本发明实施例提供的一种通信方法,该方法包括:
[0072] S301、当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中至少包括所述数据帧的结束标志;
[0073] 其中,本端是指主从模式串口通信的主设备或者从设备。当本端指主设备时,对端指的是从设备,主设备将数据传输模式切换为发送模式,用以发送数据给从设备。或者本端是从设备时,对端指的是主设备,从设备将数据传输模式切换为发送模式,用以发送数据给主设备。
[0074] 其中,在数据传输过程中,不同串口的通信协议可能不相同,所以数据传输时应用的数据帧格式也会不相同。其中,数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0075] 具体地,根据不同数据帧的格式,将需要发送的数据帧划分为多个阶段进行发送,且最后一个阶段需要发送的数据中至少包括数据帧的结束标志。当除最后一个阶段之外的多个阶段需要发送的数据发送到对端后,因为对端没有接收到结束标志,就不会发送响应到本端,所以本端就不用考虑切换时间。只有当接收到最后一个阶段包含的结束标志后,对端才会将数据传输模式切换为发送模式,并发送数据帧的接收完成响应给本端。
[0076] 其中,最后一个阶段至少包括数据帧的结束标志,结束标志是指数据帧的最后一个字节。所以最后一个阶段可以包括最后两个字节或者多于两个字节。较佳地,最后一个阶段需要发送的数据仅包括最后一个字节,有利于计算本端数据通信模式切换为接收模式的时间。
[0077] 最简单的实施方式是将需要发送的数据帧划分两个阶段需要发送的数据,其中第一个阶段需要发送的数据包括所述结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。这样的通信方式也是最佳方式。
[0078] S302、分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。
[0079] 其中,在发送相邻两个阶段需要发送的数据之间,间隔前一阶段对应的预设时长,该预设时长用△t[i]标识。当发送第i阶段需要发送的数据后,间隔时长△t[i],再发送第i+1阶段需要发送的数据。具体地,每一阶段对应的间隔时间可以相等,也可以不相等。
[0080] 其中,当发送最后一个阶段需要发送的数据后,延长预设时长。其中预设时长定义为大于或等于最后一个阶段发送数据所需要的时间。
[0081] 其中,如果最后一个阶段需要发送的数据仅包括结束标志一个单字节,则最后一个阶段发送数据的时间为发送一个字节的时间,所以预设时长为大于或等于发送一个字节所需要的时间。如果最后一个阶段需要发送的数据包括两个字节,其中一个字节是结束标志,则预设时长为大于或等于发送两个字节所需要的时间。同理,当最后一个阶段需要发送的数据包括多个字节,则预设时长为大于或等于发送该多个字节所需要的时间。
[0082] 其中,切换本端的数据传输模式为接收模式之后,接收到对端发送的数据帧的接收完成响应。
[0083] 参见图4,相应地,在对端侧,本发明实施例提供的一种通信方法,该方法包括:
[0084] S401、当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志;
[0085] 其中,S401中所述的本端是指接收数据帧的这一端,可以为从设备,也可以为主设备。S401中所述的对端是指发送数据帧的这一端,可以为主设备,也可以为从设备。
[0086] 其中,数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0087] 其中,当对端发送的数据帧分为两个阶段发送,且第一个阶段需要发送的数据包括结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。则本端接收数据分为两个阶段接收,且第一阶段接收到的数据包括结束标志之前的所有数据,第二阶段接收到的数据中仅包括单字节的结束标志。
[0088] S402、当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式。
[0089] 其中,当本端接收到最后一个阶段所包含的结束标志,将多个阶段接收到的数据进行整合计算,形成完整数据帧,然后给对端发送该数据帧接收完成响应。
[0090] 本发明实施例中运用最佳实施方式,将需要发送的数据分为两个阶段发送。本发明不局限于将需要发送的数据分为两个阶段进行传输,可以分为多个阶段进行传输,其传输原理和实施例提供的两个阶段的传输原理相同,此处不再重复描述。
[0091] 本发明实施例中以主设备发送数据给从设备,从设备接收该数据,且将需要发送的数据分为两个阶段发送为例,进行详细描述。其中,从设备发送数据给主设备,主设备接收数据,同样适用于本发明提出的方法,此处不再详细描述。
[0092] 实施例1
[0093] 参见图5,本发明实施例提供的一种通信方法,该方法包括:
[0094] 步骤一,当主设备的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据该数据帧格式,将该数据帧分为两个阶段需要发送的数据,其中第二阶段需要发送的数据仅包括结束标志,第一阶段为除结束标志外的所有需要发送的数据。
[0095] 其中,在主从模式下串口通信一般都是以特定帧的格式进行数据传输,例如高级数据链路控制(High-level Data Link Control,HDLC)格式。HDLC具体格式,参见表一。
[0096] 表一
[0097]起始标志 从设备地址 控制信息 数据 校验 结束标志
[0098] 其中,起始标志和结束标志分别为单字节。
[0099] 在实际应用中,进行数据传输的数据帧格式一般都是以单字节起始标志为开头,和单字节结束标志为结尾。所以,第一阶段需要发送的数据包括从起始标志到校验的所有数据,第二阶段需要发送的数据包括结束标志。
[0100] 步骤二,主设备发送第一阶段需要发送的数据,同时从设备开始接收。其中,开始发送数据时间为t1。
[0101] 步骤三,主设备接收底层硬件发送的完成标志,其中,接收底层硬件发送的完成标志时间为t2。
[0102] 步骤四,间隔时间△t[1]后,第一阶段发送的数据全部到达线路,主设备开始发送第二阶段需要发送的数据,即结束标志。其中,开始发送第二阶段需要发送的数据为t3,其中,△t[1]是指发送第一阶段需要发送的数据之后的间隔时间,△t[1]=t3—t2。
[0103] 其中,第一阶段发送的数据为不包括结束标志的数据,所以当从设备接收数据不是完整的数据帧时,从设备接收到该第一阶段发送的数据后,不会进行响应,所以主设备不用考虑切换到接收模式的时间,在主设备接收到底层硬件发送的完成标志后,需要延长一定的时间△t[1],使得第一阶段发送的数据完全到达线路后再发送第二阶段需要发送的数据,其中△t[1]可以根据通信协议中最大数据传输的时间来定义。
[0104] 例如,在数据传输过程中,通信协议中最大数据传输的时间为20ms,则该需要延长的时间△t[1]可以定义为20ms。
[0105] 具体地,当延长20ms后,主设备开始发送最后的结束标志。
[0106] 步骤五,主设备接收底层硬件发送的完成标志,其中,接收底层硬件发送的完成标志时间为t4。
[0107] 步骤六,延时预设时长△t1后,确保第二阶段发送的数据全部到达线路,主设备切换该串口模式为接收模式,用以接收从设备发送的响应,其中,第二阶段发送的数据全部到达线路时间为t5。
[0108] 其中,从设备接收到第二阶段发送的数据结束标志,要进行发送响应,但从接收该结束标志到发送响应,需要一定的时间。所以要掌握好主设备的切换时间,保证传输的数据接收完整以及发送完整。
[0109] 其中,因为第二阶段发送的数据只有一个字节,且发送一个字节的时间很短,且能准确测量。所以△t1大于或等于传输一个字节的时间即可,其中一个字节传输时间用t表示。
[0110] 例如,一个字节传输的时间t=1ms,则预设时长△t1≥1ms。
[0111] 当接收到底层硬件返回的完成标志1ms后,主设备将数据传输模式切换到接收模式,用以接收从设备发送的响应。
[0112] 步骤七,从设备接收完毕主设备发送的所有数据,其中,从设备接收数据完毕的时间为t6。
[0113] 步骤八,从设备将第一阶段和第二阶段接收的数据,进行整合以及计算,并发送响应给主设备,其中,发送响应时间为t7。
[0114] 其中,当从设备接收到第二阶段发送的结束标志后,将第一阶段和第二阶段接收‘到的数据进行整合及计算。所以整合及计算需要一定的时间,我们将该时间定义为△t ,当计算完成,则向主设备发送数据帧接收完成响应。根据实际应用得到,该△t‘大于一个字节传输时间t。
[0115] 其中,第一阶段和第二阶段接收到的数据进行整合及计算所需要的时间用[0116] △t‘=t7—t6。
[0117] 例如,从设备将第一阶段和第二阶段接收到的数据进行整合及计算所需要的时间△t‘=2ms,而一个字节传输的时间t=1ms。
[0118] 所以从t6之后,经过2ms,从设备将数据传输模式切换为发送模式,用以发送数据帧接收完成响应。而主设备,在t4之后的1ms,已经将数据传输模式切换到接收模式,用以接收从设备发送的数据帧的接收完成响应。
[0119] 所以在从设备发送数据之前,主设备已经将数据传输模式切换到接收模式。当从设备发送数据给主设备时,主设备可以完整接收从设备发送的每一个字节,即接收完整的数据。同时,从设备只有接收到第二阶段发送的结束标志以后,才能将数据传输模式切换到发送模式,从而保证了主设备发送数据的完整性。
[0120] 步骤九,主设备接收从设备发送的第一个字节,其中主设备接收从设备发送的第一个字节的时间为t8。
[0121] 综上所述,通过实施例1所述的方法,可以保证主设备发送给从设备的数据使从设备完整接收以及主设备完整接收从设备发送的数据,从而保障通信的可靠性。
[0122] 实施例2
[0123] 相应地,在从设备侧,本发明实施例提供的一种通信方法,该方法包括:
[0124] 步骤一,当从设备的数据传输模式为接收模式时,接收第一阶段需要接收的数据。其中,第一阶段需要接收的数据包括除结束标志之外的所有需要接收的数据。
[0125] 其中,因为第一阶段需要接收的数据不包含结束标志,不属于完整的数据帧,所以当从设备接收到第一阶段的所有数据后,不会立即发送响应。
[0126] 步骤二,从设备接收第二阶段需要接收的数据,其中第二阶段需要接收的数据包括结束标志。
[0127] 步骤三,延时时间间隔△t‘后,从设备将数据传输模式切换为发送模式,并发送数据帧接收完成响应给主设备。
[0128] 当从设备接收到结束标志后,将第一阶段和第二阶段接收到的数据进行整合及计算。所以整合及计算需要一定的时间,我们将该时间定义为△t‘,当计算完成,则向主设备发送数据帧接收完成响应。根据实际应用得到,该△t‘大于一个字节传输时间t。
[0129] 例如,一个字节传输时间t=1ms,从设备将第一阶段和第二阶段接收到的数据进行整合及计算所需要的时间△t‘=2ms,则确定△t‘大于t。即当主设备发送完第二阶段的数据后,经过1ms该第二阶段的数据已经完全到达从设备,则主设备将数据传输模式切换为接收模式,而此时,从设备刚接收到主设备发送的第二阶段的数据,所以从设备需要经过2ms后才能切换为发送模式,发送数据帧接收完成响应给主设备。
[0130] 参见图6,本发明实施例提供的一种通信装置,该装置包括:
[0131] 发送单元61,用于当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;
[0132] 切换单元62,用于分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。
[0133] 较佳地,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0134] 较佳地,发送单元61中将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,具体用于:
[0135] 将所述数据帧划分为两个阶段需要发送的数据,其中第一个阶段需要发送的数据包括所述结束标志之前的所有数据,第二个阶段需要发送的数据中仅包括单字节的结束标志。
[0136] 较佳地,切换单元在发送相邻两个阶段需要发送的数据之间,间隔预设时长。
[0137] 较佳地,切换单元中所述预设时长大于或等于发送最后一个阶段需要发送的数据所需要的时间。
[0138] 较佳地,在切换本端的数据传输模式为接收模式之后,所述切换单元,还用于:
[0139] 接收对端发送的所述数据帧的接收完成响应。
[0140] 发送单元61、切换单元62都可以由具有收发功能的处理器等实体装置实现。
[0141] 参见图7、本发明实施例提供的一种通信装置,该装置包括:
[0142] 接收单元71,用于当本端的数据传输模式为接收模式时,接收对端发送的数据帧,其中该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志;
[0143] 切换单元72,用于当根据所述结束标志确定所述数据帧接收完成时,切换本端的数据传输模式为发送模式。
[0144] 较佳地,所述数据帧中包括单字节的起始标志、单字节的结束标志以及位于起始标志和结束标志之间的数据。
[0145] 较佳地,接收单元中,该数据帧是对端分成多个阶段发送的数据,其中最后一个阶段接收到的数据中包括所述数据帧的结束标志,包括:
[0146] 该数据帧是对端分两个阶段发送的数据,其中第一阶段接收到的数据包括所述结束标志之前的所有数据,第二阶段接收到的数据中仅包括单字节的结束标志。
[0147] 较佳地,在切换本端的数据传输模式为发送模式之后,所述切换单元,还用于:
[0148] 向对端发送所述数据帧的接收完成响应。
[0149] 该装置还包括:
[0150] 发送单元,用于当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志;
[0151] 所述切换单元,还用于分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。
[0152] 接收单元71、切换单元72都可以由具有收发功能的处理器等实体装置实现。
[0153] 综上所述,首先当本端的数据传输模式为发送模式时,确定需要发送的数据帧的格式,并根据所述数据帧的格式,将该数据帧划分为多个阶段需要发送的数据,其中最后一个阶段需要发送的数据中包括所述数据帧的结束标志,然后分别发送每一阶段需要发送的数据,当最后一个阶段需要发送的数据发送完成时,延时预设时长后,切换本端的数据传输模式为接收模式。从而准确进行收发模式切换,避免数据传输不完整,保障了通信的可靠性。
[0154] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或者程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0155] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0156] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0157] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0158] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。