校准usb芯片时钟的方法、装置和芯片

文档序号:34451 发布日期:2021-09-24 浏览:19次 >En<

阅读说明:本技术 校准usb芯片时钟的方法、装置和芯片 (Method and device for calibrating USB chip clock and chip ) 是由 李立 王韩 李凌浩 杨磊 范振伟 于 2021-07-15 设计创作,主要内容包括:本发明公开了一种校准USB芯片时钟的方法、装置和芯片。该方法中,每个操作周期执行以下步骤:利用同步字获取第一时长的高电平矩形脉冲;利用第二时钟在高电平矩形脉冲的时间窗口内进行计数,得到第一数值;利用第一数值和第二数值对第一时钟的控制字进行校准,以对第一时钟进行校准。本发明用倍频后的待校准的时钟帧头的同步字的时间窗口中计数,用计数值与理论计数值相比较,得到偏差,利用偏差对待校准时钟进行校准,由于同步字的周期是固定且准确的,而且待校准的时钟经过倍频,待校准时钟在同步字时间窗口内的计数与理论值的偏差精度更高,因而根据偏差进行校准的精度更高。(The invention discloses a method, a device and a chip for calibrating a USB chip clock. In the method, the following steps are performed per operation cycle: acquiring a first time-length high-level rectangular pulse by using a synchronous word; counting in a time window of the high-level rectangular pulse by using a second clock to obtain a first numerical value; and calibrating the control word of the first clock by using the first numerical value and the second numerical value so as to calibrate the first clock. The invention counts in the time window of the synchronous word of the clock frame head to be calibrated after frequency multiplication, compares the counting value with the theoretical counting value to obtain the deviation, and calibrates the clock to be calibrated by utilizing the deviation.)

校准USB芯片时钟的方法、装置和芯片

技术领域

本发明涉及一种校准USB芯片时钟的方法,同时涉及一种校准USB芯片时钟的装置,还涉及采用该装置的USB芯片,属于集成电路

技术领域

背景技术

USB(Universal Serial Bus,通用串行总线)是计算机和外围设备之间通信的接口标准。USB接口因具有传输速度高,可热插拔的优点,得到了广泛的应用。

USB芯片用于控制USB接口的通信,广泛地应用于USB设备。USB芯片分为Controller(控制器)部分和PHY(物理层)部分。其中,Controller部分主要实现USB的协议和控制。PHY部分功能主要实现并转串的功能,把UTMI(USB Transceiver MacrocellInterface,USB宏单元接口)或者PIPE(逻辑管道)口的并行数据转换成串行数据,再通过差分数据线输出到芯片外部。PHY的通信对时钟精度有较高的要求。不加任何温度补偿的USB芯片内置的12MHz时钟精度通常在3%左右,无法满足PHY的有效通信对时钟精度的要求。如何对USB芯片的内部时钟进行校准,达到更高的精度,仍然是本领域技术人员亟待解决的技术问题之一。

在专利号为ZL 201310253671.4的中国发明专利中,公开了一种一种USB设备系统时钟的校准方法。该方法利用USB设备定时器的计数功能和捕捉功能,将USB设备的系统时钟分频后作为USB设备定时器计数功能的时钟源,将USB设备的低速时钟作为USB设备定时器捕捉功能的触发源;捕捉触发源的跳变沿,获取对应捕捉区间的系统时钟实际计数值;根据获取的实际计数值、预设的理论计数值及所允许的误差范围,校准USB设备的系统时钟频率。

发明内容

本发明所要解决的首要技术问题在于提供一种校准USB芯片时钟的方法(简称校准方法),可以提供更高精度的USB接口芯片内部时钟。

本发明所要解决的另一技术问题在于提供一种校准USB芯片时钟的装置(简称校准装置)。

本发明所要解决的又一技术问题在于提供一种采用该校准装置的USB芯片。

为了实现上述目的,本发明采用以下的技术方案:

根据本发明实施例的第一方面,提供一种校准USB芯片时钟的方法,在每个操作周期,执行以下步骤:

利用帧头的同步字获取第一时长的高电平矩形脉冲;

利用第二时钟在高电平矩形脉冲的时间窗口内进行计数,得到第一数值;其中,第二时钟为利用锁相环对第一时钟进行倍频获得的;

利用第一数值和第二数值对第一时钟的控制字进行校准,以对第一时钟进行校准;其中,第二数值为第一时钟为理论上的准确值时,第二时钟在高电平矩形脉冲的时间窗口内计得的数值。

其中较优地,利用帧头的同步字获取第一时长的高电平矩形脉冲,包括以下步骤:

响应于检测到同步字的第一边沿,对第三数值进行判断:若第三数值=0,则将特定信号由低变为高,第三数值加1;若0<第三数值<特定数值,则第三数值加1;若第三数值=特定数值,则将特定信号由高变为低,将第三数值清0;其中,特定信号用于形成高电平矩形脉冲;

利用第二时钟在高电平矩形脉冲的时间窗口内进行计数,得到第一数值,包括以下步骤:

响应于检测到特定信号的上升沿,启动计数器,每检测到第二时钟的第二边沿,计数器的计数值加1;

响应于检测到特定信号的下降沿,计数器停止计数,将计数器的计数值作为第一数值。

其中较优地,利用第一数值和第二数值对第一时钟的控制字进行校准,包括以下步骤:

比较第一数值和第二数值的大小:若第一数值>第二数值,则将控制字的当前校准位对应的数值置为0;若第一数值<第二数值,则将当前校准位对应的数值置为1;

其中,当前校准位对应控制字的1位,初始状态下,当前校准位对应控制字的最高位,每经过一个操作周期,将当前校准位对应控制字的位降低1位。

其中较优地,利用第一数值和第二数值对第一时钟的控制字进行校准,以对第一时钟进行校准之后,还包括以下步骤:

关闭利用帧头的同步字获取第一时长的高电平矩形脉冲的功能;

利用第三时钟计时第二时长;第二时长小于操作周期;

开启利用帧头的同步字获取第一时长的高电平矩形脉冲的功能。

根据本发明实施例的第二方面,提供一种校准USB芯片时钟的装置,包括以下模块:

获取模块,用于利用帧头的同步字获取第一时长的高电平矩形脉冲;

计数模块,用于利用第二时钟在高电平矩形脉冲的时间窗口内进行计数,得到第一数值;其中,第二时钟为利用锁相环对第一时钟进行倍频获得的;

校准模块,用于利用第一数值和第二数值对第一时钟的控制字进行校准,以对第一时钟进行校准;其中,第二数值为第一时钟为理论上的准确值时,第二时钟在高电平矩形脉冲的时间窗口内计得的数值。

其中较优地,获取模块,包括以下子模块:

脉冲生成子模块,用于响应于检测到同步字的第一边沿,对第三数值进行判断:若第三数值=0,则将特定信号由低变为高,第三数值加1;若0<第三数值<特定数值,则第三数值加1;若第三数值=特定数值,则将特定信号由高变为低,将第三数值清0;其中,特定信号用于形成高电平矩形脉冲;

计数模块,包括以下子模块:

启动子模块,用于响应于检测到特定信号的上升沿,启动计数器,每检测到第二时钟的第二边沿,计数器的计数值加1;

停止子模块,用于响应于检测到特定信号的下降沿,计数器停止计数,将计数器的计数值作为第一数值。

其中较优地,校准模块,包括以下子模块:

校准子模块,用于比较第一数值和第二数值的大小:若第一数值>第二数值,则将控制字的当前校准位对应的数值置为0;若第一数值<第二数值,则将当前校准位对应的数值置为1;

其中,当前校准位对应控制字的1位,初始状态下,当前校准位对应控制字的最高位,每经过一个操作周期,将当前校准位对应控制字的位降低1位。

其中较优地,还包括以下模块:

关闭模块,用于关闭利用帧头的同步字获取第一时长的高电平矩形脉冲的功能;

计时模块,用于利用第三时钟计时第二时长;第二时长小于操作周期;

开启模块,用于开启利用帧头的同步字获取第一时长的高电平矩形脉冲的功能。

根据本发明实施例的第三方面,提供一种USB芯片,包括上述任意一种装置。

本发明具有以下技术效果:用倍频后的待校准的时钟帧头的同步字的时间窗口中计数,用计数值与理论计数值相比较,得到偏差,利用偏差对待校准时钟进行校准,由于同步字的周期是固定且准确的,而且待校准的时钟经过倍频,待校准时钟在同步字时间窗口内的计数与理论值的偏差精度更高,因而根据偏差进行校准的精度更高。

附图说明

图1是本发明提供的一种校准USB芯片时钟的方法流程图;

图2是实施例四的USB芯片的数据线、用于生成高电平矩形脉冲的特定信号的波形图;

图3是本发明提供的一种校准USB芯片时钟的装置示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

<第一实施例>

图1是本发明提供的一种校准USB芯片时钟的方法流程图。该校准方法应用在USB芯片中,每个操作周期,执行以下步骤:

S1步骤,利用帧头的同步字获取第一时长的高电平矩形脉冲;

S2步骤,利用第二时钟在高电平矩形脉冲的时间窗口内进行计数,得到第一数值;其中,第二时钟为利用锁相环对第一时钟进行倍频获得的;

S3步骤,利用第一数值和第二数值对第一时钟的控制字进行校准,以对第一时钟进行校准;其中,第二数值为第一时钟为理论上的准确值时,第二时钟在高电平矩形脉冲的时间窗口内计得的数值。

具体地说,USB芯片即USB接口控制芯片。USB芯片中内置有12MHz时钟(即第一时钟)。12MHz时钟输出的频率受到控制字的控制。初始状态下,第一时钟输出的频率不准确,需要进行校准。

本发明提供的校准方法的使用时机是当USB从设备刚刚连接上USB主设备后。这时会每隔1ms(即操作周期)发送帧头和数据。帧头以同步字开头,同步字的总共时长为500ns,总共有三个周期的方波信号,同步字的周期非常精准,可以用作基准。USB接口包含两路差分数据线(DN和DP)。实际应用中,可以选取其中一路数据线的信号来生成高电平矩形脉冲。

具体地说,差分数据线(DN或DP)在同步字到来之前的状态是稳定的常高或者常低。因此,可以利用边沿触发来判断同步字的到来。

实际应用中,第一时长是可根据需要进行设置的,例如可设置第一时长为250ns,即1.5个周期的同步字的方波信号。

如果直接利用12MHz的时钟在250ns的时间内计数(利用计数器,每个时钟周期计数器的数值加1),12MHz时钟的计数周期为83.3ns左右,总共的计数值会很小,每个最小的计数单位的偏差会很大,用这种偏差来校准时钟,精度会很低。因此本发明利用锁相环对待校准的12MHz时钟进行倍频,得到待校准的倍频时钟(即第二时钟)。实际应用中可以进行64倍频,得到待校准的768MHz时钟。

这样,在第一时长的高电压脉冲的窗口中,利用第二时钟进行计数得到计数值(即第一数值),与理论上的倍频后的第二时钟应该在窗口中的计数值进行比较,以确定如何调整第一时钟的控制字。

例如,第二时钟为768MHz,窗口时长为250ns,理论上768MHz可以计192个数,将第二数值与192相比较,根据比较结果调整控制字。若第二数值大于192,则调小控制字,降低第一时钟的频率;反之,调大控制字,提高第一时钟的频率。本校准方法的步骤可以每个控制周期(1ms)使用一次,直到第一数值等于第二数值。

理论上第二时钟计数192对应时钟为12MHz,第二时钟计1个数对应0.0625MHz的频率。第二时钟计数值等于192,倍频前的第一时钟与理论上完全精准的12MHz时钟之间的偏差不会超过1个数,即0.0625MHz。校准的精度约为0.52%,提高了USB芯片内部时钟校准的精度。

本发明用倍频后的待校准的时钟帧头的同步字的时间窗口中计数,用计数值与理论计数值相比较,得到偏差,利用偏差对待校准时钟进行校准,由于同步字的周期是固定且准确的,且待校准的时钟经过倍频,待校准时钟在同步字时间窗口内的计数与理论值的偏差精度更高,因而根据偏差进行校准精度更高。

<第二实施例>

上述S1步骤,进一步包括以下步骤:

S11步骤,响应于检测到同步字的第一边沿,对第三数值进行判断:若第三数值=0,则将特定信号由低变为高,第三数值加1;若0<第三数值<特定数值,则第三数值加1;若第三数值=特定数值,则将特定信号由高变为低,将第三数值清0;其中,特定信号用于形成高电平矩形脉冲;

S2步骤,进一步包括以下步骤:

S21步骤,响应于检测到特定信号的上升沿,启动计数器,每检测到第二时钟的第二边沿,计数器的计数值加1;

S22步骤,响应于检测到特定信号的下降沿,计数器停止计数,将计数器的计数值作为第一数值。

具体地说,S1步骤中的第一边沿可以是上升沿或者下降沿,或者是双沿均可。第三数值为已经检测到的边沿的数量。第三数值=0,说明刚刚检测到同步字。特定信号默认状态为低电平,当检测到第一边沿时,变为高电平。0<第三数值<特定数值,说明高电平矩形脉冲还未达到第一时长,不对特定的电压进行转换,继续维持高电压。第三数值=特定数值,说明高电平矩形脉冲达到第一时长,因此将特定信号转换为低电平,并将第三数值清0,为了下个操作周期生成高电平矩形脉冲做准备。这样就形成了一个完整的第一时长的高电平矩形脉冲。特定数值用于衡量高电平矩形脉冲是否维持了第一时长的时间,特定数值与第一时长存在对应关系。例如,第一边沿为双沿,即每检测到一个边沿,代表特定信号维持了同步字的方波的半个周期。想要高电平矩形脉冲的第一时长为1.5个同步字的方波的周期,则特定数值为3。理论上第三数值不会超过特定数值。但实际应用中,可能出现由于器件受到干扰导致第三数值大于特定数值的情况,这时可以将第三数值清零。

S2步骤即在高电平矩形脉冲的时间窗口中用倍频的第二时钟计数,每个第二时钟的周期计1次数。本实施例中利用第二时钟的上升沿或下降沿作为触发(即第二边沿),每次触发都计1次数。

本实施例提供了一种利用同步字生成高电平矩形脉冲的方法和一种在高电平矩形脉冲的窗口内利用待校准时钟进行计数的方法,同步字的时间精度较高,因而待校准时钟在高电平矩形脉冲的窗口计数的精度较高,因而根据计数校准待校准时钟的精度较高。

<第三实施例>

上述S3步骤,进一步包括以下步骤:

S31步骤,比较第一数值和第二数值的大小:若第一数值>第二数值,则将控制字的当前校准位对应的数值置为0;若第一数值<第二数值,则将当前校准位对应的数值置为1;

其中,当前校准位对应控制字的1位,初始状态下,当前校准位对应控制字的最高位,每经过一个操作周期,将当前校准位对应控制字的位降低1位。

本实施例提供的校准方法中,控制字用于控制第一时钟的输出频率,控制字与第一时钟的输出频率是线性对应的。控制字通常为8位。USB主设备和USB从设备刚刚连接时,控制字默认值可以是11111111B(二级制),这时第一时钟的输出频率应大于12MHz,控制字为最大值时,若第一时钟的输出频率小于12MHz,则无法通过调整控制字对第一时钟进行调整。

本实施例能够通过二分法,从高到低依次调整控制字的每一位的数值。例如,第一个操作周期内计数,第一数值为300,比192大,则将控制字的最高位(即当前校准位)的数值置0,此时控制字的数值为01111111B,控制字会控制第一时钟的频率;在第二个操作周期内继续计数,这时计得新的第一数值为150,小于192,此时当前控制位为次高位,将次高位的数值置为1,此时控制字的数值仍为01111111B。如此从高到低,依次调整控制字每一位的数值,直到倍频后的第二时钟在一个高电平矩形脉冲能够计192个数。

具体地说,本实施例的方法不一定必须从高到低,调整控制字的所有位的数值,只要第一数值等于第二数值即可。

本实施例提供了一种利用二分法更精确的调整待校准的时钟的时钟频率的方法,因而能够更精确地校准USB内部时钟。

<第四实施例>

上述S4步骤之后,还包括以下步骤:

S5步骤,关闭利用帧头的同步字获取第一时长的高电平矩形脉冲的功能;

S6步骤,利用第三时钟计时第二时长;第二时长小于操作周期;

S7步骤,开启利用帧头的同步字获取第一时长的高电平矩形脉冲的功能;第二时长小于操作周期。

具体地说,第三时钟可以是USB芯片内置的32KHz时钟(精度较低),第二时长小于操作周期,操作周期为1ms,第二时长可以是900μs。

由于USB芯片的数据线除了输出同步字之外,还会输出其他数据,但只有同步字的周期是精准的,可以用于进行内部时钟的校准,关闭利用帧头的同步字获取第一时长的高电平矩形脉冲的功能,屏蔽了其他无用信号。USB设备每隔1ms发送帧头和数据,通常在1ms的后200μs,USB芯片的数据线会恢复到常高或者常低的状态。在这个时间段内开启利用帧头的同步字获取第一时长的高电平矩形脉冲的功能,不会受其他任何信号的影响。因此,需要关闭上述功能,直到USB芯片的数据线恢复到常高或者常低的状态。利用第三时钟计时第二时长,第二时长长到足以确定USB芯片的数据线恢复到常高或者常低的状态。第二时长需要小于操作周期,若长于操作周期,会错过下一个操作周期的帧头的同步字,还有可能采集到其他无关数据,导致校准失准。

具体地说,关闭利用帧头的同步字获取第一时长的高电平矩形脉冲的功能,可以使输出高电平矩形脉冲的数据线一直处于复位常低状态。开启可以取消复位常低状态。

图2为实施例四的USB芯片的数据线、用于生成高电平矩形脉冲的特定信号的波形图。第三时钟可以响应于高电平矩形脉冲的下降沿后处于使能状态,也可以响应于抓取到同步字后处于使能状态,在利用第三时钟计数第二时长后(例如利用第三时钟连接的边沿触发计数器计数,记到设定对应第二时长的数值),关闭使能。然后在下个操作周期,继续使能。

本实施例提供的开启和关闭抓取帧头信号同步字功能的方法,由于数据线中除了同步字以外,还有其他很多周期不稳定的信号,但只有帧头的同步字的精度高,适合用于校准USB芯片的内部时钟,本实施例屏蔽了同步字以外的信号,因而校准的精确度更高。

基于同一发明构思,本发明实施例中还提供了装置和芯片,由于该装置和芯片解决问题的原理与上述方法相似,因此该装置和芯片的实施可以参见方法的实施,重复之处不再赘述。

<第五实施例>

图3是本发明提供的一种校准USB芯片时钟的装置示意图。该装置应用在USB芯片中,包括以下模块:

获取模块,用于利用帧头的同步字获取第一时长的高电平矩形脉冲;

计数模块,用于利用第二时钟在高电平矩形脉冲的时间窗口内进行计数,得到第一数值;其中,第二时钟为利用锁相环对第一时钟进行倍频获得的;

校准模块,用于利用第一数值和第二数值对第一时钟的控制字进行校准,以对第一时钟进行校准;其中,第二数值为第一时钟为理论上的准确值时,第二时钟在高电平矩形脉冲的时间窗口内计得的数值。

在本发明的优选实施例中,上述获取模块,包括以下子模块:

脉冲生成子模块,用于响应于检测到同步字的第一边沿,对第三数值进行判断:若第三数值=0,则将特定信号由低变为高,第三数值加1;若0<第三数值<特定数值,则第三数值加1;若第三数值=特定数值,则将特定信号由高变为低,将第三数值清0;

其中,特定信号用于形成高电平矩形脉冲;

该计数模块,包括以下子模块:

启动子模块,用于响应于检测到特定信号的上升沿,启动计数器,每检测到第二时钟的第二边沿,计数器的计数值加1;

停止子模块,用于响应于检测到特定信号的下降沿,计数器停止计数,将计数器的计数值作为第一数值。

在本发明的优选实施例中,上述校准模块,包括以下子模块:

校准子模块,用于比较第一数值和第二数值的大小:若第一数值>第二数值,则将控制字的当前校准位对应的数值置为0;若第一数值<第二数值,则将当前校准位对应的数值置为1;

其中,当前校准位对应控制字的1位,初始状态下,当前校准位对应控制字的最高位,每经过一个操作周期,将当前校准位对应控制字的位降低1位。

进一步地,上述校准装置还包括以下子模块:

关闭模块,用于关闭利用帧头的同步字获取第一时长的高电平矩形脉冲的功能;

计时模块,用于利用第三时钟计时第二时长;第二时长小于操作周期;

开启模块,用于开启利用帧头的同步字获取第一时长的高电平矩形脉冲的功能。

在上述实施例的基础上,本发明进一步提供一种USB芯片,其中包括上述的校准装置。

上面对本发明所提供的校准USB芯片时钟的方法、装置和芯片进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质内容的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种计算机与终端设备匹配方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!