一种数据传输方法及系统的制作方法

文档序号:7617983阅读:150来源:国知局
专利名称:一种数据传输方法及系统的制作方法
技术领域
本发明涉及数据传输领域,尤其涉及一种数据传输方法及系统。
背景技术
在通信领域内,有两种数据通信方式并行通信和串行通信。相比并行通信方式而 言,串行通信使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致,因 而广泛应用于通信领域等各种场合。尤其是在工控领域,串行通信方式常作为信息采集、数 据传输媒介。目前的串行通信标准有很多,人们所熟悉的标准有EIA - 232、EIA-422和EIA — 485,也就是以前所称的RS-232、RS-422和RS-485。但是,这些标准都不能对所发送的数据 或接收到的数据的正确与否作出很确切的判断,并且不能对传输过程中,出错的情况进行 补救。在实际的串口通信操作过程中,常因电磁干扰或电压不稳等因素,导致串行数据 传输失败或数据错误,传统的处理方法是将所有要发送的数据进行重新发送或手动重启数 据传输过程,而在大型量产产品过程中,这无疑非常费时费力。针对这种情况,有必要提出 一种快速有效的纠错和对错误进行补救处理方法,以提高串行通信的质量。

发明内容
本发明实施例所要解决的技术问题在于,提供一种数据传输方法及系统,可在串 行通信过程中,快速有效的纠错和对错误进行补救处理方法,以提高串行通信的质量。为了解决上述技术问题,本发明实施例提供了一种数据传输方法,包括
第一终端将需要发送到第二终端的数据信息拆分,并将拆分后的各部分数据信息分别 打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据包的属性;所述包 体中记录部分数据信息;
第一终端向第二终端发送数据包,并等待所述第二终端反馈的接收响应; 若第一终端在预置的时限内接收到第二终端反馈的接收响应,则向所述第二终端发送 下一数据包,直至将所有数据包发送至所述第二终端;
若第一终端在预置的时限内未接收到第二终端反馈的接收响应或收到第二终端反馈 的重发请求,则向所述第二终端重发最近一次发送的数据包,直至重发次数超过预置的阈 值。其中,所述第一终端将需要发送到第二终端的数据信息拆分,并将拆分后的各部 分数据信息分别打包为数据包之前,还包括
所述第一终端向第二终端发送握手数据序列,并等待所述第二终端的握手响应; 若所述第一终端在预置的时限内接收到第二终端反馈的握手响应,且所述握手响应携 带的信息正确,则判定所述第一终端与第二终端之间的串口连接正常;否则,判定所述第一 终端与第二终端之间的串口连接异常,第一终端暂停处理所述需要发送到第二终端的数据
4fn息ο其中,所述数据包的属性包括数据包的类型、长度、序列号、效验值。其中,第一终端向第二终端发送数据包,并等待所述第二终端反馈的接收响应之 后,还包括
第二终端接收第一终端发送的数据包,解析所述数据包的包头,根据其判断其序列号、 效验值判断所述数据包包体中的数据信息是否正确;
若所述判断为是,则第二终端向所述第一终端发送接收响应,并准备接收第一终端发 送的下一数据包,直至接收完所有的数据包;
若所述判断为否,则第二终端向所述第一终端发送重发请求,并准备接收第一终端重 发的数据包,直至重发次数超过预置的阈值。其中,所述第二终端向所述第一终端发送接收响应,并准备接收第一终端发送的 下一数据包之后,还包括
若所述第二终端向所述第一终端发送接收响应后,未在预置的时限内接收到所述第一 终端发送的下一数据包,则第二终端向所述第一终端发送重发请求,并准备接收第一终端 重发的数据包,直至重发次数超过预置的阈值。相应地,本发明实施例还提供了数据传输系统,包括第一终端和第二终端; 第一终端,用于将需要发送到第二终端的数据信息拆分为数据包,向第二终端发送,并
等待第二终端反馈的接收响应;若第一终端在预置的时限内接收到所述接收响应,则向第 二终端发送下一数据包,否则,向第二终端重发最近一次发送的数据包;
第二终端,用于接收第一终端发送的数据包,并判断所述数据包中的数据信息是否正 确;若判断为是,则向第一终端发送接收响应,并准备接收第一终端发送的下一数据包;否 则,向第一终端发送重发请求,并准备接收第一终端重发的数据包。其中,所述第一终端包括
数据拆分模块,用于将需要发送到第二终端的数据信息拆分,并将拆分后的各部分数 据信息分别打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据包的属 性;所述包体中记录部分数据信息;
数据发送模块,用于向第二终端发送所述数据拆分模块处理后的数据包; 传输处理模块,用于在所述数据发送模块向第二终端发送数据包后,等待第二终端反 馈的接收响应;若在预置的时限内接收到第二终端反馈的接收响应,则通知所述数据发送 模块向第二终端发送下一数据包,直至将所有数据包发送至所述第二终端;否则,通知所述 数据发送模块向第二终端重发最近一次发送的数据包,直至重发次数超过预置的阈值。其中,所述传输处理模块包括
串口检测单元,用于在第一终端向第二终端发送数据包之前,通过数据发送模块向第 二终端发送握手数据序列,并等待第二终端的握手响应;若在预置的时限内接收到第二终 端反馈的握手响应,且握手响应信息正确,则判定串口连接正常;否则,判定串口连接异 常;
阈值预置单元,用于预置从数据发送模块向第二终端发送数据包,到接收到第二终端 反馈的接收响应的时限,以及允许进行数据包重发的次数的阈值;
传输处理单元,用于在所述数据发送模块向第二终端发送数据包后,判断是否在预置的时限内收到第二终端反馈的接收响应;若在预置的时限内接收到第二终端反馈的接收响 应,则通知所述数据发送模块向第二终端发送下一数据包,直至将所有数据包发送至所述 第二终端;若在预置的时限内未接收到第二终端反馈的接收响应或收到第二终端反馈的重 发请求,则通知所述数据发送模块向第二终端重发最近一次发送的数据包,直至重发次数 超过预置的阈值。其中,所述数据包包括包头和包体,所述包头中记录所述数据包的属性;所述包 体中记录部分数据信息;所述数据包的属性包括数据包的类型、长度、序列号、效验值。其中,所述第二终端包括
检测模块,用于接收第一终端发送的数据包,解析所述数据包的包头,根据其判断其序 列号、效验值判断所述数据包包体中的数据信息是否正确;
响应模块,用于在所述检测模块判定数据包包体中的数据信息正确时,向第一终端发 送接收响应,并通知所述检测模块准备接收第一终端发送的下一数据包,直至接收完所有 的数据包;在所述检测模块判定数据包包体中的数据信息不正确时,向第一终端发送重发 请求,并通知所述检测模块准备接收第一终端重发的数据包,直至重发次数超过预置的阈 值;
信息合成模块,用于在检测模块接收完所有的数据包之后,将各数据包分别携带的部 分数据信息重新组合为完整的数据信息。其中,所述响应模块还用于在所述响应模块向第一终端发送接收响应,且所述检 测模块未在预置的时限内接收到第一终端发送的下一数据包时,则所述响应模块向第一终 端发送重发请求,并通知所述检测模块准备接收第一终端重发的数据包,直至重发次数超 过预置的阈值。实施本发明实施例提供的数据传输方法及系统,可在串行通信过程中,快速有效 的纠错和对错误进行补救处理,以提高串行通信的质量。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为本发明提供的数据传输方法第一实施例流程示意图; 图2为本发明提供的数据传输方法第二实施例流程示意图3为本发明提供的数据传输方法第三实施例流程示意图; 图4为本发明提供的数据传输系统第一、二实施例结构示意图; 图5为本发明提供的数据传输系统中第一终端的结构示意图; 图6为本发明提供的数据传输系统中第二终端的结构示意图。
具体实施例方式实施本发明实施例提供的数据传输方法及系统,可在串行通信过程中,快速有效 的纠错和对错误进行补救处理,以提高串行通信的质量。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。参见图1,为本发明提供的数据传输方法第一实施例流程示意图,如图1所示,该 数据传输方法包括
在步骤S100,第一终端将需要发送到第二终端的数据信息拆分,并将拆分后的各部分 数据信息分别打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据包的 属性;所述包体中记录部分数据信息。在步骤S101,第一终端向第二终端发送数据包,并等待所述第二终端反馈的接收 响应。在步骤S102,第一终端判断在预置的时限内是否有接收到第二终端反馈的接收响 应,若第一终端在预置的时限内接收到第二终端反馈的接收响应,则执行步骤S103 ;若第 一终端在预置的时限内未接收到第二终端反馈的接收响应或收到第二终端反馈的重发请 求,则执行步骤S104。在步骤S103,第一终端在预置的时限内接收到第二终端反馈的接收响应,向所述 第二终端发送下一数据包,直至将所有数据包发送至所述第二终端。在步骤S104,第一终端在预置的时限内未接收到第二终端反馈的接收响应或收到 第二终端反馈的重发请求,向所述第二终端重发最近一次发送的数据包,直至重发次数超 过预置的阈值。实施本实施例提供的数据传输方法,可在串行通信过程中,快速有效的纠错和对 错误进行补救处理,以提高串行通信的质量。参见图2,为本发明提供的数据传输方法第二实施例流程示意图,在本实施例中, 将从数据信息发送端详细的描述该数据传输方法的流程。如图2所示
在步骤S200,所述第一终端向第二终端发送握手数据序列,并等待所述第二终端的握 手响应;若所述第一终端在预置的时限内接收到第二终端反馈的握手响应,且所述握手响 应携带的信息正确,则判定所述第一终端与第二终端之间的串口连接正常;否则,判定所述 第一终端与第二终端之间的串口连接异常,第一终端暂停处理所述需要发送到第二终端的 数据信息。更为具体的,握手操作是用于检测第一终端与第二终端的串口连接是否能正常工 作。以机顶盒(第二终端)升级KEY文件时,握手序列“P0123456789”为例,PC机(第一终 端)发送ASCII码值‘P’,机顶盒成功返回‘P,;PC机发送ASCII码值‘0’,机顶盒成功返回
‘0,;PC机发送ASCII码值‘1’,机顶盒成功返回‘1’......所有序列成功,则说明PC机与
机顶盒之间的串口连接正常工作,可以进入实质的数据传输,即升级KEY功能。不同的数据 传输,可以由不同的握手数据序列进行检测,在本例中,字符‘P’代表进入的是“升级KEY” 功能,“ 0123456789 ”代表握手测试序列。若第一终端与第二终端的握手操作多次不成功,超过了预置的握手失败次数(例 如5次),则在终端上提供用户本次连接失败。在步骤S201,第一终端将需要发送到第二终端的数据信息拆分,并将拆分后的各部分数据信息分别打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据 包的属性;所述包体中记录部分数据信息。所述数据包的属性包括数据包的类型、长度、 序列号。更为具体的,在现有的串行通信标准的基础上,不对需要发送的数据信息进行包 装加工,便直接应用于数据收发,在通信出错时,很难找出错误的原因,也不能及时针对错 误进行相关处理。为了解决因客观因素引起的串行数据传输中断时只能重启数据传输的现状,本发 明实施例提供的方法将需要发送到第二终端的数据信息拆分为若干段,并将拆分后的各部 分数据信息分别打包为数据包,在后续传输过程中,逐一的发送这些数据包,其优点是一旦 传输过程中出现错误,即自动重发出错的数据包,在没有出错的情况下,正常传输。这种方 式在工业生产过程中,能极大的提高了生产效率。优选的,在本实施例中,分别在数据包的包头和包体加入循环冗余校验码(CRC, Cyclic Redundancy Check),以便接收端的第二终端可据此判断数据传输是否出错。在步骤S202,第一终端向第二终端发送数据包,并等待所述第二终端反馈的接收 响应。在步骤S203,第一终端判断在预置的时限内是否有接收到第二终端反馈的接收响 应,第一终端在收到接收响应之前,不会发送一下数据包。若第一终端在预置的时限内接收 到第二终端反馈的接收响应,则执行步骤S204 ;若第一终端在预置的时限内未接收到第二 终端反馈的接收响应或收到第二终端反馈的重发请求,则执行步骤S205。在步骤S204,第一终端在预置的时限内接收到第二终端反馈的接收响应,向所述 第二终端发送下一数据包,直至将所有数据包发送至所述第二终端。更为具体的,所述预置的时限是由收发数据信息的双方或根据标准协议确定的, 第一终端在预置的时限内接收到第二终端反馈的接收响应,表明第二终端已经收到数据 包,且数据包携带的数据信息正确无误,则第一终端接着向第二终端发送下一数据包,直至 将所有数据包发送至所述第二终端。在步骤S205,第一终端在预置的时限内未接收到第二终端反馈的接收响应或收到 第二终端反馈的重发请求,则向所述第二终端重发最近一次发送的数据包,直至重发次数 超过预置的阈值。更为具体的,第一终端在预置的时限内未接收到第二终端反馈的接收响应说明信 息在传输过程中出现错误,例如该数据包丢失,没有到达第二终端;或第二终端收到了数据 包,但其反馈的接收响应在传输过程中丢失,没有到达第一终端等。若第一终端收到的是重 发请求,则说明第二终端收到了数据包,但数据包中的数据信息出现错误等。在出现上述传 输不正常的情况下,第一终端会向所述第二终端重发最近一次发送的数据包。优选的,为了避免因为第二终端故障,串行通信路由中断等原因使第一终端一直 不停的重发数据包,浪费资源,故预置一个重发次数阈值(例如10次),当第一终端重发同一 数据包的次数超过阈值时,判断第一终端与第二终端之间的串口连接中断,停止数据包的 重发,直至用户或系统启动下一次的握手操作。实施本实施例提供的数据传输方法,数据发送端依据数据长度和单个数据包的长 度,将所有要发送的数据进行拆分。根据发送数据的属性,发送端给每一个数据包加上包头信息,并加上CRC值。然后将整个包发向数据接收端。以上过程完成后,数据发送端将进入 等待应答状态。如果在未超时情况下,收到正确的应答,发送端便发送下一个数据包,否则 重新发送这一个数据包,该方法在串行通信过程中,可以快速有效的纠错和对错误进行补 救处理,以提高串行通信的质量。参见图3,为本发明提供的数据传输方法第三实施例流程示意图,在本实施例中, 将从数据信息接收端详细的描述该数据传输方法的流程。如图3所示
在步骤S300,第二终端接收第一终端发送的握手数据序列,并向所述第一终端发送响 应的握手响应;握手操作成功后,说明第一终端与第二终端之间的串口连接正常,第二终端 准备接收第一终端发送的数据包。在步骤S301,第二终端接收所述第一终端发送的数据包,并将其存储在串行数据 缓冲区。在步骤S302,第二终端从缓冲区中读取包头数据并对包头进行CRC校验,如果读 取数据超时或效验失败,则第二终端向第一终端发送重发请求,并准备重新接收该数据包; 若效验通过,则执行步骤S303。在步骤S303,第二终端根据包头中的序列号确保收包顺序正确,如果不正确,返回 重发请求给第一终端,并抛弃串行数据缓冲区中的其它数据;如果正确,则执行步骤S304。在步骤S304,第二终端从串行数据缓冲区中读取包体中的数据信息,并对包体进 行CRC校验;若效验通过,则执行步骤S305 ;否则,第二终端向第一终端发送重发请求。在步骤S305,第二终端对包数据进行相应处理,并在接收完所有的数据包之后,将 各数据包分别携带的部分数据信息重新组合为完整的数据信息。优选的,在本实施例中,为了避免因为第一终端故障,串行通信路由中断等原因使 第二终端一直不停的收到不正常的数据包而导致第二终端不断发送重发请求,浪费资源, 故预置一个重发次数阈值(例如10次),当第二终端针对某一数据包的重发请求次数超过阈 值时,判断第一终端与第二终端之间的串口连接中断,停止发送重发请求,直至第一终端向 第二终端发起下一次的握手操作。实施本实施例提供的数据传输方法,数据发送端依据数据长度和单个数据包的长 度,将所有要发送的数据进行拆分。根据发送数据的属性,发送端给每一个数据包加上包头 信息,并加上CRC值。然后将整个包发向数据接收端。以上过程完成后,数据发送端将进入 等待应答状态。如果在未超时情况下,收到正确的应答,发送端便发送下一个数据包,否则 重新发送这一个数据包,该方法在串行通信过程中,可以快速有效的纠错和对错误进行补 救处理,以提高串行通信的质量。参见图4,为本发明提供的数据传输系统第一实施例结构示意图,如图4所示,该 系统包括第一终端1和第二终端2。第一终端1,用于将需要发送到第二终端2的数据信息拆分为数据包,向第二终端 2发送,并等待第二终端2反馈的接收响应;若第一终端1在预置的时限内接收到所述接收 响应,则向第二终端2发送下一数据包,否则,向第二终端2重发最近一次发送的数据包。第二终端2,用于接收第一终端1发送的数据包,并判断所述数据包中的数据信息 是否正确;若判断为是,则向第一终端1发送接收响应,并准备接收第一终端1发送的下一 数据包;否则,向第一终端1发送重发请求,并准备接收第一终端1重发的数据包。
实施本实施例提供的数据传输系统,可在串行通信过程中,快速有效的纠错和对 错误进行补救处理,以提高串行通信的质量。同样参见图4,为本发明提供的数据传输系统第二实施例结构示意图,在本实施例 中,将更为详细的描述该数据传输系统中第一终端和第二终端的结构及功能。如图4所示, 该系统同样包括第一终端1和第二终端2。第一终端1,用于将需要发送到第二终端2的数据信息拆分为数据包,向第二终端 2发送,并等待第二终端2反馈的接收响应;若第一终端1在预置的时限内接收到所述接收 响应,则向第二终端2发送下一数据包,否则,向第二终端2重发最近一次发送的数据包。更为具体的,如图5所示,该第一终端1包括
数据拆分模块11,用于将需要发送到第二终端的数据信息拆分,并将拆分后的各部分 数据信息分别打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据包的 属性;所述包体中记录部分数据信息。所述数据包的属性包括数据包的类型、长度、序列 号。在现有的串行通信标准的基础上,不对需要发送的数据信息进行包装加工,便直 接应用于数据收发,在通信出错时,很难找出错误的原因,也不能及时针对错误进行相关处理。为了解决因客观因素引起的串行数据传输中断时只能重启数据传输的现状,本发 明实施例中的数据拆分模块11将需要发送到第二终端的数据信息拆分为若干段,并将拆 分后的各部分数据信息分别打包为数据包。在后续传输过程中,数据发送模块12逐一的发 送这些数据包,其优点是一旦传输过程中出现错误,即可自动重发出错的数据包,在没有出 错的情况下,正常传输。优选的,在本实施例中,数据拆分模块11分别在数据包的包头和包 体加入循环冗余校验码(CRC,Cyclic Redundancy Check),以便接收端的第二终端可据此 判断数据传输是否出错。数据发送模块12,用于向第二终端发送所述数据拆分模块11处理后的数据包。数 据发送模块12在传输处理模块13收到第二终端发送的接收响应之前,不会发送一下数据 包。传输处理模块13,用于在所述数据发送模块向第二终端发送数据包后,等待第二 终端反馈的接收响应;若在预置的时限内接收到第二终端反馈的接收响应,则通知所述数 据发送模块12向第二终端发送下一数据包,直至将所有数据包发送至所述第二终端;否 则,通知所述数据发送模块12向第二终端重发最近一次发送的数据包,直至重发次数超过 预置的阈值。更为具体的,传输处理模块13在预置的时限内接收到第二终端反馈的接收响应, 表明第二终端已经收到数据包,且数据包携带的数据信息正确无误,则传输处理模块13通 知数据发送模块12向第二终端发送下一数据包,直至将所有数据包发送至所述第二终端。传输处理模块13在预置的时限内未接收到第二终端反馈的接收响应说明信息在 传输过程中出现错误,例如该数据包丢失,没有到达第二终端;或第二终端收到了数据包, 但其反馈的接收响应在传输过程中丢失,没有到达第一终端等。若传输处理模块13收到的 是重发请求,则说明第二终端收到了数据包,但数据包中的数据信息出现错误等。在出现上 述传输不正常的情况下,传输处理模块13会通知数据发送模块12向所述第二终端重发最近一次发送的数据包。进一步的,该传输处理模块13包括
串口检测单元131,用于在第一终端向第二终端发送数据包之前,通过数据发送模块 12向第二终端发送握手数据序列,并等待第二终端的握手响应;若在预置的时限内接收到 第二终端反馈的握手响应,且握手响应信息正确,则判定串口连接正常;否则,判定串口连 接异常。阈值预置单元132,用于预置从数据发送模块12向第二终端发送数据包,到接收 到第二终端反馈的接收响应的时限,以及允许进行数据包重发的次数的阈值。设置数据包 重发次数阈值的意义在于,避免因为第二终端故障,串行通信路由中断等原因使第一终端 一直不停的重发数据包,浪费资源,故预置一个重发次数阈值(例如10次),当第一终端重发 同一数据包的次数超过阈值时,判断第一终端与第二终端之间的串口连接中断,停止数据 包的重发,直至用户或系统启动下一次的握手操作。传输处理单元133,用于在所述数据发送模块12向第二终端发送数据包后,判断 是否在预置的时限内收到第二终端反馈的接收响应;若在预置的时限内接收到第二终端反 馈的接收响应,则通知所述数据发送模块12向第二终端发送下一数据包,直至将所有数据 包发送至所述第二终端;若在预置的时限内未接收到第二终端反馈的接收响应或收到第二 终端反馈的重发请求,则通知所述数据发送模块12向第二终端重发最近一次发送的数据 包,直至重发次数超过预置的阈值。更为具体的,如图6所示,该第二终端2包括
检测模块21,用于接收第一终端发送的数据包,解析所述数据包的包头,根据其判断其 序列号、效验值判断所述数据包包体中的数据信息是否正确。更为具体的,检测模块21接收所述第一终端发送的数据包,并将其存储在串行数 据缓冲区,读取包头携带的数据并对包头进行CRC校验,如果读取数据超时或效验失败,则 通知响应模块22向第一终端发送重发请求,并准备重新接收该数据包;若效验通过,检测 模块21根据包头中的序列号确保收包顺序正确,如果不正确,则通知响应模块22向第一终 端发送重发请求,并抛弃串行数据缓冲区中的其它数据;如果正确,检测模块21进一步串 行数据缓冲区中读取包体中的数据信息,并对包体进行CRC校验;若效验通过,接收该数据 信息;否则,通知响应模块22向第一终端发送重发请求。响应模块22,用于在所述检测模块21判定数据包包体中的数据信息正确时,向第 一终端发送接收响应,并通知所述检测模块21准备接收第一终端发送的下一数据包,直至 接收完所有的数据包。在所述检测模块21判定数据包包体中的数据信息不正确时,向第一 终端发送重发请求,并通知所述检测模块21准备接收第一终端重发的数据包,直至重发次 数超过预置的阈值。优选的,该响应模块22还用于在所述响应模块22向第一终端发送接收响应,且 所述检测模块21未在预置的时限内接收到第一终端发送的下一数据包时,则所述响应模 块22向第一终端发送重发请求,并通知所述检测模块21准备接收第一终端重发的数据包, 直至重发次数超过预置的阈值。信息合成模块23,用于在检测模块21接收完所有的数据包之后,将各数据包分别 携带的部分数据信息重新组合为完整的数据信息。
实施本实施例提供的数据传输系统,数据发送端依据数据长度和单个数据包的长 度,将所有要发送的数据进行拆分。根据发送数据的属性,发送端给每一个数据包加上包头 信息,并加上CRC值,然后将整个包发向数据接收端。以上过程完成后,数据发送端将进入 等待应答状态。如果在未超时情况下,收到正确的应答,发送端便发送下一个数据包,否则 重新发送这一个数据包,该方法在串行通信过程中,可以快速有效的纠错和对错误进行补 救处理,以提高串行通信的质量。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权 利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种数据传输方法,其特征在于,包括第一终端将需要发送到第二终端的数据信息拆分,并将拆分后的各部分数据信息分别 打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据包的属性;所述包 体中记录部分数据信息;第一终端向第二终端发送数据包,并等待所述第二终端反馈的接收响应; 若第一终端在预置的时限内接收到第二终端反馈的接收响应,则向所述第二终端发送 下一数据包,直至将所有数据包发送至所述第二终端;若第一终端在预置的时限内未接收到第二终端反馈的接收响应或收到第二终端反馈 的重发请求,则向所述第二终端重发最近一次发送的数据包,直至重发次数超过预置的阈 值。
2.如权利要求1所述的数据传输方法,其特征在于,所述第一终端将需要发送到第二 终端的数据信息拆分,并将拆分后的各部分数据信息分别打包为数据包之前,还包括所述第一终端向第二终端发送握手数据序列,并等待所述第二终端的握手响应; 若所述第一终端在预置的时限内接收到第二终端反馈的握手响应,且所述握手响应携 带的信息正确,则判定所述第一终端与第二终端之间的串口连接正常;否则,判定所述第一 终端与第二终端之间的串口连接异常,第一终端暂停处理所述需要发送到第二终端的数据 fn息ο
3.如权利要求2所述的数据传输方法,其特征在于,所述数据包的属性包括数据包的 类型、长度、序列号、效验值。
4.如权利要求3所述的数据传输方法,其特征在于,第一终端向第二终端发送数据包, 并等待所述第二终端反馈的接收响应之后,还包括第二终端接收第一终端发送的数据包,解析所述数据包的包头,根据其判断其序列号、 效验值判断所述数据包包体中的数据信息是否正确;若所述判断为是,则第二终端向所述第一终端发送接收响应,并准备接收第一终端发 送的下一数据包,直至接收完所有的数据包;若所述判断为否,则第二终端向所述第一终端发送重发请求,并准备接收第一终端重 发的数据包,直至重发次数超过预置的阈值。
5.如权利要求4所述的数据传输方法,其特征在于,所述第二终端向所述第一终端发 送接收响应,并准备接收第一终端发送的下一数据包之后,还包括若所述第二终端向所述第一终端发送接收响应后,未在预置的时限内接收到所述第一 终端发送的下一数据包,则第二终端向所述第一终端发送重发请求,并准备接收第一终端 重发的数据包,直至重发次数超过预置的阈值。
6.一种数据传输系统,其特征在于,包括第一终端和第二终端;第一终端,用于将需要发送到第二终端的数据信息拆分为数据包,向第二终端发送,并 等待第二终端反馈的接收响应;若第一终端在预置的时限内接收到所述接收响应,则向第 二终端发送下一数据包,否则,向第二终端重发最近一次发送的数据包;第二终端,用于接收第一终端发送的数据包,并判断所述数据包中的数据信息是否正 确;若判断为是,则向第一终端发送接收响应,并准备接收第一终端发送的下一数据包;否 则,向第一终端发送重发请求,并准备接收第一终端重发的数据包。
7.如权利要求6所述的数据传输系统,其特征在于,所述第一终端包括数据拆分模块,用于将需要发送到第二终端的数据信息拆分,并将拆分后的各部分数 据信息分别打包为数据包,所述数据包包括包头和包体,所述包头中记录所述数据包的属 性;所述包体中记录部分数据信息;数据发送模块,用于向第二终端发送所述数据拆分模块处理后的数据包;传输处理模块,用于在所述数据发送模块向第二终端发送数据包后,等待第二终端反 馈的接收响应;若在预置的时限内接收到第二终端反馈的接收响应,则通知所述数据发送 模块向第二终端发送下一数据包,直至将所有数据包发送至所述第二终端;否则,通知所述 数据发送模块向第二终端重发最近一次发送的数据包,直至重发次数超过预置的阈值。
8.如权利要求7所述的数据传输系统,其特征在于,所述传输处理模块包括串口检测单元,用于在第一终端向第二终端发送数据包之前,通过数据发送模块向第 二终端发送握手数据序列,并等待第二终端的握手响应;若在预置的时限内接收到第二终 端反馈的握手响应,且握手响应信息正确,则判定串口连接正常;否则,判定串口连接异 常;阈值预置单元,用于预置从数据发送模块向第二终端发送数据包,到接收到第二终端 反馈的接收响应的时限,以及允许进行数据包重发的次数的阈值;传输处理单元,用于在所述数据发送模块向第二终端发送数据包后,判断是否在预置 的时限内收到第二终端反馈的接收响应;若在预置的时限内接收到第二终端反馈的接收响 应,则通知所述数据发送模块向第二终端发送下一数据包,直至将所有数据包发送至所述 第二终端;若在预置的时限内未接收到第二终端反馈的接收响应或收到第二终端反馈的重 发请求,则通知所述数据发送模块向第二终端重发最近一次发送的数据包,直至重发次数 超过预置的阈值。
9.如权利要求6至8中任一项所述的数据传输系统,其特征在于,所述数据包包括包 头和包体,所述包头中记录所述数据包的属性;所述包体中记录部分数据信息;所述数据 包的属性包括数据包的类型、长度、序列号、效验值。
10.如权利要求9所述的数据传输系统,其特征在于,所述第二终端包括检测模块,用于接收第一终端发送的数据包,解析所述数据包的包头,根据其判断其序 列号、效验值判断所述数据包包体中的数据信息是否正确;响应模块,用于在所述检测模块判定数据包包体中的数据信息正确时,向第一终端发 送接收响应,并通知所述检测模块准备接收第一终端发送的下一数据包,直至接收完所有 的数据包;在所述检测模块判定数据包包体中的数据信息不正确时,向第一终端发送重发 请求,并通知所述检测模块准备接收第一终端重发的数据包,直至重发次数超过预置的阈 值;信息合成模块,用于在检测模块接收完所有的数据包之后,将各数据包分别携带的部 分数据信息重新组合为完整的数据信息。
11.如权利要求10所述的数据传输系统,其特征在于,所述响应模块还用于在所述响 应模块向第一终端发送接收响应,且所述检测模块未在预置的时限内接收到第一终端发送 的下一数据包时,则所述响应模块向第一终端发送重发请求,并通知所述检测模块准备接 收第一终端重发的数据包,直至重发次数超过预置的阈值。
全文摘要
本发明实施例公开了一种数据传输方法及系统,该方法包括第一终端将需要发送到第二终端的数据信息拆分,并打包为数据包,数据包包括包头和包体;第一终端向第二终端发送数据包,并等待第二终端反馈的接收响应;若第一终端在预置的时限内接收到第二终端反馈的接收响应,则向第二终端发送下一数据包,直至将所有数据包发送至第二终端;若第一终端在预置的时限内未接收到第二终端反馈的接收响应或收到第二终端反馈的重发请求,则向第二终端重发最近一次发送的数据包,直至重发次数超过预置的阈值。实施本发明提供的数据传输方法及系统,可在串行通信过程中,快速有效的纠错和对错误进行补救处理方法,以提高串行通信的质量。
文档编号H04L12/56GK102143073SQ201110070410
公开日2011年8月3日 申请日期2011年3月23日 优先权日2011年3月23日
发明者聂冰, 陈强 申请人:深圳创维数字技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1