一种BMC码自适应解码系统和解码方法与流程

文档序号:15465996发布日期:2018-09-18 19:20阅读:519来源:国知局

本发明涉及通讯技术领域,具体涉及一种BMC码自适应解码系统和解码方法。



背景技术:

随着电子技术的发展,USB接口提供电能的应用已经上升到了与数据传输同等重要的地位。最新发布的USB Type-C Power Delivery 协议(以下简称PD协议),是基于USB 3.1版本,即一种基于Type-C接口的功率传输协议。USB PD最大可支持100W(20V/5A)的功率传输,同时支持供电角色转换,能满足绝大部分电子设备供电需求。在USB Type-C接口中,USB PD通信使用双向标记编码(Biphase Mark Coding, BMC),在CC通道上传输数据。此方法简单灵活,已经作为PD通信标准发布,目前正逐步得到广泛的应用。BMC编码属于一种相位调制的编码技术,是将时钟和数据混合在一起传输的编码方法。BMC编码的特点是,在每一比特周期的开始时电平都要进行跳变。在一个比特周期内采用电平变化来表示逻辑,如果电平在比特周期中间跳变,则表示逻辑“1”,否则表示逻辑“0”。使用BMC编码可以让传输端与接收端只需一条数据线就可以将数据正确的传输与接收,并且在收发两端保持很好的同步性。PD协议规定BMC码传输频率为300K,即每个比特周期为3.33us。每个通信数据包带有64比特的前导码做为同步头。PD协议允许该编码有+/-10%的频率偏差,但在实际应用中由于传输设备个体差异、信道长短不一,或受噪声、电磁环境等影响,在接收端频率偏差往往更大。



技术实现要素:

针对以上问题,本发明提供了一种BMC码自适应解码系统和解码方法,可根据同步头自适应配置解码阈值的参数,消除频率偏差的影响,对BMC编码数据正确解码。本发明的具体技术方案如下:

一种BMC码自适应解码系统,包括信号滤波单元、同步头检测单元和BMC解码单元。其中:所述信号滤波单元用于接收输入信号,并对所述输入信号进行滤波后,输出滤波信号至所述同步头检测单元。所述同步头检测单元用于接收所述滤波信号,并对所述滤波信号中的同步头信号进行采样,并确定解码阈值。所述BMC解码单元用于根据解码阈值分析单个比特信号中间是否出现电平跳变,如果出现电平跳变,则在比特信号结束时往移位寄存器中寄存高电平信号,否则在比特信号结束时往移位寄存器中寄存低电平信号,最后把移位寄存器中所寄存的高电平信号和低电平信号作为解码数据输出。

进一步地,所述信号滤波单元包括输入采样子单元和采样处理子单元。其中:所述输入采样子单元用于根据时钟信号对所述输入信号进行连续采样。所述采样处理子单元用于判断所述输入采样子单元所采样的信号中是否存在连续的预设时间内都相同的电平信号,并在判断结果为是的情况下,输出相同的电平信号以作为滤波信号。

进一步地,所述同步头检测单元包括跳变沿检测子单元、跳变沿个数寄存器、时间计数器和解码阈值寄存器。其中:所述跳变沿检测子单元用于检测所述滤波信号中同步头信号的跳变沿。所述跳变沿个数寄存器用于寄存所述跳变沿检测子单元所检测到的跳变沿的总个数。所述时间计数器用于计算所述滤波信号中的同步头信号从开始到结束的总时间。所述解码阈值寄存器用于寄存解码阈值,所述解码阈值为所述总时间与所述总个数的比值再与预设比例的乘积所对应的值。

进一步地,所述BMC解码单元包括比特信号计时器、比特信号结束标志子单元、数据标志子单元和移位寄存器。其中:所述比特信号计时器用于从每个比特信号起始点开始进行计时,并在后续检测到跳变沿的时间大于所述解码阈值时,将计时时间清零,比特信号结束,然后所述比特信号计时器又重新开始下一个比特信号的计时。所述比特信号结束标志子单元用于在比特信号结束时,输出单脉冲信号。所述数据标志子单元用于在一个比特信号的时间周期内检测到跳变沿时,输出数据标志高电平,并在比特信号结束时输出标志信号低电平。所述移位寄存器用于在比特信号结束时,对应所述数据标志子单元输出的的数据标志高电平而寄存高电平信号,对应所述数据标志子单元输出的的数据标志低电平而寄存低电平信号。

