CN107359965B - 一种数据传输方法以及终端 - Google Patents

一种数据传输方法以及终端 Download PDF

Info

Publication number
CN107359965B
CN107359965B CN201611053521.9A CN201611053521A CN107359965B CN 107359965 B CN107359965 B CN 107359965B CN 201611053521 A CN201611053521 A CN 201611053521A CN 107359965 B CN107359965 B CN 107359965B
Authority
CN
China
Prior art keywords
sequence
bit
data
wave sequence
wave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611053521.9A
Other languages
English (en)
Other versions
CN107359965A (zh
Inventor
李东声
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tendyron Technology Co Ltd
Original Assignee
Tendyron Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tendyron Technology Co Ltd filed Critical Tendyron Technology Co Ltd
Priority to CN201611053521.9A priority Critical patent/CN107359965B/zh
Publication of CN107359965A publication Critical patent/CN107359965A/zh
Application granted granted Critical
Publication of CN107359965B publication Critical patent/CN107359965B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1657Implicit acknowledgement of correct or incorrect reception, e.g. with a moving window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)
  • Dc Digital Transmission (AREA)

Abstract

本发明提供了一种数据传输方法及终端,该方法包括:获取待发送数据的N个数据帧,获取第i个数据帧的比特序列,其中,i的取值依次为1,2,3……N;发送第i个数据帧的比特序列对应的X个波形序列;其中,波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列;在发送完成所述X个波形序列后,检测接收端口的电平变化;根据电平变化以及波形序列的特征确定接收数据的Y个波形序列,根据Y个波形序列确定接收数据的比特序列;在接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,获取第i+1个数据帧的比特序列;发送第i+1个数据帧的比特序列对应的Z个波形序列,直至将待发送数据的N个数据帧发送完成。

Description

