具有可动态配置的端点分配的usb设备的制造方法

文档序号:9579208阅读:395来源:国知局
具有可动态配置的端点分配的usb设备的制造方法
【技术领域】
[0001] 本发明涉及通用串行总线(USB)设备,并且更特别地,涉及USB控制器中的存储器 分配。
【背景技术】
[0002] USB外围设备是诸如鼠标、键盘、游戏手柄、照相机、扫描仪、打印机或数据存储设 备的外围设备,器通过USB连接(例如USB电缆)并依照USB规范连接到主机。USB规范 提供了规范USB设备和主机的行为和交互的技术详情。目前的版本是USB规范3. 1,其在 http://www.usb.org/ 上可在线获得。
[0003] 能够与USB外围设备交互的主机包括至少一个USB端口和主机控制器。主机的 USB端口可连接到USB外围设备或USB集线器(hub)。
[0004] 注意到,正如本文使用的,(i) "USB外围设备"指的是有形的且可单独连接的USB 设备,而(ii) "USB设备"指的是以各种各样形式中的任意一种的USB设备,包括例如:(a) USB外围设备,(b)不可单独连接但是可由主机控制器单独寻址的逻辑USB设备,或(c)下 面描述的各种USB设备中的一种。
[0005] USB设备典型地包括至少一个主机可接入功能,诸如,例如人机接口、打印、扫描或 数据存储。USB集线器连接到上游的主机USB端口和下游的多个USB设备,因而扩展了可连 接到主机USB端口的USB设备的数量。
[0006] 复合USB设备是内部并入USB集线器和一个或多个连接的USB设备的一种类型的 USB设备。因此,对于主机控制器,复合USB设备表现为具有一个或多个永久地连接的USB 设备的集线器。同时,复合USB设备是并入多个主机可接入功能但是不包括集线器并且仅 具有一个USB设备地址的USB设备。注意,复合USB设备可包括,连同并入的集线器,可唯 一地寻址的单个功能、组合、和/或复合设备。
[0007] 在主机和USB设备之间的通信通过建立在主机和USB设备中的逻辑端点 (endpoint)之间的被称为管道(pipe)的逻辑信道执行。通过其USB设备计数器 (enumerator)、端点计数器以及端点方向来标识特定的端点。端点的方向可以是IN或0UT, 这里(i)IN端点提供数据输入到主机,而(ii)OUT端点接收从主机输出的数据。端点标识 符的一个例子为"设备〇端点0ΙΝ"。
[0008] -般存在两种管道:消息和流。消息管道用于控制功能,并使用IN/0UT端点对,典 型地,端点0ΙΝ和端点00UT。流管道用于传输数据到USB设备和/或从USB传输数据。
[0009] USB设备可支持多个管路(pipeline)。传统的USB设备可具有高达16个IN端点 和16个OUT端点的总共32个端点。分配的端点的实际数量依赖于具体的硬件实现方式。 不同的USB设备要求不同数量的端点。
[0010] 在传统的复合USB设备中全部的组成USB设备被分配至少任意组成设备所要求的 最大数量的端点。换言之,如果复合USB设备包括八个组成USB设备,并且由八个组成USB 设备中的任意一个需要的端点的最大数量是八,则该八个组成USB设备中的每一个将被分 配八个端点。这种分配方法简单便于实施和使用。
[0011] 图1是连接到主机计算机(未示出)的示例性的传统的复合USB微控制器单元 (MCU) 100的简化的示意性框图。USBMCU100包括随机存取存储器(RAM)共享子系统101 和八个USB设备102,诸如,例如USB设备102(0)。RAM共享子系统101包括串行接口(SI) 引擎103、RAM模块104以及USBMCU核105,其是管理组成USB设备102的端点所涉及的模 块。每个USB设备102通信地连接到RAM共享子系统101的SI引擎103。SI引擎103连 接到RAM模块104,RAM模块104又连接到USBΜ⑶核105。
[0012] SI引擎103被用于控制USB设备102和主机之间的数据传输。USBMCU核105执 行USBMCU核105的传统处理器控制功能。换言之,USBMCU核105是处理器核。RAM模块 104提供随机存取存储器以供USBMCU100的各种模块在它们的各种操作中使用。
[0013] 图2是图1的RAM模块104的示意图。RAM模块104包括(a)USBRAM201,其是专 用于诸如端点管理和USB数据缓存的USB功能的RAM段,以及(b)通用RAM202。USBRAM 201可以具有2000字节的容量。USBRAM201包括缓存描述符(BD)表203和端点数据缓 存器204。
[0014]BD表203包括以逻辑行组织的缓存描述符。每个缓存描述符包括用于其相应端点 缓存器的控制信息和状态。缓存描述符通过相应端点的标识符来标识,换言之,通过设备计 数器、端点计数器以及方向来识别。
[0015] 由实例性的USB设备102(0)-102(7)中的任意一个使用的端点的最大数量是八。 因此,每个USB设备102被分配八个端点,并且BD表203包括64行。如果每个缓存描述符 使用四个字节的数据,则BD表203是256字节(=8 * 8 * 4),留下1744个字节用于端点 数据缓存器204 ( = 2000-256)。如果端点的最大数量为16而不是8,则BD表将需要512 个字节(=16 * 8 * 4),其可要求分配超过2000个字节给USBRAM201,这将占据RAM模 块104的较大部分,或者,将要求用更大的存储器模块替代RAM模块104。
[0016] 分配端点和/或缓存描述符的替换方法可能是有用的。
【附图说明】
[0017] 本发明的其它方案、特征和优点通过稍后的详细说明书、附加的权利要求书以及 附图将变得更加明了,其中相同的附图标记表示类似的或等同的元件。注意,附图中的元件 没有按比例绘制。
[0018] 图1是示例性的传统的复合USB微控制器单元(MCU)的简化的示意性框图;
[0019] 图2是图1的USBMCU的RAM模块的示意图;
[0020] 图3是根据本发明一个实施例的示例性的复合USBMCU的简化的示意性框图;
[0021] 图4是图3的USBMCU的RAM的示意性框图;
[0022] 图5是根据本发明的一个实施例的示例性的复合USBMCU的简化的示意性框图;
[0023] 图6是图5的示例性RAM的示意性框图。
【具体实施方式】
[0024] 本发明详细的说明性的实施例在此处被公开。然而,本文公开的具体结构和功能 仅仅是代表性的,用于描述本发明的示例实施例的目的。本发明的实施例可以以许多替代 的形式实施,并且不应被理解为仅限于在此叙述的实施例。此外,本文使用的术语仅是为了 描述特定实施例的目的,并不意图限制本发明的示例实施例。
[0025] 如本文使用的,单数形式"一"和"该"也意图包括复数形式,除非上下文相反表示。 还将理解,术语"包括"、"包含"、和/或"具有"说明所声明的特征、步骤或组件的存在,但是 并不排除一个或多个其它特征、步骤或组件的存在或添加。还应当注意,在某些替代实施方 式中,所提及的功能作用可以不按附图中所示的顺序进行。
[0026] 在新颖的复合USB设备控制器的一个实施例中,根据具体组成USB设备的具体需 要,将端点分配给复合USB设备的组成USB设备。因此,如果一个组成的设备仅需要两个端 点,则其将被分配两个端点,而不考虑复合USB设备的其它组成的设备要求多少个端点。
[0027] 图3示出根据发明的一个实施例的示例性的复合USB MCU300的简化的示意图。与 图1的相应元件基本上类似的图3的元件被类似地标记但是具有不同的前缀。
[0028] 复合USBMCU300包括八个组成USB设备302,被标记为USB设备302(0)-(7),其 每一个通信地连接到SI引擎303。一个或多个USB设备302可以是预定义类设备,诸如例 如人机接口设备(HID)、大容量存储器设备(HSD)、通信设备类(CDC)、音频设备、以及视频 设备。如本领域普通技术人员将理解的,不同设备要求不同类型和数量的端点。复合USB MCU300包括USB集线器(未示出),其可以是逻辑实现的集线器或硬件实现的集线器并且 其连接到组成USB设备302。
[0029] 图4示出图3的RAM304的示意图。与图2的相应元件基本上类似的图4的元件 被类似地标记但是具有不同的前缀。RAM304包括(i)USBRAM401,其包括BD表403和端 点数据缓存器404,以及(ii)通用RAM402。BD表403的每个缓存描述符包括用于其相应 端点缓存的控制信息(诸如例如,缓存大小)和状态以及指向端点数据缓存器404中的相 应数据缓存的指针。该指针是相应数据缓存的地址。
[0030] 组成USB设备302 (1)仅要求一个端点,并且因此其仅分配一个端点-标识为"设 备1EPOIN",并且在BD表403中仅获得一个条目,并相应地在数据缓存器404中获得仅一 个缓存。同时,USB设备302(7)要求16个端点,并因此被分配16个端点,获得DB表中的 16个条目以及在数据缓存器404中的16个相应缓存。其它
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1