需要改进在主机和设备之间传送数据的机制。
需要提供一种主机用来减少因数据传送而产生的设备中的不希 望有的后果的机制。
根据本发明的第一方面,提供一种为进行串行数据通信而与主 机相连接的设备,该设备包括:用于向主机传送预定数据结构的装 置,该预定数据结构表示该设备是否支持直接
存储器存取。
用于传送的装置可以响应于主机的
请求,例如,在USB中,主 机对设备进行轮询。预定数据结构可以为同时向主机传送的多个数 据结构中的一个。更佳地,这些数据结构向主机提供该设备的容量。 该设备可以为USB设备,该主机可以为USB主机,并且该数据结构 可以为列举设备时提供的一系列USB描述符。该预定数据结构可以 是扩展另一个(更佳地是前一个)描述符的非标准描述符。
根据本发明的第二方面,提供一种为进行串行数据通信而与设备 相连接的主机,该主机包括:
用于从该设备向该主机传送预定数据结构的传送装置,该预定数 据结构标识该设备是否支持直接存储器存取。
可以安排该传送装置,以请求设备至少发送预定数据结构,例如, 在USB中主机对设备进行轮询。该预定数据结构可以为同时向主机 传送的多个数据结构中的一个。更佳地,这些数据结构向主机提供 该设备的容量。该设备可以为USB设备,该主机可以为USB主机, 并且该数据结构可以为列举设备时提供的一系列USB描述符。预定 数据结构可以是扩展另一个(更佳地是前一个)描述符的非标准描 述符。该主机还可以包括分配装置,该装置用于依据预定数据结构 的内容,分配与该设备传送的数据或传送给该设备的数据有关的任 务。
根据本发明的第三方面,提供一种系统包括主机、设备以及该主 机和该设备之间的串行数据互连,该系统包括:用于经由串行数据 互连从设备向主机传送预定数据结构的装置,该预定数据结构表示 该设备是否支持直接存储器存取。
本发明的实施方式提供主机用来确定对于某些功能所连接的设 备是否支持直接存储器存取(DMA)的机制。借助该信息,该主机可 以选择是否与支持DMA的设备的
接口/端点或不支持DMA的设备的 接口/端点进行通信。这使得主机能够灵活地调度通过连接主机和设 备的总线进行的数据传送,并且使得主机优化了设备的使用。主机 通过使用支持DMA的接口/端点,减少了设备处理器的负载,因为 向其目的端传送数据时不再需要处理器中断。这特别有益于诸如移 动蜂窝电话之类的移动设备,其可能具有惯于同时运行用户应用程 序低功率处理器。
在大部分USB设备中,如果支持DMA,则入站端点和出站端点 均支持DMA。在优选实施方式中,主机确定一个接口是否支持DMA, 假设如果该接口支持DMA,则入站端点和出站端点均支持DMA。 由此提供了本发明的简化的实现。
附图说明
为了更好地理解本发明,并且理解本发明的实现方式,请参照附 图中的示例,其中附图为:
图1是USB系统的示意说明;以及
图2说明由设备传送到主机的信息。
图1说明为进行串行通信而与主机16相连的设备14,该设备包 括:用于向主机传送预定数据结构46和56的装置27,该预定数据 结构表示该设备是否支持DMA。该图还说明为进行串行数据通信而 与设备14相连的主机16,该主机包括:用于从设备14向主机16 传送预定数据结构46和56的传送装置26,该预定数据结构标识该 设备是否支持到存储器29的直接存储器存取。
通用串行总线(USB)是一条
电缆总线,它支持主计算机20与各 种可同时
访问的外设14之间的数据交换。连接的外设14通过主机 调度的基于令牌的协议共享USB带宽。在主机或其他外设工作时, 总线12可以连接、配置、使用或断开外设。
图1是通用串行总线(USB)系统10的示意说明,该系统包括把 USB设备14连接到USB主机16的USB互连12。USB主机可以是 具有总线22的计算机20,总线22把处理器24连接到USB主机控 制器26和存储器28。USB主机
控制器26把计算机20连接到USB 互连12。
在本例中,设备14包括一个连接到互连12的接口27,把接口 27连接到处理器25和存储器29的总线23。该接口可以访问存储器 29,以便使用直接存储器存取(DMA),或者可选地,使用处理器25 控制的总线23,直接进行读/写操作。
USB系统10以位串行格式的方式在USB主机16和USB设备 14之间传送数据。USB系统中只有一个主机,并且它是总线的控制 者。USB是轮询总线,并且主机发起对端点的读写的所有数据传送。
端点是数据的信源或信宿。各端点均具有存储缓冲器,在数据到 达其最终目的端之前,该缓冲器对该数据进行缓冲。主机可以向存 储缓冲器发送数据,或从存储缓冲器请求数据。
主机16和设备14之间的数据传送发生在主机16和数据端点之 间,并称之为管道。管道确定了数据流的方向、数据流(如,数据
块)的类型、同步或控制以及为数据传送分配多少带宽。
当初始地把USB设备14连接到系统10时,发生总线列举。这 就是用来为设备分配地址并且设备向主机发送数据的过程,该数据 标识设备的容量,并启用主机和设备之间的通信。
USB主机16通过向利用分配的地址寻址的USB设备14发送分 组,与USB设备14进行通信。
所有USB设备必须支持位于端点0特别
指定的的管道。与端点 0关联的是列举过程中向主机完整描述设备所需的信息。该信息包括 设备、配置、接口和端点描述符。该描述符向主机报告了USB设备 的属性。
描述符为带有规定格式的数据结构。每个描述符以一个字节宽的 字段开始,后跟一个字节宽的字段,前一个字段包含描述符中的总 字节数,后一个字段标识了描述符类型。
设备描述符唯一标识设备,并通知主机该设备拥有的配置数目。
配置描述符通知主机该设备不同的可能配置,如自供电和/或总 线供电。它还通知主机它拥有的接口数。
每个接口是划分为功能组的端点分组,该功能组执行设备的单一 特征。例如,在组合传真/扫描/打印设备中,有一个接口,并且对于 传真、扫描和打印功能的每一个功能都有一个接口描述符。传真接 口描述符规定传真所用的入站端点和出站端点。扫描接口描述符规 定了扫描所用的不同的端点。打印接口描述符规定了打印所用的另 外的端点。
根据本发明的第一实施方式,定义一个全新的非标准的DMA描 述符。该描述符用于扩展接口描述符,并通知主机在该接口上DMA 是否可用。在列举过程中,DMA描述符紧随在其扩展的接口描述符 的之后。
图2说明在列举过程中设备向主机传送的、在设备的端点0存储 的信息。在说明的本例中,信息30包括设备描述符32、配置描述符 34,第一接口描述符40和第二接口描述符50,与第一接口关联的第 一和第二端点描述符42和44,以及与第二接口关联的第三和第四接 口描述符52和54。第一和第二端点描述符42和44在与其关联的接 口描述符40的后面。第三和第四端点描述符52和54在接口描述符 50的后面,通过该接口描述符50,它们被关联在一起。与第一接口 关联的第一DMA描述符46紧随在第一接口描述符40的后面,并且 扩展了第一接口描述符40。与第二接口关联的第二DMA描述符56 紧随在第二接口描述符50的后面,并且扩展了第二接口描述符50。
DMA描述符为带有规定格式的数据结构。它以一个字节宽的字 段开始,后跟一个字节宽的字段,前一个字段包含描述符中的总字 节数,后一个字段标识描述符类型。
描述符的格式如下:
bFunctionLength 0x04
bDescriptorType 0x24
bDescriptorSubtype 0xFD
bDMAavailable 0x00/0x01
bFunctionLength的值是由通用串行总线规范确定的。 bDescriptorType的值也是由通用串行总线规范定义的,它标识通信 设备类。bDescriptorSubtype的值为免费使用的通信设备类中的许多 定义地值中的一个值。它用于识别DMA描述符。bDMAavailable的 值表示该接口是否支持DMA(0x00表示无DMA,0x01表示DMA 可用)。
主机根据bDescriptorType和bDescriptorSubtype字段,识别接收 的描述符作为DMA描述符。
在本实施方式中,假设如果一个接口支持DMA,则与该端点关 联的每个端点也支持DMA。主机确定哪个接口能够支持DMA。主 机具有为不同接口分配不同数据传送任务的智能,从而能够在不增 加设备的处理器的负担的情况下,优化数据的传送。
根据可选地实施方式,使用DMA描述符来扩展端点描述符而不 是接口描述符。在该实施方式中,端点描述符紧随在接口描述符的 后面,并且与端点关联的DMA描述符紧随在其端点描述符的后面, 且扩展了端点描述符。更佳地,各端点描述符具有关联的DMA描述 符。在该可选实施方式中,假设一个接口的端点是否支持DMA与该 接口的其他端点是否支持DMA无关。
尽管前述
说明书尽
力引起人们对那些被认为是特别重要的本发 明的特征的注意,然而,应该理解到,
申请人要求保护附图提及的 和/或表示的任何可以取得
专利的特征或特征之组合,而不论是否特 别强调过这些特征。