时钟精度调节模块与方法及应用其的通用串行总线设备转让专利

申请号 : CN201010235745.8

文献号 : CN101901022B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尤炜赵敏涛

申请人 : 中颖电子股份有限公司

摘要 :

本发明提供了一种时钟精度调节模块与方法及应用其的通用串行总线设备。时钟精度调节模块包括时钟计数器与精度调节控制器。时钟计数器连接于通用串行总线主机,在通用串行总线主机发送令牌包时,时钟计数器对脉冲信号的周期进行计数并输出计数值。精度调节控制器连接于时钟计数器与时钟振荡器。精度调节控制器接收计数值并根据计数值控制电子开关以调节脉冲信号的频率。本发明利用通用串行总线主机输出的时钟精度,对通用串行总线设备芯片内建的时钟振荡器做精度动态调整,精简了外部时钟振荡器的成本。

权利要求 :

1.一种时钟精度调节模块,连接于通用串行总线主机与时钟振荡器,所述时钟振荡器用于产生脉冲信号,所述时钟振荡器包括电容器与多个串接的电阻,所述这些串接的电阻形成电阻串联电路,在所述电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关,其特征在于,所述时钟精度调节模块包括:时钟计数器,连接于所述通用串行总线主机,在所述通用串行总线主机发送令牌包时,所述时钟计数器对所述脉冲信号的周期进行计数并输出计数值;以及精度调节控制器,连接于所述时钟计数器与所述时钟振荡器,所述精度调节控制器接收所述计数值并根据所述计数值控制所述这些电子开关以调节所述脉冲信号的频率。

2.根据权利要求1所述的时钟精度调节模块,其特征在于,在所述通用串行总线主机发送所述令牌包时,在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,所述时钟计数器对所述脉冲信号的周期进行计数并输出所述计数值。

3.根据权利要求2所述的时钟精度调节模块,其特征在于,在所述同步字段的所述第一个低电平到高电平的脉冲信号至所述包标识符字段的所述最后一个低电平到高电平的脉冲信号范围内,所述通用串行总线主机发送的所述令牌包的长度为15比特。

4.根据权利要求1所述的时钟精度调节模块,其特征在于,所述通用串行总线主机发送所述令牌包的速度为每秒1.5兆比特。

5.根据权利要求1所述的时钟精度调节模块,其特征在于,所述精度调节控制器包括:预调整值寄存器,存储多个预调整值;

控制元件,连接于所述时钟计数器与所述预调整值寄存器,所述控制元件接收所述计数值并根据所述计数值输出所述这些预调整值中的一个;以及译码器,连接于所述控制元件与所述时钟振荡器,所述译码器接收所述控制元件输出的所述这些预调整值中的一个,经译码后输出调节信号至所述时钟振荡器,用于控制所述这些电子开关。

6.根据权利要求5所述的时钟精度调节模块,其特征在于,所述调节信号为8比特的数字信号,以实现256档的选择控制。

7.一种应用时钟精度调节模块的通用串行总线设备,连接于通用串行总线主机以进行通信,其特征在于,所述通用串行总线设备包括:时钟振荡器,用于产生脉冲信号,所述时钟振荡器包括电容器与多个串接的电阻,所述这些串接的电阻形成电阻串联电路,在所述电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关;以及时钟精度调节模块,连接于所述通用串行总线主机与所述时钟振荡器,所述时钟精度调节模块包括:时钟计数器,连接于所述通用串行总线主机,在所述通用串行总线主机发送令牌包时,所述时钟计数器对所述脉冲信号的周期进行计数并输出计数值;以及精度调节控制器,连接于所述时钟计数器与所述时钟振荡器,所述精度调节控制器接收所述计数值并根据所述计数值控制所述这些电子开关以调节所述脉冲信号的频率。

8.根据权利要求7所述的通用串行总线设备,其特征在于,所述时钟振荡器产生的所述脉冲信号的频率为12兆赫兹。

9.根据权利要求7所述的通用串行总线设备,其特征在于,在所述通用串行总线主机发送所述令牌包时,在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,所述时钟计数器对所述脉冲信号的周期进行计数并输出所述计数值。

10.根据权利要求9所述的通用串行总线设备,其特征在于,在所述同步字段的所述第一个低电平到高电平的脉冲信号至所述包标识符字段的所述最后一个低电平到高电平的脉冲信号范围内,所述通用串行总线主机发送的所述令牌包的长度为15比特。

11.根据权利要求7所述的通用串行总线设备,其特征在于,所述通用串行总线主机发送所述令牌包的速度为每秒1.5兆比特。

12.根据权利要求7所述的通用串行总线设备,其特征在于,所述精度调节控制器包括:预调整值寄存器,存储多个预调整值;

控制元件,连接于所述时钟计数器与所述预调整值寄存器,所述控制元件接收所述计数值并根据所述计数值输出所述这些预调整值中的一个;以及译码器,连接于所述控制元件与所述时钟振荡器,所述译码器接收所述控制元件输出的所述这些预调整值中的一个,经译码后输出调节信号至所述时钟振荡器,用于控制所述这些电子开关。

13.根据权利要求12所述的通用串行总线设备,其特征在于,所述调节信号为8比特的数字信号,以实现256档的选择控制。

14.一种时钟精度调节方法,用于调节通用串行总线设备的时钟振荡器产生的脉冲信号的频率,所述时钟振荡器包括电容器与多个串接的电阻,所述这些串接的电阻形成电阻串联电路,在所述电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关,其特征在于,所述时钟精度调节方法包括下述步骤:在通用串行总线主机发送令牌包时,对所述脉冲信号的周期进行计数并输出计数值,其中包括:在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,对所述脉冲信号的周期进行计数并输出所述计数值;

接收所述计数值并根据所述计数值控制所述这些电子开关以调节所述脉冲信号的频率。

15.一种时钟精度调节方法,用于调节通用串行总线设备的时钟振荡器产生的脉冲信号的频率,所述时钟振荡器包括电容器与多个串接的电阻,所述这些串接的电阻形成电阻串联电路,在所述电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关,其特征在于,所述时钟精度调节方法包括下述步骤:在通用串行总线主机发送令牌包时,对所述脉冲信号的周期进行计数并输出计数值;

以及

接收所述计数值并根据所述计数值控制所述这些电子开关以调节所述脉冲信号的频率,其中包括:接收所述计数值并根据所述计数值输出多个预调整值中的一个;以及

译码所述这些预调整值中的一个并输出调节信号至所述时钟振荡器,用于控制所述这些电子开关。

说明书 :

时钟精度调节模块与方法及应用其的通用串行总线设备

技术领域

[0001] 本发明有关于一种时钟精度调节技术,特别是有关于一种时钟精度调节模块与方法及应用其的通用串行总线设备。

背景技术

[0002] 随着通用串行总线(Universal Serial Bus,USB)设备,诸如鼠标、键盘的大量应用普及,这类USB设备内部集成电路芯片由于USB协议的要求,对时钟频率的精度要求非常高(含全温度条件下±1.5%),故通常都会采用外接精度很高的时钟震荡器提供时钟源。
[0003] 采用外接时钟震荡器的方式虽然可为USB设备内部集成电路芯片提供精确的时钟源,然而,因为要外接时钟震荡器,故组件成本就会增加,且不符合系统高集成的应用需求。

发明内容

[0004] 本发明的目的在于提供一种时钟精度调节模块与方法及应用其的通用串行总线设备,以改善现有技术的缺失。
[0005] 为解决所述技术问题,本发明的技术方案是:
[0006] 本发明提供的时钟精度调节模块连接于通用串行总线主机与时钟振荡器。时钟振荡器用于产生脉冲信号且包括电容器与多个串接的电阻。这些串接的电阻形成电阻串联电路,在电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关。时钟精度调节模块包括时钟计数器与精度调节控制器。时钟计数器连接于通用串行总线主机,在通用串行总线主机发送令牌包时,时钟计数器对脉冲信号的周期进行计数并输出计数值。精度调节控制器连接于时钟计数器与时钟振荡器。精度调节控制器接收计数值并根据计数值控制电子开关以调节脉冲信号的频率。
[0007] 在本发明的一实施例中,在通用串行总线主机发送令牌包时,在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,时钟计数器对脉冲信号的周期进行计数并输出计数值。
[0008] 在本发明的一实施例中,在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,通用串行总线主机发送的令牌包的长度为15比特。
[0009] 在本发明的一实施例中,通用串行总线主机发送令牌包的速度为每秒1.5兆比特。
[0010] 在本发明的一实施例中,精度调节控制器包括预调整值寄存器、控制元件以及译码器。预调整值寄存器存储多个预调整值。控制元件连接于时钟计数器与预调整值寄存器,控制元件接收计数值并根据计数值输出这些预调整值中的一个。译码器连接于控制元件与时钟振荡器,译码器接收控制元件输出的这些预调整值中的一个,经译码后输出调节信号至时钟振荡器,用于控制电子开关。
[0011] 在本发明的一实施例中,调节信号为8比特的数字信号,以实现256档的选择控制。
[0012] 本发明提供的通用串行总线设备连接于通用串行总线主机以进行通信。通用串行总线设备包括时钟振荡器与时钟精度调节模块。时钟振荡器用于产生脉冲信号且包括电容器与多个串接的电阻,这些串接的电阻形成电阻串联电路,在电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关。时钟精度调节模块连接于通用串行总线主机与时钟振荡器。时钟精度调节模块包括时钟计数器与精度调节控制器。时钟计数器连接于通用串行总线主机,在通用串行总线主机发送令牌包时,时钟计数器对脉冲信号的周期进行计数并输出计数值。精度调节控制器连接于时钟计数器与时钟振荡器。精度调节控制器接收计数值并根据计数值控制电子开关以调节脉冲信号的频率。
[0013] 在本发明的一实施例中,时钟振荡器产生的脉冲信号的频率为12兆赫兹。
[0014] 在本发明的一实施例中,在通用串行总线主机发送令牌包时,在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,时钟计数器对脉冲信号的周期进行计数并输出计数值。
[0015] 在本发明的一实施例中,在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,通用串行总线主机发送的令牌包的长度为15比特。
[0016] 在本发明的一实施例中,通用串行总线主机发送令牌包的速度为每秒1.5兆比特。
[0017] 在本发明的一实施例中,精度调节控制器包括预调整值寄存器、控制元件以及译码器。预调整值寄存器存储多个预调整值。控制元件连接于时钟计数器与预调整值寄存器,控制元件接收计数值并根据计数值输出这些预调整值中的一个。译码器连接于控制元件与时钟振荡器,译码器接收控制元件输出的这些预调整值中的一个,经译码后输出调节信号至时钟振荡器,用于控制电子开关。
[0018] 在本发明的一实施例中,调节信号为8比特的数字信号,以实现256档的选择控制。
[0019] 本发明提供的时钟精度调节方法用于调节通用串行总线设备的时钟振荡器产生的脉冲信号的频率。时钟振荡器包括电容器与多个串接的电阻,这些串接的电阻形成电阻串联电路,在电阻串联电路的一端与各电阻的串接点之间跨设一个电子开关。时钟精度调节方法包括下述步骤。在通用串行总线主机发送令牌包时,对脉冲信号的周期进行计数并输出计数值。接收计数值并根据计数值控制电子开关以调节脉冲信号的频率。
[0020] 在本发明的一实施例中,在通用串行总线主机发送令牌包时,对脉冲信号的周期进行计数并输出计数值的步骤包括下述步骤。在同步字段的第一个低电平到高电平的脉冲信号至包标识符字段的最后一个低电平到高电平的脉冲信号范围内,对脉冲信号的周期进行计数并输出计数值。
[0021] 在本发明的一实施例中,接收计数值并根据计数值控制电子开关以调节脉冲信号的频率的步骤包括下述步骤。接收计数值并根据计数值输出多个预调整值中的一个。译码这些预调整值中的一个并输出调节信号至时钟振荡器,用于控制电子开关。
[0022] 与现有技术相比,本发明的有益效果可以是:
[0023] 本发明利用USB设备在与USB主机通信时,USB主机输出的时钟精度,对USB设备芯片内建的时钟振荡器做精度动态调整,解决了传统内建时钟振荡器易受外界环境对时钟精度的影响干扰,达到USB通信对设备高精度时钟的要求,同时也精简外部时钟振荡器的成本,实现系统高集成的应用需求。
[0024] 为让本发明的所述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。