一种BMC码自适应解码方法,基于上述的BMC码自适应解码系统,所述方法包括如下步骤:所述信号滤波单元接收输入信号,并对所述输入信号进行滤波后,输出滤波信号至所述同步头检测单元;所述同步头检测单元接收所述滤波信号,对所述滤波信号中的同步头信号进行采样,并确定解码阈值;所述BMC解码单元根据解码阈值分析单个比特信号中间是否出现电平跳变,如果出现电平跳变,则在比特信号结束时往移位寄存器中寄存高电平信号,否则在比特信号结束时往移位寄存器中寄存低电平信号,最后把移位寄存器中所寄存的高电平信号和低电平信号作为解码数据输出。

进一步地,所述信号滤波单元接收输入信号,并对所述输入信号进行滤波后,输出滤波信号至所述同步头检测单元的步骤,具体包括:所述信号滤波单元中的输入采样子单元根据时钟信号对所述输入信号进行连续采样;所述信号滤波单元中的采样处理子单元判断所述输入采样子单元所采样的信号中是否存在连续的预设时间内都相同的电平信号,并在判断结果为是的情况下,输出相同的电平信号以作为滤波信号。

进一步地,所述预设时间为5个时钟周期。

进一步地,所述同步头检测单元接收所述滤波信号,对所述滤波信号中的同步头信号进行采样,并确定解码阈值的步骤,具体包括:所述同步头检测单元中的跳变沿检测子单元检测所述滤波信号中同步头信号的跳变沿,并且通过所述同步头检测单元中的跳变沿个数寄存器寄存所述跳变沿检测子单元所检测到的跳变沿的总个数;所述同步头检测单元中的时间计数器计算所述滤波信号中的同步头信号从开始到结束的总时间;所述同步头检测单元中的解码阈值寄存器寄存解码阈值。其中,所述解码阈值为所述总时间与所述总个数的比值再与预设比例的乘积所对应的值。

进一步地,所述预设比例为四分之三。

进一步地,所述BMC解码单元根据解码阈值分析单个比特信号中间是否出现电平跳变,如果出现电平跳变,则在比特信号结束时往移位寄存器中寄存高电平信号,否则在比特信号结束时往移位寄存器中寄存低电平信号,最后把移位寄存器中所寄存的高电平信号和低电平信号作为解码数据输出的步骤,具体包括:所述BMC解码单元中的比特信号计时器从每个比特信号起始点开始进行计时,并在后续检测到跳变沿时,判断计时时间是否大于所述解码阈值,如果否,则继续计时,如果是,则将计时时间清零,所述比特信号计时器又重新开始下一个比特信号的计时,然后进入下一步骤;所述BMC解码单元中的比特信号结束标志子单元在计时时间清零的比特信号结束时刻,输出单脉冲信号;所述BMC解码单元中的数据标志子单元判断在一个比特信号的时间周期内是否出现跳变沿,如果出现跳变沿,则输出数据标志高电平,并在比特信号结束时输出数据标志低电平,然后进入下一步骤;所述BMC解码单元中的移位寄存器在比特信号结束时,对应所述数据标志子单元输出的数据标志高电平而寄存高电平信号,对应所述数据标志子单元输出的数据标志低电平而寄存低电平信号,最后,在接收数据结束后,把所寄存的高电平信号和低电平信号作为解码数据输出。

本发明所述的BMC码自适应解码方法,先通过滤波单元对输入信号进行滤波,消除毛刺干扰,然后对滤波信号中的同步头信号进行跳变沿检测和分析,自适应配置解码阈值的参数,最后,根据解码阈值分析单个比特信号中间的电平跳变情况,进行相应解码,解码准确性和解码效率高。此外,采用这种解码方法的解码系统,结构简单,成本较低。

附图说明

图1为所述BMC码的解码系统的结构框图。

图2为所述BMC码的解码方法的流程示意图。

图3为BMC解码过程中各信号的时序图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

