基于串口通信的数据传输方法、设备、发送端及接收端与流程

文档序号:16930712发布日期:2019-02-22 20:14阅读:280来源:国知局
基于串口通信的数据传输方法、设备、发送端及接收端与流程

本发明实施例涉及通信技术领域,特别是涉及一种基于串口通信的数据传输方法、设备、发送端、接收端及计算机可读存储介质。



背景技术:

串行接口是一种可以将接受到的来自cpu的并行数据转换为连续的串行数据流发送出去,同时可以将接受到的串行数据流转换为并行的数据字符再提供给cpu的器件。通常将能够完成上述功能的电路,称为串行接口电路。串口通信就是指两台设备之间按照比特位发送和接收字节,某发送设备想要发送一串数据给接收设备时,接收设备为了能够接收到一个完整的数据包,两者之间就会提前定义好数据传输的开始和结束标志,也即预先定义好数据传输的开始字符(包头)和结束字符(包尾)。由于串口通信是异步的,如果在要传输的数据串中除了包含开始字符和结束字符外,还包括与开始字符或结束字符相同的字符,此时接收设备就不能正确的判断结束字符,造成接收设备实际接收到的数据包与发送包不一致,从而导致数据传输错误。

鉴于此,如何提供一种解决上述技术问题的基于串口通信的数据传输方法、设备、发送端、接收端及计算机可读存储介质成为本领域技术人员需要解决的问题。



技术实现要素:

本发明实施例的目的是提供一种基于串口通信的数据传输方法、设备、发送端、接收端及计算机可读存储介质,在使用过程中能够提高数据传输的完整性和准确性。

为解决上述技术问题,本发明实施例提供了一种基于串口通信的数据传输方法,应用于发送端,包括:

获取待发送的原始数据;

当所述原始数据中包括目标字符时,依据预设转义字符和预设转义规则对所述原始数据进行转义处理,得到转义处理数据;其中,所述目标字符包括与开始字符或结束字符相同的字符;

将头部和尾部分别添加了所述开始字符和所述结束字符的转义处理数据作为打包数据;

将所述打包数据通过串行接口发送至接收端,以便所述接收端依据所述开始字符、所述结束字符、所述预设转义字符及还原规则对所述打包数据进行解包和还原处理,得到所述原始数据;其中,所述还原规则与所述预设转义规则对应。

可选的,所述依据预设转义字符和预设转义规则对所述原始数据进行转义处理的过程为:

将所述预设转义字符添加至所述原始数据中的各个所述目标字符的前面相邻位置处。

可选的,还包括:

当所述原始数据中不包括所述目标字符时,则直接将头部和尾部分别添加了所述开始字符和所述结束字符的原始数据作为所述打包数据。

可选的,所述目标字符还包括所述原始数据中与所述预设转义字符相同的字符。

本发明实施例还提供了一种基于串口通信的数据传输方法,应用于接收端,包括:

接收发送端通过串行接口发送的打包数据;所述打包数据为所述发送端依据开始字符、结束字符、预设转义字符及预设转义规则对原始数据进行打包处理后得到的;

依据开始字符和结束字符对所述打包数据进行解包处理,得到去除所述开始字符和结束字符的解包数据;

依据预设转义字符及与预设转义规则对应的还原规则对所述解包数据进行还原处理,得到原始数据。

本发明实施例相应的提供了一种发送端,包括:

获取模块,用于获取待发送的原始数据;

处理模块,用于当所述原始数据中包括目标字符时,依据预设转义字符和预设转义规则对所述原始数据进行转义处理,得到转义处理数据;其中,所述目标字符包括与开始字符或结束字符相同的字符;

打包模块,用于将头部和尾部分别添加了所述开始字符和所述结束字符的转义处理数据作为打包数据;

发送模块,用于将所述打包数据通过串行接口发送至接收端,以便所述接收端依据所述开始字符、所述结束字符、所述预设转义字符及还原规则对所述打包数据进行解包和还原处理,得到所述原始数据;其中,所述还原规则与所述预设转义规则对应。

可选的,所述处理模块,具体用于当所述原始数据中包括目标字符时,将所述预设转义字符添加至所述原始数据中的各个所述目标字符的前面相邻位置处,得到转义处理数据。

本发明实施例相应的提供了一种接收端,包括:

接收模块,用于接收发送端通过串行接口发送的打包数据;所述打包数据为所述发送端依据开始字符、结束字符、预设转义字符及预设转义规则对原始数据进行打包处理后得到的;

解包模块,用于依据开始字符和结束字符对所述打包数据进行解包处理,得到去除所述开始字符和结束字符的解包数据;

还原模块,用于依据预设转义字符及与预设转义规则对应的还原规则对所述解包数据进行还原处理,得到原始数据。

本发明实施例还提供了一种基于串口通信的数据传输设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述所述基于串口通信的数据传输方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述基于串口通信的数据传输方法的步骤。

本发明实施例提供了一种基于串口通信的数据传输方法,包括:获取待发送的原始数据;当原始数据中包括目标字符时,依据预设转义字符和预设转义规则对原始数据进行转义处理,得到转义处理数据;其中,目标字符包括与开始字符或结束字符相同的字符;将头部和尾部分别添加了开始字符和结束字符的转义处理数据作为打包数据;将打包数据通过串行接口发送至接收端,以便接收端依据开始字符、结束字符、预设转义字符及还原规则对打包数据进行解包和还原处理,得到原始数据;其中,还原规则与预设转义规则对应。

可见,本申请中在通过串行接口向接收端发送数据时,会在原始数据中包括与开始字符和结束字符相同的目标字符时,采用预设转义字符和预设转义规则对原始数据进行转义处理,从而对目标字符进行标记,然后再将打包后的打包数据发送至接收端,接收端在接收到打包数据后会对打包数据进行解包和还原处理,从而得到原始数据。本申请在使用过程中能够提高数据传输的完整性和准确性。本发明实施例还提供了一种基于串口通信的数据传输设备、发送端、接收端及计算机可读存储介质,具有上述相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于串口通信的数据传输方法的流程示意图;

图2为本发明实时提供的一种原始数据示意图;

图3为与图2中的原始数据对应的打包数据示意图;

图4位接收端对图3中的数据进行解包和还原处理后得到的数据示意图;

图5为本发明实施例提供的另一种基于串口通信的数据传输方法的流程示意图;

图6为本发明实施例提供的一种发送端的结构示意图;

图7为本发明实施例提供的一种接收端的结构示意图。

具体实施方式

本发明实施例提供了一种基于串口通信的数据传输方法、设备、发送端、接收端及计算机可读存储介质,在使用过程中能够提高数据传输的完整性和准确性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明实施例提供的一种基于串口通信的数据传输方法的流程示意图。

该方法应用于发送端,包括:

s110:获取待发送的原始数据;

s120:当原始数据中包括目标字符时,依据预设转义字符和预设转义规则对原始数据进行转义处理,得到转义处理数据;其中,目标字符包括与开始字符或结束字符相同的字符;

需要说明的是,本申请中的发送端和接收端均预先设定好开始字符和结束字符,也即包头和包尾,发送端在发送原始数据时将开始字符添加至原始数据的头部,将结束字符添加至原始数据的尾部。另外,发送端还预先设定好预设转义字符和预设转义规则,接收端预先设定好预设转义字符和还原规则,还原规则依据预设转义规则进行设定,两者相对应。

具体的,本申请中在获取到待发送的原始数据后,除了在原始数据的头部和尾部添加开始字符和结束字符外,还需要对原始数据中的各个字符进行识别,当原始数据中包括与开始字符或结束字符相同的字符时,则根据预设转义规则和预设转义字符对原始数据进行转义处理,具体的,为将原始数据中的目标字符进行转义处理,其他的字符保持不变,从而得到转义处理数据。

s130:将头部和尾部分别添加了开始字符和结束字符的转义处理数据作为打包数据;