附图说明

[0025] 图1为根据本发明一较佳实施例的通用串行总线设备的功能方块图。
[0026] 图2为根据本发明一较佳实施例的时钟振荡器的电路图。
[0027] 图3为根据本发明一较佳实施例的令牌包的示意图。
[0028] 图4为根据本发明一较佳实施例的时钟精度调节方法的流程图。

具体实施方式

[0029] 图1为根据本发明一较佳实施例的通用串行总线设备的功能方块图。图2为根据本发明一较佳实施例的时钟振荡器的电路图。图3为根据本发明一较佳实施例的令牌包的示意图。请参考图1、图2以及图3。在本实施例中,通用串行总线(Universal Serial Bus,USB)设备1连接于USB主机2以进行通信。USB设备1可为鼠标、键盘等装置,然而,本发明对此不作任何限定。
[0030] 在本实施例中,USB设备1可为对时钟精度要求为±1.5%的USB1.0或USB1.1设备。USB1.0只有低速(Low Speed,1.5Mbps)一种传输模式,USB1.1增加了全速(Full Speed,12Mbps)模式。由于USB主机2的时钟频率精度非常高,可达到±1.5%,因此,以USB主机2与USB设备1通信时所输出的高精度信号作为基准对USB设备1的内部时钟进行动态调整,可达到互相通信时不受时钟频率偏差的目的。
[0031] 在本实施例中,USB设备1包括时钟振荡器11与时钟精度调节模块12。时钟精度调节模块12连接于USB主机2与时钟振荡器11。
[0032] 在本实施例中,时钟振荡器11用于产生脉冲信号,以为USB设备1提供时钟源。如图2所示,时钟振荡器11包括电容器C、反向器OA以及多个串接的电阻R1~RN。这些串接的电阻R1~RN形成电阻串联电路。此电阻串联电路、电容器C以及反向器OA构成一常见的振荡电路,其输出的脉冲信号的频率值由电容器C和电阻串联电路的阻值决定。当把电容器C的值设计的较小时,时钟振荡器11的特性参数将主要取决于电阻串联电路的阻值。
[0033] 在本实施例中,在电阻串联电路的一端与各电阻R1~RN的串接点J1~JN-1之间跨设一个电子开关K1~KN-1。通过控制电子开关K1~KN-1的启闭,可以调节电阻串联电路的阻值,从而提高时钟振荡器11的精度。然而,本发明对此不作任何限定。在其它实施例中,也可通过电容器并联电路或者电阻串联电路与电容器并联电路两者相结合的方式来调节时钟振荡器11的精度。
[0034] 在本实施例中,时钟精度调节模块12包括时钟计数器120与精度调节控制器121。时钟计数器120连接于USB主机2,精度调节控制器121连接于时钟计数器120与时钟振荡器11。
[0035] 按照USB协议的定义,在USB上数据信息的一次接收或发送的处理过程称为事务处理。事务处理的类型包括输入(IN)事务处理、输出(OUT)事务处理、设置(SETUP)事务处理等类型。无论是上述哪种事务处理,都会首先由USB主机2向USB设备1发送令牌包(Token Packet)。令牌包的格式固定为8比特(bit)同步(SYNC)字段+8bit包标识符(PID)字段+7bit设备地址(ADDR)字段+4bit端点(ENDP)字段+5bit循环冗余校验(CRC5)字段。
[0036] SYNC字段是使USB主机2与总线的包传输率同步,其数值固定为00000001。
[0037] PID字段用来表示包的类型,其由4bit的包类型字段和4bit的校验字段构成。PID是USB包类型的唯一标志,USB主机2和USB设备1在接收到包后,必须首先对PID解码得到包的类型,并判断其意义从而做出下一个反应。PID中的校验字段是通过对类型字段的每个位求反码产生的,它是用来对包类型字段进行错误检测用的,旨在保证对包的标识符译码的可靠性,如果4bit的检验位不是它们各自的类型位的反码,则说明标识符中的信息有错误。在本实施例中,仅以IN事务处理中对应的令牌包为例进行说明。如图3所示,PID字段对应为10010110,其校验字段0110是前面类型字段的每个位的反码,说明标识符中的信息正确。然而,本发明对此不作任何限定。在其它实施例中,PID字段值也可对应为其它事务处理,例如为OUT或SETUP的00011110或11010010。
[0038] ADDR字段可用来寻址USB设备1。ENDP字段用来寻址USB设备1的端点。CRC5字段是根据传输的数据算出的校验值,藉此来判断数据的正确性。
[0039] 由于USB主机2向USB设备1发送的令牌包长度皆为固定值,因此,时钟计数器120可在USB主机2向USB设备1发送令牌包时,对时钟振荡器11产生的脉冲信号的周期进行计数并输出计数值。在本实施例中,时钟计数器120是在SYNC字段的第一个低电平到高电平的脉冲信号至PID字段的最后一个低电平到高电平的脉冲信号范围内,对时钟振荡器11产生的脉冲信号的周期进行计数并输出计数值。然而,本发明对此不作任何限定,只要确保时钟振荡器11是在固定长度的范围内进行计数即可。
[0040] 具体而言,当本实施例中的USB设备为1.0时,代表对应数据线D-上会有脉冲信号。因此,可参照图3中的数据线D-,其从SYNC字段的第一个低电平(Low)到高电平(High)的脉冲信号至PID字段的最后一个低电平到高电平的脉冲信号的长度固定为15bit。然而,本发明对此不作任何限定。在其它实施例中,当USB设备为1.1时,代表对应数据线D+上会有脉冲信号。此时可参照图3中的数据线D+,其从SYNC字段的第一个低电平(Low)到高电平(High)的脉冲信号至PID字段的最后一个低电平到高电平的脉冲信号的长度也固定为15bit。
[0041] 在本实施例中,时钟振荡器11产生的脉冲信号的频率可为12兆赫兹(MHz),其相当于图3中USB主机2发送的脉冲信号的8倍频率(本实施例中的USB设备为1.0,即USB主机2以1.5Mbps的速度与USB设备1进行通信)。然而,本发明对此不作任何限定。在其它实施例中,基于节约功耗的目的,时钟振荡器11产生的脉冲信号的频率也可为9兆赫兹,只要确保时钟振荡器11产生的脉冲信号的频率大于USB主机2发送的脉冲信号的频率的4倍即可。
[0042] 在本实施例中,当时钟振荡器11产生的脉冲信号的频率为12MHz时,一个bit理论上应对应有8个脉冲信号的周期。因此,在上述15bit的范围内,应对应有120个脉冲信号的周期。并且,每个周期之间对应的偏差为1/120=0.83%。此时,若在上述15bit的范围内,时钟计数器120输出的计数值小于120时,代表时钟振荡器11的频率偏快;反之,若时钟计数器120输出的计数值小于120时,代表时钟振荡器11的频率偏慢。
[0043] 在本实施例中,精度调节控制器121接收时钟计数器120输出的计数值并根据此计数值控制图2中的这些电子开关K1~KN-1以调节时钟振荡器11输出的脉冲信号的频率。
[0044] 具体而言,在本实施例中,精度调节控制器121包括控制元件1210、预调整值寄存器1211以及译码器1212。控制元件1212分别连接于时钟计数器120、预调整值寄存器1211以及译码器1212。预调整值寄存器1211存储多个预调整值。控制元件1212接收时钟计数器120输出的计数值并根据此计数值输出一个预调整值。译码器1212接收此预调整值经译码后输出调节信号至时钟振荡器11,用于控制图2中的电子开关K1~KN-1的启闭。
[0045] 在本实施例中,译码器1212输出的调节信号可为8比特的数字信号,因此可实现256档的选择控制。然而,本发明对此不作任何限定。在其它实施例中,也可根据实际需要,适当增加或减少比特数。
[0046] 在本实施例中,时钟振荡器11输出的脉冲信号的频率可在12MHz±30%的范围内调节,因此,对应每一档,其调节值约为±0.25%。然而,本发明对此不作任何限定。在其它实施例中,也可根据实际需要设定不同的调节范围。
[0047] 举例而言,在本实施例中,若时钟计数器120输出的计数值为121,比理论值120多了一个时钟周期,此时误差范围为0.83%,位于允许的误差范围±1.5%内。因此,不需要调节时钟振荡器11输出的脉冲信号的频率,即图2中的电子开关K1~KN-1的启闭不需作调节。
[0048] 若时钟计数器120输出的计数值为118,比理论值120少了两个时钟周期,此时误差范围为-1.66%,超出允许的误差范围±1.5%。因此,精度调节控制器121需要对时钟振荡器11输出的脉冲信号的频率作调节。因每一档的调节值约为±0.25%,因此,则需要译码器1212输出的对应的调节信号来控制电子开关K1~KN-1增加7个档位,即减少7个串联的电阻。
[0049] 图4为根据本发明一较佳实施例的时钟精度调节方法的流程图。请参考图1、图2以及图4。在步骤S41中,在USB主机2发送令牌包时,对脉冲信号的周期进行计数并输出计数值。具体而言,由于USB主机1与USB设备1进行数据通信时,其首先会发送一个令牌包,且此令牌包具有固定的长度。因此,在本实施例中,时钟精度调节模块12的时钟计数器120选择在令牌包中SYNC的第一个低电平到高电平的脉冲信号至PID字段的最后一个低电平到高电平的脉冲信号范围作为计数时间范围的参照,以对时钟振荡器产生的脉冲信号的周期进行计数并输出计数值。然而,本发明对此不作任何限定。
[0050] 在步骤S42中,接收计数值并根据计数值输出多个预调整值中的一个。具体而言,控制元件1212接收时钟计数器120输出的计数值后,会根据此计数值偏离时钟周期理论值的个数来从预调整值寄存器1211中选择一个预调整值。此预调整值可为一个7bit的数字信号,代表欲增加或减去的电子开关K1~KN-1的档位数。
[0051] 在步骤S43中,译码所述这些预调整值中的一个并输出调节信号至时钟振荡器11,用于控制电子开关K1~KN-1。具体而言,译码器1212在接收到控制元件1212输出的预调整值后,会通过译码再输出调节信号至时钟振荡器11,用于控制图2中的电子开关K1~KN-1的启闭,以将时钟振荡器11的频率调整至误差范围内。
[0052] 综上所述,本发明较佳实施例利用USB设备在与USB主机通信时,USB主机输出的时钟精度,对USB设备芯片内建的时钟振荡器做精度动态调整,解决了传统内建时钟振荡器易受外界环境对时钟精度的影响干扰,达到USB通信对设备高精度时钟的要求,同时也精简外部时钟振荡器的成本,实现系统高集成的应用需求。由于每次USB主机在与USB设备通信时,会首先发送一个固定长度的令牌包,而本发明较佳实施例中的时钟精度调节模块即利用此固定长度范围作为计数时间范围的参照,因此,可实现实时的精度调整,确保互相通信时不受时钟频率偏差的影响。
[0053] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定者为准。