一种数据传输方法以及终端
技术领域
本发明涉及一种电子技术领域,尤其涉及一种数据传输方法及终端。
背景技术
现有的信号传输技术通常采用不同的时间间隔区分不同的比特值,例如,比特00用T+t1表示,比特01用T+t2表示,比特10用T+t3表示,比特11用T+t4表示,采用该现有的信号传输技术,传输不同的比特值所需的时长较长,数据比特的编码效率较低,增加了发送端和接收端的负担及成本。
此外,在现有技术中,在数据传输过程中,通常发送端在发送完成所有数据包之后,才会接收到接收端的重传请求,发送端重传全部数据或者重传接收端未接收到的数据包,但无论哪种方式,都导致数据重传的效率降低,数据传输量增大。
发明内容
本发明旨在解决以上问题之一。
本发明的主要目的在于提供一种数据传输方法。
本发明的另一目的在于提供一种终端。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明一方面提供了一种数据传输方法,包括:
获取待发送数据,所述待发送数据包括N个数据帧;获取第i个数据帧的比特序列,其中,i的取值依次为1,2,3……N,N为正整数;根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列;其中,X为正整数,所述波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,所述波形序列的特征包括:所述第一波形序列、所述第二波形序列以及所述第三波形序列的传输持续时间相同,且所述第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,所述第二波形序列在所述传输持续时间内持续高电平,所述第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,所述第一预设时间与所述第二预设时间的时长不同,所述X个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;在发送完成所述第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化;根据所述电平变化以及所述波形序列的特征确定接收数据的Y个波形序列,其中,Y为正整数,所述Y个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;根据所述接收数据的Y个波形序列确定所述接收数据的比特序列;在所述接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,获取第i+1个数据帧的比特序列;根据所述第i+1个数据帧的比特序列,连续发送所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列,直至将所述待发送数据的所述N个数据帧发送完成,其中,Z为正整数,所述Z个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;其中,在发送所述待发送数据的N个数据帧时,以所述第一波形序列表示第一数据比特,分别以所述第二波形序列和所述第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个;在连续发送的至少两个比特为所述第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为所述第二波形序列,第二个比特以及后续的比特对应的波形序列为所述第三波形序列。
可选的,在发送完成所述第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化之前,所述方法还包括:在预设时间内在检测到所述接收端口的电平发生变化,则执行所述检测接收端口的电平变化的步骤;如果在预设时间内没有检测到所述接收端口的电平发生变化,则重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
可选的,在所述根据所述接收数据的Y个波形序列确定所述接收数据的比特序列之后,所述方法还包括:在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
可选的,所述根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列,包括:控制发送端口的电平按照所述第i个数据帧的比特序列中的比特对应的X个波形序列以及所述波形序列的特征进行变化,以发送所述第i个数据帧;所述根据所述第i+1个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的Z个波形序列,包括:控制发送端口的电平按照所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列以及所述波形序列的特征进行变化,以发送所述第i+1个数据帧。
可选的,所述波形序列的特征还包括:所述传输持续时间与传输所述波形序列的波特率呈反比关系;所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化。
可选的,所述波形序列的特征还包括:所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
可选的,T1=a×T,其中,T1为所述第一预设时间,T为所述传输持续时间,a为预设的占空比系数,0<a<1;T2=b×T,其中,T2为所述第二预设时间,b为预设的占空比系数,0≤b<1;且,a≠b。
可选的,所述波形序列的特征还包括:所述第二预设时间等于0,且所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变,并以高电平结束;所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
本发明另一方面提供了一种终端,包括:比特序列获取模块、波形序列生成及发送模块、电平检测模块和数据确定模块,其中:
所述比特序列获取模块,用于获取待发送数据,所述待发送数据包括N个数据帧;获取第i个数据帧的比特序列,其中,i的取值依次为1,2,3……N,N为正整数;所述波形序列生成及发送模块,用于根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列,其中,X为正整数,所述波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,所述波形序列的特征包括:所述第一波形序列、所述第二波形序列以及所述第三波形序列的传输持续时间相同,且所述第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,所述第二波形序列在所述传输持续时间内持续高电平,所述第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,所述第一预设时间与所述第二预设时间的时长不同,所述X个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;所述电平检测模块,用于在所述波形序列生成及发送模块发送完成所述第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化;所述数据确定模块,用于根据所述电平变化以及所述波形序列的特征确定接收数据的Y个波形序列,其中,Y为正整数,所述Y个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;根据所述接收数据的Y个波形序列确定所述接收数据的比特序列;并在所述接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,触发所述比特序列获取模块获取第i+1个数据帧的比特序列;所述比特序列获取模块,还用于在所述数据确定模块的触发下,获取第i+1个数据帧的比特序列;所述波形序列生成及发送模块,还用于根据所述第i+1个数据帧的比特序列,连续发送所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列,直至将所述待发送数据的所述N个数据帧发送完成,其中,Z为正整数,所述Z个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;其中,所述波形序列生成及发送模块在发送所述待发送数据的N个数据帧时,以所述第一波形序列表示第一数据比特,分别以所述第二波形序列和所述第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个;在连续发送的至少两个比特为所述第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为所述第二波形序列,第二个比特以及后续的比特对应的波形序列为所述第三波形序列。
可选的,所述电平检测模块,还用于在预设时间内检测到所述接收端口的电平发生变化,则检测执行所述接收端口的电平变化的操作;如果在预设时间内没有检测到所述接收端口的电平发生变化,则触发所述波形序列生成及发送模块重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列;所述波形序列生成及发送模块,还用于在所述电平检测模块的触发下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
可选的,所述数据确定模块,还用于在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,触发所述波形序列生成及发送模块重新发送所述第i个数据帧的比特序列对应的X个波形序列;所述波形序列生成及发送模块,还用于在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
可选的,所述波形序列生成及发送模块通过以下方式根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列:所述波形序列生成及发送模块,还用于控制发送端口的电平按照所述第i个数据帧的比特序列中的比特对应的X个波形序列及所述波形序列的特征进行变化,以发送所述第i个数据帧;所述波形序列生成及发送模块通过以下方式根据所述第i+1个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的Z个波形序列:所述波形序列生成及发送模块,还用于控制发送端口的电平按照所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列及所述波形序列的特征进行变化,以发送所述第i+1个数据帧。
可选的,所述波形序列的特征还包括:所述传输持续时间与传输所述波形序列的波特率呈反比关系;所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化。
可选的,所述波形序列的特征还包括:所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
可选的,T1=a×T,其中,T1为所述第一预设时间,T为所述传输持续时间,a为预设的占空比系数,0<a<1;T2=b×T,其中,T2为所述第二预设时间,b为预设的占空比系数,0≤b<1;且,a≠b。
可选的,所述波形序列的特征还包括:所述第二持续时间等于0,且所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变,并以高电平结束;所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
由上述本发明提供的技术方案可以看出,本发明提供了一种数据传输方法及终端,以高低电平变化的波形序列表示比特0和1,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率,且编码效率更高,降低了发送端和接收端的成本及负担。而且,本发明中,发送端发送完成一帧数据帧后,在接收到接收端返回的ACK报文(指示数据接收成功的数据)才继续发送下一帧数据帧,如果在预设的等待时间没有接收到ACK响应报文,则重发数据帧,本发明无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例1提供的数据传输方法的流程图;
图2为本发明实施例1提供的数据帧的帧格式的示意图;
图3为本发明实施例1提供的第一波形序列的示意图;
图4为本发明实施例1提供的第二波形序列的示意图;
图5为本发明实施例1提供的第三波形序列的示意图图;
图6A为本发明实施例1提供的第i个数据帧的比特序列11001000对应的8个波形序列的示意图;
图6B为本发明实施例1提供的第i个数据帧的比特序列11110000对应的8个波形序列的示意图;
图7为本发明实施例1提供的第i个数据帧的数据帧头为CCCCBCBC的示意图;
图8为本发明实施例2提供的数据传输方法的流程图;
图9为本发明实施例3提供的终端的结构图;
图10为本发明实施例4提供的终端的结构图;
图11为本发明实施例5提供的数据传输方法的流程图;
图12为本发明实施例6提供的数据传输方法的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面将结合附图对本发明实施例作进一步地详细描述。
实施例1
本实施例提供了一种数据传输方法,在本实施例中通信的两个设备可以分为主设备和从设备,例如主设备可以为PC、手机等移动终端、读卡器,从设备可以为USB、电子签名设备(如工行U盾,农行Key宝)、智能卡,在主设备与从设备电连接后,从设备可以从主设备取电,主设备在与从设备通信的同时,可以为从设备供电,在静默态时,主设备与从设备连接的端口保持高电平,通过高电平主设备可以为从设备供电,主设备和从设备均可以通过控制该端口输出的电平变化进行数据发送,并检测该端口输入的电平变化进行数据接收。图1是本实施例的一种可选的数据传输方法的流程图。本发明实施例的本端可以是主设备也可以是从设备。
如图1所示,该数据传输方法主要包括以下步骤(S101~S108):
步骤S101,本端获取待发送数据,该待发送数据包括N个数据帧;
本实施例中待发送数据包括N个数据帧,N为正整数,发送端发送第i个数据帧,i的取值依次为1,2,……,N,即,发送端从第1个数据帧开始,在发送完成第1个数据帧后再发送第2个数据帧,如此连续发送N个数据帧,直至将待发送数据的N个数据帧全部发完,其中,每个数据帧都是一串比特序列,待发送数据是由多个数据帧的比特序列组成的比特序列。本实施例中,一个比特对应一个波形序列,波形序列分为几种,分别来表示比特1和比特0,关于波形序列此处暂不作详细说明,可以参见本实施例步骤S104中对波形序列进行的详细描述。
作为一种可选的实施方式,在本实施例中,一个数据帧的帧格式可以如图2所示,一个数据帧可以依次包括:数据帧头(Start of Frame,缩写SOF)、待传输数据/传输数据(Byte0,Byte1……Byten-1,Byten)和数据帧尾(End of Frame,缩写EOF),其中,数据帧头SOF为通信双方约定好的比特序列对应的波形序列,通过该数据帧头,接收端可以识别出当前开始接收一个数据帧,并能够确定接收数据帧中待传输数据的起始位置(或时刻),此外,数据帧头SOF还可以指示发送端传输数据的波特率,通过分析数据帧头接收端可以获取发送端传输数据的波特率,并采用该波特率解析接收数据;数据帧尾EOF也是通信双方约定好的波形序列,通过该数据帧尾,接收端识别数据接收结束,该数据帧为EOF的设置可以区分于正常的待传输数据以及数据帧头对应的波形序列,以便于识别出数据帧尾EOF。
作为一种可选的实施方式,待传输数据中的头一个字节即Byte0可以用来标识报文类型,例如,Byte0为8比特,定义如下:
Bit7 Bit[6:4] Bit[3:0]
Device_type Rev Packet_type
其中,Device_type代表该报文发起方设备类型,例如,1代表主设备,0代表从设备,便于后续分析工具可区分报文是主设备发出还是从设备发出。Rev为缺省数据,Packet_type代表报文类型,例如0001B表示ATR报文,ATR报文可以为参数获取报文,对端接收到该ATR报文,也要返回相应的ATR报文,并携带相应的参数;例如0010B表示ACK响应报文,即表示数据接收成功的响应报文,例如,0011B表示NAK报文,即表示设备未准备好(或数据接收失败)的响应报文,例如,在数据接收错误,或者数据丢包等情况下,接收端会向发送端返回NAK报文;例如,0100B表示PKT报文,即该报文就是正常的数据报文,由此,通过报文类型可以区分报文为指示信息还是正常的数据,对端在接收到相应类型的报文后,可以做出相应的响应。作为一种可选的实施方式,待传输数据中的最后两个字节Byten-1,Byten可以作为CRC冗余校验位,可以利用该校验位对接收数据帧的比特序列进行校验,以便检测或校验接收的数据是否出现错误。
步骤S102,置i=1;
步骤S103,获取第i个数据帧的比特序列;
在本实施例中,第i数据帧的比特序列为一串比特串,包括该数据帧的数据帧头、待传输数据和数据帧尾中各个部分的数据。
步骤S104,根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列;
其中,X为正整数,所述波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,所述波形序列的特征包括:第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同,且第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,第二波形序列在传输持续时间内持续高电平,第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,第一预设时间与第二预设时间的时长不同,以此可以区分第一波形序列与第三波形序列,所述X个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列。在本实施例中,不同的波形序列的传输持续时间相同,即均以T来传输一个比特,相比与现有技术中需要用不同的时间间隔来传输一个比特值的方式,本实施例传输一个比特所需的时间更短,因此,编码效率更高,降低了发送端和接收端的成本及负担。此外,相比于现有技术仅以高低电平来表示比特0和比特1的方式,本实施例提供的波形序列,以第二波形序列和第三波形序列表示比特0或比特1中的一个,也就是说,在传输数据比特的波形序列中尽可能多的出现高电平,进而提高供电效率。
其中,在发送第i个数据帧时,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个,在连续发送的至少两个比特为所述第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为所述第二波形序列,第二个比特以及后续的比特对应的波形序列为所述第三波形序列。本实施例中,第二数据比特由第二波形序列或第三波形序列表示,而第二波形序列在传输持续时间内均为高电平,由此,可以进一步提高取电效率。
其中,作为一种可选的实施方式,所述波形序列的特征还包括:波形序列的传输持续时间与传输所述波形序列的波特率呈反比关系,第一波形序列中出现的低电平在传输持续时间内所占的总时长不随传输波形序列的波特率的变化而变化;和/或,第三波形序列中出现的低电平在传输持续时间内所占的总时长不随传输波形序列的波特率的变化而变化。例如,第一波形序列以及第三波形序列中低电平的持续时长可以预设为一个固定时长,由于主从设备传输数据帧的波特率可以改变,这样低电平占传输持续时间的占空比就是变化的,而不是一个固定比例,例如,低电平的持续时间固定为10ns,当主设备以50Mbs的波特率,即传输持续时间为20ns进行波形序列的传输时,低电平的持续时间占传输持续时间的50%,即从设备的取电效率为50%;当主设备以25Mbs的波特率,即传输持续时间为40ns进行波形序列的传输时,低电平的持续时间占传输持续时间的25%,即从设备的取电效率为75%,由此可见,低电平的时长固定时,低电平在传输持续时间内所占的总时长与波特率没有线性关系,即不随传输波形序列的波特率的变化而变化,由此,可以根据实际情况选择波特率,使得主从设备的接口保持高电平的时间尽可能的长,从而进一步提高两线通信中的供电效率。
其中,作为一种可选的实施方式,第一波形序列中出现的低电平在传输持续时间内所占的总时长小于传输持续时间的二分之一;和/或,第三波形序列中出现的低电平在传输持续时间内所占的总时长小于传输持续时间的二分之一。由此,当波形序列中低电平出现的时长越短,便可以使得主从设备的接口保持高电平的时间尽可能的长,从而进一步提高两线通信中的供电效率。
在本实施例中,第一预设时间与传输持续时间可以有一定的比例关系,也可以是双方协商预设的固定时长,例如固定为10ns,第二预设时间与传输持续时间可以有一定的比例关系,也可以是双方协商预设的固定时长,例如固定为20ns,只要第一预设时间与第二预设时间的不同的,能够区分出第一波形序列和第三波形序列即可。作为一种可选的实施方式,第一预设时间T1和第二预设时间T2可以满足以下预设关系:T1=a×T,T2=b×T,其中,T为传输持续时间,a为预设的占空比系数,b为预设的占空比系数,0<a<1;0≤b<1;且a≠b。其中,作为一种可选的方式,b可以等于0,即T2等于0,第三波形序列以低电平起始,从而与以高电平起始的第一波形序列形成较大的区别,更有利于波形序列的发送和接收时的识别。
在本实施例中,第一波形序列和第三波形序列中可以出现一次下降沿电平跳变(或上升沿电平跳变)或多次下降沿电平跳变(或上升沿电平跳变),在本实施例中,由于在静默态主从设备之间的一个端口的电平持续为高电平,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变,作为一种可选的实施方式,第三波形序列在传输持续时间内仅出现一次由高电平变为低电平的跳变和一次由低电平变为高电平的电平跳变,并以高电平结束,当然,在b=0时,第三波形序列中仅出现一次由低电平变为高电平的跳变;第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。相比于一个波形序列中包括多次下降沿跳变或多次上升沿跳变的情况,一个波形序列中仅存在一次下降沿电平跳变(或上升沿电平跳变)可以减少控制端的操作复杂性,无需控制发送端口的电平进行多次跳变才能传输一个比特,提高数据传输的效率。
下面对本实施例中的3种波形序列给出示例性的说明。图3给出了几种第一波形序列的示意图,图4给出了第二波形序列的示意图,图5给出了几种第三波形序列的示意图。其中,如图3所示,第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,例如,如图3(a)所示,第一波形序列的传输持续时间为40ns,高电平持续第一预设时间为10ns,占第一波形序列的持续时间的1/4。在实际应用中,主从设备一直处于连接状态中,主设备在默认状态输出高电平,持续为从设备供电,当主设备需要发送数据时,会通过自身的通断开关产生低电平,通过高低电平形成不同的波形序列,以传输相应的比特数据,当主设备输出低电平时,主设备则不能为从设备供电。因此,为了尽可能高效地为从设备供电,优选地,第一波形序列中出现的低电平在传输持续时间内所占的总时长可以小于传输持续时间的二分之一;由此,在传输的数据中高电平的出现时间越长则供电效率越高。如图3(b)所示,第一波形序列的持续时间为40ns,高电平持续第一预设时间为30ns,占第一波形序列的传输持续时间的3/4,以此第一波形序列传输数据供电效率比较高。因此,图3(b)中的第一波形序列传输数据供电效率要比图3(a)中的高。此外,第一波形序列的波形还可以如图3(c)所示,以高电平结束。图4所示的第二波形序列为在持续时间内一直为高电平,由此,又可以提高供电效率。第三波形序列以高电平开始并持续第二预设时间跳变为低电平,例如,如图5(a)所示,第三波形序列的传输持续时间为60ns,高电平持续第二预设时间为20ns,低电平的持续时间为40ns,低电平的持续时长占第三波形序列的传输持续时间的2/3。此外,第三波形序列的波形还可以如图5(b)所示,以高电平结束。为了提高供电效率,优选地,所述第三波形序列中出现的低电平在传输持续时间内所占的总时长可以小于传输持续时间的二分之一,如图5(c)所示,第三波形序列的传输持续时间为100ns,高电平持续第二预设时间为0ns,即可以理解为第三波形序列以低电平开始,低电平的持续时间为40ns,占第三波形序列的传输持续时间的2/5,因此,图5(b)中的第三波形序列传输数据供电效率要比图5(a)中的高。
在本步骤中,作为一种可选的实施方式,根据第i个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的X个波形序列可以包括:控制发送端口的电平按照第i个数据帧的比特序列中的比特对应的X个波形序列以及波形序列的特征进行变化,以发送第i个数据帧。例如,通信协议约定:比特“1”用第一波形序列表示,则比特“0”用第二波形序列和第三波形序列表示,本实施例中,可以先获取一个数据帧的比特序列,每个比特对应的波形序列是确定的,例如,本端通过控制发送端口产生高低电平,即,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变。波形序列是通过发送端口产生的高低电平的变化得到的,由此,就可以产生每个比特对应的波形序列,进而形成一个数据帧对应的波形序列。例如,第i个数据帧的比特序列为11001000,那么按照通信协议约定,第i个数据帧的比特序列对应的8个波形序列依次为AABCABCC,其中,A为第一波形序列,B为第二波形序列,C为第三波形序列,根据各个波形序列的上述波形序列的特征,即第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同,如均为T,第一预设时间为T1,第二预设时间T2,那么,第i个数据帧的比特序列11001000对应的8个波形序列可以如图6A所示。在发送第i个数据帧中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成一个数据帧的比特序列对应的波形序列,传输该第i个数据帧。在本实施例中,在一次传输过程中,第一波形序列和第三波形序列中出现的低电平的持续时长可以是一个固定时长,也可以是一个与波特率没有关系的可变时长,如图6B所示,第i个数据帧的比特序列为11110000,第i个数据帧的比特序列对应的8个波形序列依次为AAAABCCC,由图上可以看出,第一波形序列A的第一预设时长T1不变,但低电平可以变化,虽然第一波形序列A的波形可以发生变化,但只要符合波形序列的特征,就可以识别出第一波形序列A,第三波形序列C同理,此处不再赘述,由此可见,本实施例中在一个数据帧的传输过程中,第一波形序列和第三波形序列的波形可变,由此,发送端发送波形序列和接收端识别波形序列可以更灵活。
步骤S105,在发送完成第i个数据帧的比特序列对应的波形序列后,检测接收端口的电平变化;
本实施例中,如前文所述,本端是通过发送端的发送端口产生高低电平的变化来形成一个数据帧的波形序列的,因此,相应的,对端也是通过同样的方式发送数据的,本端为了接收对端发送的数据,需要对接收端口的电平变化进行检测,以便根据电平变化进行波形序列的识别。具体地,作为一种可选的实施方式,检测接收端口的电平变化可以包括:对接收端口的电平进行连续采样,得到采样后的高低电平变化;或者,检测接收端口的电平跳变,例如该电平跳变可以为由高电平变为低电平的跳变,例如可以通过差分放大器对接收端口的电平进行检测比较,在检测到电平从高电平变低时差分放大器输出下降沿的跳变。
在本实施例中,为了提高了数据重传的效率以及正确性,在发送完成第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化之前,作为一种可选的实施方式,本实施提供的方法还可以包括:在预设时间内在检测到接收端口的电平发生变化,则执行检测接收端口的电平变化的步骤;如果在预设时间内没有检测到接收端口的电平发生变化,即说明没有收到对端返回的响应数据,则返回步骤S103,重新执行步骤S103~S105,重传本端在步骤S105已经发送完成的第i个数据帧。
本实施例中,本端可以预先设置发送完一个数据帧后等待接收数据的等待时间,例如,可以为8T,T为传输持续时间,在该等待时间内如果接收到对端返回的数据,则说明对端接收到本端发送的数据帧且接收成功,本端在接收完对端返回的数据接收响应数据(ACK响应报文)后可以继续发送下一个数据帧;如果在该等待时间没有接收到对端返回的数据接收成功的响应数据,则重发该数据帧。由此,本实施例无需将待发送数据的全部数据帧发送完成才进行数据的重发,大大提高了数据重传的效率和正确率。
此外,作为一种可选的实施方式,本实施例中,如果在预设时间内没有检测到接收端口的电平发生变化,在返回步骤S103执行重传的操作之前,还包括:判断重传的次数是否达到预设次数,如果达到,则结束流程,不返回S103执行重传,如果没有达到,返回步骤S103执行重传。例如,预设次数为5次,重传一次本地计数器加1,例如,在重传5次后,计数器计数值为5,当判决在预设时间内没有检测到接收端口的电平发生变化时,且判断计数器的计数值已达到5次,则结束流程。以便在保证重传的同时不会影响数据传输效率。
步骤S106,根据电平变化以及波形序列的特征确定接收数据的Y个波形序列,Y为正整数,所述Y个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列;
在本步骤中,作为一种可选的实施方式,根据电平变化以及波形序列的特征确定接收数据的Y个波形序列,包括:获取一个波形序列的预设持续时间;以所述预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定所述接收数据的Y个波形序列。
根据前文提到的波形序列的特征,在获取到一个波形序列的预设持续时间的前提下,第一波形序列的起始高电平的第一预设时间以及第三波形序列的起始高电平的第二预设时间都是可以确定的,因此,确定一个波形序列的方式可以为:在一个波形序列的传输持续时间内,根据该波形序列的起始高电平的持续时长符合上述哪种波形序列的特征,来确定该波形序列为哪个波形序列,或者,也可以根据接收端口检测到的电平变化,如通过采样电平变化得到一个波形序列的波形,判断该波形符合上述哪种波形序列的特征,来确定该波形序列为哪个波形序列。例如,在一个波形序列的传输持续时间内,该波形序列的起始位置距离发生电平跳变(如下降沿的电平跳变)的时刻之间的间隔为第一预设时长,则该波形序列为第一波形序列,如果为第二预设时长,则该波形序列为第三波形序列,否则,为第二波形序列。在本实施例中,所述接收数据依次包括数据帧头、传输数据和数据帧尾,在检测到数据帧头对应的波形序列后,就可以确定数据帧中的传输数据对应的波形序列的起始位置,从该起始位置开始可以根据检测到的电平变化(如下降沿的电平跳变)符合上述哪种波形序列的特征来确定第一个波形序列,在持续一个波形序列的传输持续时间后,开始确定第二个波形序列,以此直至确定完接收数据中的传输数据和数据帧尾对应的波形序列。
其中,一个波形序列的预设持续时间可以是通信双方预先协商好的,通信双方采用该预先协商好的预设持续时间(即波特率的反比)进行数据传输,也可以是从数据帧头中解析得到的,相较于前者,后者可以更灵活选择波特率进行数据传输,对端可以视当前的传输环境以及对端支持的接收数据的速率选择双方支持的最高的波特率进行数据传输,本端只要解析数据帧头就可以获得当前的波特率,由此,可以采用通信双方支持的最大波特率进行数据传输,以达到高速的数据传输的效果。
作为第一种可选的实施方式,数据帧头可以至少包括1个比特,数据帧头的第1个比特对应的波形序列为所述第三波形序列或者所述第一波形序列,双方协商以上述波形序列作为数据帧头,则在检测到的接收端口的电平变化形成上述数据帧头对应的波形序列时,可以确定当前接收到的波形序列为数据帧头,该数据帧头后紧接着的波形序列为传输数据的波形序列的起始位置。作为第二种可选的实施方式,数据帧头至少包括M个比特,数据帧头的前M个比特对应的波形序由M个第一波形序列组成;或者,数据帧头的前M个比特对应的波形序列由M个第三波形序列组成,M为正整数且M≥2;或者,数据帧头的前M个比特对应的波形序列由至少一个第一波形序列和至少一个第三波形序列组成。第一种实施方式中在通信双方以预先协商的波特率进行数据传输的情况下,可以通过上述波形序列识别出数据帧头,相比于第一种实施方式,第二种实施方式还可以通过数据帧头的前M个比特对应的波形序列确定出一个波形序列的预设持续时间,即确定发送方发送数据的波特率,并可以利用该波特率进行数据的接收和发送,实现波特率自适应。在第二种实施方式的基础之上,作为第三种可选的实施方式,数据帧头的前几个比特对应的波形序列为连续相同的波形序列时,为了避免单频干扰,还可以在连续相同的波形序列的后面(只要在后面就可以,比如紧接着连续相同的波形序列后面,或者隔几个波形序列之后均可)约定至少1个与所述相同的波形序列不同的波形序列,即抗干扰比特对应的波形序列,例如,数据帧头的前M个比特对应的波形序列由M个第一波形序列组成时,数据帧头还包括:在数据帧头的前M个比特之后的至少1个抗干扰比特,其中,所述至少1个抗干扰比特为第二波形序列或第三波形序列,例如,该数据帧头对应的波形序列可以为AAAABCBC,其中,A为第一波形序列,B为第二波形序列,C为第三波形序列;或者,数据帧头的前M个比特对应的波形序列由M个所述第三波形序列组成时,数据帧头还包括:在数据帧头的前M个比特之后的至少1个抗干扰比特,其中,所述至少1个抗干扰比特中至少有一个比特对应的波形序列为第一波形序列或第二波形序列,例如,该数据帧头对应的波形序列可以为CCCCABCC。
通过上述第三种实施方式中的数据帧头可以防止单频干扰,单频干扰可以理解为以相同周期产生的脉冲序列,因此,如果数据帧头由连续几个相同的波形序列组成,比如,连续4个C,而单频干扰的频率恰好与波特率相同,即本端通过电平变化识别出与该数据帧头相同的波形序列,此时,本端会将该单频干扰识别为数据帧头,出现错误识别的情况,而通过第三种实施方式中的数据帧头中在连续相同的多个波形序列之后出现的不同的波形序列,使得数据帧头存在不同的时间间隔,即不会出现与单频干扰相同的波形序列,由此采用该实施方式中的数据帧头可以防单频干扰。
在本实施例中,可以通过对上述第二种和第三种实施方式中提到的数据帧头进行解析得到一个波形序列的预设持续时间,以该预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定接收数据中的传输数据以及数据帧为对应的波形序列。以数据帧头的前M个比特对应的波形序列均为如图5(a)所示的第三波形序列为例,即,该第三波形序列的波形变化以高电平开始并持续第一预设时间跳变为低电平,且在传输持续时间内仅出现一次由低电平变为高电平的电平跳变,并以高电平结束。作为一种可选的实施方式,确定预设持续时间的方式可以通过以下方式实现:根据数据帧头对应的波形序列中的任意2个相同跳变之间的时间间隔计算得到一个波形序列的预设持续时间,其中,相同跳变指任意2个跳变均为从高电平跳变为低电平;预设的数据帧头对应的N个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列。以数据帧头为CCCCBCBC为例,以C的第一预设时间T2=1/4T,其中,T为预设持续时间,如图7所示,可以根据8个波形序列中的任意两个下降沿跳变计算一个波形序列的预设持续时间,例如,第1个下降沿电平跳变和第2个下降沿跳变的时刻之间的时间间隔就是一个波形序列的预设持续时间T,又例如,第1个下降沿电平跳变和第5个下降沿电平跳变的时间间隔τ为3/4T+4T+1/4T,即τ=5T,由此可以推算出一个波形序列的预设持续时间T的时长。然后,以该预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定接收数据中的传输数据以及数据帧尾对应的波形序列。
对于数据帧头对的波形序列由其他波形序列组成的情况,确定预设持续时间的方式与上述举例的方式是相同的,此处不再赘述。
作为一种可选的实施方式,本实施例中,通信双方可以预先约定数据帧尾对应的波形序列。具体地,数据帧尾包括2个比特,对应的波形序列包括以下3种方式之一:数据帧尾的第一个比特对应的波形序列为第二波形序列,数据帧尾的第二个比特对应的波形序列为第二波形序列;或者,数据帧尾的第一个比特对应的波形序列为第三波形序列,数据帧尾的第二个比特对应的波形序列为第二波形序列;或者,数据帧尾的第一个比特对应的波形序列为第一波形序列,数据帧尾的第二个比特对应的波形序列为第三波形序列。在本实施例中,当根据电平变化以及波形序列的特征确定的波形序列为上述预设的数据帧尾对应的波形序列,则说明数据接收结束。本实施例中,数据帧头和数据帧尾对应的波形序列是通信协议预先约定好的,一般来说,约定数据帧头和数据帧尾不出现同样的波形序列,这样更容易将数据帧头和数据帧尾进行识别和区别,如果约定的数据帧头中的波形序列包含了数据帧尾中的2个波形序列,那么可以通过一些策略区分数据帧头和数据帧为,例如,数据帧头可以约定为8比特,即由8个波形序列组成,而数据帧尾由2个波形序列组成,以此作为两者的区别,由于静默态接收端口的电平一直为高电平,在接收端口检测到第一个下降沿跳变时,开始接收数据帧头,连续检测到8个预设的数据帧头对应的波形序列,则数据帧头接收结束,总之可以区分数据帧头和数据帧为即可,因此,本实施例对数据帧头和数据帧尾对应的波形序列并不做具体限制。
步骤S107,根据接收数据的Y个波形序列确定接收数据的比特序列;
根据预设的波形序列与比特的对应关系,可以在确定接收数据的Y个波形序列后,对应解析得到Y个波形序列对应的Y个比特,即接收数据的比特序列。例如,通信协议规定,以所述第一波形序列表示比特“1”,分别以所述第二波形序列和所述第三波形序列表示比特0。
其中,在确定接收数据的比特序列时,可以确定一个波形序列解析一个对应的比特,也可以在确定全部的Y个波形序列之后,再解析得到对应的Y个比特,前一种方式相较于后一种方式,解析得到比特序列的效率更高,但本实施例对此确定接收数据的比特序列的方式不做限定。
步骤S108,在接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,判断i是否等于N,如果否,则置i=i+1,返回步骤S103,即发送下一帧数据帧;如果是,则待发送数据的N个数据帧发送完毕;
在本实施例中,在发送完成第i个数据帧后,只有在收到对端返回的ACK响应报文,才能继续发送第i+1个数据帧,直至将待发送数据的全部数据帧发送完成。
本实施例中,只有当对端接收成功第i个数据帧才会向本端返回ACK响应报文,即接收数据的比特序列至少包括至少用于指示数据接收成功的标记位,在步骤S107中可以根据接收数据的Y个波形序列确定接收数据的比特序列,在确定的接收数据的比特序列中如果包含指示数据接收成功的标记位,则说明接收到报文为ACK响应报文,如果对端在预设的等待时间内没有接收到第i个数据帧或者接收到的第i个数据帧错误,则不会向本端返回ACK响应报文,因此,作为一种可选的实施方式,在接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,不执行判断i是否等于N,如果否,则置i=i+1的步骤,而是直接返回步骤S103,重传第i个数据帧,即重传第1个数据帧。本实施例中,无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率。
通过本实施例提供了一种以高低电平变化的波形序列表示比特序列的数据传输方法,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率,且编码效率更高,降低了发送端和接收端的成本及负担。而且,本实施例中,本端发送完成一帧数据帧后,在接收到对端返回的ACK报文(指示数据接收成功的数据)才继续发送下一帧数据帧,如果在预设的等待时间没有接收到ACK响应报文,则重发数据帧,本实施例无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
实施例2
本实施例提供了一种数据传输方法,图8是本实施例的一种可选的数据传输方法的流程图。本发明实施例的本端可以是主设备也可以是从设备。
如图8所示,该数据传输方法主要包括以下步骤(S201~S205):
步骤S201,本端检测接收端口的电平变化;
本实施例中,如实施例1中所述,对端通过控制发送端的发送端口产生高低电平的变化来形成一个数据帧的波形序列。因此,相应的,本端为了接收对端发送的数据,需要对接收端口的电平变化进行检测,以便根据电平变化进行波形序列的识别。具体地,作为一种可选的实施方式,检测接收端口的电平变化可以包括:对接收端口的电平进行连续采样,得到采样后的高低电平变化;或者,检测接收端口的电平跳变,该电平跳变可以为由高电平变为低电平的跳变,例如可以通过差分放大器对接收端口的电平进行检测比较,在检测到电平从高电平变低时差分放大器输出下降沿的跳变。
步骤S202,根据电平变化以及波形序列的特征确定连续传输的波形序列;
其中,所述波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,所述连续传输的波形序列中的各个波形序列分别包括以下之一:第一波形序列、第二波形序列和第三波形序列;其中,各个波形序列的特征可以参见实施例1中提到的波形序列的特征的描述。第一波形序列、第二波形序列和第三波形序列的具体描述也可以参见实施例1中的具体描述。
本步骤中,作为一种可选的实施方式,根据电平变化以及波形序列的特征确定连续传输的波形序列,包括:获取一个波形序列的预设持续时间;以预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定所述连续传输的波形序列。
本步骤中根据所述电平变化以及波形序列的特征确定连续传输的波形序列的具体实施方式以及如何获得一个波形序列的传输持续时间的具体实施方式均可以参见实施例1中步骤S106中的具体描述。
步骤S203,根据连续传输的波形序列确定接收数据帧的比特序列;
在确定连续传输的波形序列后,根据预设的波形序列与比特的对应关系对应解析得到接收数据帧的比特序列,例如,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个;具体地,例如,可以以所述第一波形序列表示比特“1”,分别以所述第二波形序列和所述第三波形序列表示比特0。
其中,在确定接收数据帧的比特序列时,可以确定一个波形序列解析一个对应的比特,也可以在确定接收数据帧的全部波形序列之后,再解析得到对应的比特序列,前一种方式相较于后一种方式,解析得到比特序列的效率更高,但本实施例对此确定接收数据帧的比特序列的方式不做限定。
步骤S204,在从连续传输的波形序列中识别出接收数据帧的数据帧尾对应的K个波形序列后,根据所述接收数据帧中传输数据的校验位对所述接收数据帧的比特序列进行校验,如果校验通过,则获取待发送数据的比特序列,其中,K为正整数,所述待发送数据的比特序列至少包括:待传输数据,所述待传输数据至少包括:至少用于指示所述待发送数据为数据接收成功响应报文的标记位;
在本实施例中,接收数据帧依次包括数据帧头、传输数据和数据帧尾,其中,数据帧头的具体描述以及确定方式可以参见实施例1的步骤S106中的描述。作为一种可选的实施方式,本实施例中,可以预先设置数据帧尾对应的波形序列,具体地,数据帧尾的第一个比特对应的波形序列为第二波形序列,数据帧尾的第二个比特对应的波形序列为第二波形序列,或者,数据帧尾的第一个比特对应的波形序列为第三波形序列,数据帧尾的第二个比特对应的波形序列为第二波形序列,或者,数据帧尾的第一个比特对应的波形序列为第一波形序列,数据帧尾的第二个比特对应的波形序列为第三波形序列。在本实施例中,当从所述连续传输的波形序列中识别出上述预设的数据帧尾对应的波形序列,则说明数据接收结束。
此外,实施例1中的图2示意出了数据帧的帧格式,其中,接收数据帧的传输数据中的最后两个字节Byten-1,Byten可以作为CRC冗余校验位,本步骤中,可以利用该CRC冗余校验位对接收数据帧的比特序列进行校验,在校验通过,则说明接收数据帧无误,接收数据帧成功后本地可以向对端返回ACK响应报文,即获取待发送数据的比特序列,向对端返回携带有至少用于指示所述待发送数据为数据接收成功响应报文的标记位的数据帧,以便对端在收到该ACK响应报文后,可以继续发送下一帧数据帧。
此外,如果CRC校验不通过,则说明数据接收错误,因此,在CRC校验不通过的情况下,则向对端返回NAK响应报文,指示数据接收不成功,以便对端即使重传接收不成功的数据;其中,向对端返回NAK响应报文的方式与向对端返回ACK响应报文的方式相同,只是在待发送数据中包含的指示信息为数据接收失败而不是数据接收成功,即,在从所述连续传输的波形序列中识别出接收数据帧的数据帧尾对应的K个波形序列后,如果根据所述接收数据帧中传输数据的校验位对所述接收数据帧的比特序列进行校验不通过,则获取待发送数据的比特序列,其中,待发送数据的比特序列至少包括:待传输数据,待传输数据至少包括:至少用于指示所述待发送数据为数据接收失败响应报文的标记位。
步骤S205,控制发送端口的电平按照所述待发送数据的比特序列中的比特对应的波形序列以及波形序列的特征进行变化,以发送待发送数据的比特序列;
其中,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,第一数据比特为比特1和比特0中的一个,第二数据比特为所述比特1和比特0中的另一个,在连续发送的至少两个比特为第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为第二波形序列,第二个比特以及后续的比特对应的波形序列为第三波形序列。
例如,通信协议约定:比特“1”用第一波形序列表示,则比特“0”用第二波形序列和第三波形序列表示,本实施例中,每个比特对应的波形序列是确定的,例如,本端通过控制发送端口产生高低电平,即,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变,波形序列是通过发送端口产生的高低电平的变化得到的,由此,就可以产生每个比特对应的波形序列,进而形成待发送数据的比特序列。例如,待发送数据的比特序列为11001000,那么按照通信协议约定,待发送数据的比特序列对应的8个波形序列依次为第一波形序列、第一波形序列、第二波形序列、第三波形序列、第一波形序列、第二波形序列、第三波形序列、第三波形序列,根据各个波形序列的上述波形序列的特征,即第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同且与传输上述波形序列的波特率呈反比,如均为T,那么,待发送数据的比特序列11001000对应的波形序列可以如图6A所示,在发送待发送数据中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成待发送数据的比特序列对应的波形序列,传输该待发送数据。
通过本实施例提供了一种以高低电平变化的波形序列表示比特序列的数据传输方法,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率。而且,本实施例中,如果本端成功接收完成对端发送的一帧数据帧后,会向对端返回ACK响应报文,如果接收数据错误,则会向对端返回NAK响应报文,以便对端及时重发本端接收失败数据帧,因此,本实施例中,数据帧的重发无需等到接收完对端发送的全部数据帧,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
实施例3
本实施例提供了一种终端,该终端可以应用于实施例1中的数据传输方法,即实施例1中的本端,该终端可以主设备也可以是从设备。如图9所示,该终端30包括:比特序列获取模块301、波形序列生成及发送模块302、电平检测模块303和数据确定模块304,其中:
比特序列获取模块301,用于获取待发送数据,该待发送数据包括N个数据帧;获取第i个数据帧的比特序列,其中,i的取值依次为1,2,3……N,N为正整数;
波形序列生成及发送模块302,用于根据第i个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的X个波形序列,其中,X为正整数,每个波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,第一波形序列、第二波形序列和第三波形序列均具有以下波形序列的特征:第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同,且第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,第二波形序列在传输持续时间内持续高电平,第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,第一预设时间与第二预设时间的时长不同,X个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列。在本实施例中,不同的波形序列的传输持续时间相同,即均以T来传输一个比特,相比与现有技术中需要用不同的时间间隔来传输一个比特值的方式,本实施例传输一个比特所需的时间更短,因此,编码效率更高,降低了发送端和接收端的成本及负担。此外,相比于现有技术仅以高低电平来表示比特0和比特1的方式,本实施例提供的波形序列,以第二波形序列和第三波形序列表示比特0或比特1中的一个,也就是说,在传输数据比特的波形序列中尽可能多的出现高电平,进而提高供电效率。
电平检测模块303,用于在波形序列生成及发送模块发送完成第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化;
数据确定模块304,用于根据电平变化以及波形序列的特征确定接收数据的Y个波形序列,其中,Y为正整数,Y个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列;根据接收数据的Y个波形序列确定接收数据的比特序列;并在接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,触发比特序列获取模块获取第i+1个数据帧的比特序列;
比特序列获取模块301,还用于在数据确定模块的触发下,获取第i+1个数据帧的比特序列;
波形序列生成及发送模块302,还用于根据第i+1个数据帧的比特序列,连续发送第i+1个数据帧的比特序列中的比特对应的Z个波形序列,直至将待发送数据的N个数据帧发送完成,其中,Z为正整数,Z个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列;
其中,波形序列生成及发送模块在发送待发送数据的N个数据帧时,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,第一数据比特为比特1和比特0中的一个,第二数据比特为比特1和比特0中的另一个;在连续发送的至少两个比特为第二数据比特时,连续发送的至少两个比特中的第一个比特对应的波形序列为第二波形序列,第二个比特以及后续的比特对应的波形序列为第三波形序列。
通过本实施例提供的终端,在传输数据比特时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率,且编码效率更高,降低了发送端和接收端的成本及负担。
本实施例中待发送数据包括N个数据帧,N为正整数,终端30发送第i个数据帧,i的取值依次为1,2,……,N,即,终端30发送完成第i个数据帧后,且在收到对端返回的数据接收成功的响应报文(ACK响应报文)后,继续发送下一个数据帧(即第i+1个数据帧),以此方式,终端30从第1个数据帧开始,在发送完成第1个数据帧后再发送第2个数据帧,如此连续发送N个数据帧,直至将待发送数据的N个数据帧全部发完,其中,每个数据帧都是一串比特序列,待发送数据是由多个数据帧的比特序列组成的比特序列,一个比特对应一个波形序列。
作为一种可选的实施方式,在本实施例中,一个数据帧的帧格式可以如图2所示,一个数据帧可以依次包括:数据帧头(Start of Frame,缩写SOF)、待传输数据/传输数据(Byte0,Byte1……Byten-1,Byten)和数据帧尾(End of Frame,缩写EOF),其中,数据帧头SOF为通信双方约定好的比特序列对应的波形序列,通过该数据帧头,接收端可以识别出当前开始接收一个数据帧,并能够确定接收数据帧中待传输数据的起始位置(或时刻),此外,数据帧头SOF还可以指示发送端传输数据的波特率,通过分析数据帧头接收端可以获取发送端传输数据的波特率,并采用该波特率解析接收数据;数据帧尾EOF也是通信双方约定好的波形序列,通过该数据帧尾,接收端识别数据接收结束,该数据帧为EOF的设置可以区分于正常的待传输数据以及数据帧头对应的波形序列,以便于识别出数据帧尾EOF。
作为一种可选的实施方式,待传输数据中的头一个字节即Byte0可以用来标识报文类型,例如,Byte0为8比特,定义如下:
Bit7 Bit[6:4] Bit[3:0]
Device_type Rev Packet_type
其中,Device_type代表该报文发起方设备类型,例如,1代表主设备,0代表从设备,便于后续分析工具可区分报文是主设备发出还是从设备发出。Rev为缺省数据,Packet_type代表报文类型,例如0001B表示ATR报文,ATR报文可以为参数获取报文,对端接收到该ATR报文,也要返回相应的ATR报文,并携带相应的参数;例如0010B表示ACK响应报文,即表示数据接收成功的响应报文,例如,0011B表示NAK报文,即表示设备未准备好(或数据接收失败)的响应报文,例如,在数据接收错误,或者数据丢包等情况下,接收端会向发送端返回NAK报文;例如,0100B表示PKT报文,即该报文就是正常的数据报文,由此,通过报文类型可以区分报文为指示信息还是正常的数据,对端在接收到相应类型的报文后,可以做出相应的响应。作为一种可选的实施方式,待传输数据中的最后两个字节Byten-1,Byten可以作为CRC冗余校验位,可以利用该校验位对接收数据帧的比特序列进行校验,以便检测或校验接收的数据是否出现错误。
其中,作为一种可选的实施方式,所述波形序列的特征还包括:波形序列的传输持续时间与传输所述波形序列的波特率呈反比关系,第一波形序列中出现的低电平在传输持续时间内所占的总时长不随传输波形序列的波特率的变化而变化;和/或,第三波形序列中出现的低电平在传输持续时间内所占的总时长不随传输波形序列的波特率的变化而变化。例如,第一波形序列以及第三波形序列中低电平的持续时长可以预设为一个固定时长,由于主从设备传输数据帧的波特率可以改变,这样低电平占传输持续时间的占空比就是变化的,而不是一个固定比例,例如,低电平的持续时间固定为10ns,当主设备以50Mbs的波特率,即传输持续时间为20ns进行波形序列的传输时,低电平的持续时间占传输持续时间的50%,即从设备的取电效率为50%;当主设备以25Mbs的波特率,即传输持续时间为40ns进行波形序列的传输时,低电平的持续时间占传输持续时间的25%,即从设备的取电效率为75%,由此可见,低电平的时长固定时,低电平在传输持续时间内所占的总时长与波特率没有线性关系,即不随传输波形序列的波特率的变化而变化,由此,可以根据实际情况选择波特率,使得主从设备的接口保持高电平的时间尽可能的长,从而进一步提高两线通信中的供电效率。
其中,作为一种可选的实施方式,第一波形序列中出现的低电平在传输持续时间内所占的总时长小于传输持续时间的二分之一;和/或,第三波形序列中出现的低电平在传输持续时间内所占的总时长小于传输持续时间的二分之一。由此,当波形序列中低电平出现的时长越短,便可以使得主从设备的接口保持高电平的时间尽可能的长,从而进一步提高两线通信中的供电效率。
在本实施例中,第一预设时间与传输持续时间可以有一定的比例关系,也可以是双方协商预设的固定时长,例如固定为10ns,第二预设时间与传输持续时间可以有一定的比例关系,也可以是双方协商预设的固定时长,例如固定为20ns,只要第一预设时间与第二预设时间的不同的,能够区分出第一波形序列和第三波形序列即可。作为一种可选的实施方式,第一预设时间T1和第二预设时间T2可以满足以下预设关系:T1=a×T,T2=b×T,其中,T为传输持续时间,a为预设的占空比系数,b为预设的占空比系数,0<a<1;0≤b<1;且a≠b。其中,作为一种可选的方式,b可以等于0,即T2等于0,第三波形序列以低电平起始,从而与以高电平起始的第一波形序列形成较大的区别,更有利于波形序列的发送和接收时的识别。
在本实施例中,第一波形序列和第三波形序列中可以出现一次下降沿电平跳变(或上升沿电平跳变)或多次下降沿电平跳变(或上升沿电平跳变),在本实施例中,由于在静默态主从设备之间的一个端口的电平持续为高电平,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变,作为一种可选的实施方式,第三波形序列在传输持续时间内仅出现一次由高电平变为低电平的跳变和一次由低电平变为高电平的电平跳变,并以高电平结束,当然,在b=0时,第三波形序列中仅出现一次由低电平变为高电平的跳变;第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。相比于一个波形序列中包括多次下降沿跳变或多次上升沿跳变的情况,一个波形序列中仅存在一次下降沿电平跳变(或上升沿电平跳变)可以减少控制端的操作复杂性,无需控制发送端口的电平进行多次跳变才能传输一个比特,提高数据重传的效率。
具体地,对本实施例中的3种波形序列的示例性说明可以参照实施例1中图3~图5的具体描述,此处不再赘述。
在本实施例中,作为一种可选的实施方式,波形序列生成及发送模块302通过以下方式根据第i个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的X个波形序列:波形序列生成及发送模块302,还用于控制发送端口的电平按照第i个数据帧的比特序列中的比特对应的X个波形序列及波形序列的特征进行变化,以发送第i个数据帧;作为一种可选的实施方式,波形序列生成及发送模块302通过以下方式根据第i+1个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的Z个波形序列:波形序列生成及发送模块302,还用于控制发送端口的电平按照第i+1个数据帧的比特序列中的比特对应的Z个波形序列及波形序列的特征进行变化,以发送第i+1个数据帧。
例如,通信协议约定:比特“1”用第一波形序列表示,则比特“0”用第二波形序列和第三波形序列表示,本实施例中,比特序列获取模块301可以先获取一个数据帧的比特序列,每个比特对应的波形序列是确定的,例如,波形序列生成及发送模块302通过控制发送端口产生高低电平,即,通过硬件开关或软件等控制该发送端口的高电平变为低电平作为一次下降沿的跳变,然后控制该发送端口恢复为高电平则形成一次上升沿的跳变。波形序列是通过发送端口产生的高低电平的变化得到的,由此,就可以产生每个比特对应的波形序列,进而形成一个数据帧对应的波形序列。例如,第i个数据帧的比特序列为11001000,那么按照通信协议约定,第i个数据帧的比特序列对应的8个波形序列依次为AABCABCC,其中,A为第一波形序列,B为第二波形序列,C为第三波形序列,根据各个波形序列的上述波形序列的特征,即第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同且与传输上述波形序列的波特率呈反比,如均为T,第一预设时间为T1,第二预设时间T2,那么,第i个数据帧的比特序列11001000对应的8个波形序列可以如图6A所示。在发送第i个数据帧中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成一个数据帧的比特序列对应的波形序列,传输该第i个数据帧。
本实施例中,如前文所述,终端30的波形序列生成及发送模块302是通过控制发送端口产生高低电平的变化来形成一个数据帧的波形序列的,因此,相应的,对端也是通过同样的方式发送数据的,终端30为了接收对端发送的数据,电平检测模块303需要对接收端口的电平变化进行检测,以便根据电平变化进行波形序列的识别。具体地,作为一种可选的实施方式,电平检测模块303可以通过以下方式检测接收端口的电平变化:对接收端口的电平进行连续采样,得到采样后的高低电平变化;或者,检测接收端口的电平跳变,例如该电平跳变可以为由高电平变为低电平的跳变。例如电平检测模块303可以采用差分放大器,差分放大器对接收端口的电平进行检测比较,在检测到电平从高电平变低时差分放大器输出下降沿的跳变。
在本实施例中,为了提高了数据重传的效率以及正确性,在发送完成第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化之前,作为一种可选的实施方式,电平检测模块303,还用于在预设时间内检测到接收端口的电平发生变化,则检测执行接收端口的电平变化的操作;如果在预设时间内没有检测到接收端口的电平发生变化,即说明没有收到对端返回的响应数据,则触发波形序列生成及发送模块302执行重传第i个数据帧的操作;波形序列生成及发送模块302,还用于在电平检测模块303的触发下,重新根据第i个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的X个波形序列。
本实施例中,终端30可以预先设置发送完一个数据帧后等待接收数据的等待时间,例如,可以为8T,T为传输持续时间,在该等待时间内如果接收到对端返回的数据,则说明对端接收到终端30发送的数据帧且接收成功,终端30在接收完对端返回的数据接收响应数据(ACK响应报文)后可以继续发送下一个数据帧;如果在该等待时间没有接收到对端返回的数据接收成功的响应数据,则重发该数据帧。本实施例中,终端30发送完成一帧数据帧后,在接收到对端返回的ACK报文(指示数据接收成功的数据)才继续发送下一帧数据帧,如果在预设的等待时间没有接收到ACK响应报文,则重发数据帧,本实施例无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
此外,作为一种可选的实施方式,本实施例中,电平检测模块303,还用于如果在预设时间内没有检测到接收端口的电平发生变化,在触发波形序列生成及发送模块302执行重传第i个数据帧的操作之前,判断重传的次数是否达到预设次数,如果达到,则结束流程,如果没有达到,则触发波形序列生成及发送模块302执行重传第i个数据帧的操作。例如,预设次数为5次,重传一次本地计数器加1,例如,在重传5次后,计数器计数值为5,当判决在预设时间内没有检测到接收端口的电平发生变化时,且判断计数器的计数值已达到5次,则结束流程。以便在保证重传的同时不会影响数据传输效率。
在本实施例中,作为一种可选的实施方式,数据确定模块304可以通过以下方式根据电平变化以及波形序列的特征确定接收数据的Y个波形序列:获取一个波形序列的预设持续时间;以该预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定接收数据的Y个波形序列。
根据前文提到的波形序列的特征,在获取到一个波形序列的预设持续时间的前提下,第一波形序列的起始高电平的第一预设时间以及第三波形序列的起始高电平的第二预设时间都是可以确定的,因此,确定一个波形序列的方式可以为:在一个波形序列的传输持续时间内,根据该波形序列的起始高电平的持续时长符合上述哪种波形序列的特征,来确定该波形序列为哪个波形序列,或者,也可以根据接收端口检测到的电平变化,如通过采样电平变化得到一个波形序列的波形,判断该波形符合上述哪种波形序列的特征,来确定该波形序列为哪个波形序列。例如,在一个波形序列的传输持续时间内,该波形序列的起始位置距离发生电平跳变(如下降沿的电平跳变)的时刻之间的间隔为第一预设时长,则该波形序列为第一波形序列,如果为第二预设时长,则该波形序列为第三波形序列,否则,为第二波形序列。在本实施例中,所述接收数据依次包括数据帧头、传输数据和数据帧尾,在检测到数据帧头对应的波形序列后,就可以确定数据帧中的传输数据对应的波形序列的起始位置,从该起始位置开始可以根据检测到的电平变化(如下降沿的电平跳变)符合上述哪种波形序列的特征来确定第一个波形序列,在持续一个波形序列的传输持续时间后,开始确定第二个波形序列,以此直至确定完接收数据中的传输数据和数据帧尾对应的波形序列。
其中,一个波形序列的预设持续时间可以是通信双方预先协商好的,通信双方采用该预先协商好的预设持续时间(即波特率的反比)进行数据传输,也可以是从数据帧头中解析得到的,相较于前者,后者可以更灵活选择波特率进行数据传输,对端可以视当前的传输环境以及对端支持的接收数据的速率选择双方支持的最高的波特率进行数据传输,本端只要解析数据帧头就可以获得当前的波特率,由此,可以采用通信双方支持的最大波特率进行数据传输,以达到高速的数据传输的效果。
具体地,关于数据帧头的具体描述、通过数据帧头解析计算得到一个波形序列的预设持续时间的具体方式以及数据帧尾的具体描述可以参见实施例1中步骤S106中的详细描述,此处不再赘述。
此外,作为一种可选的实施方式,本实施例中,数据确定模块304,还用于在接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,触发波形序列生成及发送模块302执行重传第i个数据帧的操作;波形序列生成及发送模块302,还用于在接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,重新根据第i个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的X个波形序列。本实施例中,终端30发送完成一帧数据帧后,在接收到对端返回的ACK报文(指示数据接收成功的数据)才继续发送下一帧数据帧,如果在预设的等待时间没有接收到ACK响应报文,则重发数据帧,本实施例无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
通过本实施例提供的终端,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率,且编码效率更高,降低了发送端和接收端的成本及负担。而且,本实施例中,本端(终端30)发送完成一帧数据帧后,在接收到对端返回的ACK报文(指示数据接收成功的数据)才继续发送下一帧数据帧,如果在预设的等待时间没有接收到ACK响应报文,则重发数据帧,本实施例无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
实施例4
本实施例提供了一种终端,该终端可以应用于实施例2中的数据传输方法,即实施例2中的本端,该终端可以主设备也可以是从设备。如图10所示,该终端40包括:电平检测模块401、波形序列确定模块402、数据确定模块403、比特序列获取模块404和发送模块405,其中:
电平检测模块401,用于检测接收端口的电平变化;
波形序列确定模块402,用于根据电平变化以及波形序列的特征确定连续传输的波形序列,其中,波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,波形序列的特征包括:第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同,且第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,第二波形序列在预设持续时间内持续高电平,第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,第一预设时间与第二预设时间的时长不同;连续传输的波形序列中的各个波形序列分别包括以下之一:第一波形序列、第二波形序列和第三波形序列;在本实施例中,不同的波形序列的传输持续时间相同,即均以T来传输一个比特,相比与现有技术中需要用不同的时间间隔来传输一个比特值的方式,本实施例传输一个比特所需的时间更短,因此,编码效率更高,降低了发送端和接收端的成本及负担。此外,相比于现有技术仅以高低电平来表示比特0和比特1的方式,本实施例提供的波形序列,以第二波形序列和第三波形序列表示比特0或比特1中的一个,也就是说,在传输数据比特的波形序列中尽可能多的出现高电平,进而提高供电效率。
数据确定模块403,用于根据连续传输的波形序列确定接收数据帧的比特序列,其中,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,第一数据比特为比特1和比特0中的一个,第二数据比特为比特1和比特0中的另一个;并在从连续传输的波形序列中识别出接收数据帧的数据帧尾对应的K个波形序列后,触发比特序列获取模块获取待发送数据的比特序列;
比特序列获取模块404,用于在数据确定模块从连续传输的波形序列中识别出接收数据帧的数据帧尾对应的K个波形序列后,根据接收数据帧中传输数据的校验位对接收数据帧的比特序列进行校验,如果校验通过,则获取待发送数据的比特序列,其中,K为正整数,待发送数据的比特序列至少包括:待传输数据,待传输数据至少包括:至少用于指示待发送数据为数据接收成功响应报文的标记位;
发送模块405,用于控制发送端口的电平按照待发送数据的比特序列中的比特对应的波形序列以及波形序列的特征进行变化,以发送待发送数据的比特序列,其中,在连续发送的至少两个比特为第二数据比特时,连续发送的至少两个比特中的第一个比特对应的波形序列为第二波形序列,第二个比特以及后续的比特对应的波形序列为第三波形序列。
通过本实施例提供的终端,在传输数据比特时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率,且编码效率更高,降低了发送端和接收端的成本及负担。
本实施例中,如实施例3中所述,终端30(对端)通过控制发送端口产生高低电平的变化来形成一个数据帧的波形序列。因此,相应的,终端40(本端)为了接收对端发送的数据,电平检测模块401需要对接收端口的电平变化进行检测,以便波形序列确定模块402根据电平变化进行波形序列的识别。具体地,作为一种可选的实施方式,电平检测模块401可以通过以下方式检测接收端口的电平变化:对接收端口的电平进行连续采样,得到采样后的高低电平变化;或者,检测接收端口的电平跳变,该电平跳变可以为由高电平变为低电平的跳变,例如,电平检测模块401可以采用差分放大器实现,差分放大器对接收端口的电平进行检测比较,在检测到电平从高电平变低时差分放大器输出下降沿的跳变。
作为一种可选的实施方式,波形序列确定模块402可以通过以下方式根据电平变化以及波形序列的特征确定连续传输的波形序列:波形序列确定模块402,用于获取一个波形序列的预设持续时间;以预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定所述连续传输的波形序列。
本实施例中波形序列确定模块402根据所述电平变化以及波形序列的特征确定连续传输的波形序列的具体实施方式以及如何获得一个波形序列的传输持续时间的具体实施方式均可以参见实施例3中数据确定模块304根据电平变化以及波形序列的特征确定接收数据的Y个波形序列的方式的具体描述。
数据确定模块403在确定连续传输的波形序列后,根据预设的波形序列与比特的对应关系对应解析得到接收数据帧的比特序列,例如,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个;具体地,例如,可以以所述第一波形序列表示比特“1”,分别以所述第二波形序列和所述第三波形序列表示比特0。
其中,在确定接收数据帧的比特序列时,可以确定一个波形序列解析一个对应的比特,也可以在确定接收数据帧的全部波形序列之后,再解析得到对应的比特序列,前一种方式相较于后一种方式,解析得到比特序列的效率更高,但本实施例对此确定接收数据帧的比特序列的方式不做限定。
在本实施例中,接收数据帧依次包括数据帧头、传输数据和数据帧尾,其中,数据帧头的具体描述以及确定方式可以参见实施例1的步骤S106中的描述。作为一种可选的实施方式,本实施例中,可以预先设置数据帧尾对应的波形序列,具体地,数据帧尾的第一个比特对应的波形序列为第二波形序列,数据帧尾的第二个比特对应的波形序列为第二波形序列,或者,数据帧尾的第一个比特对应的波形序列为第三波形序列,数据帧尾的第二个比特对应的波形序列为第二波形序列,或者,数据帧尾的第一个比特对应的波形序列为第一波形序列,数据帧尾的第二个比特对应的波形序列为第三波形序列。在本实施例中,当从所述连续传输的波形序列中识别出上述预设的数据帧尾对应的波形序列,则说明数据接收结束。
此外,实施例1中的图2示意出了数据帧的帧格式,其中,接收数据帧的传输数据中的最后两个字节Byten-1,Byten可以作为CRC冗余校验位,本实施例中,数据确定模块403可以利用该CRC冗余校验位对接收数据帧的比特序列进行校验,校验通过,则说明接收数据帧无误,接收数据帧成功后终端40可以向对端(终端30)返回ACK响应报文,即触发比特序列获取模块404获取待发送数据的比特序列,发送模块405向对端返回携带有至少用于指示所述待发送数据为数据接收成功响应报文的标记位的数据帧,以便对端在收到该ACK响应报文后,可以继续发送下一帧数据帧。
此外,如果CRC校验不通过,则说明数据接收错误,因此,在CRC校验不通过的情况下,则向对端返回NAK响应报文,指示数据接收不成功,以便对端即使重传接收不成功的数据,其中,向对端返回NAK响应报文的方式与向对端返回ACK响应报文的方式相同,只是在待发送数据中包含的指示信息为数据接收失败而不是数据接收成功,即,数据确定模块403在从所述连续传输的波形序列中识别出接收数据帧的数据帧尾对应的K个波形序列后,如果根据所述接收数据帧中传输数据的校验位对所述接收数据帧的比特序列进行校验不通过,则触发比特序列获取模块404获取待发送数据的比特序列,其中,待发送数据的比特序列至少包括:待传输数据,待传输数据至少包括:至少用于指示所述待发送数据为数据接收失败响应报文的标记位,发送模块405控制发送端口的电平按照所述待发送数据的比特序列中的比特对应的波形序列以及波形序列的特征进行变化,以发送待发送数据的比特序列。
在本实施例中,发送模块405,用于控制发送端口的电平按照待发送数据的比特序列中的比特对应的波形序列以及波形序列的特征进行变化,以发送待发送数据的比特序列。其中,以第一波形序列表示第一数据比特,分别以第二波形序列和第三波形序列表示第二数据比特,第一数据比特为比特1和比特0中的一个,第二数据比特为所述比特1和比特0中的另一个,在连续发送的至少两个比特为第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为第二波形序列,第二个比特以及后续的比特对应的波形序列为第三波形序列。
例如,通信协议约定:比特“1”用第一波形序列表示,则比特“0”用第二波形序列和第三波形序列表示,本实施例中,每个比特对应的波形序列是确定的,例如,发送模块405通过控制发送端口产生高低电平,即,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变,波形序列是通过发送端口产生的高低电平的变化得到的,由此,就可以产生每个比特对应的波形序列,进而形成待发送数据的比特序列。例如,待发送数据的比特序列为11001000,那么按照通信协议约定,待发送数据的比特序列对应的8个波形序列依次为第一波形序列、第一波形序列、第二波形序列、第三波形序列、第一波形序列、第二波形序列、第三波形序列、第三波形序列,根据各个波形序列的上述波形序列的特征,即第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同且与传输上述波形序列的波特率呈反比,如均为T,那么,待发送数据的比特序列11001000对应的波形序列可以如图6A所示,在发送待发送数据中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成待发送数据的比特序列对应的波形序列,传输该待发送数据。
通过本实施例提供的终端,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率。而且,本实施例中,如果本端(终端40)成功接收完成对端发送的一帧数据帧后,会向对端返回ACK响应报文,如果接收数据错误,则会向对端返回NAK响应报文,以便对端及时重发本端接收失败的数据帧,因此,本实施例中,数据帧的重发无需等到接收完对端发送的全部数据帧,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
实施例5
针对实施例1提供的数据传输方法,本实施例以本端为主设备为例,提供了一种可选的数据传输方法,图11是本实施例的一种数据传输方法的流程图。
如图11所示,该数据传输方法主要包括以下步骤(S301~S307):
步骤S301,主设备获取待发送数据,并将待发送数据的N个数据帧存入FIFO数据缓存器,其中,N为正整数;
其中,每个数据帧都是一串比特序列,待发送数据是由多个数据帧的比特序列组成的比特序列。一个数据帧的帧格式可以参见实施例1中步骤S101中的描述,此处不再赘述。
步骤S302,主设备发送当前数据帧;
其中,主设备当前发送的该数据帧为从FIFO数据缓存器中取出的数据帧,可以为N个数据帧中的第i个数据帧,i个取值范围为1,2,3……N。
本实施例中,在静默态,发送端口保持高电平,当开始发送数据时,可以控制发送端口的电平按照该第i个数据帧的比特序列对应的波形序列以及波形序列的特征进行变化,以发送第i个数据帧。具体地,主设备发送第i个数据帧的方式以及对波形序列的种类以及波形序列的特征均可以参见实施例1的步骤S104中的描述,此处不再赘述。由此,可以保证在发送数据的同时从设备可以达到较高的取电效率。
步骤S303,在发送完成当前数据帧后,开始计时,判断在预设时间内是否收到ACK响应报文,如果收到,则执行步骤S305,如果没有收到,则执行步骤S304;
在本实施例中,主设备只有在接收到从设备返回的ACK响应报文后,才会向从设备继续发送下一帧数据帧,由此提高数据传输的正确率,减少数据传输量。其中,主设备的时钟计时可以预设一个ACK等待时间,该预设的等待时间可以根据波特率以及本领域技术人员的经验进行设定,如果超过预设的等待时间,即使接收到从设备返回的ACK响应报文,主设备还是会认为从设备接收错误,执行步骤S304,进行重传。具体地,可以检测接收端口的电平变化,进而根据电平变化以及波形序列的特征确定波形序列,依据波形序列与比特的对应关系,确定接收数据的比特序列,从而确定该接收数据中是否包含有ACK响应报文的指示信息,具体方式可以参见实施例1中的步骤S104~S107中的描述,此处不再赘述。
步骤S304,判断是否超过重传次数,如果超过,结束流程,如果没有超过,则返回步骤S302;
步骤S305,判断FIFO数据缓存器是否为空,如果是,则数据发送流程结束,否则,执行步骤S306;
步骤S306,从FIFO数据缓存器中取出下一数据帧作为当前数据帧,判断当前数据帧是否为缓存区内的最后一个数据帧,如果是,则执行步骤S307;否则,直接转至步骤S301发送当前数据帧。
步骤S307,在该数据帧中包含指示当前数据帧为最后一帧的标识,然后返回步骤S301。
其中,在该数据帧中添加指示当前数据帧为最后一帧的标识的方式可以为:在数据帧的传输数据中包含至少1比特的用于指示当前数据帧为最后一帧的标识位。
实施例6
针对实施例2提供的数据传输方法,本实施例以本端为从设备为例,提供了一种可选的数据传输方法,图12是本实施例的一种数据传输方法的流程图。
如图12所示,该数据传输方法主要包括以下步骤(S401~S405):
步骤S401,开始接收数据,接收第i个数据帧;
在本实施例中,在静默态时,接收端口的电平持续为高电平,当检测到接收端口的电平发生下降沿的跳变时,则开始接收数据,该第一个下降沿的跳变为第i个数据帧中的第一个比特对应的波形序列,其中,i的取值依次为1,2,3,……N,N为正整数。一般来说,通信双方为了传输数据的方便,不会将数据帧头的前几个波形序列设置为第二波形序列,因为这样会增加接收端检测电平变化以及识别数据帧头的麻烦,因此,为了便利,至少会将数据帧头的第一个波形序列设置为第一波形序列或第三波形序列,这样在接收端口检测到的第一个下降沿跳变即为第一个比特对应的波形序列,便于接收端确定数据帧头。具体地,接收第i个数据帧,可以检测接收端口的电平变化,进而根据电平变化以及波形序列的特征确定波形序列,依据波形序列与比特的对应关系,确定接收数据的比特序列,具体方式可以参见实施例2中的步骤S201~S203中的描述,此处不再赘述。
步骤S402,利用数据帧中的校验位进行CRC冗余校验,如果校验通过,则执行步骤S404;否则执行步骤S403;
本实施例中,数据帧的帧结构可以参见实施例1中图2所示的帧结构,其中,数字帧的待传输数据中的最后两个字节Byten-1,Byten可以作为CRC冗余校验位,可以利用该校验位对接收数据帧的比特序列进行校验,以便检测或校验接收的数据是否出现错误。如果数据接收错误,则需要向主设备返回NAK响应报文,指示数据接收不成功。
步骤S403,向主设备返回NAK响应报文;
其中,向主设备返回NAK响应报文的方式与向主设备返回ACK响应报文的方式相同,只是在待发送数据中包含的指示信息为数据接收错误而不是数据接收成功,具体地,从设备可以控制发送端口的电平按照待发送数据(NAK响应报文)的比特序列中的比特对应的波形序列以及波形序列的特征进行变化,以发送所述待发送数据的比特序列;其中,待发送数据(NAK响应报文)的比特序列至少包括:待传输数据,所述待传输数据至少包括:至少用于指示待传输数据为数据接收失败响应报文的标记位,具体的发送数据的方式可以参见实施例2中的步骤S205中的描述,此处不再赘述。
步骤S404,将第i个数据帧放入FIFO数据缓冲器中,并向主设备返回ACK响应报文;
其中,向主设备返回ACK响应报文的方式与步骤S403返回NAK响应报文的方式相同,只是待传输数据至少包括:至少用于指示所述待发送数据为数据接收成功响应报文的标记位。
步骤S405,判断该第i个数据帧是否为最后一帧,如果是,则数据接收完成。
具体地,判断该第i个数据帧是否为最后一帧可以从该数据帧中是否包含至少1比特的用于指示当前数据帧为最后一帧的标识位,如果是,则说明当前的数据帧就是最后一帧。
至此,从设备接收完成主设备发送的N个数据帧。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

