用于传送数据的总线控制器的制作方法

文档序号:6656083阅读:173来源:国知局
专利名称:用于传送数据的总线控制器的制作方法
技术领域
本发明涉及总线控制器,并且尤其涉及可以包括在电子设备中用来控制使用外部总线往返于其它电子设备传送数据的设备。
背景技术
电子设备具有用于允许使用通用串行总线(USB)来传输数据的接口变得越来越普遍。
当使用USB系统互连电子设备项时,一个设备项被指定为USB主机,而其它项被指定为USB设备。USB主机负责发起并调度经由USB的通信。例如,USB主机可以是个人计算机(PC),并且可以连接到各种USB设备,诸如打印机、数字照相机和个人数字助理(PDA)。
然而,还可以在不要求经由PC连接的情况下使用USB连接来把例如照相机直接连接到打印机。为了能够作为USB主机起作用,设备项(在此例子中可以是照相机)必须具有所要求的功能,并且本发明尤其涉及一种采用集成电路形式的设备,以用于向此设备项提供此功能,其中所述设备可以包括在该设备项中。然而应当理解,设备项具有其它功能,并且其USB互连性只是其功能的一小部分。此外,希望能够把该设备包括到设备项中,以便向它们提供作为USB主机的能力,而不要求那些设备项具有特别强大的处理器。
因此希望所述设备能够在尽可能最小依赖其所在设备项的中央处理器(CPU)的情况下操作。例如,所述设备优选在设备项的总线系统中作为从设备操作,允许CPU保持作为总线主设备。此外,希望所述设备对CPU的处理负担尽可能最小并且尤其使对所述CPU中断请求的数量最小化。此外,所述设备不应当依赖于使用任何特定操作系统的CPU,从而所述设备可以并入到尽可能最宽范围的设备项中。
已知提供了一种USB主机控制器,其中使用基于传送的传送描述符来定义USB事务。

发明内容
依照本发明,提供了一种主机控制器,其中对于每个传送描述符来说,提供了一系列比特,每个比特对应于帧中的子帧,使得只在其中相应的比特被设置为活动值的子帧期间传送数据。


在附图中图1是包括了依照本发明的主机控制器的电子设备项的示意性框图。
图2是依照本发明的主机控制器的示意性框图。
图3是用于示出在图2的主机控制器中软件结构的插图。
图4和5是用于图示从主机控制器所发送的USB数据的格式的时序图。
图6给出了依照本发明的同步高速分组传送描述符的概观。
图7和8是用于图示从主机控制器所发送的USB数据的格式的时序图。
图9示出了可以怎样改变端点的轮询速率。
图10给出了依照本发明的中断高速分组传送描述符的概观。
图11和12是用于图示从主机控制器所发送的USB数据的格式的时序图。
图13给出了依照本发明的大块(bulk)高速分组传送描述符的概观。
具体实施例方式
图1是作为USB主机操作的电子设备项10的相关部分的示意性框图。本发明尤其适用于诸如照相机、机顶盒、移动电话或PDA之类的设备,其中微处理器和系统存储器的功能限制更加相关,而不是处于个人计算机(PC)中。然而,本发明适用于可以作为USB主机操作的任何设备。
显然设备10具有许多部件(在图1中未示出),这是因为它们与理解本发明无关。
设备10具有主机微处理器(CPU)20,其包括处理器核心。CPU 20借助于外围总线32连接到系统存储器30。
主机控制器40还借助于外围总线或存储器总线32连接到主机微处理器20和系统存储器30。主机控制器40具有用于USB总线42的接口,借此其可以连接到多个USB设备。在此图示的实施例中,主机控制器40是USB 2.0主机控制器,并且这里所未描述的主机控制器的部件可以如在USB 2.0规范中所指定。
如常规情况中那样,主机控制器40适合于获取由处理器20依照适当格式所准备的数据,并且经由总线接口发送所述数据。在USB通信中,存在两种类别的数据传送,即异步传送和周期性传送。使用异步传送来发送控制和大块数据,并且使用周期性传送来发送同步和中断数据。队列事务描述符(qTD)数据结构用于异步传送,而同步事务描述符(iTD)数据结构用于周期性传送。
处理器20依照适当结构准备数据,并且把它存储在系统存储器30中,主机控制器40然后必须从所述系统存储器30中获取数据。
图2更详细地示出了嵌入式USB主机控制器40的结构。
如上所述,主机控制器40具有用于存储器总线32的连接,所述存储器总线32连接到接口44,包含存储器管理部件、从设备DMA控制器、中断控制部件和硬件配置寄存器。接口44还具有用于控制和中断信号的连接46,以及支持RAM结构的寄存器48和主机控制器40的操作寄存器。
接口44被连接到主机控制器的芯片级RAM 50,其在此优选实施例中是双端口RAM,允许数据同时被写入到存储器及从中读取,但是等效地可以是具有适当仲裁器的单端口RAM。存储器50被连接到主机控制器逻辑部件52,其还包含用于USB总线42的接口。可以在内部总线54上把控制信号从寄存器48发送到逻辑部件52。
图3是用于部分示出在主机控制器40上操作的软件的示意图,以便图示依照本发明设备的操作方法。
主机控制器40运行USB驱动器软件80和USB增强主机控制器接口软件82,所述软件通常是常规的。
主机控制器40还运行USB EHCI接口软件84,所述USB EHCI接口软件84为将向其发送数据的每个端点准备基于传送的传送描述符列表。
编写EHCI接口软件84使得它使用由EHCI主机栈82对于现有的周期性和异步首部所产生的参数,并且可以用于所有不同形式的USB传送,特别是高速USB传送,诸如高速同步、大块、中断和控制以及开始/停止拆分事务。
在主机控制器40不要求主控总线32的情况下,主机微处理器20经由外围总线32把基于传送的传送描述符写入到主机控制器40的RAM 50中。换句话说,主机控制器40只担当从设备。然后可以把基于传送的传送描述符存储映像到主机控制器40的RAM 50中。
有益地是,主机控制器40的内置存储器50被映射到主机微处理器20中,使得可以更易于从主机微处理器20中调度事务。
使用双端口RAM50意味着当一个基于传送的传送描述符正由宿主控制器40执行时,主机微处理器20可以把数据写入到另一块空间中。
图4图示了被分成多个微帧的一个USB帧的格式,其中经由USB总线42从主机控制器40发送数据。如常规情况中那样,可以在一个微帧内发送多个事务,包括不同传送类型的事务。同样,如常规情况中那样,高速同步传送始终是首先进行的,后面是高速中断传送和全速和低速开始拆分和完成拆分传送,高速大块数据占据微帧中的其余时间。图4示出了可以把多个高速同步事务发送到一个或多个端点的方式。
特别地是,在图4中,正在从1ms-2ms的单个毫秒中处理两个高速同步的传送描述符。这给出了由八个微帧组成的帧,所述八个微帧分别从uSOF0、uSOF1、...、uSOF7开始。图4还示出了与各自IN或OUT事务的不同端点(endpt1,endpt2)相关的相应分组传送描述符PTD1、PTD2的格式。每个分组传送描述符PTD1、PTD2包含了一连串八个比特,被标记为usof(7-0),并且这些比特可以取活动值(即,“1”)或非活动值(即,“0”)。然后当满足分组传送描述符的所有参数时即在适当的Frame(帧)#期间,并且当usof比特为高时在微帧期间,传送有效负载数据。
从而在图4中,在所有八个微帧期间发送与分组传送描述符PTD1相关的有效负载数据(HSISO1),而在从uSOF0、uSOF2、uSOF4和uSOF6开始的四个微帧期间只发送与分组传送描述符PTD2相关的有效负载数据(HSISO2),其中各自的usof比特被设置为高。
当分组传送描述符参数多个(multi)取值1时,在每个微帧中对于每个端点只发出最大分组数据大小的1个事务。
当与分组传送描述符相关的有效负载数据已经结束时,向CPU 20发送硬件中断。当单个分组传送描述符完成时如在图4中的140所示,或者只有当两个分组传送描述符完成时如在图4中的142所示,这些IRQ可以被设置为活动的。
图5示出了多毫秒传送情况,其中在从1ms-5ms的周期内处理四个高速同步的传送描述符。这表示四个帧,每个帧均由八个微帧组成,为了清楚起见在每个帧中只示出了两个微帧。图5还示出了相应的分组传送描述符PTD1-PTD8的格式。在这种情况下,八个分组传送描述符PTD1-PTD8中的每个与相同的端点(endpt1)有关。每个分组传送描述符PTD1-PTD8还包含一系列八个比特,被标记为usof(7-0),这些比特可以取活动值(即,“1”)或非活动值(即,“0”)。然后当满足分组传送描述符的所有参数时即在适当的Frame(帧)#期间,并且当usof比特为高时在微帧期间,传送有效负载数据。
从而在图5中,在帧#01的所有八个微帧期间发送与分组传送描述符PTD1相关的有效负载数据(HSISO1),而在帧#02的所有八个微帧期间发送与分组传送描述符PTD2相关的有效负载数据(HSISO1),等等。从而,定义多个同步的分组传送描述符允许多毫秒事务。
此外在这种情况下,分组传送描述符参数多个取值3,因此在每个微帧中对于每个端点只发出最大分组数据大小的三个事务。
从而,在从1ms-5ms的周期内处理分组传送描述符PTD1-PTD4。当正在发送分组传送描述符PTD1-PTD4时,可以为下一4ms准备新的分组传送描述符PTD5-PTD8。SKIP位图可以被设置为活动的直到准备好所有分组传送描述符PTD5-PTD8,继而所述位图可以是未跳过的(unskipped)。
IRQ只是刚好表明前4ms完成,继而可以读回用于IN令牌的数据。
因此存在以最大USB数据速率24KB/ms的连续USB数据流(即,每个事务1024字节×每个微帧中3个事务×每毫秒8个微帧)。
图6给出了依照本发明的同步高速分组传送描述符的概观。
图7示出了其中在从1ms-3ms的两毫秒周期内正处理两个高速中断传送描述符的情况。每个毫秒表示由八个微帧组成的帧,所述八个微帧分别从uSOF0、uSOF1、...、uSOF7开始。图7还示出了与不同的端点(endpt1,endpt2)相关的相应分组传送描述符PTD1、PTD2的格式。每个分组传送描述符PTD1、PTD2包含了一连串八个比特,被标记为usof(7-0),并且这些比特可以取活动值(即,“1”)或非活动值(即,“0”)。然后当usof比特为高时在微帧期间传送有效负载数据。
从而在图7中,在从uSOF1、uSOF3、uSOF5和uSOF7开始的四个微帧期间发送与分组传送描述符PTD1相关的有效负载数据(HSINT1),其中各自的usof比特被设置为高,而只在从uSOF0、uSOF2、uSOF4和uSOF6开始的四个微帧期间只发送与分组传送描述符PTD2相关的有效负载数据(HSINT2),其中各自的usof比特被设置为高。
每个分组传送描述符PTD1、PTD2还表明有效负载(PL)的大小,并且应当注意,PTD2的有效负载是PTD1有效负载大小的二倍。因此,当在第一毫秒期间完成PTD1时,在从2ms-3ms的uSOF0、uSOF2、uSOF4和uSOF6开始的四个微帧期间还发送与分组传送描述符PTD2相关的有效负载数据(HSINT2)。
当与分组传送描述符相关的有效负载数据已经结束时,向CPU 20发送硬件中断。当单个分组传送描述符完成时如在图7中的170所示,或者只有当两个分组传送描述符完成时如在图7中的172所示,这些IRQ可以被设置为活动的。
图8示出了多毫秒传送情况,其中在从2ms-23ms的周期内处理四个高速中断传送描述符。如前所述,每个毫秒表示一个帧,每个帧由八个微帧组成。
图8还示出了相应的分组传送描述符PTD1-PTD4的格式。在这种情况下,四个分组传送描述符PTD1-PTD4中的每个涉及各自的不同端点(endpt1,endpt2,endpt3,endpt4)。每个分组传送描述符PTD1-PTD4还包含一系列八个比特,被标记为usof(7-0),这些比特可以取活动值(即,“1”)或非活动值(即,“0”)。然后只在分组传送描述符中所指定的适当帧#期间以及当usof比特为高时在微帧期间传送有效负载数据。
分组传送描述符还指定传送的有效负载(PL)大小、最大分组大小(MPS)和轮询速率。从而,可以按要求改变轮询速率,在此例子中在1微帧和32帧之间改变。图9是用于示出可用轮询速率值的表。当两个端点具有相同的轮询速率时,可以在两个不同的帧上分布它们的事务。这可以通过硬件根据帧编号的后两个比特激活事务来进行。
图8示出了这在实践中怎样工作。例如,由分组传送描述符PTD3所描述的打算送到端点3的数据在4ms的帧中被NAK,并由于其具有8ms的轮询速率而在8ms的帧中重发。类似地,由分组传送描述符PTD4所描述的打算送到端点4的数据在7ms的帧中被NAK,并由于其具有16ms的轮询速率而在23ms的帧中重发。
图10给出了依照本发明的中断高速分组传送描述符的概观。
图11图示了用于大块传送数据的传送机制。从而在一个帧中,在前四个微帧期间,从uSOF0-uSOF3开始,递送依照第一分组传送描述符PTD1的数据,而准备依照第二分组传送描述符PTD2的数据,如图11中的190所示。在从uSOF4-uSOF7开始的第二组四个微帧期间,递送依照第二分组传送描述符PTD2的数据,而准备依照第一分组传送描述符PTD1的数据,如图11中的192所示。这允许端点具有高数据传送速率,而每毫秒只要求两个中断。
如常规情况中那样,只在已经发送同步和中断数据之后才在微帧中发送大块数据。图12示出了其中通过几个微帧处理四个高速中断传送描述符的情况,但是只是在该微帧中已经发送了同步数据(HSISO)和中断数据(HSINT)之后。
图12还示出了相应的分组传送描述符PTD1-PTD4的格式。在这种情况下,四个分组传送描述符PTD1-PTD4中的每个涉及各自的不同端点(endpt1,endpt2,endpt3,endpt4)。参数多个表明在任何微帧中依照任何其它分组传送描述符传送数据之前可以依照分组传送描述符传送的大块数据分组的数目。从而,第一分组传送描述符PTD对于参数多个来说具有值3,因此在依照任何其它分组传送描述符传送数据之前在从1ms开始的微帧中传送三个分组。在这种情况下,不存在同步或中断数据,因此可以在微帧中重复大块数据传送循环。
然而应当注意,在从uSOF2开始的微帧中,存在大量同步数据,因此在微帧内无法完成大块数据传送循环。
图13依照本发明给出了用于大块和控制端点的高速分组传送描述符的概观。
权利要求
1.一种用于在帧和微帧中经由总线通信系统传送数据的主机控制器,其中由分组传送描述符来描述每个数据传送,其中用于数据传送的分组传送描述符包括位图,使得只在帧对应于所述位图的比特的那些微帧期间依照所述分组传送描述符来传送数据,其中所述比特的比特值已经被设置为活动值。
2.如权利要求1所述的主机控制器,用于经由所述总线通信系统向同步端点或中断端点传送数据,其中用于同步端点和中断端点的数据传送的分组传送描述符包括所述位图。
3.如权利要求2所述的主机控制器,其中用于中断端点的数据传送的分组传送描述符进一步指定了可变的轮询速率。
4.如先前权利要求中任何一个所述的主机控制器,以供在包括主机微处理器和系统存储器的总线通信设备中使用,所述主机控制器还包括第一接口,用于连接到存储器总线,所述存储器总线连接所述主机微处理器和系统存储器,使得所述主机控制器适合于只充当所述存储器总线上的从设备;和第二接口,用于连接到所述总线通信系统。
5.一种操作主机控制器的方法,用于在帧和微帧中经由总线通信系统传送数据,所述方法包括借助分组传送描述符来描述每个数据传送,其中用于数据传送的分组传送描述符包括位图,并且其中所述方法包括只在帧对应于所述位图的比特的那些微帧期间依照所述分组传送描述符来传送数据,其中所述比特的比特值已经被设置为活动值。
6.如权利要求5所述的方法,用于经由所述总线通信系统向同步端点或中断端点传送数据,其中用于同步端点和中断端点的数据传送的分组传送描述符包括所述位图。
7.如权利要求6所述的方法,其中用于中断端点的数据传送的分组传送描述符进一步指定了可变的轮询速率。
全文摘要
主机控制器可以被用于在帧和微帧中经由USB总线通信系统传送数据。每个数据传送由分组传送描述符描述,并且用于数据传送的分组传送描述符包括位图,使得只在帧对应于位图的比特的那些微帧期间依照分组传送描述符传送数据,其中所述比特值已经被设置为活动值。
文档编号G06F13/22GK1969269SQ200580019442
公开日2007年5月23日 申请日期2005年6月9日 优先权日2004年6月15日
发明者Y·K·常, W·F·莫 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1