Usb中断端点共享的制作方法

文档序号:6454645阅读:180来源:国知局
专利名称:Usb中断端点共享的制作方法
技术领域
所公开的实施方式涉及通用串行总线(USB)。 背景信息
以通用串行总线、或即USB总线著称的串行总线常用于将设备连接到计算机。 设备在USB总线上充当从动方。该设备包括用于对USB总线电缆中的数据导线上 拉的上拉电阻器。该计算机被称为主机。主机在USB总线上充当主控方。当该设 备首次经由USB电缆耦合到计算机时,该设备的上拉电阻器对电缆中的数据导线 上拉。主机检测到此情况并通过经由USB总线向该设备上的预定存储器位置写入 值来响应。此预定位置被称为控制端点并且通常作为"端点O"来述及。写入控制 端点被称为请求。
该设备通过向主机提供指示刚连接到总线的是什么种类的设备以及该设备将 要求什么资源的信息来响应此请求。例如,主机向该设备发出一个或更多个不同请 求并跨USB总线读取所请求的设备描述符、所请求的配置描述符、所请求的接口 描述符、以及所请求的端点描述符。描述符是由USB规范定义的要被格式化成包 含特定信息的数据结构。从获得自该设备的这些描述符中的信息,主机确定所需设 备驱动程序的类型并且加载恰适的设备驱动程序。此设备驱动程序通常被称为 USB功能驱动程序。此后,通信跨所谓的管道在该设备与驱动程序之间发生。管 道是设备上的端点与主机中的驱动程序之间的逻辑连接。主机可通过在从主机于 USB上发出的分组中的四位字段中指明端点来向/从该端点写或读。由于该四位字段,该设备中最多能有16对端点。相应地,最多能有32条活跃管道,16对进入 主机而16对从主机出来。
USB设备正变得越来越复杂。诸如蜂窝电话等物理设备可能实际上包含多个 不同的逻辑USB设备。例如,蜂窝电话从主机的视角出发可能看起来包含安全的 无线调制解调器、不安全但适用于网上冲浪的第二无线调制解调器、GPS (全球定 位系统)设备、以及可移动存储驱动器。安全的无线调制解调器适用于从事安全的 组网通信。第二无线调制解调器适用于网上冲浪。GPS设备向主机发送周期性定 位信息。存储设备提供可供主机存储信息并且主机能从其取回信息的场所。这些全 部实施在物理蜂窝电话中的不同逻辑USB设备以"逻辑设备"来述及。
考虑一个如此的逻辑设备。例如,如果该逻辑设备具有供主机读取的信息, 则该逻辑设备中断主机。然而,USB总线是以主机为中心的总线。只有主机发起 事务并且只有主机能够跨USB总线电缆读和/或写信息。主机因此周期性地执行跨 USB总线对与该设备相关联的中断端点的读取。这被称为"轮询"。当设备希望 中断主机时,该设备将指示中断条件的信息放入中断端点。主机因此通过在轮询操 作期间(经由USB总线)读取中断端点来得知中断条件。如果读取的信息指示需 要进一步的读取,则主机通过执行另一个跨USB总线对与该逻辑设备相关联的另 一端点的读取来响应。在逻辑设备是安全的无线调制解调器的情形中,经加密的密 钥信息可能被主机从由该安全的无线调制解调器关联的另一端点读取。
随着USB设备变得越来越复杂并且实施越来越多个具有越来越多功能的逻辑 设备,可能要求比可用的32个端点更多的端点才能支持USB设备的这些功能。一 种可能的解决方案是将这些USB功能拆分成多组并且在每一时间仅保持一组功能 活跃。这在USB标准下是可能的。这将允许端点在一组逻辑设备活跃的第一时间 被用于一个逻辑设备,而在第二组逻辑设备活跃的第二时间被用于第二逻辑设备。 然而,令逻辑设备在某些时候被禁用是不可取的。用户可能需要终止当前操作才能 切换到另一逻辑设备。切换到另一逻辑设备也可能触发新的设备枚举,这导致用 户的作业中有一些要被终止。该结果将会是低效率且不方便的。
第二种解决方案是在物理USB设备上提供另一物理USB端口及其相关联的 USB功能性。每个物理端口及其相关联的功能性能够支持全16对端点。此解决方 案由于必须提供硬件的多重实例因此是高成本的。不仅如此,物理USB设备上的 附加物理USB端口可能导致用户混淆,因为可能不知道哪个物理USB端口上支持 哪些逻辑设备。不仅如此外,USB设备软件可能由于需要同时处置多重USB端口而被复杂化。
亟需解决方案。
概述
单个中断端点被USB设备中两个不同的逻辑设备共享。如果第一逻辑设备要 中断USB主机,则第一逻辑设备将中断通知写入与第一逻辑设备相关联的中断端 点。该中断通知携带标识了该通知是要给与第一逻辑设备相关联的第一设备对象的 数字。然而,如果第二逻辑设备要中断该USB主机,则第二逻辑设备将中断通知 写入与第一逻辑设备相关联的中断端点,但是该中断通知携带标识了该通知是要给
与第二逻辑设备相关联的第二设备对象的数字。这样,第二逻辑设备就不需要专用 的中断端点来通报主机。其代之使用第一逻辑设备所拥有的中断端点。USB主机 轮询该端点并读取通知。USB主机使用该数字和设备ID来确定该通知是给第一设 备对象还是第二设备对象的通知。设备ID是唯一性地标识物理USB设备的数字。 如果确定该通知是要给第一设备对象的,则第一设备对象处理该通知。如果确定该 通知是要给第二设备对象的,则第一设备对象通报第二设备对象有此通知并将此通 知转发给第二设备对象,如此第二设备对象就能处理该通知。如以上所描述的中断 端点共享可得到USB主机所作的轮询减少的结果,并因此可得到USB总线带宽节 省和功率节省的结果。
前面是概述并且由此必然包含对详情的简化、概括、以及省略;因此本领域 技术人员将领会此概述仅是例示说明性的而并非意图成为限定性的。正如纯由权利 要求书定义的在本文中所描述的设备和/或过程的其他方面、发明性特征、以及优 点将从本文中阐述的非限定性具体说明中变得显而易见。
附图简述


图1是根据一个新颖性方面的系统的简化图。
图2是例示说明在枚举过程期间从图1的USB设备101向USB主机103传 达设备ID的简化图。
图3是由图1的USB主机中的功能驱动程序使用在枚举过程中获得的设备ID 创建的交叉参照表的图。
图4是例示说明从图1的USB设备中的USB端点向图1的USB主机中的设 备对象传达中断通知的简化图。图5是更详细地示出图4的中断通知的图。
图6是例示说明接收到图4的中断通知的第一设备对象如何检查该中断通知 的数据字段中的接口号并至少部分地基于此接口号的值确定该通知并非旨在给第 一设备对象而是旨在给第二设备对象的简化图。第一设备对象随后通报第二设备对 象有此通知。
图7是在图1的USB主机中实行的方法的流程图。 图8是在图1的USB设备中实行的方法的流程图。
详细描述
图1是根据一个新颖性方面的系统100的图。系统100包括由通用串行总线 (USB总线)102耦合到USB主机103的USB设备101。在本示例中,设备101 是多功能蜂窝电话而主机103是执行Windows操作系统的膝上型个人计算机 (PC)。设备101与主机103之间的物理连接涉及在一端具有A型插头105而在 另一端具有B型插头106的USB电缆104。 A型插头105被插入主机103上的A 型USB端口 107 (也被称为USB插槽)。B型插头106被插入设备101上的B型 端口 108。 USB电缆104包括四条导线。这些导线中有两条形成一对双绞数据导线 D+和D-。此对双绞线在图1中描绘。电缆104还包括图1中未示出的电源电压导 线和接地导线。USB总线102与可从USB实现者论坛(USB-IF)公司的网站 (www.usb.org)可访的USB修订版2.0规范相兼容。
主机103包括USB集线器硬件109、中央处理单元(CPU) 121、以及一个或 更多个处理器可读介质(例如半导体存储器)。主机103内的CPU 121执行存储 在处理器可读介质中的处理器可执行指令(g卩,软件)操作系统110。操作系统110 包括有时称为USB协议处理层"栈"的部分。USB栈包括集线器驱动程序部分111 和功能驱动程序部分112。在此示例中,操作系统110是诸如微软Windows操作 系统族的操作系统等的操作系统。
设备101包括在此处以"USB核心"113来述及的USB硬件。处理器122执 行存储在设备101内一个或更多个处理器可读介质中的处理器可执行指令(S卩,软 件)操作系统114。操作系统114包括用于与USB核心113交互并对其进行控制 的驱动程序部分115。驱动程序115与USB核心113的组合提供16对工作的USB 端点。USB端点是充当从或向USB主机103传递的信息的阱或源的存储位置。进 一步详情参见USB规范。电缆104中的数据导线D+和D-初始由集线器109中的弱下拉电阻器下拉。当 设备101初始经由电缆104被耦合到主机103时,核心113中更强的上拉电阻器对 电缆104中的D+和D-导线上拉。主机103中的集线器109检测到此状况。作为响 应,主机103从事标准USB枚举过程。枚举过程涉及主机103跨总线102将初始 值写入端点O。该值是USB请求的形式。设备101通过将被请求的信息写入任命 的端点——典型地为端点0——来响应端点0中呈现的USB请求。这是由设备101 的处理器使用设备101的局部总线将该信息写入该端点的地址来完成的。主机103 执行跨USB总线对该端点的读取并获得该信息。以此方式,主机103获得设备描 述符、配置描述符以及其它所请求的关于刚才连接到总线的是什么种类的设备以及 该设备将要求什么资源的信息。从获得自设备101的信息,主机103中的操作系统 110选择并加载恰适的设备驱动程序。加载在此是指其从诸如硬盘等海量存储获得 二进制可执行代码并将其放入存储器供执行。此示例中的结果是对于每一个逻辑 USB设备,驱动程序112中具有一个设备对象。
在图l的示例中,物理蜂窝电话IOI中有5个逻辑USB设备。蜂窝电话IOI 因此被称为多功能USB设备。第一逻辑设备记为"1号逻辑设备"。其使用两对 端点。第一对端点被标明为"1"并用于数据通信。第二对端点被标明为"2"。端 点对"2"中的一个端点是中断端点且另一端点未使用。该第一逻辑设备在集线器 驱动程序111中具有相关联的物理设备对象"A"并且还在功能驱动程序112中具 有相关联的设备对象"l"。在本示例中,1号逻辑设备是安全的无线调制解调器 功能集,其可用于从事安全的无线组网通信,诸如使用TCP/IP协议对安全服务器 的VPN通信等。
物理蜂窝电话101中的第二逻辑设备记为"2号逻辑设备"。其具有一对端点。 该对端点在图1中被标明为"3"并用于数据通信。该第二逻辑设备在集线器驱动 程序111中具有相关联的物理设备对象"B"并且还在驱动程序112中具有相关联 的设备对象"2"。在本示例中,2号逻辑设备是可用于从事网上冲浪的非加密调 制解调器功能集。注意,2号逻辑设备不具有中断端点。
物理蜂窝电话101中的第三逻辑设备记为"3号逻辑设备"。像第二逻辑设备 那样,其具有一对端点并且不具有任何中断端点。该对端点在图1中被标明为"4" 并用于数据通信。3号逻辑设备在集线器驱动程序111中具有相关联的物理设备对 象"C"并且还在驱动程序112中具有相关联的设备对象"3"。在本示例中,该3 号逻辑设备是可给主机103提供指示蜂窝电话101的位置的定位信息的GPS (全球定位系统)设备。
除以上描述的1号、2号和3号逻辑设备外,蜂窝电话101还包括另两个未示 出的逻辑USB设备。在图1的示例中,全部16对端点被设备101内的这5个逻辑 USB设备使用。物理设备对象"D"和设备对象"4"与第四逻辑设备相关联。物 理设备对象"E"和设备对象"5"与第五逻辑设备相关联。
在一个新颖性方面,除了在枚举过程中从设备101请求来的惯常信息外,主 机103还向设备101发出特殊请求。该特殊请求具有特殊请求代码。主机103跨总 线102将此特殊请求写入端点0。设备101的驱动程序115使用设备101的局部总 线从端点O的地址读取该特殊请求,从该特殊请求代码确定该请求是特殊请求,并 且通过使用局部总线将"设备ID" 116写入端点0来响应。该"设备ID"是唯一 性地标识物理设备101并将物理设备101与可能由其他USB端口耦合到主机103 的其他物理设备区别开的因设备而异的值。
在胜任的时间量之后,主机103跨USB总线102读取端点0。主机103由此 获得设备ID116。图2示出此将设备ID116从端点0读入设备对象"1" 。 l号设 备执行此获得设备ID的操作并生成交叉参照映射表。交叉参照映射表为每个逻辑 USB设备标识具有"接口号"和"设备ID"的标识组合。由于主机103可能从多 个不同的物理USB端口被连接到多个物理USB设备,并且由于每个物理USB设 备将使用从数字1开始的接口号来标识其逻辑设备,因此仅指明逻辑设备的接口号 也许不能标识该逻辑设备。然而,设备ID 116与接口号组合的确唯一性地标识每 个逻辑设备。
图3是示出交叉参照映射表的图。该表第一行指示对应于设备对象"1"的逻 辑设备用的中断端点由接口号"1"和设备ID "A"标识。在此情形中,设备IDA 是物理USB设备lOl。该表第二行指示对应于设备对象"2"的逻辑设备用的中断 端点由接口号"3"和设备ID "A"标识。每个设备对象在初始枚举过程(蜂窝电 话101经由USB电缆104被插入主机103之后)期间向该表提供一个或更多个条 目,其中每个条目包括与逻辑设备相关联的设备对象、设备ID、以及接口号或数 字。考虑图3的表中的交叉参照信息的另一途径是其基于通知中的接口号以及从其 接收到该通知的那个USB设备的设备ID将该通知映射或关联到设备对象。当枚举 过程完成时,Windows操作系统110常常将该新设备添加到控制面板中的设备管 理器的显示中。
在后续设备操作中,2号逻辑设备可能希望向主机103发送信息。为此,设备101上的驱动程序115将图5中所示形式的中断通知117写入中断端点"1"。该 中断端点"l"由逻辑设备"l"使用,但根据一个新颖性方面,其被2号逻辑设备 共享。中断通知117是USB标准中规定的数据分组(与令牌分组或状态分组相对) 标准形式——除了数据字段118的内容包括的是2号逻辑设备的接口号。在本示例 中,接口号是"3"。该接口号可用于将中断通知117标识为是给2号逻辑设备的 中断通知——尽管中断通知117可能是由主机103从给逻辑设备"1"的中断端点 "1"读出的。中断通知117的四比特分组ID (PID)字段是"1011"。在此示例 中,PID中的该值指示分组类型是数据1。
在涉及令牌分组、数据分组、以及状态分组的标准USB事务中,主机103在 其正常轮询操作中跨总线102周期性地读取中断端点"1"。当主机103读取中断 端点"1"时,其获得具有逻辑设备"2"的接口号"3"的通知117 (USB事务的 数据分组)。图4示出跨总线102读取中断端点"1"。图5示出从中断端点"1" 转送到设备对象"1"的通知117的形式。
接下来,设备对象"1"检査通知117的数据字段118中携带的接口号。在此 情形中,接口号是"3"。由于设备对象"l"跨物理端口 107读取该中断通知,因 此设备对象"1"知道该通知的设备ID是"A"。物理端口 107在枚举过程期间已 与设备ID "A"相关联。设备对象"1"随后咨询图3的表以找到该表中包括接口 号"3"和设备ID "A"的那行。这是该表的第二行。该表左手列中的相应设备对 象是设备对象2。设备对象"1"因此确定中断通知117不是给设备对象"1"的而 是给设备对象"2"的。设备对象"1"随后通报设备对象"2"有此收到的通知。 在一个示例中,设备对象"1"通过将通知117放在设备对象"2"的通知队列119 (参见图6)上来通报设备对象"2"有中断通知117。在一个实施例中,每个设备 对象具有一个如此的队列。此外,设备对象"1"设置标志位或其他指示符来向设 备"2"指示其队列中出现通知。设备对象"2"确定标志位被置位,并且通过从队 列119中取回通知117来响应。设备对象"2"随后处理该中断通知。如果该通知 指示需要实行进一步的动作(例如在数据管道上(端点3)或在控制管道上(端点 0)),则设备对象"2"知道要执行对端点"3"的读取以获得设备101上的逻辑 设备"2"希望发送给主机103的数据。
图6示出设备对象"1"通知设备对象"2"此收到的中断通知117是给设备 对象"2"的。箭头120指示将通知117推入设备对象"2"的队列119。
在给逻辑设备"1"的中断通知要被发送给主机103的情况下,图5的形式的中断通知被放入给1号逻辑设备的中断端点"1"。然而与以上当接口号为"3"时
的示例不同,接口号在此为"1"以指示该中断通知是给1号逻辑设备的。主机103
轮询中断端点"1"、读取通知、检查接口号,并且随后使用此接口号(在此情形
中为"1")以及设备ID (在此情形中为"A")来咨询图3的表。设备对象"1" 将该表第一行标识为是与该中断通知相关联的那行,并且从该表左列中的条目确定 该中断通知是给设备对象"1"的。设备对象"1"因此自己处理该中断通知。如果 该通知指示需要实行进一步的动作,则设备对象"1"知道要执行对端点"2"的读 取以获得设备101上的逻辑设备"1"希望发送给主机103的数据。
由此看出1号逻辑设备和2号逻辑设备两者都使用端点"1"作为其中断端点。 它们被称为"共享"该端点。如果1号逻辑设备想将中断通知放入端点"1",则 它放入其数据字段携带了与1号逻辑设备相关联的接口号的中断通知。另一方面, 如果2号逻辑设备想将中断通知放入端点"1",则它放入其数据字段携带了与2 号逻辑设备相关联的接口号的中断通知。主机103中的设备对象逢接收到中断通知 就使用该通知所携带的接口号以及该通知所来自的USB设备的设备ID来确定该通 知所定向到的设备对象。
图7是根据一个新颖性方面的由主机103实行的方法的简化流程图。在第一 步骤(200)中,中断通知被接收到USB主机上。该通知是从USB设备上的中断 端点发送的并且是被接收到与该USB设备上的第一逻辑设备相关联的第一设备对 象上的。
接下来(步骤201),主机上的第一设备对象检査该通知的数据字段中所携带 的接口号。接下来(步骤202),第一设备对象使用此接口号来确定该中断通知是 给第一设备对象的还是给另一设备对象的。在一个示例中,第一设备对象使用此接 口号和该通知所来自的USB设备的设备ID来咨询如图3中所示的信息表。从此接 口号和设备ID,第一设备对象确定该中断通知是被定向到主机上诸设备对象中的 哪个。如果第一设备对象确定该中断通知是给第一设备对象的(步骤202),则第 一设备对象处理该中断通知。
另一方面,如果第一设备对象确定该中断通知是被定向到第二设备对象的(步 骤203),则第一设备对象通报第二设备对象有此中断通知。在一个示例中,第一 设备对象通过将该中断通知放在第二设备对象的队列上并且随后设置标志位以向 第二设备对象指示该队列上有条目来通报第二设备对象有此中断通知。第二设备对 象随后从队列中取回该中断通知并处理该中断通知。注意到,定向到第二设备对象的中断通知能够经由第一逻辑设备的中断端点被供应给主机103。以此方式,两个 或更多个逻辑设备就能共享同一中断端点。
图8是根据一个新颖性方面的由USB设备101实行的方法的简化流程图。USB 设备101中的驱动程序115使用单个中断端点来向主机103中的多个不同设备对象 发送中断通知(步骤300)。中断通知所定向到的特定设备对象由该中断通知的数 据字段中携带的接口号来标识。主机103作为读取中断端点的结果接收到该中断通 知。主机103随后将来自该中断通知的接口号与始发USB设备的设备ID组合使用 来确定该中断通知所定向到的特定设备对象。
尽管以上出于指导目的描述了某些具体实施方式
,但本专利文件的教导具有 普遍适用性并且不被限定于以上描述的具体实施方式
。尽管以上描述了蜂窝电话作 为USB设备的示例,但USB设备可以是任何类型的外围设备,诸如举例而言有外 置调制解调器、音频播放器、音频记录器、游戏控制器、操纵杆、数码相机、数 据存储设备、打印机、扫描仪、扬声器、话筒、鼠标、键盘、电话、监视器、 或另一类型的外围设备。涉及多重逻辑设备的复合USB设备可对中断通信采用如 上所描述的中断共享,并且可对数据通信使用默认控制管道和相关联的端点。对于 主机向设备的数据转移,USB主机经由默认控制管道传达数据。对于设备向主机 的转移,USB设备使用接口号通报USB主机有传入的数据,如此USB主机能与 恰适的接口发起接收工作。如果有多个物理设备附连到USB主机,则每个物理设 备向主机驱动程序注册唯一性的设备ID,如此USB主机能与正确的设备正确地发 起接收工作。以此方式,不用规定任何专用端点也能支持USB设备的逻辑设备, 因为对中断通信使用中断共享而对数据通信使用已由其他逻辑设备在使用的默认 控制管道。尽管设备ID以上被描述为是由USB设备生成,但是在其他实施方式中, 设备ID是由系统软件(例如,功能驱动程序)和/或USB集线器驱动程序在USB 主机上生成的。相应地,可实践对所描述的具体实施方式
的各种特征的各种修改、 适应、以及组合而不会脱离所附权利要求书的范围。
本文中描述的USB中断端点共享技术可藉由各种手段来实现。例如,这些技 术可实现在硬件、固件、软件、或其组合中。对于硬件实现,用于执行USB中断 端点共享的各处理单元可在一个或更多个专用集成电路(ASIC)、数字信号处理 器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编 程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子器件、设计成 执行本文中描述的功能的其他电子单元、或其组合内实现。对于固件和/或软件实现,USB中断端点共享可用执行本文中描述的功能的模 块(例如,程序、函数等等)来实现。固件和/或软件代码可被存储在存储器中并 由处理器执行。存储器可实现在处理器内部或处理器外部。
权利要求
1. 一种方法,包括(a)从USB设备上的中断端点读取第一通知并且将所述第一通知接收到USB主机上的第一设备对象上,其中所述第一通知包含第一数字;(b)在所述第一设备对象上使用所述第一数字确定所述第一通知是定向到所述第一设备对象的;(c)在所述第一设备对象上处理所述第一通知;(d)从所述中断端点读取第二通知并且将所述第二通知接收到所述第一设备对象上,其中所述第二通知包含第二数字;(e)在所述第一设备对象上使用所述第二数字确定所述第二通知是定向到第二设备对象的;(d)通报所述第二设备对象有所述第二通知,其中所述第一设备对象执行(d)的所述通报;以及(e)在所述第二设备对象上处理所述第二通知。
2. 如权利要求l所述的方法,其特征在于,所述第一通知是第一USB中断 消息,所述第一USB中断消息包括数据字段,其中所述第一数字是被携带在所述 第一中断消息的所述数据字段中,其中所述第二通知是第二USB中断消息,所述 第二USB中断消息包括数据字段,其中所述第二数字是被携带在所述第二中断消 息的所述数据字段中。
3. 如权利要求l所述的方法,其特征在于,还包括从所述USB主机向所述USB设备发送请求并且响应于所述请求从所述USB 设备获得设备标识符;以及在所述USB主机中存储将所述第一数字和所述设备标识符的组合与所述第一 设备对象相关联、并且将所述第二数字和所述设备标识符的组合与所述第二设备对 象相关联的信息。
4. 如权利要求1所述的方法,其特征在于,步骤(a)至U (e)是由所述USB主机上的USB硬件与在所述USB主机上执行的操作系统的组合来执行的。
5. —种处理器可读介质,包括用于导致处理器从USB设备上的中断端点读取第一通知并且将所述第一通知 接收到USB主机上的第一设备对象上的代码,其中所述第一通知包含第一数字;用于导致处理器在所述第一设备对象上使用所述第一数字确定所述第一通知 是定向到所述第一设备对象的代码;用于导致处理器在所述第一设备对象上处理所述第一通知的代码;用于导致处理器从所述中断端点读取第二通知并且将所述第二通知接收到所 述第一设备对象上的代码,其中所述第二通知包含第二数字;用于导致处理器在所述第一设备对象上使用所述第二数字确定所述第二通知 是定向到第二设备对象的代码;用于导致处理器通报所述第二设备对象有所述第二通知的代码;以及用于导致处理器在所述第二设备对象上处理所述第二通知的代码。
6. —种方法,包括(a) 使用USB中断端点向第一设备对象传达第一通知;以及(b) 使用所述USB中断端点向第二设备对象传达第二通知,其中所述第一设 备对象和第二设备对象两者在所述第一通知的传达期间以及在所述第二通知的传 达期间都是活跃的。
7. 如权利要求6所述的方法,其特征在于,所述第一通知是第一USB中断 消息,所述第一USB中断消息包括数据字段,其中在所述第一USB中断消息的所 述数据字段中携带有第一数字,其中所述第二通知是第二USB中断消息,所述第 二USB中断消息包括数据字段,其中在所述第二USB中断消息的所述数据字段中 携带有第二数字,其中所述第一数字可用于将所述第一通知标识为是给所述第一设 备对象的通知,并且其中所述第二数字可用于将所述第二通知标识为是给所述第二 设备对象的通知。
8. 如权利要求6所述的方法,其特征在于,(a)中的所述使用涉及USB设 备上的驱动程序将所述第一通知写入所述USB中断端点,其中所述第一设备对象是在USB主机上执行的第一数量的代码,其中(b)中的所述使用涉及所述驱动程 序将所述第二通知写入所述USB中断端点,其中所述第二设备对象是在所述USB 主机上执行的第二数量的代码。
9. 如权利要求8所述的方法,其特征在于,还包括(c) 将来自所述USB主机的请求接收到所述USB设备上;以及(d) 响应于所述请求从所述USB设备向所述USB主机回传设备标识符,其中 所述设备标识符唯一性地标识所述USB设备。
10. 如权利要求8所述的方法,其特征在于,所述USB设备包括第一逻辑设 备和第二逻辑设备,其中所述第一逻辑设备由第一描述符映射到第一多个端点,其 中所述第一多个端点之一是所述USB中断端点,其中所述第二逻辑设备由第二描 述符映射到第二多个端点,并且其中所述第二描述符不将所述第二逻辑设备映射到 任何USB中断端点。
11. 如权利要求6所述的方法,其特征在于,所述第一中断端点是USB设备 的一部分,并且其中步骤(a)和(b)是由所述USB设备上的USB硬件与在所述 USB设备上执行的操作系统的组合来执行的。
12. —种存储处理器可执行指令的处理器可读介质,包括(a) 用于导致处理器将给第一设备对象的第一中断通知存储到USB中断端点 中的代码;以及(b) 用于导致处理器将给第二设备对象的第二中断通知存储到所述USB中断 端点中的代码,其中所述第一设备对象和第二设备对象两者在(a)的所述存储期 间以及在(b)的所述存储期间都是活跃的。
13. 如权利要求12所述的处理器可读介质,其特征在于,所述USB中断端 点是USB设备的一部分,还包括(c) 用于导致处理器将设备标识符存储在所述USB设备上的端点中的代码, 其中所述设备标识符唯一性地标识所述USB设备。
14. 一种USB设备,包括USB端点;以及将给第一逻辑设备的第一中断通知写入所述USB端点并且也将给第二逻辑设 备的第二中断通知写入所述USB端点的电路系统,其中所述第一和第二中断通知 两者是在所述第一和第二逻辑设备两者都活跃时被写入所述USB端点的。
15. 如权利要求14所述的USB设备,其特征在于,所述电路系统包括 处理器;以及存储具有处理器可执行指令的程序的存储器,其中由所述处理器执行所述程 序导致所述第一和第二中断通知被写入所述USB端点。
16. 如权利要求14所述的USB设备,其特征在于,所述第一中断通知包括 第一数字,所述第一数字将所述第一中断通知标识为是给所述第一逻辑设备的,并 且其中所述第二中断通知包括第二数字,所述第二数字将所述第二中断通知标识为 是给所述第二逻辑设备的。
17. 如权利要求14所述的USB设备,其特征在于,所述USB设备是多功能 蜂窝电话。
18. —种系统,包括实施第一逻辑设备和第二逻辑设备的USB设备,其中所述USB设备包括USB 端点;以及由USB总线耦合到所述USB设备的USB主机,其中所述USB主机包括从所 述USB端点读取中断通知并且至少部分地基于所述中断通知的数据字段中携带的 数字来确定所述中断通知是将由与所述第一逻辑设备相关联的第一驱动程序部分 还是由与所述第二逻辑设备相关联的第二驱动程序部分来处理的机构。
19. 如权利要求18所述的系统,其特征在于,所述第一逻辑设备通过将第一 中断通知写入所述USB端点来中断所述USB主机,并且其中所述第二逻辑设备通 过将第二中断通知写入所述USB端点来中断所述USB主机。
20. 如权利要求18所述的系统,其特征在于,所述USB设备是蜂窝电话, 并且其中所述USB主机中的所述机构包括中央处理单元、操作系统、以及USB集 线器。
21. 如权利要求18所述的系统,其特征在于,所述USB设备向所述USB主 机传达将所述USB端点定义为与所述第一逻辑设备相关联的第一描述符,并且其 中所述USB设备向所述USB主机传达将其他端点定义为与所述第二逻辑设备相关 联但不将任何中断USB端点定义为与所述第二逻辑设备相关联的第二描述符。
22. —种存储处理器可执行指令的处理器可读介质,包括(a) 用于导致处理器读取USB中断通知中携带的数字的代码,其中所述读取 是由第一设备对象执行的;以及(b) 用于导致处理器使用所述数字来确定所述USB中断通知是给所述第一设 备对象还是给另一设备对象的代码,其中(b)的所述使用是由所述第一设备对象 执行的,其中所述第一设备对象和所述另一设备对象是驱动程序的部分。
全文摘要
单个USB中断端点可被USB设备中两个不同的活跃逻辑设备使用。如果第一逻辑设备要中断USB主机,则第一逻辑设备将通知写入该端点。该通知携带标识第一设备对象的数字。然而,如果第二逻辑设备要中断该主机,则第二逻辑设备将通知写入该端点,但是该通知携带标识第二设备对象的数字。USB主机读取该通知。在一个示例中,如果该数字和设备ID指示该通知是给第一对象的,则第一对象处理该通知。如果该数字和设备ID指示该通知是给第二对象的,则第一对象通报第二对象如此第二对象处理该通知。
文档编号G06F13/42GK101432709SQ200780015210
公开日2009年5月13日 申请日期2007年4月26日 优先权日2006年4月28日
发明者J·A·德克, U·S·芭芭拉, 郭洪史 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1