System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 通信方法、终端、装置、设备和计算机可读存储介质制造方法及图纸_技高网

通信方法、终端、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:41731064 阅读:2 留言:0更新日期:2024-06-19 12:52
本申请实施例公开了一种通信方法、终端、通信装置、嵌入式设备和计算机可读存储介质。其中,方法在第一终端和第二终端分别构建收发数据环形队列,包括发送数据环形队列、接收数据环形队列,分别用于缓存收发的数据包。从而能够使嵌入式设备的驱动层实现数据的发送和接收。同时,在发送的流程中同时兼具了发送了接收的功能,发送是保证了数据高效、实时地完成发送工作,接收则是利用确认接收包实现了数据的可靠传输。避免了收发双端不知道彼此是否完成了各自的工作,消灭了收发工作中存在的盲区。适用于各种高速通信场景,具有较低的硬件和软件成本,方法简单、高效、易于维护。

【技术实现步骤摘要】

本申请属于通信,特别是涉及一种通信方法、终端、通信装置、嵌入式设备和计算机可读存储介质。


技术介绍

1、串口通信在计算机和嵌入式系统中广泛应用,例如工业自动化、医疗设备、军事通信等领域。在嵌入式系统中,开发人员为了快速的开发出一套通信系统往往采取半双工通信方式进行传输:通信系统内开2个线程,一个线程用于发送数据,另一个线程用于接收数据。对于发送数据来说,仅负责发送数据而不对数据是否到达接收方进行检验;对于接收数据来说,接收到数据后仅对数据的正确完整与否做校验而不反馈到发送方。因此现有技术中,无论是在发送数据还是接收数据的情景下都存在盲区,存在通信效率低、实时性差、不适用于高速通信等问题。如何解决现有技术的局限性和不足,提高通信效率和实时性,是本领域技术人员亟待解决的技术问题。

2、前面的叙述在于提供一般的背景信息,并不一定构成现有技术。


技术实现思路

1、基于此,有必要针对上述问题,提出了一种通信方法、终端、通信装置、嵌入式设备和计算机可读存储介质,能够使嵌入式设备的驱动层实现数据的发送和接收。

2、本申请解决其技术问题是采用以下的技术方案来实现的:

3、本申请提供了一种通信方法,包括如下步骤:第一终端和第二终端分别构建收发数据环形队列;收发数据环形队列包括发送数据环形队列、接收数据环形队列;第一终端将待发送到第二终端的待发送数据包存入第一终端的发送数据环形队列;确定上一次的待发送数据包的接收确认信息;根据接收确认信息确定是否通过串口通信向第二终端发送当前的待发送数据包;当第一终端通过串口通信向第二终端发送待发送数据包之后;第二终端接收该待发送数据包并且向第一终端反馈接收确认信息;第二终端将待发送数据包存入到第二终端的接收数据环形队列。

4、在本申请一可选实施例中,确定上一次的待发送数据包的接收确认信息;根据接收确认信息确定是否通过串口通信向第二终端发送当前的待发送数据包,包括:获取发送数据环形队列的发送历史,发送历史包括发送过的待发送数据包,和对应的接收确认信息,接收确认信息用于指示对应的待发送数据包已经被第二终端接收;判断发送历史中是否包括历史接收确认信息,历史接收确认信息用于指示上一次的待发送数据包已被对应的第二终端接收;若未包括历史接收确认信息,则根据发送历史获取前一轮次的发送数据包重新发送至对应的第二终端,直至收到历史接收确认信息。

5、在本申请一可选实施例中,通过串口通信向第二终端发送当前的待发送数据包,包括:第一终端判断发送数据环形队列是否为空,发送数据环形队用于缓存待发送数据包;若发送数据环形队列为空,则认定为线程阻塞,停止发送,等待进入下一次轮询;若发送数据环形队列不为空,则通过第一终端的串口通信向第二端发送待发送数据包。

6、在本申请一可选实施例中,认定为线程阻塞之后,方法还包括:第一终端向应用层请求获取待发送数据包;当第一终端再次获取到待发送数据包后,将待发送数据包缓存至发送数据环形队列中,以在下一次轮询时再次发送待发送数据包。

7、在本申请一可选实施例中,第二终端接收该待发送数据包并且向第一终端反馈接收确认信息,包括:第二终端解析待接收数据包以得到发送地址,发送地址为第一终端的数据地址;第二终端生成接收确认信息,并按照发送地址反馈回第一终端。

