CN104350484B - 基于消息的电子设备识别 - Google Patents
基于消息的电子设备识别 Download PDFInfo
- Publication number
- CN104350484B CN104350484B CN201380028223.2A CN201380028223A CN104350484B CN 104350484 B CN104350484 B CN 104350484B CN 201380028223 A CN201380028223 A CN 201380028223A CN 104350484 B CN104350484 B CN 104350484B
- Authority
- CN
- China
- Prior art keywords
- message
- adnexa
- proposal
- main process
- equipment
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种基于消息的识别过程,所述识别过程可以有利于附件与主机设备之间进行可靠的互操作。在识别过程期间,主机设备可协商操作协定,所述操作协定指定允许每个设备向另一个设备发送或从另一个设备接收的特定通信(例如消息),例如通过使一个设备发送其期望向另一个设备发送和/或从另一个设备接收的特定消息的列表。另一个设备可以检查所述提议并且接受或拒绝所述提议。如果提议被接受,则所述设备可以开始使用包括在所商定的提议中的消息来进行互操作,而忽略不包括在所商定的提议中的任何接收到的消息。
Description
相关专利申请的交叉引用
本专利申请要求2012年6月8日提交的名称为“Message-Based Identificationof an Electronic Device”的美国临时专利申请61/657,586的权益,该申请的全部公开内容以引用方式并入本文以用于所有目的。
背景技术
本公开一般涉及电子设备之间的数据通信,并且具体地,涉及一个设备到另一个设备的基于消息的识别。
诸如智能电话、平板电脑、媒体播放器等便携式电子设备已变得无处不在。已创造各种附件来与便携式电子设备进行互操作,以扩展这些电子设备的功能和/或增强用户体验。附件的实例包括充电器、扬声器底座、提供用于使用车辆控制台来控制便携式设备的选项的车载底座、锻炼器材、健康状态监测附件(例如,心率仪、血压仪或血糖仪)等。可以将附件设计成与在形状因数和能力(例如,处理能力;固件版本;电池寿命,存在或不存在摄像头、麦克风或其它组件)方面不同的多个便携式电子设备进行互操作。
为了向操作结合有附件的便携式设备的用户提供可靠地愉快体验,可能期望的是验证附件是否将与特定便携式设备一起正确地操作。然而,可能的附件的显著多样性以及特定附件可以连接至其上的不同便携式设备的数量使得这种验证变得困难。
发明内容
本发明的某些实施例提供一种基于消息的识别过程,该识别过程可以有利于附件与主机设备(包括便携式设备)之间的可靠互操作。当附件连接至主机时,该过程可以执行为初始化通信的一部分。在识别过程中,这些设备协商如下操作协定:指定允许每个设备向另一个设备发送或从另一个设备接收的特定通信(例如消息)。例如,在识别期间,附件可以向主机设备发送如下提议:识别附件期望向主机设备发送和/或从主机设备接收的特定消息的列表。主机设备可以检查提议并通知附件是否接受提议。在一些实施例中,如果提议未被接受,附件可以呈现新的(很可能是经修改的)提议。一旦提议已被接受,主机设备和附件就可以开始进行互操作,这可以包括发送和/或接收在商定的提议中所识别的任何消息。在一些实施例中,在操作期间,主机设备可以例如通过忽略商定的提议中未识别的消息来阻止附件调用或使用提议中未包括的任何功能。同样,附件可以忽略从主机接收的在商定的提议中未识别的消息。
例如,在一些实施例中,主机设备和附件可以通过交换被限定为属于附件协议的有限的消息“全域(universe)”的一部分的消息来进行互操作。该全域可以包括:遵循协议的所有附件和所有主机设备预期支持的“通用”消息集;以及根据主机设备和附件的能力并且根据它们之间协商的特定操作协定可能使用或可能不使用的“可选”消息集。可以使用识别消息来呈现附件所呈现的提议,该识别消息可以是一条通用消息。识别消息可以包括如下列表,该列表识别附件提议允许向主机发送的每一条可选消息以及附件提议从主机接收的每一条可选消息。(在该实例中,假定支持通用消息,并且不需要列出通用消息。)主机设备可以确定它是否支持提议中包括的每一条消息。在一些实施例中,主机还可以例如基于认证操作和/或基于由附件提供的其它识别信息来确定是否应允许附件使用提议中包括的每一条消息。基于主机设备的确定,主机设备可以对提议作出响应。在一些实施例中,响应可以是接受或拒绝;在拒绝的情况下,根据需要可以提供或不提供拒绝原因的指示。
如果提议被拒绝,则附件可以具有利用不同提议进行重试的选项。在一些实施例中,重试可以包括发送取代先前消息的新识别消息。新识别消息可以包括待发送和/或接收的可选消息的不同列表。例如,附件可以首先提议将允许附件最佳地执行其所有功能的可选消息集。如果第一提议未被接受,则附件可以提议将允许附件执行其功能(尽管可能是以次于最佳的方式)或将允许附件执行其功能的子集的第二可选消息集。所提议的第二消息集可以包括所提议的第一集的子集和/或另外的消息;例如,第一集中的消息在第二集中可以由可用于实现类似功能的一条或多条其它消息代替。一旦提议被接受,主机设备和附件可以通过交换由附件提供的消息列表上的任何消息以及根据附件协议假定支持的任何通用消息来进行互操作。
在一些实施例中,主机设备不限制附件可呈现的不成功提议的数量。附件可以呈现任何数量的提议,直到提议被接受或附件已确定其不具有将被接受的提议。
本发明的某些方面涉及用于根据协议在两个设备之间建立通信的方法,该协议限定可由一个设备向另一个设备发送的消息全域。例如,第一设备可以向第二设备发送识别消息,该识别消息包括将消息全域划分为有效(operative)消息集和无效(inoperative)消息集的提议。这种提议可以包括将被包括在有效消息集中的至少一些消息的列表。在一些实施例中,可以将列表分为识别第一设备提议发送的消息的第一列表和识别第一设备提议接收的消息的第二列表。作为响应,第二设备可以确定接受还是拒绝提议,并向第一设备发送指示提议是被接受或被拒绝的消息。如果提议被接受,则设备可以使用包括在有效消息集中的由所接受的提议限定的一些或所有消息来进行互操作。接收设备可以忽略所发送的未包括在有效集中的任何消息。如果提议被拒绝,则在一些实施例中,第一设备可以发送经修改的提议(例如,对将被包括在有效消息集中的消息的列表进行修改)。在一些实施例中,第二设备可以限制重试(经修改的提议)的数量和/或强加用于在通知第一设备提议被拒绝之后接收经修改的提议的超时周期。
第二设备在确定接受还是拒绝提议时可以应用各种规则。例如,由第一设备发送的识别消息可以包括设备描述符,该设备描述符可包含以下信息:诸如设备制造商的名称、设备型号名称、设备序号、硬件版本标识符和/或固件版本标识符。第二设备可以使用关于第一设备的描述性信息来确定所提议的有效消息集是否应当用于该设备。在一些实施例中,第二设备可以接收来自第一设备的认证信息并且使用该信息来确定接受还是拒绝提议。因此,如果认证信息指示第一设备未被授权来与第二设备进行互操作,或如果该信息指示第一设备未被授权来使用所提议的有效消息集中的所有消息,则可以拒绝提议。
在一些实施例中,第二设备接收还是拒绝提议可部分地取决于第二设备是否能够识别和/或生成所提议的有效消息集中的所有消息。所述确定还可以基于所提议的有效消息集是否足以实现与该集中的至少一条消息相关联的功能。
在一些实施例中,发送提议的设备可以是附件,而接受或拒绝提议的设备可以是主机。在其它实施例中,这些角色可以互换,并且主机可以向附件发送提议。用于生成和发送提议和/或用于确定接受还是拒绝所接收的提议的控制逻辑可以(例如)通过提供经适当编程的处理器来在设备中实施。
以下具体实施方式连同附图将提供对本发明的实质和优点的更好理解。
附图说明
图1示出根据本发明的实施例的主机设备和附件。
图2是根据本发明的实施例的包括主机设备和附件的系统的简化框图。
图3示出根据本发明的实施例的可实施的消息格式。
图4是示出根据本发明的实施例的识别消息的表。
图5是根据本发明的实施例的列出可针对识别消息进行定义的参数的表。
图6是根据本发明的实施例的可在主机设备中实施的用于协商识别的过程的流程图。
图7是根据本发明的实施例的可在附件中实施的识别过程的流程图。
具体实施方式
本发明的某些实施例提供一种基于消息的识别过程,该识别过程可以有利于附件与主机设备(包括便携式设备)之间的可靠互操作。该过程可以被执行为当附件连接至主机时初始化通信的一部分。在识别过程中,这些设备协商如下操作协定:指定允许每个设备向另一个设备发送或从另一个设备接收的特定通信(例如消息)。例如,在识别期间,附件可以向主机设备发送如下提议:识别附件期望向主机设备发送和/或从主机设备接收的特定消息的列表。主机设备可以检查提议并通知附件是否接受提议。在一些实施例中,如果提议未被接受,附件可以呈现新的(假定是经修改的)提议。一旦提议已被接受,主机设备和附件就可以开始进行互操作,这可包括发送和/或接收在商定的提议中所识别的任何消息。在一些实施例中,在操作期间,主机设备可以例如通过忽略商定的提议中未识别的消息来阻止附件调用或使用提议中未包括的任何功能。同样,附件可以忽略从主机接收的在商定的提议中未识别的消息。
图1示出根据本发明的实施例的主机设备100和附件102。
主机设备100可以是例如手持设备诸如媒体播放器、智能电话或个人数字助理;平板电脑;膝上型计算机;台式计算机;或能够与其它设备通信的任何其它电子设备。在一些实施例中,主机设备100可以是便携式设备(便携式设备是指容易由用户从一个地方携带到另一个地方的设备),但这不是必需的。在例示实例中,主机设备100是平板电脑,该平板电脑具有由边框106包围的显示区域104和控制按钮108。插座连接器110提供在主机设备100的底部(例如,凹进到外壳中)以允许附件连接至主机设备100。
附件102可以是能够与主机设备102进行交互的任何附件,如扬声器底座或扬声器系统、媒体控制台、汽车头部单元等。附件102可以具有各种用户接口组件,诸如扬声器112、显示器114和用户可操作控件116。在例示实例中,附件102具有插头连接器118,该插头连接器可插入到插座连接器110中以提供附件102与主机设备100之间的电连接和机械连接。在一些实施例中,电连接可以包括电力连接和数据连接,从而允许附件102向主机设备100传送电力和/或从主机设备100接收电力。虽然指示了连接器110与118之间的直接连接,但应当理解,一些实施例可以使用间接连接,例如经由缆线或适配器。在一些实施例中,除了或代替如由连接器110和118提供的有线信号路径,主机设备100和附件102能够例如使用射频通信技术(诸如Wi-Fi或蓝牙、近场通信技术、红外通信等)来进行无线通信。在一些实施例中,可以在主机设备100与附件102之间同时建立多个通信路径,其中选择性地在不同路径上传送不同类型的信息。
通过例如经由连接器110和118的通信,主机设备100和附件102可以实现各种功能。例如,在一些实施例中,主机设备100可以传送媒体内容供附件102呈现,并且可以向附件102提供状态信息(例如,关于当前正在播放的音轨的信息)以供例如在显示器114上呈现给用户。用户可以操作附件102的控件116来控制媒体资产的回放(例如播放/暂停)或对不同资产的选择。又如,附件102可以包括用于例如从FM、AM或卫星发射器接收媒体内容的无线电接收器(未示出)。便携式设备100可以用于控制无线电接收器的操作,例如频道或节目选择。许多其它类型的互操作也是可能的。
为了有利于互操作,主机设备100和附件102可以协商限定它们将互相支持的功能的操作协定。在一些实施例中,该协定是在主机设备100和附件102建立连接时商定,并且协商该协定可以是设备识别过程的一部分。
例如,如插图130中所示,附件设备102可以包括附件侧识别逻辑132和一个或多个提议134。每个提议134可以包括附件102提议允许向主机发送和/或从主机接收的消息的列表。每个提议可以包括足以允许附件执行其功能的至少某一子集的消息的列表,并且不同提议134可以附件偏好的顺序进行排列;例如,提供完整的附件功能集的提议可以排列在提供部分功能的提议之前。在一些实施例中,可以针对附件预先生成一个或多个提议134(例如,结合到附件固件中);此外或作为替代,可以实时生成提议134(例如,部分地基于由主机设备提供的信息)。
如插图120中所示,主机设备100可以包括主机侧识别逻辑122和提议规则124。提议规则124可以包括用于确定以下各项的规则:是否能够同时支持由附件提议的消息的特定组合,为了支持特定消息附件需要具有什么能力,等等。以下描述了用于评估提议的规则的具体实例。
在操作中,当主机设备100和附件设备102建立连接时,附件侧识别逻辑132可以选择(或生成)用于在识别消息140中呈现给主机设备100的一个提议134。主机侧识别逻辑122可以接收识别消息140并且确定接收还是拒绝该提议。可以通过参考提议规则124作出该确定。主机侧识别逻辑122可以将其确定作为响应142传送给附件侧识别逻辑134。如果提议被接受,则附件和主机设备可以进行通信,并且在通信过程中可以交换所接受的提议134中列出的任何消息。如果提议被拒绝,则附件侧识别逻辑132可以选择(或生成)另一个提议134,并且在新识别消息140中呈现新提议134。这个过程可以继续,直到主机100接受提议,直到附件102确定不再发送另外的提议或主机100发出将不允许进一步尝试的信号。
应当理解,图1的主机设备和附件是例示性的,并且可以进行变型和修改。主机设备和/或附件可以实现任何功能组合。在一些实施例中,并非附件呈现提议供主机接受(或拒绝),而是主机可以向附件呈现提议,并且附件可作出接受还是拒绝来自主机的提议的决定。在本文所述的实施例中,提议作为一个整体被接受或拒绝。其它实施例可以限定一种反复协商过程,在该协商过程中一个设备可以接收来自另一个设备的提议、修改该提议的不被接受的部分并且将经修改的提议发送给该另一个设备以供考虑。在接收经修改的提议时,该另一个设备可以接受经修改的提议或作出进一步修改,并且该过程可继续,直到任一个设备所发送的提议由另一个设备接受。
可以使用各种消息格式和信号发送技术来传送识别消息和决定,其中细节取决于附件协议。判定过程可以实施多种结合关于附件和/或主机的任何可用信息的规则。以下描述了合适的格式和过程的实例。
主机设备和附件可以实施为经由一个或多个接口通信以支持互操作的单独计算设备。图2是根据本发明的实施例的包括主机设备202和附件204的系统200的简化框图。在该实施例中,主机设备202(例如,实施图1的主机设备100)可以提供计算、通信、媒体回放和/或其它能力。主机设备202可以包括处理子系统210、存储设备212、用户接口214、网络接口216和附件输入/输出(I/O)接口218。主机设备202还可以包括其它组件(未明确示出),诸如电池、电力控制器和可操作来提供各种增强能力的其它组件。
存储设备212可例如使用磁盘、闪存存储器、或任何其它非暂态存储介质或介质组合来实施,并且可以包括易失性和/或非易失性介质。在一些实施例中,存储设备212可以存储介质对象,诸如音频文件、视频文件、图像或图片文件;关于用户联系方式的信息(姓名、地址、电话号码等);关于用户安排的约会或事件的信息;笔记;和/或其它类型的信息。在一些实施例中,存储设备212还可以存储待由处理子系统210执行的一个或多个应用程序(例如,视频游戏程序、个人信息管理程序、媒体回放程序等)。
用户接口214可以包括输入设备,诸如触摸板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备,诸如视频屏幕、指示灯、扬声器、耳机接口等,连同支持性电子设备(例如,数模或模数转换器、信号处理器等)。用户可以操作用户接口214的输入设备来调用主机设备202的功能,并且可以通过用户接口214的输出设备来查看和/或收听来自主机设备202的输出。
处理子系统210可以实施为一个或多个集成电路,例如一个或多个单核或多核微处理器或微控制器,这些微处理器或微控制器的实例在本领域中是已知的。在操作中,处理系统210可以控制主机设备202的操作。在各种实施例中,处理子系统210可以响应于程序代码执行各种程序,并且可以维护多个同时执行的程序或进程。在任何给定时间,待执行的一些或全部程序代码可以驻留在处理子系统210和/或存储介质诸如存储设备212中。
通过合适的编程,处理子系统210可以为主机设备202提供各种功能。例如,在一些实施例中,处理子系统210可以实施图1的一些或全部主机侧识别逻辑122。处理子系统210还可以执行其它程序来控制主机设备202的其它功能,包括可存储在存储设备212中的应用程序;在一些实施例中,这些应用程序可以例如通过生成待发送至附件204的消息和/或通过从附件204接收消息来与附件204进行交互。
网络接口216可以为主机设备202提供语音和/或数据通信能力。在一些实施例中,网络接口216可以包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、先进数据网络技术诸如3G或EDGE、Wi-Fi(IEEE 802.11系列标准),或其它移动通信技术,或它们的任何组合)的射频(RF)收发器组件、用于短范围无线联网(例如,使用蓝牙标准)的组件、GPS接收器组件和/或其它组件。在一些实施例中,除了或代替无线接口,网络接口216可以提供有线网络连接性(例如以太网)。网络接口216可以使用硬件组件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其它模拟和/或数字信号处理电路)与软件组件的组合来实施。
附件I/O接口218可以允许主机设备202与诸如附件204的各种附件进行通信。例如,附件I/O接口218可以支持到计算机、外部键盘、扬声器底座或媒体回放站、数字相机、无线电调谐器、车载娱乐系统或头部单元、外部视频设备、存储卡读卡器等的连接。在一些实施例中,附件I/O接口218可以包括:连接器,诸如对应于各种和产品中所使用连接器的连接器,以及支持电路。连接器可以提供用于电力和接地的连接,以及用于一个或多个数据通信接口的连接,诸如通用串行总线(USB)、火线(IEEE 1394标准)和/或通用异步接收器/发射器(UART)。在一些实施例中,连接器提供专用的电力和接地触点,以及可用于并行地实施不同通信技术的一定数量(例如四个)的可编程数字数据触点;例如,可以将两个引脚分配为USB数据引脚(D+和D-)并且将两个其它引脚分配为串行发送/接收引脚(例如,实施UART接口);针对特定通信技术的引脚分配可以在连接正在建立时进行协商。在一些实施例中,连接器还可以提供用于音频和/或视频信号的连接,这些音频和/或视频信号能够以模拟和/或数字格式发送至主机设备202或从主机设备202发送。因此,附件I/O接口218可以支持多个通信信道,并且给定附件可以使用这些信道中的任一个或全部。在一些实施例中,除了或代替有线通信信道,附件I/O接口218可以支持无线通信(例如,经由Wi-Fi、蓝牙或其它无线协议)。
附件204(例如,实施图1的附件102)可以包括控制器230、用户接口设备232、附件专用硬件234、主机I/O接口236和认证模块238。附件204代表可以与主机设备进行互操作的一大类附件,并且此类附件在能力、复杂性和形状因数方面可能有很大不同。各种附件可以包括图2中未明确示出的组件,包括但不限于具有固定或可移除的存储介质的存储设备(磁盘、闪存存储器等);视频屏幕、扬声器、或用于连接至外部音频/视频设备的端口;相机组件,诸如镜头、图像传感器和用于相机组件的控件(例如,光圈、变焦、曝光时间、帧速率等);用于记录音频(单独或与视频记录结合)的麦克风;等等。此外,一些附件可以提供可连接至另一个附件并且与其通信的另外的接口(未示出)。
控制器230可以包括例如执行程序代码以便执行与附件204相关联的各种功能的一个或多个单核或多核微处理器和/或微控制器。例如,在附件204结合有用户可操作控件(例如,图1的控件116)的情况下,控制器230可以解译用户对控件的操作并且作为响应来调用附件204的功能。在一些情况下,所调用的功能可以包括向主机设备202发送消息和/或从主机设备202接收消息。又如,控制器220可以实施图1的一些或全部附件侧识别逻辑132。
用户接口232可以包括:用户可操作输入设备,诸如触摸板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备,诸如视频屏幕、指示灯、扬声器、耳机接口等,连同支持性电子设备(例如,数模或模数转换器、信号处理器等)。根据特定附件204的具体实施,用户可以操作用户接口232的输入设备来调用附件204的功能。
附件专用硬件234可以包括可存在于附件204中以使能其功能的任何其它组件。例如,在各种实施例中,附件专用硬件234可以包括使用固定或可移除的存储介质的一个或多个存储设备;GPS接收器;网络接口;电源和/或电力管理电路;环境传感器(例如,温度传感器、压力传感器、加速度计、化学传感器等);等等。应当理解,可以通过提供适当的附件专用硬件234来支持任何类型的附件功能。
主机I/O接口236可以允许附件204与主机设备202进行通信。根据本发明的一些实施例,主机I/O接口236可以包括与主机设备202中所包括的连接器直接配合的连接器,诸如与各种和产品中所使用的连接器互补的连接器。这种连接器可以用于向主机设备202供应电力和/或从主机设备202接收电力,用于发送和/或接收呈模拟和/或数字格式的音频和/或视频信号,并且用于使用诸如USB、UART和/或火线的一个或多个数据通信接口来传送信息。也可以使用其它连接器;例如,主机I/O接口236可以结合标准USB连接器,并且可以经由适配器缆线连接至主机设备202的附件I/O接口218。在其它实施例中,除了或代替有线通信信道,主机I/O接口236可以支持无线通信(例如,经由Wi-Fi、蓝牙或其它无线协议)。
认证模块238可以向主机设备202提供认证信息,例如以便核实附件204的身份。例如,认证模块238可以存储数字证书,该数字证书可以在主机I/O接口236与附件I/O接口218之间建立连接时提供给主机设备202。认证模块238还可以包括密码逻辑。在一些实施例中,为了核实附件204的身份,主机设备202可以发送待由附件204使用私匙进行数字签名(例如,编码)的随机数(random nonce),并且认证模块238可以存储私匙以及编程或硬连线的控制逻辑,以便使用所存储的私匙来对该随机数进行签名。可以实施各种认证机制。
附件204可以是与主机设备202进行交互的任何电子装置。在一些实施例中,附件204可以通过对主机设备202或远程用户接口的操作来提供远程控制,该远程用户接口可以包括输入控件和输出控件(例如,用于显示从主机设备202获得的当前状态信息的显示屏)。在各种实施例中,附件204可以控制主机设备202的任何功能并且还可以从主机设备202接收数据对象。在其它实施例中,主机设备202可以控制附件204的操作,诸如从附件204的存储介质检索所存储的数据、由结合到附件204中的相机启动图像捕获操作等。
应当理解,本文所述的系统配置和组件是例示性的,并且可以作出变型和修改。主机设备和/或附件可以具有未在本文中具体描述的其它能力(例如,移动电话、全球定位系统(GPS)、宽带数据通信、互联网连通性等)。根据具体实施,这些设备可以进行互操作,以便提供由任一(或两个)设备支持的任何功能或提供在每个设备中部分地实现的功能。在一些实施例中,主机设备可以具有不可经由附件设备访问或调用的一些功能。同样,附件设备可以具有不可经由主机访问或调用的一些功能。
根据需要,主机设备202和附件204的相应I/O接口218、236处的连接器可以是互补的或不互补的。在两个连接器不互补的情况下,可以提供适配器(未示出)来连接这两个设备。虽然在本文中将连接器描述为具有引脚(该术语通常与具有用于连接多个组件的电线的常规电子设备相关联),但应当理解,连接器可以用其它信号路径(例如,光信号发送)代替。另外,在一些实施例中,一些连接可以是无线的,并且在提供无线接口的情况下可以省略连接器。
此外,尽管本文参考特定块描述了主机设备和附件,但应当理解,限定这些块是为了描述方便,而并非意在暗示组件部分的特定物理布置。此外,块不必对应于物理上不同的组件。可以配置块以执行各种操作,例如通过对处理器编程或提供适当的控制电路,并且根据初始配置是如何获得的,各个块可以是可重新配置的或不可重新配置的。可以在包括利用电路和软件的任何组合实现的电子设备在内的各种装置中实施本发明的实施例。
主机设备202的附件I/O接口218和附件204的主机I/O接口236允许主机设备202与附件204连接并且随后与附件204断开。如本文所用,每当主机设备和附件的相应接口之间建立通信信道时主机设备和附件“连接”,并且当该信道终止时“断开”。这种连接可以通过以下方式来实现:直接物理连接,例如利用配合连接器;间接物理连接,例如经由缆线;和/或无线连接,例如经由蓝牙。
在一些实施例中,主机设备和附件可以通过根据“附件协议”交换消息和数据而连接时进行通信。可以使用由相关接口提供的任何有线或无线传输介质来传送消息和数据。
附件协议可以限定可在主机设备202与连接至其上的任何附件诸如附件204之间进行交换的消息“全域”。消息格式可以包括例如用于指示接下来是消息代码的起始位或位序列,该起始位或位序列之后是可由接收者解译并起作用的实际消息代码。至少一些消息代码可以具有由协议限定的一个或多个相关联参数,并且除消息代码之外,消息可以包括用于任何此类参数的值。在一些情况下,协议还可以规定接收者在未接收到与消息代码相关联的特定参数的情况下或与消息代码一起接收到预期之外参数的情况下的行为。针对不同的消息,参数数量可以不同,并且在一些情况下,参数可以具有可变长度。在一些实施例中,消息代码可以限定成使得给定消息代码仅在一个方向上有效。也可以使用其它消息结构。
附件协议还可以限定用于消息交换的格式。例如,附件协议可以规定使用一个或多个分组来发送消息,每个分组均具有标头和有效载荷。标头提供基本信息(例如,启动指示符;分组长度;分组序列号;与分组相关联的会话的标识符,如下文所述),而有效载荷提供所有或部分消息数据。分组还可以包括本领域中已知的错误检测代码或错误校正代码。
在一些实施例中,照理可以将消息分为“通用”消息集和“可选”消息集。可以要求使用附件协议的每个附件和每个主机设备至少支持通用消息集。该消息集可以包括使得主机设备和附件本身能够彼此识别和认证并且能够协商它们将互相支持的功能的消息。例如,通用消息集可以包括如下消息:附件可向主机设备发送该消息,用于列出可选集中附件能够发送的每条消息和可选集中附件能够接收并起作用的每条消息;以下描述了实例。通用消息集还可以包括认证消息,主机设备可以使用这些认证消息来核实所支持的附件的身份和能力(或反之亦然),并且如果认证不成功的话可以阻止附件(或主机设备)调用某些(或所有)可选消息。
可选消息集可以包括与给定附件可能支持或可能不支持的各种功能相关的消息。例如,可选消息集可以包括:允许附件识别主机设备的待调用的功能的简单远程消息,可用于获得与在附件上复制主机设备的全部或部分用户接口相关的信息的远程用户接口消息(从而支持更高级的远程控制),允许用户通过操作主机设备来控制附件中的无线电调谐器和/或通过操作附件来控制主机设备中的无线电调谐器,有利于数据对象在主机设备与附件之间的传输的消息,等等。可以在附件协议中限定任何可选消息的组合,并且不要求给定的附件或主机设备支持所有(或甚至任一条)可选消息。
图3示出根据本发明的实施例的可针对附件协议中所限定的一些或所有消息实施的消息300的格式。每条消息300能够以消息起始(“BOM”)标记302开始。BOM标记302可以是例如用于指示接下来是消息的特定字节代码、字符或字符序列。消息标识符(消息ID)304可以跟在BOM标记302之后;这个标识符指示正在发送哪个消息。在一些实施例中,所有消息具有相同的长度(LM),并且根据协议将支持的消息总长度,可以是例如1字节或2字节。
消息ID 304之后可以是与消息ID相关联的零个或多个参数对/值对306。不同的消息ID可以具有不同数量的相关联参数(包括对于一些消息ID,零参数),并且根据具体实施,与特定消息ID相关联的一些或所有参数可以是可选的。考虑到灵活性,每个参数对/值对可以包括显式参数标识符(参数ID)308,紧跟其后的是用于该参数的值310。对于所有参数,参数ID可以具有固定长度(例如,1字节),其中为与特定消息ID相关联的每个参数分配不同的ID。值310的长度可以取决于参数ID。与标识和协商互操作能力相关联的参数ID和值的实例在下文进行了描述。在最后一个参数对/值对306之后,消息300可例如以消息结束(“EOM”)标记330结束。如同BOM标记302,EOM标记330可以是例如特定字节、字节代码、字符或字符序列。EOM标记330可以是与BOM标记302不同的值并且不同于与参数ID相关联的任何字节代码。
在一些实施例中,符合附件协议的每条消息都使用消息300的格式,包括由两个设备发送的消息。消息300的接收者可以通过以下方式来解析该消息:识别BOM标记302,将接下来的LM字节解译成消息ID 304,随后基于该消息ID来解译所包括的每个参数对/值对306。因此,例如与“设定视频分辨率”消息的消息ID相关联的参数ID 6可表示该相关联的值指示以像素为单位的屏幕尺寸,而与“设定音频采样率”消息相关联的参数ID 6表示相关联的值指示每秒的样本数量。
如上文所指出,参数值的长度可以取决于参数ID。解析所接收消息的接收者可读取参数ID 308,确定相关联的值的期望长度(LV)(例如,以字节为单位),并且相应地将接下来的LV字节解译为该值。除非接下来的字节对应于分配给EOM标记330的字节代码(在这种情况下消息被认为是完整的),否则接下来的字节可以被解译为下一个参数值。
显式参数对/值对(而不是例如假定某一参数顺序)的使用提供了灵活性。例如,可以为与特定消息ID 304相关联的一些或所有参数分配默认值,并且发送者可以将待使用默认值的任何参数从消息300中省略。这可减少消息长度。此外,当协议随时间推移而发展(例如,以便适应新设备和/或新功能)时,可以向消息添加新参数。可以维持正向和反向兼容性,只要为在消息的初始定义建立之后添加到该消息的任何新参数限定默认值。即使设备不发送特定参数(例如,因为其实施早于新参数定义的较旧版本的协议),接收者仍然可以解析消息并作出适当的动作。在一些实施例中,协议可以规定:如果设备接收到具有已识别的消息ID但未识别的参数ID的消息,则设备应当忽略该未识别的参数。这可以允许实施较旧版本的协议的设备与较新设备进行互操作,而任一设备均不必协商版本特定的差异。
如上所述,消息300可以包括与附件到主机设备(和/或反之亦然)的识别相关以及与协商这些设备将协同实现的功能(在本文中也被称为操作协定)相关的消息。图4是示出根据本发明的实施例的识别消息的表400。对于列402中的每条消息,在列404中指示有效的方向(主机到附件或附件到主机);列406描述每条信息可以包括的参数。
主机可以向附件发送IDStart消息以启动识别过程。在该实例中,IDStart消息不包括参数;它仅仅指示主机已准备好从附件接收识别提议。在一些实施例中,IDStart消息可以包括提供关于主机设备的基本信息(例如,制造商和型号标识符、固件版本等)的参数。在一些实施例中,主机可以发送单独消息(未示出)来向附件提供主机识别信息。
附件可以向主机发送IDInfo消息以提供识别提议。该IDInfo消息可以包括作为参数的多个“信息项”,每个“信息项”具有相关联的值。以下参照图5描述具体实例。在一些实施例中,单个IDInfo消息可以包括:关于附件的所有识别信息,包括制造商和型号信息;附件提议允许发送和/或接收的附件协议消息的列表;附件可以与其进行交互的信息识别应用程序;关于附件的设置和偏好的信息;关于附件的电源和/或功率消耗特性的信息;以及关于附件所支持的物理传输(例如,USB、UART或其它串行端口、蓝牙、Wi-Fi、其它无线传输)的信息。根椐具体实施,IDInfo命令可以任何所需细节程度向主机提供关于附件的能力和所提议功能的完整信息。因此,在一些实施例中,附件可以通过发送IDInfo信息来向主机呈现互操作的提议。
主机可以向附件发送IDAccept消息以指示提议(例如,如通过IDInfo消息传送)被接受;主机可以向附件发送IDReject消息以指示提议已被拒绝。在一些实施例中,主机基于IDInfo命令中的信息和其本身的规则集来确定接受还是拒绝提议。多个实例在下文进行了描述。
主机可以向附件发送IDTimeout消息以指示超时状态。例如,如果主机发送IDStart消息并且附件在设定时间段内未用IDInfo消息作出响应,则主机可以发送IDTimeout消息以指示将不接受未来的消息,包括IDInfo消息。在附件发送IDInfo消息而由于某种原因主机未收到该信息的情况下,IDTimeout消息可以向附件提醒该问题;这条消息可以阻止附件无限期地等待来自主机的响应。
附件可以发送IDCancel消息以指示它不打算完成识别过程(该识别过程可以包括操作协定的协商)。该消息可以例如在附件接收到IDReject消息之后发送,如果附件确定它将不会重试。响应于IDCancel消息,主机设备可以使到附件的连接终止或通过发送新IDStart消息重新开始识别。在一些实施例中,已完成识别过程的附件可以在任何时间发送IDCancel消息以重新识别它本身,并且主机可以通过发送新IDStart消息来响应。
附件可以发送IDUpdate消息以便在附件已被接受之后更新识别。在一些实施例中,可以将可使用IDUpdate消息更新的参数限制到IDInfo消息的参数子集。因此,例如,可以允许附件通过发送IDUpdate消息来改变其名称或某些用户偏好设置,但不允许改变其可发送或接收的消息的列表。
如以上所指出,IDInfo消息可以包括关于附件的所有识别信息。图5是根据本发明的实施例的列出可针对IDInfo消息进行限定的参数的表500。列502中列出的每个参数均具有确定其长度和有效数值范围(列506)的参数类型(列504),该有效数值范围指示一条IDInfo消息中可包括的参数实例的数量。更新列508针对每个参数指示该参数是否也可以包括在IDUpdate消息中。不能包括在IDUpdate消息中的任何参数可以由附件例如通过发送IDCancel消息和新IDInfo消息来改变。
第一组参数510包括提供关于附件的基本信息(例如,其名称、制造商、型号、序号、固件版本和硬件版本)的参数。这些参数中的每一个都可以限定为具有固定长度(例如,32字符)的“字符串”类型。如列506中所指示的那样,在一些实施例中,要求附件为这些参数中的每一个刚好提供一个值。因此,主机可以拒绝未能指定这些参数的IDInfo消息。
第二组参数512包括识别来自附件协议的附件提议允许发送和接收的特定消息的参数。此类消息被称为包括在所提议的“有效”子集中。在该实例中,可以使用单独参数来指定附件可发送的消息(消息发送列表)和附件可接收的消息(消息接收列表)。每个参数可以限定为“数组”类型,并且该数组中的每个元素可以恰好是消息代码的尺寸LM(例如,1或2字节);因此,每个参数的值可以是适当消息代码的列表。预期的是,列表的长度可以取决于附件功能和协议具体实施的细节(例如,何种通信使用不同消息与使用具有不同参数值的相同消息)而变化。
为了允许可变长度的列表,在一些实施例中,数组型参数值的长度可以是可变的。例如,数组可以尺寸指示符(例如,用于指示数组中元素数量的一个或两个字节)开始,之后是数组的元素(在这种情况下为用于待发送或接收的消息的实际消息代码)。尺寸指示符还可以指示每个元素的尺寸(所有元素的尺寸可以相同),或可以基于数组相关联的参数ID来确定元素尺寸。基于参数ID,接收者可以意识到接下来是数组,读取尺寸指示符,随后读取该数组的每个元素。
在所示实施例中,附件指定恰好一个待发送消息列表和恰好一个待接收消息列表。如上所述,在一些实施例中,可以将消息全域分为通用消息集和可选消息集,并且协议可以规定通用消息始终包括在有效子集中,不管它们是否包括在附件的列表中。因此,例如,与识别相关的消息(例如,图4中列出的消息)可以包括在通用消息集中,并且主机可以从附件通过发送IDInfo消息来对IDStart消息作出响应的事实推断出附件支持这些消息。在一些实施例中,如果附件不打算发送除通用消息之外的任何消息,则附件可以发送具有空数组(例如,包含具有空值的一个条目的数组)的消息列表参数。
第三组参数514包括与附件与特定主机设备上可能安装或可能未安装的特定应用程序进行的互操作相关的参数。例如,IDInfo消息可以包括优选App参数,该优选App参数用于指定应用程序的标识符,附件被设计为使用该标识符来进行互操作。标识符可以是字符串,诸如分配给应用程序的名称或唯一代码(例如,在分发应用程序的应用程序商店处),并且主机设备可以使用标识符来确定是否已安装该应用程序。一些附件可以选择不指定特定应用程序;因此,IDInfo消息可以包括零个或一个优选App参数实例。
此外或相反,IDInfo消息可以包括App协议参数,该App协议参数用于提供关于附件支持特定应用程序专用协议的能力的信息。(应用程序专用协议允许使用附件协议作为导管在附件与应用程序之间传递消息,其中附件协议与此类消息的内容无关)
在该实例中,可以使用用于参数值的结构化“字段”类型来提供应用程序专用协议信息。在一些实施例中,字段型参数值可以实施为一组固定长度的字段,其中对于特定参数而言每个字段的字段定义和长度是固定的。可替代地,字段型参数值可以非常类似于图3中所示的参数列表那样使用键对/值对来实施,但是在单个参数内而不是作为单独参数。在一些实施例中,要求包括针对字段型参数限定的所有键对/值对,以便有利于解析。字段型参数是否可以“嵌套”在字段型参数内是一个设计选择问题。
用于App协议参数的字段可以包括:例如包含所支持的应用程序专用协议的名称的固定长度字符串;提供用于应用程序专用协议的识别号的固定长度整数;和/或根据主机设备是否具有能够使用已识别协议的安装应用程序来识别待采取的动作的字节代码(例如,如果未发现这种应用程序,则可以指示主机在应用程序商店中搜索合适的应用程序、询问用户是否应当进行搜索或什么都不做)。在一些情况下,附件可能不支持应用程序专用协议,并且在一些情况下,附件可能支持多于一种应用程序专用协议;因此,IDInfo消息可以包括任何数量(零个或多个)的App协议参数实例。
第四组参数516包括与操作中附件对基于语言和/或区域的差异的支持有关的参数。例如,键盘附件能够支持基于语言和/或区域的不同字符集;显示信息的附件也可能够使用不同语言或使用具有区域差异的同一种语言(例如,在使用英语的情况下,英国拼写与美国拼写)来呈现信息。能够支持不同语言和/或区域的附件可以使用当前语言和/或当前区域参数来识别当前所选的语言和/或区域,例如,作为包含该语言或区域的公认名称的字符串。因为在给定时间仅一种语言和一个区域可以是当前的,所以IDInfo消息中可以包括任一参数的仅一个实例。
如果附件支持多种语言和/或多个区域,则附件可以使用所支持语言和所支持区域参数来提供所支持语言和/或区域的列表。可以包括每个参数的任何数量的实例,其中参数值是包含某一语言或区域的公认名称的字符串。在一些实施例中,假定支持当前语言和区域,并且不需要同时使用“当前的”和“所支持的”参数来提供。
第五组参数518包括与附件电力和电力管理有关的参数。例如,根据附件是否和如何向主机提供电力,充电器类型参数可以指示所枚举的电力类型集合中的一种电力类型。类型可以包括:例如“转移”,用于指示附件从外部源汲取电力并将至少一些该电力传递给主机;“自供电”,用于指示附件从内部源(例如,其本身的电池、太阳能电池板等)汲取电力并可以将至少一些该电力提供给主机;以及“无”,用于指示附件不向主机提供电力。在一些实施例中,要求IDInfo命令包括充电器类型参数,其中所枚举的选项中的一个作为一个值。
在一些实施例中,可以包括最大电流供应参数,以指定附件可向主机供应的电流的最大量。可以将电流指定为例如表示以毫安(mA)为单位的最大电流的固定长度整数(例如,8位)。在一些实施例中,如果IDInfo命令指示充电器类型为“无”,则可以省略最大电流供应参数。此外,一些实施例可以指定主机将假定的用于每种充电器类型的最大电流供应参数的默认值,并且如果该默认值对于附件是可接受的话,则IDInfo命令可以省略最大电流供应参数。
在一些实施例中,可以包括最大电流消耗参数,以便指定附件将从主机汲取的电流的最大量。再次,可以将电流指定为例如表示最大电流(以mA为单位)的固定长度整数(例如,8位)。一些实施例可以指定主机将假定的最大电流消耗参数的默认值,并且如果该默认值对于附件是可接受的话,则IDInfo命令可以省略最大电流消耗参数。实际上不要求附件在任何时间都从主机汲取所指定的最大电流(或实际上任何电流)。
第六组参数520包括与附件支持的每个通信接口有关的参数。预期每个附件都应当支持至少一个通信接口,但附件可以具有多个接口,并且根据具体实施,一些附件可以使用多个接口来与同一个主机设备通信。参数520允许附件提供与每个可用接口的操作有关的信息。在任何指定情况下,IDInfo命令可以包括该组中的至少一个参数的至少一个实例,并且根据可用的接口,可以包括多个参数和/或一个参数的多个实例。
对于每种类型的接口而言,字段可以包括适当的信息。例如,对于任何类型的接口,字段可以包括待与该接口相关联的标识符、该接口的名称以及用于指示该接口是否支持附件协议通信的位。用于特定类型接口的字段还可以指示该类型接口特定的其它信息。例如,USB主机设置字段可以包括关于由USB主机接口所支持的音频样本速率的信息。蓝牙设置字段可以指示蓝牙所支持的版本或风格(例如,经典的、低能的、北欧的)、蓝牙接口的MAC地址、将使用的配对方法(例如,PIN代码或安全样本配对)以及PIN代码(如果需要的话)。更一般地,用于特定接口的字段可以包括主机将用来在该接口上建立连接的任何信息。
应当理解,本文所述的消息格式、消息以及参数是例示性的,并且可以进行变型和修改。除了或代替以上所示实例,还可以针对IDInfo命令限定其它参数。例如,如果附件具有输入控件,则附件可以提供关于输入控件的数量、类型和布置的信息。附件还可以提供关于其它能力和/或组件(诸如,导航(例如,使用GPS等)、视频输出、音频输出等)的信息。在一些实施例中,IDInfo命令可以通过推理指示附件具有某些能力。例如,一个或两个消息列表参数可以包括与向主机设备递送GPS坐标和/或从主机设备接收GPS坐标有关的消息。由此,主机可以推断出附件能够产生和/或消耗GPS信息。又如,消息发送列表可以包括请求来自主机设备的视频流的消息;由此,主机可以推断出附件能够接收视频流。
在一些实施例中,附件本身可以是能够结合多种组件(诸如,基于蓝牙的扬声器组件、触摸屏显示器和其它控制设备(例如,转向盘上的控制按钮))的多功能设备,诸如车载头部单元。IDInfo消息可以限定允许附件识别其组件和组件的能力(全部作为该同一附件的一部分)中的每一个的参数。
识别待发送消息和待接收消息的信息可以在单个列表中呈现或分为多个列表。在一些实施例中,每个消息代码仅在一个方向上有效,并且呈现单个列表不会导致模糊性。在一些实施例中,一些消息代码可以在两个方向上有效,并且附件可以例如通过向消息代码附加方向指示符或通过提供待发送和接收的消息的独立列表(例如,如图5中所示)来指示它是否打算发送和/或接收特定消息。
应当理解,可发送和/或接收的消息的列表可能是过度包括性的。即,附件实际上不需要发送消息发送列表中所包括的每一条消息或接收接收消息列表中所包括的每一条消息。在一些实施例中,消息列表(如果主机接受的话)将附件与以下操作协定绑定:(1)附件同意不向主机发送不在消息发送列表上的任何消息(除了协议假定为可发送的任何消息,诸如图4中的识别消息),并且主机可以忽略附件发送的任何此类消息。(2)附件不期望接收不在接收消息列表上的任何消息。(3)附件对接收消息列表上的任何消息的接收将不会导致附件向主机发送错误消息。
如上所述的识别消息可以用于支持对连接至主机设备的附件设备的识别,包括操作协定的协商。图6是根据本发明的实施例可在主机设备(例如,图1的主机设备100或图2的主机设备202)中实施的用于协商识别的过程600的流程图。
当主机检测到与附件的连接时,过程600可以在框602处开始。例如,附件可以连接至主机设备上的连接器,如图1中所示,并且所连接的附件可以将连接器上的一个或多个引脚引拉至特定电压,从而指示附件的存在。附件还可以请求经由无线协议(例如,蓝牙或Wi-Fi)的连接,并且主机可以建立可用于交换附件协议消息的连接来作出响应。
在框604处,主机可以例如通过发送如上所述的IDStart消息来请求附件识别其本身。主机还可以在框606处启动认证过程以核实附件的真实性。在一些实施例中,认证过程可以包括:请求并接收来自附件的数字证书,确认该数字证书的有效性(例如,通过将其与已知良好和/或已知不良的证书进行比较),并且向附件下发随机值或质疑以便附件使用私匙来进行数字签名并返回;主机设备可以使用与数字证书相关联的公匙对所签名的随机值进行核实。可以例如使用附件协议的通用消息集中的消息来实施认证请求和响应。(就识别消息而言,可以假定所有附件和所有主机都能够发送和接收认证消息,并且主机可以将附件未能对认证消息作出正确响应或根本不响应解译为认证过程失败。)在一些实施例中,认证过程可以在后台运行,而过程600继续进行识别。在其它实施例中,过程600可以在框606处等待认证,只有在认证成功时才结束和继续进行。
在框608处,过程600可以等待来自附件的IDInfo消息。在一些实施例中,主机不会无限期地等待。例如,在框610处,过程600可以确定自从发送IDStart消息是否已经过超时周期。该周期可以是例如100毫秒、2秒或任何其它所需时间周期。如果超时周期已过去,则在框612处,过程600可以退出,同时向附件发送如以上所述的IDTimeout消息。为了在超时之后重新尝试识别,附件可以重新建立连接,从而在框602处重新开始过程600。根据具体实施,重新建立连接可能需要或可能不需要设备的物理断开和重新连接或其它用户干预(例如按压附件上的重置按钮)。在一些实施例中,主机不具有超时周期,并且过程600可以一直等待IDInfo消息,只要附件保持连接。
如果在框610处超时周期未过去,则在框614处,过程600可以确定是否已接收到完整的IDInfo消息。在一些实施例中,单个IDInfo消息可以分割成多个分组以便传输到主机,并且可能的是在某个时刻仅已接收IDInfo消息的一部分。如果消息不是完整的,则过程600可以继续等待(框608)直到接收到完整的消息或超时发生。在一些实施例中,部分IDInfo消息的接收可以重置超时间隔,从而允许附件具有更多的时间来使消息变完整。在一些实施例中,附件可以发送多条IDInfo消息,每一条包含一部分识别信息,并且框614可以包括检测用于指示附件已完成发送IDInfo消息的不同消息(例如,“ID完成”消息)。
一旦已接收到完整的IDInfo消息,则在框616处,主机设备可以解析所接收的消息并且例如通过应用各种判定规则来确定接受还是拒绝该消息。例如,在框618处,主机设备可以读取所提议的有效消息的列表(例如,图5的消息发送列表和消息接收列表参数),并且确定主机是否能够接收所有可发送消息和发送所有可接收消息。如果主机能力不足,则可以拒绝识别。
类似地,在框620处,主机可以至少部分地基于附件所提供的信息来执行其它能力测试。例如,可以使用制造商和型号信息来确定附件的某些能力,诸如它是否能够提供GPS坐标或接收视频。如果附件在其消息发送列表中包括“发送GPS坐标”消息但不知其是否能够提供GPS坐标,则兼容性测试可能会失败。类似地,如果附件在其消息接收列表中包括“视频请求”消息但不知其是否能够接收视频信号,则另一个兼容性测试可能会失败。在一些实施例中,测试可以基于是否知道附件能够做到其消息列表暗示其能够做的某些事情,而不是基于已知的能力。
在一些实施例中,并非依赖于关于特定附件的能力(或其不具有的能力)的明确信息,而是主机设备可以从消息列表推断出附件具有某些能力。例如,如果附件指示它可以发送“视频请求”消息,则主机可以推断出附件能够接收视频信号。在一些实施例中,可选消息集可以包括协商待递送到附件的视频信号格式和控制(例如,启动和停止)视频播放所需的一组消息,并且主机可能要求附件支持整组这些消息或不支持这些消息中的任何一个。
在一些实施例中,可能已知特定主机设备与特定附件型号不兼容,并且这种已知的不兼容性还可以是兼容性测试失败的依据。
还可以限定兼容性测试来强制执行关于设备行为的用户期望。例如,如果用户可以与特定附件进行交互以限定存储在主机设备上的媒体资产的播放列表(例如,通过调用智能播放列表功能或操作由附件提供用于从主机的媒体资产数据库中选择资产的远程接口),用户可以合理地期望能够与该附件进行交互以播放这种播放列表。因此,如果附件提议的有效消息列表包括与限定附件上的播放列表相关的消息但不包括与播放这种播放列表相关的消息,则测试可被限定为是失败的。
在框624处,主机可以确定在框606处开始的认证过程是否成功。例如,成功可能要求附件呈现已知良好的证书(或不在已知不良列表上的证书)并且成功签名随机值。成功还可能要求特定证书对于特定附件是有效的,例如,基于附件型号和/或附件已包括在所提议的有效消息列表中的消息。也可以应用其它条件来确定认证是否成功。
如果通过了框618、620和624处的所有测试,则在框626处,过程600可以接受识别,例如发送如上所述的IDAccept消息。过程600可以在此退出,同时识别完成。应当理解,主机和附件可以保持连接并且可以开始根据协商的操作协定,例如使用主机在框626处接受的提议中的任何或所有有效消息来进行互操作。这可以包括如上所述的消息发送和/或消息接收列表中的消息,以及默认情况下被视为有效的消息(例如,如上所述的通用消息)。
如果在框618、620或624处的任一测试失败,则在框628处主机可以例如通过发送IDReject消息来拒绝识别。在一些实施例中,IDReject消息可以包括指示识别为何被拒绝的原因代码。例如,可以分配不同的原因代码来指示特定的失败状况,诸如认证失败、主机无能力接收消息发送列表上的至少一条消息、主机无能力发送消息接收列表上的至少一条消息、一条或多条消息与所识别或所推断的附件特性不兼容、消息集不足以支持相关联的功能等。在一些实施例中,在特定消息已导致拒绝的情况下,原因代码还可以包括识别有问题消息的信息。此类消息可以有利于附件的重试尝试,但此类消息并不是所要求的。
在发送IDReject消息之后,过程600可以返回至框608,从而允许附件利用新IDInfo消息来重试所述识别。在一些实施例中,如果识别由于认证失败而被拒绝,则过程600可以退出而不是允许附件重试。
在所示实例中,过程600不限制附件重试的次数。在一些实施例中,过程600可以通过以下方式强加限制:例如通过每次执行框628时使重试计数器递增,以及如果计数器达到上限(例如,3次重试)则退出而不是返回至框608。在一些实施例中,过程600可以通过实施“全局超时”来限制重试,该“全局超时”限制在过程600发送IDStart消息的第一时间与所提议识别被接受的时间之间经过的时间;如果在全局超时周期结束时还没有建立操作协定,则过程600可以退出。如果过程600由于过量重试(包括全局超时期满和/或超过重试次数限制)而退出,则附件可以仍然继续尝试识别,但如在框612处一样,可能需要断开连接/重新连接序列。
在一些实施例中,附件可以在过程600期间的任何时刻通过发送如上所述的IDCancel消息来取消识别过程。如果当正在执行过程600时在主机处接收到取消消息,则过程600可以退出。此时,在主机与附件之间的适当位置处不存在操作协定,并且主机可以锁定(例如,通过忽略)与附件的进一步通信。为了恢复通信,可以要求附件如上所述的那样断开连接和重新连接,从而在框602处重新开始过程600。
如果在过程600成功完成(例如,在框626之后)之后接收到取消消息,则主机可以重新开始过程600以便获得来自附件的新识别信息,例如在不需要断开连接/重新连接序列的情况下。在这种情况下,只要主机和附件保持连接,一些实施例可能不要求重新认证(例如,可以省略框606和624)。
图7是根据本发明的实施例的可以在附件(例如图1的附件102和图2的附件204)中实施的识别过程700的流程图。当附件建立到主机的连接时,过程700在框702处开始。例如,附件上的连接器可以与主机上的配合连接器接合(例如,如图1中所示),或附件可以使用无线通信协议来定位主机并且将主机识别为能够经由附件协议进行通信的设备。无论通信信道的细节如何,框702都可以包括如下操作,附件通过该操作提醒主机其存在,并且准备好使用附件协议以进行通信。
在框704处,附件可以接收例如如上所述的来自主机的IDStart消息。在框706处,附件可以启动与主机的认证过程;这个过程可以与在如上所述的过程600的框606处启动的过程互补。如同过程600,框706处的认证可以在后台与过程700的其它操作同时执行,或过程700可以在框706处等待直到认证完成并且仅响应于成功认证来进一步继续进行。
在框708处,附件可以向主机发送IDInfo消息;该IDInfo消息可以包括附件对于有效消息列表的提议。在一些实施例中,附件可以具有准备好的IDInfo消息,该消息响应于IDStart消息而自动发送。在一些实施例中,附件可以实时地创建或修改IDInfo消息。例如,如果IDStart消息(或从主机接收到的一些其它初步消息或信号)提供关于特定主机或其能力的信息,则附件可以基于该信息来修改其有效消息列表,例如,以便基于特定主机的特性移除已知该特定主机不支持的消息,或选择将优化附件的互操作的有效消息。
在框710处,附件可以接收来自主机对IDInfo消息的响应。在所示实施例中,有效响应为IDAccept和IDReject。如果在框712处接收到IDReject,则在框714处,附件可以确定是否重试所述识别。所述确定可以是基于各种判定标准,诸如附件已经尝试或重试并失败的次数、是否还有任何备用选项(以下描述)、和/或如果IDReject消息中提供有任何原因代码将如何。
如果决定进行重试,则在框716处,附件可以修改IDInfo消息。可以实施各种策略以便在重试时修改IDInfo消息。例如,附件可以具有以优选程度递减的次序布置的用于识别的一个或多个准备好的“备用”选项。第一选项(框708处的初始通过时发送)可以提供最佳的操作体验;后续备用选项可以逐渐偏离这个最佳选项,例如,通过去除或减少功能或通过用可提供类似(如果不相同)功能的较低效集来替换较高效的有效消息集。在框716处,附件可以选择备用选项序列中的下一个IDInfo消息。
在IDReject消息包括原因代码(例如如上所述)的实施例中,附件可以在修改IDInfo消息和/或确定是否重试时使用该信息。例如,如果原因代码将消息发送列表或消息接收列表上的特定消息识别为拒绝的原因,则附件可以移除引起问题的消息,假定仍然可以提供可接受的功能(并且如果不能提供,则附件可以确定不在框714处进行重试)。
修改后的IDInfo消息可以在框708处发送,并且如果接收到另一个拒绝,则附件可以再次确定是否在框714处进行重试。如果在任何时刻附件确定不重试,则过程700可以在框718处发送IDCancel消息并且在框720处退出。在一些实施例中,不发送IDCancel;如上所述,主机侧识别可以实施超时,并且在超时周期内未收到来自附件的响应可以解译为取消。在一些实施例中,在退出过程700之后,附件可以与主机断开连接并且重新连接至主机以便重新开始过程700并再次尝试。
如果在框712处,IDInfo命令没有被拒绝,则期望附件在框722处接收IDAccept。在这种情况下,成功完成所述识别,并且附件可以在框724处开始与主机进行互操作。尽管过程700可以退出,但附件和主机可以保持连接并且可以开始根据协商的操作协定来进行互操作,例如,使用主机在框722处接受的提议中的任何或所有有效消息。这可以包括如上所述的消息发送列表和/或消息接收列表中的消息,以及默认情况下被视为有效的消息(例如,如上所述的通用消息)。
在过程700中,如果附件响应于IDInfo消息既不接收IDAccept也不接收IDReject,则这被视为错误。(在一些实施例中,这种情况也可能发生在当附件发送IDInfo之前或之后主机发送IDTimeout的情况下。)在这种情况下,连接可以在框726处重置,并且过程700可以返回至框702以便尝试重新建立连接并且从最初重新开始所述识别过程。在一些实施例中,重置连接可能需要附件与主机的物理断开或其它用户干预(例如,按压附件上的重置按钮)。例如,如果主机在附件确定的超时周期内根本不响应,或如果响应不是IDAccept或IDReject,则可以到达框726。
应当理解,图6和图7的识别过程是例示性的并且可以进行变型和修改。可以并行执行按顺序描述的步骤,可以改变步骤顺序,并且可以修改、组合、添加或省略步骤。例如,如果需要,认证过程可以在任何时间(包括在主机向附件发送IDStart之前或主机接收IDInfo之后)开始或完全省略。主机确定接受还是拒绝特定识别消息的测试能够以任何顺序执行,并且可以使用任何数量的测试和任何测试组合。在一些情况下,测试结果可以取决于IDInfo消息和认证信息两者的内容;例如,可以基于由附件呈现的特定数字证书来限制发送或接收某些消息的能力。
在识别失败(例如,超时发生或附件取消)的情况下,根据具体实施,附件或主机设备(或两者)可以提醒用户。此类提醒可以采取以下形式:屏幕上通知、指示灯点亮、声音等。随后,用户可以采取适当的动作来解决故障,诸如使附件断开连接并重新连接(例如,使连接器脱离接合并重新接合、按压重置按钮等)。
如上所述,识别操作(例如,过程600和700)的成功完成使主机和附件处于如下状态:其中它们能够交换消息并且已商定用以规定每个设备将从另一个设备接受哪些消息的操作协定。在一些实施例中,协定可以隐含地包括假定为可由所有主机或附件设备发送或接收的某些消息,例如,如上所述的识别相关消息和/或其它通用消息。
运行良好的设备遵守协商的操作协定。因此,例如,运行良好的附件不发送除所接受的可发送消息列表上的那些消息之外的任何消息,并且忽略除所接受的可接收消息列表上的那些消息之外的任何消息。类似地,运行良好的主机忽略从附件接收的除所接受的可发送消息列表上的那些消息之外的任何消息,并且不向附件发送除所接受的可接收消息列表上的那些消息之外的任何消息。忽略所接收的不符协定的消息可以有助于保护主机(或附件)免受因发送接收者不同意接收的消息而违反协定的运行不良的附件(或主机)的影响。这进而可以在设备之间提供更可靠的互操作。并不要求运行良好的设备(主机或附件)实际上在特定通信会话期间发送或接收所有商定消息,只有在设备有能力这样做时才要求。特定消息是否发送可以取决于操作的具体情况(在一些情况下包括用户交互)。
在一些实施例中,如上所指出,附件可以在识别(例如,过程600和700)成功完成之后发送IDUpdate消息。该IDUpdate消息可以包括用于先前使用IDInfo消息所指定的一个或多个参数的新值。如上所述,可以限制IDUpdate消息仅更新IDInfo消息中的参数的子集(例如,附件名称而不是消息列表)。在IDUpdate消息不影响主机与附件之间的现有操作协定的情况下,主机可以简单地更新相关信息并且使用更新后信息来继续与附件进行交互。
例如,在一些实施例中,如上所述,附件可以在IDInfo消息中提供其当前语言和/或区域设置。在识别之后,主机可以利用指示可能不同于当前设置的推荐语言和/或区域设置的消息来回复。(推荐可以基于主机设备本身的设置、基于附件的当前设置和所支持的语言/区域、基于诸如主机设备或附件的当前位置的其它信息等。)如果附件接受推荐,则附件可以发送指示新当前语言和/或区域设置的IDUpdate消息。又如,用户可以通过直接与附件交互来改变附件上的语言和/或区域设置,并且附件可以发送IDUpdate消息来通知主机这种改变。
在一些实施例中,可以使用IDUpdate消息来发送对附件的端口和设置的更新。例如,附件可以决定激活先前识别为不可用于附件协议通信的端口,或去激活先前识别为可用的端口。当附件使用IDUpdate激活端口时,主机可以将先前协商的操作协定应用于新激活的端口。在一些实施例中,附件无法使用IDUpdate消息来添加未使用IDInfo进行识别的端口,但可以使用IDUpdate来改变与使用IDInfo所识别的任何端口相关的设置。
如果附件确定需要对操作协定作出改变,则附件可以发送IDCancel消息而不是IDUpdate,随后如上所述进行重新识别。如果主机确定需要对操作协定作出改变(例如,响应于IDUpdate或任何其它事件或情况),则主机可以发送新的IDStart消息,从而重新调用所述识别过程。
操作协定的明确协商(例如,如上所述)还可以有利于实施较旧版本协议的设备和较新版本协议的设备之间的前向和后向兼容性。例如,当添加新功能时,可以扩展协议以包括新消息ID。如果使用较新协议版本的附件连接至使用较旧版本的主机,则附件可能提议不被主机所认识的消息ID,并且主机将基于不认识的消息ID而拒绝识别。如果拒绝消息通知附件存在不认识的消息ID,则附件可以推断出主机正在使用较旧的协议版本,并且还可以推断出例如主机不支持相关功能或支持更有限的功能。
相反地,如果使用较旧协议版本的附件连接至使用较新版本的主机,则附件可以仅提议消息ID子集,主机将所述消息ID子集与特定功能相关联。基于不存在较新的消息ID,主机可以推断出附件正在使用较旧的协议版本;主机可以接受协议,只要主机支持所提议的消息ID子集。在一些情况下,主机可以基于附件提议的特定消息ID来限制自身行为。例如,当前的协议版本可以支持以三种不同格式(A、B和C)将图像从主机提供至附件,而较旧版本仅支持两种(A和B)。主机可以确定呈格式C的图像实际上不可用于与仅支持A和B的附件进行互操作的目的。
操作协定的明确协商(例如,如上所述)还可以有利于对附件进行证书测试。例如,主机设备系列的制造商可以操作如下认证项目,该认证项目允许其他制造商提交将被证明为可与该制造商的主机设备互操作的附件。根据该项目,例如可以使用专有徽章和语言来标记已证明的附件并将其公告为兼容的。(认证项目的一个例子是苹果公司的“Made for”项目。)
在证书测试期间,测试站(其可为自动的或人工操作的)可以建立与附件的操作协定,随后使用附件声称能够发送和/或接收的每一条消息来对附件进行测试。测试站还可以检测附件是否正在发送不在其列表上的任何消息。针对附件的证书要求可以包括核实附件是否符合用于以上所述运行良好的附件的规则(例如,忽略所接收的不在商定列表上的消息并且仅发送在商定列表上的消息)。
本文所述的实施例可以提供用于向主机设备识别附件并且建立主机与附件之间的操作协定的稳健且灵活的技术。附件首先呈现识别其在连接至主机设备时可能使用的所有能力的信息,并且主机可以基于该信息的全部内容来确定接受还是拒绝附件识别(从而允许或不允许互操作)。
这些技术可以在例如以下情景中使用:主机能够与多个不同附件进行互操作,这些附件具有用以实现广泛范围的依赖附件的功能的不同能力;以及共用协议限定消息全域,该消息全域可以支持一系列具有不同能力的附件与能力同样可多样化的主机进行互操作。特定主机和特定附件可以在尝试以特定方式进行通信(例如,使用特定消息集)之前使用以上所述的技术来核实另一设备能够以这种方式进行通信。另外,通过使较旧和较新的设备协商它们可交换的消息集来使得它们仍然可以进行互操作。因此,例如,当特定附件连接至特定主机时,附件可以例如使用识别消息向主机呈现提议,该提议用于将由协议限定的消息全域分成“有效”消息子集(即,特定主机和特定附件互相商定来用以进行彼此通信的消息)和“无效”子集(即,由协议限定的不在有效子集中的消息)。在上述某些实施例中,使用提议包括在有效子集中的特定消息的列表来呈现提议;如上所指出,除任何明确列出的消息之外,有效子集还可以默认包括某些消息(例如,上述实例中的通用消息)。主机可以确定所提议的划分是否可接受,并且将其接受还是拒绝提议的决定通知给附件。
明确识别可交换的特定消息,而不是识别将被支持的一组消息或广泛类别的功能,可以比在消息组或功能类别的水平上管理多个版本更为灵便,并且可以扩大与更大范围的设备进行互操作的可能性。另外,在可通过添加参数来扩展消息的情况下,识别特定消息可以至少以一定程度的防过时性进行,只要接收具有不认识行为的消息的设备适当地处理这些消息(例如,忽略它们而不是向发送者生成错误消息),并且只要在消息开始之后添加至消息定义的任何参数已经被分配默认值,以使得使用稍后添加参数的设备能够在不存在指定值的情况下相应地采取动作。
虽然已相对于特定实施例描述了本发明,但是本领域的技术人员应当认识到,许多修改都是可以的,并且参照一个实施例进行描述的特征可以应用于其它实施例。在一些实施例中,并不是可连接至主机的每个附件都需要识别其本身;成功的识别可以是使用附件协议进行任何进一步通讯的前提条件,但可以支持附件协议之外的其它(受限的)功能。例如,充电器可能够向主机提供电力而不需要发送任何识别或认证消息。又如,主机设备可以具有不实施附件协议的端口(例如,模拟音频输出端口,诸如耳机接口),并且对于此类端口将不需要识别。
在一些实施例中,如果所提议的识别被拒绝,则不要求选择重试的附件重新发送其所有参数(除非附件取消该过程或断开连接)。可以要求附件重新发送完整的消息列表而不是对先前列表的修正,以及附件确定应当修改的任何其它参数。要求附件呈现单个完整消息列表(或两个单独列表,一个用于所有发送的消息并且一个用于所有接收的消息)可以有利于主机设备对修订后提议的考虑,并且可以比实施一系列指令来从先前呈现的列表中移除单独消息和/或向先前呈现的列表添加单独消息更为简单。
在一些实施例中,当识别正在进行时,可以阻止附件发送与识别不相关的任何消息。例如,主机可以忽略可能接收到的任何此类消息。在其它实施例中,主机在识别过程期间可以暂时允许至少一些不相关的消息(例如,通过接收并对它们起作用),并且如果过程以失败告终或如果这些消息不在所协商的操作协定范围内,则在识别之后开始阻止或忽略消息。同样,在一些实施例中,附件可以选择忽略或处理在识别过程期间可能接收到的与识别不相关的消息。
另外,虽然以上描述是参考附件向主机识别自身进行描述的,但是了解本教导内容的本领域技术人员将认识到,这些角色可以颠倒。可以实施类似的消息和过程以允许主机向附件识别自身,并且基于待支持的特定消息来协商操作协定。还可以实施双向识别,例如其中一个设备呈现关于其本身的信息并且另一个设备使用其本身的信息来响应。在任何特定的具体实施中,对待交换的可接受消息集的协商可以在任一方向上发生(例如,如上所述,附件提议/主机接受或拒绝,或在相反方向上,其中主机提议并且附件接受或拒绝)。其它实施例可以限定一种反复协商过程,在这种协商过程中,一个设备可以接收来自另一个设备的提议,修改该提议的不被接受的一部分并且将经修改的提议发送至另一个设备以供考虑。在接收经修改的提议时,另一个设备可以接受经修改的提议或作出进一步修改,并且该过程可以继续,直到任一个设备所发送的提议由另一个设备接受。
可以使用专用组件和/或可编程处理器和/或其它可编程设备的任何组合来实现本发明的实施例。本文所述的各种过程可以任何组合方式在同一处理器或不同处理器上实现。在组件被描述为被配置成执行某些操作的情况下,可以例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作或它们的任何组合,来实现这种配置。另外,尽管上述实施例可引用具体硬件和软件组件,但本领域的技术人员应当理解,也可以使用硬件和/或软件组件的不同组合,并且被描述为在硬件中实现的特定操作也可能在软件中实现,或反之亦然。
可以在各种计算机可读存储介质上编码并存储结合本发明各特征的计算机程序;合适的介质包括磁盘或磁带、光学存储介质诸如光盘(CD)或DVD(数字多功能盘)、闪存存储器,以及其它非暂态介质。(应当理解,数据的“存储”不同于使用暂时性介质(诸如载波)的数据传播。)可将用程序代码编码的计算机可读介质与兼容的电子设备封装在一起,或者该程序代码可独立于电子设备提供(例如,经由互联网下载或作为单独封装的计算机可读存储介质)。
因此,尽管已相对于具体实施例描述了本发明,但应当理解,本发明旨在覆盖以下权利要求范围内的所有修改和等价形式。
Claims (43)
1.一种用于根据协议在第一设备与第二设备之间建立通信的方法,所述协议限定可由所述第一设备和所述第二设备中的一者发送到所述第一设备和所述第二设备中的另一者的消息全域,所述方法包括:
由所述第一设备向所述第二设备发送识别消息,其中所述识别消息包括将所述消息全域划分为有效消息集和无效消息集的提议,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,所述第一列表识别在所述协议限定的所述消息全域中的、由所述第一设备提议向所述第二设备发送的消息的第一子集,所述第二列表识别在所述协议限定的所述消息全域中的、由所述第一设备提议从所述第二设备接收的消息的第二子集;
响应于发送所述识别消息,由所述第一设备从所述第二设备接收响应消息,所述响应消息指示所述提议被所述第二设备接受还是拒绝;
在所述响应消息指示所述提议被接受的情况下,由所述第一设备使用所述消息的第一子集和所述消息的第二子集中的消息中的至少一些来与所述第二设备进行互操作;以及
在所述响应消息指示所述提议被拒绝的情况下,由所述第一设备确定是发送修改的识别消息还是取消所述识别。
2.根据权利要求1所述的方法,还包括:
在响应消息指示所述提议被拒绝的情况下,由所述第一设备向所述第二设备发送经修改的提议,所述经修改的提议包括对识别将被包括在所述有效消息集中的消息的所述列表的修改。
3.根据权利要求1所述的方法,还包括:
由所述第一设备接收来自所述第二设备的识别请求,
其中响应于接收到所述识别请求,发送所述识别消息。
4.根据权利要求1所述的方法,其中所述识别消息还包括设备描述符,
所述设备描述符包括以下中的至少一者:所述第一设备的制造商的名称、所述第一设备的型号名称、所述第一设备的序号、所述第一设备的硬件版本标识符、或所述第一设备的固件版本标识符。
5.一种用于根据协议在第一设备与第二设备之间建立通信的方法,所述协议限定可由所述第一设备和所述第二设备中的一者发送到所述第一设备和所述第二设备中的另一者的消息全域,所述方法包括:
由所述第二设备接收来自所述第一设备的识别消息,其中所述识别消息包括将所述消息全域划分为有效消息集和无效消息集的提议,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,所述第一列表识别在所述协议限定的所述消息全域中的、由所述第一设备提议向所述第二设备发送的消息的第一子集,所述第二列表识别在所述协议限定的所述消息全域中的、由所述第一设备提议从所述第二设备接收的消息的第二子集;
由所述第二设备确定接受还是拒绝所述提议;
由所述第二设备向所述第一设备发送响应消息,其中所述响应消息指示所述提议被接受还是拒绝;
在所述第二设备接受所述提议的情况下,由所述第二设备使用所述消息的第一子集和所述消息的第二子集中的消息来与所述第一设备进行互操作;以及
在所述第二设备拒绝所述提议的情况下,等待来自所述第一设备的修改的识别消息。
6.根据权利要求5所述的方法,还包括:
由所述第二设备接收来自所述第一设备的认证信息,
其中确定接受还是拒绝所述提议至少部分地基于所接收的认证信息。
7.根据权利要求5所述的方法,其中确定接受还是拒绝所述提议部分地基于确定所述第二设备是否能够对所述第一子集中的每一条消息作出响应,并且部分地基于确定所述第二设备是否能够发送所述第二子集中的每一条消息。
8.根据权利要求5所述的方法,其中确定接受还是拒绝所述提议部分地基于确定所述第一子集和所述第二子集是否包括足以实现与所述第一子集或所述第二子集中的至少一者中的至少一条消息相关联的功能的消息子集。
9.根据权利要求5所述的方法,其中所述识别消息还包括设备描述符,并且其中确定接受还是拒绝所述提议包括基于所述设备描述符来确定所述第一子集中的消息和所述第二子集中的消息是否是可准许的。
10.一种用于与主机设备一起使用的附件,所述附件包括:
与所述主机设备进行通信的接口电路;以及
耦接至所述接口电路的控制逻辑电路,所述控制逻辑电路:
经由所述接口电路建立与所述主机设备的连接;
生成用于所述附件与所述主机设备根据限定消息全域的协议进行互操作的提议,其中所述提议将所述消息全域划分为有效消息集和无效消息集,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;
经由所述接口电路将所述提议发送到所述主机设备;
经由所述接口电路接收来自所述主机设备的响应,其中所述响应指示所述主机设备接受还是拒绝所述提议;
在所述响应指示所述主机设备接受所述提议的情况下启动与所述主机设备的互操作,其中与所述主机设备的所述互操作包括交换所述有效消息集中的消息并且忽略所述无效消息集中的消息;以及
在所述响应指示所述主机设备拒绝所述提议的情况下,确定是否通过向所述主机设备发送修改的提议来重试。
11.根据权利要求10所述的附件,其中所述消息全域由通用消息集和可选消息集组成,其中所述提议中的识别消息的列表还包括所述可选消息集中的将被包括在所述有效消息集中的所有消息。
12.根据权利要求11所述的附件,其中所述通用消息集中的所有消息均包括在所述有效消息集中,但不包括在所述提议中的所述列表中。
13.根据权利要求10所述的附件,其中所述控制逻辑电路进一步:
在所述响应指示所述主机设备拒绝所述提议的情况下生成经修改的提议;以及
经由所述接口电路将所述经修改的提议发送至所述主机设备。
14.一种用于与附件一起使用的主机设备,所述主机设备包括:
与所述附件进行通信的接口电路;以及
耦接至所述接口电路的控制逻辑电路,所述控制逻辑电路:
经由所述接口电路检测到所述附件的连接;
经由所述接口电路从所述附件接收用于所述附件与所述主机设备根据协议进行互操作的提议,所述协议限定消息全域,其中所述提议将所述消息全域划分为有效消息集和无效消息集,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;
确定接受还是拒绝所述提议;
经由所述接口电路向所述附件发送响应,其中所述响应指示所述主机设备接受还是拒绝所述提议;
在所述主机设备接受所述提议的情况下启动与所述附件的互操作,其中与所述附件的所述互操作包括交换所述有效消息集中的消息并且忽略所述无效消息集中的消息;以及
在所述主机设备拒绝所述提议的情况下等待来自所述附件的修改的提议。
15.根据权利要求14所述的主机设备,其中所述消息全域由通用消息集和可选消息集组成,其中所述提议中的识别消息的列表包括所述可选消息集中的将被包括在所述有效消息集中的所有消息。
16.根据权利要求14所述的主机设备,其中所述控制逻辑电路部分地基于确定所述主机设备是否能够对所述第一子集中的每一条消息作出响应,并且部分地基于确定所述主机设备是否能够发送所述第二子集中的每一条消息来确定接受还是拒绝所述提议。
17.根据权利要求14所述的主机设备,其中所述控制逻辑电路部分地基于所述有效消息集是否足以实现与所述有效消息集中的至少一条消息相关联的功能来确定接受还是拒绝所述提议。
18.根据权利要求14所述的主机设备,其中用于所述互操作的所述提议还包括设备描述符,并且其中所述控制逻辑电路部分地基于以下情况来确定接受还是拒绝所述提议:基于所述设备描述符来确定第一子集中的消息和第二子集中的消息是否是可准许的。
19.根据权利要求14所述的主机设备,其中所述控制逻辑电路还:
等待超时周期结束,随后发送指示所述主机设备拒绝所述提议的响应;
在所述超时周期期间接收到经修改的提议的情况下,确定接受还是拒绝所述经修改的提议,并且经由所述接口电路向所述附件发送另外的响应以指示所述主机设备接受还是拒绝所述经修改的提议;以及
在所述超时周期期间未接收到经修改的提议的情况下,经由所述接口电路向所述附件发送超时消息,并且在发送所述超时消息之后忽略来自所述附件的另外的消息。
20.一种用于根据协议在主机设备与附件之间建立通信的方法,所述协议限定可由所述主机设备和所述附件中的一者发送到所述主机设备和所述附件中的另一者的消息全域,所述方法包括:
经由接口检测到所述附件的连接;
经由所述接口向所述附件发送识别请求;
经由所述接口从所述附件接收用于所述附件与所述主机设备根据协议进行互操作的提议,所述协议限定能够在所述主机设备与所述附件设备之间交换的消息全域,其中所述提议将所述消息全域划分为有效消息集和无效消息集,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;
确定接受还是拒绝所述提议;
经由所述接口向所述附件发送响应,其中所述响应指示所述主机设备接受还是拒绝所述提议;
在所述主机设备接受所述提议的情况下,与所述附件进行互操作,其中互操作包括仅交换所述有效消息集中的由所接受的提议限定的消息;以及
在所述主机设备拒绝所述提议的情况下,等待接收来自所述附件的修改的提议。
21.根据权利要求20所述的方法,其中与所述附件的互操作包括:
接收来自所述附件的第一消息;
确定所述第一消息是否包括在所接受的提议中;
如果所述第一消息包括在所接受的提议中,则根据所述第一消息采取动作;以及
如果所述第一消息不包括在所接受的提议中,则忽略所述第一消息。
22.根据权利要求20所述的方法,其中所述方法还包括:
接收来自所述附件的认证信息,
其中确定接受还是拒绝所述提议至少部分地基于所接收的认证信息。
23.根据权利要求20所述的方法,其中所述方法还包括:
从所述提议推断出所述附件的能力;以及
确定所识别的消息的列表是否包括足以与所述附件的所推断出的能力进行互操作的一组消息,
其中如果所述消息标识符列表不包括足以与所述附件的所推断出的能力进行互操作的一组消息,则所述提议被拒绝。
24.一种用于根据协议在主机设备与附件之间建立通信的方法,所述协议限定可由所述主机设备和所述附件中的一者发送到所述主机设备和所述附件中的另一者的消息全域,所述方法包括:
由所述主机设备接收来自所述附件的识别消息,所述识别消息包括将所述消息全域划分为有效消息集和无效消息集的提议,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;以及
由所述主机设备确定接受还是拒绝所述提议,
其中,确定接受还是拒绝所述提议部分基于确定第一消息和第二消息是否被所述列表识别,并且如果第一消息被所述列表识别并且第二消息不被所述列表识别,则拒绝所述提议。
25.如权利要求24所述的方法,还包括:
由所述主机设备向所述附件发送响应消息,其中所述响应消息指示所述提议被接受还是拒绝。
26.如权利要求25所述的方法,其中,在所述主机设备接受所述提议的情况下,由所述主机设备使用由所述列表识别的消息来与所述附件进行互操作。
27.如权利要求24所述的方法,还包括:
由所述主机设备接收来自所述附件的认证信息,
其中确定是接受还是拒绝所述提议部分地基于所接收的认证信息。
28.如权利要求24所述的方法,其中,确定接受还是拒绝所述提议部分地基于确定所述附件是否能够对第一子集中的每一条消息作出响应以及部分地基于确定所述主机设备是否能够发送第二子集中的每一条消息。
29.如权利要求24所述的方法,其中,确定接受还是拒绝所述提议部分地基于确定所述第一子集和所述第二子集是否包括足以实现与所述第一子集或所述第二子集中的至少一者中的至少一条消息相关联的功能的消息子集。
30.如权利要求24所述的方法,其中,所述识别消息还包括设备描述符,并且其中确定接受还是拒绝所述提议包括基于所述设备描述符来确定所述第一子集中的消息和所述第二子集中的消息是否是可准许的。
31.一种用于根据协议在主机设备与附件之间建立通信的方法,其中,所述协议限定可由所述主机设备和所述附件中的一者发送到所述主机设备和所述附件中的另一者的消息全域,所述方法包括:
由所述主机设备接收来自所述附件的识别消息,所述识别消息包括将所述消息全域划分为有效消息集和无效消息集的提议,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;以及
由所述主机设备确定接受还是拒绝所述提议,
其中,确定接受还是拒绝所述提议部分基于确定所述消息的第一子集中或所述消息的第二子集中的第一消息是否不与所述附件的已知能力相关联,并且如果第一消息不与所述附件的已知能力相关联,则拒绝所述提议。
32.如权利要求31所述的方法,其中,所述附件的所述已知能力由所述附件的制造商和型号信息识别。
33.如权利要求32所述的方法,其中,所述识别消息还包括设备描述符,所述设备描述符包括所述附件的所述制造商和型号名称。
34.如权利要求31所述的方法,还包括:
由所述主机设备接收来自所述附件的认证信息,
其中确定接受还是拒绝所述提议至少部分基于所接收的认证信息。
35.如权利要求31所述的方法,还包括:
由所述主机设备向所述附件发送响应消息,其中所述响应消息指示所述提议被接受还是被拒绝。
36.如权利要求35所述的方法,其中,在所述主机设备接受所述提议的情况下,由所述主机设备使用来自所述列表的消息来与所述附件互操作。
37.一种用于根据协议在主机设备与附件之间建立通信的方法,所述协议限定可由所述主机设备和所述附件中的一者发送到所述主机设备和所述附件中的另一者的消息全域,所述方法包括:
由所述主机设备接收来自所述附件的识别消息,其中,所述识别消息包括将所述消息全域划分为有效消息集和无效消息集的提议,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;
由所述主机设备接收包括数字证书的认证信息;
由所述主机设备确定接受还是拒绝所述提议,
其中确定接受还是拒绝所述提议部分地基于所述消息的第一子集和所述消息的第二子集中的消息是否基于所述数字证书是可准许的。
38.如权利要求37所述的方法,还包括:
由所述主机设备向所述附件发送响应消息,其中所述响应消息指示所述提议被接受还是拒绝。
39.如权利要求38所述的方法,其中,在所述主机设备接受所述提议的情况下,由所述主机设备使用来自所述列表的消息来与所述附件互操作。
40.一种用于根据协议在主机设备与附件之间建立通信的方法,所述协议限定可由所述主机设备和所述附件中的一者发送到所述主机设备和所述附件中的另一者的消息全域,所述方法包括:
由所述附件向所述主机设备发送识别消息,其中所述识别消息包括将所述消息全域划分为有效消息集和无效消息集的提议,并且其中所述提议包括识别所述消息全域中的将被包括在所述有效消息集中的至少一些消息的列表,所述列表包括第一列表和第二列表,第一列表识别在所述协议限定的所述消息全域中的、由所述附件提议向所述主机设备发送的消息的第一子集,第二列表识别在所述协议限定的所述消息全域中的、由所述附件提议从所述主机设备接收的消息的第二子集;
由所述附件向所述主机设备发送认证信息,所述认证信息包括数字证书;
响应于发送所述识别消息和所述认证信息,由所述附件接收来自所述主机设备的响应消息,所述响应消息指示所述提议被所述主机设备接受还是拒绝;以及
在所述提议被接受的情况下,由所述附件使用来自所述消息的第一子集和所述消息的第二子集中的至少一些消息来与所述主机设备进行互操作。
41.如权利要求40所述的方法,还包括:
在所述响应信息指示所述提议被拒绝的情况下,由所述附件向所述主机设备发送经修改的提议,所述经修改的提议包括对识别将被包括在所述有效消息集中的消息的所述列表的修改。
42.如权利要求40所述的方法,还包括:
由所述附件接收来自所述主机设备的识别请求,
其中,所述识别消息是响应于接收到识别请求而发送的。
43.如权利要求40所述的方法,其中,所述识别消息还包括设备描述符,所述设备描述符包括以下中的至少一者:所述附件的制造商的名称、所述附件的型号名称、所述附件的序号、所述附件的硬件版本标识符、或所述附件的固件版本标识符。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261657586P | 2012-06-08 | 2012-06-08 | |
US61/657,586 | 2012-06-08 | ||
US13/710,084 | 2012-12-10 | ||
US13/710,084 US9306879B2 (en) | 2012-06-08 | 2012-12-10 | Message-based identification of an electronic device |
PCT/US2013/039335 WO2013184257A1 (en) | 2012-06-08 | 2013-05-02 | Message-based identification of an electronic device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104350484A CN104350484A (zh) | 2015-02-11 |
CN104350484B true CN104350484B (zh) | 2017-05-03 |
Family
ID=48446652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380028223.2A Active CN104350484B (zh) | 2012-06-08 | 2013-05-02 | 基于消息的电子设备识别 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9306879B2 (zh) |
CN (1) | CN104350484B (zh) |
TW (1) | TWI515568B (zh) |
WO (1) | WO2013184257A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125244B (zh) * | 2013-04-23 | 2019-05-07 | 中兴通讯股份有限公司 | 一种分布式网络中转发信息的方法及系统 |
US9244492B2 (en) * | 2013-09-09 | 2016-01-26 | Apple Inc. | Docking station with audio output |
US9411369B2 (en) | 2013-09-19 | 2016-08-09 | Apple Inc. | Power distribution in a docking station |
CN104066027B (zh) * | 2014-06-06 | 2017-12-08 | 武汉天喻信息产业股份有限公司 | 音频设备的识别方法及系统 |
US10613585B2 (en) * | 2014-06-19 | 2020-04-07 | Samsung Electronics Co., Ltd. | Transparent display apparatus, group play system using transparent display apparatus and performance methods thereof |
US9729534B2 (en) * | 2015-02-26 | 2017-08-08 | Seagate Technology Llc | In situ device authentication and diagnostic repair in a host environment |
CN104811771B (zh) * | 2015-04-24 | 2017-12-15 | 天脉聚源(北京)传媒科技有限公司 | 一种视频推送失败的处理方法及装置 |
US10333903B1 (en) * | 2015-06-16 | 2019-06-25 | Amazon Technologies, Inc. | Provisioning network keys to devices to allow them to provide their identity |
EP3171245B1 (en) * | 2015-09-24 | 2020-03-18 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method, apparatus, and system for upgrading adapter |
EP3381153B1 (en) * | 2015-11-24 | 2022-01-05 | Harman International Industries, Incorporated | Automated system setup |
US10049059B2 (en) * | 2015-12-22 | 2018-08-14 | Lenovo (Singapore) Pte. Ltd. | Device with magnet(s) for engaging with another device |
KR102475304B1 (ko) * | 2016-06-03 | 2022-12-07 | 삼성전자 주식회사 | 전자 장치 및 케이블과 그의 구동 방법 |
US10321587B2 (en) * | 2017-02-03 | 2019-06-11 | Google Llc | Integrated connector receptacle device |
JP6639754B2 (ja) * | 2017-08-28 | 2020-02-05 | 三菱電機株式会社 | 通信装置、動作手順管理方法及び動作手順管理プログラム |
EP3697511A1 (en) | 2017-10-16 | 2020-08-26 | Lego A/S | Interactive play apparatus |
KR102457868B1 (ko) * | 2017-12-02 | 2022-10-25 | 현대자동차주식회사 | 터치 입력장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200834329A (en) * | 2006-08-10 | 2008-08-16 | Avocent Huntsville Corp | USB based virtual media system |
Family Cites Families (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5475836A (en) | 1987-04-01 | 1995-12-12 | Lotus Development Corporation | Interface for providing access to external data sources/sinks |
US4916334A (en) | 1987-07-29 | 1990-04-10 | Kabushiki Kaisha Toshiba | High voltage booster circuit for use in EEPROMs |
US4938483A (en) | 1987-11-04 | 1990-07-03 | M. H. Segan & Company, Inc. | Multi-vehicle interactive toy system |
US4924216A (en) | 1988-02-12 | 1990-05-08 | Acemore International Ltd. | Joystick controller apparatus |
US4850899A (en) | 1988-06-20 | 1989-07-25 | Maynard Scott D | Connector for interfacing a disk drive with a computer |
JP2802088B2 (ja) * | 1989-02-06 | 1998-09-21 | 株式会社日立製作所 | プロトコル選択切替方法 |
US5247138A (en) | 1991-11-08 | 1993-09-21 | Calcomp Inc. | Cordless digitizer stylus status encoding and transmission scheme |
US5525981A (en) | 1992-01-30 | 1996-06-11 | Calcomp Inc. | Cordless digitizer transducer/cursor status transmission apparatus and method |
US5618045A (en) | 1995-02-08 | 1997-04-08 | Kagan; Michael | Interactive multiple player game system and method of playing a game between at least two players |
US5835862A (en) | 1996-03-06 | 1998-11-10 | Nokia Mobile Phones Ltd. | Data adapter unit for infrared communications |
US5881366A (en) | 1996-05-01 | 1999-03-09 | Logitech, Inc. | Wireless peripheral interface |
US5873000A (en) | 1996-07-19 | 1999-02-16 | Compaq Computer Corporation | System incorporating hot docking and undocking capabilities without requiring a standby or suspend mode by placing local arbiters of system and base into idle state |
US5732361A (en) | 1996-09-18 | 1998-03-24 | Liu; Chun-Chieh | Adapter for mobile phone |
FR2760163A1 (fr) | 1997-02-25 | 1998-08-28 | Philips Electronics Nv | Appareil de telecommunication muni d'un dispositif de reconnaissance de peripheriques |
US5964847A (en) | 1997-03-10 | 1999-10-12 | International Business Machines Corporation | Mobile client computer interacting with docking device |
US6012105A (en) | 1997-05-01 | 2000-01-04 | Telefonaktiebolaget L M Ericsson | System for interfacing with an external accessory in one of two interface modes based on whether communication can be established with external accessory or not |
US5859522A (en) | 1997-07-16 | 1999-01-12 | Motorola, Inc. | Accessory identification apparatus and method |
US6199102B1 (en) | 1997-08-26 | 2001-03-06 | Christopher Alan Cobb | Method and system for filtering electronic messages |
US6078402A (en) | 1997-09-24 | 2000-06-20 | Hewlett-Packard Company | Accessory based resource offset mechanism for a PCI bus in a printer |
US6272127B1 (en) | 1997-11-10 | 2001-08-07 | Ehron Warpspeed Services, Inc. | Network for providing switched broadband multipoint/multimedia intercommunication |
US6101393A (en) | 1997-11-20 | 2000-08-08 | Ericsson Inc. | Selective acceptance of short message service (SMS) messages in a cellular telephone network |
US6188265B1 (en) | 1997-12-12 | 2001-02-13 | Scenix Semiconduction, Inc. | High-voltage NMOS switch |
GB2342195A (en) | 1998-09-30 | 2000-04-05 | Xerox Corp | Secure token-based document server |
GB2342196A (en) | 1998-09-30 | 2000-04-05 | Xerox Corp | System for generating context-sensitive hierarchically-ordered document service menus |
GB9821103D0 (en) | 1998-09-30 | 1998-11-18 | Xerox Corp | Mobile Email document transaction service |
US6853385B1 (en) | 1999-11-09 | 2005-02-08 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
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 |
JP2000214953A (ja) | 1999-01-25 | 2000-08-04 | Fujitsu Ltd | 電子機器の機能拡張装置 |
US6859538B1 (en) | 1999-03-17 | 2005-02-22 | Hewlett-Packard Development Company, L.P. | Plug and play compatible speakers |
US6463473B1 (en) | 1999-04-09 | 2002-10-08 | Sharewave, Inc. | Configuring a wireless computer network to allow automatic access by a guest client device |
US6453371B1 (en) | 1999-04-23 | 2002-09-17 | Palm, Inc. | Method, apparatus, and system for selection of a port for data exchange |
US6523124B1 (en) | 1999-04-23 | 2003-02-18 | Palm, Inc. | System and method for detection of an accessory device connection status |
US6493760B1 (en) | 1999-06-28 | 2002-12-10 | Xerox Corporation | Standalone device for identifying available document services in a token-enabled operating environment |
US7068674B1 (en) | 1999-08-23 | 2006-06-27 | Lg Electronics Inc. | Method of controlling connection between nodes in digital interface |
US7945284B1 (en) | 1999-11-23 | 2011-05-17 | Agere Systems Inc. | Cordless telephone with MP3 player capability |
JP3819658B2 (ja) | 1999-12-27 | 2006-09-13 | 三洋電機株式会社 | 共通シリアルバスコネクターを具えた携帯電子機器 |
JP2001184147A (ja) | 1999-12-27 | 2001-07-06 | Sanyo Electric Co Ltd | 携帯電子機器 |
US6539030B1 (en) * | 2000-02-07 | 2003-03-25 | Qualcomm Incorporated | Method and apparatus for providing configurable layers and protocols in a communications system |
KR20010092569A (ko) | 2000-03-22 | 2001-10-26 | 이은복 | 탈착 가능한 전자 기기를 포함하는 이동 전화기 |
US6934752B1 (en) | 2000-03-23 | 2005-08-23 | Sharewave, Inc. | Quality of service extensions for multimedia applications in wireless computer networks |
US7187947B1 (en) | 2000-03-28 | 2007-03-06 | Affinity Labs, Llc | System and method for communicating selected information to an electronic device |
JP2001285439A (ja) | 2000-03-29 | 2001-10-12 | Rohm Co Ltd | 携帯電話装置および充電器 |
KR20020001348A (ko) | 2000-06-28 | 2002-01-09 | 윤종용 | 근거리 이동무선시스템을 이용하여 디지탈 오디오데이타를 청취할 수 있는 헤드셋 |
US7031267B2 (en) | 2000-12-21 | 2006-04-18 | 802 Systems Llc | PLD-based packet filtering methods with PLD configuration data update of filtering rules |
SG118066A1 (en) | 2000-08-25 | 2006-01-27 | Serial System Ltd | A reconfigurable communication interface and method therefor |
US6608399B2 (en) | 2000-10-17 | 2003-08-19 | Lear Corporation | Vehicle universal docking station and electronic feature modules |
US20020065074A1 (en) | 2000-10-23 | 2002-05-30 | Sorin Cohn | Methods, systems, and devices for wireless delivery, storage, and playback of multimedia content on mobile devices |
US20020068610A1 (en) | 2000-12-05 | 2002-06-06 | Anvekar Dinesh Kashinath | Method and apparatus for selecting source device and content delivery via wireless connection |
US6766175B2 (en) | 2000-12-13 | 2004-07-20 | Waxess Technologies, Inc. | Cordless and wireless telephone docking station |
US7127678B2 (en) | 2000-12-21 | 2006-10-24 | Microsoft Corporation | System and method to specify device specific user interface information in the firmware of a USB device |
WO2002052825A1 (en) * | 2000-12-22 | 2002-07-04 | Nokia Corporation | Method and system for establishing a multimedia connection by negotiating capability in an outband control channel |
US20020151327A1 (en) | 2000-12-22 | 2002-10-17 | David Levitt | Program selector and guide system and method |
US20020105861A1 (en) | 2000-12-29 | 2002-08-08 | Gateway, Inc. | Standalone MP3 recording station |
US20020103008A1 (en) | 2001-01-29 | 2002-08-01 | Rahn Michael D. | Cordless communication between PDA and host computer using cradle |
US6423892B1 (en) | 2001-01-29 | 2002-07-23 | Koninklijke Philips Electronics N.V. | Method, wireless MP3 player and system for downloading MP3 files from the internet |
EP1364494B1 (en) | 2001-01-30 | 2009-12-02 | Broadcom Corporation | Method for adding a new device to a wireless network |
US20020115480A1 (en) | 2001-02-13 | 2002-08-22 | Huang Chih Chen | Adapter set |
US20020152874A1 (en) | 2001-03-01 | 2002-10-24 | Andy Vilcauskas | Audio ownership system |
US6724339B2 (en) | 2001-03-14 | 2004-04-20 | Universal Electronics Inc. | System and method for controlling home appliances |
JP3714882B2 (ja) | 2001-03-16 | 2005-11-09 | シャープ株式会社 | 携帯型通信端末充電システム |
JP2002318647A (ja) | 2001-04-19 | 2002-10-31 | Mitsubishi Electric Corp | 検出装置及びその検出方法 |
US7620363B2 (en) | 2001-05-16 | 2009-11-17 | Aol Llc | Proximity synchronization of audio content among multiple playback and storage devices |
US7890661B2 (en) | 2001-05-16 | 2011-02-15 | Aol Inc. | Proximity synchronizing audio gateway device |
US20020194621A1 (en) | 2001-06-18 | 2002-12-19 | Tran Thanh T. | Multimedia interface control for consumer electronics device |
US7149475B2 (en) | 2001-06-27 | 2006-12-12 | Sony Corporation | Wireless communication control apparatus and method, storage medium and program |
US20030004934A1 (en) | 2001-06-29 | 2003-01-02 | Richard Qian | Creating and managing portable user preferences for personalizion of media consumption from device to device |
GB2378531B (en) | 2001-07-11 | 2003-04-16 | Sendo Int Ltd | Software driver code usage |
US6798647B2 (en) | 2001-07-16 | 2004-09-28 | Hewlett-Packard Development Company, L.P. | Portable computer with integrated PDA I/O docking cradle |
US7310821B2 (en) | 2001-08-27 | 2007-12-18 | Dphi Acquisitions, Inc. | Host certification method and system |
US7054423B2 (en) | 2001-09-24 | 2006-05-30 | Nebiker Robert M | Multi-media communication downloading |
US20030073432A1 (en) | 2001-10-16 | 2003-04-17 | Meade, William K. | Mobile computing device with method and system for interrupting content performance among appliances |
JP4204977B2 (ja) | 2001-10-22 | 2009-01-07 | アップル インコーポレイテッド | メディアプレーヤーのためのインテリジェントなシンクロ操作 |
US20030167318A1 (en) | 2001-10-22 | 2003-09-04 | Apple Computer, Inc. | Intelligent synchronization of media player with host computer |
KR100420265B1 (ko) | 2001-11-15 | 2004-03-02 | 한국전자통신연구원 | 무선 인터넷 망간 접속 방법 |
US7299304B2 (en) | 2001-11-20 | 2007-11-20 | Intel Corporation | Method and architecture to support interaction between a host computer and remote devices |
WO2003073688A1 (en) | 2002-02-22 | 2003-09-04 | Emc Corporation | Authenticating hardware devices incorporating digital certificates |
US7050783B2 (en) | 2002-02-22 | 2006-05-23 | Kyocera Wireless Corp. | Accessory detection system |
US7254708B2 (en) | 2002-03-05 | 2007-08-07 | Intel Corporation | Apparatus and method for wireless device set-up and authentication using audio authentication—information |
US6742061B1 (en) | 2002-03-08 | 2004-05-25 | Nokia Corporation | Accessory control interface |
US20030208750A1 (en) | 2002-03-29 | 2003-11-06 | Tapper Gunnar D. | Information exchange for process pair replacement in a cluster environment |
US7433546B2 (en) | 2004-10-25 | 2008-10-07 | Apple Inc. | Image scaling arrangement |
US7187948B2 (en) | 2002-04-09 | 2007-03-06 | Skullcandy, Inc. | Personal portable integrator for music player and mobile phone |
JP2003309664A (ja) | 2002-04-17 | 2003-10-31 | Sony Corp | 端末装置、データ送受信システム及びデータ送受信開始方法 |
JP2003316524A (ja) | 2002-04-24 | 2003-11-07 | Konica Minolta Holdings Inc | 記録媒体及びプログラム |
US20030220988A1 (en) | 2002-05-22 | 2003-11-27 | Hymel James A. | Method and electronic device for establishing an interface to control an accessory device |
US20070086724A1 (en) | 2002-07-17 | 2007-04-19 | Jeff Grady | Interface systems for portable digital media storage and playback devices |
US20040162029A1 (en) | 2002-07-17 | 2004-08-19 | Jeff Grady | Audio player assembly comprising an MP3 player |
GB0226778D0 (en) * | 2002-11-18 | 2002-12-24 | Hewlett Packard Co | Using semantic web technology to enhance current business-to-business integration approaches |
US20040103223A1 (en) | 2002-11-26 | 2004-05-27 | Motorola, Inc. | USB accessory adaptor |
KR100493858B1 (ko) | 2002-12-16 | 2005-06-10 | 삼성전자주식회사 | 멀티 이어잭 및 그의 제어방법 |
US7363045B2 (en) | 2003-01-03 | 2008-04-22 | Vtech Telecommunications Limited | Systems and methods for exchanging data and audio between cellular telephones and landline telephones |
US7062261B2 (en) | 2003-01-31 | 2006-06-13 | Motorola, Inc. | Method and apparatus for automatic detection and installation of Java-enabled accessories |
US7791319B2 (en) | 2003-02-21 | 2010-09-07 | Research In Motion Limited | Circuit and method of operation for an electrical power supply |
US9274576B2 (en) | 2003-03-17 | 2016-03-01 | Callahan Cellular L.L.C. | System and method for activation of portable and mobile media player devices for wireless LAN services |
US7054965B2 (en) | 2003-03-18 | 2006-05-30 | Oqo Incorporated | Component for use as a portable computing device and pointing device |
US20040194154A1 (en) | 2003-03-26 | 2004-09-30 | Meadors Michael J. | Removable storage device media player |
US7627343B2 (en) | 2003-04-25 | 2009-12-01 | Apple Inc. | Media player system |
GB0310929D0 (en) | 2003-05-13 | 2003-06-18 | Koninkl Philips Electronics Nv | Portable device for storing media content |
TW594544B (en) | 2003-05-14 | 2004-06-21 | Benq Corp | Interface device for automatically determining peripherals and electronic device having such a function |
US7043572B2 (en) | 2003-06-06 | 2006-05-09 | Microsoft Corporation | Method and system for providing a peripheral service to a host computing device |
US20040267812A1 (en) | 2003-06-26 | 2004-12-30 | Microsoft Corporation | Media platform |
US7305254B2 (en) | 2003-07-17 | 2007-12-04 | Sony Ericsson Mobile Communications Ab | System and method of software transfer between a mobile phone and a mobile phone accessory |
WO2005009789A2 (en) | 2003-07-21 | 2005-02-03 | De Janasz Christopher G | Vehicle-based wireless identification system |
US8468209B2 (en) | 2003-09-18 | 2013-06-18 | International Business Machines Corporation | Method of rescinding previously transmitted e-mail messages |
US20050097087A1 (en) | 2003-11-03 | 2005-05-05 | Punaganti Venkata Murali K. | System and method for providing a unified framework for service discovery |
US8190723B2 (en) | 2003-12-14 | 2012-05-29 | Cisco Technology, Inc. | Method and system for automatically determining commands for a network element |
US20050135790A1 (en) | 2003-12-23 | 2005-06-23 | Sandisk Corporation | Digital media player with resolution adjustment capabilities |
US20050149213A1 (en) | 2004-01-05 | 2005-07-07 | Microsoft Corporation | Media file management on a media storage and playback device |
US20050181756A1 (en) | 2004-02-17 | 2005-08-18 | Chung-Hung Lin | Wireless digital music player |
US20050207726A1 (en) | 2004-03-22 | 2005-09-22 | Jui-Ming Chen | Portable multimedia electronic device |
US7293122B1 (en) | 2004-04-27 | 2007-11-06 | Apple Inc. | Connector interface system facilitating communication between a media player and accessories |
US7441062B2 (en) | 2004-04-27 | 2008-10-21 | Apple Inc. | Connector interface system for enabling data communication with a multi-communication device |
US7673083B2 (en) | 2004-04-27 | 2010-03-02 | Apple Inc. | Method and system for controlling video selection and playback in a portable media player |
US7529870B1 (en) | 2004-04-27 | 2009-05-05 | Apple Inc. | Communication between an accessory and a media player with multiple lingoes |
US7676590B2 (en) | 2004-05-03 | 2010-03-09 | Microsoft Corporation | Background transcoding |
GB0412338D0 (en) | 2004-06-03 | 2004-07-07 | Koninkl Philips Electronics Nv | Transfer of content between storage devices |
US7721304B2 (en) | 2004-06-08 | 2010-05-18 | Cisco Technology, Inc. | Method and apparatus providing programmable network intelligence |
US8396973B2 (en) | 2004-10-22 | 2013-03-12 | Microsoft Corporation | Distributed speech service |
US7450084B2 (en) | 2004-12-17 | 2008-11-11 | Microsoft Corporation | System and method for managing computer monitor configurations |
US7823214B2 (en) | 2005-01-07 | 2010-10-26 | Apple Inc. | Accessory authentication for electronic devices |
US20060161621A1 (en) | 2005-01-15 | 2006-07-20 | Outland Research, Llc | System, method and computer program product for collaboration and synchronization of media content on a plurality of media players |
US20060247851A1 (en) | 2005-03-08 | 2006-11-02 | Morris Robert P | Mobile phone having a TV remote style user interface |
US7532890B2 (en) | 2005-04-01 | 2009-05-12 | Rockliffe Systems | Content-based notification and user-transparent pull operation for simulated push transmission of wireless email |
US7466659B1 (en) * | 2005-04-29 | 2008-12-16 | Network Appliance, Inc. | System and method for performing version negotiation of a network protocol and associated interfaces |
US8244179B2 (en) | 2005-05-12 | 2012-08-14 | Robin Dua | Wireless inter-device data processing configured through inter-device transmitted data |
US8938217B2 (en) | 2005-08-22 | 2015-01-20 | Apple Inc. | Communicating and storing information associated with media broadcasts |
US20070080823A1 (en) | 2005-10-07 | 2007-04-12 | Apple Computer, Inc. | Techniques for pairing remote controllers with host devices |
US20080313704A1 (en) | 2005-10-21 | 2008-12-18 | Boxsentry Pte Ltd. | Electronic Message Authentication |
CN2904519Y (zh) | 2006-01-20 | 2007-05-23 | 广州矽金塔电子有限公司 | 一种多功能蓝牙音箱 |
US20070236482A1 (en) | 2006-04-07 | 2007-10-11 | Microsoft Corporation | Attachable display system for a portable device |
US7444388B1 (en) | 2006-04-13 | 2008-10-28 | Concert Technology Corporation | System and method for obtaining media content for a portable media player |
US9026117B2 (en) | 2006-05-16 | 2015-05-05 | Aylus Networks, Inc. | Systems and methods for real-time cellular-to-internet video transfer |
US8073984B2 (en) | 2006-05-22 | 2011-12-06 | Apple Inc. | Communication protocol for use with portable electronic devices |
WO2007143720A2 (en) | 2006-06-07 | 2007-12-13 | Avaya Technology Llc | Modular communication system for supporting wireless and wired telecommunication |
EP2078236A4 (en) | 2006-10-31 | 2013-12-18 | Redpoint Pty Ltd | INDUCTION OF BEHAVIOR DEFINED BY PART B IN PART A COMMUNICATIONS BY DISTRIBUTING USER INTERFACES |
US20080256205A1 (en) | 2007-02-26 | 2008-10-16 | Shawn Christopher Mahoney | Apparatus and Method for a Portable Hand Held Device Into a Media Controller |
US8205080B2 (en) | 2007-05-11 | 2012-06-19 | Microsoft Corporation | Over the air communication authentication using a device token |
US8208403B2 (en) | 2007-12-26 | 2012-06-26 | Verizon Patent And Licensing Inc. | Defining an end-to-end path for a network service |
EP2249253A1 (en) | 2008-01-02 | 2010-11-10 | SanDisk IL Ltd. | Storage device having direct user access |
CN101488953B (zh) | 2008-01-14 | 2012-03-14 | 鸿富锦精密工业(深圳)有限公司 | 网络通信设备及其网络通信协议会话的分配方法 |
US8144187B2 (en) | 2008-03-14 | 2012-03-27 | Microsoft Corporation | Multiple video stream capability negotiation |
US8416811B2 (en) * | 2008-04-10 | 2013-04-09 | International Business Machines Corporation | Coordinated timing network having servers of different capabilities |
US9069908B2 (en) * | 2009-03-16 | 2015-06-30 | Apple Inc. | Accessory and mobile computing device communication using an application communication protocol |
US8452903B2 (en) * | 2009-03-16 | 2013-05-28 | Apple Inc. | Mobile computing device capabilities for accessories |
US8909803B2 (en) | 2009-03-16 | 2014-12-09 | Apple Inc. | Accessory identification for mobile computing devices |
US20110167176A1 (en) | 2010-01-06 | 2011-07-07 | Apple Inc. | Connecting multiple accessories to a portable computing device |
US8347014B2 (en) | 2010-06-04 | 2013-01-01 | Apple Inc. | Class-based compatibility testing and notification |
US8509694B2 (en) | 2010-08-31 | 2013-08-13 | Apple Inc. | Techniques for facilitating communication between a portable media device and an accessory using multiple communication paths |
US20130332632A1 (en) | 2012-06-08 | 2013-12-12 | Apple Inc. | Holistic identification of an electronic device |
-
2012
- 2012-12-10 US US13/710,084 patent/US9306879B2/en active Active
-
2013
- 2013-05-02 WO PCT/US2013/039335 patent/WO2013184257A1/en active Application Filing
- 2013-05-02 CN CN201380028223.2A patent/CN104350484B/zh active Active
- 2013-05-23 TW TW102118293A patent/TWI515568B/zh active
-
2015
- 2015-08-07 US US14/820,559 patent/US20150339079A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200834329A (en) * | 2006-08-10 | 2008-08-16 | Avocent Huntsville Corp | USB based virtual media system |
Also Published As
Publication number | Publication date |
---|---|
US20150339079A1 (en) | 2015-11-26 |
TWI515568B (zh) | 2016-01-01 |
US9306879B2 (en) | 2016-04-05 |
WO2013184257A1 (en) | 2013-12-12 |
CN104350484A (zh) | 2015-02-11 |
TW201401059A (zh) | 2014-01-01 |
US20130332542A1 (en) | 2013-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104350484B (zh) | 基于消息的电子设备识别 | |
CN102483787B (zh) | 附件设备认证 | |
CN102428456B (zh) | 移动计算设备的附件识别 | |
CN101699458B (zh) | 用于电子设备的附件认证 | |
CN104350483A (zh) | 电子设备的整体识别 | |
CN102646081B (zh) | 感应地配对设备以共享资源或数据的系统和方法 | |
CN201509210U (zh) | 跨传输端认证 | |
CN103748863B (zh) | 用于无线网络访问的附件的配置 | |
CN105162955B (zh) | 使用应用通信协议的附件和移动计算设备通信 | |
TWI454095B (zh) | 配對使用實體存在之無線裝置的方法和系統 | |
US9253190B2 (en) | Information management system and method for managing identification information | |
WO2017186100A1 (zh) | 身份认证方法、系统及设备 | |
CN105393564A (zh) | 使用附件协议经由无线传输来在主机和附件设备之间进行通信 | |
CN102428457A (zh) | 用于附件的移动计算设备附件能力 | |
TWI669919B (zh) | 收發報機模組以及用於啟動及設置該收發報機模組的存取模組 | |
GB2494062A (en) | Establishing pairing between two devices using probes | |
CN102845046A (zh) | 用于系统级通信的连接器的动态配置 | |
EP4262146A1 (en) | Iot device and method for onboarding iot device to server | |
CN102546584A (zh) | 附件特定的用户体验的调用 | |
US20210194679A1 (en) | Electronic device sharing key with external electronic device and operating method for electronic device | |
CN106375350A (zh) | 刷机验证方法和装置 | |
US20200391695A1 (en) | Electronic device for managing application relating to key of external electronic device, and operating method of electronic device | |
CN106447329A (zh) | 支付卡片及移动支付系统 | |
JPWO2020085141A1 (ja) | 情報処理システムおよびサーバ装置 | |
JP2002345045A (ja) | Id登録システム、id登録装置、id登録方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |