CN104350483A - 电子设备的整体识别 - Google Patents

电子设备的整体识别 Download PDF

Info

Publication number
CN104350483A
CN104350483A CN201380028189.9A CN201380028189A CN104350483A CN 104350483 A CN104350483 A CN 104350483A CN 201380028189 A CN201380028189 A CN 201380028189A CN 104350483 A CN104350483 A CN 104350483A
Authority
CN
China
Prior art keywords
annex
communication interface
message
main process
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.)
Pending
Application number
CN201380028189.9A
Other languages
English (en)
Inventor
S·拉蒂
E·W·福奥
J·J·耶
G·高勒姆百斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104350483A publication Critical patent/CN104350483A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/724098Interfacing with an on-board device of a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开一种整体识别过程,该识别过程可以有利于附件(102)与主机设备(100)之间的可靠互操作,具体地讲是在附件(102)包括多个部件和/或多个通信接口的情况下。在识别过程期间,附件(102)可以提供关于其能够用来与主机通信的每个通信接口的信息,以及关于附件(102)具有的可用于与主机设备(100)进行交互的各种部件的信息。在后续互操作期间,主机设备(100)可以使用识别信息来确定对从附件(102)接收到的输入的响应和/或确定将用于向附件(102)递送信息的接口。

Description

电子设备的整体识别
相关申请的交叉引用
本申请要求2012年6月8日提交的名称为“Holistic Identification of anElectronic Device”的美国临时申请61/657,582,和名称为“HolisticIdentification of an Electronic Device”的美国非临时申请13/685,522的权益,出于所有目的这些申请的全部公开内容以引用方式并入本文。
背景技术
本公开总体涉及电子设备之间的数据通信,并且更具体地,涉及一个设备向另一个设备的整体识别。
诸如智能电话、平板电脑、媒体播放器等便携式电子设备已变得无处不在。已创造各种附件来与便携式电子设备进行互操作,以扩展这些电子设备的功能性和/或增强用户体验。附件的实例包括充电器、扬声器底座、提供使用车辆控制台来控制便携式设备的选项的车载底座、健身器材、健康状态监测附件(例如,心率仪、血压仪或血糖仪)等。可以将附件设计成与在形状因数和能力(例如,处理能力;固件版本;电池寿命;存在或不存在摄像头、麦克风或其它部件)方面不同的多种便携式电子设备进行互操作。除“内部”部件的可变性之外,附件还可以结合多个通信接口,以用于与便携式设备进行通信的目的。
为了向操作结合有附件的便携式设备的用户提供可靠地愉快体验,可能期望的是,验证附件是否将与特定便携式设备一起正确地操作。然而,可能附件的显著多样性以及特定附件可以连接至其上的不同便携式设备的数量和可能通信接口的数量使得这种验证变得困难。
发明内容
本发明的某些实施例提供一种整体识别过程,该识别过程可以有利于附件与主机设备(包括便携式设备)之间的可靠互操作,具体地讲是在附件包括多个部件和/或多个通信接口的情况下。该过程可以执行为当附件经由第一接口在第一通信信道上连接至主机时初始化通信的一部分。此时,附件可以提供识别信息,该识别信息包括关于附件能够用来与主机进行通信的每个通信接口(例如,USB、Wi-Fi、蓝牙、UART以及任何其它接口)的信息。附件随后可经由其任一接口建立到主机的第二(或第三等)连接,并且主机可认识到第二连接是到同一个附件的。基于此,主机在通过第二连接与附件通信时可以使用初始识别信息。当附件已建立到主机的多个连接时,主机可以选择用于特定通信的最佳路由。另外,如果一个连接断开,那么主机可以继续与附件进行通信,只要至少一个连接可用。可以使得与各种接口通信的路由和重新路由对用户透明。
在一些实施例中,由附件提供的识别信息还可以包括关于附件具有的可用于与主机设备进行交互的各种部件的信息。例如,附件可以提供关于关于其一个或多个显示设备、扬声器、和/或用户可操作输入设备(例如,键盘、小键盘、按钮、拨号盘、触摸屏、触控板等)的信息。附件还可以基于共同目的或共同物理位置来定义部件“束”或部件组群。主机设备可以使用该信息通过以下方式来定制其与附件的交互:例如通过将特定信息路由发送到特定附件部件、或通过根据哪个部件是输入信号源而对来自附件的输入信号做出不同响应。
在互操作开始时获得对附件的所有可用通信接口和/或部件的完整识别可以增强主机设备与附件以协调方式进行互操作的能力。
本发明的某些方面涉及向主机设备识别附件设备的方法。附件可以利用第一通信接口建立与主机设备的通信信道,并且经由该通信信道向主机发送识别信息。识别信息可以包括附件能够用来与主机通信的至少一个其它通信接口的接口描述符。识别信息还可以包括其它信息,诸如附件的多个部件(包括例如,音频输出部件、视频输出部件和/或用户输入部件)中的每一个的部件描述符。在一些情况下,部件描述符可以包括识别部件待与其相关联的特定功能性的目的描述符。识别信息还可以包括例如基于具有共同的位置和/或共同的相关联功能性或目的,使一些(或所有)部件相关联成束的束描述符。
本发明的某些方面涉及一种与附件进行通信的主机设备。该主机设备可以使用第一通信接口、经由第一通信信道来检测到附件的连接。经由该信道,主机可以接收来自附件的识别信息。识别信息可以包括:接口描述符,其提供关于附件也能够用来与主机通信的第二通信接口的信息;以及另一个接口描述符,其提供关于第一通信接口的信息。如果主机接受了识别信息,那么主机可以使用第一通信接口和第二通信接口来与附件进行通信。例如,主机设备可以确定将要发送给附件特定数据,并且可以选择第一通信接口和第二通信接口中的一者来发送该数据。又如,主机设备可以经由通信接口中的一者来接收来自附件的输入信号。基于输入信号并且基于使用了哪一个通信接口来递送输入信号,主机可以确定将要采取的动作。
本发明的某些方面涉及一种与一个或多个附件进行通信的主机设备。该主机可以使用第一通信接口、经由第一通信信道来检测到第一附件的连接。经由该信道,主机可以接收来自第一附件的识别信息。该信息可以包括第一附件能够用来与主机通信的多个通信接口的描述符。当第一附件保持连接时,主机设备可经由第二通信接口检测连接请求并且可以确定该连接请求是否由第一附件生成。如果连接请求是由第一附件生成的,那么主机可以使用第一通信接口和第二通信接口两者来与第一附件进行通信。如果不是,那么主机可以使用第二通信接口来与第二附件进行通信,该第二附件可以提供其自身的识别信息。在一些情况下,可能存在对在任何给定时间能够连接至主机的附件的数量的限制。
本发明的某些方面涉及具有多个部件(包括例如,音频部件、视频部件和/或用户输入部件)的附件设备。附件设备也可以具有可操作为与主机设备通信的多个通信接口。附件设备中的识别逻辑可以经由通信接口中的一者向主机设备提供识别信息。识别信息可以包括每个部件的描述符和每个通信接口的描述符。这些描述符可以提供关于特定部件的配置和/或能力(例如,适用的信号格式、尺寸、预期用途等)的信息。识别信息还可以包括束描述符,该束描述符使两个或更多个部件彼此相关联从而定义一个束;该束描述符还可以使附件的至少一个通信接口与该束相关联。
本发明的某些方面涉及具有能够执行多种不同功能的执行逻辑和可操作为与附件通信的多个通信接口的主机设备。控制和路由逻辑可以耦接在执行逻辑与通信接口之间,并且控制和路由逻辑可以被配置为可选择地将信息从执行逻辑路由发送至一个或另一个主机通信接口。主机设备中的识别逻辑可以被配置为经由一个主机通信接口从附件设备接收包含识别信息的识别消息。该信息可以包括附件的部件和/或通信接口的描述符。针对从执行逻辑到一个主机通信接口的特定信息所选择的路由路径可以部分地基于识别信息来确定,并且主机设备响应于从附件接收到的输入信号而将要采取的动作可以部分地基于是哪一个附件通信接口发送的输入信号来确定。
以下具体实施方式连同附图将提供对本发明的实质和优点的更好理解。
附图说明
图1示出根据本发明的实施例的主机设备和附件。
图2是根据本发明的实施例的包括主机设备和附件的系统的简化框图。
图3示出根据本发明的实施例的可以实施的消息格式。
图4是示出根据本发明的实施例的识别消息的表。
图5是根据本发明的实施例的列出可以针对识别消息进行定义的参数的表。
图6是示出根据本发明的实施例的音频部件描述符字段的子字段的表。
图7是示出根据本发明的实施例的视频部件描述符字段的子字段的表。
图8是示出根据本发明的实施例的输入部件描述符字段的子字段的表
图9是示出根据本发明的实施例的束描述符字段的子字段的表。
图10是根据本发明的实施例的可以在主机设备中实现的用于协商识别的过程的流程图。
图11是根据本发明的实施例的可以在附件中实现的识别过程的流程图。
图12是根据本发明的实施例的用于主机设备的可以管理到一个或多个附件的多个连接的过程的流程图。
图13是根据本发明的实施例的可由主机设备用来处理从附件接收到的输入信号的过程的流程图。
图14是根据本发明的实施例的可由主机设备用来处理从附件接收到的输入信号的过程的流程图。
具体实施方式
本发明的某些实施例提供一种整体识别过程,该整体识别过程可以有利于附件与主机设备(包括便携式设备)之间的可靠互操作,具体地讲是在附件包括多个部件和/或多个通信接口的情况下。该过程可以执行为当附件经由第一接口在第一通信信道上连接至主机时初始化通信的一部分。此时,附件可以提供识别信息,该识别信息包括关于附件能够用来与主机通信的每个通信接口(例如,USB、Wi-Fi、蓝牙、UART以及任何其它接口)的信息。附件随后可以经由其任一接口建立到主机的第二(或第三等)连接,并且主机可以认识到第二连接是到同一个附件的。基于此,主机在通过第二连接与附件通信时可以使用初始识别信息。当附件已建立到主机的多个连接时,主机可以选择用于特定通信的最佳路由。另外,如果一个连接断开,那么主机可以继续与附件进行通信,只要至少一个连接可用。可以使得与各种接口通信的路由和重新路由对用户透明。
在一些实施例中,由附件提供的识别信息还可以包括关于附件具有的可用于与主机设备进行交互的各种部件的信息。例如,附件可以提供关于关于其一个或多个显示设备、扬声器、和/或用户可操作输入设备(例如,键盘、小键盘、按钮、拨号盘、触摸屏、触控板等)的信息。附件还可以基于共同目的或共同物理位置来定义部件“束”或部件组群。主机设备可以使用该信息通过以下方式来定制其与附件的交互:例如通过将特定信息路由发送到特定附件部件、或通过根据哪个部件是输入信号源而对来自附件的输入信号做出不同响应。
在互操作开始时获得对附件的所有可用通信接口和/或部件的完整识别可增强主机设备与附件以协调方式进行互操作的能力。
图1示出根据本发明的实施例的主机设备100和附件102。
主机设备100可以是例如手持设备,诸如媒体播放器、智能电话或个人数字助理;平板电脑;膝上型计算机;台式计算机;或能够与附件设备进行通信的任何其它电子设备。在一些实施例中,主机设备100可以是便携式设备(便携式设备是指容易由用户从一个地方携带到另一个地方的设备),但这不是必需的。在所示实例中,主机设备100是平板电脑,该平板电脑具有由边框106包围的显示区域104,和控制按钮108。插座连接器110提供在主机设备100的按钮处(例如,凹进到外壳中),以允许附件物理地连接至主机设备100。
附件102可以是能够与主机设备100进行交互的任何附件,诸如扬声器底座或扬声器系统、媒体控制台、汽车音响主机等。在所示实例中,附件102是多部件、多功能设备,诸如机动车辆中提供的娱乐和信息系统。音响主机112协调各种部件的操作。这些部件可以包括:例如前置扬声器114;后置扬声器116;带有显示器120和输入控件122的前控制台单元118;带有其自身的显示器126和输入控件128的后控制台单元124;以及安装在转向盘132中的另外的控件130。附件102可以对多种服务提供支持。例如,附件102可以在前显示器120上向驾驶员呈现导航信息同时在后显示器126上呈现电影或其它娱乐。在一些实施例中,附件102可以将不同的音频流提供到不同的扬声器。因此,例如,可以使用后置扬声器116来提供与后显示器126上正在呈现的电影相关联的音频,同时可以使用前置扬声器114来向驾驶员和任何前座乘客提供不同的音频流(例如,来自无线电台)。
在所示实例中,附件102具有位于前控制台单元118内或附近的插头连接器134,该插头连接器134可以插入到插座连接器110中以提供附件102与主机设备100之间的电连接和机械连接。在一些实施例中,电连接可以包括电力连接和数据连接两者,从而允许附件102向主机设备100递送电力和/或从主机设备100接收电力。虽然连接器110与134之间的直接连接是一个选项,但应当理解,一些实施例可以使用间接连接,例如经由缆线或适配器。在一些实施例中,除了或代替如由连接器110和134提供的有线信号路径,主机设备100和附件102能够例如使用射频通信技术(诸如Wi-Fi或蓝牙、近场通信技术、红外通信等)来进行无线通信。在一些实施例中,可以在主机设备100与附件102之间同时建立多个通信路径,其中选择性地在不同路径上路由发送不同类型的信息。
通过例如经由连接器110和134进行通信,主机设备100和附件102可以进行互操作以支持各种功能性。例如,在一些实施例中,主机设备100可以流出媒体内容供附件102呈现,并且还可以向附件102提供状态信息(例如,关于当前正在播放的媒体轨道的信息)以便例如在显示器120和/或显示器126上呈现给用户。用户可操作附件102的控件122、128或130来控制媒体内容的回放(例如播放/暂停)或对不同轨道的选择。又如,附件102(或主机100)可以包括用于例如从FM、AM或卫星发射器接收媒体内容的无线电接收器(未示出)。可使用便携式设备100(或附件102)来控制无线电接收器的操作,例如频道或节目选择。许多其它类型的互操作也是可能的。
另外,主机设备100和附件102可以使用各种不同的通信信道或路径进行通信。例如,如插图140中所示,主机设备100可以支持多个不同的通信接口或端口。端口可以包括:有线端口,诸如USB(通用串行总线)端口142、UART(通用异步接收器/发射器)端口144和模拟A/V端口146;以及无线端口,诸如Wi-Fi端口148和蓝牙端口150。在一些实施例中,有线端口142、144、146可以使用连接器110的硬件来实现以提供信号路由。无线端口148、150可以使用合适的天线硬件来实现。相似地,附件102的音响主机112可以支持多个不同的通信接口或端口152。在该实例中,端口包括USB端口154、UART端口156和蓝牙端口158。根据特定配置细节,主机设备100可以经由在同一时间(或在不同时间)与不同功能性相关的多个不同端口与附件102进行通信。
例如,如插图160中所示,主机设备100可以支持接收来自用户的输入和/或产生向用户的输出的各种虚拟交互设备,包括应用程序(app)162、媒体回放引擎164和移动电话引擎166。在一些情况下,多个虚拟设备可以同时活动。控制和路由逻辑168可以协调从虚拟设备162-166到附件102和从附件102到虚拟设备162-166的信息递送。
为了优化信息递送,可能有用的是控制和路由逻辑168具有关于附件102的“整体”信息,诸如指示什么部件可用于与主机设备100进行互操作、出于什么目的以及经由什么端口或接口的信息。例如,如果控制和路由逻辑168了解显示器120被定位成向车辆驾驶员呈现信息、而显示器126被定位成向后座乘客呈现媒体内容,那么控制和路由逻辑168可以实施确保内容被适当递送的路由规则。例如,可以将来自呼入的呼叫者ID信息路由发送到显示器120,而将电影流送到显示器126。又如,如果电话打进来,那么控制和路由逻辑168可以继续将媒体内容递送到后显示器126和扬声器116(可能以降低的音量)同时将来自电话呼叫的音频提供到前置扬声器114。
当控制和路由逻辑168接收来自附件的信息时,整体识别信息也可能是有用的。例如,可以将来自后座控件128的输入解释为控制正在向后座流送的媒体(例如,播放、暂停、资产选择),而可以将来自转向盘控件130的输入解释为控制不同的操作,例如发起或终止电话呼叫、或控制正在被递送到前座的不同媒体流。
为了有利于互操作,主机设备100和附件102可以协商这样一种操作协定:限定它们将互相支持的功能性并且还指定附件102的各种部件和能力。在一些实施例中,该协定是在主机设备100和附件102建立连接时协商的,并且协商该协定可以是设备识别过程的一部分。
例如,附件设备102的音响主机112可以包括附件侧识别逻辑170,该附件侧识别逻辑利用附件的每个部件的部件描述符172。“部件”可以是例如能够与主机设备100交互的特定端口(通信接口)或特定输入/输出设备,并且描述符172可以包括关于每个部件的信息。在图1的实施例中,部件的实例可以包括前控制台显示器120、前控制台键盘122、前置扬声器114、转向盘控件130、后显示器126、后控件128和后置扬声器116,以及USB端口154、UART端口156和蓝牙端口158。
在一些情况下,部件描述符172还可以包括“束”描述符,这种“束”描述符识别部件组并将部件组关联成具有特定目的的逻辑单元。因此,例如,可以将后显示器126、后控件128和后置扬声器116进一步识别为目的为例如“乘客娱乐”的一束部件。可以将部件和束描述符例如定义在存储于音响主机112中的附件固件内,并且在识别过程期间通过附件侧识别逻辑170将其提供给主机设备100,这种操作的实例在下文进行描述。
在识别过程期间,主机设备100内的主机侧识别逻辑174可以接收来自附件侧识别逻辑170的识别信息,包括部件和束描述符172。使用该信息,主机设备100可以确定如何与附件102进行交互,例如控制和路由逻辑168应当如何引导用户输入和用户输出。
在一些实施例中,主机设备100和附件设备102可以经由任何一个可用端口或接口来建立初始通信信道。例如,如果用户将连接器110和134连接,那么可以首先建立主机侧UART端口144与附件侧UART端口156之间的物理连接。又如,用户可以发起无线配对而不需要将设备物理连接;例如,主机侧蓝牙端口150和附件侧蓝牙端口158可以建立配对。
一旦初始信道已建立,附件侧识别逻辑170就可以经由该信道向主机设备100发送识别消息。在一些实施例中,识别消息表示对主机设备100与附件102之间的互操作条款的提议。该提议可以包括:识别附件的信息;用于附件将使用来与主机设备进行交互的每个部件的部件描述符172;以及其它信息,例如指示在附件102与主机设备100之间的互操作期间待调用的特定功能性的信息。主机侧识别逻辑174可以接收识别消息并确定接受还是拒绝操作提议。这种确定可以通过参考提议内的信息以及关于主机设备100的能力和/或安全设置的信息来做出。主机侧识别逻辑174可以将其确定传达给附件侧识别逻辑170。如果提议被接受,那么附件102和主机设备100可以开始进行互操作。在进行互操作时,附件102和主机设备100可以建立其它通信信道;在一些情况下,初始建立的信道可以关闭,并且附件和主机可以保持连接(并且能够继续进行互操作),只要至少一个信道是连续开放的。如果提议被拒绝,那么附件102可以提交修改后提议,并且协商可以继续直到附件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的控制和路由逻辑168和/或主机侧识别逻辑174中的一些或全部。处理子系统210还可以执行其它程序来控制主机设备202的其它功能,包括可存储在存储设备212中的应用程序;在一些实施例中,这些应用程序可例如通过生成待发送至附件204的消息和/或通过从附件204接收消息来与附件204进行交互。因此,例如,在不同时间(或同时)处理子系统210可以提供不同的虚拟设备(例如,图1的app 162、媒体播放器164和/或电话166)。
网络接口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相关联的各种功能的一个或多个单核或多核微处理器和/或微控制器。例如,在附件230结合有用户可操作控件(例如,图1的控件122)的情况下,控制器230可解释用户对控件的操作并且作为响应调用附件204的功能性;在一些情况下,所调用的功能性可以包括向主机设备202发送消息和/或从主机设备202接收消息。又如,控制器220可以实现图1的一些或全部附件侧识别逻辑170。
用户接口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)之间进行交换的消息“全域(universe)”。消息格式可以包括例如用于指示接下来是消息代码的起始位或位序列,该起始位或位序列之后是可由接收器解释并起作用的实际消息代码。至少一些消息代码可以具有由协议定义的一个或多个相关联参数,并且除消息代码之外,消息可以包括用于任何此类参数的值。在一些情况下,协议还可以规定接收器在未接收到与消息代码相关联的特定参数的情况下或与消息代码一起接收到预期外参数的情况下的行为。针对不同的消息,参数的数量可以不同,并且在一些情况下,参数可以具有可变长度。在一些实施例中,消息代码可以被定义成使得给定消息代码仅在一个方向上有效。也可以使用其它消息结构。
附件协议还可以定义消息交换的格式。例如,附件协议可以规定使用一个或多个分组来发送消息,每个分组均具有标头和有效载荷。标头提供基本信息(例如,启动指示符;分组长度;分组序列号;与分组相关联的会话的标识符,如下所述),而有效载荷提供全部或部分消息数据。分组还可以包括如本领域中已知的错误检测代码或错误校正代码。
在一些实施例中,可以将消息在逻辑上分为“通用”消息集和“任选”消息集。可以要求使用附件协议的每个附件和每个主机设备都支持至少通用消息集。该消息集可以包括使得主机设备和附件能够彼此识别并验证它们本身,以便提供关于它们的部件和/或接口的信息并且协商它们将互相支持的功能性。通用消息集还可以包括主机设备可用来验证所支持的附件的身份和能力(或反之亦然)的验证消息,并且如果验证不成功的话可能阻止附件(或主机设备)调用某些(或所有)任选消息。
任选消息集可以包括与给定附件可能或可能不支持的各种功能性相关的消息。例如,任选消息集可以包括:允许附件识别主机设备的待调用的功能的简单远程消息,可用于获得与在附件上复制主机设备的全部或部分用户接口相关的信息(从而支持更高级的远程控制)的远程用户接口消息,允许用户通过操作主机设备来控制附件中的无线电调谐器和/或通过操作附件来控制主机设备中的无线电调谐器的消息,促进数据对象在主机设备与附件之间的传输的消息,等等。可以在附件协议中定义任选消息的任意组合,并且不要求给定的附件或主机设备支持所有(或甚至任一条)任选消息。
图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相关联的为6的参数ID可以表示该相关联值指示以像素为单位的屏幕尺寸,而与“设定音频采样率”消息相关联的为6的参数ID则表示该相关联值指示每秒样本数量。
如以上所指出,参数值的长度可以取决于参数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消息来改变其名称、用户偏好设置或部件或接口的状态,但不允许附件改变其可发送或接收的消息的列表、或添加或移除部件或接口。(不允许使用IDUpdate的改变可以通过发送IDCancel和重新识别做出。)
如以上所指出,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消息作出响应的事实推断出附件支持这些消息。在一些实施例中,如果附件不打算发送除通用消息之外的任何消息,那么附件可以发送具有空数组(例如,包含一个具有空值的条目的数组)的消息列表参数。
在一些实施例中,识别待发送的消息和待接收的消息的信息可以在单个列表中呈现或分为多个列表。在一些实施例中,每个消息代码仅在一个方向上有效,并且呈现单个列表不会导致歧义。在一些实施例中,一些消息代码可以在两个方向上有效,并且附件可以例如通过向消息代码附加方向指示符或通过提供待发送和接收的消息的单独列表(例如,如图5中所示)来指示它是否打算发送和/或接收特定消息。
可发送和/或接收的消息的列表可能是过度包括的。即,附件实际上不需要发送包括在消息发送列表中的每一条消息或接收包括在消息接收列表中的每一条消息。在一些实施例中,消息列表(如果被主机接受的话)使附件与以下操作协定绑定:(1)附件同意不向主机发送不在消息发送列表上的任何消息(除了协议假定为可发送的任何消息,诸如图4中的识别消息),并且主机可以忽略附件发送的任何此类消息。(2)附件不期望接收不在消息接收列表上的任何消息。(3)附件对消息接收列表上的任何消息的接收将不会导致附件向主机发送错误消息。
第三组参数514包括与附件与特定主机设备上可能或可能未安装的特定应用程序进行互操作相关的参数。例如,IDInfo消息可以包括用于指定附件被设计成与其进行互操作的应用程序的标识符的优选App参数。标识符可以是字符串,诸如指派给应用程序的名称或唯一代码(例如,在应用程序通过其分发的应用程序商店处),并且主机设备可以使用标识符来确定该应用程序是否已安装。一些附件可以选择不指定特定应用程序;因此,IDInfo消息可以包括优选App参数的零个或一个实例。
此外或相反,IDInfo消息可以包括用于提供关于附件支持特定应用程序专用协议的能力的信息的App协议参数。(应用程序专用协议允许使用附件协议作为导管在附件与应用程序之间传递消息,其中附件协议与此类消息的内容无关。)
在该实例中,可以使用用于参数值的结构化“字段”类型来提供应用程序专用协议信息。在一些实施例中,字段类型参数值可以实现为一组固定长度字段,其中对于特定参数而言每个字段的字段定义和长度是固定的。可替代地,字段类型参数值可以非常类似于图3中所示的参数列表那样使用键/值对来实施,但是在单个参数内而不是作为单独参数。在一些实施例中,要求包括针对字段类型参数进行定义的所有键/值对,以便有利于解析。字段类型参数是否可以嵌套在字段类型参数内是一个设计选择问题。
用于App协议参数的字段可以包括:例如包含所支持的应用程序专用协议的名称的固定长度字符串;提供用于应用程序专用协议的识别号的固定长度整数;和/或根据主机设备是否具有能够使用已识别协议的安装应用程序来识别待采取的动作的字节代码(例如,如果未发现这种应用程序,那么可以指示主机在应用程序商店中搜索合适的应用程序、询问用户是否应当进行搜索或什么都不做)。在一些情况下,附件可能不支持应用程序专用协议,并且在一些情况下,附件可以支持多于一种应用程序专用协议;因此,IDInfo消息可以包括任意数量(零或多个)的App协议参数实例。
第四组参数516包括与附件在操作中对基于语言和/或区域差异的支持相关的参数。例如,键盘附件能够支持基于语言和/或区域的不同字符设定;显示信息的附件也能够使用不同语言或使用同一种语言的不同区域性变体(例如,在英语的情况下,英国拼写与美国拼写)来呈现信息。能够支持不同语言和/或区域的附件可以使用当前语言和/或当前区域参数来识别当前所选的语言和/或区域,例如,作为包含该语言或区域的公认名称的字符串。因为在给定时间仅一种语言和一个区域可以是当前的,所以IDInfo消息中可以包括任一参数的不超过一个实例。
如果附件支持多种语言和/或多个区域,那么附件可以使用所支持语言和所支持区域的参数来提供所支持语言和/或区域的列表。可以包括每个参数的任意数量的实例,其中参数值是包含某一语言或区域的公认名称的字符串。在一些实施例中,假定支持当前语言和区域,并且不需要同时使用“当前”和“所支持”参数来提供。
第五组参数518包括与附件电力和电力管理相关的参数。例如,根据附件是否和如何向主机提供电力,充电器类型参数可以指示一组枚举电力类型中的一种。类型可以包括:例如“通过”,用于指示附件从外部源汲取电力并将电力中的至少一些传递给主机;“自供电”,用于指示附件从内部源(例如,其本身的电池、太阳能电池板等)汲取电力并可将电力中的至少一些提供给主机;以及“无”,用于指示附件不向主机提供电力。在一些实施例中,要求IDInfo命令包括充电器类型参数,其中枚举选项中的一个作为一个值。
在一些实施例中,可以包括最大电流供应参数,以便指定附件可向主机供应的最大电流量。可以将电流指定例如为表示最大电流(以毫安(mA)为单位)的固定长度整数(例如,8位)。在一些实施例中,如果IDInfo命令指示充电器类型为“无”,那么可以省略最大电流供应参数。此外,一些实施例可以指定主机将假定的用于每种充电器类型的最大电流供应参数的默认值,并且如果默认值对于附件是可接受的话,那么IDInfo命令可以省略最大电流供应参数。
在一些实施例中,可以包括最大电流消耗参数,以便指定附件将从主机汲取的最大电流量。再次,可以将电流指定例如为表示最大电流(以mA为单位)的固定长度整数(例如,8位)。一些实施例可以指定主机将假定的用于最大电流消耗参数的默认值,并且如果该默认值对于附件是可接受的话,那么IDInfo命令可以省略最大电流消耗参数。实际上不要求附件在任何时间都从主机汲取指定的最大电流(或实际上任何电流)。
第六组参数520包括与附件支持的每个通信接口相关的参数。预期的是,每个附件都应当支持至少一个通信接口,但附件可以具有多个接口,并且根据具体实施,一些附件可以使用多个接口来与同一个主机设备通信。参数520允许附件提供用于每个可用接口的描述符。在任何给定情况下,IDInfo命令可以包括该组中的至少一个参数的至少一个实例,并且根据可用的接口,可以包括多个参数和/或一个参数的多个实例。
对于每个接口,字段可以包括适当的描述信息。例如,对于任何接口,字段可以包括待与该接口相关联的数字标识符、该接口的名称以及用于指示该接口是否支持附件协议通信的位。特定接口的描述符还可以指示特定于该类型接口的其它信息。例如,USB主机设置描述符可以包括关于附件的USB主机接口所支持的一个或多个音频采样率的信息。蓝牙设置描述符可以指示所支持的蓝牙版本或风格(例如,经典的、低能的、北欧的)、蓝牙接口的MAC地址、将使用的配对方法(例如,PIN代码或安全样本配对)以及PIN代码(如果需要的话)。更一般地,用于特定接口的描述符可以包括(例如,作为子字段)主机将用来在该接口上建立连接的任何信息。
第七组参数522包括与附件的各种用户输入/输出部件相关的描述符。例如,音频部件描述符可以提供关于音频输入/输出设备(诸如扬声器、扬声器系统、麦克风、耳机接口或头戴式耳机)的信息。视频部件描述符可以提供关于显示设备(诸如视频屏幕)的信息。输入部件描述符可以提供关于用户输入设备(诸如键盘、小键盘、操纵杆、轨迹球、触控板、触摸屏等)的信息。束描述符可以将部件组定义为附件内的逻辑子系统。
图6是示出根据本发明的实施例的音频部件描述符的子字段的表600。对于每个子字段(列602),指出了类型(列604)和另外的信息(列606)。部件ID可以是由附件指派的整数;可以要求每个部件都具有唯一标识符。部件名称可以是用于将人类可读的名称与部件相关联的字符串(例如,“前置扬声器”、“后置扬声器”、“蓝牙头戴式耳机”),并且不同部件可以具有相同的名称。
部件种类可以是多个预定义种类类型中的一种,并且可以向主机设备指示音频部件的某些方面或特性。例如,用于音频部件的所定义的种类类型的集可以包括:台式计算机扬声器(小环境、单个用户);家庭影院(多扬声器、大环境);麦克风(能够提供由声音生成的音频信号的部件);器械(能够提供音频输入的音乐器械或声音合成器);头戴式耳机(供个人使用的扬声器加麦克风);音频-视频装置(能够供应或接收与音频时间相关的视频的部件,诸如摄像机或TV);电话(带有独立于主机的其自身的到电话服务的连接的头戴式耳机);转换器(能够改变音频信号的格式的部件);录音机(具有独立于主机捕获和记录声音的能力的部件);以及音频路由器(能够选择性地将音频递送到在附件内或连接至附件的不同端点或从这些端点选择性地递送音频的部件)。除了或代替这些实例,可以定义其它种类类型,例如可以将车辆中的前置扬声器和后置扬声器区分开。
连接类型可以指示主机可以使用哪些通信信道或接口来向部件发送音频和/或从部件接收音频。连接类型的实例可以包括,例如模拟(线性输入/线性输出);USB主机模式(其中附件起到USB主机的作用);USB设备模式(其中附件起到USB设备的作用)。可以例如通过参考指派给参数组520中的一个接口描述符的接口标识符来识别连接类型。在一些情况下,在每个音频部件描述符中提供单个连接类型。一些实施例允许针对同一个音频部件识别多种连接类型,并且主机设备可以基于当前操作状况(例如,哪些通道当前是开放的、正在如何使用各信道等)动态地选择音频路由路径。
采样率子字段可以用于指示附件支持的一个或多个采样率。该信息可以是有用的,例如如果主机设备确定用于提供或接收音频的采样率。主机可以将其选择限制于附件所支持的采样率,从而消除对附件管理采样率转换的需要。
图7是示出根据本发明的实施例的视频部件描述符的子字段的表700。对于每个子字段(列702),指出了类型(列704)和另外的信息(列706)。部件ID可以是由附件指派的整数;可以要求每个部件都具有唯一标识符。部件名称可以是用于将人类可读的名称与部件相关联的字符串(例如,“TV”、“前控制台”、“后控制台”),并且不同部件可以具有相同的名称。部件名称的再利用可能是有帮助的,例如如果用户将在逻辑上将两个部件认为是单个设备(例如,“TV”通常同时具有显示器和扬声器)。
部件种类可以是多个预定义种类类型中的一种,并且可以向主机设备指示视频部件的某些方面或特性。例如,用于视频部件的所定义的种类类型的集可以包括:计算机监视器(与计算机相关联的能够独立于主机设备进行操作的显示器);TV(能够接收电视传输的显示器);便携式显示器(具有适于用户携带的具有小外形因数的显示器);前车辆控制台(在车辆的前座中可见的显示器);后车辆控制台(位于车辆的前座后方并且驾驶员不可见的显示器);相机(能够提供来源视频的设备);摄像机(能够记录视频和音频的设备,带有至少用于回放的小屏幕)。除了或代替这些实例,可以定义其它种类类型。
连接类型可以指示主机可使用哪些通信信道或接口来向指定部件发送视频和/或从指定部件接收视频;该子字段可以类似于音频部件描述符的连接类型子字段。
可以使用另外的子字段来指定显示器的性质。可以在像素和/或物理维度(例如,厘米或英寸)方面指定显示器尺寸。屏幕模式子字段可以用于指示显示器将如何呈现来自主机的图像,例如图像将以插图(例如,较大显示区域内的窗口或其它区域)还是全屏幕的方式呈现。屏幕模式还可以指示其它特性,诸如显示器是以全屏幕(4:3纵横比)模式或宽屏幕(16:9纵横比)模式或两种模式操作。信号格式可以指示由显示器识别的视频信号类型,例如NTSC或PAL。信号质量可以指示显示器是标准的或高清晰度的。同步延迟可以提供关于显示器的视频延迟的信息,以便在视频和时间相关音频正在被递送到不同部件的情况下有利于音频与视频的同步。
图8是示出根据本发明的实施例的输入部件描述符的子字段的表800。对于每个子字段(列802),指出了类型(列804)和另外的信息(列806)。部件ID可以是由附件指派的整数;可以要求每个部件都具有唯一标识符。部件名称可以是用于将人类可读的名称与部件相关联的字符串(例如,“键盘”、“触摸屏”、“转向盘控件”),并且不同部件可以具有相同的名称。如以上所指出,部件名称的再利用可能是有帮助的,例如如果用户将在逻辑上将两个部件认为是单个设备。
部件种类可以是多个预定义种类类型中的一种,并且可以向主机设备指示输入部件的某些方面或特性。例如,用于输入部件的所定义的种类类型的集可以包括:小键盘(10键);键盘(完整字符数字键盘);媒体控件(带有用于播放、暂停、选择媒体资产等的控件的设备);指向设备(鼠标、轨迹球、笔);触控板;触摸屏;多触摸屏(能够基于一个或多个手指的触摸和/或运动来识别手势的触摸屏);软键组(用于一组可编程的按钮);旋钮;以及轮。除了或代替这些实例,可以定义其它种类类型。
对于每个部件种类,可以定义另外的子字段,以提供可帮助主机解释从控件所接收的信号的关于控件的信息。例如,在触摸屏的情况下,另外的信息可以指示触敏表面的分辨率;在带有止动器的旋钮的情况下,另外的信息可以指示止动器的数量。在软键组的情况下,另外的信息可以指示按钮的数量和布置。
连接类型可以指示主机可以使用哪些通信信道或接口来从所指定的部件接收输入信号;该子字段可以类似于音频部件描述符的连接类型子字段。
图9是示出根据本发明的实施例的束描述符的子字段的表900。对于每个子字段(列902),指出了类型(列904)和另外的信息(列906)。束ID可以是由附件指派的整数;可以要求由附件定义的每个束都具有唯一标识符。束名称可以是用于将人类可读的名称与束相关联的字符串(例如,“前座控制台”、“后座控制台”)。
目的子字段可以用于指示与特定束相关联的目的。该“目的”可以表示束打算支持的特定交互类型(例如,媒体回放、媒体记录、电话通信)。在操作中,主机可以使用该目的来选择在特定交互期间将使用的束;以下描述实例。如同用于单独部件的种类代码,目的可以是枚举类型,其中预定义类型对应于对向主机识别可能有用的任何目的。在一些实施例中,除了或代替束描述符,目的子字段可以包括在部件描述符中。
束字段还可以例如通过提供指代指派给每个所包括部件的标识符的一系列部件标识符(例如,如图6至图8中所示)来识别待包括在束中的每个部件。在一些实施例中,每个束还可以包括一个或多个相关联的接口,例如通过包括指派给图5的组520中的一个或多个接口参数的标识符。在一些实施例中,多个接口在每个束中可以优选次序进行指定。当根据与束相关联的目的与附件进行通信时,主机设备可以利用当前在其上建立通信信道的最优选接口。
应当理解,本文所述的消息格式、消息以及参数是例示性的,并且可以进行变型和修改。除了或代替以上所示实例,还可以针对IDInfo命令定义其它参数。例如,附件还可以提供关于其它能力的信息,诸如导航(例如使用GPS等)、环境控件(例如附件的控制照明、恒温器设置等的能力)等。部件和束可以与附件的任一种能力相关联。
在一些实施例中,IDInfo命令可以通过推断指示附件具有某些能力。例如,消息列表参数中的一个或两个可能包括有关向主机设备递送GPS坐标和/或从主机设备接收GPS坐标的消息;由此,主机可以推断出附件能够产生和/或消耗GPS信息。又如,消息发送列表可能包括来自主机设备的请求视频流的消息;由此,主机可以推断出附件能够接收视频流。
可以使用以上所述的结构化字段参数或使用其它技术来提供部件和接口描述符。例如,附件可以提供消息序列,每条消息定义一个部件,而不是在单个IDInfo消息中包括所有部件。(在此类实施例中,附件可以在最后一条定义部件的消息后发送“ID完成”消息,以便主机可以确定何时已接收到所有消息。)附件可以将识别限于所提议用于与主机设备进行互操作的部件,并且基于附件对发送到主机或从主机接收的信号的处理或解释程度而进一步限制识别。例如,如果附件能够将来自它自身的用户输入设备的用户输入信号解释为符合附件协议的消息,那么附件不需要提供关于其输入控件的细节。相似地,如果附件不提议呈现从主机设备流出的视频,那么附件不需要提供关于其可能具有的任何视频显示设备的信息。
可以改变部件描述符的特定结构,并且可以使用任何结构,只要部件识别为主机提供了足够的信息以便将附件的逻辑模型构造为输入和/或输出部件的集(或此类部件的组群或束),其中每个部件(或束)是经由一个或多个接口可访问的。在一些实施例中,可以将同一个附件内的不同部件(或束)与特定目的相关联,这些特定目的可以包括可与附件一起使用的主机的特定功能性。附件协议可以基于存在于至少一些主机设备中的功能性来定义一组已识别目的。如下所述,主机设备可以使用部件识别信息来解释从附件接收到的输入信号和/或将输出信号经由一个或多个可用通信信道路由发送到附件。
本文所述的实施例可以提供用于附件到主机设备的识别并建立主机与附件之间的操作协定的稳健且灵活的技术。在以下意义上可以将识别过程描述为“整体的”:附件递送关于其能力、部件和可用通信接口的足够信息以允许主机设备将附件的逻辑模型构造为部件集(或部件束),每个部件集均与特定功能或目的相关联并且可经由一个或多个特定通信接口访问。这进而可以允许主机设备确定用于在互操作过程中与特定附件交换的信号的最佳路由。就部件和束描述符是在附件固件中进行定义的情况来说,识别和路由优化可以对用户透明地进行管理。
此外,在识别还包括附件期望调用(例如,使用上述消息列表)的功能性的指示的实施例中,主机还可以验证附件是否具有能够支持其提议使用的功能性的部件。这可以进一步有利于平滑和可靠的互操作。
这些技术可以在例如这样的上下文中使用:其中主机能够与具有用以实现宽范围的附件依赖功能性的不同能力的多个不同部件进行互操作。现将描述识别过程的实例和基于识别结果的互操作的实例。
图10是根据本发明的实施例的可在主机设备(例如,图1的主机设备100或图2的主机设备202)中实现的用于协商识别的过程1000的流程图。
当主机检测到与附件的连接时,过程1000可以在框1002处开始。例如,附件可以连接至主机设备上的连接器,如图1中所示,并且所连接的附件可以将该连接器上的一个或多个引脚牵拉到特定电压,从而指示附件的存在。附件还可以请求经由无线协议(例如,蓝牙或Wi-Fi)的连接,并且主机可以建立可用于交换附件协议消息的连接来作出响应。
在框1004处,主机可以例如通过发送如上所述的IDStart消息来请求附件识别其本身。主机还可以在框1006处启动验证过程以验证附件的真实性。在一些实施例中,验证过程可以包括:请求并从附件接收数字证书,确认数字证书的有效性(例如,通过将其与已知良好和/或已知不良的证书的列表进行比较),以及向附件发出随机数或质疑以便附件使用私有密钥来进行数字签名并返回;所签名的随机数可以由主机设备使用与数字证书相关联的公共密匙进行验证。可以例如使用附件协议的通用消息集中的消息来实现验证请求和响应。(就识别消息而言,可以假定所有附件和所有主机都能够发送和接收验证消息,并且主机可以将附件未能对验证消息作出适当响应或根本不响应解释为验证过程失败。)在一些实施例中,验证过程可以在后台运行,而过程1000继续进行识别。在其它实施例中,过程1000可以在框1006处等待验证完成,并且只有在验证成功时才进一步进行。
在框1008处,过程1000可以等待来自附件的IDInfo消息。在一些实施例中,主机不会无限期地等待。例如,在框1010处,过程1000可以确定自从发送IDStart消息是否已经过超时周期。该周期可以是例如100毫秒、2秒或任何其它所需时间周期。如果超时周期已过去,那么在框1012处,过程1000可以退出,同时向附件发送如以上所述的IDTimeout消息。为了在超时之后重新尝试识别,附件可重新建立连接,从而在框1002处重新开始过程1000。根据具体实施,重新建立连接可能或可能不要求设备的物理断开和重新连接或其它用户干预(例如按压附件上的重置按钮)。在一些实施例中,主机不具有超时周期,并且过程1000可以一直等待IDInfo消息,只要附件保持连接。
如果在框1010处超时周期未过去,那么在框1014处过程1000可以确定是否已接收到完整的IDInfo消息。在一些实施例中,单个IDInfo消息可以分割成多个分组来传输到主机,并且可能的是,在某个时刻仅已接收IDInfo消息的一部分。如果消息不是完整的,那么过程1000可以继续等待(框1008)直到接收到完整的消息或超时发生。(在一些实施例中,部分IDInfo消息的接收可以重置超时间隔,以允许附件具有更多的时间来使消息完整。)在一些实施例中,附件可以发送多个IDInfo消息,每个包含识别信息的一部分,并且框1014可以包括检测指示附件已完成发送IDInfo消息的不同消息(例如,“ID完成”消息)。
一旦已接收到完整的IDInfo消息,那么在框1016处主机设备可以解析所接收的消息并且例如通过应用各种决策规则来确定接受还是拒绝该消息。例如,在框1018处,主机设备可以读取一个或多个所提议的有效消息列表(例如,图5的消息发送列表和消息接收列表参数),并且确定主机是否能够接收所有可发送消息和发送所有可接收消息。如果主机不具有这种能力,那么可以拒绝识别。
类似地,在框1020处,主机可以至少部分地基于由附件提供的信息来执行其它兼容性测试。例如,可以使用制造商和型号信息和/或部件描述符来确定附件的某些能力,诸如它是否能够提供GPS坐标或接收视频。如果附件在其消息发送列表中包括“发送GPS坐标”消息但不知其是否能够提供GPS坐标,那么兼容性测试可能会失败。类似地,如果附件在其消息接收列表中包括“视频请求”消息但不知其是否能够接收视频信号,那么另一种兼容性测试也可能会失败。又如,如果消息列表指示附件可以请求视频或音频流,但附件未识别到具有足以接收该流的带宽的接口,那么另一种兼容性测试可能会失败。在一些实施例中,测试可以基于是否已知附件不能够做其消息列表暗示其能够做的某些事情,而不是基于已知的能力。
在一些实施例中,并非依赖于关于特定附件的能力(或其不具有的能力)的明确信息,而是主机设备可以从消息列表推断出附件具有某些能力。例如,如果附件指示它可以发送“视频请求”消息,那么主机可以推断出附件能够接收视频信号。在一些实施例中,任选消息集可以包括在协商待递送到附件的视频信号格式并控制(例如,启动和停止)视频供给时所需要的一组消息,并且主机可以要求附件支持整组这些消息或不支持这些消息中的任何一个。
在一些实施例中,可能已知特定主机设备与特定附件型号不兼容,并且这种已知的不兼容性也可以是兼容性测试失败的依据。
还可以定义兼容性测试来强制执行关于设备行为的用户期望。例如,如果用户可以与特定附件进行交互以定义存储在主机设备上的媒体资产的播放列表(例如,通过调用智能播放列表功能性或操作由附件提供用于从主机的媒体资产数据库中选择资产的远程接口),用户可以合理地期望能够与该附件进行交互以播放这种播放列表。因此,如果附件提议的有效消息列表包括与定义附件上的播放列表相关的消息但不包括与播放这种播放列表相关的消息,那么测试可被定义为是失败的。
在框1024处,主机可以确定在框1006处开始的验证过程是否成功。例如,成功可能要求附件呈现已知良好的证书(或不在已知不良列表上的证书)并且成功签名随机数。成功还可能要求特定证书对于特定附件有效,例如,基于附件型号和/或附件已包括在所提议有效消息列表中的消息。也可以应用其它条件来确定验证是否成功。
如果通过了框1018、1020和1024处的所有测试,那么在框1026处过程1000可以接受识别,例如发送如上所述的IDAccept消息。过程1000可以在此退出,同时识别完成。应当理解,主机和附件可以保持连接并且可以开始根据所协商的操作协定,例如使用主机在框1026处接受的提议中的任何或所有部件、接口和有效消息来进行互操作。这可以包括如上所述的消息发送和/或消息接收列表中的消息,以及默认情况下被视为有效消息的任何消息(例如,如上所述的通用消息)。
如果框1018、1020或1024处的任一测试失败,那么在框1028处主机可以例如通过发送IDReject消息来拒绝识别。在一些实施例中,IDReject消息可以包括指示识别为何被拒绝的原因代码。例如,可以指派不同的原因代码来指示特定的失败状况,诸如验证失败、主机无能力接收消息发送列表上的至少一条消息、主机无能力发送消息接收列表上的至少一条消息、一条或多条消息与所识别或所推断出的附件特性的不兼容性、消息集不足以支持相关联的功能性等。在一些实施例中,在特定消息或缺失特定部件描述符导致拒绝的情况下,原因代码还可以包括识别有问题的消息或缺失的部件描述符的信息。此类消息可以有利于附件的重试尝试,但并不要求这类消息。
在发送IDReject消息之后,过程1000可以返回至框1008,以允许附件利用新IDInfo消息来重试识别。在一些实施例中,如果识别由于验证失败而被拒绝,那么过程1000可以退出而不是允许附件重试。
在所示实例中,过程1000不限制附件重试的数量。在一些实施例中,过程1000可以通过以下方式强加限制:例如通过每次执行框1028时使重试计数器递增并且如果计数器达到上限(例如,3次重试)则退出而不是返回至框1008。在一些实施例中,过程1000可以通过实施“全局超时”来限制重试,该“全局超时”限制在过程1000发送IDStart消息的第一时间与所提议识别被接受的时间之间经过的时间;如果在全局超时周期结束时还没有建立操作协定,那么过程1000可以退出。如果过程1000由于过量重试(包括全局超时期满和/或超过重试数量限制)而退出,那么附件可以仍然继续尝试识别,但在框1012处可能要求断开连接/重新连接序列。
在一些实施例中,附件可以在过程1000期间的任何时刻处例如通过发送如上所述的IDCancel消息来取消识别过程。如果正在执行过程1000时在主机处接收到取消消息,那么过程1000可以退出。此时,在主机与附件之间的适当位置处不存在操作协定,并且主机可以锁定(例如,通过忽略)与附件的进一步通信。为了重新开始,可能要求附件如上所述断开连接和重新连接,从而在框1002处重新开始过程1000。
如果在过程1000成功完成之后(例如,在框1026之后)接收到取消消息,那么主机可以重新开始过程1000以获得来自附件的新识别信息,例如而不需要断开连接/重新连接序列。在这种情况下,一些实施例可能不要求重新验证(例如,可以省略框1006和1024),只要主机和附件保持连接。
图11是根据本发明的实施例的可在附件(例如图1的附件102或图2的附件204)中实现的识别过程1100的流程图。当附件建立到主机的连接时,过程1100在框1102处开始。例如,附件上的连接器可以与主机上的配对连接器接合(例如,如图1中所示),或附件可以使用无线通信协议来定位主机并且将主机识别为能够经由附件协议进行通信的设备。无论通信信道的细节如何,框1102都可以包括附件提醒主机其存在并且准备好使用附件协议进行通信的操作。
在框1104处,附件可接收来自主机的例如如上所述的IDStart消息。在框1106处,附件可发起与主机的验证过程;该过程可以与在如上所述的过程1000的框1006处发起的过程互补。如同过程1000,框1106处的验证可以在后台与过程1100的其它操作同时执行,或过程1100可在框1106处等待直到验证完成并且仅响应于成功验证来进一步继续进行。
在框1108处,附件可以向主机发送IDInfo消息;该IDInfo消息可以包括附件对有效消息列表的提议及其部件和接口的描述符。在一些实施例中,附件可以具有准备好的IDInfo消息,该消息响应于IDStart消息而自动发送。在一些实施例中,附件可以实时地创建或修改IDInfo消息。例如,如果IDStart消息(或从主机接收到的一些其它初步消息或信号)提供关于特定主机或其能力的信息,那么附件可以基于该信息来修改其一个或多个有效消息列表,例如,以便基于该特定主机的特性移除已知该特定主机不支持的消息,或选择将优化附件的互操作的有效消息。又如,附件可以基于关于其连接至其上的特定主机的信息而包括或省略某些部件或接口描述符。
在框1110处,附件可以接收来自主机对IDInfo消息的响应。在所示实施例中,有效响应为IDAccept和IDReject。如果在框1112处接收到IDReject,那么在框1114处附件可以确定是否重试识别。确定可以基于各种决策标准,诸如附件已经尝试或重试并失败的次数、是否有任何备用选项(下文描述)落下、和/或如果IDReject消息中提供任何原因代码将如何。
如果决策是进行重试,那么在框1116处附件可修改IDInfo消息。在重试时可以实施各种策略来修改IDInfo消息。例如,附件可以具有以优选程度递减的顺序布置的用于识别的一个或多个准备好的“备用”选项。第一选项(框1108处初始通过时发送)可提供最佳的操作体验;后续备用选项可以逐渐偏离这个最佳选项,例如,通过移除或减少功能性或通过利用可提供类似(如果不相同)功能性的较低效的集来替换更高效的有效消息集。在框1116处,附件可以选择备用选项序列中的下一个IDInfo消息。
在IDReject消息包括原因代码(例如,如上所述)的实施例中,附件可以在修改IDInfo消息和/或确定是否重试时使用该信息。例如,如果原因代码将消息发送或消息接收列表上的特定消息识别为拒绝的原因,那么附件可以移除引起问题的消息,假定仍然可以提供可接受的功能性(并且如果不能提供,那么附件可以在框1114处确定不进行重试)。或如果原因代码将特定部件或接口(或特定部件或接口的缺失)识别为拒绝的原因,那么附件可修改其部件或接口描述符并重试。
修改后IDInfo消息可以在框1108处发送,并且如果接收到另一个拒绝,那么附件可以在框1114处再次确定是否进行重试。如果在任何时刻附件确定不重试,那么过程1100可以在框1118处发送IDCancel消息并且在框1120处退出。在一些实施例中,不发送IDCancel;如上所述,主机侧识别可以实施超时,并且可以将在超时周期内未收到来自附件的响应解释为取消。在一些实施例中,在退出过程1100之后,附件可以与主机断开连接并且重新连接至主机以便重新开始过程1100并且再次尝试。
如果在框1112处IDInfo命令未被拒绝,那么期望附件在框1122处接收IDAccept。在这种情况下,识别成功完成,并且附件可以在框1124处开始与主机进行互操作。尽管过程1100可退出,但主机和附件可以保持连接并且可以开始根据所协商的操作协定,例如使用主机在框1122处接受的提议中的任何或所有部件、接口和有效消息来进行互操作。这可以包括如上所述的消息发送和/或消息接收列表中的消息,以及默认情况下被视为有效消息的任何消息(例如,如上所述的通用消息)。
在过程1100中,如果附件响应于IDInfo消息既不接收IDAccept也不接收IDReject,那么这被视为错误。(在一些实施例中,这种情况也可能发生在主机在附件发送IDInfo之前或之后发送IDTimeout的情况下。)在这种情况下,可以在框1126处重置连接,并且过程1100可以返回至框1102以尝试重新建立连接并且从最初重新开始识别过程。在一些实施例中,重置连接可能要求附件与主机的物理断开或其它用户干预(例如,按压附件上的重置按钮)。例如,如果主机在附件确定的超时周期内根本不响应,或如果响应不是IDAccept或IDReject,那么可以到达框1126。
应当理解,图10和图11的识别过程是例示性的并且可以进行变型和修改。可并行执行按序列描述的步骤,可改变步骤的次序,且可修改、组合、添加或省略步骤。例如,如果需要,验证过程可以在任何时间(包括主机向附件发送IDStart之前或主机接收IDInfo之后)开始或全部省略。主机用于确定接受或拒绝特定识别提议的测试可以任何顺序执行,并且可以使用任何数量的测试和任意测试组合。在一些情况下,测试结果可以取决于IDInfo消息和验证信息两者的内容;例如,可以基于由附件呈现的特定数字证书来限制发送或接收某些消息或使用某些接口的能力。
在识别失败(例如,超时发生或附件取消)的情况下,根据具体实施,附件或主机设备(或两者)可以提醒用户。此类提醒可以采取以下形式:屏幕上通知、指示灯点亮、声音等。用户随后可采取适当的动作来解决故障,诸如使附件断开连接并重新连接(例如,使连接器脱离接合并重新接合、按压重置按钮等)。
如上所述,识别操作(例如,过程1000和1100)的成功完成使主机和附件置于如下状态:其中它们能够交换消息并且已经商定规定每个设备将从另一个设备接受哪些消息以及哪些接口可用于彼此通信的操作协定。
在一些实施例中,如上所指出,附件可以在识别(例如,过程1000和1100)成功完成之后发送IDUpdate消息。IDUpdate消息可以包括用于先前使用IDInfo消息所指定的一个或多个参数的新值。如上所述,IDUpdate消息可以仅限于更新IDInfo消息中的参数的子集(例如,改变关于先前识别的接口或部件的信息)。在IDUpdate消息不影响主机与附件之间的现有操作协定的情况下,主机可以只更新相关信息并且使用更新后信息来继续与附件进行交互。
例如,在一些实施例中,附件可以在如上所述的IDInfo消息中提供其当前语言和/或区域设置。在识别之后,主机可以利用指示可能不同于当前设置的推荐语言和/或区域设置的消息来回复。(推荐可以基于主机设备本身的设置、基于附件的当前设置和所支持的语言/区域、基于诸如主机设备或附件的当前位置的其它信息等。)如果附件接受推荐,那么附件可以发送指示新当前语言和/或区域设置的IDUpdate消息。又如,用户可以通过直接与附件交互来改变附件上的语言和/或区域设置,并且附件可以发送IDUpdate消息来将这种改变通知给主机。
在一些实施例中,可以使用IDUpdate消息来发送对附件的接口和设置的更新。例如,附件可以决定激活先前识别为不可用于附件协议通信的接口,或停用先前识别为可用的端口。当附件使用IDUpdate激活接口时,主机可以将先前协商的操作协定应用于新激活的接口。在一些实施例中,附件无法使用IDUpdate消息来添加未使用IDInfo识别的接口,但可以使用IDUpdate来改变与使用IDInfo识别的任何端口相关的设置。
如果附件确定需要对操作协定做出改变,那么附件可以发送IDCancel消息而不是IDUpdate,随后将如上所述进行重新识别。如果主机确定需要对操作协定做出改变(例如,响应于IDUpdate或任何其它事件或情况),那么主机可以发送新的IDStart消息,从而重新调用识别过程。
一旦识别完成,附件和主机可以根据商定的条款进行互操作。例如,主机可以在确定如何处理输入信号和/或如何路由发送输出信号时使用从附件获得的信息。
在一些实施例中,附件可以同时连接在多个接口上并且可以使不同接口在不同时间连接或断开。可能有用的是,主机设备确定一个附件是否连接在多个接口上或不同附件是否连接在不同接口上。
图12是根据本发明的实施例的用于主机设备(例如,图1的主机设备100)的可管理到一个或多个附件的多个连接的过程1200的流程图。在框1202处,主机设备可以检测第一接口上的到附件的连接。在框1204处,附件可以使用第一接口向主机识别其本身。例如,可以使用上述的过程1000和1100。识别可以包括关于附件可在其上连接至主机的所有接口的信息,即使在任何其它接口上尚未建立连接。此时,主机设备连接至一个“已知”附件。
在框1206处,当已知附件在第一接口上保持连接时,主机设备可能检测到“未知”附件的第二连接(例如,在第二接口上)。在框1208处,主机设备可以确定未知附件是该已知附件还是不同的附件。例如,在一些实施例中,主机可以使用在框1204处从已知附件接收到的附件信息。如上所述,附件识别可以包括提供关于已知附件能够用于与主机设备进行通信的每个接口的信息。该信息可以包括接口的名称和/或其它标识符。如果第二连接提供与已知附件先前所提供的相同的名称和/或其它标识符,那么主机设备可以检测到这种匹配并将“未知”附件识别为与已知附件相同。
另选地,在一些实施例中,已知附件可以经由第一连接发送附件协议消息来指示它正在建立第二连接。例如,附件协议可以定义ActivateInterface消息,该消息带有包括正经由其建立新连接的接口的标识符或名称的参数。(该标识符已经在框1204处的识别期间提供给主机)。附件可以在建立第二连接之前或之后的规定时间间隔内经由第一连接发送ActivateInterface消息。如果主机在第二连接和将同一个接口识别为第二连接的ActivateInterface消息的约定时间间隔内检测到两者,那么主机可以确定第二连接是到已知附件的另一个连接。如果检测到第二连接而在约定时间间隔内未接收到ActivateInterface消息,那么主机可以确定第二连接是到不同附件的连接。也可以使用其它技术。
如果主机确定第二连接上的附件是已知附件,那么在框1210处主机可以应用来自框1204的附件识别信息,并且使用第一连接和第二连接的任意组合来与附件进行通信。例如,如下所述,信息可以基于与不同连接相关联的信息类型和/或目的而选择性地路由发送到一个连接或另一个连接。
如果在框1208处主机确定第二连接上的附件不是已知附件,那么在框1212处主机可以确定是否已达到同时连接的附件数量的上限。该上限可以建立在主机固件中,并且可以是例如一个附件、两个附件或任何其它数量。特定上限是设计选择问题,并且可能受如下考虑的影响:诸如主机设备的处理能力、各信道的可用通信带宽、与维持到多个附件的连接相关联的电力消耗等。如果已达到上限,那么在框1214处主机设备可以例如通过向第二附件发送指示拒绝的消息或通过断开第二连接而拒绝连接。如果未达到上限,那么在框1216处主机设备可以请求第二附件识别其本身。
可以重复过程1200来允许建立到同一个附件或到多个附件的另外的连接。在一些实施例中,可以存在关于到单个附件的同时连接数量的上限(除关于所连接附件的数量的上限之外),并且如果达到这个限制,主机设备可以拒绝到单个附件的另外的连接。在一些实施例中,只要至少一个到附件的连接保持连接,那么附件(或主机)可以动态地发起或终止连接(包括第一连接),而不要求附件进行重新识别;只有当不存在到附件的连接的时间点发生时,才要求附件进行重新识别。
不要求每个连接都支持附件协议。在一些实施例中,第一连接应当支持附件协议,以便使用上述过程来提供整体识别。然而,后续连接不需要使用附件协议。因此,例如,可以使用串行端口(例如,UART)来建立第一连接,并且在识别期间,附件可以指示其具有蓝牙接口。然后,可以使用蓝牙接口建立第二连接。主机可以确定第二连接是到同一个附件(例如,如上所述)的,并且可以使用蓝牙连接向附件传达蓝牙兼容信息(例如,蓝牙音频)。同时,主机可以继续使用附件协议经由第一连接进行通信。
在一些实施例中,主机可以利用其具有到同一个附件的两个或更多个连接的事实,例如,通过选择用于特定通信类型的最佳接口。例如,主机可以使用UART连接来传达短控制消息,使用蓝牙连接来传达语音数据(例如,电话呼叫),并且使用USB连接来传达音乐或其它高质量音频数据(这可能得益于USB与蓝牙相比更高的带宽)。
相似地,主机可以实施路由规则,在这些规则中偏好特定连接接口用于特定类型的信息传输。例如,对于音频数据,可能优选高带宽,并且可以将连接接口从高带宽到低带宽的优选顺序进行“排名”(例如,按照这种顺序,为USB、Wi-Fi、蓝牙)。对于短消息(例如,附件协议消息),可能优选低带宽连接(例如,UART优于USB)。当主机设备开始向附件发送特定类型的数据时,主机设备可以选择对于该类型数据而言当前连接至附件的最优选的连接接口。另外,如果主机正在使用的连接接口断开,那么主机可将信息传输重新引导至当前连接的下一个最优选连接接口。可以使得路由选择和重新路由对用户透明;主机可以基于当前状况(例如,哪个或哪些连接是可用的和/或正在传输什么类型的信息)而自动选择路由行为。
图13是根据本发明的实施例的可由主机设备(例如,图1的主机设备100)用来处理从附件(例如,图1的附件102)接收到的输入信号的过程1300的流程图。过程1300可以例如在以上所述的识别过程1000和1100成功完成之后的任何时间发生。
在框1302处,主机设备接收来自附件的输入信号。可以经由附件当前在其上连接的任何通信信道来接收该信号。(可以使用单独的过程(例如,上述过程1200)来处理请求连接新信道的信号。)在框1304处,主机设备可以确定附件内的哪个部件(或部件束或部件组)是输入信号源。例如,主机可以确定是哪个接口递送了输入信号,随后将与该接口相关联的部件或束识别为源(例如,基于上述描述符)。又如,输入信号本身可以包括源部件或束的部件ID或束ID;因此,可以区分开附件内的不同源,即使它们使用同一个通信信道或接口。
在框1306处,主机设备可以基于输入信号和源来确定响应。在框1308处,主机设备可以执行响应。因此,主机设备可以根据信号源做出不同的响应。
以例示方式,考虑图1的系统。附件102具有可向主机100提供输入的若干不同部件。例如,后控制台控件128可以包括用于媒体资产的启动、暂停、重新开始或停止回放;调节后置扬声器116的音量;浏览媒体资产集合(例如,存储在主机设备100的数据库中的资产);等等的按钮或其它控件。转向盘控件130还可以包括与通过前置扬声器114播放媒体资产相关的按钮或其它控件,并且前控制台控件122可以包括与播放媒体资产、进行电话呼叫以及进行其它操作相关的控件。
假设在特定时间,主机设备100正在向后置扬声器116流送音频内容。主机设备100可以接收源自后控制台控件128的指示播放/暂停按钮事件的信号作为输入信号。基于源,主机设备100可以确定意图在于切换正被递送到后置扬声器116的音频内容的播放/暂停状态。相似地,主机设备100可以接收源自转向盘控件130的指示播放/暂停按钮事件的信号作为输入信号。主机设备100可以基于该信号来确定将采取的不同动作。例如,主机设备100可以将该信号解释为用于开始向前置扬声器114流送相同音频内容的请求,并且将源自转向盘控件130的指示播放/暂停按钮事件的后续输入信号解释为用于停止向前置扬声器114流送音频内容的请求。这些操作可以在不影响至后置扬声器116的流送的情况下执行。
又如,主机设备100可以根据特定输入信号的源而执行相同动作的修改后版本。例如,如果输入信号是从转向盘控件130或前控制台控件122接收的,那么主机设备100可以假定驾驶员正在操作这些控件并且驾驶员没有正在看主机设备102的显示器104。因此,主机设备100可以保持其显示器104关闭,即使所考虑的操作通常将涉及打开显示器。如果输入信号是从后控制台控件128接收的,那么这种假定可能不适用,并且主机设备100可以打开其显示器。
主机设备100还可以使用附件信息来管理由除附件输入之外的事件驱动的交互(或正在进行的交互的改变)。图14是根据本发明的实施例的可由主机设备(例如,图1的主机设备100)用来与附件(例如,图1的附件102)进行交互的过程1400的流程图。类似的过程1300,过程1400可以例如在以上所述的识别过程1000和1100成功完成之后的任何时间发生。
在框1402处,主机设备可以检测到触发与附件的交互(或正在进行的交互的改变)的事件。例如,附件可能已请求当特定事件(诸如主机设备的位置或运动改变、主机设备周围的环境照明改变、来电呼叫或接收到电子邮件或文本消息等)发生时得到通知。
在框1404处,主机设备可以选择附件的应当与其进行交互的特定部件(或如上所述的部件束)。在一些实施例中,该选择是基于编程到主机设备中的路由规则,如应用于关于主机所连接的特定附件的部件(或束)的信息。路由规则可以将特定事件或事件类别与特定目的和/或部件种类(例如,以上参照图6至图8所述的目的和部件种类)相关联。
例如,如果附件已识别到与电话通信的目的相关联的部件(或束),那么主机设备可以与同电话呼叫有关的那个部件(或束)进行交互。因此,如果框1402处的事件对应于检测到来电,那么主机设备可以提醒附件的电话通信部件。又如,如果框1402处的事件与流媒体相关(例如,到达流结束或主机与流的源脱离接触),那么主机设备可以将该事件的通知提供给附件的与媒体内容回放相关联的部件(或束)。
在框1406处,主机设备可以使用适当接口生成向在框1404处所选的部件(或束)的输出,该接口可以是与先前提供给主机设备的附件识别信息(例如,上述描述符)中的部件或束相关联的接口。接口选择可以基于以下信息:关于当前所连接的接口(这可以例如通过实施上述过程1200得知)、与由附件识别的特定部件(或束)相关联的优选接口、和/或与由主机设备识别的特定目的相关联的优选接口。因此,主机可以经由适合于信息的目的或期望用途的接口来向附件或附件的特定部件递送信息。
虽然已相对于特定实施例描述了本发明,但是本领域的技术人员应当认识到,许多修改都是可以的,并且参照一个实施例进行描述的特征可应用于其它实施例。在一些实施例中,并不是可连接至主机的每个附件都需要识别其本身;成功的识别可以是使用附件协议的任何进一步通信的条件,但可以支持附件协议之外的其它(受限的)功能性。例如,充电器可能能够向主机设备提供电力而不需要发送任何识别消息。又如,主机设备可以具有不实施附件协议的端口(例如,模拟音频输出端口,诸如耳机接口),并且对于此类端口可能不要求识别。
在一些实施例中,如果所提议的识别被拒绝,那么不要求选择重试的附件重新发送其所有参数(除非附件取消该过程或断开连接)。可以要求附件重新发送完整的消息列表而不是对先前列表的修正,以及附件确定应当改变的任何其它参数。要求附件呈现单个完整的消息列表(或两个单独的列表,一个用于所有发送的消息并且一个用于所有接收的消息)可以有利于主机设备对修订后提议的考虑,并且可以比实施一系列指令来从先前呈现的列表中移除单独消息和/或向先前呈现的列表添加单独消息更为简单。
在一些实施例中,当识别正在进行时,可以阻止附件发送与识别不相关的任何消息。例如,主机可以忽略可能接收到的任何此类消息。在其它实施例中,主机在识别过程期间可以暂时允许至少一些不相关的消息(例如,通过接收并根据它们做出动作),并且如果过程以失败告终或如果这些消息不在所协商的操作协定范围内,那么在识别之后开始阻止或忽略消息。同样,在一些实施例中,附件可以选择忽略或处理在识别过程期间可能接收到的与识别不相关的消息。
另外,虽然以上描述是参考附件向主机设备识别自身进行描述的,但是了解本教导内容的本领域技术人员将认识到,这些角色可以颠倒。可以实施类似的消息和过程以允许主机向附件整体识别自身。还可以实施双向识别,例如其中一个设备呈现关于其本身的信息并且另一个设备利用其本身的信息来响应。在任何特定的具体实施中,对待交换的可接受消息集的协商可以发生在任一方向上(例如,如上所述,附件提议/主机决定,或在相反方向上,其中主机提议并且附件决定)。
可使用专用部件和/或可编程处理器和/或其它可编程设备的任意组合来实现本发明的实施例。本文所述的各种过程可以任何组合方式在相同处理器或不同处理器上实现。在部件被描述为被配置为执行某些操作的情况下,可例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作或它们的任何组合,来实现此类配置。尽管上述实施例可引用具体硬件和软件部件,但本领域的技术人员将会知道,也可以使用硬件和/或软件部件的不同组合,并且被描述为在硬件中实现的特定操作也可能在软件中实现,或反之亦然。
可以在各种计算机可读存储介质上编码并存储结合本发明各特征的计算机程序;合适的介质包括磁盘或磁带、光学存储介质诸如光盘(CD)或DVD(数字多功能盘)、闪存存储器,以及其它非暂态介质。(应当理解,数据的“存储”不同于使用暂时性介质(诸如载波)的数据传播。)可将用程序代码编码的计算机可读介质与兼容的电子设备封装在一起,或者所述程序代码可独立于电子设备提供(例如,经由互联网下载或作为单独封装的计算机可读存储介质)。
因此,尽管已相对于具体实施例描述了本发明,但应当理解,本发明意在覆盖以下权利要求范围之内的所有修改和等价形式。

Claims (23)

1.一种向主机设备识别附件设备的方法,所述方法包括:
由所述附件与所述主机设备建立通信信道,其中所述通信信道是使用第一通信接口建立的;以及
由所述附件经由所述通信信道向所述主机发送识别信息,其中所述识别信息包括所述附件能够用来与所述主机进行通信的至少一个其它通信接口的接口描述符。
2.根据权利要求1所述的方法,其中所述识别信息还包括多个部件中的每一个的部件描述符,所述多个部件包括音频输出部件、视频输出部件或用户输入部件中的至少一者。
3.根据权利要求2所述的方法,其中所述多个部件中的至少一个的所述部件描述符还包括识别所述部件待与其相关联的特定功能性的目的指示符。
4.根据权利要求2所述的方法,其中所述识别信息还包括将所述多个部件中的至少一些部件关联成束的束描述符。
5.根据权利要求1所述的方法,其中所述第一通信接口是蓝牙接口、UART接口、USB接口或Wi-Fi接口中的一种。
6.根据权利要求1所述的方法,其中所述至少一个其它通信接口包括蓝牙接口、UART接口、USB接口或Wi-Fi接口中的至少一种。
7.一种由主机设备与附件进行通信的方法,所述方法包括:
由所述主机设备经由第一通信信道检测至附件的连接,其中所述第一通信信道使用第一通信接口;
由所述主机设备经由所述第一通信信道接收来自所述附件的识别信息,其中所述识别信息包括接口描述符,所述接口描述符提供关于所述附件能够用来与所述主机进行通信的第二通信接口的信息;
由所述主机设备确定是否接受所述识别信息;以及
在所述识别信息被接受的情况下,由所述主机设备使用所述第一通信接口和所述第二通信接口与所述附件进行通信。
8.根据权利要求7所述的方法,其中所述识别信息还包括提供关于所述第一通信接口的信息的接口描述符。
9.根据权利要求7所述的方法,其中使用所述第一通信接口和所述第二通信接口与所述附件进行通信包括:
由所述主机设备确定将向所述附件发送特定数据;
由所述主机设备选择所述第一通信接口和所述第二通信接口之一用于发送所述特定数据;以及
由所述主机设备使用所选择的通信接口发送所述特定数据。
10.根据权利要求7所述的方法,其中使用所述第一通信接口和所述第二通信接口与所述附件进行通信包括:
经由所述第一通信接口或所述第二通信接口从所述附件接收输入信号;
由所述主机设备确定响应于所述输入信号将采取的动作,其中所述确定部分地基于所述输入信号并且部分地基于使用所述通信接口中的哪一个来递送所述输入信号;以及
由所述主机设备采取所确定的动作。
11.一种用于由主机设备与附件进行通信的方法,所述方法包括:
由所述主机设备经由第一通信信道检测至第一附件的连接,其中所述第一通信信道使用第一通信接口;
由所述主机设备经由所述第一通信信道接收来自所述第一附件的识别信息,其中所述识别信息包括所述第一附件能够用来与所述主机进行通信的多个通信接口的多个描述符,所述多个通信接口包括所述第一通信接口和第二通信接口;
由所述主机设备经由所述第二通信接口检测连接请求;
由所述主机设备确定所述连接请求是否由所述第一附件生成;以及
在所述连接请求是由所述第一附件生成的情况下,使用所述第一通信接口和所述第二通信接口与所述第一附件进行通信。
12.根据权利要求11所述的方法,还包括在所述连接请求不是由所述第一附件生成的情况下:
由所述主机设备确定当前是否连接有最大数量的附件;以及
在当前连接有少于最大数量的附件的情况下,由所述主机设备请求使用所述第二通信接口的所述附件提供识别信息。
13.根据权利要求11所述的方法,其中使用所述第一通信接口和所述第二通信接口与所述第一附件进行通信包括:
由所述主机设备确定将向所述第一附件发送特定数据;
由所述主机设备选择所述第一通信接口或所述第二通信接口之一用于发送所述特定数据;以及
由所述主机设备使用所述第一通信接口或所述第二通信接口中的所选择的一个来发送所述特定数据。
14.根据权利要求13所述的方法,其中所述选择基于所述第一通信接口和所述第二通信接口的相应带宽特性。
15.根据权利要求11所述的方法,其中使用所述第一通信接口和所述第二通信接口与所述第一附件进行通信包括:
经由所述第一通信接口或所述第二通信接口之一从所述附件接收特定消息;
由所述主机设备确定响应于所述特定消息将采取的动作,其中所述确定部分地基于所述特定消息并且部分地基于所述消息是经由所述第一通信接口还是所述第二通信接口接收的;以及
由所述主机设备采取所确定的动作。
16.一种附件设备,包括:
多个部件,所述多个部件包括音频部件、视频部件或用户输入部件中的至少一个;
多个通信接口,所述多个通信接口可操作以与主机设备进行通信;和
识别逻辑,所述识别逻辑被配置为经由所述多个通信接口中的第一个向所述主机设备发送包含识别信息的识别消息,
其中所述识别信息包括所述多个部件中的每一个的部件描述符和所述多个通信接口中的每一个的接口描述符。
17.根据权利要求16所述的附件设备,其中所述识别信息还包括束描述符,所述束描述符将所述多个部件中的两个或更多个彼此相关联从而定义束。
18.根据权利要求17所述的附件设备,其中所述束描述符还将所述多个通信接口中的至少一个与所述束相关联。
19.根据权利要求16所述的附件设备,其中所述多个部件包括视频部件,并且所述视频部件的所述部件描述符包括关于所述视频部件的视频能力的信息。
20.根据权利要求16所述的附件设备,其中所述多个部件包括音频部件,并且所述音频部件的所述部件描述符包括关于所述音频部件的音频能力的信息。
21.一种主机设备,包括:
被配置为执行多种功能的执行逻辑;
可操作以与附件进行通信的多个主机通信接口;
耦接在所述执行逻辑与所述多个主机通信接口之间的控制和路由逻辑,所述控制和路由逻辑被配置为可选择地将信息从所述执行逻辑路由发送到所述多个主机通信接口中的一个;和
识别逻辑,所述识别逻辑被配置为经由所述多个主机通信接口中的第一个从附件设备接收包含识别信息的识别消息,
其中所述识别信息包括多个附件部件中的每一个的部件描述符和多个附件通信接口中的每一个的接口描述符。
22.根据权利要求21所述的主机设备,其中所述控制和路由逻辑进一步被配置为使得用于特定信息从所述执行逻辑到所述主机通信接口中的一个的路由部分地基于所述识别信息确定。
23.根据权利要求21所述的主机设备,其中所述执行逻辑进一步被配置为经由所述多个主机通信接口中的一个来接收源自所述附件的输入信号,并且响应于所接收的输入信号来确定将采取的动作,其中所述确定部分地基于所述输入信号并且部分地基于关于以下情况的确定:所述输入信号是所述识别信息中所识别的所述附件通信接口中的哪一个发送的。
CN201380028189.9A 2012-06-08 2013-05-13 电子设备的整体识别 Pending CN104350483A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261657582P 2012-06-08 2012-06-08
US61/657,582 2012-06-08
US13/685,522 US20130332632A1 (en) 2012-06-08 2012-11-26 Holistic identification of an electronic device
US13/685,522 2012-11-26
PCT/US2013/040734 WO2013184296A1 (en) 2012-06-08 2013-05-13 Holistic identification of an electronic device

