一种USB设备控制器低功耗设计方法转让专利

申请号 : CN201010040042.X

文献号 : CN101794168B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 沈海斌顾良赖英超

申请人 : 浙江大学

摘要 :

本发明公开了一种USB设备控制器的低功耗设计方法。本发明根据USB传输规定,结合本发明的低功耗设计思路,本发明根据USB设备控制器中的不同状态机并不是在所有时刻都处在工作状态这一事实,对令牌包状态机,数据包状态机,握手包状态机,包发送状态机,实现分时开启和关闭功能,有效降低了USB设备控制器功耗。本发明与现有技术相比具有的有益效果:现有技术一般根据总线监测模块来开启或关闭USB设备控制器,而事实上不同状态机并不是所有时刻都处在工作状态,因此传统低功耗方法没有将低功耗效益发挥到最好。本发明通过对设备控制器不同状态机开启和关闭,进一步降低了功耗。实验表明,USB设备控制器的功耗能降低了30%。

权利要求 :

1.一种USB设备控制器低功耗设计方法,USB设备控制器是USB总线传输系统中的一个模块;USB总线传输系统由USB主机(100)、USB集线器(102)、USB设备(104)和CPU模块(106)组成;其中的USB设备(104)由设备收发器(200)、设备控制器(202)、设备配置模块(204)、缓冲模块(206)、AMBA接口模块(214)和DMA模块(118)组成;其中的设备控制器(202)由令牌包检测状态机(212)、数据包检测状态机(214)、握手包检测状态机(216)、包发送状态机(218)、端点仲裁模块(220)、主状态机(222)和总线状态监测模块(224)组成;其特征在于包括如下步骤:

1)主状态机(222)的初始化状态为令牌包等待状态(300),令牌包等待状态(300)检测USB主机(100)发送的令牌包(800),若检测到的令牌包(800)为IN包(308),则关闭令牌包检测状态机(212),打开包发送状态机(218),同时转移到步骤2);若检测到SETUP包(304)或者OUT包(306),则关闭令牌包检测状态机(212),打开数据包检测状态机(214),同时转移到步骤3);

2)若USB设备(104)能向USB主机(100)发送数据,则USB设备(104)开始发送数据包(312),USB设备(104)发送数据包(1000)结束,则关闭包发送状态机(218),打开握手包检测状态机(216),同时转移到步骤4);若USB设备(104)不能向USB主机(100)发送数据,则USB设备(104)直接发送握手包(316),握手包发送结束时,则关闭包发送状态机(218),打开令牌包检测状态机(212),同时转移到步骤1);

3)若检测到USB主机(100)发送的有效数据包(320),则关闭数据包检测状态机(214),打开包发送状态机(218),同时转移到步骤5),若检测到USB主机(100)发送的无效数据包(1000),则关闭数据包检测状态机(214),打开令牌包检测状态机(212),同时转移到步骤1);若USB主机(100)没有发送数据包(318),则关闭数据包检测状态机(214),打开令牌包检测状态机(212),同时转移到步骤1);

4)若检测到USB主机(100)发送的握手包(314),则关闭握手包检测状态机(216),打开令牌包检测状态机(212),同时转移到步骤1);若USB主机(100)没有回复握手包(324),则关闭握手包检测状态机(216),打开令牌包检测状态机(212),同时转移到步骤1);

5)USB设备(104)向USB主机(100)发送握手包(316),握手包(1100)发送结束时,则关闭包发送状态机(218),打开令牌包检测状态机(212),同时转移到步骤1)。

2.根据权利要求1所述的USB设备控制器(202)低功耗设计方法,其特征在于当USB总线事务传输空闲时,打开所述的令牌包检测状态机(212),在USB总线接收数据包即数据包检测状态机(214)工作,接收握手包即握手包检测状态机(216)工作,发送数据包以及握手包即包发送状态机(218)工作时,关闭令牌包检测状态机(212)。

3.根据权利要求1所述的USB设备控制器(202)低功耗设计方法,其特征在于当USB设备接收到SETUP包(304)或者OUT包(306)时,打开所述的数据包检测状态机(214),当主机发送数据包发生Timeout(318)或者数据包接收完成时(310),关闭数据包检测状态机(214)。

4.根据权利要求1所述的USB设备控制器(202)低功耗设计方法,其特征在于当SETUP包(304)或者OUT包(306)之后的数据包(310)接收完成时,表明USB主机(100)正常发送了该次传输的数据包(310),此时打开所述的包发送状态机(218),当握手包发送完成时,关闭包发送状态机(218)。

5.根据权利要求1所述的USB设备控制器(202)低功耗设计方法,其特征在于当USB设备接收到IN包(308)时,打开所述的包发送状态机(218),若设备能向主机发送数据,则设备此时开始发送数据包(312),若设备不能向主机发送数据,则设备直接发送握手包(316),包发送完成时,关闭包发送状态机(218)。

6.根据权利要求1所述的USB设备控制器(202)低功耗设计方法,其特征在于当IN传输过程中设备发送完数据(312)之后,打开所述的握手包检测状态机(216),当主机没有发送握手包即设备发生握手包Timeout(324)或者握手包接收(314)完成时,关闭握手包检测状态机(216)。

说明书 :

一种USB设备控制器低功耗设计方法

技术领域

[0001] 本发明涉及低功耗设计方法,尤其涉及一种USB设备控制器低功耗设计方法。

背景技术

[0002] 随着个人电脑以及数码产品的日益普及,通用串行总线USB成为PC机的标准接口已经是既定事实。目前开发的支持USB接口外设产品也与日剧增,例如:数码相机,扫描仪,键盘,鼠标,优盘等。由于USB设备具有支持热插拔,携带方便,安装简单,成本低等优点,势必被应用在大量场合。
[0003] 根据摩尔定律,每18个月晶体管密度增加一倍,而电源技术要达到相同的增速,需要5年,显然电源技术已成瓶颈。电路里的大电流会使产品的寿命和可靠性降低。电源的动态压降严重的时候还会造成失效。因此如何降低芯片功耗已经成为当前集成电路设计中的关键因素之一。
[0004] 本发明研究USB设备控制器的设计,同时将低功耗技术引入到设计中。通过对不同状态机有选择性的开放和关闭,有效的降低了USB设备控制器的功耗。

发明内容

[0005] 本发明的目的克服现有技术的不足,提供了一种USB设备控制器低功耗设计方法。
[0006] USB设备控制器低功耗设计方法,USB设备控制器是USB总线传输系统中的一个模块;USB总线传输系统由USB主机、USB集线器、USB设备和CPU模块组成;其中的USB设备由设备收发器、设备控制器、设备配置模块、缓冲模块、AMBA接口模块和DMA模块组成;其中的设备控制器由令牌包状态机、数据包状态机、握手包状态机、包发送状态机、端点仲裁模块、主状态机和总线状态监测模块组成;其特征在于包括如下步骤:
[0007] 1)主状态机的初始化状态为令牌包等待状态,令牌包等待状态检测USB主机发送的令牌包,若检测到的令牌包为IN包,则关闭令牌包检测状态机,打开包发送状态机,同时转移到步骤2);若检测到SETUP包或者OUT包,则关闭令牌包检测状态机,打开数据包检测状态机,同时转移到步骤3);
[0008] 2)若USB设备能向USB主机发送数据,则USB设备开始发送数据包,USB设备发送数据包结束,则关闭发送包状态机,打开握手包检测状态机,同时转移到步骤4);若USB设备不能向USB主机发送数据,则USB设备直接发送握手包,握手包发送结束时,则关闭发送包状态机,打开令牌包检测状态机,同时转移到步骤1);
[0009] 3)若检测到USB主机发送的有效数据包,则关闭数据包状态机,打开包发送状态机,同时转移到步骤5),若检测到USB主机发送的无效数据包,则关闭数据包状态机,打开令牌包检测状态机,同时转移到步骤1);若USB主机没有发送数据包,则关闭数据包状态机,打开令牌包检测状态机,同时转移到步骤1);
[0010] 4)若检测到USB主机发送的握手包,则关闭握手包检测状态机,打开令牌包检测状态机,同时转移到步骤1);若USB主机没有回复握手包,则关闭握手包检测状态机,打开令牌包检测状态机,同时转移到步骤1);
[0011] 5)USB设备向USB主机发送握手包,握手包发送结束时,则关闭发送包状态机,打开令牌包检测状态机,同时转移到步骤1)。
[0012] 当USB总线事务传输空闲时,打开所述的令牌包状态机,在USB总线接收数据包即数据包状态机工作,接收握手包即握手包状态机工作,发送数据包以及握手包即包发送状态机工作时,关闭令牌包状态机。
[0013] 当USB设备接收到SETUP包或者OUT包时,打开所述的数据包状态机,当主机发送数据包发生Timeout或者数据包接收完成时,关闭数据包状态机。
[0014] 当SETUP包或者OUT包之后的数据包接收完成时,表明USB主机正常发送了该次传输的数据包,此时打开所述的包发送状态机,当握手包发送完成时,关闭包发送状态机。
[0015] 当USB设备接收到IN包时,打开所述的包发送状态机,若设备能向主机发送数据,则设备此时开始发送数据包,若设备不能向主机发送数据,则设备直接发送握手包。包发送完成时,关闭包发送状态机。
[0016] 当IN传输过程中设备发送完数据之后,打开所述的握手包检测状态机,当主机没有发送握手包即设备发生握手包Timeout或者握手包接收完成时,关闭握手包检测状态机。
[0017] 本发明与现有技术相比具有的有益效果:现有技术一般通过总线状态监测模块来检测USB总线活动状态,在USB总线没有活动时,关闭整个USB设备控制器,在总线有活动状态时,打开整个USB设备控制器,此时USB设备控制器的所有模块和所有状态机都被打开,而事实上在USB总线有活动的时候,这些模块和这些状态机并不需要在所有时刻都处在工作状态,因此传统的低功耗方法必然没有将低功耗的效益发挥到最好。本设计根据USB设备控制器中的模块和状态机并不需要在所有时刻都处在工作状态这一基本事实,对不同状态机即令牌包状态机,数据包状态机,握手包状态机,包发送状态机,实现分时开启和关闭功能,有效的降低了USB设备控制器功耗,实验结果表明,在本设计的低功耗引入前后,USB设备控制器的功耗能降低30%。

附图说明

[0018] 图1是USB系统的框架图;
[0019] 图2是USB设备控制器的框架图;
[0020] 图3是USB设备控制器中主状态机转换图;
[0021] 图4是主状态机与令牌包状态机的交互信号示意图;
[0022] 图5是主状态机与数据包状态机的交互信号示意图;
[0023] 图6是主状态机与握手包状态机的交互信号示意图;
[0024] 图7是主状态机与包发送状态机的交互信号示意图;
[0025] 图8是令牌包格式示意图;
[0026] 图9是帧包格式示意图;
[0027] 图10是数据包格式示意图;
[0028] 图11是握手包格式示意图。

具体实施方式

[0029] USB设备控制器低功耗设计方法,USB设备控制器是USB总线传输系统中的一个模块;USB总线传输系统由USB主机100、USB集线器102、USB设备104和CPU模块106组成;其中的USB设备104由设备收发器200、设备控制器202、设备配置模块204、缓冲模块206、AMBA接口模块214和DMA模块118组成;其中的设备控制器202由令牌包状态机212、数据包状态机214、握手包状态机216、包发送状态机218、端点仲裁模块220、主状态机222和总线状态监测模块224组成;其特征在于包括如下步骤:
[0030] 1)主状态机222的初始化状态为令牌包等待状态300,令牌包等待状态300检测USB主机100发送的令牌包800,若检测到的令牌包800为IN包308,则关闭令牌包检测状态机212,打开包发送状态机218,同时转移到步骤2);若检测到SETUP包304或者OUT包306,则关闭令牌包检测状态机212,打开数据包检测状态机214,同时转移到步骤3);
[0031] 2)若USB设备能向USB主机100发送数据,则USB设备104开始发送数据包312,USB设备104发送数据包1000结束,则关闭发送包状态机218,打开握手包检测状态机216,同时转移到步骤4);若USB设备104不能向USB主机100发送数据,则USB设备104直接发送握手包316,握手包发送结束时,则关闭发送包状态机218,打开令牌包检测状态机212,同时转移到步骤1);
[0032] 3)若检测到USB主机100发送的有效数据包320,则关闭数据包状态机214,打开包发送状态机218,同时转移到步骤5),若检测到USB主机100发送的无效数据包1000,则关闭数据包状态机214,打开令牌包检测状态机212,同时转移到步骤1);若USB主机100没有发送数据包318,则关闭数据包状态机214,打开令牌包检测状态机212,同时转移到步骤1);
[0033] 4)若检测到USB主机100发送的握手包314,则关闭握手包检测状态机216,打开令牌包检测状态机212,同时转移到步骤1);若USB主机100没有回复握手包324,则关闭握手包检测状态机216,打开令牌包检测状态机212,同时转移到步骤1);
[0034] 5)USB设备104向USB主机100发送握手包316,握手包1100发送结束时,则关闭发送包状态机218,打开令牌包检测状态机212,同时转移到步骤1)。
[0035] 当USB总线事务传输空闲时,打开所述的令牌包状态机212,在USB总线接收数据包即数据包状态机214工作,接收握手包即握手包状态机216工作,发送数据包以及握手包即包发送状态机218工作时,关闭令牌包状态机212。
[0036] 当USB设备接收到SETUP包304或者OUT包306时,打开所述的数据包状态机214,当主机发送数据包发生Timeout318或者数据包接收完成时310,关闭数据包状态机214。
[0037] 当SETUP包304或者OUT包306之后的数据包310接收完成时,表明USB主机100正常发送了该次传输的数据包,此时打开所述的包发送状态机218,当握手包发送完成时,关闭包发送状态机218。
[0038] 当USB设备接收到IN包308时,打开所述的包发送状态机218,若设备能向主机发送数据,则设备此时开始发送数据包312,若设备不能向主机发送数据,则设备直接发送握手包316。包发送完成时,关闭包发送状态机218。
[0039] 当IN传输过程中设备发送完数据312之后,打开所述的握手包检测状态机216,当主机没有发送握手包即设备发生握手包Timeout324或者握手包接收314完成时,关闭握手包检测状态机216。
[0040] 通常的USB总线系统如图1所示,其主要模块由USB主机100,USB集线器102,USB设备104,CPU模块106组成。USB设备104通常由设备收发器200,设备控制器202,缓冲模块206,设备配置模块204,AMBA接口116,DMA模块118组成。由图中可以看出,与本发明直接打交互的模块有设备收发器200,缓冲模块206,设备配置模块204。
[0041] 本发明USB设备控制器202主要由令牌包状态机212,数据包状态机214,握手包状态机216,包发送状态机218,端点仲裁模块220,主状态机222,总线状态检测模块224组成,其中设备收发器200中的包接收器208与令牌包状态机212,数据包状态机214,握手包状态机216相关联,分别由令牌包状态机212接收令牌包800,数据包状态机214接收数据包1000,握手包状态机216接收握手包1100。设备收发器200中的包发送器210与包发送状态机218相关联,用以包发送状态机218向USB主机100发送数据包1000或者握手包1100。数据包状态机214与设备配置模块204以及缓冲模块206相关联,用于USB数据向后处理模块发送,包发送状态机218与设备配置模块204以及缓冲模块206相关联,用于后处理模块想USB发送数据。
[0042] 本发明中涉及到USB包的解析和生成过程,包括令牌包800,帧包900,数据包1000以及握手包1100。其中令牌包800包括同步字段802,包标志字段804,设备地址字段806,端点字段808,CRC字段810以及EOP字段812。帧包900包括同步字段902,包标志字段904,帧字段906,CRC字段908以及EOP字段910。数据包1000包括同步字段1002,包标志字段1004,数据字段1006,CRC字段1008,EOP字段1010。握手包1100包括同步字段1102,包标志字段1104以及EOP字段1106。
[0043] USB设备控制器202主要完成USB传输包的解析和生成。从功能定义的角度来说,USB设备控制器202通常主要由三个子模块组成,分别为包解析模块,包生成模块和包引擎模块。包解析模块负责解析主机发送到设备的包,包括令牌包800,数据包1000和握手包1100。并将解析后的判断结果诸如包的类型,包的有效性等通过控制信号发送到包引擎模块。在本发明中包解析模块包括令牌包状态机212,数据包状态机214,握手包状态机216。
包生成模块负责包的生成,包括数据包1000和握手包1100。在本发明中包生成模块包括包发送状态机218。包引擎模块协调完整事务传输,用于协调整个完整事务传输过程的不同阶段。各个阶段用不同的控制信号来区分,因此包引擎模块是USB设备控制器202的核心模块。在本发明中包引擎模块包括端点仲裁模块220,主状态机222,总线状态检测模块224。
端点仲裁模块220主要完成当前事务传输所选中的端点号,用于选通设备配置模块204以及缓冲模块206。总先状态检测模块224用于检测USB事务传输中设备数据包Timeout318和设备接收握手包Timeout324。
[0044] 在定义了USB设备控制器202内部子模块功能之后,在考虑控制器与后处理模块的接口设计时,若数据由控制器发送到后处理模块,则此数据发送接口由包解析模块完成,即数据包状态机214和设备配置模块204以及缓冲模块206之间的数据交互。若数据由后处理模块发送到控制器模块,则此数据接收接口由包生成模块完成。即包发送状态机218和设备配置模块204以及缓冲模块206之间的数据交互。接口时序设计中的部分控制信号间接由包引擎模块给出。从整个控制器的角度而言,三个模块共同配合实现后处理接口的设计过程。
[0045] 控制器中由主状态机222全局控制USB事务传输,通过分时开启或者关闭令牌包状态机212,数据包状态机214,握手包状态机216,包生成状态机218来实现USB设备控制器202低功耗设计。
[0046] 主状态机222的设计如图1所示,令牌包状态机212在主状态机222初始状态300下打开,其余状态机在主状态机初始状态下关闭。主状态机222首先检测令牌包的传输,令牌包的检测由令牌包检测状态机212完成,若令牌包状态机212检测到有效的令牌包800,则令牌包状态机发送token_dect_valid信号406指示主状态机222,主状态机222根据收到的令牌包800的不同类型,状态机做相应的跳转,此时可以通过令牌包使能信号Token_state_en信号404关闭令牌包检测状态机212。
[0047] 若检测到的令牌包800为SOF包302,则更新帧信息,主状态机直接返回原始状态300。在需要提取帧信息做时间同步的设计中,可以通过检测SOF包900来更新帧信息,在不需要做时间同步的设计中,设备直接忽略SOF包900即可。由于SOF包900的检测与低功耗设计无关,因此该包检测过程不做详细展开讨论。
[0048] 若检测到的令牌包800为SETUP包304或者OUT包306,则通过数据包使能信号Data_state_en信号504打开数据包接收状态机214,接下来的数据包1000接收分三种情况。第一种情况:若设备没有在相应的事务阶段接收到数据包1000,则设备发生设备接收数据包的Timeout318,此时主状态机222忽略当前整个事务,返回初始状态300,同时通过数据包使能信号Data_state_en信号504关闭数据包接收状态机214,通过令牌包使能信号Token_state_en信号404重新打开令牌包检测状态机212。第二种情况:若数据包接收无效,则数据包接收状态机214发送pd_pe_rcv_finish信号506指示数据包检测完成,但此时状态机发送pd_pe_data_valid信号508指示收到的数据包1000无效。主状态机222同样忽略当前整个事务,返回初始状态300,同时通过数据包使能信号Data_state_en信号504关闭数据包接收状态机214,通过令牌包使能信号Token_state_en信号404重新打开令牌包检测状态机212。第三种情况:若包接收状态机214接收到有效的数据包320,则包接收状态机214发送pd_pe_rcv_finish信号506指示数据包1000检测完成,且状态机发送pd_pe_data_valid信号508指示收到的数据包1000有效。此时主机进入发送握手包状态316,通过数据包使能信号Data_state_en信号504关闭数据包接收状态机214,通过包发送使能信号pe_pa_send_en信号704打开包发送状态机218,当包发送状态机218发送握手包316完成之后,发送pa_pe_send_finish信号706指示主状态机222握手包发送的完成。此时主状态机222返回初始状态300,并通过包发送使能信号pe_pa_send_en信号704关闭包发送状态机218,同时通过令牌包使能信号Token_state_en信号404重新打开令牌包检测状态机212。
[0049] 若检测到的令牌包为IN包308,接下来的主状态机222转移分两种情况。第一种情况:若设备暂时不能发送数据,需要直接发送握手包316,则主机通过包发送使能信号pe_pa_send_en信号704打开包发送状态机218,当包发送状态机218发送握手包完成之后,发送pa_pe_send_finish信号706指示主状态机握手包发送的完成。此时主状态机222返回初始状态300,并通过包发送使能信号pe_pa_send_en信号704关闭包发送状态机218,同时通过令牌包使能信号Token_state_en信号404重新打开令牌包检测状态机212。第二种情况:若设备已经能够发送数据,则设备发送数据包312,主机通过包发送使能信号pe_pa_send_en信号704打开包发送状态机218,当包发送状态机218发送握手包完成之后,发送pa_pe_send_finish信号706指示主状态机222数据包发送的完成。此时主状态机222转移到握手包检测状态314,并通过包发送使能信号pe_pa_send_en信号704关闭包发送状态机218,通过握手包使能信号HDSK_state_en信号604打开握手包接收状态机216。若握手包状态机216没有检测到有效的握手包,则设备发生接收握手包的Timeout324,此时主状态机222忽略当前整个事务,返回初始状态300,同时通过握手包使能信号HDSK_state en信号604关闭握手包接收状态机216,通过令牌包使能信号Token_state_en信号404重新打开令牌包检测状态机212。若接收包状态机接收到有效的握手包314,则通过发送ack_dect_valid信号606指示主状态机222握手包接收成功。主状态机222返回初始状态300,通过握手包使能信号HDSK_state_en信号604关闭握手包接收状态机216,通过令牌包使能信号Token_state_en信号404重新打开令牌包检测状态机212。
[0050] 上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。