Claims (16)

1.一种数据传输方法,其特征在于,包括:
获取待发送数据,所述待发送数据包括N个数据帧;
获取第i个数据帧的比特序列,其中,i的取值依次为1,2,3……N,N为正整数;
根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列;其中,X为正整数,所述波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,所述波形序列的特征包括:所述第一波形序列、所述第二波形序列以及所述第三波形序列的传输持续时间相同,且所述第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,所述第二波形序列在所述传输持续时间内持续高电平,所述第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,所述第一预设时间与所述第二预设时间的时长不同,所述X个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;
在发送完成所述第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化;
根据所述电平变化以及所述波形序列的特征确定接收数据的Y个波形序列,其中,Y为正整数,所述Y个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;
根据所述接收数据的Y个波形序列确定所述接收数据的比特序列;
在所述接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,获取第i+1个数据帧的比特序列;根据所述第i+1个数据帧的比特序列,连续发送所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列,直至将所述待发送数据的所述N个数据帧发送完成,其中,Z为正整数,所述Z个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;
其中,在发送所述待发送数据的N个数据帧时,以所述第一波形序列表示第一数据比特,分别以所述第二波形序列或所述第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个;在连续发送的至少两个比特为所述第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为所述第二波形序列,第二个比特以及后续的比特对应的波形序列为所述第三波形序列。
2.根据权利要求1所述的方法,其特征在于,
在发送完成所述第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化之前,所述方法还包括:
在预设时间内在检测到所述接收端口的电平发生变化,则执行所述检测接收端口的电平变化的步骤;如果在预设时间内没有检测到所述接收端口的电平发生变化,则重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
3.根据权利要求1或2所述的方法,其特征在于,在所述根据所述接收数据的Y个波形序列确定所述接收数据的比特序列之后,所述方法还包括:
在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
4.根据权利要求1所述的方法,其特征在于,
所述根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列,包括:
控制发送端口的电平按照所述第i个数据帧的比特序列中的比特对应的X个波形序列以及所述波形序列的特征进行变化,以发送所述第i个数据帧;
所述根据所述第i+1个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的Z个波形序列,包括:
控制发送端口的电平按照所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列以及所述波形序列的特征进行变化,以发送所述第i+1个数据帧。
5.根据权利要求1所述的方法,其特征在于,
所述波形序列的特征还包括:
所述传输持续时间与传输所述波形序列的波特率呈反比关系;
所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化。
6.根据权利要求1所述的方法,其特征在于,
所述波形序列的特征还包括:
所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;
和/或
所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
7.根据权利要求1所述的方法,其特征在于,
T1=a×T,其中,T1为所述第一预设时间,T为所述传输持续时间,a为预设的占空比系数,0<a<1;
T2=b×T,其中,T2为所述第二预设时间,b为预设的占空比系数,0≤b<1;
且,a≠b。
8.根据权利要求1所述的方法,其特征在于,
所述波形序列的特征还包括:
所述第二预设时间等于0,且所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变,并以高电平结束;
所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
9.一种终端,其特征在于,包括:比特序列获取模块、波形序列生成及发送模块、电平检测模块和数据确定模块,其中:
所述比特序列获取模块,用于获取待发送数据,所述待发送数据包括N个数据帧;获取第i个数据帧的比特序列,其中,i的取值依次为1,2,3……N,N为正整数;
所述波形序列生成及发送模块,用于根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列,其中,X为正整数,所述波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,所述波形序列的特征包括:所述第一波形序列、所述第二波形序列以及所述第三波形序列的传输持续时间相同,且所述第一波形序列以高电平开始并持续第一预设时间后跳变为低电平,所述第二波形序列在所述传输持续时间内持续高电平,所述第三波形序列以高电平开始并持续第二预设时间后跳变为低电平,其中,所述第一预设时间与所述第二预设时间的时长不同,所述X个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;
所述电平检测模块,用于在所述波形序列生成及发送模块发送完成所述第i个数据帧的比特序列对应的X个波形序列后,检测接收端口的电平变化;
所述数据确定模块,用于根据所述电平变化以及所述波形序列的特征确定接收数据的Y个波形序列,其中,Y为正整数,所述Y个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;根据所述接收数据的Y个波形序列确定所述接收数据的比特序列;并在所述接收数据的比特序列至少包括至少用于指示数据接收成功的标记位的情况下,触发所述比特序列获取模块获取第i+1个数据帧的比特序列;
所述比特序列获取模块,还用于在所述数据确定模块的触发下,获取第i+1个数据帧的比特序列;
所述波形序列生成及发送模块,还用于根据所述第i+1个数据帧的比特序列,连续发送所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列,直至将所述待发送数据的所述N个数据帧发送完成,其中,Z为正整数,所述Z个波形序列中的各个波形序列分别为以下之一:所述第一波形序列、所述第二波形序列和所述第三波形序列;
其中,所述波形序列生成及发送模块在发送所述待发送数据的N个数据帧时,以所述第一波形序列表示第一数据比特,分别以所述第二波形序列或所述第三波形序列表示第二数据比特,所述第一数据比特为比特1和比特0中的一个,所述第二数据比特为所述比特1和比特0中的另一个;在连续发送的至少两个比特为所述第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为所述第二波形序列,第二个比特以及后续的比特对应的波形序列为所述第三波形序列。
10.根据权利要求9所述的终端,其特征在于,
所述电平检测模块,还用于在预设时间内检测到所述接收端口的电平发生变化,则检测执行所述接收端口的电平变化的操作;如果在预设时间内没有检测到所述接收端口的电平发生变化,则触发所述波形序列生成及发送模块重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列;
所述波形序列生成及发送模块,还用于在所述电平检测模块的触发下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
11.根据权利要求9或10所述的终端,其特征在于,
所述数据确定模块,还用于在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,触发所述波形序列生成及发送模块重新发送所述第i个数据帧的比特序列对应的X个波形序列;
所述波形序列生成及发送模块,还用于在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
12.根据权利要求9所述的终端,其特征在于,
所述波形序列生成及发送模块通过以下方式根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列:
所述波形序列生成及发送模块,还用于控制发送端口的电平按照所述第i个数据帧的比特序列中的比特对应的X个波形序列及所述波形序列的特征进行变化,以发送所述第i个数据帧;
所述波形序列生成及发送模块通过以下方式根据所述第i+1个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的Z个波形序列:
所述波形序列生成及发送模块,还用于控制发送端口的电平按照所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列及所述波形序列的特征进行变化,以发送所述第i+1个数据帧。
13.根据权利要求9所述的终端,其特征在于,
所述波形序列的特征还包括:
所述传输持续时间与传输所述波形序列的波特率呈反比关系;
所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长不随传输所述波形序列的波特率的变化而变化。
14.根据权利要求9所述的终端,其特征在于,
所述波形序列的特征还包括:
所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;
和/或
所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
15.根据权利要求9所述的终端,其特征在于,
T1=a×T,其中,T1为所述第一预设时间,T为所述传输持续时间,a为预设的占空比系数,0<a<1;
T2=b×T,其中,T2为所述第二预设时间,b为预设的占空比系数,0≤b<1;
且,a≠b。
16.根据权利要求9所述的终端,其特征在于,
所述波形序列的特征还包括:
所述第二预设时间等于0,且所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变,并以高电平结束;
所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
CN201611053521.9A 2016-11-24 2016-11-24 一种数据传输方法以及终端 Active CN107359965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611053521.9A CN107359965B (zh) 2016-11-24 2016-11-24 一种数据传输方法以及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611053521.9A CN107359965B (zh) 2016-11-24 2016-11-24 一种数据传输方法以及终端