Publications (1)

Publication Number Publication Date
CN104350483A true CN104350483A (zh) 2015-02-11

Family

ID=48628906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380028189.9A Pending CN104350483A (zh) 2012-06-08 2013-05-13 电子设备的整体识别

Country Status (4)

Country Link
US (1) US20130332632A1 (zh)
KR (1) KR20150016284A (zh)
CN (1) CN104350483A (zh)
WO (1) WO2013184296A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109511088A (zh) * 2017-09-14 2019-03-22 通用汽车环球科技运作有限责任公司 基于位置的车辆和移动装置集成系统
CN114978799A (zh) * 2022-05-26 2022-08-30 深圳市声天下科技有限公司 一种音频系统通信控制方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8337305B2 (en) * 2010-11-17 2012-12-25 Steelseries Aps Apparatus and method for managing user inputs in video games
US9306879B2 (en) 2012-06-08 2016-04-05 Apple Inc. Message-based identification of an electronic device
US20160050694A1 (en) * 2014-08-15 2016-02-18 Harman Becker Automotive Systems Gmbh Wlan adapter for vehicle head units
KR20160035427A (ko) * 2014-09-23 2016-03-31 삼성전자주식회사 전자 장치 및 액세서리 장치와 액세서리 장치 인증 방법
EP3207726A1 (en) * 2014-11-20 2017-08-23 Huawei Technologies Co., Ltd. Methods and nodes in a wireless communication network
US9743223B2 (en) * 2015-05-29 2017-08-22 Apple Inc. Techniques for communicating using conducted RF links
CN105263194A (zh) * 2015-09-18 2016-01-20 北京金山安全软件有限公司 移动设备与固定设备之间通信连接的建立方法及装置
US10026401B1 (en) * 2015-12-28 2018-07-17 Amazon Technologies, Inc. Naming devices via voice commands
CN106934292A (zh) * 2015-12-29 2017-07-07 北京明朝万达科技股份有限公司 一种手机设备识别与禁用的方法和系统
JP6132037B1 (ja) * 2016-01-15 2017-05-24 カシオ計算機株式会社 無線通信方法及びプログラム
KR102639882B1 (ko) * 2016-05-04 2024-02-26 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20180024450A (ko) * 2016-08-30 2018-03-08 현대자동차주식회사 Usb 호스트의 usb 통신 제어 방법
US10819793B2 (en) 2016-09-15 2020-10-27 At&T Mobility Ii Llc Method and apparatus for extending content access
TW201826136A (zh) * 2017-01-13 2018-07-16 致伸科技股份有限公司 藍芽配對系統及藍芽配對系統的操作方法
US10425417B2 (en) * 2017-03-08 2019-09-24 Bank Of America Corporation Certificate system for verifying authorized and unauthorized secure sessions
US11150922B2 (en) 2017-04-25 2021-10-19 Google Llc Initializing a conversation with an automated agent via selectable graphical element
US11170790B2 (en) * 2019-06-27 2021-11-09 Bose Corporation User authentication with audio reply
US20210400483A1 (en) * 2020-06-18 2021-12-23 Nec Corporation Of America Verifying a path of a mobile wireless device based on wireless mapping
EP4318230A1 (en) * 2021-05-12 2024-02-07 Samsung Electronics Co., Ltd. Electronic apparatus comprising usb connection terminal and operating method therefor
CN113873475B (zh) * 2021-09-16 2022-06-07 阿波罗智联(北京)科技有限公司 车载互联的音频数据处理方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120052807A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Techniques for facilitating communication between a portable media device and an accessory using multiple communication paths
CN102428457A (zh) * 2009-03-16 2012-04-25 苹果公司 用于附件的移动计算设备附件能力

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7068674B1 (en) * 1999-08-23 2006-06-27 Lg Electronics Inc. Method of controlling connection between nodes in digital interface
US8208403B2 (en) * 2007-12-26 2012-06-26 Verizon Patent And Licensing Inc. Defining an end-to-end path for a network service
CN101488953B (zh) * 2008-01-14 2012-03-14 鸿富锦精密工业(深圳)有限公司 网络通信设备及其网络通信协议会话的分配方法
US9069908B2 (en) * 2009-03-16 2015-06-30 Apple Inc. Accessory and mobile computing device communication using an application communication protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102428457A (zh) * 2009-03-16 2012-04-25 苹果公司 用于附件的移动计算设备附件能力
US20120052807A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Techniques for facilitating communication between a portable media device and an accessory using multiple communication paths

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109511088A (zh) * 2017-09-14 2019-03-22 通用汽车环球科技运作有限责任公司 基于位置的车辆和移动装置集成系统
CN114978799A (zh) * 2022-05-26 2022-08-30 深圳市声天下科技有限公司 一种音频系统通信控制方法

Also Published As

Publication number Publication date
KR20150016284A (ko) 2015-02-11
WO2013184296A1 (en) 2013-12-12
US20130332632A1 (en) 2013-12-12

Similar Documents

Publication Publication Date Title
CN104350483A (zh) 电子设备的整体识别
CN104350484B (zh) 基于消息的电子设备识别
US9730268B2 (en) Communication between host and accessory devices using accessory protocols via wireless transport
CN101699458B (zh) 用于电子设备的附件认证
US8583044B2 (en) Near field communication (NFC) enabled wireless media system and player and method of operation
CN102983970B (zh) 便携式媒体设备
WO2021114952A1 (zh) 数据处理方法、终端设备、蓝牙设备及存储介质
US20160006851A1 (en) Cellular telephone docking interface
JP7450734B2 (ja) オーディオ出力方法および端末デバイス
KR20140124304A (ko) 통신 제어 방법 및 이를 지원하는 전자 장치
CN102483787A (zh) 附件设备认证
GB2470110A (en) Remote control signal learning and processing by a host device and accessory
CN112585981B (zh) 用于具有连续性的内容回放的方法及其电子装置
KR101588993B1 (ko) 프로토콜 변환 어댑터
CN105791309A (zh) 一种执行业务处理的方法、装置及系统
CN105407070A (zh) 登录授权方法及装置
CN110278273B (zh) 多媒体文件上传方法、装置、终端、服务器和存储介质
WO2024082906A1 (zh) 信息获取方法、装置、蓝牙设备、终端设备及存储介质
CN106358064A (zh) 控制电视机的方法及设备
CN104486390A (zh) 数据共享的方法及装置
US20140170974A1 (en) Electronic device and method for establishing communication
CN117640148A (zh) 一种车载功能连接优化方法、装置、设备以及存储介质
CN109040829A (zh) 媒体传输方法、装置、存储介质、终端设备及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150211

WD01 Invention patent application deemed withdrawn after publication