其中,可以在对原始数据进行转义处理之前将开始字符和结束字符分别添加至原始数据的头部和尾部,然后再进行转义处理,也可以在对原始数据进行转义处理后,将开始字符和结束字符分别添加至转义处理数据的头部和尾部,还可以在原始数据的第一字符前添加了开始字符后,逐个对原始数据中的每个字符进行识别,当遇到目标字符时就对目标字符进行转义处理,等识别到最后一个字符,并且根据需要完成对最后一个字符的处理后,将结束字符添加至最后一个字符的后面,从而得到打包数据。具体采用哪种形式得到打包数据本申请不做限定。

s140:将打包数据通过串行接口发送至接收端,以便接收端依据开始字符、结束字符、预设转义字符及还原规则对打包数据进行解包和还原处理,得到原始数据;其中,还原规则与预设转义规则对应。

具体的,发送端将经上述处理得到的打包数据发送至接收端,接收端在接收到打包数据后,根据开始字符和结束字符将打包数据的包头和包尾去掉,并对得到的解包数据中经转义处理的目标字符依据还原规则进行还原处理,得到相应的目标字符,从而得到原始数据,此过程中防止了原始数据中因包括与开始字符或结束字符相同的字符导致的数据传输出现错误的问题发生。

进一步的,上述s120中,依据预设转义字符和预设转义规则对原始数据进行转义处理的过程,具体可以为:

将预设转义字符添加至原始数据中的各个目标字符的前面相邻位置处。

需要说明的是,将预设转义字符添加至目标字符的前面相邻位置处,从而构成新的字符串,将该新的字符串作为转义数据,并在该转义数据的头部和尾部分别添加开始字符和结束字符得到打包数据,将该打包数据发送至接收端,接收端在接收到该打包数据后,去除头部和尾部的开始字符和结束字符,得到解包数据,并对该解包数据中的各个字符逐个读取和记录,当识别出当前字符为预设转义字符时,说明下一个字符为原始数据中的字符并不是开始字符,也不是结束字符,此时不记录该预设转义字符,直接读取并记录位于该预设转义字符后面的下一个字符(即目标字符),依次对各个字符进行识别、读取记录,从而得到原始数据。

例如,本申请中的开始字符和结束字符分别为0×c0和0×c1,预设转义字符为0×db,本申请中的原始数据如图2所示,其中,该原始数据包括八个字符,从第一个至第八个分别为:0×01,0×02,0×c0,0×03,0×04,0×c1,0×05,0×06,可见该原始数据中包括与开始字符和结束字符相同的字符,也即第三个字符与开始字符相同,第五个字符与结束字符相同,此时,对原始数据进行转义处理,也即对原始数据中的第三个字符0×c0进行转义处理,对原始数据中的第五个字符0×c1进行转义处理,并且添加包头和包尾,也即添加开始字符和结束字符,得到如图3所示的打包数据,并将该打包数据发送至接收端,接收端接收到该打包数据后,依据开始字符0×c0和结束字符0×c1对打包数据执行去除包头(0×c0)和包尾(0×c1)的操作,并识别出数据中包括预设转义字符0×db,则对前面添加了预设转义字符的目标字符进行还原处理,得到相应的目标字符,接收端得到的数据格式如图4所示,也即得到原始数据。

还需要说明的是,该方法还包括:

当原始数据中不包括目标字符时,则直接将头部和尾部分别添加了开始字符和结束字符的原始数据作为打包数据。

也即,在原始数据中没有与开始字符或结束字符一样的字符时,则此时不对原始数据进行转义处理,直接对原始数据进行添加包头和包尾的打包处理即可。

更进一步的,目标字符还包括原始数据中与预设转义字符相同的字符。

具体的,当原始数据中包括与预设转义字符相同的字符时,则还需要对该字符进行转义处理,以免数据传输至接收端后,接收端在识别数据时误将原始数据中原有的字符作为转义字符舍弃,已进一步保障数据传输的完整性和准确性。

可见,本申请中在通过串行接口向接收端发送数据时,会在原始数据中包括与开始字符和结束字符相同的目标字符时,采用预设转义字符和预设转义规则对原始数据进行转义处理,从而对目标字符进行标记,然后再将打包后的打包数据发送至接收端,接收端在接收到打包数据后会对打包数据进行解包和还原处理,从而得到原始数据。本申请在使用过程中能够提高数据传输的完整性和准确性。本发明实施例还提供了一种基于串口通信的数据传输设备、发送端、接收端及计算机可读存储介质,具有上述相同的有益效果。

在上述实施例的基础上,本发明实施例还提供了另一种基于串口通信的数据传输方法,该方法应用于发送端,具体请参照图5。该方法,包括:

s210:接收发送端通过串行接口发送的打包数据;打包数据为发送端依据开始字符、结束字符、预设转义字符及预设转义规则对原始数据进行打包处理后得到的;

s220:依据开始字符和结束字符对打包数据进行解包处理,得到去除开始字符和结束字符的解包数据;

s230:依据预设转义字符及与预设转义规则对应的还原规则对解包数据进行还原处理,得到原始数据。

需要说明的是,本实施例具有与上一实施例相同的有益效果,并且对于本申请中所涉及到的发送端对数据进行处理的过程的介绍请参照上述实施例,本申请在此不再赘述。

在上述实施例的基础上,本发明实施例相应的提供了一种发送端,具体请参照图6。该发送端包括:

获取模块31,用于获取待发送的原始数据;

处理模块32,用于当原始数据中包括目标字符时,依据预设转义字符和预设转义规则对原始数据进行转义处理,得到转义处理数据;其中,目标字符包括与开始字符或结束字符相同的字符;

打包模块33,用于将头部和尾部分别添加了开始字符和结束字符的转义处理数据作为打包数据;

发送模块34,用于将打包数据通过串行接口发送至接收端,以便接收端依据开始字符、结束字符、预设转义字符及还原规则对打包数据进行解包和还原处理,得到原始数据;其中,还原规则与预设转义规则对应。

可选的,处理模块32,具体用于当原始数据中包括目标字符时,将预设转义字符添加至原始数据中的各个目标字符的前面相邻位置处,得到转义处理数据。

需要说明的是,本实施例中提供的发送端在使用过程中能够提高数据传输的完整性和准确性,并且对于本实施例中所涉及到的基于串口通信的数据传输方法的介绍请参照上述实施例,本申请在此不再赘述。

在上述实施例的基础上,本发明实施例相应的提供了一种接收端,具体请参照图7所示,其中,该接收端包括:

接收模块41,用于接收发送端通过串行接口发送的打包数据;打包数据为发送端依据开始字符、结束字符、预设转义字符及预设转义规则对原始数据进行打包处理后得到的;

解包模块42,用于依据开始字符和结束字符对打包数据进行解包处理,得到去除开始字符和结束字符的解包数据;

还原模块43,用于依据预设转义字符及与预设转义规则对应的还原规则对解包数据进行还原处理,得到原始数据。

需要说明的是,本实施例具有与上一实施例相同的有益效果,并且对于本申请中所涉及到的发送端对数据进行处理的过程的介绍请参照上述实施例,本申请在此不再赘述。

在上述实施例的基础上,本发明实施例还提供了一种基于串口通信的数据传输设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述基于串口通信的数据传输方法的步骤。

例如,本实施例中的处理器用于实现获取待发送的原始数据;当原始数据中包括目标字符时,依据预设转义字符和预设转义规则对原始数据进行转义处理,得到转义处理数据;其中,目标字符包括与开始字符或结束字符相同的字符;将头部和尾部分别添加了开始字符和结束字符的转义处理数据作为打包数据;将打包数据通过串行接口发送至接收端,以便接收端依据开始字符、结束字符、预设转义字符及还原规则对打包数据进行解包和还原处理,得到原始数据;其中,还原规则与预设转义规则对应。

在上述实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述基于串口通信的数据传输方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1