掌桥专利:专业的专利平台
掌桥专利
首页

曼彻斯特解码方法及系统

文献发布时间:2024-04-18 19:58:53


曼彻斯特解码方法及系统

技术领域

本申请涉及通信技术领域,特别是涉及一种曼彻斯特解码方法及系统。

背景技术

曼彻斯特编码方式如图2所示,编码01表示数据0,编码10表示数据1;编码11表示数据帧起始,编码00表示数据帧结束。发送端在未发送原始数据,即空闲时一直发送数据0,即编码为01010101…序列,通知接收方建立连接。

编码数据中可能会出现两种跳变沿,其中由曼彻斯特编码导致相位跳变的称为时钟沿,例如图2中的t1时段,数据“0”的编码01中,从0跳变到1这个沿;由数据之间导致相位跳变的称为数据沿,例如图2中的t2时段,连续2比特数据“0b00”的曼彻斯特编码“0101”中,由1跳变到0这个沿,由于在进行解码时,只需要对采样数据时钟沿对应的编码数据进行解码,通过对编码数据进行采样,采到采样数据的跳变沿中除时钟沿外还可能包括数据沿,以及因信号干扰而产生的毛刺,因此受数据沿和毛刺的影响会导致解码效率降低。

发明内容

本申请提供一种具备高解码效率的曼彻斯特解码方法及系统。

一种曼彻斯特解码方法,所述方法包括:

在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位;

从所述边沿相位中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位;所述目标采样周期为处于帧传输状态的所述采样周期;所述预测相位集为预测的与时钟沿对应的相位;

对在所述目标相位下的编码数据进行解码,得到各所述目标采样周期的解码数据。

在一个实施例中,所述确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位,包括:

确定各所述采样周期内与所述预测相位集相匹配的边沿相位,得到编码相位;

获取所述目标采样周期内的所述编码相位,得到所述目标相位。

在一个实施例中,所述确定各所述采样周期内与预测相位集相匹配的边沿相位,得到编码相位,包括:

在各所述采样周期内,获取在当前采样周期内得到的所述边沿相位,得到当前边沿相位;

将所述当前边沿相位与所述预测相位集进行比对,获取当前比对结果;

获取上一比对结果;其中所述上一比对结果为在上一采样周期中,上一边沿相位与所述预测相位集的比对结果;其中,所述上一边沿相位为所述上一采样周期中得到的所述边沿相位;

若当前比对结果为所述预测相位集包括一个或两个所述当前边沿相位,且所述上一比对结果为所述预测相位集内包括所述上一边沿相位,则以所述预测相位集内的所述当前边沿相位作为所述当前采样周期的所述编码相位。

在一个实施例中,所述确定各所述采样周期内与预测相位集相匹配的边沿相位,得到编码相位,还包括:

若所述当前比对结果为所述预测相位集包括一个所述当前边沿相位,所述上一比对结果为所述预测相位集内未包括所述上一边沿相位,且所述当前采样周期处于非帧结束传输状态,则以所述预测相位集内的所述当前边沿相位作为所述当前采样周期的所述编码相位。

在一个实施例中,所述方法还包括:

获取截止至所述当前采样周期采集的所述采样数据连续为0的子数据的第一数量;

若所述第一数量未超过第一数量阈值,则所述当前采样周期处于所述非帧结束传输状态。

在一个实施例中,所述方法还包括:

获取截止至各所述采样周期采集的所述采样数据连续为1的子数据的第二数量,若所述第二数量超过第二数量阈值,则记录所述采样周期下参考状态为所述帧传输状态;

获取各所述采样周期中,所述参考状态为所述帧传输状态,且不处于帧结束状态下的所述采样周期,得到所述目标采样周期。

在一个实施例中,所述方法还包括:

在各所述采样周期中,若所述当前比对结果为所述预测相位集包括三个以上的所述当前边沿相位,或若所述当前比对结果为所述预测相位集不包括所述当前边沿相位且所述上一比对结果为所述预测相位集不包括所述上一边沿相位,或若所述当前采样周期处于所述帧结束状态,则重置所述参考状态。

在一个实施例中,当所述编码相位的数量为一个时,所述方法还包括:

若所述当前采样周期处于所述非帧结束传输状态,则获取与所述当前采样周期的所述编码相位的相位差在预设阈值内的所述相位,得到第一相位集;

将所述预测相位集更新为所述第一相位集。

在一个实施例中,所述方法还包括:

在各所述采样周期中,若所述当前比对结果为所述预测相位集包括三个以上的所述当前边沿相位,则清空所述预测相位集。

在一个实施例中,当所述编码相位的数量为两个时,所述方法还包括:

若所述当前采样周期处于所述非帧结束传输状态,则获取所述当前采样周期的两个所述编码相位中相位落后的一者,得到基准相位;

获取与所述基准相位的相位差在预设阈值内的所述相位,得到第二相位集;

将所述预测相位集更新为所述第二相位集。

在一个实施例中,所述方法还包括:

在各所述采样周期中,若所述当前比对结果为所述预测相位集不包括所述当前边沿相位,且所述上一比对结果为所述预测相位集不包括所述上一边沿相位,则清空所述预测相位集。

在一个实施例中,所述预测相位集的获取方式,包括:

获取第一个所述采样数据的第一个上升沿的所述相位,得到初始相位;

将与所述初始相位的相位差在预设阈值内的所述相位作为所述预测相位集。

一种曼彻斯特解码系统,所述系统包括:

边沿检测模块,用于在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位;

解码模块,与所述边沿检测模块连接,用于:

