CN107347001B - 一种数据传输方法及终端 - Google Patents
一种数据传输方法及终端 Download PDFInfo
- Publication number
- CN107347001B CN107347001B CN201611053484.1A CN201611053484A CN107347001B CN 107347001 B CN107347001 B CN 107347001B CN 201611053484 A CN201611053484 A CN 201611053484A CN 107347001 B CN107347001 B CN 107347001B
- Authority
- CN
- China
- Prior art keywords
- sequence
- bit
- data
- wave
- wave sequence
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information
- H04L1/1678—Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (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个数据帧。
可选的,所述波形序列的特征还包括:所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
可选的,所述波形序列的特征还包括:所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变;所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
本发明另一方面提供了一种终端,包括:比特序列获取模块、波形序列生成及发送模块、电平检测模块和数据确定模块,其中:所述比特序列获取模块,用于获取待发送数据,所述待发送数据包括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个数据帧。
可选的,所述波形序列的特征还包括:所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;和/或,所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
可选的,所述波形序列的特征还包括:所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变;所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
由上述本发明提供的技术方案可以看出,本发明提供了一种数据传输方法及终端,以高低电平变化的波形序列表示比特0和1,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率,且编码效率更高,降低了发送端和接收端的成本及负担。而且,本发明中,发送端发送完成一帧数据帧后,在接收到接收端返回的ACK报文(指示数据接收成功的数据)才继续发送下一帧数据帧,如果在预设的等待时间没有接收到ACK响应报文,则重发数据帧,本发明无需将待发送数据的全部数据帧发送完之后再进行数据重发,大大提高了数据重传的效率和正确率,相较于现有技术中全部重传的方式,减少了数据传输量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例1提供的数据传输方法的流程图;
图2为本发明实施例1提供的数据帧的帧格式的示意图;
图3为本发明实施例1提供的第一波形序列的示意图;
图4为本发明实施例1提供的第二波形序列的示意图;
图5为本发明实施例1提供的第三波形序列的示意图图;
图6为本发明实施例1提供的第i个数据帧的比特序列11001000对应的8个波形序列的示意图;
图7A为本发明实施例1提供的第i个数据帧的数据帧头为AAAABABA的示意图;
图7B为本发明实施例1提供的第i个数据帧的数据帧头为CACABABA的示意图;
图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。作为一种可选的实施方式,第一预设时间T1可以满足以下预设关系:T1=a*T,其中,T为传输持续时间,a为预设的占空比系数,0<a<1。本实施例中,预设第一波形序列的起始高电平的持续时间T1便于在通过数据帧头计算一个波形序列的传输持续时间T的情况下,利用T1计算出T。
在本实施例中,第一波形序列和第三波形序列中可以出现一次下降沿电平跳变(或上升沿电平跳变)或多次下降沿电平跳变(或上升沿电平跳变),在本实施例中,由于在静默态主从设备之间的一个端口的电平持续为高电平,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变,作为一种可选的实施方式,第三波形序列在传输持续时间内仅出现一次由低电平变为高电平的跳变,并以高电平结束;第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。相比于一个波形序列中包括多次下降沿跳变或多次上升沿跳变的情况,一个波形序列中仅存在一次下降沿电平跳变(或上升沿电平跳变)可以减少控制端的操作复杂性,无需控制发送端口的电平进行多次跳变才能传输一个比特,提高数据传输的效率。
下面对本实施例中的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)所示,波特率为50Mbps,则第三波形序列的传输持续时间为20ns,假设低电平的持续时间固定为10ns,那么,低电平的持续时长占第三波形序列的传输持续时间的1/2,这时候从设备的取电效率为50%。又例如,如图5(b)所示,波特率为25Mbps,则第三波形序列的传输持续时间为40ns,假设低电平的持续时间仍然固定为10ns,那么,低电平的持续时长占第三波形序列的传输持续时间的1/4,此时从设备的取电效率为75%,当低电平的时长固定,随着波特率的降低,传输持续时间变长,取电效率提高,由此可见,低电平在所述传输持续时间内所占的总时长不随所述波形序列的波特率的变化而变化可以提高取电效率。因此,图5(b)中的第三波形序列传输数据供电效率要比图5(a)中的高。此外,图5(b)中第三波形序列中出现的低电平在传输持续时间内所占的总时长可以小于传输持续时间的二分之一还可以进一步提高供电效率。
在本步骤中,作为一种可选的实施方式,根据第i个数据帧的比特序列,连续发送第i个数据帧的比特序列中的比特对应的X个波形序列可以包括:控制发送端口的电平按照第i个数据帧的比特序列中的比特对应的X个波形序列以及波形序列的特征进行变化,以发送第i个数据帧。例如,通信协议约定:比特“1”用第一波形序列表示,则比特“0”用第二波形序列和第三波形序列表示,本实施例中,可以先获取一个数据帧的比特序列,每个比特对应的波形序列是确定的,例如,本端通过控制发送端口产生高低电平,即,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变。波形序列是通过发送端口产生的高低电平的变化得到的,由此,就可以产生每个比特对应的波形序列,进而形成一个数据帧对应的波形序列。例如,第i个数据帧的比特序列为11001000,那么按照通信协议约定,第i个数据帧的比特序列对应的8个波形序列依次为AABCABCC,其中,A为第一波形序列,B为第二波形序列,C为第三波形序列,根据各个波形序列的上述波形序列的特征,即第一波形序列、第二波形序列以及第三波形序列的传输持续时间相同且与传输上述波形序列的波特率呈反比,如均为T,第一波形序列的高电平的第一预设时间为T1,第一波形序列与第三波形序列中的低电平的固定时长均为T2,第i个数据帧的比特序列11001000对应的8个波形序列可以如图6所示。在发送第i个数据帧中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成一个数据帧的比特序列对应的波形序列,传输该第i个数据帧。
步骤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,而单频干扰的频率恰好与波特率相同,即本端通过电平变化识别出与该数据帧头相同的波形序列,此时,本端会将该单频干扰识别为数据帧头,出现错误识别的情况,而通过第三种实施方式中的数据帧头中在连续相同的多个波形序列之后出现的不同的波形序列,使得数据帧头存在不同的时间间隔,即不会出现与单频干扰相同的波形序列,由此采用该实施方式中的数据帧头可以防单频干扰。
在本实施例中,可以通过对上述第二种和第三种实施方式中提到的数据帧头进行解析得到一个波形序列的预设持续时间,以该预设持续时间作为每个波形序列的传输持续时间,根据电平变化以及波形序列特征确定接收数据中的传输数据以及数据帧为对应的波形序列。作为一种可选的实施方式,确定预设持续时间的方式可以通过以下方式实现:根据数据帧头对应的波形序列中的任意2个相同跳变之间的时间间隔计算得到一个波形序列的预设持续时间,其中,相同跳变指任意2个跳变均为从高电平跳变为低电平;预设的数据帧头对应的N个波形序列中的各个波形序列分别为以下之一:第一波形序列、第二波形序列和第三波形序列。以数据帧头为AAAABABA为例,如图7A所示,以A的第一预设时间T1=1/4T,其中,T为预设持续时间,可以根据8个波形序列中的任意两个下降沿跳变计算一个波形序列的预设持续时间,例如,第1个下降沿电平跳变和第2个下降沿跳变的时刻之间的时间间隔t1就是一个波形序列的预设持续时间T,又例如,第1个下降沿电平跳变和第5个下降沿电平跳变的时间间隔t2为3/4T+4T+1/4T,即t2=5T,由此可以推算出一个波形序列的预设持续时间T的时长。在举一例,以数据帧头为CACABABA为例,如图7B所示,以A的第一预设时间T1=1/4T,其中,T为预设持续时间,可以根据8个波形序列中的任意两个下降沿跳变计算一个波形序列的预设持续时间,例如,第1个下降沿电平跳变和第2个下降沿电平跳变的时刻之间的时间间隔t1为T+1/4T,即第三波形序列C的一个传输持续时间加A的初始高电平的持续时间T1,即t1=5/4T,由此可以计算得到一个波形序列的预设持续时间T,又例如,第1个下降沿电平跳变和第5个下降沿电平跳变的时间间隔t2为3/4T+4T+1/4T,即t2=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对应的波形序列可以如图6所示,在发送待发送数据中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成待发送数据的比特序列对应的波形序列,传输该待发送数据。
通过本实施例提供了一种以高低电平变化的波形序列表示比特序列的数据传输方法,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率。而且,本实施例中,如果本端成功接收完成对端发送的一帧数据帧后,会向对端返回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。作为一种可选的实施方式,第一预设时间T1可以满足以下预设关系:T1=a*T,其中,T为传输持续时间,a为预设的占空比系数,0<a<1。本实施例中,预设第一波形序列的起始高电平的持续时间T1便于在通过数据帧头计算一个波形序列的传输持续时间T的情况下,利用T1计算出T。
在本实施例中,第一波形序列和第三波形序列中可以出现一次下降沿电平跳变(或上升沿电平跳变)或多次下降沿电平跳变(或上升沿电平跳变),在本实施例中,由于在静默态主从设备之间的一个端口的电平持续为高电平,通过硬件开关或软件等控制该端口的高电平变为低电平作为一次下降沿的跳变,然后控制该端口恢复为高电平则形成一次上升沿的跳变,作为一种可选的实施方式,第三波形序列在传输持续时间内仅出现一次由低电平变为高电平的电平跳变,并以高电平结束;第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,第一波形序列以高电平开始并在传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。相比于一个波形序列中包括多次下降沿跳变或多次上升沿跳变的情况,一个波形序列中仅存在一次下降沿电平跳变(或上升沿电平跳变)可以减少控制端的操作复杂性,无需控制发送端口的电平进行多次跳变才能传输一个比特,提高数据传输的效率。
具体地,对本实施例中的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个波形序列可以如图6所示。在发送第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,用于根据电平变化以及波形序列的特征确定连续传输的波形序列,其中,波形序列包括以下之一:第一波形序列、第二波形序列和第三波形序列,其中,各个波形序列的特征可以参见实施例1中提到的波形序列的特征的描述。第一波形序列、第二波形序列和第三波形序列的具体描述也可以参见实施例3中的具体描述。在本实施例中,不同的波形序列的传输持续时间相同,即均以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对应的波形序列可以如图6所示,在发送待发送数据中的每个比特时,在相应时刻控制发送端口的电平发生跳变,以形成该比特对应的波形序列,进而形成待发送数据的比特序列对应的波形序列,传输该待发送数据。
通过本实施例提供的终端,在通信的同时也能实现为从设备供电的效果,进一步地,在传输数据时使波形序列中高电平所占的时长尽可能长,从而保证从设备能达到较高的取电效率。而且,本实施例中,如果本端(终端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中的步骤S105~S108中的描述,此处不再赘述。
步骤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 (12)
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+1个数据帧的比特序列中的比特对应的Z个波形序列,包括:
控制发送端口的电平按照所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列以及所述波形序列的特征进行变化,以发送所述第i+1个数据帧。
5.根据权利要求1所述的方法,其特征在于,
所述波形序列的特征还包括:
所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;
和/或
所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
6.根据权利要求1所述的方法,其特征在于,
所述波形序列的特征还包括:
所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变;
所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
7.一种终端,其特征在于,包括:比特序列获取模块、波形序列生成及发送模块、电平检测模块和数据确定模块,其中:
所述比特序列获取模块,用于获取待发送数据,所述待发送数据包括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中的另一个;在连续发送的至少两个比特为所述第二数据比特时,所述连续发送的至少两个比特中的第一个比特对应的波形序列为所述第二波形序列,第二个比特以及后续的比特对应的波形序列为所述第三波形序列。
8.根据权利要求7所述的终端,其特征在于,
所述电平检测模块,还用于在预设时间内检测到所述接收端口的电平发生变化,则检测执行所述接收端口的电平变化的操作;如果在预设时间内没有检测到所述接收端口的电平发生变化,则触发所述波形序列生成及发送模块重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列;
所述波形序列生成及发送模块,还用于在所述检测模块的触发下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
9.根据权利要求7或8所述的终端,其特征在于,
所述数据确定模块,还用于在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,触发所述波形序列生成及发送模块重新发送所述第i个数据帧的比特序列对应的X个波形序列;
所述波形序列生成及发送模块,还用于在所述接收数据的比特序列没有包括至少用于指示数据接收成功的标记位的情况下,重新根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列。
10.根据权利要求7所述的终端,其特征在于,
所述波形序列生成及发送模块通过以下方式根据所述第i个数据帧的比特序列,连续发送所述第i个数据帧的比特序列中的比特对应的X个波形序列:
所述波形序列生成及发送模块,还用于控制发送端口的电平按照所述第i个数据帧的比特序列中的比特对应的X个波形序列及所述波形序列的特征进行变化,以发送所述第i个数据帧;
所述波形序列生成及发送模块通过以下方式根据所述第i+1个数据帧的比特序列,连续发送所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列:
所述波形序列生成及发送模块,还用于控制发送端口的电平按照所述第i+1个数据帧的比特序列中的比特对应的Z个波形序列及所述波形序列的特征进行变化,以发送所述第i+1个数据帧。
11.根据权利要求7所述的终端,其特征在于,
所述波形序列的特征还包括:
所述第一波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一;
和/或
所述第三波形序列中出现的低电平在所述传输持续时间内所占的总时长小于所述传输持续时间的二分之一。
12.根据权利要求7所述的终端,其特征在于,
所述波形序列的特征还包括:
所述第三波形序列在所述传输持续时间内仅出现一次由低电平变为高电平的电平跳变;
所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以低电平结束;或者,所述第一波形序列以高电平开始并在所述传输持续时间内仅出现一次由高电平变为低电平的电平跳变,并以高电平结束。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611053484.1A CN107347001B (zh) | 2016-11-24 | 2016-11-24 | 一种数据传输方法及终端 |
US16/463,819 US10608778B2 (en) | 2016-11-24 | 2017-10-25 | Data transmission method and terminal |
EP17874568.3A EP3547577B1 (en) | 2016-11-24 | 2017-10-25 | Data transmission method and terminal |
PCT/CN2017/107597 WO2018095179A1 (zh) | 2016-11-24 | 2017-10-25 | 一种数据传输方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611053484.1A CN107347001B (zh) | 2016-11-24 | 2016-11-24 | 一种数据传输方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107347001A CN107347001A (zh) | 2017-11-14 |
CN107347001B true CN107347001B (zh) | 2019-10-22 |
Family
ID=60253796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611053484.1A Active CN107347001B (zh) | 2016-11-24 | 2016-11-24 | 一种数据传输方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107347001B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113395327B (zh) * | 2021-05-24 | 2023-07-04 | 深圳市元征科技股份有限公司 | 数据处理方法、装置、电子设备及介质 |
Citations (4)
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波特率自动匹配的方法 |
-
2016
- 2016-11-24 CN CN201611053484.1A patent/CN107347001B/zh active Active
Patent Citations (4)
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 |
---|---|
CN107347001A (zh) | 2017-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107346997B (zh) | 一种数据传输方法以及终端 | |
Fang et al. | Design and simulation of UART serial communication module based on VHDL | |
CN201682620U (zh) | 被配置成传送传输时间间隔绑定的无线发射接收单元 | |
WO2018095179A1 (zh) | 一种数据传输方法及终端 | |
CN107241161B (zh) | 一种数据传输方法及装置 | |
CN103199954A (zh) | 发送/接收***和方法 | |
CN106549748A (zh) | 一种数据传输方法及数据处理设备 | |
CN110943810A (zh) | 面向深空通信的可变滑动窗口长度的回退n帧自动重传方法及*** | |
CN1224942C (zh) | 卡***及其中所用的集成电路卡和卡读写器 | |
CN107347001B (zh) | 一种数据传输方法及终端 | |
CN106105043B (zh) | 用于使用具有n阶乘或cci扩展的纠错码的方法 | |
CN107241162B (zh) | 一种数据传输方法及装置 | |
CN107359965B (zh) | 一种数据传输方法以及终端 | |
CN107359963A (zh) | 一种数据传输方法及终端 | |
CN101938779B (zh) | 适用于非对称突发信道的自适应协议设计方法 | |
CN107404319B (zh) | 数据接收方法和装置 | |
CN104298630B (zh) | 基于串行外设接口的通信方法、装置和设备 | |
CN107359964B (zh) | 数据发送方法和装置 | |
US8416717B2 (en) | Signals communication apparatus | |
CN107346998B (zh) | 一种数据帧尾检测方法及数据传输装置 | |
CN107346999B (zh) | 一种数据帧尾检测方法及数据传输装置 | |
CN106549728A (zh) | 一种数据接收方法及装置 | |
CN107359962B (zh) | 数据接收方法和装置 | |
CN107888326A (zh) | 数据传输方法和装置 | |
WO2018095180A1 (zh) | 数据发送方法、数据接收方法和装置 |
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 |