如图1所示的BMC码自适应解码系统,包括依次串连的信号滤波单元、同步头检测单元和BMC解码单元。其中,所述信号滤波单元用于接收输入信号,并对所述输入信号进行滤波后,输出滤波信号至所述同步头检测单元。所述同步头检测单元用于接收所述滤波信号,并对所述滤波信号中的同步头信号进行采样,并确定解码阈值。所述BMC解码单元用于根据解码阈值分析单个比特信号中间是否出现电平跳变,如果出现电平跳变,则在比特信号结束时往移位寄存器中寄存高电平信号,否则在比特信号结束时往移位寄存器中寄存低电平信号,最后把移位寄存器中所寄存的高电平信号和低电平信号作为解码数据输出。所述系统先通过滤波单元对输入信号进行滤波,消除毛刺干扰,然后对滤波信号中的同步头信号进行跳变沿检测和分析,自适应配置解码阈值的参数,最后,根据解码阈值分析单个比特信号中间的电平跳变情况,进行相应解码,解码准确性和解码效率高。此外,该解码系统结构简单,成本较低。

优选的,所述信号滤波单元包括输入采样子单元和采样处理子单元。所述输入采样子单元用于根据高速时钟信号对所述输入信号进行连续采样,并将采样结果输出至所述采样处理子单元。所述采样处理子单元用于判断所述输入采样子单元所采样的信号中是否存在连续的预设时间内都相同的电平信号,并在判断结果为是的情况下,输出相同的电平信号以作为滤波信号。其中,所述预设时间可以根据具体的设计需求进行相应设置,可以设置为3至10个时钟周期中的任意一值,较优的,可以设置为5个时钟周期。所述滤波单元通过以连续预设时间的采样信号为单位进行判断和处理,可以有效滤除长度小于预设时间的毛刺等杂波的干扰,提高信号的准确性。

优选的,所述同步头检测单元包括跳变沿检测子单元、跳变沿个数寄存器、时间计数器和解码阈值寄存器。所述跳变沿检测子单元用于检测所述滤波信号中同步头信号的跳变沿。所述跳变沿个数寄存器用于寄存所述跳变沿检测子单元所检测到的跳变沿的总个数。所述时间计数器用于计算所述滤波信号中的同步头信号从开始到结束的总时间。所述解码阈值寄存器用于寄存解码阈值。其中,所述解码阈值为所述总时间与所述总个数的比值再与预设比例的乘积所对应的值。所述预设比例可以根据具体的设计需求进行相应设置,可以设置为1/2至4/5之间的任意一值,较优的,可以设置为3/4。所述同步头信号是发送有效信号之前发送的一系列信号,当同步头信号发送完毕以后,立即发送有效信号。同步头信号的作用是提醒接收芯片,即将发送的是有效信号,注意接收,以免丢失有用信号。所述同步头检测单元通过分析同步头信号的跳变沿总个数和总时间,从中确定解码阈值,以为后续的数据解码提供准确的参考依据。

优选的,所述BMC解码单元包括比特信号计时器、比特信号结束标志子单元、数据标志子单元和移位寄存器。所述比特信号计时器用于从每个比特信号起始点开始进行计时,并在后续检测到跳变沿的时间大于所述解码阈值时,将计时时间清零,比特信号结束,然后所述比特信号计时器又重新开始下一个比特信号的计时。所述比特信号结束标志子单元用于在比特信号结束时,输出单脉冲信号。所述数据标志子单元用于在一个比特信号的时间周期内检测到跳变沿时,输出数据标志高电平,并在比特信号结束时输出标志信号低电平。所述移位寄存器用于在比特信号结束时,对应所述数据标志子单元输出的的数据标志高电平而寄存高电平信号,对应所述数据标志子单元输出的的数据标志低电平而寄存低电平信号。所述BMC解码单元通过分析解码阈值和跳变沿的时序关系,可以在移位寄存器中准确地输入相应的寄存信号,从而保证了解码的准确性。

如图2所示的BMC码自适应解码方法,包括如下步骤:首先,所述信号滤波单元接收输入信号,并对所述输入信号进行滤波后,输出滤波信号至所述同步头检测单元。接着,所述同步头检测单元接收所述滤波信号,对所述滤波信号中的同步头信号进行采样,并确定解码阈值。然后,所述BMC解码单元根据解码阈值分析单个比特信号中间是否出现电平跳变,如果出现电平跳变,则在比特信号结束时往移位寄存器中寄存高电平信号,否则在比特信号结束时往移位寄存器中寄存低电平信号。最后把移位寄存器中所寄存的高电平信号和低电平信号作为解码数据输出。所述解码方法,先通过滤波单元对输入信号进行滤波,消除毛刺干扰,然后对滤波信号中的同步头信号进行跳变沿检测和分析,自适应配置解码阈值的参数,最后,根据解码阈值分析单个比特信号中间的电平跳变情况,进行相应解码,解码准确性和解码效率高。

优选的,所述信号滤波单元接收输入信号,并对所述输入信号进行滤波后,输出滤波信号至所述同步头检测单元的步骤,具体包括:首先,所述信号滤波单元中的输入采样子单元根据高速时钟信号对所述输入信号进行连续采样。接着,所述信号滤波单元中的采样处理子单元判断所述输入采样子单元所采样的信号中是否存在连续的预设时间内都相同的电平信号,并在判断结果为是的情况下,输出相同的电平信号以作为滤波信号。其中,所述预设时间可以根据具体的设计需求进行相应设置,可以设置为4至8个时钟周期中的任意一值。所述滤波步骤通过以连续预设时间的采样信号为单位进行判断和处理,可以有效滤除长度小于预设时间的毛刺等杂波的干扰,提高信号的准确性。

优选的,所述预设时间为5个时钟周期,如此可以在保证滤除毛刺的同时,不影响正常信号的接收。

优选的,所述同步头检测单元接收所述滤波信号,对所述滤波信号中的同步头信号进行采样,并确定解码阈值的步骤,具体包括:首先,所述同步头检测单元中的跳变沿检测子单元检测所述滤波信号中同步头信号的跳变沿,并且通过所述同步头检测单元中的跳变沿个数寄存器寄存所述跳变沿检测子单元所检测到的跳变沿的总个数。接着,所述同步头检测单元中的时间计数器计算所述滤波信号中的同步头信号从开始到结束的总时间。最后,所述同步头检测单元中的解码阈值寄存器寄存解码阈值。其中,所述解码阈值为所述总时间与所述总个数的比值再与预设比例的乘积所对应的值。所述预设比例设置为3/4,即所述解码阈值为每个比特信号的3/4位置处所对应的时间值。所述同步头检测单元通过分析同步头信号的跳变沿总个数和总时间,从中确定解码阈值,以为后续的数据解码提供准确的参考依据。

所述预设比例设置为3/4,通过由此所确定的解码阈值,可以比较准确地判断比特信号中间是否出现电平反转,避免误判的情况,从而提高解码的准确性。

优选的,所述BMC解码单元根据解码阈值分析单个比特信号中间是否出现电平跳变,如果出现电平跳变,则在比特信号结束时往移位寄存器中寄存高电平信号,否则在比特信号结束时往移位寄存器中寄存低电平信号,最后把移位寄存器中所寄存的高电平信号和低电平信号作为解码数据输出的步骤,具体包括:首先,所述BMC解码单元中的比特信号计时器从每个比特信号起始点开始进行计时,并在后续检测到跳变沿时,判断计时时间是否大于所述解码阈值,如果否,则继续计时,如果是,则将计时时间清零,所述比特信号计时器又重新开始下一个比特信号的计时,然后进入下一步骤。接着,所述BMC解码单元中的比特信号结束标志子单元在计时时间清零的比特信号结束时刻,输出单脉冲信号(即置1后就置0)。系统检测到该单脉冲信号,即可判断为比特信号结束。然后,所述BMC解码单元中的数据标志子单元判断在一个比特信号的时间周期内是否出现跳变沿,如果出现跳变沿,则输出数据标志高电平,并在比特信号结束时输出数据标志低电平,然后进入下一步骤;如果没有出现跳变沿,则保持输出数据标志低电平。系统检测到数据标志高电平信号时,则可以得出在对应的比特信号中出现了电平反转;检测到数据标志低电平信号时,则表明在对应的比特信号中没有出现电平反转。紧接着,所述BMC解码单元中的移位寄存器在比特信号结束时,对应所述数据标志子单元输出的数据标志高电平而寄存高电平信号,对应所述数据标志子单元输出的数据标志低电平而寄存低电平信号。最后,在接收数据结束后,把所寄存的高电平信号和低电平信号作为解码数据输出。所述解码方法通过分析单脉冲信号和数据标志信号来对移位寄存器中写入相关数据,使得移位寄存器中所寄存的是准确的解码数据,从而保证系统输出解码数据的准确性。