从所述边沿相位中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位;所述目标采样周期为处于帧传输状态的所述采样周期;所述预测相位集为预测的与时钟沿对应的相位;

对在所述目标相位下的编码数据进行解码,得到各所述目标采样周期的解码数据。

通过在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位,然后从边沿相位中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位,最终对在目标相位下的编码数据进行解码,得到各目标采样周期的解码数据,如此仅需对成为时钟沿相位可能性比较高的相位,即预测相位集内的相位进行判断,利用预测相位集对得到的边沿相位进行过滤,滤除在预测相位集之外的毛刺和数据沿对应的边沿相位,直接将落入预测相位集中的边沿相位判定为对应时钟沿的相位,从而无需对所有边沿相位逐个进行判断,可快速确定与时钟沿对应的目标相位,从而提高解码效率。

附图说明

图1为本申请一实施例的曼彻斯特解码方法的流程示意图;

图2为本申请一实施例的时钟信号对编码数据采样的示意图;

图3为本申请另一实施例的时钟信号对编码数据采样的示意图;

图4为本申请另一实施例的时钟信号对编码数据采样的示意图;

图5为本申请一实施例的曼彻斯特解码系统的结构框图;

图6为本申请一实施例的曼彻斯特解码方法的流程示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

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

需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。

另外,在本申请中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

图1为一实施例的曼彻斯特解码方法的流程示意图,如图1所示,该方法包括步骤S110至步骤S130。

步骤S110,在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位。

其中,采样数据可由时钟信号对编码数据进行采样得到。具体的,可采用一个时钟信号在各采样周期内进行采样,其中该时钟信号的多个时钟周期均匀分布在各采样周期内,每一时钟周期会采集得到一个编码数据,从而在每个采样周期会采到多个编码数据,最终构成一个采样数据。参考图2所示,以一个采样周期包括时钟信号S的8个时钟周期为例,每个采样周期会采集到8个编码数据,作为一个采样数据。

采样数据由数据0和1组成,当采样数据中出现相邻两个子数据不同的情况时,表明此时的编码数据出现跳变,可依据相邻两个子数据的异同性确定采样数据是否出现跳变沿,并得到跳变沿对应的相位,作为边沿相位。其中,采样数据中跳变沿对应的相位可为跳变沿对应的编码数据在采样数据中的相位,采样数据中的各编码数据按照被采集到的时间顺序排列,编码数据的相位可为编码数据在采样数据中按照采样顺序排序时的排位,例如起始被采到的编码数据为第一排位,其次为第二排位,以此类推;其中相位可表示为在采样数据中用于索引该编码数据的标识,该标识包括用于表征各编码数据排列顺序的序号,举例而言,以时钟信号S采到的采样数据包括8位编码数据为例,各编码数据的标识可为s0、s1、s2、s3、s4、s5、s6和s7,因此可以以该标识作为采样数据中各编码数据的相位。此外,采样数据中在先采集得到的子数据为在前子数据,反之为在后子数据,当采样数据出现跳变沿时,相邻两个子数据中在后子数据为跳变沿对应的编码数据。

步骤S120,从边沿相位中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位;目标采样周期为处于帧传输状态的采样周期;预测相位集为预测的与时钟沿对应的相位。

可以理解,在采样过程中,各采样周期所处的状态包括帧结束状态和非帧结束状态,其中非帧结束状态包括帧传输状态和在帧传输状态之前的空闲状态,帧传输状态包括正在传输数据帧时的状态,以及采样到帧起始标志,开始传输数据帧时的状态;空闲状态为空闲时一直传输数据0时的状态;只有在帧传输状态下解码得到的数据才是有效的,因此可确定处于帧传输状态的目标采样周期,然后以在该目标采样周期中与预测相位集相匹配的边沿相位作为目标相位;其中预测相位集为预测的与编码数据时钟沿对应的相位,可根据编码数据的特点人为预设得到,也可根据采集到的历史编码数据得到;通过将边沿相位与对应的预测相位集进行匹配,匹配成功的边沿相位则可作为与时钟沿对应的目标相位。通过设置预测相位集,并将目标采样周期内的边沿相位与预测相位集进行匹配,可过滤边沿相位中可能与毛刺或者数据沿对应的边沿相位,从而获取到与时钟沿对应的边沿相位,如此提高了解码效率,且增强了抗干扰能力。

步骤S130,对在目标相位下的编码数据进行解码,得到各目标采样周期的解码数据。

其中,各目标相位为编码数据时钟沿对应的边沿相位,基于曼彻斯特编码方式,在一种实施方式中,可将目标相位下的编码数据进行取反(例如编码数据为1,取反后则为0;编码数据为0,取反后则为1),从而得到解码数据。

上述通过在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位,然后从边沿相位中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位,最终对在目标相位下的编码数据进行解码,得到各目标采样周期的解码数据,如此仅需对成为时钟沿相位可能性比较高的相位,即预测相位集内的相位进行判断,利用预测相位集对得到的边沿相位进行过滤,滤除在预测相位集之外的毛刺和数据沿对应的边沿相位,直接将落入预测相位集中的边沿相位判定为对应时钟沿的相位,从而无需对所有边沿相位逐个进行判断,可快速确定与时钟沿对应的目标相位,从而提高解码效率。

在一个实施例中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位,包括:确定各采样周期内与预测相位集相匹配的边沿相位,得到编码相位;获取目标采样周期内的编码相位,得到目标相位。

