用于附件的移动计算设备附件能力的制作方法

文档序号:6349240阅读:185来源:国知局
专利名称:用于附件的移动计算设备附件能力的制作方法
技术领域
本发明一般地涉及附件(accessory)和移动计算设备之间的通信,尤其涉及附件和移动计算设备之间的识别过程、方案和/或处理。
背景技术
移动计算设备(MCD)已经变得普遍存在。各种不同的公司已经创建了诸如 iPhone , iPod Touch 、各种Blackberry 设备、和兼容 Google 的 Android 平台的智能手机等等的MCD。MCD通常包括web浏览器、字处理器、电子邮件应用、地图、电话服务、游戏、音频应用、视频应用等等。此外,也已经创建了与MCD结合使用的附件。这些附件可以使用一个或多个连接器和/或端口来与MCD通信。这种附件可被用于控制MCD的特性或者由MCD 用来与用户和/或环境进行交互。通常,附件和MCD使用由MCD的开发商提供的通信协议来在两者之间交互。

发明内容
根据各种实施例,提供了在附件设备和MCD之间的识别和/或初始化方案和处理。 附件设备例如可以从MCD请求隐语(lingo)版本信息和/或MCD能力(capability)信息。 如果MCD返回隐语版本信息和/或能力信息,则附件可以使用该信息来确定附件在与MCD 通信期间可以使用的隐语,并且附件可以识别针对该MCD的这些隐语。具体地,在一些实施例中,附件和MCD之间的后续通信可被限制于仅仅由附件针对该MCD所识别的那些隐语。在一些实施例中,在初始化和/或识别之后,附件可以不再重新识别其自身或者不请求使用新的或者不同的隐语。附件还可以在初始化和/或识别期间传送附件能力信息、附件首选项(preference)信息、附件信息、附件协议信息、优选应用信息等。在一些实施例中,附件还可以在初始化和/或识别期间使用附件所识别的附件协议来与MCD通信。此外,还提供了各种修改、排序、增强方式。本发明的各种实施例提供了对与移动计算设备耦接的附件的能力识别。在能力识别期间,附件可以从移动计算设备请求能力信息。在一些实施例中,附件可以请求与特定隐语相关联的能力信息。作为响应,移动计算设备可以用消息作出响应,该消息指示出移动计算设备的、受到支持的能力。在一些实施例中,能力可以是与特定隐语相关联的那些能力。 在一些实施例中,如果移动计算设备不支持某一隐语,则移动计算设备可以针对来自附件的请求用否定确认来作出响应。可以结合本发明的实施例来使用各种隐语和/或能力。


图1示出了根据一个实施例,与MCD耦接的附件的框图。图2示出了根据一个实施例,正与MCD进行无线通信的附件的框图。图3示出了根据一个实施例,耦接在一起的移动计算设备(MCD)与附件设备的框图。图4是示出根据一些实施例,在识别方案期间可向与M⑶耦接的附件发送和从其接收的命令的示图。图5示出了根据一些实施例,在识别期间可由附件用来提供与MCD通信的图4所示的命令的令牌(token)的示例。图6示出了根据一些实施例的识别方案的流程图。图7示出了根据一些实施例的在附件处的识别方案的流程图。图8示出了根据一些实施例的在MCD处的识别方案的流程图。图9示出了根据一些实施例,在附件和移动通信设备之间使用事务标识符传递的消息图。图10示出了根据一些实施例,用于使用附件设备来识别移动计算设备的能力的流程图。
具体实施例方式这里公开的实施例涉及附件和MCD之间的识别处理。在一些实施例中,附件可以识别附件在与MCD耦接时可以使用的隐语和/或协议。这两种设备之间的后续通信可被约束于仅那些由附件识别的隐语和/或协议。在一些实施例中,附件可以从MCD请求隐语版本信息和/或能力信息。附件随后可以至少部分基于MCD所支持的(一个或多个)隐语版本和/或MCD的能力,来确定附件在与MCD耦接时在通信期间可以使用的隐语和/或协议。在一些实施例中,附件还可以发送能够指示出附件信息、附件能力、附件首选项、 附件协议信息、优选应用信息等的各种消息。此外,可在附件和MCD之间发送的令牌、消息、 命令和/或数据中包括事务ID。在一些实施例中,附件还可以向MCD发送针对MCD的能力的请求。在一些实施例中,可以针对不同隐语来请求MCD所支持的能力。作为响应,MCD可以发送对所支持的能力的指示。该指示例如可以使用比特掩码来做出,其中,比特掩码中的每个比特指示出某一能力是否受到支持。本申请全文中使用的术语“令牌”指的是代码-值对(code-value pair)。具体地,代码可以是标识信息类型的比特串,值可以包含实际信息。代码例如可以是标识令牌和相关值的2字节代码。值可以具有固定或可变长度。在一些实施例中,可变长度令牌可以包括对令牌长度的标识。附件和/或MCD可以基于关联代码来对值进行解析。令牌可在一个或多个分组中在附件和MCD之间传送。因此,单个分组可以包括代码和所有值,或者两个或更多个代码可以包括值,其中第一分组包括代码和/或长度标识。图1示出了与附件设备113耦接的MCD 102。线缆111用于将MCD102与附件设备 113耦接。线缆111可以包括用于与MCD 102连接的连接器108和用于与附件设备113连接的连接器110。图2示出了与MCD 102无线耦接的附件设备113。MCD 102可以是任意类型的移动计算/通信设备;例如,也可以使用iPod Touch 、 iPhone , Android兼容设备、和/或Blackberry设备。而且,还可以使用任意各种媒体播放器,例如iPod 、Zune, Sada或者其它媒体播放器。此外,MCD 102可以提供媒体播放器能力、联网、web浏览、电子邮件、字处理、数据存储、应用执行和/或任意其它计算或通信功能。附件设备113可以是外部扬声器对接设备(speaker dock)、多媒体设备、消费电子设备、测试仪器、家用电器(例如,电冰箱或洗碗机)、(一个或多个)扬声器、锻炼装备、安全系统、家庭或办公自动化系统、相机、键盘、测量设备、外部视频设备、医学设备(例如,血糖监测器或者胰岛素监测器)、销售点设备、汽车、汽车附件(例如,汽车音响系统或者汽车导航系统)、广播(例如FM、AM和/或卫星)、飞机上的娱乐控制台、公共汽车、火车、或者其它大众交通工具,等等。可以联合MCD使用的任何类型的设备都可被用作附件设备。图3示出了根据一些实施例、与附件112耦接的MCD 103的框图。MCD 103可以包括处理器230、存储设备225、用户接口(UI) 235和附件输入/输出(1/0)接口 205。在一些实施例中,处理器230可以执行存储设备225中存储的各种软件程序或应用(Apps) 226。 处理器230可以通过1/0接口 205与附件112交互,和/或通过用户接口 235与用户交互。 在一些实施例中,处理器230可以执行存储设备225中存储的、需要来自用户接口 235和/ 或附件112中的任一者或者两者的输入/输出的应用。存储设备225可以包括其它信息, 所述其它信息包括数字媒体、文档、表格、工作存储器、应用、各种查找表等。例如,存储设备 225可以包括协议表227,该协议表227指定了应用可以用来与附件设备通信的协议。可以使用例如盘、闪存或者任意其它非易失性存储介质来实现存储设备225。用户接口 235可以包括诸如触摸板、触摸屏、滚轮、点击轮、拨盘、按钮、小键盘、麦克风等的输入控件,诸如视频画面、指示灯、扬声器、头戴式耳机插孔等的输出设备,以及支持性电子装置(例如,数模或模数转换器、信号处理器、视频处理器等)。用户可以操作用户接口 235的各种输入控件来调用MCD 103的功能,并且可以经由用户接口 235来观看和 /或收听来自MCD 103的输出。可以使用连接211来在MCD 103和附件112之间传送信号,连接211可以包括任意的有线和/或无线通信协议或者协议集。有线连接可以是连接器至连接器或者使用介入线缆(例如,如图1所示)。可以使用任意数目的通信路径。这些路径可以是分离的路径, 或者可将各种子集复用成公共路径。不同实施例可以具有更少或者更多的信号路径。在一些实施例中,可通过多弓I脚连接器来提供这一组通信路径。在一些实施例中,一些信号可以具有专用引脚,而其它信号可以共享一个或多个引脚。在其它实施例中,可以使用诸如蓝牙或WiFi之类的无线协议来实现连接211。连接211可以是更大的1/0接口的一部分,该更大的1/0接口可以包括用于与除附件112之外的元件(例如,一个或多个主机计算机或者一个或多个网络)通信的组件。该 1/0接口可以包括例如一个或多个外围接口,例如USB、IEEE 1394(火线)和蓝牙(由蓝牙 SIG开发并得到商标Bluetooth !的许可的短距离无线通信标准)。1/0接口还可以包括或者可以替代地包括一个或多个有线联网接口(例如,以太网)或者无线联网接口(例如,拥护802. 11标准族之一的Wi-Fi,数字移动电话技术)。在一些实施例中(可能与上述那些实施例相同,但是也可能是不同的实施例),该1/0接口可以具有如下能力(例如经由到因特网的无线连接)将MCD103与诸如媒体资产、应用、数据、命令、函数等的数据源耦接,以使得MCD能够获得这些数据而无需连接到主机计算机。附件I/O接口 205可以允许MCD 103与各种附件通信。附件I/O接口 205包括至少一个通信端口。MCD 103还可以包括认证管理器206,该认证管理器206可以与附件的认证控制器280通信以对附件进行认证并向该附件提供特权(或者许可)。认证管理器206 可以联合认证控制器来执行密码功能。在一些实施例中,这样的密码功能包括公共-私密密钥密码术。附件I/O接口 205可以支持到各种附件的连接,所述各种附件例如是外部扬声器对接设备、多媒体设备、消费电子设备、测试仪器、家用电器(例如,电冰箱或洗碗机)、(一个或多个)扬声器、锻炼装备、安全系统、家庭或办公自动化系统、相机、键盘、测量设备、外部视频设备、医学设备(例如,血糖监测器或者胰岛素监测器)、销售点设备、汽车、汽车附件(例如,汽车音响系统或者汽车导航系统)、广播(例如FM、AM和/或卫星)、飞机上的娱乐控制台、公共汽车、火车、或者其它大众交通工具,等等。在一个实施例中,附件I/O接口 205包括与苹果公司制造并销售的ip0d 产品上所使用的连接器相对应的30引脚连接器。 可替代地或者另外地,附件I/O接口 205可以包括无线接口,例如蓝牙、无线个人区域网络或者WiFi接口。应当理解,接口 205可以是使能信号通过其通信的任意接口,无论是有线的还是无线的或者是两者的组合。在一些实施例中,MCD 103还可以使用附件I/O接口 205来与执行资产管理程序 (例如,iTunes 或者微软应用和/或音乐商店)的主机计算机(未明确示出)进行通信, 所述资产管理程序能够提供对媒体和/或应用的访问。资产管理程序使得用户能够向MCD 103添加媒体资产和/或应用以及/或者从MCD 103移除媒体资产和/或应用。用户能够更新与MCD 103上的媒体资产和应用相关联的元数据。在一些实施例中,用户还能够与资产管理程序交互来创建和更新播放列表和/或应用以及其它文档。在一个实施例中,主机计算机维护媒体资产和/或应用的主数据库,并能够通过因特网访问其它数据库(包括关联元数据和播放列表)。无论何时MCD 103连接到主机计算机,资产管理程序就能够自动地对主数据库与MCD 103的存储设备225上所维护的数据库进行同步。附件112可以包括控制器洸0、用户接口 255、MCD I/O接口 250、存储器265和媒体输出设备270。附件可以包括特定于附件的硬件275。特定于附件的硬件275可以包括例如探测器、发动机、致动器、针对广播信号的接收器、用户接口、传感器、接口、血糖监测器、与电子设备的接口、传感器、检测器、或者任何其它设备。控制器260可以包括例如运行程序代码来执行各种功能的微处理器或微控制器,所述各种功能例如是数字音频解码、模拟或数字音频和/或视频处理、对所包括的任意测试探测器、计量器、接收器、致动器、发动机、用户接口等的控制操作。用户接口 255可以包括诸如触摸板、触摸屏、滚轮、点击轮、拨盘、按钮、小键盘、麦克风、探测器等的输入控件,诸如视频画面、指示灯、扬声器、头戴式耳机插孔等的输出设备,以及支持性电子装置(例如,数模或模数转换器、信号处理器等)。可替代地,用户接口 255的输出组件可以与媒体输出设备270集成。用户可以操作用户接口 255的各种输入控件来调用附件112的功能,并能够经由用户接口 255来观看和/或收听来自附件112的输出。另外,在一些实施例中,用户能够经由用户接口 255来操作MCD103。附件I/O接口 205可以允许附件112与MCD 103 (或者另一个MCD)通信。在一些
7实施例中,MCD I/O接口 250被配置为连接到MCD103的特定端口,无论是以有线方式还是以无线方式。可以使用能够存储用于控制器260的程序代码和/或存储数据的任何类型的存储器来实现存储器265。存储器265可以包括能够提供对各种信息的存储的易失性和/或非易失性存储器,所述各种信息例如包括从MCD103获得的信息。例如,在一些实施例中,附件 112可以从MCD 103获得用户输入、数据、元数据和/或状况信息。这些信息中的任一者或者所有这些信息都可存储在存储器沈5中。对附件112从MCD 103获得的信息的高速缓存是可选的;在使用的情况下,高速缓存通过避免对来自MCD 103的信息的重复请求而能够帮助加速附件112的执行。可被实现为例如一个或多个集成电路的媒体输出设备270提供了用于输出各种类型的媒体的能力。例如,媒体输出设备270可以包括显示屏或者针对外部显示屏的驱动器电路和连接器,从而使得能够将视频和/或静止图像呈现给用户。另外地或者取代之,媒体输出设备270还可以包括一个或多个扬声器或者针对外部扬声器的驱动器电路和连接器,从而使得能够将音频呈现给用户。在一个实施例中,控制器260可以经由MCD I/O接口 250从MCD 103接收媒体内容信号,并在进行了进一步处理或者没有进行进一步处理的情况下将这些信号提供给媒体输出设备270 ;媒体输出设备270可适当地对信号进行变换以供呈现给用户。附件112可以是能够结合移动计算设备使用的任何附件。实现了附件112所示的块的附件的示例包括例如外部扬声器对接设备、多媒体设备、消费电子设备、测试仪器、家用电器(例如,电冰箱或洗碗机)、(一个或多个)扬声器、锻炼装备、安全系统、家庭或办公自动化系统、相机、键盘、测量设备、外部视频设备、医学设备(例如,血糖监测器或者胰岛素监测器)、销售点设备、汽车、汽车附件(例如,汽车音响系统或者汽车导航系统)、广播(例如FM、AM和/或卫星)、飞机上的娱乐控制台、公共汽车、火车、或者其它大众交通工具,等等。在一个实施例中,MCD附件I/O接口 250包括与苹果公司制造并销售的iPod 或 iPhone 产品上所使用的连接器配对的30引脚连接器。MCD附件I/O接口 250还可以包括其它类型的连接器,例如通用串行总线(USB)或火线连接器。替代地或者另外地,MCD I/O 接口 250可以包括无线接口,例如蓝牙、个人无线区域网络和/或WiFi。应当理解,接口 205 可以是使得能够通过其进行信号通信的任何接口,无论是有线的、无线的还是两者的组合。MCD 103的附件I/O接口 205和附件112的MCD I/O接口 250使得MCD 103可以连接到附件112以及随后从附件112断开连接。如这里所使用的,无论何时附件I/O接口 205 和MCD I/O接口 250之间的通信信道开启,MCD 103和附件112就被“连接”,并且无论何时该通信信道关闭,MCD 103和附件112就被“断开连接”。连接可以通过(例如,MCD 103和附件112的各个配对连接器之间的)实体附接、通过诸如线缆之类的间接附接或者通过建立无线通信信道来实现。类似地,断开连接可以通过实体拆开、断开线缆、中断附件112或 MCD 103的电源、或者关闭无线通信信道来实现。于是,可以使用多种通信信道,包括诸如 USB、火线、或者通用异步接收器/发送器(“UART”)之类的有线信道,或者诸如蓝牙、WiFi、 红外等的无线信道。在一些实施例中,MCD和附件之间的多条通信信道可以同时开启,或者 MCD可以连接到多个附件,其中每个附件使用不同的通信信道。无论是何种特定通信信道,只要MCD 103和附件112相互连接,设备就能够根据协议通过交换命令和数据来进行通信。协议定义了用于在MCD 103和附件112之间发送消息的格式。例如,协议能够指定每个消息都在具有头部和可选有效载荷的分组中被发送。 头部可以提供诸如开始指示符、分组长度和要由接收者处理的命令之类的基本信息,而有效载荷提供与该命令相关联的任何数据;关联数据的量对于不同命令可以不同,并且一些命令可以提供可变长度的有效载荷。分组还可以包括本领域已知的错误检测码或错误校正码。在各种实施例中,协议可以定义用于指示出要由接收者采取的动作的命令,用于用信号表明任务完成的命令,用于改变MCD或附件的状态的命令,用于发起错误的发生的命令, 和/或用于识别关联数据的本性的命令。在一些实施例中,命令可被定义为使得任意特定的命令仅在一个方向上为有效。协议可以定义多个“隐语”,其中,“隐语” 一般指能够由各种类别的附件支持(或者不支持)的一群相关命令。在一个实施例中,命令可由第一字节和第二字节来唯一地标识,其中第一字节标识该命令属于哪个隐语,第二字节标识该隐语内的特定命令。也可以使用其它命令结构。并不要求所有附件或者附件能够连接到的所有MCD支持协议内定义的每个隐语或者特定隐语的每个命令(例如,不同的设备可能使用给定隐语的不同版本)。在一些实施例中,每个附件和每个MCD可被设计为彼此进行交互操作,以至少支持包括对所有这些设备共同的命令的“一般性(general)”隐语。一般性隐语可以包括使得MCD和附件能够向彼此标识自身并提供至少有关它们各自的能力的一些信息的命令,所述一些信息包括各自支持哪些(如果存在的话)其它隐语以及在连接时各自打算使用的、 其它设备的哪些能力。下面描述这些命令的示例。一般性隐语还可以包括认证命令,MCD可以使用这些认证命令来验证附件的受支持身份和能力(反之亦然),并且如果认证不成功,则附件(或者MCD)可被阻止调用某些命令或隐语。根据一些实施例,附件112可以包括用于向MCD 103认证附件112并从其接收特权和/或许可的认证控制器观0。在其它实施例中,附件112可以不包括认证控制器,在这种情况下,附件112将无法认证自身以及从MCD 103接收特权。将了解,这里描述的系统配置和组件是示例性的,并且可以有各种变体和修改。 MCD和/或附件可以具有这里没有特别描述的其它能力。虽然参考特定块在图3中描述了附件112和MCD 103,但是应当理解限定这些块是为了方便描述,不应认为暗示各组成部分的特定实体布置。此外,这些块不必对应于实体上不同的组件。图4的图表400示出了可在识别例程期间在附件和便携式计算设备之间传递的识别消息和/或确认的示例。在一些实施例中,这些消息和/或确认中的一些或者全部可使用令牌或命令来被传递。在一些实施例中,该例程可被称为设备识别序列(DIS)。如图所示,DIS可以开始于从附件向MCD发送的开始DIS命令402。开始DIS命令402指示出DIS 的开始。该命令使得MCD处于警惕状态,以预期与DIS —致的消息,直到结束DIS命令被接收到为止。在一些实施例中,对于开始DIS 402,不需要来自MCD的确认;但是可由MCD向附件发送确认,以例如指示出MCD已为下一个命令做好准备,如块403所示。在一些实施例中,在DIS期间,附件可以向MCD发送请求404,以请求指示出MCD 所支持的(一个或多个)隐语版本的响应。MCD随后可以返回消息406,该消息406指示出MCD所支持的(一个或多个)隐语版本。附件还可以向MCD发送请求408,以请求MCD的能力,于是MCD可以响应以返回消息410,该返回消息410指示出MCD的能力。在一些实施例中,返回消息410可以包括比特掩码,其中,每个比特的状态可以指示出特定能力是否受到支持。这些能力可以包括例如MCD是否支持模拟线路输入、模拟线路输出、模拟视频输入、 模拟视频输出、数字音频输出、数字音频输入、数字视频输入、数字视频输出、免提电话、与 MCD操作系统应用的通信,等等。可从附件发送到MCD的可使用隐语消息412可以包括对附件在与MCD通信期间可使用的可使用隐语的集合的标识。在一些实施例中,该隐语消息可以包括比特掩码,其中, 每个比特的状态可以指示出特定隐语是否受到支持。可使用隐语的集合可以部分基于接收到的MCD的能力和/或受到支持的MCD的隐语版本来确定。对可使用隐语的集合的标识可例如使用隐语令牌来发送,隐语令牌可以包括作为令牌的值的、对隐语的指示。作为响应, MCD可以发送可选的确认消息414。在一些实施例中,附件与MCD的后续(S卩,在DIS后的) 通信可被限制于仅仅由隐语令牌标识出的那些隐语,并且这一限制可以持续存在,直到附件从MCD断开连接为止,或者直到MCD和/或附件被重启为止。因此,如果附件使用不包括在可使用隐语集合中的隐语来发送命令,则MCD可以忽略该命令并返回错误消息。因此,附件在没有预先使MCD请求可使用隐语集合的情况下,将这些隐语推送给MCD。此外,可使用隐语集合是在通信会话的开头处被建立的,而不是被递增地建立的。在一些实施例中,可使用隐语信息(和这里所公开的其它DIS信息)在MCD和附件之间的认证处理之前被发送给 MCD。可以至少部分基于MCD所支持的(一个或多个)隐语版本来选择可使用隐语集合中的隐语。例如,如果MCD不支持特定隐语,就可从可使用隐语集合中省去该特定隐语。此外,可使用隐语集合可以取决于MCD的能力。例如,如果MCD不支持视频输入,则可从可使用隐语集合中省去与视频输入相关联的隐语。取决于MCD的能力,可在可使用隐语列表中包括或者从中排除与其它能力相关联的各种其它隐语。在一些实施例中,还可发送附件能力消息416,以指示出附件所支持的、MCD的可用能力。在一些实施例中,可以使用附件能力令牌来发送附件能力。在一些实施例中,可以以比特掩码的形式来发送附件能力,其中,每个比特的状态可以指示出某一能力是否受到支持。例如,能力可以包括附件是否支持到MCD的模拟线路输入(analog line-in)、从MCD 的模拟线路输出(analog line-out)、到MCD的模拟视频输入(analog video-in)、从MCD的模拟视频输出(analog video-out)、从MCD的数字音频输出(digital audio out)、到MCD 的数字音频输入(digital audio in)、到MCD的数字视频输入(digital video in)、数字视频输出、免提电话(speakerphone)、与MCD操作系统应用进行的通信,等等。可以可选地从MCD发送确认消息418,以指示出附件能力消息416已被接收。在一些实施例中,如果附件指示出某一能力得不到支持,则MCD可以关掉该能力。在一些实施例中,还可以发送附件首选项消息420,以指示出附件对于由MCD和/ 或附件所支持的那些MCD能力的初始首选项。在一些实施例中,可使用附件首选项令牌来发送附件首选项。在一些实施例中,可以以比特掩码的形式来发送附件首选项,其中,每一比特的状态可以指示出某一能力是否受到支持。附件首选项消息420可以包括这样一种比特掩码,其中,每个比特指示出针对一 MCD能力的预定义首选项的初始状态。例如,能力可以具有两个或更多个状态,并且这些首选项可以指示出一个或更多个能力的初始状态。例如,如果附件能力416指示出附件支持到MCD的视频输入,则附件首选项420可以指示出到 MCD的视频输入最初是处于“ON” (开启)状态还是处于“OFF” (关闭)状态。可以在操作期间改变能力的状态,而无论附件首选项420中所指示出的状态为何。在一些实施例中,附件首选项消息可以设定如下MCD能力的期望初始状态(例如,“ON”或“OFF”)到MCD的模拟线路输入、从MCD的模拟线路输出、到MCD的模拟视频输入、从MCD的模拟视频输出、从 MCD的数字音频输出、到MCD的数字音频输入、到MCD的数字视频输入、数字视频输出、免提电话、与MCD操作系统应用的通信,等等。一些能力可以具有两个以上的状态;在这样的实施例中,可以相应地指示出状态。可以可选地从MCD向附件发送确认消息422,以指示出附件首选项消息420已被接收。在一些实施例中,还可以发送附件协议消息424,以指示出附件可用来与MCD和/ 或在MCD处运行的应用通信的一个或多个附件协议。例如,附件的开发商和/或制造商可以提供可用来与附件交互操作的应用。该应用可能要求以使用MCD的隐语和/或协议不可得的格式进行信息交换。为了允许附件和应用之间的这种信息交换,可以使用特定于附件的协议。附件协议4M可被用来指示出一个或多个特定于附件的协议是否受到支持。可以可选地发送确认消息426以确认对附件协议消息424的接收。在一些实施例中,附件协议消息4M可以使用反向域名公约来指示出特定于附件的协议。公约性域名从左向右提供了低级域名到顶级域名。例如,在域名“help, example, com"中,术语“com”是顶级域名,术语“example”是较低级域名,而术语“help”是最低级域名。作为另一个示例,域名“mac. apple, com”从左向右指定了最低级域名“mac”、中级域名 “app 1 e”和顶级域名“com”。另一方面,反向域名可以提供“com. apple, mac”。反向域名公约可被用来指定与该域名相关联的特定公司所使用的附件协议。艮口, 反向域名 “com· company 1. accessoryl,,才皆定 “accessoryl,,协议与公司"company 相关联。因此,一般而言,制造和/或销售附件的公司可以使用反向域名公约来实现协议,其中, 反向域名的第一部分涉及公司(“ccmcompanyl”),并且可以与该公司的因特网域名相关联。反向域名的第二部分(“accessoryl”)指定了特定协议。因为大多数公司都与域名相关联,所以反向域名公约通过利用公司的反向域名来命名这些公司的协议,使得这些公司可以将应用和/或协议和/或附件与其它公司的那些应用和/或协议和/或附件相区分。 该公约使得公司可以独立地命名它们的协议,而无需关心其它公司的命名公约。此外,如果使用相同命名公约的两个公司之间有冲突,则对域名的简单检查就应当判断出哪个公司对该命名公约具有权利。在一些实施例中,还可以向MCD发送优选应用消息428,以指示出结合附件使用的优选应用。可以使用优选应用标识符来指示出使用受到支持的附件协议之一并且可被下载并且/或者在MCD上运行的应用。因此,当附件与不包括有能力与该附件通信的应用的MCD 耦接时,优选应用标识符可以将MCD指引到可以下载优选应用的网页或其它网络位置(例如,iTines 商店)。可以可选地从MCD向附件发送确认消息430,以指示出优选应用消息 428已被接收。图4示出了可从MCD向附件发送的多个可选确认消息。这些确认可在完成请求、 消息和/或令牌被接收到之后被发送,或者它们可在包括该请求、消息和/或令牌的每一分
11组被接收到之后被发送。如稍后将论述的,这些确认还可以包括事务ID。在一些实施例中, 仅在错误发生时才发送确认。因此,在这样的实施例中,可以假设如果没有确认被发送,则命令、请求和/或消息在没有错误的情况下被接收。图5示出了表格500的示例,该表格500示出了在一些实施例中在识别期间附件可向MCD传送的各种令牌(代码-值对)中的一些。该信息可以包括标识令牌,该标识令牌的值可以包括这样的比特掩码,该比特掩码标识出MCD协议所指定的隐语中的哪些隐语可由附件使用。附件能力令牌可以包括指定可由附件使用的各种MCD能力的字符串。这些能力可以包括例如附件是否支持到MCD的模拟线路输入、从MCD的模拟线路输出、到MCD的模拟视频输入、从MCD的模拟视频输出、从MCD的数字音频输出、到MCD的数字音频输入、到 MCD的数字视频输入、数字视频输出、免提电话、与MCD操作系统应用的通信,等等。附件首选项令牌可以包括针对附件能力令牌中指定的能力的初始状态的各种首选项。例如,附件首选项令牌可以指示出到MCD的模拟线路输入最初应当处于“ON”状态还是“OFF”状态,从MCD的模拟线路输出最初应当处于“ON”状态还是“OFF”状态,到MCD 的模拟视频输入最初应当处于“ON”状态还是“OFF”状态,从MCD的模拟视频输出最初应当处于“0N”状态还是“OFF”状态,从MCD的数字音频输出最初应当处于“0N”状态还是“OFF” 状态,到MCD的数字音频输入最初应当处于“0N”状态还是“OFF”状态,到MCD的数字视频输入最初应当处于“0N”状态还是“OFF”状态,数字视频输出最初应当处于“0N”状态还是 “OFF”状态,以及/或者免提电话最初应当处于“0N”状态还是“OFF”状态。在一些实施例中,首选项可以包括免提电话是否应当以全双工工作、以半双工工作、具有噪声消除地工作、不具有噪声消除地工作、具有立体输入地工作和/或具有单一输入地工作。在一些实施例中,首选项还可以指示出针对诸如刷新率、图片大小、格式、声音质量、音量等的视频输出的首选项。在一些实施例中,可以发送针对位置数据的首选项,例如,是同步地、异步地、当有改变时、还是有改变阈值时等发送位置数据。附件信息令牌可以提供附件信息项目,例如附件名、附件固件版本、附件硬件版本、附件制造商、附件型号、附件序列号等等。在一些实施例中,可以包括其它附件信息项目和/或可以排除所示出那些项目中的一些。附件还可以发送一个或多个协议令牌。每个协议令牌可以包括协议索引和/或协议字符串。可以发送任意数目的协议令牌。协议索引可以是由附件指派的并且可以与特定协议字符串相关联的唯一整数。协议字符串可以是例如具有反向域名格式的字符串,其指定了可用于附件和MCD之间的通信的附件协议。优选应用令牌可以包括用于定位与协议令牌所指定的附件协议之一相关联的优选应用的标识符(例如,URL)。优选应用信息可被用于指定如下应用,该应用使用了上述指定协议字符串之一并且可被下载并且/或者在MCD 上运行。因此,当附件与不包括具有与附件通信的能力的应用的MCD耦接时,优选应用信息可以将MCD指引到可从其下载优选应用的网页或者其它网络位置(例如iTunes 商店)。图6示出了根据一些实施例的识别处理600的流程图。可以排除或者以不同顺序来放置图6中示出的任意块、步骤和/或功能。例如,可以如上所述地包括或者排除确认的发送和/或接收中的任一者。处理开始于块602,其中,在块604处判断附件是否与MCD耦接。如果耦接了,则可以在块606发送DIS开始命令。DIS开始命令使得MCD警惕与识别一致的数据将到来。在一些实施例中,MCD可以发送表明DIS开始命令已被接收的确认。附件可以在块608向MCD询问(一个或多个)隐语版本的信息,其指示出各种隐语中得到MCD支持的(一个或多个)版本。可向MCD发送请求受到支持的(一个或多个) 隐语版本的信息的命令。在一些实施例中,附件可以等待直到MCD发送指示出MCD所支持的(一个或多个)隐语版本的消息为止。如果附件在块610没有接收到隐语版本信息,则附件可以返回到块608,并再次请求隐语版本信息。在一些实施例中,附件可以在再次请求隐语版本信息之前等待一设定时间段。当在块610接收到隐语版本或版本信息时,附件可在块612从MCD请求指示出MCD 的能力的能力信息。可向MCD发送请求MCD的能力的命令。在一些实施例中,附件可以等待直到MCD发送指示出MCD所支持的能力的消息为止。如果附件在块614没有接收到能力信息,则附件可以返回到块612并再次请求能力信息。在一些实施例中,附件可以在返回到块612之前等待一设定时间段。当在块614接收到MCD能力信息时,附件可以在块616发送标识消息。在一些实施例中,标识消息可以对应于并且/或者包括图5所示的标识令牌和/或联合图4中的块 412描述的可用隐语消息。该标识消息例如可以包括对附件所实际支持的一个或多个隐语的指示。在一些实例中,附件可以标识其支持的每个隐语,但是在其它情况中,附件可能标识比受支持的全部隐语少的隐语。在一些实施例中,在标识命令中标识出的隐语是附件在与MCD通信时将被允许使用的仅有隐语。如果附件没有在标识命令中包括对一隐语的指示,则MCD可以拒绝附件随后发送的该隐语的任何命令。在一些实施例中,附件可以部分基于从MCD接收的隐语版本信息和/或MCD的能力来确定附件可能用来与MCD通信的隐语的列表。例如,附件可以排除在MCD所识别出的隐语版本中不存在其期望特征的隐语。此外, 附件还可以排除需要不被MCD识别的MCD能力的隐语。因此,在一些实施例中,可使用隐语的集合可以取决于从MCD接收的隐语版本信息和/或取决于从MCD接收的MCD能力信息。可在块620发送附件能力消息。在一些实施例中,附件能力消息可以对应于并且 /或者包括图5所示的附件能力令牌和/或联合图4的块416描述的附件能力消息。附件能力消息可以指示出附件的能力,例如,附件是否能支持到MCD的模拟线路输入、从MCD的模拟线路输出、到MCD的模拟视频输入、从MCD的模拟视频输出、从MCD的数字音频输出、到 MCD的数字音频输入、到MCD的数字视频输入、数字视频输出、免提电话、与MCD操作系统应用的通信,等等。可在块624发送附件信息消息。在一些实施例中,附件信息消息可以对应于图5 所示的附件信息。附件信息消息可以指定诸如附件名、附件固件版本、附件硬件版本、附件制造商、附件型号和/或附件序列号之类的附件信息。可以在块627发送附件首选项消息。在一些实施例中,附件信息消息可以对应于图5中的附件信息令牌和/或联合图4的块420描述的附件首选项。附件首选项消息可以指示出在块620发送的能力的首选项。例如,首选项可以指示出这些能力中的任一者或者全部最初是处于“ON”状态还是“OFF”状态。在一些实施例中,这些能力可以具有一个以上的状态,并且首选项可以相应地指示出期望的初始状态。可以在块630发送附件协议消息。在一些实施例中,附件协议消息可以对应于并且/或者包括图5所示的附件协议令牌和/或联合图4的块似4描述的附件协议。附件协议消息可以提供对附件能够支持的一个或多个附件协议的指示。附件协议消息例如可以使用反向域名公约来指示出附件协议并且还可以提供与每一个指示出的附件协议唯一相关的附件协议标识符。可在块634发送优选应用消息。在一些实施例中,优选应用消息可以对应于图5 中的优选应用令牌和/或联合图4的块4 论述的优选应用标识符。优选应用消息可以标识能够在MCD处连同附件使用的诸如优选应用之类的应用。此外,优选应用消息还可以指示出可从其下载该优选应用的URL、链接、地址等。因此,如果MCD不包括支持附件协议消息所标识出的协议的或者不支持附件的应用,则优选应用标识符所标识出的应用可被下载并运行。可在块642发送结束标识消息。结束标识消息可被用于用信号表明识别序列的结束。在结束标识消息之后可以可选地接收到确认。在一些实施例中,在已经在MCD处接收到结束标识消息之后,在块646,MCD可以向附件发送完全识别消息。完全识别消息可以确认对识别处理期间接收到的每个消息和/或令牌的接收,并且/或者能够提供表明每个接收到的消息和/或令牌都已被接收的指示。在一些实施例中,完全识别消息能够确认从附件接收的每个消息、命令和/或令牌都被在MCD 处成功解析并且/或者运行。在一些实施例中,在图6所示的识别序列已经完成之后,附件可以使用任何认证方案来向MCD认证其自身。之后,附件和MCD可以使用在块616中标识出的隐语中的任一者来进行通信。另外,如果附件在块630标识出附件协议,则附件和MCD可以使用这样标识出的协议。在一些实施例中,当附件发送消息时,附件可以等待直到接收到确认消息为止。例如,确认可以跟随在构成消息的分组中的一些或全部之后。在一些实施例中,如果在设定的时间范围内没有接收到确认消息,则附件可以超时暂停(time-out)。在其它实施例中,如果确认消息未被接收,则处理可以返回到处理中的在前步骤。在其它实施例中,处理可以在移动到下一块之前等待确认达指定时间段。在一些实施例中,MCD可以仅在消息中存在错误时发送否定确认。在一些实施例中,附件能够在一些实施例中,必须按图6所示的顺序来发送在块616发送的标识消息和/或在块620发送的附件能力消息。即,在一些实施例中,在块616发送的标识消息和/或在块 620发送的附件能力消息必须在能力消息在块614处被从MCD接收之后才发送。此外,在一些实施例中,可按任何顺序发送并且/或者省略附件信息消息、附件首选项消息、附件协议消息和/或优选应用消息(参见块624、627、630、634)。在其它实施例中,可按任何顺序发送联合图6所示出的块描述的消息。图7示出了根据一些实施例的识别处理700的另一流程图。附件的识别开始于块 805。可在块810发送指示出识别的开始的开始DIS命令。可在块815使用发送DIS信息命令来发送识别信息。识别信息可以包括附件名、附件型号、附件序列号、附件类型、附件支持的隐语、附件能力、附件首选项、附件协议、优选应用标识符、附件麦克风能力等。此外,可以如图6和/或图5所示地异常发送某些识别信息。可以使用各种令牌、消息和/或命令来发送识别信息。例如,可以使用图5所示的令牌来发送识别信息。在块815,附件可以发送DIS信息命令以提供其识别信息中的一些或全部给MCD。在块815发送的识别信息可以包括例如附件名、附件型号、附件序列号、附件类型、附件支持的隐语、附件能力、附件首选项、附件协议、优选应用标识符、附件麦克风能力等。例如,在一个实施例中,识别信息可被构造成如图5所示的令牌,并且/或者可被表示为字节序列。 如果用于附件和MCD之间的通信的协议指定了将以命令分组的形式(例如如上所述地)传送信息,则可以使用一个或多个分组来发送识别信息。每个分组可以包括命令代码。在每个分组中,命令代码可以是与“DIS Jnfo”命令相对应的相同命令代码,并且有效载荷可以包含识别信息的一部分。例如,取决于协议所支持的分组长度,DISJnfo命令分组可以包括识别信息的全部或者其任意部分,例如单个令牌、一些令牌或者一个令牌的一部分。在一些实施例中,MCD可以响应以确认,以确认对每个DISJnfo命令的接收(或者响应以指示出分组错误的否定确认)。一旦DIS信息命令已被发送,如果在块825判定有额外的识别信息将发送,则处理 700返回到块815以发送额外的识别信息。如果没有额外的识别信息要发送,则处理通过发送结束DIS消息来移动至块830。随后,可在块840处结束之前在块835处接收到ACK DIS 消息。ACK DIS消息可以包括对接收到的识别信息的确认和/或对接收到的识别信息已被正确解析的确认。虽然处理700在块840处结束了,但是附件可以例如通过继续进行认证处理和/或使用识别信息所指定的隐语来与MCD通信,而继续与MCD进行通信。处理700 可以包括其它动作,例如,生成要被发送的信息和/或从MCD请求信息。图8示出了根据一些实施例可由MCD执行的识别处理800的流程图。处理800开始于块850。在块855从附件接收到指示出设备识别序列的开始的开始DIS命令,并且在块860可从附件接收下一命令。在一些实施例中,在DIS序列期间,MCD仅对DIS信息作出响应,并且请求诸如如上所述的隐语版本和MCD能力之类的有关MCD的信息。相应地,在块 865,MCD可以判断下一命令是否是结束DIS命令。如果不是,则在块866,MCD可以判断下一命令是不是包含识别信息的一部分或全部的DIS信息命令(例如,如上所述)。当接收到DIS信息命令时,MCD可以在块867检查错误(例如,分组传输错误)。在一些实施例中, MCD可以向附件发送对DIS信息命令的接收进行确认的消息;在其它实施例中,MCD不发送针对DIS信息命令的响应直到错误发生为止。如果没有错误,则MCD可以简单地将接收到的DIS信息存储在例如易失性或非易失性存储器中。在块867处检查错误之后,处理返回到块860以等待来自附件的下一命令。如果在块866该命令不是DIS信息命令,则在块868判断下一命令是不是针对MCD 信息的请求,例如针对如上所述的隐语版本信息和/或MCD能力信息的请求。如果是,则在块869MCD向附件返回具有所请求的信息的响应,并且处理返回到块860以等待来自附件的下一命令。如果在DIS期间接收到除针对MCD信息的请求、DIS信息命令或结束DIS命令以外的命令,则到达块870。在一些实施例中,MCD可以在块870向附件发送错误消息以指示出命令是无效的;处理可以返回到块860以等待来自附件的下一命令。处理800可以继续接收与DIS有关的命令并且对那些命令作出响应,直到在块865 检测到结束DIS命令为止。附件可以发送任意数目的DIS信息命令和任意数目的信息请求, 并且这些命令和请求无需按任何特定顺序来发送。DIS信息可被收集并存储(例如在存储器中),直到结束DIS命令被接收为止。
一旦在块865检测到结束DIS命令,MCD就可以在块872对接收到的DIS信息进行解析。如上所述,可以使用一个或多个DIS信息命令来发送DIS信息,并且解析可以包括对从接收到的所有DIS信息命令提取出的DIS信息的全体进行处理。在一个实施例中,可以由附件按与具有键-值对的XML字典相似的布置来构造DIS信息,并且块872处的解析可以利用已知技术来将信息分离成令牌(代码-值对)并且确定每个令牌的内容。在一些实施例中,令牌中的一些或者全部可以是固定长度令牌,并且令牌的代码部分也可以是固定长度(例如,一个或两个字节)。在块872的解析期间,MCD可以读取令牌的代码部分并且基于该代码来确定令牌长度。在其它实施例中,令牌中的一些或者全部可以是可变长度的,并且令牌除了代码-值对之外还可以包括长度信息。例如,令牌可被构造为使得固定长度的代码(例如,一个或两个字节)占据第一位置,后面跟随长度指示符 (例如,一个字节)。MCD可以读取代码和长度指示符,然后基于长度指示符来提取令牌。一旦在块872已经对识别信息进行解析,MCD就可以在块873根据DIS信息来设定其初始操作状态。例如,MCD可以将与各个令牌相关联的值递送给能够提取参数设定的特定处理器、处理对象、模块等,或者MCD可以直接向对处理器、处理对象、模块、逻辑电路等的操作进行控制的适当控件和状况寄存器写入某些值。例如,在一个实施例中,隐语令牌可以包含一种比特掩码,其中,每个比特映射到不同的隐语并且比特的状态(“1”或“0”)指示出该隐语是否可用。在另一实施例中,隐语令牌可以包括可用隐语名称的列表。在任一种情况中,MCD都可以将信息递送给读取那些比特或者名称列表并且相应地使能或禁用每个隐语的协议管理器。作为另一个示例,首选项令牌可以包括这样一种比特掩码,该比特掩码标识出最初是否应当使能特定能力和/或首选项;例如,比特可被指派给音频线路输入、 音频线路输出、视频输入、视频输出等。MCD可以将该比特掩码递送给例如对信号路由进行控制的音频和/或视频处理器。MCD还可以在块875准备ACK DIS消息并将其发送给附件。ACK DIS消息可以包括对接收到的识别信息的确认和/或对接收到的识别信息已被正确解析的确认。如果信息未正确解析,则ACK DIS消息可以指示出错误状况。处理800可以在块880结束,并且MCD 和附件之后可以基于提供来的信息来通信以及进行交互操作。例如,MCD可将附件限制为仅仅使用识别信息所标识出的隐语。将了解,这里描述的识别处理是例示性的,并且可以有各种变体和修改。按次序描述的步骤可被并行执行,步骤的顺序可以改变,并且步骤可被修改、组合、添加和省略。可以发送任意数量的附件识别信息,并且这种信息的数量不受约束。附件可以按任何顺序来发送信息,并且在一些实施例中不需要附件发送识别协议可以支持的所有类型的信息。在一些实施例中,不是使用DIS信息命令的重复实例来发送所有识别信息,而是可以定义多个不同命令并将这些不同命令与不同类型的识别信息相关联。此外,在一些实施例中,MCD可以在接收到识别信息时对其进行解析,而不是等到附件用信号通知识别序列的结束。在一些实施例中,在附件用信号通知识别序列的结束之后,MCD可以拒绝附件进行重新识别或者向先前提供的识别信息中的任一者添加或对其进行变更的尝试,直到附件断开连接并重新连接之时为止。因此,识别序列可以定义与MCD和附件之间的会话相关联的通信参数。在一些实施例中,事务ID可被利用来辅助对消息、命令、请求和/或令牌与接收到的响应、确认、数据等进行匹配。在一些实施例中,事务ID可以包括两字节字段,该字段被添加到与附件之间发送的分组。事务ID可被包括在分组的头部、有效载荷或尾部。当附件在多个端口上通信时,可以在每个端口上使用独立的事务ID计数器。在各个端口处的每个新命令或再次尝试命令可以接收到递增的事务ID。如果一响应被扩展在多个分组上,则每个分组可以包括相同的事务ID。此外,从MCD到附件的请求可以包括由MCD生成的事务ID, 并且附件可以通过发送具有相同事务ID的响应来作出响应。例如,可从附件向MCD发送请求具有第一事务ID的隐语版本信息的消息。响应于是可以包括指示出该响应被与请求隐语版本的消息绑定的第一事务ID。如果由于某种原因没有在附件处接收到响应,则附件可以重新发送隐语版本请求。在这样做时,附件可以包括第二事务ID。当MCD对该重新发送的请求作出响应时,其可以包括第二事务ID。如果由于某种原因MCD在第二请求已被发送之后对第一请求作出响应,则第一响应可被忽略,因为它不包括正确的事务ID。此外,确认可以包括用于指示出MCD正在确认什么消息的事务ID。图9示出了根据一些实施例、使用事务ID在附件和MCD之间传递的命令的示例。可以利用如上所述的事务ID来发送和/或接收任意数目和/或类型的命令、消息、分组等。在图9中,利用事务ID 0x0001从附件向MCD发送开始DIS消息902。作为响应,利用相同的事务ID返回确认903,这指示出该确认是响应于开始DIS消息902而发送的。可以利用事务ID 0x0002从附件向MCD发送附件能力消息904。在此示例中,利用相同事务ID 0x0002发送否定确认906,这指示出数据丢失、字节错误。因此,附件利用新事务ID0x0003 向MCD重新发送附件能力消息908。MCD利用相同事务ID0x0003来返回确认910。在确认 910之后,MCD和/或附件可以交换图中未示出的其它消息和/或命令。利用事务ID 0x0004向MCD发送结束DIS消息912。但是,不论由于什么原因,MCD 没有确认对结束DIS消息的接收。附件随后可以利用事务ID 0x0005来重新发送结束DIS 消息913。例如具有状况信息的返回确认914可被利用事务ID 0x0005来从MCD发送并在附件处被接收。在块914之后,附件和MCD可以使用所指示出的事务ID来继续DIS过程。在稍后的某个时间点,可利用新的事务ID 0x0001从MCD向附件发送获得认证信息消息916,因为该消息正被从MCD发送到附件。可利用相同的事务ID 0x0001从附件向 MCD发送返回认证信息消息918。可以以令牌的形式来发送联合图9描述的消息。例如,令牌可以包括图5所示的表格中所描述的值。在一些实施例中,附件可以从MCD请求能力信息。作为响应,MCD可以通过对所支持的能力进行识别来作出响应,或者可以对该请求作出否定确认以指示出这样的请求不被支持。可以针对不同隐语和/或不同的支持特征来作出请求。在一些实施例中,附件可以在设备识别序列之前、在设备识别序列期间或者在设备识别序列之后从MCD请求能力信息。此外,能力请求可以发生在附件与MCD耦接时的任意时间。例如,能力请求可以在访问某些能力之前发生。MCD可以支持某一隐语的任意数目的命令,并且可被配置为提供各种能力。此外, 一些MCD可以支持隐语的有限子集并且/或者提供有限数目的能力。对于附件来说,知晓哪些隐语得到MCD支持和/或MCD能够执行什么特征是很有用的。因此,一些实施例允许附件从MCD请求能力信息。图10示出了处理1000的流程图,附件可以使用该处理1000来从MCD请求能力信息。
图10开始于块1002。在块1004,附件可以判断其是否与MCD耦接。处理1000可以停留在块1004,直到附件与MCD耦接为止。在块1006,附件可以向MCD发送针对与指定隐语相关联的、MCD的能力的请求。例如,附件可能需要来自MCD的针对一个或多个隐语的能力信息用以确定如何与MCD交互操作。作为另一个示例,特征附件可能支持高级能力,通过请求能力信息,附件可以判断这些高级特征是否得到MCD支持。在一些实施例中,可以在块1006使用诸如GetCapabilityes (取得能力)命令之类的命令。可以在认证之前或之后并且/或者在附件向MCD识别之前或之后发送请求。可以使用处理1000来请求针对任意类型和/或任意数目的隐语的能力。此外,在一些实施例中,可以请求针对任意数目的特征和/或命令的能力。如果在块1008接收到否定确认(NACK),则这可能意味着如下两件事情之一 MCD 不支持响应于来自附件的请求而发送能力信息,或者在块1006中指定的隐语得不到支持。 因此,在块1010,附件可以判断NACK是否指示出请求不被支持或者与该请求相关联的隐语是不是不被支持。如果请求不被支持,则处理1000可以在块1018结束。如果隐语得不到支持,则处理1000可以移动到块1014。在一些实施例中,如果响应于块1006处针对一般性隐语的能力的请求而返回NACK,则该NACK指示出针对能力的请求不被支持。此外,如果响应于块1006处的任意其它隐语而返回NACK,则该NACK指示出请求中指定的隐语不被支持。在其它实施例中,如果NACK返回与块1006中发送的请求相关联的隐语,则该NACK指示出该隐语不被支持并且处理1000可以移动到块1014。如果NACK没有指示隐语,则请求不被支持并且处理可以结束于块1018。例如,可从附件向MCD发送GetCapabilities命令。该命令可以包括隐语,针对该隐语的能力被寻求。在接收到GetCapabilities命令时,MCD可以判断其是否支持(例如,认识)该GetCapabilities命令。如果不支持,则MCD可以发送NACK,该NACK可在块 1008被附件接收。如果GetCapabilities命令受到支持,则MCD可以在块1012通过发送 RetCapabilities命令来识别MCD的能力,所述RetCapabilities命令指示出隐语和/或相关联的所支持能力。例如,RetCapabilities命令可以包括比特掩码,该比特掩码中的每个比特可以与特定能力相关联。因此,例如,MCD可以发送某个比特掩码,其具有被断言为与所支持的能力相关联的比特。因此,在接收到命令时,附件可以通过注意比特掩码中的哪些比特被断言或者不被断言来获悉哪些能力受到支持。该命令还可以包括对关联隐语的指示。下面描述隐语和与之相关联的能力的具体示例。如果在块1014附件需要和/或期望针对其它隐语的能力信息,则在块1016选择另一隐语,并且在块1006可以请求针对与该隐语相关联的能力的请求。但是,如果与其它隐语相关联的能力未被请求,则处理1000结束于块1018。在一些实施例中,附件可以在与移动通信设备连接时随时请求隐语-能力信息。在其它实施例中,MCD可以拒绝请求,直到附件处于适当状态(例如,在DIS之前或期间)为止。附件可以请求针对各种隐语的能力。例如,这些隐语可以包括如下各项中的任一者一般性隐语、麦克风隐语、远程控制隐语、远程显示隐语、远程用户接口隐语、位置隐语、 存储隐语、无线通信隐语、视频隐语、音频隐语和/或任意其它类型的隐语。在一些实施例中,一般性MCD能力可以与一般性隐语相关联。附件可以请求这样的能力,并且MCD可以返回对应响应。一般性能力例如可以包括简单视频输出能力(例如,视频输出是否可用,以及如果可用,则通道视频输出(channel video output)是否可用)、 视频信号格式能力(例如,NTSC、PAL等)、视频信号类型能力(例如,合成(composite)视频输出、S视频(S-video)输出、分量(component)视频输出等)、隐藏字幕(closed caption) 能力、视频高宽比能力(例如,全屏、宽屏等)、视频分辨率能力、字幕(subtitle)能力、交替音频通道能力(例如,音频是否在与视频信号分离的通道上可用,以及如果可用,则为音频通道)等等。在一些实施例中,这些视频能力也可以与其它隐语相关联。在一些实施例中,通信能力可以与通信隐语相关联,并且可以包括通信协议能力 (例如,其它通信协议是否被支持、特定于应用的通信协议是否被支持,等等)、通知能力 (例如,MCD是否支持发送有关MCD处的通信的附件通知)、无线通信能力(例如,MCD是否支持WiFi、小区无线电(cell radio)、蓝牙等,以及MCD是否可以允许附件访问无线通信)、 以及高功率能力。例如,响应于来自附件的针对与一般性隐语相关联的能力的请求,MCD可以返回一消息,该消息具有在比特掩码中被断言(asserted)的比特,这些比特可以指示出 MCD支持NTSC视频格式、支持隐藏字幕并且支持WiFi通信。还可以指定任何其它组合。在一些实施例中,附件可以请求与麦克风相关联的能力。与麦克风相关联的能力例如可以包括双工支持能力、语音处理能力、远程耳机能力、远程麦克风能力、单声/立体声能力等。在一些实施例中,麦克风隐语可以与这些能力相关联。在一些实施例中,附件可以请求与各种类型的媒体相关联的能力,这种能力可以包括附件是否能够控制音频媒体、视频媒体、图像媒体、体育媒体、麦克风和/或无线电(例如,WiFi、蓝牙、小区无线电等)的呈现。例如,音频媒体控制可以指示出附件是否能够控制音频媒体的回放。在一些实施例中,与音量控制相关联的能力可被附件请求,并且可以与诸如附件是否能够提供本地和/或绝对音量控制之类的能力相关联。在一些实施例中,与位置服务相关的能力可被附件请求,这些能力可以包括例如 MCD是否能够支持向附件发送GPS数据和/或MCD是否能够支持从附件接收GPS数据。在其它实施例中,MCD的能力可以包括MCD是否能够支持发送和/或接收历书数据。这些能力例如可以与位置隐语相关联。虽然已经公开了一些具体隐语和能力的示例,但是可以毫无限制地使用其它隐语和/或能力。此外,以上与具体隐语相关联地描述的或者被描述为能力群组的一部分的能力可以与任意其它隐语相关联和/或处在任何其它的能力群组中,而毫无限制。虽然已经参考具体实施例描述了本发明,但是本领域技术人员将认识到可以有许多变体、修改和/或组合。可以以任何顺序来发送令牌,只要令牌的代码和值的关联性得以维持即可。在一些实施例中,令牌可被劈分在多个分组之间。在一些实施例中,可在第一分组中发送令牌代码,而令牌值的第一部分在分组的有效载荷内。第二分组可以将令牌值的其余部分包括在分组的有效载荷中。在一些实施例中,第二分组的有效载荷也可以包括令牌代码,令牌代码后跟令牌值。在一些实施例中,令牌代码不被包括在第一分组之后的一个或多个分组的有效载荷内。在一些实施例中,令牌值可被分段并利用两个以上的分组来发送。在一些实施例中,令牌值可在单个分组内被发送。在一些实施例中,分组头部可以标识出分组的长度以使得有效载荷的长度包括令牌代码和令牌值的长度。此外,可以以任何顺序来发送图5所示的令牌。在一些实施例中,可以发送一个令牌。在一些实施例中,可以发送图5所示的令牌中的仅仅两个令牌。
电路、逻辑模块、处理器和/或其它组件可在这里被描述为“被配置为”执行各种操作。本领域技术人员将认识到,取决于实现方式,这样的配置可通过对特定组件的设计、 设置、互连和/或编程来实现,并且同样取决于实现方式,所配置的组件可能不可重配置或者可以重配置用于不同操作。例如,可通过提供适当的可运行代码来配置可编程处理器;可通过适当地连接逻辑门和其它电路元件来配置专用逻辑电路;等等。虽然上述实施例可能参考具体硬件和软件组件,但是本领域技术人员将了解,也可以使用硬件和/或软件组件的不同组合,并且被描述为在硬件中实现的特定操作也可以被实现在软件中,反之亦然。包含各种特征的计算机程序可被编码在各种计算机可读存储介质上;适当介质包括磁盘或磁带、诸如致密盘(CD)或数字多功能盘(DVD)之类的光学存储介质、闪存等。编码有程序代码的计算机可读存储介质可被与兼容设备封装在一起,或者被与其它设备分离地提供。另外,程序代码可被编码并经由符合各种协议的有线光学网络和/或无线网络(包括因特网)被传输,从而允许例如经由因特网下载来分发。虽然这里已经描述了各种具体实施例,但是将了解,所有修改、等同物和/或组合都在如下权利要求的范围内。
权利要求
1.一种方法,包括与移动计算设备建立通信;向所述移动计算设备发送请求对所述移动计算设备的能力的指示的消息;从所述移动计算设备接收指定了由所述移动计算设备支持的能力的指示;以及使用由所述移动计算设备支持的能力来与所述移动计算设备交互。
2.根据权利要求1所述的方法,其中,发送给所述移动计算设备的消息请求与特定隐语相关的能力,并且从所述移动计算设备接收的指示指定了由所述移动计算设备支持的、 与特定隐语相关的能力。
3.根据权利要求2所述的方法,其中,附件请求与多于一个隐语相关的能力。
4.根据权利要求1所述的方法,其中,从所述移动计算设备接收的指示包括比特掩码, 其中每个比特表示特定能力是否受到所述移动计算设备的支持。
5.根据权利要求1所述的方法,其中,所述能力包括视频格式化能力。
6.根据权利要求5所述的方法,其中,所述视频格式化能力包括来自由以下各项组成的群组中的一个或多个能力视频输出、NTSC视频格式、PAL视频格式、合成视频输出、S视频的视频输出、NTSC连接、隐藏字幕、全屏视频高宽比、宽屏视频高宽比、字幕。
7.根据权利要求1所述的方法,其中,所述能力包括来自由以下各项组成的能力群组中的一个或多个能力线路输出使用、视频输出、交叉传送认证、移动计算设备协议、通知、 双工支持、音频媒体控制、视频媒体控制、图像媒体控制、体育媒体控制、GPS数据输出、音量控制。
8.一种附件设备,包括通信接口,被配置为与移动计算设备通信;和与所述通信接口耦接的控制逻辑,该控制逻辑被配置为经由所述通信接口向所述移动计算设备发送消息和从所述移动计算设备接收消息,其中,所述控制逻辑被配置为发送针对与特定隐语相关联的、所述移动计算设备的能力的请求,并且其中,所述控制逻辑被配置为从所述移动计算设备接收比特掩码,该比特掩码指定了与所述隐语相关联的、受到所述移动计算设备支持的能力。
9.根据权利要求8所述的附件设备,其中,所述控制逻辑还被配置为使用受到支持的能力中的至少一者来与所述移动计算设备交互。
10.根据权利要求8所述的附件设备,其中,所述控制逻辑还被配置为当所述移动计算设备不支持所述隐语或者不支持所述请求时接收否定确认。
11.根据权利要求8所述的附件设备,其中,所述能力包括来自由以下各项组成的群组中的、所述移动计算设备的一个或多个能力无线能力、麦克风能力、由附件进行远程控制的能力、视频能力、音频能力、位置能力。
12.根据权利要求8所述的附件设备,其中,所述隐语是从由以下各项组成的隐语群组中选择的一般性隐语、麦克风隐语、远程控制隐语、远程显示隐语、远程用户接口隐语、位置隐语、存储隐语、无线通信隐语、视频隐语、音频隐语。
13.一种方法,包括在附件和移动计算设备之间建立通信会话;从所述附件接收针对与特定隐语相关联的能力的请求;在所述移动计算设备支持所指定的隐语的情况下,向所述附件发送能力消息,该能力消息指示出与所指定的隐语相关联的、所述移动计算设备的能力;以及在所述移动计算设备不支持所指定的隐语的情况下,向所述附件发送否定确认。
14.根据权利要求13所述的方法,其中,所述能力消息包括比特掩码,该比特掩码中的每个比特指示出特定能力是否受到所述移动计算设备的支持。
15.根据权利要求13所述的方法,其中,所述隐语是从由以下各项组成的隐语群组中选择的一般性隐语、麦克风隐语、远程控制隐语、远程显示隐语、远程用户接口隐语、位置隐语、存储隐语、无线通信隐语、视频隐语、音频隐语。
16.一种移动计算设备,包括通信接口,被配置为与附件通信;和与所述通信接口耦接的控制逻辑,该控制逻辑被配置为经由所述通信接口向所述附件发送消息和从所述附件接收消息,其中,所述控制逻辑被配置为从所述附件接收针对与特定隐语相关联的、受到支持的能力的请求,其中,在所述移动计算设备支持所指定的隐语的情况下,所述控制逻辑被配置为从所述移动计算设备向所述附件发送指定了与所指定的隐语相关联的、受到所述移动计算设备支持的能力的比特掩码,并且其中,在所述移动计算设备不支持所指定的隐语的情况下,所述控制逻辑被配置为向所述附件发送否定确认。
17.根据权利要求16所述的移动计算设备,其中,所述控制逻辑还被配置为使用所指定的隐语来与所述附件交互。
18.—种包含程序指令的计算机可读介质,所述程序指令在被移动通信设备内的控制器执行时,使所述控制器执行在移动通信设备和附件之间传送能力信息的方法,该方法包括从附件设备接收针对能力的请求;和发送包括比特掩码的数据串,所述比特掩码标识出了由所述移动计算设备支持的能力。
19.根据权利要求18所述的计算机可读介质,其中,所述针对能力的请求包括针对与特定隐语相关联的能力的请求。
全文摘要
这里公开的实施例涉及用于附件的移动计算设备附件能力,提供了针对与移动计算设备耦接的附件的能力识别。在能力识别期间,附件可以从移动计算设备请求能力信息。在一些实施例中,附件可以具体地请求与特定隐语相关联的能力信息。作为响应,移动计算设备可以响应以指示出受到支持的、移动计算设备的能力的消息。在一些实施例中,能力可以是与所指定的隐语相关联的那些能力。在一些实施例中,如果移动计算设备不支持某个隐语,则移动计算设备可以利用否定确认来对来自附件的请求作出响应。
文档编号G06F13/42GK102428457SQ201080021429
公开日2012年4月25日 申请日期2010年3月2日 优先权日2009年3月16日
发明者劳伦斯·G·波尔顿, 塞勒什·拉蒂, 斯尔万恩·R·Y·洛伯汀 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1