具体的,如图3所示,系统上电复位,数据初始后,信号滤波单元采用高速时钟信号clk对输入的BMC信号采5拍(即采样5个时钟周期),如果5拍的数据全部相等且都为0,则输出低电平信号0;如果5拍的数据全部相等且都为1,则输出高电平信号1。该信号滤波单元能够去除长度小于5个时钟信号clk周期的BMC信号中的毛刺,然后把滤波后无毛刺的信号输出到同步头检测单元。

同步头检测单元设有解码阈值寄存器data_threshold、跳变沿个数寄存器pulse_cnt和时间计数器timer_val。因为每个BMC通信数据包带有64比特0与1交错的前导码作为同步头。同步头检测单元使用高速时钟信号clk对去毛刺后的BMC信号的64比特同步头信号采样。根据BMC码的特点,64比特0与1交错的前导码同步头总共可以采集到96个信号跳变沿。跳变沿个数寄存器pulse_cnt从传输的第一个前导码同步头开始,到64比特前导码同步头结束,每一个信号跳变沿计数加1,计数到96表示前导码同步头传输完成。时间计数器timer_val记录同步头开始到结束的总时间,即跳变沿个数寄存器pulse_cnt从0到96的总时间。解码阈值寄存器data_threshold=timer_val/96*3/4,如图3所示,解码阈值的时间设置在每个比特总时间的3/4处,即阈值点信号所指位置。

由于BMC编码在每一比特周期的开始时电平都要进行反转,可以在一个比特周期内采用电平变化来表示逻辑,如果电平在比特周期中间反转,则表示逻辑“1”,否则表示逻辑“0”。因此,只要在每个比特结束时,判断1个比特周期中是否有电平反转,就能区分出数据0和1,从而正确解码数据。所示BMC解码单元设有输出数据标志信号data1_flag的数据标志子单元,比特信号计时器bit_timer,和输出比特结束标志信号bit_over(即单脉冲信号)的比特信号结束标志子单元。比特时间计数器bit_timer从每个比特开始处开始计时,到每个跳变沿与解码阈值寄存器data_threshold的值比较,如果bit_timer小于data_threshold,表示当前比特没有传输结束,计数值继续增加;如果bit_timer大于data_threshold,表示当前比特传输结束,比特时间计数器bit_timer清0,重新计数。如图3所示,在每个比特结束时产生bit_over信号,即bit_over信号先置1后清0。在每个跳变沿bit_timer与data_threshold的值比较,如果bit_timer小于data_threshold,表示当前比特周期内有电平跳变,数据标志信号data1_flag置1,在每个比特传输结束后,即bit_over信号置1时,数据标志信号data1_flag清0。

所述BMC解码单元还设有5比特的移位寄存器。如图3所示,当bit_over信号置1时,如果数据标志信号data1_flag = 1,代表1个比特周期中是有电平反转,往移位寄存器写“1”;如果数据标志信号data1_flag = 0时,代表1个比特周期中是没有电平反转,往移位寄存器写“0”。当接收完5比特数据后,把移位寄存器的值作为解码数据输出。

本专利介绍的BMC码解码系统,改善了BMC信号解码器接收数据的性能,在接收数据有毛刺的情况下能够去除毛刺,并且不受不同设备BMC码频率变化的影响,根据BMC数据前导同步码自适应配置解码阈值的参数,具有自适应能力强,解码准确的优点。

最后应说明的是:本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可,各实施例之间的技术方案是可以相互结合的。以上各实施例仅用于说明本发明的技术方案,而非对其限制,尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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