可以理解,要确定目标采样周期内与预测相位集相匹配的边沿相位,可先确定各采样周期内与预测相位集相匹配的边沿相位,得到编码相位,由于编码相位可能包括空闲状态和帧结束传输状态下与预测相位集相匹配的边沿相位,而空闲状态和帧结束传输状态下不需要对数据进行解码,因此在获得编码相位后,可进一步获取目标采样周期内的编码相位,从而得到目标相位。

在一个实施例中,确定各采样周期内与预测相位集相匹配的边沿相位,得到编码相位,包括:在各采样周期内,获取在当前采样周期内得到的边沿相位,得到当前边沿相位;将当前边沿相位与预测相位集进行比对,获取当前比对结果;获取上一比对结果;其中上一比对结果为在上一采样周期中,上一边沿相位与预测相位集的比对结果;其中,上一边沿相位为上一采样周期中得到的边沿相位;若当前比对结果为预测相位集包括一个或两个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,则以预测相位集内的当前边沿相位作为当前采样周期的编码相位。

其中,可获取当前采样周期内采样数据中跳变沿对应的当前边沿相位,当前边沿相位可为一个或多个,然后将当前边沿相位与预测相位集进行比对,得到当前边沿相位落入预测相位集的情况,即当前比对结果。其中预测相位集包括一个或多个相位,在不同采样周期中,预测相位集可相同,也可不同。此外,还可获取在上一采样周期中,上一边沿相位与预测相位集的上一比对结果。

进一步地,若当前比对结果为预测相位集包括一个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,则表明当前采样周期处于空闲状态或处于帧传输状态中正在传输数据帧时的状态,且当前边沿相位和上一边沿相位均落入了预测相位集中,此时当前采样周期内时钟信号对编码数据同步成功,落入预测相位集内的当前边沿相位即为与当前采样周期的编码数据时钟沿对应的编码相位。

若当前比对结果为预测相位集包括两个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,则表明当前采样周期处于正在传输数据帧时的状态,但此时接收编码数据的速度慢于发送编码数据的速度;此时当前采样周期内时钟信号对编码数据同步成功,落入预测相位集内的两个当前边沿相位均为与当前采样周期的编码数据时钟沿对应的编码相位。

具体的,由于发送编码数据所采用的时钟和接收编码数据所采用的时钟不同步,则可能出现接收编码数据的速度慢于发送编码数据的速度,此时发送方相对于接收方来说周期偏短,随着时间积累,会出现时钟信号采到的时钟沿不断的向前推,即采到时钟沿越来越早,编码相位不断减小,当减小到在一个采样周期中最先采到的编码数据的相位成为编码相位时,若继续减小,则在下一采样周期预测相位集中会存在两个编码相位。通过上述判定方式,可解决收发时钟不同频导致的跳变沿漂移问题,最终找到采样到出现时钟沿的编码相位,提高解码的准确性。

举例而言,设一个采样周期包括时钟信号S的8个时钟周期,参考图4所示,设各采样周期中的时钟周期内采到的编码数据的相位依次为s0、s1、s2、s3、s4、s5、s6、s7。设时钟信号S为上升沿采样,采样周期T4的编码相位为s0,预测相位集为相位s0、s1和s7;当编码相位不断减小,减小到相位s0时(处于采样周期T4),再继续减小时,采样周期T5内,预测相位集中的相位s0和s7均对应编码数据的时钟沿。

通过在每一采样周期中,将当前边沿相位与预测相位集进行比对,可过滤当前边沿相位中可能采样到毛刺或者数据沿的相位,增强了抗干扰能力,最终提高了解码效率;进一步地,将得到的当前比对结果与历史比对结果进行结合,来确定当前采样周期的编码相位,提高了判断准确性,方法简单且可靠。

在一个实施例中,确定各采样周期内与预测相位集相匹配的边沿相位,得到编码相位,还包括:若当前比对结果为预测相位集包括一个当前边沿相位,上一比对结果为预测相位集内未包括上一边沿相位,且当前采样周期处于非帧结束传输状态,则以预测相位集内的当前边沿相位作为当前采样周期的编码相位。

可以理解,若当前比对结果为预测相位集包括一个当前边沿相位,上一比对结果为预测相位集内未包括上一边沿相位,且当前采样周期处于非帧结束传输状态,则表明当前采样周期处于帧传输状态中采样到帧起始标志,并开始传输数据帧时的状态,或者处于正在传输数据帧时的状态,但此时接收编码数据的速度快于发送编码数据的速度;此时当前采样周期内时钟信号对编码数据同步成功,落入预测相位集内的当前边沿相位即为当前采样周期的编码相位。

可以理解,当采样到帧起始时,可能出现预测相位集包括一个当前边沿相位,上一采样周期中的预测相位集未包括上一边沿相位的情况,因此作为一种情况,当出现预测相位集包括一个当前边沿相位,上一采样周期中的预测相位集未包括上一边沿相位,且当前采样周期处于非帧结束传输状态时,可能是当前采样周期处于帧传输状态中采样到帧起始标志,并开始传输数据帧时的状态。此外,由于外部编码系统发送编码数据所采用的时钟和本解码方法接收编码数据所采用的时钟不同步,则可能出现接收编码数据的速度快于发送编码数据的速度,此时发送相对于接收来说周期偏长,随着时间积累,会出现对应时钟沿的编码相位不断的向后退,即采到时钟沿越来越晚,编码相位不断增大,当增大到采样周期中最靠后的相位时,若继续增大,则在下一采样周期预测相位集中不存在与时钟沿对应的编码相位,而在下一采样周期后的一个周期才会出现与时钟沿对应的编码相位。通过上述判定方式,可解决收发时钟不同频导致的时钟沿漂移问题,最终找到采样到出现时钟沿的编码相位,提高解码的准确性。

举例而言,设一个采样周期包括时钟信号的8个时钟周期,参考图3所示,设各采样周期中的时钟周期内采到的编码数据的相位依次为s0、s1、s2、s3、s4、s5、s6、s7。设时钟信号S为上升沿采样,采样周期T1的编码相位为s7,预测相位集为相位s0、s6和s7;当编码相位不断增大,增大到相位s7时(处于采样周期T1),再继续增大时,采样周期T2内,预测相位集中的相位s0、s6和s7均不对应编码数据的时钟沿,而在采样周期T3内,相位s0对应编码数据的时钟沿。

由此可知,作为另一种情况,当出现预测相位集包括一个当前边沿相位,上一采样周期中的预测相位集未包括上一边沿相位,且当前采样周期处于非帧结束传输状态时,可能是当前采样周期处于正在传输数据帧时的状态,但接收编码数据的速度快于发送编码数据的速度。

在一个实施例中,方法还包括:获取截止至当前采样周期采集的采样数据连续为0的子数据的第一数量;若第一数量未超过第一数量阈值,则当前采样周期处于非帧结束传输状态。

参考图2所示,帧结束时的编码数据为0,时钟信号在该帧编码数据中采集到的采样数据为连续的8个0,结合帧结束前后的编码数据,理论上当采集到超过连续8个采样数据为0时,即可确定采集到了帧结束标志。因此可根据采集到的连续子数据的第一数量来确定是否处于帧结束传输状态。

具体的,在每进行一次采样周期的时钟信号采样后,可获取截止至当前采样周期所采集到的采样数据中连续为0的子数据的第一数量,事实上,第一数量为当前采样周期与上一采样周期两个采样周期所组成的采样数据中连续为0的子数据数量,若第一数量超过第一数量阈值,则表明当前采样周期采集到了帧结束标志,处于帧结束传输状态;若未超过第一数量阈值,则表明当前采样周期处于非帧结束传输状态。其中,基于曼彻斯特编码规则,相邻两帧编码数据不会出现全是数据0的情况,因此第一数量阈值可根据时钟周期的数量进行确定,设置为大于时钟周期数量的1倍,小于时钟周期数量的2倍。在一个实施例中,以时钟周期数量为8个为例,第一数量阈值可设为11-12个。

在一个实施例中,方法还包括:获取截止至各采样周期采集的采样数据连续为1的子数据的第二数量,若第二数量超过第二数量阈值,则记录采样周期下参考状态为帧传输状态;获取各采样周期中,参考状态为帧传输状态,且不处于帧结束状态下的采样周期,得到目标采样周期。

可以理解,在每进行一次采样周期的时钟信号采样后,都会获取截止该采样周期采集的采样数据中连续为1的子数据的第二数量,事实上,第二数量可为该采样周期与上一采样周期的采样数据中连续为1的子数据数量。第二数量阈值可根据时钟周期的数量进行确定,设置为大于时钟周期数量的1倍,小于时钟周期数量的2倍。

具体地,在每一采样周期中获取到第二数量后,都要将第二数量与第二数量阈值进行比较,一旦判断出第二数量超过第二数量阈值,则表明在该采样周期采集到帧起始标志,此时可认为从该采样周期起直到帧结束之前的所有采样周期均处于帧传输状态,因此可以以记录参考状态为帧传输状态来标记处于帧传输状态的采样周期。进一步地,在各采样周期中,若参考状态为帧传输状态,且采样周期不处于帧结束状态,则该采样周期即可作为目标采样周期。

可以理解,若当前比对结果为预测相位集包括一个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,由于当前采样周期可能处于空闲状态或处于帧传输状态中正在传输数据帧时的状态,该种情况下可采用上述方式来确定其是否属于目标采样周期。

若当前比对结果为预测相位集包括一个当前边沿相位,上一比对结果为预测相位集内未包括上一边沿相位,且当前采样周期处于非帧结束传输状态,则表明当前采样周期处于帧传输状态中采样到帧起始标志,并开始传输数据帧时的状态,或者处于正在传输数据帧时的状态,但此时曼彻斯特解码方法接收编码数据的速度快于编码方法发送编码数据的速度,该种情况下可直接确定当前采样周期属于目标采样周期,而无需采用上述方式进行判定。

若当前比对结果为预测相位集包括两个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,则表明当前采样周期处于正在传输数据帧时的状态,但此时接收编码数据的速度慢于发送编码数据的速度,该种情况下可直接确定当前采样周期属于目标采样周期,而无需采用上述方式进行判定。

在一个实施例中,方法还包括:在各采样周期中,若当前比对结果为预测相位集包括三个以上的当前边沿相位,或若当前比对结果为预测相位集不包括当前边沿相位且上一比对结果为预测相位集不包括上一边沿相位,或若当前采样周期处于帧结束状态,则重置参考状态。

可以理解,在帧传输状态中可能出现编码数据同步失败的情况,因此在各采样周期中,若出现当前比对结果为预测相位集包括三个以上的当前边沿相位、当前比对结果为预测相位集不包括当前边沿相位且上一比对结果为预测相位集不包括上一边沿相位,以及当前采样周期处于帧结束状态三种情况中的任一种,则表明该采样周期内时钟信号对编码数据同步失败,此时认为该采样周期出现曼彻斯特违例,因此需要对参考状态进行重置,从而重新标记采到处于帧传输状态的采样周期。其中,重置后的参考状态为除帧传输状态以外的其他状态,例如可为不代表采样周期为任何传输状态的空状态。

其中,当前采样周期处于帧结束状态可为当前采样周期下的第一数量超过第一数量阈值。

在一个实施例中,当编码相位的数量为一个时,方法还包括:若当前采样周期处于非帧结束传输状态,则获取与当前采样周期的编码相位的相位差在预设阈值内的相位,得到第一相位集;将预测相位集更新为第一相位集。

可以理解,编码相位为对应编码数据时钟沿的相位,正常情况下,下一周期的编码相位与当前采样周期的编码相位应该相同,例如图2中各采样周期内的编码相位均为相位s5,然而由于收发双方的时钟不同,可能出现编码相位出现偏移的情况,但相邻采样周期偏移幅度不会太大,因此可采用与当前采样周期的编码相位的相位差在预设阈值内的相位对下一采样周期的编码相位进行预测。两个相位之间的相位差可为两个相位对应的编码数据之间相差的排位数量,例如相位分别代表第一排位的编码数据和第二排位的编码数据,其相位差为第一排位和第二排位的差,即为1;当相位以标识来表示时,相位差可等于标识中的序号之间的差值,例如相位sp与相位s(p-1)之间的相位差为p-(p-1)=1;其中,若出现跨周期的情况,则需要将加上时钟周期的数量的值n,例如上一采样周期相位s(p+5)与当前采样周期相位s(p)之间的相位差为p-(p+5)+n。具体地可以以与当前采样周期的编码相位的相位差在预设阈值内的相位作为第一相位集,从而对预测相位集进行更新。对于后续每一在非帧结束传输状态下的采样周期,获取到编码相位后,就对预测相位集进行更新,以准确获得下一采样周期的编码相位。

其中,预设阈值可与时钟周期的数量有关。举例而言,设相邻相位的相位差为1;在一个实施例中,若时钟周期的数量为8,则可设预设阈值为1。举例而言,参考图2所示,在当前采样周期内确定出以相位s5作为编码相位时,与编码相位的相位差在1内的相位有s4、s5和s6,因此可将相位s4、s5和s6作为下一采样周期的预设相位集;参考图3所示,以相位s7作为采样周期T1的编码相位为例,与编码相位的相位差在1内的相位有s0、s6和s7,因此可将相位s0、s6和s7作为第一相位集,进而对预测相位集进行更新;在另一实施例中,若时钟周期的数量为16,则可设预设阈值为2,类似的,预测相位集可依据上述类推。

在一个实施例中,方法还包括:在各采样周期中,若当前比对结果为预测相位集包括三个以上的当前边沿相位,则清空预测相位集。

可以理解,若当前比对结果为预测相位集包括三个以上的当前边沿相位,则表明当前采样周期内时钟信号对编码数据同步失败,可判定当前采样周期出现曼彻斯特违例,此时清空预测相位集,以下个采样周期作为起始进行解码。

在一个实施例中,当编码相位的数量为两个时,方法还包括:若当前采样周期处于非帧结束传输状态,则获取当前采样周期的两个编码相位中相位落后的一者,得到基准相位;获取与基准相位的相位差在预设阈值内的相位,得到第二相位集;将预测相位集更新为第二相位集。

可以理解,编码相位为与编码数据时钟沿对应的相位,通常情况下,下一周期的编码相位与当前采样周期的编码相位的相位差不会太大,因此可先确定两个编码相位中对应最新时钟沿的编码相位,即相位更落后的编码相位,得到基准相位,然后采用与基准相位的相位差在预设阈值内的相位对下一采样周期的编码相位进行预测。具体地可以以与基准相位的相位差在预设阈值内的相位作为第二相位集,从而对预测相位集进行更新。对于后续每一非帧结束传输状态下的采样周期,获取到两个编码相位后,就对预测相位集进行更新,以准确获得下一采样周期的编码相位。

其中,预设阈值可与时钟周期的数量有关。举例而言,设相邻相位的相位差为1;在一个实施例中,若时钟周期的数量为8,则可设预设阈值为1。举例而言,参考图4所示,在采样周期T5中,两个编码相位分别为s0和s7,此时以相位s7作为基准相位,与基准相位的相位差在1内的相位有s0、s6和s7,因此可将相位s0、s6和s7作为第二相位集,进而对预测相位集进行更新;在另一实施例中,若时钟周期的数量为16,则可设预设阈值为2,类似的,预测相位集可依据上述类推。

在一个实施例中,方法还包括:在各采样周期中,若当前比对结果为预测相位集不包括当前边沿相位,且上一比对结果为预测相位集不包括上一边沿相位,则清空预测相位集。

可以理解,若上一比对结果为预测相位集不包括上一边沿相位,则表明上一采样周期可能处于正在传输数据帧时的状态,但接收编码数据的速度快于发送编码数据的速度,正常情况下当前采样周期的预测相位应该采集到时钟沿,即当前比对结果应该为预测相位集包括当前边沿相位,反之,若当前比对结果为预测相位集不包括当前边沿相位,则表明当前采样周期内时钟信号对编码数据同步失败,可判定当前采样周期出现曼彻斯特违例,此时清空预测相位集,以下个采样周期作为起始进行解码。

在一个实施例中,预测相位集的获取方式,包括:获取第一个采样数据的第一个上升沿的相位,得到初始相位;将与初始相位的相位差在预设阈值内的相位作为预测相位集。

可以理解,为获取后续采样周期的编码相位,可将与得到的初始相位的相位差在预设阈值内的相位作为初始的预测相位集,然后后续采样周期中会不断更新修正预测相位集,从而提高获取的编码相位的准确性。

其中,由于未建立连接时,发送方一直发送数据0,也就是0101序列,此时的上升沿一定是时钟沿,因此可认为第一个采样数据中的第一个上升沿为时钟沿,其对应的相位可作为参考相位,以对后续时钟沿的相位进行预测,从而有效提高时钟沿判定的准确性。

本发明实施例还提供一种曼彻斯特解码系统,如图5所示,系统包括边沿检测模块110和解码模块111。边沿检测模块用于在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位;解码模块与边沿检测模块连接,用于:从边沿相位中,确定在目标采样周期内且与预测相位集相匹配的边沿相位,得到目标相位;目标采样周期为处于帧传输状态的采样周期;预测相位集为预测的与时钟沿对应的相位;对在目标相位下的编码数据进行解码,得到各目标采样周期的解码数据。

本发明实施例的曼彻斯特解码系统的工作原理及有益效果已在上述曼彻斯特解码方法中具体阐述,此处不进行赘述。

在一个实施例中,解码模块还用于:确定各采样周期内与预测相位集相匹配的边沿相位,得到编码相位;获取目标采样周期内的编码相位,得到目标相位。

在一个实施例中,解码模块还用于:在各采样周期内,获取在当前采样周期内得到的边沿相位,得到当前边沿相位;将当前边沿相位与预测相位集进行比对,获取当前比对结果;获取上一比对结果;其中上一比对结果为在上一采样周期中,上一边沿相位与预测相位集的比对结果;其中,上一边沿相位为上一采样周期中得到的边沿相位;若当前比对结果为预测相位集包括一个或两个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,则以预测相位集内的当前边沿相位作为当前采样周期的编码相位。

在一个实施例中,解码模块还用于:若当前比对结果为预测相位集包括一个当前边沿相位,上一比对结果为预测相位集内未包括上一边沿相位,且当前采样周期处于非帧结束传输状态,则以预测相位集内的当前边沿相位作为当前采样周期的编码相位。

在一个实施例中,解码模块还用于:获取截止至当前采样周期采集的采样数据连续为0的子数据的第一数量;若第一数量未超过第一数量阈值,则当前采样周期处于非帧结束传输状态。

在一个实施例中,解码模块还用于:获取截止至各采样周期采集的采样数据连续为1的子数据的第二数量,若第二数量超过第二数量阈值,则记录采样周期下参考状态为帧传输状态;获取各采样周期中,参考状态为帧传输状态,且不处于帧结束状态下的采样周期,得到目标采样周期。

在一个实施例中,解码模块还用于:在各采样周期中,若当前比对结果为预测相位集包括三个以上的当前边沿相位,或若当前比对结果为预测相位集不包括当前边沿相位且上一比对结果为预测相位集不包括上一边沿相位,或若当前采样周期处于帧结束状态,则重置参考状态。

在一个实施例中,当编码相位的数量为一个时,解码模块还用于:若当前采样周期处于非帧结束传输状态,则获取与当前采样周期的编码相位的相位差在预设阈值内的相位,得到第一相位集;将预测相位集更新为第一相位集。

在一个实施例中,解码模块还用于在各采样周期中,若当前比对结果为预测相位集包括三个以上的当前边沿相位,则清空预测相位集。

在一个实施例中,当编码相位的数量为两个时,解码模块还用于:若当前采样周期处于非帧结束传输状态,则获取当前采样周期的两个编码相位中相位落后的一者,得到基准相位;获取与基准相位的相位差在预设阈值内的相位,得到第二相位集;将预测相位集更新为第二相位集。

在一个实施例中,解码模块还用于:在各采样周期中,若当前比对结果为预测相位集不包括当前边沿相位,且上一比对结果为预测相位集不包括上一边沿相位,则清空预测相位集。

在一个实施例中,解码模块还用于:获取第一个采样数据的第一个上升沿的相位,得到初始相位;将与初始相位的相位差在预设阈值内的相位作为预测相位集。

本发明实施例还提供一种曼彻斯特解码方法,包括步骤(a1)至步骤(a18)。

步骤(a1),在各采样周期内,检测各采样数据中跳变沿对应的相位,得到边沿相位。

步骤(a2),获取第一个采样数据的第一个上升沿的相位,得到初始相位;将与初始相位的相位差在预设阈值内的相位作为预测相位集。

步骤(a3),获取在当前采样周期内得到的边沿相位,得到当前边沿相位;将当前边沿相位与预测相位集进行比对,获取当前比对结果。

步骤(a4),获取上一比对结果;其中上一比对结果为在上一采样周期中,上一边沿相位与预测相位集的比对结果;其中,上一边沿相位为上一采样周期中得到的边沿相位;

步骤(a5),若当前比对结果为预测相位集包括一个或两个当前边沿相位,且上一比对结果为预测相位集内包括上一边沿相位,则以预测相位集内的当前边沿相位作为当前采样周期的编码相位。

步骤(a6),获取截止至当前采样周期采集的采样数据连续为0的子数据的第一数量。

步骤(a7),若第一数量未超过第一数量阈值,则当前采样周期处于非帧结束传输状态。

步骤(a8),若当前比对结果为预测相位集包括一个当前边沿相位,上一比对结果为预测相位集内未包括上一边沿相位,且当前采样周期处于非帧结束传输状态,则以预测相位集内的当前边沿相位作为当前采样周期的编码相位。

步骤(a9),当编码相位的数量为一个时,若当前采样周期处于非帧结束传输状态,则获取与当前采样周期的编码相位的相位差在预设阈值内的相位,得到第一相位集;将预测相位集更新为第一相位集。

步骤(a10),当编码相位的数量为两个时,若当前采样周期处于非帧结束传输状态,则获取当前采样周期的两个编码相位中相位落后的一者,得到基准相位。

步骤(a11),获取与基准相位的相位差在预设阈值内的相位,得到第二相位集;将预测相位集更新为第二相位集。

步骤(a12),在各采样周期中,若当前比对结果为预测相位集不包括当前边沿相位,且上一比对结果为预测相位集不包括上一边沿相位,则清空预测相位集。

步骤(a13),在各采样周期中,若当前比对结果为预测相位集包括三个以上的当前边沿相位,则清空预测相位集。

步骤(a14),获取截止至各采样周期采集的采样数据连续为1的子数据的第二数量,若第二数量超过第二数量阈值,则记录采样周期下参考状态为帧传输状态。

步骤(a15),获取各采样周期中,参考状态为帧传输状态,且不处于帧结束状态下的采样周期,得到目标采样周期。

步骤(a16),在各采样周期中,若当前比对结果为预测相位集包括三个以上的当前边沿相位,或若当前比对结果为预测相位集不包括当前边沿相位且上一比对结果为预测相位集不包括上一边沿相位,或若当前采样周期处于帧结束状态,则重置参考状态。

步骤(a17),获取目标采样周期内的编码相位,得到目标相位。

步骤(a18),对在目标相位下的编码数据进行解码,得到各目标采样周期的解码数据。

本实施例以图6的流程图来说明曼彻斯特解码方法进行解码的具体过程。

在步骤S1中,检测各采样数据中跳变沿对应的相位,得到边沿相位。

其中,当采样数据中出现相邻两个子数据不同的情况时,表明此时的编码数据出现跳变;可以理解,跳变沿对应的相位可为跳变沿对应的编码数据在采样数据中的相位,可先确定出现跳变沿对应的编码数据,然后以该编码数据的相位作为边沿相位。编码数据的相位可为在采样数据中用于索引该编码数据的标识。采样数据中在先采集得到的子数据为在前子数据,反之为在后子数据,当采样数据出现跳变沿时,相邻两个子数据中在后子数据为跳变沿对应的编码数据。

在步骤S2中,获取采到第一个上升沿的相位sk,预测与相位sk相位差在预设阈值内的相位为接下来可能会采到时钟沿的相位。

其中,由于未建立连接时,发送方一直发送数据0,也就是0101序列,此时的上升沿一定是时钟沿,因此可认为第一个采样数据中的第一个上升沿为时钟沿,其对应的相位可作为参考相位,以对后续时钟沿的相位进行预测,从而有效提高时钟沿判定的准确性。其中预设阈值可与采样周期内包含的时钟周期的数量有关,其中时钟周期为用于采样编码数据的时钟信号的周期。举例而言,设相邻相位的相位差为1;在一个实施例中,若时钟周期的数量为8,则可设预设阈值为1,此时预测的相位有相位s(k-1)、相位sk和相位s(k+1);若时钟周期的数量为16,则可设预设阈值为2,此时预测的相位有相位s(k-2)、相位s(k-1)、相位sk、相位s(k+1)和相位s(k+2),以此类推。

进一步地,在步骤S3中,判断在当前采样周期中,预测的相位是否采到0个跳变沿,若判断结果为否,则执行步骤S4以进一步判断预测的相位采到的跳变沿数量;若判断结果为是,则可能是编码数据同步失败,或可能是由于接收编码数据的速度快于发送编码数据的速度,从而导致在当前采样周期内预测的相位没有采集到跳变沿,此时执行步骤S18,以结合上一采样周期的预测结果进行进一步判断。

其中,可通过将采到跳变沿的边沿相位与预测的相位进行比对,来判断边沿相位落入预测的相位中的数量,若预测的相位中包括边沿相位,则表明预测的相位采到了跳变沿;反之则没有采到跳变沿。预测的相位采到跳变沿的数量等于预测的相位中包括边沿相位的数量。

在步骤S4中,判断预测的相位是否采到1个跳变沿。若判断结果为是,则结合上一采样周期的预测结果进行进一步判断,此时执行步骤S5;若判断结果为否,则执行步骤S12以进一步判断预测的相位采到的跳变沿数量。

在步骤S5中,判断上一采样周期预测的相位是否采到跳变沿。若判断结果为是,则表明当前采样周期处于空闲状态或处于帧传输状态中正在传输数据帧时的状态,此时执行步骤S6以重新预测后续采样周期可能采到时钟沿的相位;若判断结果为否,则表明当前采样周期处于帧传输状态中采样到帧起始标志,并开始传输数据帧时的状态,或者处于正在传输数据帧时的状态,或者处于帧结束状态,此时执行步骤S9以进行进一步判定。

在步骤S6中,记录预测的相位中实际采到跳变沿的相位sp1,更新sk=sp1,并重新预测接下来可能会采到时钟沿的相位。可以理解,相位sp1为落入预测的相位中的边沿相位,其为当前采样周期中采到时钟沿的相位;在当前采样周期处于空闲状态或处于帧传输状态中正在传输数据帧时的状态时,需要以相位sp1对预测的相位进行更新。以图3为例,在采样周期T1内,落入预测的相位中的边沿相位为相位s7,因此将之前的相位sk更新为相位s7,进一步再以与相位s7相位差在1内的相位s0、s6和s7为接下来可能会采到时钟沿的相位。