Publications (2)

Publication Number Publication Date
CN107359965A CN107359965A (zh) 2017-11-17
CN107359965B true CN107359965B (zh) 2019-10-22

Family

ID=60272006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611053521.9A Active CN107359965B (zh) 2016-11-24 2016-11-24 一种数据传输方法以及终端

Country Status (1)

Country Link
CN (1) CN107359965B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101855878A (zh) * 2007-11-13 2010-10-06 Nxp股份有限公司 占空比调制传输
CN102333054A (zh) * 2011-09-26 2012-01-25 北京天地融科技有限公司 一种数据发送、接收方法及装置
CN103716270A (zh) * 2011-09-26 2014-04-09 天地融科技股份有限公司 一种数据发送、接收方法及装置
CN104796222A (zh) * 2014-11-21 2015-07-22 湖南先步信息股份有限公司 Can波特率自动匹配的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010147943A (ja) * 2008-12-19 2010-07-01 Sony Corp 情報処理装置、及び信号伝送方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101855878A (zh) * 2007-11-13 2010-10-06 Nxp股份有限公司 占空比调制传输
CN102333054A (zh) * 2011-09-26 2012-01-25 北京天地融科技有限公司 一种数据发送、接收方法及装置
CN103716270A (zh) * 2011-09-26 2014-04-09 天地融科技股份有限公司 一种数据发送、接收方法及装置
CN104796222A (zh) * 2014-11-21 2015-07-22 湖南先步信息股份有限公司 Can波特率自动匹配的方法

Also Published As

Publication number Publication date
CN107359965A (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
CN107346997B (zh) 一种数据传输方法以及终端
CN105493424B (zh) 一种Polar码的处理方法、系统及无线通信装置
Fang et al. Design and simulation of UART serial communication module based on VHDL
CN104518853B (zh) 一种数据重传的方法、接收端及系统
CN103684678A (zh) 一种用于uart的波特率自适应方法、装置及uart
CN101764730A (zh) 一种can总线数据传输方法
WO2018095179A1 (zh) 一种数据传输方法及终端
CN107241161A (zh) 一种数据传输方法及装置
CN110213020A (zh) 基于蓝牙外设的数据传输方法、终端、系统以及装置
CN103199954A (zh) 发送/接收系统和方法
CN107347001B (zh) 一种数据传输方法及终端
CN107241162A (zh) 一种数据传输方法及装置
EP1176541A2 (en) Card system, IC card and card reader/writer
CN101729237A (zh) 串行信号接收装置、串行发送系统、和串行发送方法
CN103534973B (zh) 一种减少传输控制层确认报文的方法、装置和系统
CN107359965B (zh) 一种数据传输方法以及终端
CN107359963A (zh) 一种数据传输方法及终端
CN101938779B (zh) 适用于非对称突发信道的自适应协议设计方法
CN104298630B (zh) 基于串行外设接口的通信方法、装置和设备
CN107404319B (zh) 数据接收方法和装置
CN107346998A (zh) 一种数据帧尾检测方法及数据传输装置
CN107359964B (zh) 数据发送方法和装置
CN106549728A (zh) 一种数据接收方法及装置
CN107346999B (zh) 一种数据帧尾检测方法及数据传输装置
US20110026544A1 (en) Signals communication apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant