CN103098040A - 将多个附件连接到便携计算设备 - Google Patents
将多个附件连接到便携计算设备 Download PDFInfo
- Publication number
- CN103098040A CN103098040A CN2011800126593A CN201180012659A CN103098040A CN 103098040 A CN103098040 A CN 103098040A CN 2011800126593 A CN2011800126593 A CN 2011800126593A CN 201180012659 A CN201180012659 A CN 201180012659A CN 103098040 A CN103098040 A CN 103098040A
- Authority
- CN
- China
- Prior art keywords
- annex
- pcd
- order
- relaying
- port
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
便携计算设备(PCD)可以以菊链拓扑被并发地连接到多个附件,其中PCD位于该链的前端。至少一个中间附件(或中继器)提供连接到PCD的一个端口和连接到另一附件的另一端口,另一附件也可以是中继器。每个所连接附件可以与PCD交互以调用功能,接收或递送内容等。并发地,每个中继附件还可以充当链中其它附件的中继器,从将信号从上游附件向PCD引导以及将接收自上游的信号向下游附件引导,从而允许下游附件与PCD交互。上游中间件的存在对于下游附件可以是透明的。
Description
相关申请的交叉引用
本申请要求2010年1月6日提交的题为“Connecting MultipleAccessories to a Portable Communication Device”的美国临时申请No.61/292,619的权益,该申请的公开内容通过引用方式整体结合于此。
背景技术
本发明大致涉及与附件交互操作的便携计算设备,尤其涉及将多个附件连接到便携计算设备的一个实体端口。
近年来,已开发出了许多便携计算设备(PCD)。PCD的示例包括便携媒体播放器、移动电话机、个人数字助理(PDA)、便携电子邮件设备、视频游戏播放器、依赖全球定位系统(GPS)卫星数据的便携导航单元、以及可以集成多种功能的多功能设备,多种功能例如是媒体存储和回放、移动电话、因特网访问、电子邮件、个人信息管理、玩游戏、GPS/导航能力等等。多功能PCD的示例包括由本发明的受让人Apple Inc.制造和售卖的各种iPhone和iPod型号,以及由其它制造商和分销商在其各自的品牌名称下制造和售卖的其它便携电子设备。
PCD被频繁地与其它电子设备(这里称为“附件”)对接(dock)。例如,有时,用户可能将PCD与个人计算机对接以便同步媒体内容和/或元数据、个人数据等。在其它时候,用户可能将该同一PCD与诸如车内媒体系统、扬声器坞座等之类的其它电子设备对接。用户还可以将PCD与充电器对接,该充电器向PCD提供电力但是不包括其它数据或信息共享能力。
发明内容
现有PCD通常提供的接口支持同时与一个附件连接。随着PCD的能力已经从本来的单功能设备(例如,MP3播放器、移动电话、GPS设备)扩展为当今正盛行的多功能设备,单附件连接限制了用户针对各种工作环境来配置最优系统的能力。
本发明的某些实施例涉及便携计算设备(PCD)到多个附件的连接。在一些实施例中,两个或更多个附件可在菊链拓扑中被连接到PCD,其中PCD位于该链的“前”端。至少一个中间附件(在此也称为“中继器”或“中继附件”)提供用于连接到PCD的“前”端口以及用于连接到另一附件的“后”端口,该另一附件可以是中继器,也可以不是。因此,任意数目的附件可被包括在菊链中。每个相连附件(包括中继器)可以与PCD交互;因此,每个附件可以调用PCD功能,使其自己的功能被PCD调用,从PCD接收媒体内容或其它信息,向PCD递送媒体内容或其它信息,等等。与其自身与PCD的交互并发地,每个中间附件还可以充当链中其它附件的中继器,从将命令、数据和其它信号从下游附件沿着该链向前朝PCD引导(不管上游附件是否存在)并且还将命令、数据和其它信号从PCD沿着该链向后朝下游附件引导,从而允许下游附件与PCD交互。另外,在一些实施例中,流传输信号(例如,音频和/或视频信号)可从PCD被路由到菊链中的各个附件。
就附件与PCD交互而言,可以与直接连接中使用的完全相同的协议和命令来实现此,而不管特定附件与PCD之间可能存在多少级的间接性。不充当中继器的附件可以被置于菊链的后终点处,并且该附件可以操作就像其直接连接到PCD一样,从而将被设计用于直接连接到PCD的老附件包括进多附件系统中。充当中继器的附件可以在不需要关于其在菊链内的位置的信息的情况下来实现此;其可以简单地将在其后端口处接收到的命令和其它信号通过其前端口中继出去,反之亦然。
本发明的一个方面涉及中继附件。该中继附件可以具有被配置为连接到便携计算设备的第一(或“前”)接口、被配置为连接到另一附件的第二接口(或“后端口”)以及耦合到第一和第二接口的控制器。该控制器可被配置为(例如,经由合适的程序代码)根据附件协议经由第一接口与便携计算设备通信。当检测到另一附件连接到第二接口时,控制器可以向便携计算设备通知该另一附件已连接到第二接口并且可以在第一接口与第二接口之间中继遵循附件协议的通信。该中继可以被实现为使得所述中继附件的存在对于该另一附件来说是透明的并使得源自该另一附件的通信和源自该中继附件的通信对于所述便携计算设备而言是能够区分的。
中继附件可以执行各种通信方法。例如,中继附件可以从上游设备(其可以是PCD或另一附件)接收第一命令消息,其中第一命令消息包括命令和净荷(payload)。中继附件可以判断该命令是否是数据发送命令。如果是,则中继附件可以将与数据发送命令的净荷相对应的第一消息转发给下游设备(例如,另一附件)。否则,中继附件可以在本地处理该命令。
本发明的另一方面涉及便携计算设备。该便携计算设备可以包括被配置为连接到附件的接口和耦合到接口的处理器。处理器可以被配置为(例如,经由合适的程序代码)检测第一附件何时连接到接口并且利用附件协议中定义的消息来与第一附件通信。在该通信期间,处理器可以从第一附件接收指示第二附件已连接到第一附件的后接口的通知消息。处理器可以通过第一附件与第二附件通信。例如,处理器可以将附件协议中定义的消息封装在附件协议的数据发送命令内并且将数据发送命令发送给第一附件。
便携计算设备可以执行各种方法来与一个或多个相连附件的通信。例如,便携计算设备可以利用附件协议经由附件接口与第一附件通信并且可以确定第一附件是否具有连接到第二附件的后接口。如果第一附件具有连接到第二附件的后接口,则便携计算设备可以经由附件接口与第二附件通信。例如,便携计算设备可以生成到第二附件的命令,其中该命令遵循附件协议,将该命令封装在附件协议的数据发送命令中,其指示第一附件提取所封装命令并且将所提取命令转发给第二附件,并经由附件接口将数据发送命令发送给第一附件。
作为另一示例,便携计算设备可以通过一个实体端口与任意数目的附件通信。因此,便携计算设备可以在便携计算设备的实体端口上建立到第一附件的连接,并且通过第一附件建立到多个其它附件的连接。对于第一附件以外的每个附件,便携计算设备可以将虚拟端口与该附件相关联;虚拟端口可被与该实体端口相关联,并且每个虚拟端口可以具有离便携计算设备的不同虚拟距离。为了发送外出消息,便携计算设备可以多个附件之一标识为外出消息的目的地附件,将外出消息封装在多个嵌套的数据发送命令中,其中嵌套的数据发送命令的数目基于目的地附件的虚拟距离来确定,并且经由实体端口将经封装的外出消息发送给第一附件。
下面的详细描述和附图将提供对本发明的性质和优点的更好理解。
附图说明
图1是根据本发明实施例的便携计算设备(PCD)的正视图。
图2A和2B分别是根据本发明实施例的用于PCD的坞站的前透视图和侧视图。
图3是根据本发明实施例的连接到PCD和媒体观看器附件的图2A和2B的坞站的简化视图。
图4是根据本发明实施例的连接到PCD和相机附件的图2A和2B的坞站的简化视图。
图5是被互连来提供根据本发明实施例的系统的PCD、中继附件和另一附件的简化框图。
图6图示出了本发明实施例的操作原理。
图7是根据本发明实施例的列出了与提供虚拟端口相关的命令的表。
图8图示出了根据本发明实施例的消息在PCD、中继附件和另一附件之间的传递。
图9图示出了根据本发明实施例的消息在PCD于附件之间的传递。
图10是根据本发明实施例的可由PCD执行来与两个附件通信的处理的流程图。
图11是根据本发明实施例的可由PCD执行来经由第一附件向第二附件发送消息的处理的流程图。
图12是根据本发明实施例的可由中继附件执行来与PCD和另一附件通信的处理的流程图。
图13A和13B是根据本发明实施例的可由PCD执行来与中继附件和另一附件交互的处理的流程图。
图14A和14B是根据本发明实施例的可由中继附件执行来与PCD和另一附件交互的处理的流程图。
图15是多个中继附件被连接在菊链中的系统中的本发明实施例的操作原理。
图16-18图示出了根据本发明各个实施例的用于图15的系统的命令的传播示例。
图19和图20是根据本发明实施例的可由PCD用来与菊链中的多个附件通信的处理的流程图。
图21是根据本发明实施例示出了媒体信号的路由的PCD与中继附件的简化框图。
图22是根据本发明实施例的可由PCD用来控制输出信号的路由的处理的流程图。
具体实施方式
本发明的某些实施例涉及将便携计算设备(PCD)连接到多个附件。在一些实施例中,两个以上附件可以按菊链(daisy chain)拓扑被连接到PCD,其中PCD在该链的“前”端。至少一个中间附件(在此也称为“中继器”或“中继附件”)提供用于连接至PCD的“前”端口和用于连接至另一附件的“后”端口,该另一附件可以也是中继器,也可以不是。因此,可将任意数目的附件包括进菊链中。所连接的每个附件(包括中继器)可以与PCD交互;因此,每个附件可以调用PCD功能,使其自己的功能被PCD调用,从PCD接收媒体内容或其它信息,将媒体内容或其它信息递送给PCD,等等。与其自身与PCD的交互并发地,每个中间附件也可以充当链中的其它附件的中继器,用于将命令、数据和其它信号从下游附件沿着该链向前朝PCD引导(无论上游附件是否存在)并且还将命令、数据和其它信号从PCD沿着该链向后朝下游附件引导,从而允许下游附件与PCD交互。另外,在一些实施例中,流传输信号(例如,音频和/或视频信号)可从PCD被路由到菊链中的各个附件。
就附件与PCD交互而言,可以利用与在直接连接中完全相同的协议和命令来进行,无论在特定附件与PCD之间可能存在多少间接级。不充当中继器的附件可被置于菊链的后面终点处,并且该附件可以像其直接连接到PCD那样来操作,从而允许将被设计用于直接连接到PCD的老附件包括进多附件系统中。充当中继器的附件可以在无需与其在菊链内的位置有关的信息的情况下来这样操作;其可以简单地将在其后端口接收到的命令和其它信号通过其前端口中继出去,反之亦然。
这里描述的实施例可以用于多种多样的PCD和附件,现在将描述这样的示例。
图1是根据本发明实施例的便携计算设备(PCD)100的正视图。PCD 100可以具有由边框104围绕的触摸屏显示器102。控制按钮106被设置在边框104中并且例如可被用来将PCD 100从休眠状态唤醒、使PCD100进入休眠状态,等等。
PCD 100可以具有嵌入在其底部接口内的连接器108,从而允许PCD100直接地或按菊链配置来与附件设备对接,下面将描述其示例。连接器108可以包括用于在PCD 100与所连接附件之间运载电力、模拟信号和数字信号的多个针脚。在一个实施例中,连接器108可被实现为如在本发明的受让人Apple Inc.售卖的现有iPod和iPhone产品中使用的30针脚对接连接器;在此实施例中,连接器108被嵌入PCD 100的外壳内并被称为“插座”连接器。还可以使用其它连接器。PCD 100可以利用连接器108来提供实体端口,并且如插图110所指示,可以将多个虚拟端口与单个实体端口相关联;下面将描述其示例。
在所示实施例中,PCD 100可以是例如具有10英寸屏幕的平板电脑。在其它实施例中,PCD 100可以具有多种形状因子和配置,例如,智能电话、个人数字助理、媒体播放器、便携网页浏览器等。
图2A和图2B分别是根据本发明实施例的用于PCD 100的坞站200的前透视图和侧视图。坞站200具有底座部分202、键盘204、PCD连接器206和附件连接器208。
底座部分202可以包括电子组件和机械压载物以向坞站200提供稳定性。键盘204可以包括传统QWERTY键盘、数字键区和/或其它用户输入控件。键盘204可在机械上和电气上被耦合到底座部分202,从而允许例如经由PCD连接器206将击键信息传递给PCD 100。
PCD连接器206可被设计为与图1的PCD 100的连接器108相配合。例如,PCD连接器206可以是插座连接器108的“插头”配对部分。图2B所示的附件连接器208可以与图1的PCD 100的连接器108相同。在此配置中,具有能够连接到PCD 100的连接器108的连接器的任何附件也可以连接到坞站200的附件连接器208。尽管不是必须的,但是互补的PCD连接器206和附件连接器208的使用准许另一附件直接地(通过连接到连接器108)或间接地(当连接器206连接到PCD 100时通过连接到附件连接器208)连接到PCD 100。在一些实施例中,通过PCD 100和坞站200的操作,可以使另一附件是直接还是间接连接到PCD 100对于该另一附件来说是透明的;下面将描述示例。
图3和图4是可利用坞站200提供的系统的简化视图。在图3中,通过使连接器206与108相配合来将PCD 100(以侧面视图示出)连接到坞站200。媒体观看器附件300在此实例中可以通过线缆302连接到坞站200的附件连接器208,该线缆302具有适于与附件连接器208相配合的连接器303。媒体观看器附件300可以提供显示屏304和扬声器306,从而允许用户观看视觉内容并收听音频内容。在此实施例中,遥控器308可以与媒体观看器附件300无线地通信。在一些实施例中,除了无线遥控器308以外或者替代无线遥控器308,媒体观看器附件300还可以将控件(未示出)布置在其外壳上。媒体观看器附件300可以将来自遥控器308和/或布置在其外壳上的控件的命令发送给PCD 100。在此实例中命令可以经由坞站200被中继,从而允许用户经由附件300来控制PCD 100中的媒体回放。如下所述,坞站200的存在对于附件300来说可以是透明的。除了充当附件300与PCD 100之间的命令的中继器以外,坞站200还可以作为附件与PCD 100交互,例如,将与键盘204上的键按压事件相对应的信号发送给PCD 100。
在图4中,通过使连接器206与108相配合来将PCD 100连接到坞站200。相机附件400可以通过线缆402被连接到附件连接器208,线缆402具有适于与附件连接器208相配合的连接器403。相机400能够捕获静止图像和/或视频并且可以包括用以存储所捕获图像的存储介质。在一些实施例中,PCD 100可被操作来控制相机400捕获图像,坞站200以对于相机400来说透明的方式将来自PCD 100的命令中继给相机400。因此,相机400的操作可以独立于PCD 100是直接地还是经由坞站200连接到相机400。此外,除了充当相机400与PCD 100之间的命令的中继器以外,坞站200还可以作为附件与PCD 100交互。例如,在一些实施例中,用户可以操作坞站200的键盘204以向PCD 100提供相机控制输入;PCD 100可以经由坞站200将生成的相机控制信号传输给相机400。
应当明白,这里描述的设备和配置是示例性的并且可以进行变形和修改。例如,如上面提到的,术语PCD一般是指可容易地由用户携带的、不局限于任何特定的形状因子或能力组合的广泛类别的个人计算设备和/或通信设备。
这里描述的各种附件也是示例性的,并且还可以使用许多其它附件。例如,附件可以提供用于诸如闪存介质(例如,安全数字或“SD”卡;USB驱动器)或光介质(例如,致密盘或DVD)之类的可移除存储介质的读取器/记录器,并且PCD可被操作来从存储介质读取和/或向存储介质写入。打印机附件也可被提供用于在PCD的控制下打印文档或其它数据。其它附件可以提供增强的功能,例如,可由PCD控制的射频(RF)调谐器或发送器、控制PCD的远程用户接口等。
此外,虽然图3和图4中的附件被示为提供线缆连接到坞站,然而线缆的使用不是必须的。在一些实施例中,进行配合的连接器可被构建在附件的外壳之内或之上以使得不需要线缆。在使用线缆的实施例中,线缆两端的连接器可以具有不同的形状因子和/或不同数目的针脚。例如,如果特定附件仅使用PCD附件上的针脚的子集,则仅实际上被使用的针脚需要通过线缆来连接;可以适当地使PCD连接器的其它针脚保持浮动或者被端接。
坞站也是示例性的并且可以被修改。例如,键盘(或者实际上任何用户输入设备)不是必须的。除了用户输入设备之外或者替代用户输入设备,坞站可以具有其自己的输出设备(例如,扬声器、显示屏等)。连接器的实体布置可以被修改;例如,虽然连接器208有时候在此被称为“后”连接器,然而不要求位于后表面处或者实际上坞站的任何特定表面上。此外,虽然在坞站中互补的PCD连接器和附件连接器的使用有助于与现有附件的交互操作,然而这不是必须的。能够得到本教导的本领域技术人员应当明白,可以通过向附件配备适当连接器和扩展逻辑来使与特定PCD 100兼容的任何附件能够作为中继器操作。
图5是根据本发明实施例的包括PCD 502、中继器504和附件506的系统500的简化框图。在此实施例中,PCD 502(例如,用于实施图1的PCD 100)可以提供计算、通信和/或媒体回放能力。PCD 502可以包括处理器510、存储设备512、用户接口51、电源管理器516、网络接口518和附件输入/输出(I/O)接口520。PCD 502还可以包括用以提供各种增强能力的其它组件(未明确示出)。
存储设备512例如可利用盘、闪存或任何其他非易失性存储介质来实现。在一些实施例中,存储设备512可存储可由PCD 502播放的媒体资产,如音频、视频、静止图像等。存储设备512还可存储其它信息,例如,用户的联系方式(姓名、地址、电话号码等)、所安排的约会和事件、笔记和/或其它个人信息。在一些实施例中,存储设备512可存储可由处理器510执行的一个或多个应用程序(例如,视频游戏程序、个人信息管理程序、媒体回放程序等)。
用户接口514可包括诸如触摸板、触摸屏、滚动式转盘、点击式转盘、拨号盘、按钮、开关、键区、麦克风等之类的输入设备,和诸如视频屏幕、指示灯、扬声器、耳机插孔等之类的输出设备,以及支持电子器件(例如,数模或模数转换器、信号处理器等)。用户可操作用户接口514的输入设备来调用PCD 502的功能并且可以经由用户接口514的输出设备来查看或收听来自PCD 502的输出。
可被实现为一个或多个集成电路(例如,传统的微处理器或微控制器)的处理器510可以控制PCD 502的操作。在各个实施例中,处理器404可响应于程序代码来执行多种程序并且可以维持多个并发运行的程序或处理。在任何给定时间,将要运行的程序代码中的一些或全部可以位于处理器510和/或诸如存储设备512之类的存储介质中。
通过合适的编程,处理器510可以为PCD 502提供各种功能。例如,响应于通过用户接口514提供的用户输入信号,处理器510可以响应于用户输入来操作数据库引擎来导航存储在存储设备512中的媒体资产的数据库,并且显示所选资产的列表。处理器510可以通过将资产信息传送给也由处理器510操作的回放引擎来对用户对将播放的(一个或多个)资产的选择作出响应,从而允许播放媒体内容。处理器510还可以操作其他程序来控制PCD 502的其它功能。在一些实施例中,处理器510实现协议守护进程和其它程序以管理与一个或多个相连附件(例如,中继器504和附件530)的通信;下面将描述其示例。
电源管理器516为PCD 502提供电源管理能力。例如,电源管理器516可经由线路517将电力从电池(未明确示出)递送给附件I/O接口520,并递送给PCD 502的其它组件(未示出电力连接)。电源管理器516还可以经由附件I/O接口520以及线路519接收电力并且将所接收的电力递送给PCD 502的各个组件;从附件接收的电力也可被递送给电池,从而允许经由附件I/O接口520对电池再充电。在一些实施例中,电源管理器516可以利用响应于由运行在处理器510上的程序代码生成的控制信号进行操作的可编程或可控制电路来实现或者可被实现为单独的微处理器或微控制器。
在一些实施例中,电源管理器516对来自附件I/O接口520中的传感器(未明确示出)的信号作出响应。该传感器可生成指示所连接附件的类型的信号,并且电源管理器516可使用该信息来判断例如是分配来自电池的电力还是分配从附件I/O接口520接收的电力。电源管理器516还可以提供其他电源管理能力,例如,基于可用电力的源和量来调整PCD 502的其它组件的能耗、监视电池中存储的电力并且如果所存储电力下降到最小水平之下则生成用户警报,等等。
网络接口518可以为PCD 502提供语音和/或数据通信能力。在一些实施例中,网络接口518可以包括用于访问无线语音和/或数据网络(例如,利用蜂窝电话技术、高级数据网络技术,诸如3G或EDGE、WiFi(IEEE802.11系列标准)、或其它移动通信技术、或者它们的任意组合)的射频(RF)收发器、GPS接收器组件和/或其它组件。在一些实施例中,除了无线接口之外或者替代无线接口,网络接口518可以提供有线网络连接(例如,以太网)。网络接口518可以利用硬件(例如,天线、调制器/解调器、编码器/解码器以及其它模拟和/或数字信号处理电路)以及软件组件的组合来实现。
附件I/O接口520可允许PCD 502与各种附件通信。例如,附件I/O接口520可以支持到如下设备的连接:计算机、外部扬声器坞座或媒体回放站(例如,如图3所示)、数字相机(例如,如图4所示)、无线电调谐器(例如,FM、AM和/或卫星)、车内娱乐系统、外部视频设备、读卡器、读盘器等。根据本发明的一些实施例,附件I/O接口520可以以菊链配置形式来支持到多个附件的连接,从而允许PCD 502管理与多个附件的并发通信。例如,这可以通过将多个虚拟端口与由附件I/O接口520提供的实体通信端口相关联来实现,例如,如下所述的。
在一些实施例中,附件I/O接口520可以包括与iPod和iPhone产品上使用的连接器相对应的诸如30针脚连接器之类的连接器、以及支持电路。连接器可以提供用于电源和地以及用于各种有线通信接口(诸如通用串行总线(USB)、FireWire(IEEE 1394标准)和/或通用异步接收器/发送器(UART))的连接。连接器还可以提供用于音频和/或视频信号的连接,音频和/或视频信号可以以模拟和/或数字格式被发送到PCD 502或从PCD 502被发送。因此,附件I/O接口520可以支持多个通信信道,并且给定附件可以使用这些信道中的任何信道或所有信道。
中继附件504(例如,用以实现图2的坞站200)可以包括控制器530、用户输入设备532、音频输出设备534、前接口536和后接口538。中继附件504代表各种各样的如下附件:这些附件可以具有其自己的能力并且还充当PCD与另一附件之间的菊链连接的中继器。中继器附件在能力、复杂度和形状因子方面可以显著变化。各种中继附件可以包括图5中未示出的组件,包括但不限于:具有固定或可移除存储介质的存储设备(盘、闪存等);用于连接到外部音频/视频设备的视频屏幕、扬声器或端口;诸如透镜、图像传感器和其控件(例如,光圈、变焦、曝光时间、帧速率等)之类的相机组件;用于记录音频的麦克风(单独地或者结合视频记录);等等。
控制器530可以包括运行程序代码以执行与中继附件504相关联的各种功能的微处理器或微控制器。例如,在中继附件504包含键盘的情况(例如,如图2A所示)中,控制器530可以解释键盘输入并将相应的信息发送给PCD 502。
用户输入设备532可以包括用户可操作控件,例如,触摸板、触摸屏、滚动式转盘、点击式转盘、拨号盘、按钮、开关、键盘、键区、麦克风等。用户可以操作用户接口234的各个输入控件来调用中继附件504的功能,并且这样的功能可以包括与PCD 502交换控制信号、数据或其它讯息,例如,如下所述的。
在一些实施例中,中继附件504还可以提供诸如音频输出设备534之类的输出设备。音频输出设备534可以包括扬声器和/或用于连接外部扬声器的连接端口。中继附件504还可以提供其他输出设备(未明确示出),例如视频屏幕、指示灯、扬声器、耳机插孔等,以及支持电子(例如,数模或模数转换器、信号处理器等)。这样的组件可以允许用户观看和/或收听来自中继附件504的输出。
前接口536可允许中继附件504直接地或经由上游中间物(图5中未示出)与PCD 502通信。根据本发明的一些实施例,前接口536可以包括直接与PCD 502中包括的连接器相配合的连接器,例如与在各种iPod产品上使用的连接器互补的30针脚连接器。这样的连接器可被用来向PCD502供电或者从PCD 502接收电力,发送和/或接收模拟和/或数字格式的音频和/或视频信号,以及利用诸如USB、UART和/或FireWire之类的各种标准接口传输信息。还可以使用其它连接器;例如,前接口可以包括标准USB连接器并且可以经由适配器线缆连接到PCD 502的附件I/O接口520。在其它实施例中,前接口536可以与附件I/O接口520无线地通信(例如,利用蓝牙),并且不需要实体连接。
后接口538可允许中继附件504与下游附件506通信。根据本发明的一些实施例,后接口538可以包括连接器以及支持电路,连接器例如是与在iPod和iPhone产品上使用的连接器相对应的30针脚连接器;该连接器可以与PCD 502的附件I/O接口中的连接器在实体上互换以使得能够连接到PCD 502的附件I/O接口520的任何设备也可以连接到中继附件504的后接口538。与附件I/O接口520类似,后接口538可以提供用于电源和地的连接以及用于诸如USB、FireWire和/或UART之类的各种有线通信接口的连接。
下游附件506(例如,用于实现图3的附件300或图4的附件400)可以包括控制器540、用户输入设备542、音频/视频输出设备544、电源管理器546、电源548和PCD I/O接口550。与中继附件504类似,下游附件506代表可以具有其自己的功能并直接地或经由诸如中继附件504之类的中间物被连接到PCD 502的广泛范围的连接器。附件在能力、复杂度和形状因子方面可以显著变化。各个附件可以包括未在图5中示出的组件,这些组件可以包括但不限于具有固定或可移除存储介质的存储设备(盘、闪存等);诸如透镜、图像传感器和其控件(例如,光圈、变焦、曝光时间、帧速率等)之类的相机组件;用于记录音频的麦克风(单独地或者结合视频记录);等等。
控制器540例如可以包括运行程序代码以执行与附件506相关联的各种操作的微处理器或微控制器。例如,在附件506包含声音和/或视频系统的情况(例如,如图3所示)中,由控制器540运行的程序代码可以包括用于数字音频解码、模拟或数字音频处理等的程序。在附件506包含数字相机的情况(例如,如图4所示)中,由控制器540运行的程序代码可以包括允许用户控制相机以调节设置、捕获图像、显示图像、传送图像数据到另外的电子装置等的程序。
用户输入设备542可以包括用户可操作控件,例如,触摸板、触摸屏、滚动式转盘、点击式转盘、拨号盘、按钮、开关、键盘、键区、麦克风等。用户可以操作用户接口534的各个输入控件来调用附件506的功能,并且这样的功能可以包括直接地或经由中间物(诸如中继附件504)与PCD 502交换控制信号、数据或其它讯息。在一些实施例中,由附件506发送和接收的讯息可以与中间物是否存在无关。
在一些实施例中,附件506还可以提供诸如音频/视频输出设备544之类的输出设备。在一些实施例中,音频/视频输出设备544可以包括扬声器和/或用于连接外部扬声器或耳机的连接端口;视频屏幕和/或用于连接外部视频屏幕、指示灯等的连接端口;以及支持电子(例如,数模或模数转换器、信号处理器等)。这些组件可经由PCD I/O接口550被耦合来接收音频和/或视频信号。这些组件可允许用户查看和/或收听来自附件506的输出。
电源管理器546可以为附件506提供电源管理能力。例如,电源管理器546可被配置为从电源548接收电力。在一些实施例中,电源548可以包括到外部电力源的连接(例如,标准电网);例如,电源548可以包括可位于附件506内部或外部的AC-DC转换器。在其它实施例中,电源548可以包括电池或其它能源存储设备。电源管理器546可将电力从电源548递送给附件506的各个组件。另外,在一些实施例中,电源管理器546可经由PCD I/O接口550将电力递送给上游附件。
PCD I/O接口550可允许附件506直接地或通过诸如中继器504之类的中间物来与PCD 502(或另外的PCD)通信。根据本发明的一些实施例,PCD I/O接口550可以包含USB接口。例如,PCD I/O接口426可以提供标准、迷你或微USB端口。在其它实施例中,PCD I/O接口426可以包括可直接与PCD 402中包括的连接器相配合的连接器,例如,与各种iPod产品上使用的连接器相配合的30针脚连接器。这样的连接器可被用来向PCD 502供应电力或从PCD 502接收电力,接收模拟和/或数字格式的音频和/或视频信号,并且经由诸如USB、UART和/或FireWire之类的各种接口来传输信息。
附件506可以是与PCD 502交互的任何电子装置,包括但不限于图3-4所示的任何示例。在一些实施例中,附件506可以对PCD 502的操作提供远程控制,或者提供可包括输入控件与输出控件(例如,显示屏)两者的远程用户接口。在各个实施例中,附件506可以控制PCD 502的任何功能,并且还可以接收来自PCD 502的媒体内容并将这样的内容呈现给用户(例如,取决于媒体内容的类型,通过音频扬声器和/或视频显示屏)。在其它实施例中,PCD 502可以控制附件506的操作,例如,从附件506的存储介质检索所存储数据、通过包括在附件506内的相机来发起图像捕获操作等。如上面提到的,附件506与PCD 502之间的通信可以是直接的或者通过诸如中继附件504之类的中间物,并且中间物存在与否对于附件506来说可以是透明的。在一些实施例中,附件506还可以被实现为具有前后接口的中继附件,并且另外的附件(未示出)可以连接到附件506的后接口。
在一些实施例中,中继附件504的后接口538可被设计来模仿PCD502的附件I/O接口520。例如,如果附件I/O接口520的连接器中的某些针脚被指定为接地或连接到PCD 502中的电源,则后接口538的连接器中的对应引脚可以具有相同性质。因此,从附件506的角度来看,到中继附件504的连接可以表现为不可将其与到PCD 502的直接连接区分开。
应当明白,这里描述的系统配置和组件是示例性的并且可以进行变形和修改。PCD和/或附件(例如,中继附件504和附件506)可以具有未在此具体描述的其它能力(例如,移动电话、全球定位系统(GPS)、宽带数据通信、因特网连接等)。
根据需要,位于各个接口处的连接器可以是互补的,或者也可以不是互补的。在两个连接器不互补的情况中,可以提供适配器来连接两个设备。虽然在此将连接器描述为具有针脚(针脚是一般与具有用于连接组件的配线的传统电子设备相关联的术语),但是应当明白,可以替代为其它信号路径(例如,光信号传输)。此外,在一些实施例中,连接中的一些可以是无线的,并且在提供了无线接口的情况中连接器可被省略。
此外,虽然在此参考具体块描述了便携计算设备和附件,但是应当明白,这些块是为了描述方便而定义的,而不旨在暗示组件部分的特定实体排列。此外,这些块不一定对应于实体上不同的组件。这些块可被配置为例如通过对处理器编程或提供适当的控制电路来执行各种操作,并且各个块取决于是如何获得的初始配置而可以是或可以不是可配置的。本发明的实施例可以在包括利用电路与软件的任意组件实现的电子设备的多种装置中实现。
PCD 502的附件I/O接口520和附件506的PCD I/O接口550允许将PCD 502与附件506相连并且然后从附件506断开连接(这样的直接连接未被示出)。类似地,PCD 502的附件I/O接口520和中继附件504的前接口536允许将PCD 502与中继附件504相连并且然后从中继附件504断开连接。中继附件504的后接口538和附件506的PCD I/O接口550允许将中继附件504与附件506相连并且然后从附件506断开连接。当中继附件504和附件506被相连并且中继附件504还经由前接口536连接到PCD502时,则在附件506与PCD 502之间打开了间接通信信道。如上面提到的,从附件506的角度来看,经由中继附件504到PCD 502的间接连接与到PCD 502的直接连接是不可区分的。
如这里使用的,PCD与一个附件或两个附件在在其各自的配合接口之间建立了通信信道时则“相连接”,在信道被终止时则“断开连接”。这样的连接可以经由直接实体连接(例如利用相配合的连接器)、经由间接实体连接(例如,经由线缆)、和/或经由无线连接(例如,经由蓝牙)来实现。此外,如图5所示,附件可以经由中继附件被间接地连接到PCD。
在一些实施例中,PCD和附件可以在相连接的同时通过根据PCD附件协议(在此也称为“附件协议”)交换命令和数据来进行通信。例如可以利用由相关接口提供的任何有线或无线传输介质来传输命令和数据。当附件和PCD经由诸如中继附件504之类的中间物通信时,该通信跨越多条链路发生,例如,从附件506的PCD I/O接口550到中继附件504的后接口538的链路,然后是从中继附件504的前接口536到PCD 502的附件I/O接口520的链路。也可以经由这些链路进行反向上的通信。在一些实施例中,每条链路使用相同的运输方式,但这不是必须的。每条链路可以使用附件协议。
附件协议定义了将在PCD 502与与之连接的任何附件之间被交换的消息的格式。例如,附件协议可以指定,每个消息(在此也称为命令)在分组中被发送,分组具有头部并可选地具有净荷。头部提供基本消息(例如,起始指示符、分组长度和用于标识将由接收方处理的命令的命令代码),而净荷提供与命令相关联的任何数据;相关联数据的量对于不同命令可以不同;并且一些命令可以提供可变长度的净荷。在一些实施例中,命令可被定义为使得任何特定的命令代码仅在一个方向上有效。分组还可以包括本领域公知的检错或纠错码。
附件协议可以定义多个“专用语”(lingo),其中“专用语”是可由各种类别的附件支持(或不支持)的相关命令的群组。在一个实施例中,命令代码可以包括标识该命令所属的专用语的第一类型以及标识该专用语内的特定命令的第二类型。也可以使用其它命令结构。不要求所有附件或者附件可连接到的所有PCD支持附件协议内定义的每个专用语。
在一些实施例中,使用附件协议的每个附件(包括附件502、504)和每个PCD 502至少支持包括有PCD和所有附件共用的命令的“一般性”专用语。一般性专用语可以包括使得PCD和附件能够向彼此标识和认证它们自己并提供与其各自的能力(包括各自支持的其它专用语(如果有的话))有关的一般性信息。一般性专用语还可以包括可由PCD用来验证附件的所声称身份和能力(或反之亦然)的认证命令,并且如果认证未成功,则可以阻止附件(或PCD)调用某些(或所有的)命令或专用语。
PCD附件协议还可以包括各种其他专用语,例如允许附件发送用于指示将被调用的PCD功能的命令的简单远程专用语、可被用来传输与将PCD的用户接口的全部或一部分复制在附件上相关的命令和数据(从而支持更高级的远程控制)的远程用户接口专用语、允许用户通过操作PCD来控制调谐器附件和/或通过操作附件来控制PCD中的调谐器的调谐器专用语、允许附件在PCD上存储数据的存储专用语,等等。任何专用语或专用语的组合或者其它命令或命令组合可以结合附件协议来使用。
如前面提到的并且下面将描述的,诸如附件504之类的中继附件可以与PCD 502交互操作并且还向另一附件506提供连接。图6图示出了根据本发明实施例的操作原理。PCD 502经由实体端口602被连接到中继器504,并且中继附件504经由实体端口604被连接到附件506。在一个实施例中,实体端口602可以利用PCD 502的附件I/O接口520和中继器504的前接口536来实现,并且实体端口604可以利用中继器504的后接口538和附件506的PCD I/O接口550来实现。
通过实体端口602和604,虚拟端口606被创建用于附件506与PCD502之间的通信。附件506可以通过经由实体端口604将命令或其它信号发送给中继附件504来利用虚拟端口606将命令或其它信号发送给PCD502。在一些实施例中,附件506可以发送与其直接发送给PCD 502的完全相同的命令和信号。中继附件504检测来自附件506的信号并且经由实体端口602以如下方式将它们转发给PCD 502:该方式使得PCD 502可以确定信号源自附件506而非中继附件504。类似地,PCD 502可以通过经由实体端口602以如下方式将命令或其它信号发送给中继附件504来向附件506发送命令或其它信号:该方式使得中继附件504可以确定信号应当被递送给附件506。中继附件504可以经由实体端口604以如下方式来转发这些信号:该方式使得对于附件506这些信号表现得像直接来自PCD502。结果,被设计为直接与PCD 502操作的附件也可以通过中继附件504间接地操作。
与实现虚拟端口606并发地,中继附件504还可以与PCD 502交互,即,一般独立于附件506地,调用PCD 502的功能和/或使其自己的功能被PCD 502调用。例如,中继附件504可以经由实体端口602按以下方式向PCD 502发送命令或其它信号:该方式使得PCD 502可确定信号源自中继附件504。类似地,PCD 502可以经由实体端口602按以下方式向中继附件504发送命令或其它信号:该方式使得中继附件504可以确定其应当自己来处理这些信号而非将它们转发给附件506。PCD 502与中继附件504之间的这样的操作对于附件506来说可以是透明的。
在一些实施例中,PCD 502可以具有这样的能力:即使维持着实体连接,也使得好像端口602从中继器504解开了耦合。例如,PCD 502与中继器504之间的连接器可以包括通常被PCD 502接地(或者保持在某种其它指定状态中)的针脚或信号触点。PCD 502可以允许该针脚为浮动的;当中继器504检测到针脚是浮动的时,其推断出端口602上不存在连接。
同样,中继器504也可以具有这样的能力:即使维持着实体连接,也使得好像端口604从附件506解开了耦合。例如,中继器504与附件506之间的连接器可以包括当PCD连接到附件506时附件506期望通过PCD接地(或保持在某种其它指定状态中)的针脚或信号触点。中继器504可以允许该针脚为浮动的;当附件506检测到针脚是浮动的时,其推断出端口604上不存在连接。
应当明白,如这里使用的术语“附件”是指能够被连接到PCD并与之交互操作的任何电子设备。如这里使用的术语“中继器”(或“中继附件”)泛指还提供用于另外附件的附加连接接口的任何附件。因此,中继器是一种类型的附件,但是并非所有附件都必须是中继器。
在一些实施例中,图6的虚拟端口606是利用在PCD 502与中继附件504之间交换的附件协议的命令来实现的。图7是根据本发明实施例的列出与提供虚拟端口相关的命令的表700。这些命令可以根据需要以一般性专用语或另外的专用语而被实现为PCD附件协议的一部分。在表700中,每个命令的方向被指示为A→P(对于附件发送给PCD的命令)或P→A(对于PCD发送给附件的命令)。净荷是指与每个命令相关联的任何参数或数据。
在一些实施例中,AccessorySettings(附件设置)命令可由附件发送给PCD以提供关于其特性的信息。AccessorySettings命令可以是用于提供关于附件的能力、偏好和/或设置(包括但不限于该附件是否能够在菊链配置中作为中间物或中继器操作)的信息的一般性专用语命令。AccessorySettings的净荷可以包括标识所提供的信息的类型的令牌以及与运载具体信息的令牌相关联的描述符。例如,在中继能力令牌的情况中,相关联描述符可以包括指示附件是否具有可用来连接另一附件的后接口538的信息。其它令牌和描述符也可以包括在AccessorySettings命令的净荷中,包括与显示能力、音频能力、附件输入设备能力等有关的令牌。
GetVPOptions命令可由中继附件504发送给PCD 502以判断PCD 502是否支持虚拟端口行为,具体地,与菊链中的多个相连附件的通信。GetVPOptions命令可由PCD 502作为响应来发送,其中具有指示PCD 502是否支持虚拟端口行为的字节代码。在一些实施例中,如果中继附件504被连接到不支持虚拟端口行为的PCD,则中继附件504可以禁用其后接口538。
VPEvent命令可由中继附件504发送给PCD 502以向PCD 502通知后接口538的状态。VPEvent命令的净荷可以包括端口类型指示符、事件类型指示符以及与所指示的端口类型和事件类型相关联的结构化比特字段。端口类型指示符可被用来指定中继附件504可以与附件506交换的信号的(一种或多种)类型。例如,如果附件协议将UART和USB指定为可选传输机制,则中继附件504可以向PCD 502指示其是否可以转发这些信号类型中的每种。
事件类型指示符可被用来指定与端口状态有关的何种类型的信息正被传输。例如,在一些实施例中,附件协议规定了,连接器包括标识针脚对,标识针脚对可由PCD用来基于附件施加在标识引脚上的电阻来标识所连接附件的类型。当附件506连接到中继附件504的后接口538时,中继附件504可以测量这些标识针脚之间的电阻并且利用“附件检测”事件类型指示符将该电阻值报告给PCD 502。类似地,当附件断开连接时,中继附件504可以发送具有“附件检测”事件类型指示符以及指示开路的电阻值的VPEvent命令。PCD 502可由处理这些命令就好像其直接在其自己的连接器的针脚上测量了电阻一样。
作为另一示例,在一些实施例中,当后端口604利用多针脚连接器来实现时,附件不需要连接到该连接器的所有针脚。例如,如果连接器包括用于诸如USB或FireWire之类的数字信号协议的针脚,但是特定附件不使用这些协议,则相应针脚可被断开连接。同样,连接器可以包括用于从PCD提供模拟和/或数字音频和视频输出信号或者将这些信号递送给PCD的各种针脚。如果特定附件不使用与某些针脚相关联的音频或视频信令或特定格式,则这些针脚可被断开连接。
在这样的实施例中,当附件506连接到后接口538时,中继附件504可以确定哪些针脚实际上被连接并且利用具有“特性”事件类型指示符的VPEvent命令来将信息报告给PCD 502。与该事件类型相关联的比特字段可以包括用于各种可选信号的位掩码,从而允许中继附件504向附件506指示哪些信号针脚被连接或未被连接。在中继附件504本身不支持所有针脚上的连接的实施例中,相同的位掩码可被用于被设为未连接状态的任何不支持针脚的比特,而不管缺乏支持是在中继器504内还是由于附件506。在一些实施例中,中继附件504可以选择性地连接或断开连接从其前端口602到其后端口604的信号路径中的一些,并且“特性”事件类型可以包括指示可选择性地连接哪些信号的数据字段。
在一些实施例中,当确立了PCD 502支持虚拟端口行为时,中继附件504可以发送VPEvent命令来提供后端口604的初始状态;例如如果附件被连接或断开连接,则中继附件504可以异步地发送后续VPEvent命令来向PCD 502通知状态改变。
VPControl命令可由PCD 502发送来指示中继附件504将其后端口604设为所希望状态。例如,PCD 502可以指示中继附件504使能(enable)或禁用后端口604,或者改变任何可选择性连接的信号路径的状态。因此,例如,PCD 502可指示中继附件504将音频输出信号路径连接到后端口604或者将音频输出信号路径从后端口604断开连接。
VPDataSend命令可由PCD 502发送来指示中继附件504将附件协议“下游”命令转发给所连接附件。VPDataSend命令的净荷可以包括将被转发的命令加上任何关联数据。在一些实施例中,净荷还可以包括完整附件协议分组的其它组分(例如,分组头部、起始字节、纠错码);中继附件504可以简单地将所接收净荷转发给附件506。在其它实施例中,净荷仅包括命令和数据,并且中继附件504可以在将分组转发给附件506之前生成围绕分组结构。在任一情况中,附件506可以接收到标准附件协议分组,就好像其直接连接到PCD时那样。在一些实施例中,中继附件504不读取或处理VPDataSend命令的净荷。其仅仅对VPDataSend分组解封装并将净荷发送给附件。
VPDataReceive命令可由中继附件504发送来将包含命令(和可能的关联数据)“上游”的附件协议分组从附件506转发给PCD 502。净荷可以包括被转发的命令以及任何关联数据。在一些实施例中,中继附件504将所接收分组(例如包括头部、起始字节、纠错码)原封不动的作为VPDataReceive命令的净荷进行转发;在其它实施例中,中继附件504可以提取所接收分组的命令和数据并且将该信息包括在VPDataReceive命令的净荷中。在一些实施例中,中继附件504不读取或处理附件506所发送的任何命令;其仅仅将它们封装到VPDataReceive命令中并且将它们转发给PCD 502。因此,附件506无需为其发送的任何命令指定目的地。
应当明白,这里描述的命令是示例性的并且可以进行变形和修改。在一个实施例中,附件/设置命令是一般性专用语的一部分,而其他命令是与虚拟端口功能相关联的虚拟端口专用语的一部分。
在一些实施例中,转发给或转发自附件506的每条命令被封装在单个VPDataSend或VPDataReceive命令分组中。在其它实施例中,被转发到附件或从附件转发的命令可以被创建作为字节流,并且VPDataSend或VPDataReceive命令分组可以包括一个经转发命令的一部分、两个经转发命令的部分、或一个经转发命令的全部以及另一经转发命令的一部分;即VPDataSend或VPDataReceive命令的数目不必与传输到附件506或从附件506传输的命令数目相匹配。
VPDataSend或VPDataReceive命令可以使得PCD 502能够将中继附件504和附件506识别为不同实体并且独立地与每个进行通信。图8图示出了根据本发明实施例的在PCD 800、中继器810和另一附件812间传递的消息。
在此实施例中,PCD 800(例如,实现PCD 100或PCD 502)执行应用和操作系统(OS)程序802。在一些实施例中,OS程序可以包括可由应用用来调用OS功能的应用程序接口(API),并且软件可被设计有多个抽象层以使得OS实施细节对于应用层是隐藏的。OS功能中的一些可以承担与所连接附件的通信。这样的通信通过端口管理器804来管理,端口管理器804生成将经由通信信道被发送给附件的比特序列。通信信道的物理层未在图8中示出。)
在图8的实施例中,OS程序(和/或应用)802可以包含所连接附件的表805。该表可以包括与每个所连接附件有关的各种信息,例如,标识符(在此示例中为“Acc1”和“Acc2”)、能力和设置信息等。OS或应用程序802可以将经由实体端口相连的中继附件810和经由中继器810提供的虚拟端口相连的附件812作为两个不同附件对待,而无需知道连接是经由实体端口的还是经由虚拟端口的。来自OS或应用程序802的消息可被引导至任一附件。
端口管理器804维护端口映射表807,在此示例中,端口映射表807将标识符Acc1与实体端口“Port0”(中继器810连接到的实体端口)相关联,并将标识符Acc2与实体端口“端口0”所关联的虚拟端口“VPort1”相关联。因此,标识符Acc1被映射到中继器810并且标识符Acc2被映射到附件812。应注意,为了与中继器810和附件812通信,OS和应用程序802不需要关于直接与哪个附件相连的信息,只要两个附件存在。
为了与中继器810通信,OS(或应用)程序802可以向端口管理器804发送Send(Msg1,Acc1)消息,其中Msg1表示将被传输给中继器810的信息。端口管理器804确定用以表示消息Msg1的附件协议命令C1和相关联数据D1。基于端口映射表807,端口管理器804在实体端口Port0上将协议分组(C1,D1)发送给中继器810。
类似地,中继器810可以将附件协议分组(C2,D2)发送给PCD 800。当端口管理器804在实体端口Port0上接收到协议分组(C2,D2)时,其根据端口映射表807确定该分组与Acc1相关联。端口管理器804提取净荷,确定用于OS(或应用)程序802的对应消息(Msg2),并将消息Rcv(Msg2,Acc1)发送给OS程序802。OS程序802可以识别消息Msg2来自于Acc1并且相应地处理该消息。
为了与附件812通信,OS(或应用)程序802可以向端口管理器804发送Send(Msg3,Acc2)消息,其中Msg3表示将被传输的信息。端口管理器804可以确定用以表示消息Msg2的附件协议命令C3和相关联数据D3。基于端口映射表807,端口管理器804可以确定应当在虚拟端口VPort1上发送该消息。因此,端口管理器804可以将附件协议分组(C3,D3)封装在VPDataSend分组(在附图中缩写为“VPDS”)中,并将VPDataSend分组发送给中继器810。中继器810可以提取净荷(C3,D3)并且将净荷作为附件协议分组转发给附件812。
类似地,附件812可以将附件协议分组(C4,D4)发送给中继器810。中继器810可以将该附件协议分组(C4,D4)封装在VPDataReceive分组(在附图中缩写为“VPDR”)中并且在实体端Port0上将VPDataReceive分组发送给端口管理器804。端口管理器804认识到VPDataReceive是在端口0上接收的并且基于端口映射表807和VPDataReceive包封(wrapper)的存在,判定该消息源自附件812而非中继器810。端口管理器804从VPDataReceive命令提取净荷,即命令C4和数据D4,基于命令C4和数据D4确定对应消息(Msg4),并且将消息Rcv(Msg4,Acc2)发送给OS程序802。OS程序802可以将Msg4识别为来自Acc2并且可以相应地处理该消息。
如上面提到的,虽然图8图示出了去往或来自附件812的命令分别被封装在单个VPDataSend或VPDataReceive命令中的情况,但这不是必须的;任意数目的VPDataSend或VPDataReceive命令可被用来将单个命令传输到附件或从附件传输单个命令。
因此,PCD 800可以确定通信的源和目的地,从而使得能够与附件810和附件812分开进行通信。在一些实施例中,PCD 800可以具有多个实体端口,并且可以将一个或多个虚拟端口与每个实体端口相关联。例如,如图9所建议的,端口映射表807可被扩展为包括每个实体端口以及与每个实体端口相关联的任何(一个或多个)虚拟端口。
应注意,附件812无需被通知关于其是正直接与PCD 800通信还是利用虚拟端口通信。为了进一步论证此点,图9图示出了附件812被直接连接到PCD 800的情况中的消息传递。在此实施例中,OS程序802可以将消息Send(Msg3,Acc1)发送给端口管理器804。端口管理器804从端口映射表807中确定Acc1被连接到实体端Port0,确定附件协议命令C3和相关联数据D3,并且在实体端口Port0上将附件协议分组(C3,D3)发送给附件812。
类似地,附件812可以生成附件协议分组(C4,D4),并且在实体端口Port0上将其发送给PCD 800。端口管理器804从端口映射表807中确定所接收的分组源自Acc2,提取净荷,确定对应消息(Msg4),并将消息Rcv(Msg4,Acc2)发送给OS程序802。
图8与图9的比较表明,在任意实例中,附件812可以以相同的方式操作,即读取来自PCD的进入附件协议分组并向PCD发送外出附件协议分组。由中继器810提供的虚拟端口所引入的间接性对于附件812是透明的。这允许能够直接与PCD 800通信的任何附件在不用修改的情况下通过虚拟端口进行通信。
虚拟端口对于PCD(例如,PCD 800)或中继附件(例如,中继器810)不是透明的。图10是根据本发明实施例的可由PCD执行来与两个附件通信的处理1000的流程图。在块1002,PCD 800可以检测第一附件(例如,中继器810)何时连接到其附件接口。在块1004,PCD 800可利用附件协议中定义的消息来与中继器810通信。在块1006,PCD 800可由从中继器810接收指示第二附件(例如,附件812)已连接到第一附件的后接口的消息。在块1008,PCD 800可通过中继器810与第二附件812通信。为了与第二附件812通信,PCD 800可由将附件协议中定义的消息封装在附件协议的数据发送命令内并且将数据发送命令发送给中继器812。
图11是根据本发明实施例的可由PCD 800在块1008处执行来向第二附件812发送消息的处理1100的流程图。在块1102,PCD 800可以生成希望针对第二附件812的附件协议命令;生成该命令可以包括生成并格式化任何相关联数据(例如,净荷)。在块1104,PCD 800可以将该命令(包括任何相关联数据)封装在附件协议的数据发送命令内。在块1106,PCD 800可以经由附件接口将数据发送命令发送给第一(中继)附件810。如上所述,数据发送命令指示中继附件810提取所封装的命令(包括任何相关联数据)并且将所提取命令(适用时,以及数据)转发给第二附件812。
类似地,图12是根据本发明实施例的可由中继附件(例如,中继器810)执行来与PCD(例如,PCD 800)和另一附件(例如,附件812)通信的处理1200的流程图。在块1202,中继附件810可由根据附件协议经由其前接口与PCD 800通信。在块1204,中继附件810可由检测第二附件(例如,附件812)到其后接口的连接。在块1206,中继附件810可由向PCD 800通知附件812已连接到后接口。在块1208,中继附件810可由以如下方式在其后接口与其前接口之间来中继遵循附件协议的通信:该方式使得中继附件810的存在对于附件812是透明的,源自附件812且由附件810中继的通信与源自附件810的通信可以被PCD 800区分开。
可通过参考图13A-13B和图14A-14B进一步理解处理1000和1200。图13A-13B是根据本发明实施例的可由PCD执行来与中继附件和另一附件交互的处理1300的流程图。
处理1300在第一附件被附接到PCD(例如,图5的PCD 502)时开始(图13A中的块1302)。在块1304,第一附件建立到PCD 502的连接。建立连接可以包括附件例如利用上述AccessorySettings命令来标识其自身,并且还可以包括认证过程。标识可以包括对各种偏好的请求,例如,附件是否使用来自PCD的音频输出和/或视频输出。认证可以是加密的;例如,附件可以提供PCD 502可验证的数字凭证,然后提供由PCD502生成的随机串的数字签名。如果标识或认证失败,则处理1300可以退出(未明确示出)。假设连接被建立,则在块1306,PCD 502判断第一附件是否支持后端口。例如,PCD 502可以解析附件所发送的标识令牌。如果附件不支持后端口,则在块1308,PCD 502可以以点到点模式操作,即,没有虚拟端口。
如果附件支持后端口(换言之,附件是诸如中继器504之类的中继器),则在块1310,PCD 502可以指示中继器504例如利用上述VPControl命令来使能其后端口。在块1312,PCD 502可以判断第二附件是否被附接到中继附件504的后端口。例如,PCD 502可以检测来自中继附件504的VPEvent命令,其中净荷指示第二附件已被连接到后端口。如果第二附件未被附接,则PCD 502可以在块1314中以点到点的模式操作,直到第二附件连接到后端口时为止。
当PCD 502在块1312中检测到第二附件存在于后端口上之后,PCD502可以在块1316中定义用于第二附件的虚拟端口,其中该虚拟端口被与中继附件504的实体端口相关联。在一个实施例中,定义虚拟端口可以包括更新端口映射表807(图8)。第二附件(例如,附件506)可以在块1318处建立其到PCD 502的连接。连接的建立可以与上面描述的类似并且可以包括标识和认证。PCD 502和附件506可以利用如上所述的VPDataSend和VPDataReceive命令通过经由中继附件504的通信来交换标识和认证命令。如果第二附件506未能标识或认证其自身,则PCD 502可以拒绝与附件506的进一步通信,而继续与中继附件504通信;处理1300可以返回块1314以等待另一连接尝试(未明确示出)。
如果在块1318处成功地建立了到附件506的连接,则在块1320,PCD 502可以确立各种通信设置。例如,PCD 502可以发送一个或多个VPControl命令以对中继器504的信号传递设置进行配置。PCD 502还可以调节其它设置(例如,视频格式、音频格式、专用语运用等)以用于与所连接附件进行交互操作。
在一些实施例中,PCD 502可以尝试在中继附件504与附件506各自的标识期间将二者所请求的偏好项相匹配。然而,在一些实施例中,这不总是可行的。例如,在一些实施例中,PCD 502在任何给定时间仅可输出一种视频格式。如果中继附件504与附件506请求不同的视频格式,则PCD 502无法适应这两个请求。作为另一示例,附件协议中的一些专用语(例如,远程用户接口专用语)可能一次仅可由一个附件使用。当中继附件504与附件506都不知道另一个的所请求偏好项时,有可能这两个设备请求相同的专用语,并且PCD 502不能准予两个请求。
各种优先级化算法可被用来解决这样冲突的偏好项。在一些实施例中,使登记偏好项的第一设备优先;例如,在处理1300中,坞站首先标识其偏好项;其偏好项将优先于来自附件的冲突偏好项。在其它实施例中,使登记偏好项的最后一个设备优先。在其它实施例中,可以实施更复杂的优先级化逻辑,例如,基于附件类型的优先级、针对不同类别偏好项的优先级规则不同,等等。
在块1322,PCD 502以虚拟端口模式操作,与中继附件504和附件506交互。该操作中的具体细节和时间序列取决于具体PCD和所连接附件以及用于控制该操作的用户输入。在各个实施例中,PCD 502的操作可以包括将音频和/或视频信号路由到附件506或中继附件504;从PCD 502的输入接口或者从附件506或中继附件504接收用户输入或数据;控制附件506或中继附件504的操作;等等。图13B示出了虚拟端口模式中的PCD操作的代表性情况。
当PCD 502确定应当将命令传输给中继附件504时,出现一种情况(块1324)。当是这样的情况时,在块1326,PCD 502创建包括该命令的PCD分组并将分组发送给中继附件504。
当PCD 502确定应当将命令传输给附件506时,出现另一情况(块1328)。当是这样的情况时,在块1330,PCD 502创建其中到附件的命令位于净荷中的VPDataSend命令分组,并将分组发送给中继附件504。在一些实施例中,多个VPDataSend命令可被用来将单个命令传输给附件506。
当PCD 502接收到来自中继器504的附件协议分组时,出现另一情况(块1332)。当是这样的情况时,在块1334,PCD 502判断该分组是否对应于VPDataReceive命令。如果是,则在块1336,源自附件506的命令被提取,并且在块1338,该命令在与附件506相关联的上下文中被处理。在一些实施例中,可接收关于源自附件506的单个命令的多个VPDataReceive命令。
如果该分组不对应于VPDataReceive命令,则在块1340,PCD 502判断该分组是否指示附件506拆离(例如,VPEvent命令的净荷指示附件506已从中继器504的后接口538拆离)。如果是,则处理1300可返回块1314,直到附件再次被附接为止。否则,该分组在块1342中在与中继附件504相关联的上下文中被处理。
处理1300的操作可以无限期地持续,只要中继附件504保持连接到PCD 502。当中继附件504断开连接(块1344)时,处理1300可结束(块1346)。
图14A和图14B是根据本发明实施例的可由中继附件(例如,中继附件504)执行来与PCD(例如,PCD 502)和第二附件(例如,附件506)交互的处理1400的流程图。
处理1400在中继附件504附接到PCD 502时开始(图14A中的块1402)。此时,中继附件504可禁用其后端口。在块1404,中继附件504可以例如利用上面参考处理1300的块1304描述的标识和认证命令来建立到PCD 502的连接。在块1406,中继附件504判断PCD 502是否支持虚拟端口功能。如果不支持,则在块1408,中继附件504可以在点到点模式中操作。中继附件504的后接口538可以保持禁用。
如果PCD 502支持虚拟端口功能,则在块1410,中继附件504判断后端口是否应当被禁用。例如,中继附件504可以判断PCD 502是否发送了其净荷指示后端口应当被使能的VPControl命令。如果否,则在块1412,中继附件504可继续在点到点模式操作直到PCD 502指示后端口应当被使能时为止。当这样的情况发生时,在块1414,中继附件504可以通过使能其后端口来作出响应。在一些实施例中,使能后端口可以包括在后接口538的电力输出针脚上提供电力。在一些实施例中,如上所述,中继附件504可以例如通过使如下信号针脚浮动来模仿其后端口的实体解耦合,所述信号针脚在平时将被中继器504接地或保持在某个其它指定状态中;在这样的实施例中,当后端口被禁用时,中继附件504可以使这些针脚浮动以防止附件506检测到连接。当在块1414中后端口被使能时,中继附件504可以将浮动的针脚接地或者以其它方式将浮动针脚驱动为允许附件506检测到连接的状态。
等待PCD 502对使能后端口进行授权确保了在中继附件504建立其配置之前后端口不被使能;还可以防止如果在PCD 502建立好虚拟端口之前另一附件尝试经由虚拟端口进行连接而可能发生的错误。
在块1416,中继附件504判断另一附件是否连接到后端口538。只要没有其他附件被连接,中继附件504就可以继续在点到点模式中操作(块1418)并且监视附件连接。当另一附件(例如,附件506)附接到后接口538时,在块1420,中继附件504可以通知PCD 502。在一些实施例中,中继附件504可以检测并测量由附件施加在后接口538中的连接器的两个针脚上的附件标识电阻,并且可以将所测得电阻值报告给PCD 502。在一些实施例中,中继附件504还可以向所连接附件指派虚拟端口标识符并且将标识符提供给PCD 502。
在块1442,中继附件504进行操作,即,与PCD 502和附件506交互。该操作中的具体细节和时间序列取决于具体PCD和所连接附件以及中继附件504所提供的具体功能。在各个实施例中,中继附件504的操作可以包括从PCD 502接收音频和/或视频信号并在输出设备(扬声器、显示屏等)上呈现对应的声音和图像,或者将信号路由到后端口附件;接收用户输入并将输入传输给PCD 502;控制操作或调用PCD 502的功能(例如,开始和停止媒体回放,启动应用程序并与之交互等);等等。图14B示出了虚拟端口模式中的中继器操作的代表性情况。
当中继附件504从附件506接收到命令时出现一种情况(块1424)。当是这样的情况时,在块1426,中继附件504创建命令VPDataReceive分组,即,将所接收命令包括在净荷中,并且将VPDataReceive分组发送给PCD 502。在一些实施例中,附件504可以创建多个VPDataReceive分命令分组来转发来自附件506的单个命令分组。
当中继附件504确定应当向PCD 502发送命令(不是从附件506接收的命令)时出现另一种情况(块1428)。当是这种情况时,在块1430,中继附件504包括该命令的附件协议分组并且将该命令发送给PCD 502。
当中继附件504从PCD 502接收到命令时出现另一种情况(块1432)。在块1434,中继附件504判断该命令是否是VPDataSend命令。如果是,则在块1436,中继附件504可从VPDataSend命令提取净荷并将其作为附件协议分组发送给附件506。在一些实施例中,中继附件504可以添加分组头部、起始字节、检错编码等来得到完整的附件协议分组。在一些实施例中,VPDataSend命令可以包括一个或多个附件协议命令、部分附件协议命令等。在一些实施例中,中继附件504针对所接收的每个VPDataSend命令发送一个附件协议分组;在其它实施例中,中继附件504可以级联VPDataSend命令的净荷的流并且将该流作为希望大小的附件协议分组来发送。如果所接收命令不是VPDataSend命令,则在块1438,中继附件504可以在本地处理该命令。如果该命令是VPDataSend命令,则该命令的处理可能影响到附件506的连接路径,但是该命令本身无需被转发给附件506。其它命令可能对到附件506的连接路径没有影响。
当中继附件504检测到附件506已被拆离时出现另一种情况(块1440)。当是这种情况时,在块1442,中继附件504可以向PCD 502发送VPEvent命令以指示附件506不再被附接。此后,处理1400可返回块1416以检测该同一附件或不同附件在中继附件504的后端口上的后续附接。处理1400的操作可以无限期地持续,只要中继附件504保持连接到PCD502。当中继附件504断开连接时(块1444),则处理1400可结束(块1446)。
应当明白,这里描述的通信处理是示例性的并且可以进行变形和修改。被描述为顺序进行的步骤可以并行地执行,步骤的顺序可被改变,并且可以修改、组合、添加或省略步骤。例如,可以利用中断、轮询等来检测这里描绘的各种情况或其它操作状况。在一些实施例中,音频和/或视频路由可以被动态地改变。例如,PCD 502可以接收开始或停止从中继附件504或第二附件506递送音频信号的请求。在该请求源自第二附件506的情况中,PCD 502可以向中级附件506发送VPControl命令以相应地改变路由。
在一些实施例中,可通过将一个中继器的前端口连接到另一中继器的后端口来将相连附件的链扩展为任意数目的附件,从而形成任意长度的菊链。图15图示出了多个中继附件形成系统1500的本发明实施例的操作原理。
在图15中,PCD 1510经由实体端口1502连接到第一中继器1501的前接口。第一中继器1501的后接口被连接到第二中继器1503的前接口,从而提供了实体端口1504。第二中继器1503的后接口被连接到第三中继器1505的前接口,从而提供实体端口1506。中继器1505的后接口被连接到附件1507,从而提供实体端口1508。在此布置中,PCD 1510上的一个实体端口(端口1502)支持三个虚拟端口。虚拟端口1512将PCD 1510连接到第二中继器1503;虚拟端口1514将PCD 1510连接到第三中继器1505;并且虚拟端口1516将PCD 1510连接到附件1507。
应注意,菊链系统1500可以在无需中继器1501、1503或1505知道其在系统1500内的位置或有多少附件连接到PCD 1510的情况下进行操作。这可以通过嵌套VPDataSend和VPDataReceive命令来实现,如图16-18所示。
图16图示出了根据本发明实施例命令从附件1507到PCD 1510的传播。由附件1507生成的分组1602是包含命令(CMD)的附件协议分组。分组1602被发送给中继器1505,中继器1505将该命令CMD封装在VPDataReceive命令分组1604(在附图中缩写为“VPDR”)中,并沿着该链向上将其发送给中继器1503。中继器1503在其后端口上接收分组1604,并将其封装在VPDataReceive命令分组1606中,沿着该链向上将该分组1606转发给中继器1501。中继器1501将所接收分组1606封装在VPDataReceive命令1608中,沿着该链向上将命令1608转发给PCD1510。应注意,中继器1503和1501的操作不受所接收分组包含VPDataReceive命令这个事实的影响。PCD 1510对分组1608的所嵌套VPDataReceive命令进行解包,并且通过对层数进行计数,可以确定该命令CMD源自附件1507。
类似地,图17图示出了根据本发明实施例命令从第三中继附件1505到PCD 1510的传播。由中继器1505生成的分组1702是包含命令(CMD)的附件协议分组。分组1702被发送给中继器1503,中继器1503将该命令CMD封装在VPDataReceive命令分组1704中,并沿着该链向上将其发送给中继器1501。中继器1501将所接收分组1704封装在VPDataReceive命令分组1706中,并沿着该链向上将其转发给PCD1510。再次地,中继器1501的操作不受所接收分组包含VPDataReceive命令这个事实的影响。PCD 1510对所嵌套VPDataReceive命令进行解包,并且通过对层数进行计数,可以确定该命令CMD源自中继器1505。
相同原理可由PCD 1510用来将命令沿着菊链引导至适当目的地。图18图示出了根据本发明实施例命令CMD从PCD 1510到附件1507的传播。PCD 1510生成包含三个所嵌套VPDataReceive命令(在附图中缩写为“VPDR”)的VPDataReceive分组1802,并将该分组发送给中继器1501。中继器1501拆封出最外面的VPDataReceive命令并将净荷(现在包含两个嵌套的VPDataReceive命令)作为分组1804转发给中继器1503,而不受该净荷包含另外的VPDataReceive命令这个事实的影响。中继器1503拆封出最外面的VPDataReceive命令并将净荷(现在包含单个嵌套的VPDataReceive命令)作为分组1806转发给中继器1505。中继器1505拆封出剩余的VPDataReceive命令并将最终分组1808转发给附件1507。类似地,PCD 1510可以通过将适当数目的VPDataReceive命令嵌套在外出分组中来将命令引导至任何中继器。目标附件将接收其要处理的命令分组;中间物将接收VPDataReceive命令,拆封它,并转发得到的分组,而不管得到的分组是否包含VPDataReceive命令或另外的命令。
为了进一步说明本通信技术,图19是根据本发明实施例的可由PCD(例如,图15的PCD 1510)用来将消息发送给菊链配置中的多个附件之一的处理1900的流程图。在块1902,PCD 1510可在实体端口上建立到第一附件(例如,附件1501)的连接。在块1904,对于第一附件以外的每个附件,PCD 1510可由在建立连接时将虚拟端口与该附件相关联;每个虚拟端口可被与实体端口相关联并且可被指派一离PCD 1510不同的虚拟距离。因此,例如,用于附件1503的虚拟端口可由具有虚拟距离1;对于附件1505,虚拟距离为2;并且对于附件1507,虚拟距离为3。在块1906,PCD 1510可由将附件之一标识为外出消息的目的地附件。在块1908中,PCD 1510可将外出消息封装在多个嵌套的数据发送命令中,嵌套的数据发送命令的数目基于目的地附件的虚拟距离来确定。对于上面给出的虚拟距离指派,该数目可以等于虚拟距离;如果第一附件是目的地,则数据可以为零。在块1910,PCD 1510可以经由实体端口将所封装的外出消息发送给第一附件1501。如上所述,附件1501可以读取最外面的命令,判断其是否是数据发送命令,并且取决于目的地而对分组进行处理或进行转发。
图20是根据本发明实施例的可由PCD(例如,图15的PCD 1510)用来从菊链中的多个附件之一接收消息的另一处理2000的流程图。在块2002,PCD 1510可以在实体端口上建立到第一附件(例如,附件1501)的连接。在块2004,对于第一附件以外的每个附件,PCD 1510在建立连接时可以将虚拟端口与该附件相关联;每个虚拟端口可被与实体端口相关联并且可以被指派离PCD 1510的不同虚拟距离。可以与处理1900的块1902和1904类似地或相同地来实现这些块。在块2006,PCD 1510可以在实体端口上接收进入消息。在块2008,PCD 1510可以确定包括在进入消息中的所嵌套数据接收命令的数目。在块2010,PCD 1510可以基于所嵌套数据接收命令的数目来确定虚拟距离。在块2012,PCD 1510可以基于所确定的虚拟距离和与各个虚拟端口相关联的虚拟距离来将附件之一标识为该消息的源。对于上面给定的虚拟距离指派(在图19的描述中),如果数据接收命令的数目为零,则第一附件1201可被标识为源。此后,PCD1510可以基于源端口的身份来处理该消息。
应当明白,处理1900和2000可以被组合以支持双向通信。因此PCD可以在任何时间从任何附件接收消息,并可以在任何时间向任何附件发送消息。此外,虽然描述了针对单个实体端口的菊链配置,但是在一些实施例中,PCD可以具有多个实体端口,并且可将单独的虚拟端口组与每个实体端口相关联。在该情况中,可以通过参考实体端口和离该实体端口的虚拟距离来标识源或目的地附件。
如这些示例所说明的,附件1501、1503、1505、1507都不需要关于其在链中的位置的任何信息。PCD 1510使用关于所连接设备在链中的顺序的信息来将每个设备与合适的嵌套层级号相关联。在图14的处理1400以各种中继器来实现的情况中,每个中继器在允许任何其它设备连接到其后接口上之前向PCD 1510标识其自身;结果,PCD 1510可以基于附件在其中标识它们自身的顺序来将嵌套层级号与每个所连接附件相关联。
这里描述的菊链系统可被扩展为将任意数目的附件连接到PCD。虽然在此实施例中附件(包括中继器)彼此不直接通信,但是间接通信是可以的,因为PCD可以响应于来自另一相连附件的命令对一个相连附件进行动作。例如,参考图4,坞站200可以经由键盘204接收用户输入并利用PCD附件协议的命令(例如,KeyEvent命令)将该输入发送给PCD 100。PCD 100可以将用户输入解释为操作相机400的命令,并且可以利用上述VPDataSend命令向相机400发送命令。
取决于实施方式,各种因素可能限制菊链的最大长度。一个这样的因素是响应延迟。例如,附件协议可以包括需要来自另一设备的响应的命令。(在一些实施例中,每个命令需要响应;如果特定命令不需要其它响应,则作出响应的设备可以发送确认命令。)等待响应的设备(PCD或附件)可被配置为如果未在指定时段内接收到响应则超时,生成错误状态。菊链中的每个链路一般将向命令传播添加延迟,并且如果往返延迟变得可比得上超时时段,则可能发生错误。
在一些实施例中,其它限制因素涉及分组大小和带宽约束。如图16-18所示,较长的菊链可能要求更大的分组,从而消耗更多可用带宽。另外,虽然链中通信设备数目的增长,还可预期设备之间的实体信道上的带宽需求也会增加。在某点时,由于实体信道上的巨大需求,添加另一设备可能导致性能降低。
应当明白,这些限制很大程度上取决于设计选择。在设计一个系统时,最大分组大小、信道带宽和/或超时参数可以该系统希望支持的最长链来选择。在一些实施例中,可在软件中调节超时时段或其它参数。例如,PCD可以连接了多少个附件,并且基于相连附件数目来将附件协议命令发送给所有相连附件中的一些或全部以指示设备调节它们的延迟约束。
如上所述,PCD和菊链拓扑中连接的多个附件可以通过交换消息(例如,命令和/或数据)来通信,从而允许每个附件在很大程度上独立于可能存在的任何其它附件来与PCD交互。事实上,如所提到的,上游附件的存在对于下游附件可以完全是透明的;中间附件可以检测到至少一个下游附件存在但是不需要具有关于有多少个下游附件存在或者这些附件提供什么功能的信息。
在一些情况中,来自不同附件的消息可能潜在地在PCD上产生冲突或不兼容需求;例如,两个附件可能要求不兼容的设置或者要求同时播放不同媒体资产等。为了防止冲突,在一些实施例中,PCD可以将多某个功能的访问权限制为相连附件中的仅一个。
例如,在一些实施例中,附件通信协议提供多个专用语或者相关命令组(例如,如上所述的)。当附件连接到PCD时,该附件可被要求登记其在连接时将使用的每个专用语;将要登记的专用语的标识可以被包括在上述AccessorySettings命令或其它命令中。在一些实施例中,PCD可被配置(例如,通过编程)为限制对某些专用语的登记,以使得一次仅一个附件可针对特定专用语被登记。例如,将要登记特定专用语的第一附件可被授予访问权,只要第一附件保持连接,则任何后续附件被拒绝访问。当对专用语的访问被拒绝时,PCD可以向附件发送错误消息或者简单地忽略源自未成功登记的附件对该专用语的任何命令。
在各个实施例中,PCD可以限制对于其支持的任何或所有专用语的登记。例如,其命令有可能产生冲突的专用语(例如,用于远程地控制媒体资产选择和回放的专用语)可以被限制给单个附件,而其他专用语(例如,用于从PCD向附件提供GPS数据的专用语)一直不受限制并且因此可供任何相连附件使用。当附件协议包括用于支持标识、认证和关于能力和偏好的一般信息的交换的一般性专用语时,该一般性专用语可以一直不受限制。
除了基于消息的通信之外,在一些实施例中,PCD还可以向附件递送各种格式的媒体信号(例如,音频和/或视频)。一些中继附件可以提供路由功能以从PCD选择性地将媒体信号递送给本地输出部件或中继器的后端口。
图21是根据本发明实施例的示出了媒体信号的路由的PCD 2100和中继附件2102的简化框图。PCD 2100包括处理器2104、附件I/O接口2106、存储设备2112和(一个或多个)输出设备2122。这些组件一般可类似于上面参考图5描述的组件。
在此实施例中,处理器2104包括控制部件2108和媒体部件2110。控制部件2108可以执行程序代码以控制PCD 2100的操作,而媒体部件2110专用于处理媒体内容。例如,媒体部件2110可以从存储介质2112读取所存储的数字格式的媒体内容,并将所存储媒体内容转换为输出路径2120上的模拟或数字信号流。(虽然示出为单条线,但是每个输出路径2120可以包括多条线。)媒体部件2110可以支持多种不同信号格式。例如,在视频信号的情况中,媒体部件2110能够递送遵循不同标准格式NTSC、PAL、HD(诸如780p、1080i、1080p之类的各种格式)等的信号。对于一些视频格式,媒体部件2110可以支持不同的高宽比(例如,4∶3的“全屏”高宽比或16∶9的“横屏”高宽比)。媒体部件2110还可以将输出路径2110上的信号改编为遵循不同实体传输标准,例如HDMI、S-视频、分量视频等。因此,媒体部件2110可以包括数字信号处理器、数模转换器、编码器、解码器、转码器、驱动器电路等。
媒体部件2110可以将其生成的信号流经由路径2120路由到附件I/O接口2106。在一些实施例中,媒体部件2110还可以将信号流路由到PCD2100内的输出设备2122(例如,显示屏、扬声器)或者PCD 2100的专用媒体输出端口(未明确示出)。路由可由控制部件2108响应于程序指令来控制并且可以部分地取决于相连接的一个活多个附件的存在和类型。
控制部件2108可以利用消息路径2124经由附件I/O接口2106与附件通信,消息路径2124可以在实体上与音频和视频路径2120不同。该通信可以利用上面描述的技术来实现并且可以包括来自各个附件的关于媒体信号偏好的通信。例如,所连接附件可以请求从PCD 2100请求模拟或数字音频和/或模拟或数字视频;附件也可以指定将被递送的信号的优选格式。控制部件2108可以仲裁这些请求并且选择将要使用的格式和路由。控制部件2108可以将这些选择传输给媒体部件2110并且还传输给相连接的一个活多个附件,诸如中继附件2102。
大体上可类似于这里描述的其它中继附件的中继附件2102可以包括前接口2130、控制器2132、信号路由逻辑2134、音频/视频输出部件2136以及后接口2138。前接口2130可以从PCD 2100的附件I/O接口2106接收音频和视频信号,并且还可以通过该接口(例如,使用多针脚连接器的不同针脚)与PCD 2100交换消息。
控制器2132可以处理所接收消息并且生成针对中继器2102的其它组件的控制信号。控制器2132还可以生成例如如上所述的附件协议中的外出消息。外出消息可以经由前接口2130向上游发送或者经由后接口2138向下游发送。
信号路由逻辑2134可以从前接口2130接收音频和视频信号并且将它们路由到音频/视频输出部件2136(其大体上可类似于图5的音频/视频输出部件544)或后接口2138。在一些实施例中,信号路由逻辑2134可以将相同信号地送给音频/视频输出部件2136和后接口2138两者。信号路由逻辑2134可以利用传统电路来实现以便选择性地将信号路由到各个可用路径上去。信号路由逻辑2134的操作可由控制器2132响应于接收自PCD2100的消息而进行控制。例如,PCD 2100可以发送上述VPControl命令以指示音频或视频应当被路由到后接口2138。
虽然图21仅示出了连接到PCD 2100的一个附件(中继器2102),但是应当明白,任意数目的附件可被连接在菊链中(例如,如上所述的)。PCD 2100可以从任何所连接附件接收对于音频和/或视频输出递送和格式的请求并且将控制指令发送给所连接附件中的任何附件或所有附件以按需要路由音频和/或视频输出。
图22是根据本发明实施例的可由PCD 2100用来控制媒体(例如,音频和/或视频)信号的路由的处理2200的流程图。当多个附件按如上所述的菊链被连接到PCD 2100时,处理2200开始(块2202)。在块2204,PCD 2100可以从一个或多个相连附件接收媒体信号偏好请求。例如,任何相连附件例如可以利用图16和图17中所示的技术来发送AccessorySettings命令。附件可以在请求中指定其希望的音频和/或视频格式。
在块2206,PCD 2100可以基于请求为输出媒体信号选择格式。在一些实施例中,块2206可以包括检测并解决所接收请求中的冲突。例如,如果不同附件请求不同视频格式或信号传输,则可能发生冲突。例如,一个附件可请求关于S-视频传输的NTSC,而另一附件请求关于分量视频传输的HD 1080p。如果PCD 2100只有一个视频输出路径2120,则可能不能同时递送这两种所请求信号。另一方面,如果多个附件请求相同信号格式和传输,则不会发生冲突。如果请求音频或视频的附件位于不支持音频或视频经过路由的中继附件的下游,则可能发生另一冲突示例。在一些实施例中,PCD 2100可以基于由每个相连附件使用AccessorySettings命令提供的标识信息来确定哪些附件支持音频或视频经过路由。
因此,PCD 2100中的处理器2104的控制部件2108可被配置有冲突解决逻辑。例如,在一个实施例中,PCD 2100可以通过在块2206中选择第一请求的格式来准予所接收的第一请求。PCD 2100还可以准予不与第一请求冲突的任何后续请求(例如,使用同一格式)。与第一请求冲突的任何后续请求可被拒绝。还可以使用其他逻辑规则。PCD 2100逻辑中的冲突解决的存在允许附件在无需关注另一附件是否可能做出冲突请求的情况下来做出请求。
在块2208,PCD 2100可以确定所接收请求。在一些实施例中,PCD2100可以向在块2204中从其接收了请求的每个附件发送确认消息。确认消息可以包括状态字,并且状态字可指示该请求是被准予还是被拒绝。在一些实施例中,如果附件被通知请求已被拒绝,则该附件可以修改其行为和/或向用户警报。
在块2210,PCD 2100可以指示一个或多个相连附件配置它们的媒体信号路径以使得例如使用一个或多个VPControl命令将来自路径2120的输出信号递送给其请求被准予的每个附件。例如,参考图15,如果中继器1505请求视频,PCD 2100可以指示中继器1501和1503将视频信号从它们的前接口路由到它们的后接口。
在块2212,PCD 2100可以向附件提供媒体信号。例如,控制部件2108可以指示媒体部件2110生成在块2206中选择的格式的信号,并且媒体部件2110可以将信号递送到输出路径2120。相连附件可以根据在块2210中提供的指令来接收并路由信号。
在块2214,PCD 2100判断是否接收到针对媒体信号的任何新的请求。如果是,则PCD 2200可以返回块2204以处理该请求,并且适当地,改变附件的所选格式和/或路由配置。在一些实施例中,如果在任何请求被接收时媒体部件2110正在生成信号,则要改变格式的任何信号被忽略或拒绝。如果未接收到新请求,则处理2200可以继续以在块2212中提供信号。
在块2216,PCD 2100可以判断媒体回放是否应当结束。如果是,则处理2200可以结束(块2218)。处理2200可以无限期地继续,直到回放结束或者一个或多个附件拆离为止。在一些实施例中,附件拆离可以自动地使得PCD 2100暂停回放。
应当明白,处理2200是示例性的并且可以进行变形和修改。被描述为顺序进行的步骤可以并行地执行,步骤的顺序可被改变,并且可以修改、组合、添加或省略步骤。例如,不同逻辑规则可被实现来解决冲突的请求。媒体输出格式的任何组合可以被支持。如果PCD 2100可以并发地提供多种格式(例如使用不同信号线)并且中继附件可以并发地路由多种格式,则请求冲突的可能性可被降低。
此外,类似处理和设备配置可被用来从相连附件中的一个或多个向PCD 2100提供输入信号(例如,音频和/或视频)。附件可以发送提供输入的请求(例如,从附件中的麦克风或摄录机),并且PCD 2100可以仲裁该请求并授权一个附件(或者,如果PCD 2100支持多个并发输入,则多于一个附件)提供输入。另外,这里描述的技术可被扩展到媒体信号之外的信号类型;可从PCD传输到附件或者可从附件传输到PCD的任何流传输信号可以按类似于这里描述的方式在多附件菊链中被管理。
虽然已参考具体实施例描述了本发明,但是本领域技术人员将认识到,可以进行许多修改。例如,“PCD”一般是指具有任何形式的通信和/或媒体回放能力的任何便携电子设备;可以包括广泛范围的功能。类似地,术语“附件”包括能够与PCD对接或以其它方式连接的任何电子设备,并且术语“中继器”或“中继附件”包括提供可连接到PCD或另一中继器的前端口和可连接到附加附件(其可以是或可以不是另一中继器)的后端口两者的任何附件。此外,虽然术语“前端口”和“后端口”(或“前接口”和“后接口”)在这里被用来区分中继附件的两个端口(或接口),但是这些术语与连接拓扑有关并且不希望暗含对连接器或其它接口硬件相对于附件主体的位置的任何限制。
此外,虽然一些实施例已被描述为使用多针脚连接器来提供实体端口,但是连接器的使用不是必须的。在一些实施例中,例如可以在可通过配线或针脚连接到其它中继附件的中继附件与PCD之间使用无线连接来建立实体端口。
这里描述的某些实施例可能不提供用于相连附件(例如,中继器和另一附件)的交互操作的直接路径。例如,如上所述,在一些实施例中,中继器可以不经处理地转发接收自相连附件的所有命令。在这些实施例中,交互操作可由PCD辅助。例如,PCD可以通过向另一相连附件发送命令来对接收自中继器的命令作出响应,或者通过向中继器发送命令来对接收自另一相连附件的命令作出响应。在其他实施例中,可以根据需要在相连附件之间提供直接通信信道,从而允许一个附件例如通过经由该直接信道发送消息来对另一个直接进行操作。
本发明的实施例可以利用专用组件和/或可编程处理器和/或其它可编程设备的任意组合来实现。这里描述的各种处理可在同一处理器或任何组合的不同处理器上来实现。因此,当组件被描述为被配置来执行某些操作时,例如可通过将电子电路设计为执行该操作、通过将可编程电子电路(例如微处理器)编程为执行该操作或者其任何组合,来实现这样的配置。处理可以使用包括但不限于用于交互处理通信的传统技术的多种技术来通信,并且不同处理对可以使用不同技术,或者同一处理对可以在不同时间使用不同技术。此外,虽然上面描述的实施例可能参考了特定硬件和软件组件,但是本领域技术人员应当明白,还可以使用硬件和/或软件组件的不同组合,并且被描述为利用硬件实现的特定操作也可以利用软件来实现,反之亦然。
包括本发明的各个特征的计算机程序可被编程在各个计算机可读存储介质上;合适介质包括磁盘或磁带、诸如致密盘(CD)或DVD(数字通用盘)之类的光存储介质、闪存等。利用程序代码被编码的计算机可读介质可以与兼容电子设备封装在一起,或者可以与电子设备分开提供程序代码(例如,经由因特网下载)。
因此,虽然已参考特定实施例描述了本发明,但是应当明白,本发明希望涵盖落在权利要求的范围内的所有修改和等同形式。
Claims (25)
1.一种中继附件,包括:
第一接口,被配置为连接到便携计算设备;
第二接口,被配置为连接到另一附件;以及
控制器,被耦合到所述第一接口和所述第二接口,所述控制器被配置为:
根据附件协议经由所述第一接口与所述便携计算设备通信;
检测另一附件到所述第二接口的连接;
向所述便携计算设备通知所述另一附件已连接到所述第二接口;以及
在所述第一接口与所述第二接口之间对遵循所述附件协议的通信进行中继,使得所述中继附件的存在对于所述另一附件而言是透明的,并使得源自所述另一附件的通信和源自所述中继附件的通信对于所述便携计算设备而言是能够区分的。
2.如权利要求1所述的中继附件,其中,所述第一接口包括第一连接器,所述第二接口包括与所述第一连接器互补的第二连接器。
3.如权利要求1所述的中继附件,其中,所述控制器还被配置为:从所述便携计算设备接收接口使能命令,并响应于接收到所述接口使能命令而使所述第二接口能够检测所述另一附件的连接。
4.如权利要求1所述的中继附件,还包括用户输入设备,并且其中,所述控制器还被配置为:经由所述第一接口,将用于表征所述用户输入设备的用户操作的信息传输给所述便携计算设备。
5.如权利要求1所述的中继附件,还包括:
媒体输出部件;以及
信号路由逻辑,被耦合到所述第一接口、所述第二接口和所述媒体输出部件,所述信号路由逻辑被配置为选择性地将媒体信号从所述第一接口路由到所述第二接口或所述媒体输出部件。
6.如权利要求5所述的中继附件,其中,所述控制器还被配置为响应于从所述便携计算设备传输的路由消息而向所述信号路由逻辑提供路由控制信号,并且其中,所述信号路由逻辑还被配置为响应于所述路由控制信号而选择性地路由所述媒体信号。
7.一种对连接在上游设备与下游设备之间的中继附件进行操作的方法,该方法包括由所述中继附件执行下述操作:
从所述上游设备接收第一命令消息,所述第一命令消息包括命令和净荷;
判断所述第一命令消息中的命令是否是数据发送命令;
如果所述第一命令消息中的命令是数据发送命令,则将与所述数据发送命令的净荷相对应的第一消息转发到所述下游设备;以及
如果所述第一命令消息中的命令不是数据发送命令,则在所述中继附件内处理该命令。
8.如权利要求7所述的方法,还包括:
从所述下游设备接收第二消息;
将来自所述下游设备的第二消息封装在第二命令消息中,所述第二命令消息包括数据接收命令;以及
将所述第二命令消息发送给所述上游设备。
9.如权利要求7所述的方法,还包括,在接收所述第一命令消息之前:
向所述上游设备发送标识消息,所述标识消息表明所述中继设备具有连接到所述下游设备的后接口;
从所述上游设备接收使能所述后接口连接到所述下游设备的指令;以及
响应于所述指令而使能所述后接口。
10.如权利要求7所述的方法,其中,使能所述后接口的步骤包括通过所述后接口提供输出电力。
11.如权利要求7所述的方法,其中,所述上游设备是便携计算设备或另一中继附件。
12.如权利要求11所述的方法,其中,所述上游设备是便携计算设备还是另一中继附件对于所述中继附件而言是透明的。
13.一种便携计算设备,包括:
接口,被配置为连接到附件;以及
耦合到所述接口的处理器,所述处理器被配置为:
检测第一附件何时连接到所述接口;
利用附件协议中定义的消息来与所述第一附件通信;
从所述第一附件接收通知消息,该通知消息表明第二附件已连接到所述第一附件的后接口;以及
通过所述第一附件来与所述第二附件通信,其中,与所述第二附件通信的步骤包括:将所述附件协议中定义的消息封装在所述附件协议的数据发送命令内,并将所述数据发送命令发送给所述第一附件。
14.如权利要求13所述的便携计算设备,其中,所述处理器还被配置为使得与所述第二附件通信的步骤还包括:接收来自所述第一附件的数据接收命令消息,从所述数据接收命令消息提取嵌入消息,并且将所述嵌入消息解释为源自所述第二附件。
15.如权利要求13所述的便携计算设备,其中,所述处理器还被配置为:
接收来自所述第二附件的通知消息,该通知消息表明第三附件已连接到所述第二附件的后接口;以及
通过所述第一附件来与所述第三附件通信,其中,与所述第三附件通信的步骤包括:将所述附件协议中定义的消息封装在第一数据发送命令中,将所述第一数据发送命令封装在第二数据发送命令中,并且将所述第二数据发送命令发送给所述第一附件。
16.如权利要求13所述的便携计算设备,其中,所述处理器还被配置来指示附件使能所述后接口连接到所述第二附件。
17.如权利要求13所述的便携计算设备,还包括被配置为生成媒体输出信号的媒体输出部件,并且其中,所述处理器还被配置为:接收来自所述第一附件和第二附件的对媒体格式的请求,基于所接收请求而选择媒体格式,并指示所述媒体输出部件以所选媒体格式生成所述媒体输出信号。
18.一种操作便携计算设备的方法,该方法包括由所述便携计算设备执行下述操作:
利用附件协议经由附件接口来与第一附件通信;
判断所述第一附件是否具有连接到第二附件的后接口;以及
如果所述第一附件具有连接到第二附件的后接口,则经由所述附件接口来与所述第二附件通信,其中,与所述第二附件通信的步骤包括:
生成去往所述第二附件的命令,所述命令遵循所述附件协议;
将所述命令封装在所述附件协议的数据发送命令中;以及
经由所述附件接口将所述数据发送命令发送给所述第一附件,其中,所述数据发送命令指示所述第一附件提取所封装命令并将所提取命令转发给所述第二附件。
19.如权利要求18所述的方法,还包括由所述便携计算设备执行下述操作:
判断所述第二附件是否具有连接到第三附件的后接口;以及
如果所述第二附件具有连接到第三附件的后接口,则经由所述附件接口来与所述第三附件通信,其中,与所述第三附件通信的步骤包括:
生成去往所述第三附件的命令,所述命令遵循附件协议;
将所述命令封装在所述附件协议的第一数据发送命令中;
将所述命令封装在所述附件协议的第二数据发送命令中;以及
经由所述附件接口将所述第二数据发送命令发送给所述第一附件。
20.如权利要求18所述的方法,还包括由所述便携计算设备执行下述操作:
经由所述附件接口,从所述第一附件接收数据接收命令;
从所述数据接收命令提取净荷;以及
将所述净荷作为来自所述第二附件的命令来处理。
21.一种编码有程序指令的计算机可读存储介质,这些程序指令在被运行时使便携计算设备中的处理器执行与多个附件通信的方法,该方法包括:
在所述便携计算设备的实体端口上建立去往所述多个附件中的第一附件的连接;
对于所述多个附件中除了所述第一附件之外的每个附件,将虚拟端口与该附件相关联,每个虚拟端口与所述实体端口相关联并具有离所述便携计算设备的不同虚拟距离;
将所述多个附件中的一个附件标识成外出消息的目的地附件;
将所述外出消息封装在多个嵌套的数据发送命令中,其中,嵌套的数据发送命令的数目是基于所述目的地附件的虚拟距离而确定的;以及
经由所述实体端口将经封装的外出消息发送给所述第一附件。
22.如权利要求21所述的计算机可读存储介质,其中,该方法还包括:
接收包含至少一个数据接收命令的进入消息;
确定所述进入消息内的数据接收命令的数目;
基于所述数据接收命令的数目,确定所述进入消息所源自的虚拟端口;
从所述进入消息提取命令消息;以及
将所述命令消息作为下述消息来处理:该消息源自与所述进入消息所源自的虚拟端口相对应的那个附件。
23.如权利要求21所述的计算机可读存储介质,其中,如果所述第一附件被标识为所述目的地附件,则嵌套数据发送命令的数目是零。
24.如权利要求21所述的计算机可读存储介质,其中,该方法还包括:
接收多个进入消息,每个进入消息包含对所请求媒体信号格式的媒体信号的请求,其中,各个进入消息源自所述多个附件中的不同附件;
基于对所述媒体信号的请求,选择媒体信号格式;以及
指示所述便携计算设备的媒体输出部件产生所选媒体信号格式的媒体信号以递送给所述实体端口。
25.如权利要求21所述的计算机可读存储介质,其中,该方法还包括:
向发送了对所述媒体信号的多个请求之一的附件中的每个附件发送确认消息,
其中,所述确认消息包括对所选媒体信号格式是否是所请求媒体信号格式的指示。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29261910P | 2010-01-06 | 2010-01-06 | |
US61/292,619 | 2010-01-06 | ||
US12/755,905 US20110167176A1 (en) | 2010-01-06 | 2010-04-07 | Connecting multiple accessories to a portable computing device |
US12/755,905 | 2010-04-07 | ||
PCT/US2011/020244 WO2011085018A1 (en) | 2010-01-06 | 2011-01-05 | Connecting multiple accessories to a portable computing device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103098040A true CN103098040A (zh) | 2013-05-08 |
CN103098040B CN103098040B (zh) | 2016-08-03 |
Family
ID=44225366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180012659.3A Active CN103098040B (zh) | 2010-01-06 | 2011-01-05 | 将多个附件连接到便携计算设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110167176A1 (zh) |
EP (1) | EP2521973B1 (zh) |
CN (1) | CN103098040B (zh) |
WO (1) | WO2011085018A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045738A (zh) * | 2014-03-24 | 2015-11-11 | 诺基亚技术有限公司 | 连接usb c 型设备的方法和装置 |
CN105264507A (zh) * | 2013-05-21 | 2016-01-20 | 三星电子株式会社 | 在通信系统中识别外部设备的装置和方法 |
WO2018171147A1 (zh) * | 2017-03-21 | 2018-09-27 | 百富计算机技术(深圳)有限公司 | 交易数据传输方法、电子设备和存储介质 |
CN109684249A (zh) * | 2014-12-04 | 2019-04-26 | 苹果公司 | 用于使用电子附件连接的连接属性促进定位附件的主设备 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9198084B2 (en) | 2006-05-26 | 2015-11-24 | Qualcomm Incorporated | Wireless architecture for a traditional wire-based protocol |
US9398089B2 (en) | 2008-12-11 | 2016-07-19 | Qualcomm Incorporated | Dynamic resource sharing among multiple wireless devices |
US9264248B2 (en) | 2009-07-02 | 2016-02-16 | Qualcomm Incorporated | System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment |
US8886852B2 (en) | 2009-09-14 | 2014-11-11 | Cadence Design Systems, Inc. | Techniques for achieving complete interoperability between different types of data and multimedia interfaces in handheld devices |
US8949481B2 (en) * | 2009-09-14 | 2015-02-03 | Cadence Design Systems, Inc. | Techniques for achieving complete interoperability between different types of multimedia display interfaces |
US9197023B2 (en) | 2009-09-14 | 2015-11-24 | Cadence Design Systems, Inc. | Apparatus for enabling simultaneous content streaming and power charging of handheld devices |
US9582238B2 (en) | 2009-12-14 | 2017-02-28 | Qualcomm Incorporated | Decomposed multi-stream (DMS) techniques for video display systems |
US8583836B2 (en) * | 2010-02-03 | 2013-11-12 | Stmicroelectronics, Inc. | Packet-based digital display interface signal mapping to bi-directional serial interface signals |
US8886849B2 (en) | 2012-05-11 | 2014-11-11 | Apple Inc. | Multi-mode adapter |
BR112012030285B1 (pt) | 2010-05-28 | 2020-01-21 | Apple Inc | conector de plugue e conector de plugue com orientação dupla |
JPWO2011158484A1 (ja) * | 2010-06-14 | 2013-08-19 | 三洋電機株式会社 | 端末装置 |
US8337305B2 (en) | 2010-11-17 | 2012-12-25 | Steelseries Aps | Apparatus and method for managing user inputs in video games |
US10135900B2 (en) | 2011-01-21 | 2018-11-20 | Qualcomm Incorporated | User input back channel for wireless displays |
US8964783B2 (en) | 2011-01-21 | 2015-02-24 | Qualcomm Incorporated | User input back channel for wireless displays |
US20130013318A1 (en) | 2011-01-21 | 2013-01-10 | Qualcomm Incorporated | User input back channel for wireless displays |
US9065876B2 (en) | 2011-01-21 | 2015-06-23 | Qualcomm Incorporated | User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays |
US9413803B2 (en) | 2011-01-21 | 2016-08-09 | Qualcomm Incorporated | User input back channel for wireless displays |
US9787725B2 (en) * | 2011-01-21 | 2017-10-10 | Qualcomm Incorporated | User input back channel for wireless displays |
US9503771B2 (en) | 2011-02-04 | 2016-11-22 | Qualcomm Incorporated | Low latency wireless display for graphics |
US10108386B2 (en) | 2011-02-04 | 2018-10-23 | Qualcomm Incorporated | Content provisioning for wireless back channel |
TWI590065B (zh) | 2011-09-05 | 2017-07-01 | 宏碁股份有限公司 | 電子系統與電源管理方法 |
TW201312334A (zh) * | 2011-09-05 | 2013-03-16 | Acer Inc | 電子系統與效能控制方法 |
CN102999149A (zh) * | 2011-09-14 | 2013-03-27 | 宏碁股份有限公司 | 电子系统与电源管理方法 |
GB2495293B (en) | 2011-10-04 | 2014-12-17 | Canon Europa Nv | A method of connecting a device to a network, a system, and a program |
TW201317756A (zh) * | 2011-10-20 | 2013-05-01 | Hon Hai Prec Ind Co Ltd | 電源升級系統 |
CN103092308A (zh) * | 2011-11-01 | 2013-05-08 | 宏碁股份有限公司 | 电子装置与电子系统 |
US9293876B2 (en) | 2011-11-07 | 2016-03-22 | Apple Inc. | Techniques for configuring contacts of a connector |
US8799527B2 (en) * | 2012-09-07 | 2014-08-05 | Apple Inc. | Data structures for facilitating communication between a host device and an accessory |
US8863033B2 (en) * | 2011-11-28 | 2014-10-14 | General Electric Company | Method and system for inspecting an asset |
US8762605B2 (en) | 2011-11-30 | 2014-06-24 | Apple Inc. | Adapter for electronic devices |
US20130217274A1 (en) * | 2011-12-06 | 2013-08-22 | Transwitch Corporation | Connector for achieving complete interoperability between different types of data and multimedia interfaces |
US9525998B2 (en) | 2012-01-06 | 2016-12-20 | Qualcomm Incorporated | Wireless display with multiscreen service |
US9357103B2 (en) * | 2012-01-20 | 2016-05-31 | Control4 Corporation | Systems and methods for controlling media devices |
US9306879B2 (en) | 2012-06-08 | 2016-04-05 | Apple Inc. | Message-based identification of an electronic device |
TWI456402B (zh) * | 2012-08-08 | 2014-10-11 | Acer Inc | 擴充模組 |
TWI483123B (zh) * | 2012-08-08 | 2015-05-01 | Acer Inc | 擴充模組及其雲端裝置 |
CN103631749B (zh) * | 2012-08-27 | 2016-07-06 | 宏碁股份有限公司 | 扩充模块 |
CN103678222A (zh) * | 2012-08-31 | 2014-03-26 | 宏碁股份有限公司 | 堆叠式电子系统 |
US9021159B2 (en) | 2012-09-07 | 2015-04-28 | Apple Inc. | Connector adapter |
US9459670B2 (en) | 2012-09-07 | 2016-10-04 | Apple Inc. | Adapter for use with a portable electronic device |
US9240700B2 (en) * | 2012-09-07 | 2016-01-19 | Apple Inc. | Cascading power for accessories |
US9445266B2 (en) * | 2012-09-25 | 2016-09-13 | Blackberry Limited | Smart plug or cradle |
US10194414B2 (en) * | 2013-01-07 | 2019-01-29 | Futurewei Technologies, Inc. | Information centric networking based service centric networking |
US9307312B2 (en) | 2013-03-15 | 2016-04-05 | Apple Inc. | Audio accessory with internal clock |
US9251109B2 (en) | 2013-12-20 | 2016-02-02 | EXILANT Technologies Private Limited | Communication with accessories |
US9774712B2 (en) * | 2015-08-03 | 2017-09-26 | Motorola Mobility Llc | Modular control interface |
CN107025195A (zh) * | 2016-01-30 | 2017-08-08 | 鸿富锦精密电子(重庆)有限公司 | 电子装置供电系统 |
US10055368B2 (en) * | 2016-02-26 | 2018-08-21 | Sandisk Technologies Llc | Mobile device and method for synchronizing use of the mobile device's communications port among a plurality of applications |
WO2018022312A1 (en) * | 2016-07-29 | 2018-02-01 | CIS Secure Computing, Inc. | Positive disconnect unit |
US10530465B2 (en) * | 2018-05-30 | 2020-01-07 | Motorola Solutions, Inc. | Apparatus, system and method for generating a virtual assistant on a repeater |
US11863712B1 (en) * | 2021-10-06 | 2024-01-02 | Samsara Inc. | Daisy chaining dash cams |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5938742A (en) * | 1995-08-18 | 1999-08-17 | General Magic, Inc. | Method for configuring an intelligent low power serial bus |
US7216043B2 (en) * | 1997-02-12 | 2007-05-08 | Power Measurement Ltd. | Push communications architecture for intelligent electronic devices |
US5844191A (en) * | 1997-07-31 | 1998-12-01 | Westinghouse Electric Corporation | Method of and system for manufacturing a helical cutter |
US6137686A (en) * | 1998-04-10 | 2000-10-24 | Casio Computer Co., Ltd. | Interchangeable modular arrangement of computer and accessory devices |
US6725061B1 (en) * | 1999-01-12 | 2004-04-20 | Qualcomm, Incorporated | System and method for the automatic identification of accessories coupled to a wireless communication device |
US6674995B1 (en) * | 1999-12-22 | 2004-01-06 | Nokia Corporation | Electronically augmented multiplayer sporting game with virtual ball passed by infrared apparatus |
US6757773B1 (en) * | 2000-06-30 | 2004-06-29 | Sony Corporation | System and method for determining support capability of a device coupled to a bus system |
US20020103008A1 (en) * | 2001-01-29 | 2002-08-01 | Rahn Michael D. | Cordless communication between PDA and host computer using cradle |
US6724339B2 (en) * | 2001-03-14 | 2004-04-20 | Universal Electronics Inc. | System and method for controlling home appliances |
US6766390B2 (en) * | 2001-03-29 | 2004-07-20 | Mitsubishi Denki Kabushiki Kaisha | Inter-system connection adapter and terminal |
US7149475B2 (en) * | 2001-06-27 | 2006-12-12 | Sony Corporation | Wireless communication control apparatus and method, storage medium and program |
EP1283632B1 (de) * | 2001-08-10 | 2007-12-05 | iniNet Solutions GmbH | Verfahren und Anordnung zur Übertragung von Daten |
CA2460208A1 (en) * | 2001-09-28 | 2003-04-10 | British Telecommunications Public Limited Company | An integrity manager for delaying client service requests |
US7164886B2 (en) * | 2001-10-30 | 2007-01-16 | Texas Instruments Incorporated | Bluetooth transparent bridge |
JP3916953B2 (ja) * | 2001-12-28 | 2007-05-23 | 日本テキサス・インスツルメンツ株式会社 | 可変時分割多重伝送システム |
US20080037538A1 (en) * | 2002-05-29 | 2008-02-14 | Microsoft Corporation | Method and system for a pendant bus protocol |
US7404015B2 (en) * | 2002-08-24 | 2008-07-22 | Cisco Technology, Inc. | Methods and apparatus for processing packets including accessing one or more resources shared among processing engines |
US7293112B2 (en) * | 2002-11-12 | 2007-11-06 | National Instruments Corporation | Graphical program node for displaying acquired images |
US20050033996A1 (en) * | 2002-11-15 | 2005-02-10 | Piau Fong | Method and apparatus for a communication hub |
US7260112B2 (en) * | 2002-12-24 | 2007-08-21 | Applied Micro Circuits Corporation | Method and apparatus for terminating and bridging network protocols |
US7096308B2 (en) * | 2003-08-29 | 2006-08-22 | Texas Instruments Incorporated | LPC transaction bridging across a PCI—express docking connection |
TWI231131B (en) * | 2004-01-08 | 2005-04-11 | Via Tech Inc | Method and system of completing bluetooth for the pairing procedure by wired interface |
JP4227035B2 (ja) * | 2004-02-03 | 2009-02-18 | 株式会社日立製作所 | 計算機システム、管理装置、ストレージ装置及びコンピュータ装置 |
US7340167B2 (en) * | 2004-04-23 | 2008-03-04 | Qlogic, Corporation | Fibre channel transparent switch for mixed switch fabrics |
US7529870B1 (en) * | 2004-04-27 | 2009-05-05 | Apple Inc. | Communication between an accessory and a media player with multiple lingoes |
US20110134792A1 (en) * | 2004-11-19 | 2011-06-09 | Jan Olof Andersson | Method and Apparatus for a Hub in Daisy Chain Configuration |
US7823214B2 (en) * | 2005-01-07 | 2010-10-26 | Apple Inc. | Accessory authentication for electronic devices |
KR100902341B1 (ko) * | 2005-01-28 | 2009-06-12 | 샤프 가부시키가이샤 | 통신기기, 통신시스템, 통신방법, 통신 프로그램을 기록한 컴퓨터독취가능한 기록매체, 통신회로 |
US8281385B2 (en) * | 2005-09-29 | 2012-10-02 | Rockwell Automation Technologies, Inc. | Internet friendly proxy server extending legacy software connectivity |
US7876764B2 (en) * | 2005-10-11 | 2011-01-25 | Cisco Technology, Inc. | Multiple aggregation protocol sessions in a daisy chain network |
US20080009658A1 (en) * | 2006-06-19 | 2008-01-10 | Smith Peter C | Radiation therapy apparatus with selective shielding capability |
US9918039B2 (en) * | 2006-10-13 | 2018-03-13 | Koninklijke Philips N.V. | Interface systems for portable digital media storage and playback devices |
US8078787B2 (en) * | 2007-06-22 | 2011-12-13 | Apple Inc. | Communication between a host device and an accessory via an intermediate device |
JP4973610B2 (ja) * | 2007-08-28 | 2012-07-11 | 株式会社Jvcケンウッド | ビデオカメラ |
EP2185992B1 (en) * | 2007-09-04 | 2013-07-17 | Apple Inc. | Smart dock for chaining accessories |
US20090064202A1 (en) * | 2007-09-04 | 2009-03-05 | Apple, Inc. | Support layer for enabling same accessory support across multiple platforms |
US9467735B2 (en) * | 2007-09-04 | 2016-10-11 | Apple Inc. | Synchronizing digital audio and analog video from a portable media device |
US8995689B2 (en) * | 2008-01-14 | 2015-03-31 | Apple Inc. | Electronic device circuitry for communicating with accessories |
US20090284476A1 (en) * | 2008-05-13 | 2009-11-19 | Apple Inc. | Pushing a user interface to a remote device |
ES2635339T3 (es) * | 2008-05-21 | 2017-10-03 | Hewlett-Packard Development Company, L.P. | Bus serie de múltiples salidas con detección de ubicación y procedimiento |
WO2009146267A1 (en) * | 2008-05-27 | 2009-12-03 | Stillwater Supercomputing, Inc. | Execution engine |
JP5272897B2 (ja) * | 2008-07-29 | 2013-08-28 | セイコーエプソン株式会社 | 印刷装置、印刷装置の制御方法及び制御プログラム |
US7915912B2 (en) * | 2008-09-24 | 2011-03-29 | Rambus Inc. | Signal lines with internal and external termination |
US7979759B2 (en) * | 2009-01-08 | 2011-07-12 | International Business Machines Corporation | Test and bring-up of an enhanced cascade interconnect memory system |
WO2010093987A2 (en) * | 2009-02-13 | 2010-08-19 | Adc Telecommunications, Inc. | Aggregation of physical layer information related to a network |
-
2010
- 2010-04-07 US US12/755,905 patent/US20110167176A1/en not_active Abandoned
-
2011
- 2011-01-05 WO PCT/US2011/020244 patent/WO2011085018A1/en active Application Filing
- 2011-01-05 CN CN201180012659.3A patent/CN103098040B/zh active Active
- 2011-01-05 EP EP11700209.7A patent/EP2521973B1/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105264507A (zh) * | 2013-05-21 | 2016-01-20 | 三星电子株式会社 | 在通信系统中识别外部设备的装置和方法 |
CN105264507B (zh) * | 2013-05-21 | 2018-04-20 | 三星电子株式会社 | 在通信系统中识别外部设备的装置和方法 |
CN105045738A (zh) * | 2014-03-24 | 2015-11-11 | 诺基亚技术有限公司 | 连接usb c 型设备的方法和装置 |
CN105045738B (zh) * | 2014-03-24 | 2018-02-27 | 诺基亚技术有限公司 | 连接usb c型设备的方法和装置 |
CN109684249A (zh) * | 2014-12-04 | 2019-04-26 | 苹果公司 | 用于使用电子附件连接的连接属性促进定位附件的主设备 |
WO2018171147A1 (zh) * | 2017-03-21 | 2018-09-27 | 百富计算机技术(深圳)有限公司 | 交易数据传输方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2521973A1 (en) | 2012-11-14 |
US20110167176A1 (en) | 2011-07-07 |
CN103098040B (zh) | 2016-08-03 |
WO2011085018A1 (en) | 2011-07-14 |
EP2521973B1 (en) | 2017-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103098040A (zh) | 将多个附件连接到便携计算设备 | |
EP3913522B1 (en) | Method for automatically selecting nfc emulation card, electronic apparatus, and communications system | |
US11423379B2 (en) | Method for UWB transaction and electronic device therefor | |
JP4885945B2 (ja) | 無線通信端末中のsimカードによる周辺装置の管理方法及びその方法を実行するための周辺装置 | |
US20140273839A1 (en) | Method and system for managing multiple applications in near field communication | |
US11751034B2 (en) | Electronic device for transmitting response message in bluetooth network environment and method thereof | |
US10708744B2 (en) | NFC-based communication method and apparatus | |
US20200296793A1 (en) | Method for establishing wireless communication link and electronic device supporting same | |
KR102632548B1 (ko) | Uwb 트랜잭션을 위한 방법 및 전자 장치 | |
KR20160007576A (ko) | 무선 트랜스포트를 통한 액세서리 프로토콜을 이용한 호스트 디바이스와 액세서리 디바이스 사이의 통신 | |
KR20150114765A (ko) | 근거리 무선 통신(nfc) 기능을 지원하는 화상형성장치 및 화상형성장치의 nfc 동작 모드를 설정하는 방법 | |
CN103389955A (zh) | 多模式适配器 | |
ES2961700T3 (es) | Procedimiento para transacciones UWB y dispositivo electrónico para las mismas | |
KR20200045367A (ko) | 블루투스 통신을 사용하는 전자 장치와 이의 동작 방법 | |
US11930542B2 (en) | Source device switching method and device through Bluetooth connection information sharing | |
US20140092004A1 (en) | Audio information and/or control via an intermediary device | |
US20220141893A1 (en) | Electronic device for transmitting response message in bluetooth network environment and method therefor | |
US20190373541A1 (en) | Electronic device supporting multiple wireless communication protocols and method therefor | |
CN104427000A (zh) | 具有传输链路机制的通信系统及其操作的方法 | |
CN107636982A (zh) | 数据帧路由处理的方法、近场通信控制器和终端 | |
CN108494895A (zh) | 交互智能平板、网域冲突控制方法、装置及介质 | |
KR20190021121A (ko) | 근거리 무선 통신 장치 및 방법 | |
Penttinen | Connectivity and Payment | |
KR20240056369A (ko) | 블루투스 연결을 통해 통신하는 전자 장치 및 그 동작 방법 | |
KR20240062866A (ko) | 네트워크의 외부 전자 장치와 연결하기 위한 전자 장치 및 방법 |
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 |