在步骤S7中,判断当前采样周期是否处于帧传输状态。若判断结果为是,则表明当前采样周期处于第一种状态,即帧传输状态中正在传输数据帧时的状态,此时执行步骤S8以进行解码;若判断结果为否,则表明当前采样周期处于第二种状态,即空闲状态,此时采样周期的解码不进行解码,继续下个采样周期的采样。

在步骤S8中,解码得到数据。可以理解,在确定采集到时钟沿的相位sp1后,可以将该相位下的编码数据取反后得到的数据作为当前采样周期的解码数据。

在步骤S9中,判断当前采样周期是否采到了帧起始标志,若判断结果为是,则表明当前周期当前采样周期处于第三种状态,即处于帧传输状态中采样到帧起始标志,并开始传输数据帧时的状态,此状态下落入预测的相位的边沿相位为采样到时钟沿的相位,此时需对预测的相位进行更新,即执行步骤S10,并进一步对采样数据进行解码,即执行步骤S8;若判断结果为否,则表明当前采样周期处于正在传输数据帧时的状态,或者处于帧结束状态,此时执行步骤S11进行状态的进一步判定。

具体的,可通过获取截止当前采样周期采集的采样数据中连续为1的子数据的数量,若该数量超过第二数量阈值,则表明在当前采样周期采集到帧起始标志。其中,第二数量阈值可根据时钟周期的数量进行确定,设置为大于一个采样周期中的时钟周期数量的1倍,小于时钟周期数量的2倍,例如第二数量阈值可为11或12;获取截止当前采样周期采集的采样数据中连续为1的子数据的数量,实际上可为当前采样周期和上一采样周期的采样数据中连续为1的子数据的数量。

在步骤S10中,记录预测的相位中实际采到跳变沿的相位sp1,更新sk=sp1,并重新预测接下来可能采到时钟沿的相位。其中,相位sp1为落入预测的相位中的边沿相位,其为当前采样周期中采到时钟沿的相位。

在步骤S11中,判断是否已经连续采到11-12位数据0。若判断结果为是,则表明采到数据帧结束标志,帧传输结束,此时当前采样周期处于第四种状态,即处于帧结束状态,当前采样周期不进行解码,继续下个采样周期采样;若判断结果为否,则表明当前采样周期处于第五种状态,即处于正在传输数据帧时的状态,但接收编码数据的速度快于发送编码数据的速度,此时继续执行步骤S6,对预测的相位进行更新,并经步骤S7判定后进而执行步骤S8进行数据解码。

在步骤S12中,判断预测的相位是否采到2个跳变沿,若判断结果为是,则执行步骤S13进一步结合上一采样周期的预测结果进行进一步判断;若判断结果为否,则执行步骤S14,认定当前采样周期出现曼彻斯特违例,编码数据同步失败,进而执行步骤S15以清空内部状态,并继续下个采样周期的采样。其中清空内部状态可包括清空预测的相位,以在下一采样周期获取第一次采到跳变沿的相位k,并进而得到新的预测的相位;此外当确定采到帧起始标志时,会对当前周期进行标记,清空内部状态还包括对标记采到帧起始标志的采样周期进行重置,以准确进行下一采样周期中对采到帧起始标志的判定。

在步骤S13中,判定上一采样周期预测的相位是否采到跳变沿,若判断结果为否,则执行步骤S14,认定当前采样周期出现曼彻斯特违例,编码数据同步失败,进而执行步骤S15以清空内部状态,并继续下个采样周期的采样;若判断结果为是,则处于第六种状态,即处于正在传输数据帧时的状态,但此时接收编码数据的速度慢于发送编码数据的速度,此时执行步骤S17,对预测的相位进行更新,以及执行步骤S17判定后进而执行步骤S8进行数据解码。

在步骤S16中,记录预测的相位中实际采到跳变沿的相位为sp1和sp2,p1

以图4为例,采样周期T4的采集到编码数据时钟沿的为相位s0,预测的相位包括相位s0、s1和s7;当采到编码数据时钟沿的相位不断减小,减小到为相位s0时(处于采样周期T4),再继续减小时,采样周期T5内,预测的相位中,相位s0和s7均会采集到编码数据的时钟沿,此时基于相位落后s7对预测的相位进行更新,以相位差值在1内的相位s6、s7和s0作为新的预测的相位。当进行到步骤S17时,表明发送方时钟快于接收方时钟,此时解码得到2位数据。

在步骤S18中,判断上一采样周期预测的相位是否采到跳变沿,若判断结果为是,则表明可能出现接收编码数据的速度快于发送编码数据的速度,此时发送方相对于接收方来说周期偏长,随着时间积累,会出现采到时钟沿的相位不断的向后退,即采到时钟沿越来越晚,当上一采样周期的时钟沿后退到由最靠后的相位采到时,若时钟沿继续后退,则在当前采样周期会采集不到时钟沿,而在下一采样周期后才会采集到时钟沿,因此该情况下执行步骤S21,进行下一采样周期的判断;若判断结果为否,则执行步骤S19,认定当前采样周期出现曼彻斯特违例,编码数据同步失败,进而执行步骤S20以清空内部状态,并继续下个采样周期的采样。

在步骤S21中,在当前采样周期暂停判断,等待下个采样周期跳变沿检测结果,当前采样周期不写数据。

应该理解的是,步骤S110至步骤S130、步骤S1至步骤S21、步骤(a1)至步骤(a18)中的各个步骤按照标号指示依次显示,但是这些步骤并不是必然按照箭头或者数字指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

技术分类

06120116510939