8、本申请还提供了一种终端,包括驱动层和应用层;驱动层,用于执行前文所提供方法;应用层,与驱动层关联,用于处理收发数据。

9、在本申请一可选实施例中,应用层包括第一应用层,第一缓冲区,第二应用层和第二缓冲区;第一应用层,用于获取待发送数据,并将待发送数据按照预设方式执行第一预处理,以得到待发送数据包,待发送数据包为预定格式;将待发送数据包发送至第一缓冲区内缓存;第一缓冲区,用于缓存待发送数据包,以等待驱动层获取发送;第二缓冲区,用于缓存驱动层发送的接收数据包,接收数据包的格式与发送数据包的预定格式对应;第二应用层,用于从第二缓冲区中获取接收数据包,对接收数据包执行第二预处理,以得到接收数据用于后续处理。

10、本申请还提供了一种通信装置,包括:队列构建模块,用于第一终端和第二终端分别构建收发数据环形队列;收发数据环形队列包括发送数据环形队列、接收数据环形队列;发送缓存模块,用于第一终端将待发送到第二终端的待发送数据包存入第一终端的发送数据环形队列;确认发送模块,用于确定上一次的待发送数据包的接收确认信息;根据接收确认信息确定是否通过串口通信向第二终端发送当前的待发送数据包;发送反馈模块,用于当第一终端通过串口通信向第二终端发送待发送数据包之后;第二终端接收该待发送数据包并且向第一终端反馈接收确认信息;接收缓存模块,用于第二终端将待发送数据包存入到第二终端的接收数据环形队列。

11、本申请还提供了一种嵌入式设备,包括处理器和存储器:处理器用于执行存储器中存储的计算机程序以实现如前述的方法。

12、本申请还提供了一种计算机可读存储介质,存储有计算机程序,当计算机程序被处理器执行时实现如前述的方法。

13、采用本申请实施例,具有如下有益效果:

14、本申请能够使嵌入式设备的驱动层实现数据的发送和接收。同时,在发送的流程中同时兼具了发送了接收的功能,发送是保证了数据高效、实时地完成发送工作,接收则是利用确认接收包实现了数据的可靠传输。避免了收发双端不知道彼此是否完成了各自的工作,消灭了收发工作中存在的盲区。适用于各种高速通信场景,具有较低的硬件和软件成本,方法简单、高效、易于维护。

15、上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

本文档来自技高网...

【技术保护点】

1.一种通信方法,其特征在于,包括如下步骤:

2.如权利要求1所述的通信方法,其特征在于,所述确定上一次的待发送数据包的接收确认信息;根据所述接收确认信息确定是否通过串口通信向第二终端发送当前的待发送数据包,包括:

3.如权利要求1所述的通信方法,其特征在于,所述通过串口通信向第二终端发送当前的待发送数据包,包括:

4.如权利要求3所述的通信方法,其特征在于,所述认定为线程阻塞之后,所述方法还包括:

5.如权利要求1所述的通信方法,其特征在于,所述第二终端接收该待发送数据包并且向第一终端反馈接收确认信息,包括:

6.一种终端,其特征在于,包括驱动层和应用层;

7.如权利要求6所述的通信系统,其特征在于,所述应用层包括第一应用层,第一缓冲区,第二应用层和第二缓冲区;

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

9.一种嵌入式设备,其特征在于,包括处理器和存储器;

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1到5中任一项所述方法。

...

【技术特征摘要】

1.一种通信方法,其特征在于,包括如下步骤:

2.如权利要求1所述的通信方法,其特征在于,所述确定上一次的待发送数据包的接收确认信息;根据所述接收确认信息确定是否通过串口通信向第二终端发送当前的待发送数据包,包括:

3.如权利要求1所述的通信方法,其特征在于,所述通过串口通信向第二终端发送当前的待发送数据包,包括:

4.如权利要求3所述的通信方法,其特征在于,所述认定为线程阻塞之后,所述方法还包括:

5.如权利要求1所述的通信方法,其特征在于,所述第二终端接收...

【专利技术属性】
技术研发人员:邓强
申请(专利权)人:深圳市科曼医疗设备有限公司
类型:发明
国别省市:

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

1