CN101937417A - Usb中断端点共享 - Google Patents

Usb中断端点共享 Download PDF

Info

Publication number
CN101937417A
CN101937417A CN201010293453XA CN201010293453A CN101937417A CN 101937417 A CN101937417 A CN 101937417A CN 201010293453X A CN201010293453X A CN 201010293453XA CN 201010293453 A CN201010293453 A CN 201010293453A CN 101937417 A CN101937417 A CN 101937417A
Authority
CN
China
Prior art keywords
usb
interrupt
notice
end points
logical device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010293453XA
Other languages
English (en)
Other versions
CN101937417B (zh
Inventor
郭洪史
U·S·芭芭拉
J·A·德克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101937417A publication Critical patent/CN101937417A/zh
Application granted granted Critical
Publication of CN101937417B publication Critical patent/CN101937417B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

单个USB中断端点可被USB设备中两个不同的活跃逻辑设备使用。如果第一逻辑设备要中断USB主机,则第一逻辑设备将通知写入该端点。该通知携带标识第一设备对象的数字。然而,如果第二逻辑设备要中断该主机,则第二逻辑设备将通知写入该端点,但是该通知携带标识第二设备对象的数字。USB主机读取该通知。在一个示例中,如果该数字和设备ID指示该通知是给第一对象的,则第一对象处理该通知。如果该数字和设备ID指示该通知是给第二对象的,则第一对象通报第二对象如此第二对象处理该通知。

Description

USB中断端点共享
本发明专利申请是国际申请号为PCT/US2007/067555,国际申请日为2007年4月26日,进入中国国家阶段的申请号为200780015210.6,名称为“USB中断端点共享”的发明专利申请的分案申请。
相关申请的交叉引用
本申请根据35U.S.C.§119要求于2006年4月28日提交的临时申请S/N.60/795,773、以及于2006年6月6日提交的临时申请S/N.60/811,526的权益。这两篇临时申请的全部内容均通过援引纳入于此。
技术领域
所公开的实施方式涉及通用串行总线(USB)。
背景技术
以通用串行总线、或即USB总线著称的串行总线常用于将设备连接到计算机。设备在USB总线上充当从动方。该设备包括用于对USB总线电缆中的数据导线上拉的上拉电阻器。该计算机被称为主机。主机在USB总线上充当主控方。当该设备首次经由USB电缆耦合到计算机时,该设备的上拉电阻器对电缆中的数据导线上拉。主机检测到此情况并通过经由USB总线向该设备上的预定存储器位置写入值来响应。此预定位置被称为控制端点并且通常作为“端点0”来述及。写入控制端点被称为请求。
该设备通过向主机提供指示刚连接到总线的是什么种类的设备以及该设备将要求什么资源的信息来响应此请求。例如,主机向该设备发出一个或更多个不同请求并跨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执行存储在处理器可读介质中的处理器可执行指令(即,软件)操作系统110。操作系统110包括有时称为USB协议处理层“栈”的部分。USB栈包括集线器驱动程序部分111和功能驱动程序部分112。在此示例中,操作系统110是诸如微软Windows操作系统族的操作系统等的操作系统。
设备101包括在此处以“USB核心”113来述及的USB硬件。处理器122执行存储在设备101内一个或更多个处理器可读介质中的处理器可执行指令(即,软件)操作系统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将初始值写入端点0。该值是USB请求的形式。设备101通过将被请求的信息写入任命的端点——典型地为端点0——来响应端点0中呈现的USB请求。这是由设备101的处理器使用设备101的局部总线将该信息写入该端点的地址来完成的。主机103执行跨USB总线对该端点的读取并获得该信息。以此方式,主机103获得设备描述符、配置描述符以及其它所请求的关于刚才连接到总线的是什么种类的设备以及该设备将要求什么资源的信息。从获得自设备101的信息,主机103中的操作系统110选择并加载恰适的设备驱动程序。加载在此是指其从诸如硬盘等海量存储获得二进制可执行代码并将其放入存储器供执行。此示例中的结果是对于每一个逻辑USB设备,驱动程序112中具有一个设备对象。
在图1的示例中,物理蜂窝电话101中有5个逻辑USB设备。蜂窝电话101因此被称为多功能USB设备。第一逻辑设备记为“1号逻辑设备”。其使用两对端点。第一对端点被标明为“1”并用于数据通信。第二对端点被标明为“2”。端点对“2”中的一个端点是中断端点且另一端点未使用。该第一逻辑设备在集线器驱动程序111中具有相关联的物理设备对象“A”并且还在功能驱动程序112中具有相关联的设备对象“1”。在本示例中,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的局部总线从端点0的地址读取该特殊请求,从该特殊请求代码确定该请求是特殊请求,并且通过使用局部总线将“设备ID”116写入端点0来响应。该“设备ID”是唯一性地标识物理设备101并将物理设备101与可能由其他USB端口耦合到主机103的其他物理设备区别开的因设备而异的值。
在胜任的时间量之后,主机103跨USB总线102读取端点0。主机103由此获得设备ID 116。图2示出此将设备ID 116从端点0读入设备对象“1”。1号设备执行此获得设备ID的操作并生成交叉参照映射表。交叉参照映射表为每个逻辑USB设备标识具有“接口号”和“设备ID”的标识组合。由于主机103可能从多个不同的物理USB端口被连接到多个物理USB设备,并且由于每个物理USB设备将使用从数字1开始的接口号来标识其逻辑设备,因此仅指明逻辑设备的接口号也许不能标识该逻辑设备。然而,设备ID 116与接口号组合的确唯一性地标识每个逻辑设备。
图3是示出交叉参照映射表的图。该表第一行指示对应于设备对象“1”的逻辑设备用的中断端点由接口号“1”和设备ID“A”标识。在此情形中,设备ID A是物理USB设备101。该表第二行指示对应于设备对象“2”的逻辑设备用的中断端点由接口号“3”和设备ID“A”标识。每个设备对象在初始枚举过程(蜂窝电话101经由USB电缆104被插入主机103之后)期间向该表提供一个或更多个条目,其中每个条目包括与逻辑设备相关联的设备对象、设备ID、以及接口号或数字。考虑图3的表中的交叉参照信息的另一途径是其基于通知中的接口号以及从其接收到该通知的那个USB设备的设备ID将该通知映射或关联到设备对象。当枚举过程完成时,Windows操作系统110常常将该新设备添加到控制面板中的设备管理器的显示中。
在后续设备操作中,2号逻辑设备可能希望向主机103发送信息。为此,设备101上的驱动程序115将图5中所示形式的中断通知117写入中断端点“1”。该中断端点“1”由逻辑设备“1”使用,但根据一个新颖性方面,其被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”。由于设备对象“1”跨物理端口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中断端点共享可用执行本文中描述的功能的模块(例如,程序、函数等等)来实现。固件和/或软件代码可被存储在存储器中并由处理器执行。存储器可实现在处理器内部或处理器外部。

Claims (14)

1.一种方法,包括:
(a)使用USB中断端点向第一设备对象传达第一通知;以及
(b)使用所述USB中断端点向第二设备对象传达第二通知,其中所述第一设备对象和第二设备对象两者在所述第一通知的传达期间以及在所述第二通知的传达期间都是活跃的。
2.如权利要求1所述的方法,其特征在于,所述第一通知是第一USB中断消息,所述第一USB中断消息包括数据字段,其中在所述第一USB中断消息的所述数据字段中携带有第一数字,其中所述第二通知是第二USB中断消息,所述第二USB中断消息包括数据字段,其中在所述第二USB中断消息的所述数据字段中携带有第二数字,其中所述第一数字可用于将所述第一通知标识为是给所述第一设备对象的通知,并且其中所述第二数字可用于将所述第二通知标识为是给所述第二设备对象的通知。
3.如权利要求1所述的方法,其特征在于,(a)中的所述使用涉及USB设备上的驱动程序将所述第一通知写入所述USB中断端点,其中所述第一设备对象是在USB主机上执行的第一数量的代码,其中(b)中的所述使用涉及所述驱动程序将所述第二通知写入所述USB中断端点,其中所述第二设备对象是在所述USB主机上执行的第二数量的代码。
4.如权利要求3所述的方法,其特征在于,还包括:
(c)将来自所述USB主机的请求接收到所述USB设备上;以及
(d)响应于所述请求从所述USB设备向所述USB主机回传设备标识符,其中所述设备标识符唯一性地标识所述USB设备。
5.如权利要求3所述的方法,其特征在于,所述USB设备包括第一逻辑设备和第二逻辑设备,其中所述第一逻辑设备由第一描述符映射到第一多个端点,其中所述第一多个端点之一是所述USB中断端点,其中所述第二逻辑设备由第二描述符映射到第二多个端点,并且其中所述第二描述符不将所述第二逻辑设备映射到任何USB中断端点。
6.如权利要求1所述的方法,其特征在于,所述第一中断端点是USB设备的一部分,并且其中步骤(a)和(b)是由所述USB设备上的USB硬件与在所述USB设备上执行的操作系统的组合来执行的。
7.一种USB设备,包括:
USB端点;以及
将给第一逻辑设备的第一中断通知写入所述USB端点并且也将给第二逻辑设备的第二中断通知写入所述USB端点的电路系统,其中所述第一和第二中断通知两者是在所述第一和第二逻辑设备两者都活跃时被写入所述USB端点的。
8.如权利要求7所述的USB设备,其特征在于,所述电路系统包括:
处理器;以及
存储具有处理器可执行指令的程序的存储器,其中由所述处理器执行所述程序导致所述第一和第二中断通知被写入所述USB端点。
9.如权利要求7所述的USB设备,其特征在于,所述第一中断通知包括第一数字,所述第一数字将所述第一中断通知标识为是给所述第一逻辑设备的,并且其中所述第二中断通知包括第二数字,所述第二数字将所述第二中断通知标识为是给所述第二逻辑设备的。
10.如权利要求7所述的USB设备,其特征在于,所述USB设备是多功能蜂窝电话。
11.一种系统,包括:
实施第一逻辑设备和第二逻辑设备的USB设备,其中所述USB设备包括USB端点;以及
由USB总线耦合到所述USB设备的USB主机,其中所述USB主机包括从所述USB端点读取中断通知并且至少部分地基于所述中断通知的数据字段中携带的数字来确定所述中断通知是将由与所述第一逻辑设备相关联的第一驱动程序部分还是由与所述第二逻辑设备相关联的第二驱动程序部分来处理的机构。
12.如权利要求11所述的系统,其特征在于,所述第一逻辑设备通过将第一中断通知写入所述USB端点来中断所述USB主机,并且其中所述第二逻辑设备通过将第二中断通知写入所述USB端点来中断所述USB主机。
13.如权利要求11所述的系统,其特征在于,所述USB设备是蜂窝电话,并且其中所述USB主机中的所述机构包括中央处理单元、操作系统、以及USB集线器。
14.如权利要求11所述的系统,其特征在于,所述USB设备向所述USB主机传达将所述USB端点定义为与所述第一逻辑设备相关联的第一描述符,并且其中所述USB设备向所述USB主机传达将其他端点定义为与所述第二逻辑设备相关联但不将任何中断USB端点定义为与所述第二逻辑设备相关联的第二描述符。
CN201010293453.XA 2006-04-28 2007-04-26 Usb中断端点共享 Expired - Fee Related CN101937417B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US79577306P 2006-04-28 2006-04-28
US60/795,773 2006-04-28
US81152606P 2006-06-06 2006-06-06
US60/811,526 2006-06-06
US11/677,845 US7657684B2 (en) 2006-04-28 2007-02-22 USB interrupt endpoint sharing
US11/677,845 2007-02-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2007800152106A Division CN101432709B (zh) 2006-04-28 2007-04-26 Usb中断端点共享

Publications (2)

Publication Number Publication Date
CN101937417A true CN101937417A (zh) 2011-01-05
CN101937417B CN101937417B (zh) 2014-08-27

Family

ID=38606659

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201010293453.XA Expired - Fee Related CN101937417B (zh) 2006-04-28 2007-04-26 Usb中断端点共享
CN2007800152106A Expired - Fee Related CN101432709B (zh) 2006-04-28 2007-04-26 Usb中断端点共享

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007800152106A Expired - Fee Related CN101432709B (zh) 2006-04-28 2007-04-26 Usb中断端点共享

Country Status (6)

Country Link
US (1) US7657684B2 (zh)
EP (1) EP2013741A2 (zh)
JP (1) JP5242558B2 (zh)
KR (1) KR101023631B1 (zh)
CN (2) CN101937417B (zh)
WO (1) WO2007127875A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050080961A1 (en) * 2003-10-09 2005-04-14 Bedwell Ryan D. Communication steering for use in a multi-master shared resource system
US20080016264A1 (en) * 2005-05-19 2008-01-17 Inventec Corporation Method and system for handling user-defined interrupt request
US7934122B2 (en) * 2008-08-11 2011-04-26 International Business Machines Corporation Terminate operations for complex I/O link
US7908421B2 (en) * 2008-09-30 2011-03-15 Intel Corporation Universal serial bus endpoint context caching
US20100180064A1 (en) * 2009-01-14 2010-07-15 Huawei Device Co., Ltd. Method and device for implementing USB endpoint multiplexing
CN101777032A (zh) * 2009-01-14 2010-07-14 华为终端有限公司 一种实现usb端点复用的方法和设备
US9021143B2 (en) 2012-11-30 2015-04-28 Intel Corporation Polling of I/O devices on host initiated communication transports
CN105224483B (zh) * 2014-06-11 2019-11-12 西安中兴新软件有限责任公司 数据传输方法、电子设备及通用串行总线设备
CN111813727B (zh) * 2020-08-21 2020-12-08 南京沁恒微电子股份有限公司 一种实时高效的usb数据传输方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848279A (en) * 1996-12-27 1998-12-08 Intel Corporation Mechanism for delivering interrupt messages
US20020057682A1 (en) 1998-09-24 2002-05-16 Joseph Michael Hansen Universal serial bus telephony interface
US6421751B1 (en) * 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
JP3641169B2 (ja) * 1999-08-06 2005-04-20 株式会社エヌ・ティ・ティ・ドコモ Usb対応電子機器
JP4553279B2 (ja) * 2000-03-09 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション データ転送システム、データ転送端末、コントローラ、およびインターフェイス方法
US6978335B2 (en) * 2000-06-30 2005-12-20 02Micro International Limited Smart card virtual hub
GB2373884B8 (en) * 2001-03-28 2006-05-04 Nokia Corp Method of configuring electronic devices
TW518502B (en) * 2001-07-13 2003-01-21 Prolific Technology Inc USB compound device and the realization method thereof
US20040073721A1 (en) * 2002-10-10 2004-04-15 Koninklijke Philips Electronics N.V. DMA Controller for USB and like applications
JP4343524B2 (ja) * 2002-12-13 2009-10-14 キヤノン株式会社 制御装置およびデジタルビデオ装置
US7222201B2 (en) 2003-01-06 2007-05-22 Plx Technology, Inc. Virtual endpoint for USB devices
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
JP4453449B2 (ja) * 2004-06-09 2010-04-21 株式会社デンソー 車載通信モジュールおよび車載機
US7702835B2 (en) * 2005-02-03 2010-04-20 Oracle America, Inc. Tagged interrupt forwarding

Also Published As

Publication number Publication date
KR20090016674A (ko) 2009-02-17
WO2007127875A2 (en) 2007-11-08
KR101023631B1 (ko) 2011-03-22
EP2013741A2 (en) 2009-01-14
CN101432709A (zh) 2009-05-13
US7657684B2 (en) 2010-02-02
CN101432709B (zh) 2013-10-30
US20070255877A1 (en) 2007-11-01
CN101937417B (zh) 2014-08-27
JP2009535714A (ja) 2009-10-01
WO2007127875A3 (en) 2008-03-27
JP5242558B2 (ja) 2013-07-24

Similar Documents

Publication Publication Date Title
CN101432709B (zh) Usb中断端点共享
JP5250042B2 (ja) ワイヤレス送受信機用インターフェース・プロトコルおよびapi
JP5878606B2 (ja) 仮想usb複合デバイスの列挙
JP2019091494A (ja) エミュレートされたエンドポイントコンフィグレーション
WO2017054454A1 (zh) 对usb设备的访问方法、装置、终端、服务器及系统
JP3629513B2 (ja) データ処理システム及び方法
JP4652394B2 (ja) マルチバーストプロトコルデバイスコントローラ
TW201923606A (zh) 針對多執行環境之i3c頻帶內中斷
JP2008539484A (ja) ユニバーサル・シリアル・バス機能のデリゲーション
JP2018523217A (ja) ペリフェラルコンポーネントインターコネクトエクスプレス(pcie)システムにおけるトランザクション固有属性の伝達
JP2009259296A (ja) 電子デバイスの構成方法
TW202014901A (zh) 從機間直接通訊
KR20160073294A (ko) 터치 센서 정보의 통신을 위한 장치, 시스템 및 방법
JP2018518772A (ja) 拡張メッセージシグナル割込み(msi)メッセージデータ
WO2001050219A2 (en) Communication protocol for serial peripheral devices
US8996771B1 (en) System and method for communication via universal serial bus
CN117354185A (zh) 一种信号测试方法及系统、一种车辆
JP2010212987A (ja) データ伝送システムおよびそのデータ読出し方法
JP2015216450A (ja) 情報処理装置、情報処理システム及び中継プログラム
CN112910910B (zh) Opcda协议报文处理方法、装置、设备以及存储介质
CN106507413B (zh) 发送消息的方法、移动终端及播放设备
US10146499B2 (en) System and method to redirect display-port audio playback devices in a remote desktop protocol session
US8578378B2 (en) Facilitating compatible interaction, at least in part
US10877921B2 (en) Methods and apparatus to extend USB-C software support to non-USB-C devices
US20080052421A1 (en) Method for use where a first and second device are connected

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140827

Termination date: 20190426