基于消息的電子設備識別的制作方法
【專利摘要】本發(fā)明公開一種基于消息的識別過程,所述識別過程可以有利于附件與主機設備之間進行可靠的互操作。在識別過程期間,主機設備可協(xié)商操作協(xié)定,所述操作協(xié)定指定允許每個設備向另一個設備發(fā)送或從另一個設備接收的特定通信(例如消息),例如通過使一個設備發(fā)送其期望向另一個設備發(fā)送和/或從另一個設備接收的特定消息的列表。另一個設備可以檢查所述提議并且接受或拒絕所述提議。如果提議被接受,則所述設備可以開始使用包括在所商定的提議中的消息來進行互操作,而忽略不包括在所商定的提議中的任何接收到的消息。
【專利說明】基于消息的電子設備識別
[0001] 相關專利申請的交叉引用
[0002] 本專利申請要求2012年6月8日提交的名稱為"Message-Based Identification of an Electronic Device"的美國臨時專利申請61/657, 586的權益,該申請的全部公開內(nèi) 容W引用方式并入本文W用于所有目的。
【背景技術】
[0003] 本公開一般涉及電子設備之間的數(shù)據(jù)通信,并且具體地,涉及一個設備到另一個 設備的基于消息的識別。
[0004] 諸如智能電話、平板電腦、媒體播放器等便攜式電子設備已變得無處不在。已創(chuàng)造 各種附件來與便攜式電子設備進行互操作,W擴展該些電子設備的功能和/或增強用戶體 驗。附件的實例包括充電器、揚聲器底座、提供用于使用車輛控制臺來控制便攜式設備的選 項的車載底座、鍛煉器材、健康狀態(tài)監(jiān)測附件(例如,也率儀、血壓儀或血糖儀)等??蒞將 附件設計成與在形狀因數(shù)和能力(例如,處理能力;固件版本;電池壽命,存在或不存在攝 像頭、麥克風或其它組件)方面不同的多個便攜式電子設備進行互操作。
[0005] 為了向操作結合有附件的便攜式設備的用戶提供可靠地愉快體驗,可能期望的是 驗證附件是否將與特定便攜式設備一起正確地操作。然而,可能的附件的顯著多樣性W及 特定附件可W連接至其上的不同便攜式設備的數(shù)量使得該種驗證變得困難。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的某些實施例提供一種基于消息的識別過程,該識別過程可W有利于附件 與主機設備(包括便攜式設備)之間的可靠互操作。當附件連接至主機時,該過程可W執(zhí) 行為初始化通信的一部分。在識別過程中,該些設備協(xié)商如下操作協(xié)定:指定允許每個設備 向另一個設備發(fā)送或從另一個設備接收的特定通信(例如消息)。例如,在識別期間,附件 可W向主機設備發(fā)送如下提議;識別附件期望向主機設備發(fā)送和/或從主機設備接收的特 定消息的列表。主機設備可W檢查提議并通知附件是否接受提議。在一些實施例中,如果 提議未被接受,附件可W呈現(xiàn)新的(很可能是經(jīng)修改的)提議。一旦提議已被接受,主機設 備和附件就可W開始進行互操作,該可W包括發(fā)送和/或接收在商定的提議中所識別的任 何消息。在一些實施例中,在操作期間,主機設備可W例如通過忽略商定的提議中未識別的 消息來阻止附件調用或使用提議中未包括的任何功能。同樣,附件可W忽略從主機接收的 在商定的提議中未識別的消息。
[0007] 例如,在一些實施例中,主機設備和附件可W通過交換被限定為屬于附件協(xié)議的 有限的消息"全域(universe)"的一部分的消息來進行互操作。該全域可W包括;遵循協(xié)議 的所有附件和所有主機設備預期支持的"通用"消息集;W及根據(jù)主機設備和附件的能力并 且根據(jù)它們之間協(xié)商的特定操作協(xié)定可能使用或可能不使用的"可選"消息集??蒞使用識 別消息來呈現(xiàn)附件所呈現(xiàn)的提議,該識別消息可W是一條通用消息。識別消息可W包括如 下列表,該列表識別附件提議允許向主機發(fā)送的每一條可選消息W及附件提議從主機接收 的每一條可選消息。(在該實例中,假定支持通用消息,并且不需要列出通用消息。)主機 設備可W確定它是否支持提議中包括的每一條消息。在一些實施例中,主機還可W例如基 于認證操作和/或基于由附件提供的其它識別信息來確定是否應允許附件使用提議中包 括的每一條消息。基于主機設備的確定,主機設備可W對提議作出響應。在一些實施例中, 響應可W是接受或拒絕;在拒絕的情況下,根據(jù)需要可W提供或不提供拒絕原因的指示。
[0008] 如果提議被拒絕,則附件可W具有利用不同提議進行重試的選項。在一些實施例 中,重試可W包括發(fā)送取代先前消息的新識別消息。新識別消息可W包括待發(fā)送和/或接 收的可選消息的不同列表。例如,附件可W首先提議將允許附件最佳地執(zhí)行其所有功能的 可選消息集。如果第一提議未被接受,則附件可W提議將允許附件執(zhí)行其功能(盡管可能 是W次于最佳的方式)或將允許附件執(zhí)行其功能的子集的第二可選消息集。所提議的第二 消息集可W包括所提議的第一集的子集和/或另外的消息;例如,第一集中的消息在第二 集中可W由可用于實現(xiàn)類似功能的一條或多條其它消息代替。一旦提議被接受,主機設備 和附件可W通過交換由附件提供的消息列表上的任何消息W及根據(jù)附件協(xié)議假定支持的 任何通用消息來進行互操作。
[0009] 在一些實施例中,主機設備不限制附件可呈現(xiàn)的不成功提議的數(shù)量。附件可W呈 現(xiàn)任何數(shù)量的提議,直到提議被接受或附件已確定其不具有將被接受的提議。
[0010] 本發(fā)明的某些方面涉及用于根據(jù)協(xié)議在兩個設備之間建立通信的方法,該協(xié)議限 定可由一個設備向另一個設備發(fā)送的消息全域。例如,第一設備可W向第二設備發(fā)送識別 消息,該識別消息包括將消息全域劃分為有效(operative)消息集和無效(inoperative) 消息集的提議。該種提議可W包括將被包括在有效消息集中的至少一些消息的列表。在一 些實施例中,可W將列表分為識別第一設備提議發(fā)送的消息的第一列表和識別第一設備提 議接收的消息的第二列表。作為響應,第二設備可W確定接受還是拒絕提議,并向第一設備 發(fā)送指示提議是被接受或被拒絕的消息。如果提議被接受,則設備可W使用包括在有效消 息集中的由所接受的提議限定的一些或所有消息來進行互操作。接收設備可W忽略所發(fā)送 的未包括在有效集中的任何消息。如果提議被拒絕,則在一些實施例中,第一設備可W發(fā)送 經(jīng)修改的提議(例如,對將被包括在有效消息集中的消息的列表進行修改)。在一些實施例 中,第二設備可W限制重試(經(jīng)修改的提議)的數(shù)量和/或強加用于在通知第一設備提議 被拒絕之后接收經(jīng)修改的提議的超時周期。
[0011] 第二設備在確定接受還是拒絕提議時可W應用各種規(guī)則。例如,由第一設備發(fā)送 的識別消息可W包括設備描述符,該設備描述符可包含W下信息:諸如設備制造商的名稱、 設備型號名稱、設備序號、硬件版本標識符和/或固件版本標識符。第二設備可W使用關 于第一設備的描述性信息來確定所提議的有效消息集是否應當用于該設備。在一些實施 例中,第二設備可W接收來自第一設備的認證信息并且使用該信息來確定接受還是拒絕提 議。因此,如果認證信息指示第一設備未被授權來與第二設備進行互操作,或如果該信息指 示第一設備未被授權來使用所提議的有效消息集中的所有消息,則可W拒絕提議。
[0012] 在一些實施例中,第二設備接收還是拒絕提議可部分地取決于第二設備是否能夠 識別和/或生成所提議的有效消息集中的所有消息。所述確定還可W基于所提議的有效消 息集是否足W實現(xiàn)與該集中的至少一條消息相關聯(lián)的功能。
[0013] 在一些實施例中,發(fā)送提議的設備可W是附件,而接受或拒絕提議的設備可W是 主機。在其它實施例中,該些角色可W互換,并且主機可W向附件發(fā)送提議。用于生成和發(fā) 送提議和/或用于確定接受還是拒絕所接收的提議的控制邏輯可W(例如)通過提供經(jīng)適 當編程的處理器來在設備中實施。
[0014] W下【具體實施方式】連同附圖將提供對本發(fā)明的實質和優(yōu)點的更好理解。
【專利附圖】
【附圖說明】
[0015] 圖1示出根據(jù)本發(fā)明的實施例的主機設備和附件。
[0016] 圖2是根據(jù)本發(fā)明的實施例的包括主機設備和附件的系統(tǒng)的簡化框圖。
[0017] 圖3示出根據(jù)本發(fā)明的實施例的可實施的消息格式。
[0018] 圖4是示出根據(jù)本發(fā)明的實施例的識別消息的表。
[0019] 圖5是根據(jù)本發(fā)明的實施例的列出可針對識別消息進行定義的參數(shù)的表。
[0020] 圖6是根據(jù)本發(fā)明的實施例的可在主機設備中實施的用于協(xié)商識別的過程的流 程圖。
[0021] 圖7是根據(jù)本發(fā)明的實施例的可在附件中實施的識別過程的流程圖。
【具體實施方式】
[0022] 本發(fā)明的某些實施例提供一種基于消息的識別過程,該識別過程可W有利于附件 與主機設備(包括便攜式設備)之間的可靠互操作。該過程可W被執(zhí)行為當附件連接至主 機時初始化通信的一部分。在識別過程中,該些設備協(xié)商如下操作協(xié)定:指定允許每個設備 向另一個設備發(fā)送或從另一個設備接收的特定通信(例如消息)。例如,在識別期間,附件 可W向主機設備發(fā)送如下提議;識別附件期望向主機設備發(fā)送和/或從主機設備接收的特 定消息的列表。主機設備可W檢查提議并通知附件是否接受提議。在一些實施例中,如果 提議未被接受,附件可W呈現(xiàn)新的(假定是經(jīng)修改的)提議。一旦提議已被接受,主機設備 和附件就可W開始進行互操作,該可包括發(fā)送和/或接收在商定的提議中所識別的任何消 息。在一些實施例中,在操作期間,主機設備可W例如通過忽略商定的提議中未識別的消息 來阻止附件調用或使用提議中未包括的任何功能。同樣,附件可W忽略從主機接收的在商 定的提議中未識別的消息。
[0023] 圖1示出根據(jù)本發(fā)明的實施例的主機設備100和附件102。
[0024] 主機設備100可W是例如手持設備諸如媒體播放器、智能電話或個人數(shù)字助理; 平板電腦;膝上型計算機;臺式計算機;或能夠與其它設備通信的任何其它電子設備。在一 些實施例中,主機設備100可W是便攜式設備(便攜式設備是指容易由用戶從一個地方攜 帶到另一個地方的設備),但該不是必需的。在例示實例中,主機設備100是平板電腦,該平 板電腦具有由邊框106包圍的顯示區(qū)域104和控制按鈕108。插座連接器110提供在主機 設備100的底部(例如,凹進到外殼中)W允許附件連接至主機設備100。
[00巧]附件102可W是能夠與主機設備102進行交互的任何附件,如揚聲器底座或揚聲 器系統(tǒng)、媒體控制臺、汽車頭部單元等。附件102可W具有各種用戶接口組件,諸如揚聲器 112、顯示器114和用戶可操作控件116。在例示實例中,附件102具有插頭連接器118,該 插頭連接器可插入到插座連接器110中W提供附件102與主機設備100之間的電連接和機 械連接。在一些實施例中,電連接可W包括電力連接和數(shù)據(jù)連接,從而允許附件102向主機 設備100傳送電力和/或從主機設備100接收電力。雖然指示了連接器110與118之間的 直接連接,但應當理解,一些實施例可W使用間接連接,例如經(jīng)由纜線或適配器。在一些實 施例中,除了或代替如由連接器110和118提供的有線信號路徑,主機設備100和附件102 能夠例如使用射頻通信技術(諸如Wi-Fi或藍牙、近場通信技術、紅外通信等)來進行無線 通信。在一些實施例中,可W在主機設備100與附件102之間同時建立多個通信路徑,其中 選擇性地在不同路徑上傳送不同類型的信息。
[0026] 通過例如經(jīng)由連接器110和118的通信,主機設備100和附件102可W實現(xiàn)各種 功能。例如,在一些實施例中,主機設備100可W傳送媒體內(nèi)容供附件102呈現(xiàn),并且可W 向附件102提供狀態(tài)信息(例如,關于當前正在播放的音軌的信息)W供例如在顯示器114 上呈現(xiàn)給用戶。用戶可W操作附件102的控件116來控制媒體資產(chǎn)的回放(例如播放/暫 停)或對不同資產(chǎn)的選擇。又如,附件102可W包括用于例如從FM、AM或衛(wèi)星發(fā)射器接收 媒體內(nèi)容的無線電接收器(未示出)。便攜式設備100可W用于控制無線電接收器的操作, 例如頻道或節(jié)目選擇。許多其它類型的互操作也是可能的。
[0027] 為了有利于互操作,主機設備100和附件102可m辦商限定它們將互相支持的功 能的操作協(xié)定。在一些實施例中,該協(xié)定是在主機設備100和附件102建立連接時商定,并 且協(xié)商該協(xié)定可W是設備識別過程的一部分。
[002引例如,如插圖130中所示,附件設備102可W包括附件側識別邏輯132和一個或多 個提議134。每個提議134可W包括附件102提議允許向主機發(fā)送和/或從主機接收的消 息的列表。每個提議可W包括足W允許附件執(zhí)行其功能的至少某一子集的消息的列表,并 且不同提議134可W附件偏好的順序進行排列;例如,提供完整的附件功能集的提議可W 排列在提供部分功能的提議之前。在一些實施例中,可W針對附件預先生成一個或多個提 議134 (例如,結合到附件固件中);此外或作為替化可W實時生成提議134 (例如,部分地 基于由主機設備提供的信息)。
[0029] 如插圖120中所示,主機設備100可W包括主機側識別邏輯122和提議規(guī)則124。 提議規(guī)則124可W包括用于確定W下各項的規(guī)則:是否能夠同時支持由附件提議的消息的 特定組合,為了支持特定消息附件需要具有什么能力,等等。W下描述了用于評估提議的規(guī) 則的具體實例。
[0030] 在操作中,當主機設備100和附件設備102建立連接時,附件側識別邏輯132可W 選擇(或生成)用于在識別消息140中呈現(xiàn)給主機設備100的一個提議134。主機側識別 邏輯122可W接收識別消息140并且確定接收還是拒絕該提議??蒞通過參考提議規(guī)則 124作出該確定。主機側識別邏輯122可W將其確定作為響應142傳送給附件側識別邏輯 134。如果提議被接受,則附件和主機設備可W進行通信,并且在通信過程中可W交換所接 受的提議134中列出的任何消息。如果提議被拒絕,則附件側識別邏輯132可W選擇(或 生成)另一個提議134,并且在新識別消息140中呈現(xiàn)新提議134。該個過程可W繼續(xù),直 到主機100接受提議,直到附件102確定不再發(fā)送另外的提議或主機100發(fā)出將不允許進 一步嘗試的信號。
[0031] 應當理解,圖1的主機設備和附件是例示性的,并且可W進行變型和修改。主機設 備和/或附件可W實現(xiàn)任何功能組合。在一些實施例中,并非附件呈現(xiàn)提議供主機接受(或 拒絕),而是主機可W向附件呈現(xiàn)提議,并且附件可作出接受還是拒絕來自主機的提議的決 定。在本文所述的實施例中,提議作為一個整體被接受或拒絕。其它實施例可W限定一種 反復協(xié)商過程,在該協(xié)商過程中一個設備可W接收來自另一個設備的提議、修改該提議的 不被接受的部分并且將經(jīng)修改的提議發(fā)送給該另一個設備W供考慮。在接收經(jīng)修改的提議 時,該另一個設備可W接受經(jīng)修改的提議或作出進一步修改,并且該過程可繼續(xù),直到任一 個設備所發(fā)送的提議由另一個設備接受。
[0032] 可W使用各種消息格式和信號發(fā)送技術來傳送識別消息和決定,其中細節(jié)取決于 附件協(xié)議。判定過程可W實施多種結合關于附件和/或主機的任何可用信息的規(guī)則。W下 描述了合適的格式和過程的實例。
[0033] 主機設備和附件可W實施為經(jīng)由一個或多個接口通信W支持互操作的單獨計算 設備。圖2是根據(jù)本發(fā)明的實施例的包括主機設備202和附件204的系統(tǒng)200的簡化框圖。 在該實施例中,主機設備202 (例如,實施圖1的主機設備100)可W提供計算、通信、媒體回 放和/或其它能力。主機設備202可W包括處理子系統(tǒng)210、存儲設備212、用戶接口 214、 網(wǎng)絡接口 216和附件輸入/輸出(I/O)接口 218。主機設備202還可W包括其它組件(未 明確示出),諸如電池、電力控制器和可操作來提供各種增強能力的其它組件。
[0034] 存儲設備212可例如使用磁盤、閃存存儲器、或任何其它非暫態(tài)存儲介質或介質 組合來實施,并且可W包括易失性和/或非易失性介質。在一些實施例中,存儲設備212 可W存儲介質對象,諸如音頻文件、視頻文件、圖像或圖片文件;關于用戶聯(lián)系方式的信息 (姓名、地址、電話號碼等);關于用戶安排的約會或事件的信息;筆記;和/或其它類型的 信息。在一些實施例中,存儲設備212還可W存儲待由處理子系統(tǒng)210執(zhí)行的一個或多個 應用程序(例如,視頻游戲程序、個人信息管理程序、媒體回放程序等)。
[00巧]用戶接口 214可W包括輸入設備,諸如觸摸板、觸摸屏、滾輪、點擊輪、撥號盤、按 鈕、開關、小鍵盤、麥克風等;W及輸出設備,諸如視頻屏幕、指示燈、揚聲器、耳機接口等,連 同支持性電子設備(例如,數(shù)?;蚰?shù)轉換器、信號處理器等)。用戶可W操作用戶接口 214 的輸入設備來調用主機設備202的功能,并且可W通過用戶接口 214的輸出設備來查看和 /或收聽來自主機設備202的輸出。
[0036] 處理子系統(tǒng)210可W實施為一個或多個集成電路,例如一個或多個單核或多核微 處理器或微控制器,該些微處理器或微控制器的實例在本領域中是已知的。在操作中,處理 系統(tǒng)210可W控制主機設備202的操作。在各種實施例中,處理子系統(tǒng)210可W響應于程 序代碼執(zhí)行各種程序,并且可W維護多個同時執(zhí)行的程序或進程。在任何給定時間,待執(zhí)行 的一些或全部程序代碼可W駐留在處理子系統(tǒng)210和/或存儲介質諸如存儲設備212中。
[0037] 通過合適的編程,處理子系統(tǒng)210可W為主機設備202提供各種功能。例如,在一 些實施例中,處理子系統(tǒng)210可W實施圖1的一些或全部主機側識別邏輯122。處理子系統(tǒng) 210還可W執(zhí)行其它程序來控制主機設備202的其它功能,包括可存儲在存儲設備212中的 應用程序;在一些實施例中,該些應用程序可W例如通過生成待發(fā)送至附件204的消息和/ 或通過從附件204接收消息來與附件204進行交互。
[0038] 網(wǎng)絡接口 216可W為主機設備202提供語音和/或數(shù)據(jù)通信能力。在一些實施例 中,網(wǎng)絡接口 216可W包括;用于訪問無線語音和/或數(shù)據(jù)網(wǎng)絡(例如,使用蜂窩電話技術、 先進數(shù)據(jù)網(wǎng)絡技術諸如3G或邸GE、Wi-Fi (IE邸802. 11系列標準),或其它移動通信技術, 或它們的任何組合)的射頻(R巧收發(fā)器組件、用于短范圍無線聯(lián)網(wǎng)(例如,使用藍牙標準) 的組件、GI^接收器組件和/或其它組件。在一些實施例中,除了或代替無線接口,網(wǎng)絡接口 216可W提供有線網(wǎng)絡連接性(例如W太網(wǎng))。網(wǎng)絡接口 216可W使用硬件組件(例如,驅 動電路、天線、調制器/解調器、編碼器/解碼器,W及其它模擬和/或數(shù)字信號處理電路) 與軟件組件的組合來實施。
[0039] 附件I/O接口 218可W允許主機設備202與諸如附件204的各種附件進行通信。例 女口,附件I/O接口 218可W支持到計算機、外部鍵盤、揚聲器底座或媒體回放站、數(shù)字相機、 無線電調諧器、車載娛樂系統(tǒng)或頭部單元、外部視頻設備、存儲卡讀卡器等的連接。在一些 實施例中,附件I/O接口 218可W包括;連接器,諸如對應于各種iP〇d\ iPhone K'和iPad K 產(chǎn)品中所使用連接器的連接器,W及支持電路。連接器可W提供用于電力和接地的連接,W 及用于一個或多個數(shù)據(jù)通信接口的連接,諸如通用串行總線扣SB)、火線(I邸E 1394標準) 和/或通用異步接收器/發(fā)射器扣ART)。在一些實施例中,連接器提供專用的電力和接地 觸點,W及可用于并行地實施不同通信技術的一定數(shù)量(例如四個)的可編程數(shù)字數(shù)據(jù)觸 點;例如,可W將兩個弓I腳分配為USB數(shù)據(jù)引腳(D+和D-)并且將兩個其它引腳分配為串行 發(fā)送/接收引腳(例如,實施UART接口);針對特定通信技術的引腳分配可W在連接正在 建立時進行協(xié)商。在一些實施例中,連接器還可W提供用于音頻和/或視頻信號的連接,該 些音頻和/或視頻信號能夠W模擬和/或數(shù)字格式發(fā)送至主機設備202或從主機設備202 發(fā)送。因此,附件I/O接口 218可W支持多個通信信道,并且給定附件可W使用該些信道中 的任一個或全部。在一些實施例中,除了或代替有線通信信道,附件I/O接口 218可W支持 無線通信(例如,經(jīng)由Wi-Fi、藍牙或其它無線協(xié)議)。
[0040] 附件204(例如,實施圖1的附件102)可W包括控制器230、用戶接口設備232、附 件專用硬件234、主機I/O接口 236和認證模塊238。附件204代表可W與主機設備進行互 操作的一大類附件,并且此類附件在能力、復雜性和形狀因數(shù)方面可能有很大不同。各種 附件可W包括圖2中未明確示出的組件,包括但不限于具有固定或可移除的存儲介質的存 儲設備(磁盤、閃存存儲器等);視頻屏幕、揚聲器、或用于連接至外部音頻/視頻設備的端 口;相機組件,諸如鏡頭、圖像傳感器和用于相機組件的控件(例如,光圈、變焦、曝光時間、 峽速率等);用于記錄音頻(單獨或與視頻記錄結合)的麥克風;等等。此外,一些附件可 W提供可連接至另一個附件并且與其通信的另外的接口(未示出)。
[0041] 控制器230可W包括例如執(zhí)行程序代碼W便執(zhí)行與附件204相關聯(lián)的各種功能的 一個或多個單核或多核微處理器和/或微控制器。例如,在附件230結合有用戶可操作控 件(例如,圖1的控件116)的情況下,控制器230可W解譯用戶對控件的操作并且作為響 應來調用附件204的功能。在一些情況下,所調用的功能可W包括向主機設備202發(fā)送消 息和/或從主機設備202接收消息。又如,控制器220可W實施圖1的一些或全部附件側 識別邏輯132。
[0042] 用戶接口 232可W包括;用戶可操作輸入設備,諸如觸摸板、觸摸屏、滾輪、點擊 輪、撥號盤、按鈕、開關、小鍵盤、麥克風等;W及輸出設備,諸如視頻屏幕、指示燈、揚聲器、 耳機接口等,連同支持性電子設備(例如,數(shù)?;蚰?shù)轉換器、信號處理器等)。根據(jù)特定附 件204的具體實施,用戶可W操作用戶接口 232的輸入設備來調用附件204的功能。
[0043] 附件專用硬件234可W包括可存在于附件204中W使能其功能的任何其它組件。 例如,在各種實施例中,附件專用硬件234可W包括使用固定或可移除的存儲介質的一個 或多個存儲設備;GI^接收器;網(wǎng)絡接口;電源和/或電力管理電路;環(huán)境傳感器(例如,溫 度傳感器、壓力傳感器、加速度計、化學傳感器等);等等。應當理解,可W通過提供適當?shù)?附件專用硬件234來支持任何類型的附件功能。
[0044] 主機I/O接口 236可W允許附件204與主機設備202進行通信。根據(jù)本發(fā)明的一 些實施例,主機I/O接口 236可W包括與主機設備202中所包括的連接器直接配合的連接 器,諸如與各種iPod\ iPhone"和iPad"產(chǎn)品中所使用的連接器互補的連接器。該種連接 器可W用于向主機設備202供應電力和/或從主機設備202接收電力,用于發(fā)送和/或接 收呈模擬和/或數(shù)字格式的音頻和/或視頻信號,并且用于使用諸如USB、UART和/或火線 的一個或多個數(shù)據(jù)通信接口來傳送信息。也可W使用其它連接器;例如,主機I/O接口 236 可W結合標準USB連接器,并且可W經(jīng)由適配器纜線連接至主機設備202的附件I/O接口 218。在其它實施例中,除了或代替有線通信信道,主機I/O接口 236可W支持無線通信(例 女口,經(jīng)由Wi-Fi、藍牙或其它無線協(xié)議)。
[0045] 認證模塊238可W向主機設備202提供認證信息,例如W便核實附件204的身份。 例如,認證模塊238可W存儲數(shù)字證書,該數(shù)字證書可W在主機I/O接口 236與附件I/O接 口 218之間建立連接時提供給主機設備202。認證模塊238還可W包括密碼邏輯。在一些 實施例中,為了核實附件204的身份,主機設備202可W發(fā)送待由附件204使用私匙進行數(shù) 字簽名(例如,編碼)的隨機數(shù)(random nonce),并且認證模塊238可W存儲私匙W及編程 或硬連線的控制邏輯,W便使用所存儲的私匙來對該隨機數(shù)進行簽名。可W實施各種認證 機制。
[0046] 附件204可W是與主機設備202進行交互的任何電子裝置。在一些實施例中,附 件204可W通過對主機設備202或遠程用戶接口的操作來提供遠程控制,該遠程用戶接口 可W包括輸入控件和輸出控件(例如,用于顯示從主機設備202獲得的當前狀態(tài)信息的顯 示屏)。在各種實施例中,附件204可W控制主機設備202的任何功能并且還可W從主機設 備202接收數(shù)據(jù)對象。在其它實施例中,主機設備202可W控制附件204的操作,諸如從附 件204的存儲介質檢索所存儲的數(shù)據(jù)、由結合到附件204中的相機啟動圖像捕獲操作等。
[0047] 應當理解,本文所述的系統(tǒng)配置和組件是例示性的,并且可W作出變型和修改。主 機設備和/或附件可W具有未在本文中具體描述的其它能力(例如,移動電話、全球定位系 統(tǒng)(GP巧、寬帶數(shù)據(jù)通信、互聯(lián)網(wǎng)連通性等)。根據(jù)具體實施,該些設備可W進行互操作,W 便提供由任一(或兩個)設備支持的任何功能或提供在每個設備中部分地實現(xiàn)的功能。在 一些實施例中,主機設備可W具有不可經(jīng)由附件設備訪問或調用的一些功能。同樣,附件設 備可W具有不可經(jīng)由主機訪問或調用的一些功能。
[0048] 根據(jù)需要,主機設備202和附件204的相應I/O接口 218、236處的連接器可W是 互補的或不互補的。在兩個連接器不互補的情況下,可W提供適配器(未示出)來連接該 兩個設備。雖然在本文中將連接器描述為具有引腳(該術語通常與具有用于連接多個組件 的電線的常規(guī)電子設備相關聯(lián)),但應當理解,連接器可W用其它信號路徑(例如,光信號 發(fā)送)代替。另外,在一些實施例中,一些連接可W是無線的,并且在提供無線接口的情況 下可W省略連接器。
[0049] 此外,盡管本文參考特定塊描述了主機設備和附件,但應當理解,限定該些塊是為 了描述方便,而并非意在暗示組件部分的特定物理布置。此外,塊不必對應于物理上不同的 組件。可W配置塊W執(zhí)行各種操作,例如通過對處理器編程或提供適當?shù)目刂齐娐?,并且?據(jù)初始配置是如何獲得的,各個塊可W是可重新配置的或不可重新配置的。可W在包括利 用電路和軟件的任何組合實現(xiàn)的電子設備在內(nèi)的各種裝置中實施本發(fā)明的實施例。
[0050] 主機設備202的附件I/O接口 218和附件204的主機I/O接口 236允許主機設備 202與附件204連接并且隨后與附件204斷開。如本文所用,每當主機設備和附件的相應接 口之間建立通信信道時主機設備和附件"連接",并且當該信道終止時"斷開"。該種連接可 W通過W下方式來實現(xiàn);直接物理連接,例如利用配合連接器;間接物理連接,例如經(jīng)由纜 線;和/或無線連接,例如經(jīng)由藍牙。
[0051] 在一些實施例中,主機設備和附件可W通過根據(jù)"附件協(xié)議"交換消息和數(shù)據(jù)而連 接時進行通信??蒞使用由相關接口提供的任何有線或無線傳輸介質來傳送消息和數(shù)據(jù)。
[0052] 附件協(xié)議可W限定可在主機設備202與連接至其上的任何附件諸如附件204之間 進行交換的消息"全域"。消息格式可W包括例如用于指示接下來是消息代碼的起始位或位 序列,該起始位或位序列之后是可由接收者解譯并起作用的實際消息代碼。至少一些消息 代碼可W具有由協(xié)議限定的一個或多個相關聯(lián)參數(shù),并且除消息代碼之外,消息可W包括 用于任何此類參數(shù)的值。在一些情況下,協(xié)議還可W規(guī)定接收者在未接收到與消息代碼相 關聯(lián)的特定參數(shù)的情況下或與消息代碼一起接收到預期之外參數(shù)的情況下的行為。針對不 同的消息,參數(shù)數(shù)量可W不同,并且在一些情況下,參數(shù)可W具有可變長度。在一些實施例 中,消息代碼可W限定成使得給定消息代碼僅在一個方向上有效。也可W使用其它消息結 構。
[0053] 附件協(xié)議還可W限定用于消息交換的格式。例如,附件協(xié)議可W規(guī)定使用一個或 多個分組來發(fā)送消息,每個分組均具有標頭和有效載荷。標頭提供基本信息(例如,啟動指 示符;分組長度;分組序列號;與分組相關聯(lián)的會話的標識符,如下文所述),而有效載荷提 供所有或部分消息數(shù)據(jù)。分組還可W包括本領域中已知的錯誤檢測代碼或錯誤校正代碼。
[0054] 在一些實施例中,照理可W將消息分為"通用"消息集和"可選"消息集??蒞要 求使用附件協(xié)議的每個附件和每個主機設備至少支持通用消息集。該消息集可W包括使得 主機設備和附件本身能夠彼此識別和認證并且能夠協(xié)商它們將互相支持的功能的消息。例 女口,通用消息集可W包括如下消息:附件可向主機設備發(fā)送該消息,用于列出可選集中附件 能夠發(fā)送的每條消息和可選集中附件能夠接收并起作用的每條消息;W下描述了實例。通 用消息集還可W包括認證消息,主機設備可W使用該些認證消息來核實所支持的附件的身 份和能力(或反之亦然),并且如果認證不成功的話可W阻止附件(或主機設備)調用某些 (或所有)可選消息。
[0055] 可選消息集可W包括與給定附件可能支持或可能不支持的各種功能相關的消息。 例如,可選消息集可W包括;允許附件識別主機設備的待調用的功能的簡單遠程消息,可用 于獲得與在附件上復制主機設備的全部或部分用戶接口相關的信息的遠程用戶接口消息 (從而支持更高級的遠程控制),允許用戶通過操作主機設備來控制附件中的無線電調諧 器和/或通過操作附件來控制主機設備中的無線電調諧器,有利于數(shù)據(jù)對象在主機設備與 附件之間的傳輸?shù)南?,等等。可W在附件協(xié)議中限定任何可選消息的組合,并且不要求給 定的附件或主機設備支持所有(或甚至任一條)可選消息。
[0056] 圖3示出根據(jù)本發(fā)明的實施例的可針對附件協(xié)議中所限定的一些或所有消息實 施的消息300的格式。每條消息300能夠W消息起始("BOM")標記302開始。BOM標記 302可W是例如用于指示接下來是消息的特定字節(jié)代碼、字符或字符序列。消息標識符(消 息ID) 304可W跟在BOM標記302之后;該個標識符指示正在發(fā)送哪個消息。在一些實施例 中,所有消息具有相同的長度(Lm),并且根據(jù)協(xié)議將支持的消息總長度,可W是例如1字節(jié) 或2字節(jié)。
[0057] 消息ID 304之后可W是與消息ID相關聯(lián)的零個或多個參數(shù)對/值對306。不同 的消息ID可W具有不同數(shù)量的相關聯(lián)參數(shù)(包括對于一些消息ID,零參數(shù)),并且根據(jù)具 體實施,與特定消息ID相關聯(lián)的一些或所有參數(shù)可W是可選的??紤]到靈活性,每個參數(shù) 對/值對可W包括顯式參數(shù)標識符(參數(shù)ID) 308,緊跟其后的是用于該參數(shù)的值310。對 于所有參數(shù),參數(shù)ID可W具有固定長度(例如,1字節(jié)),其中為與特定消息ID相關聯(lián)的每 個參數(shù)分配不同的ID。值310的長度可W取決于參數(shù)ID。與標識和協(xié)商互操作能力相關 聯(lián)的參數(shù)ID和值的實例在下文進行了描述。在最后一個參數(shù)對/值對306之后,消息300 可例如W消息結束("E0M")標記330結束。如同BOM標記302,E0M標記330可W是例如 特定字節(jié)、字節(jié)代碼、字符或字符序列。EOM標記330可W是與BOM標記302不同的值并且 不同于與參數(shù)ID相關聯(lián)的任何字節(jié)代碼。
[0058] 在一些實施例中,符合附件協(xié)議的每條消息都使用消息300的格式,包括由兩個 設備發(fā)送的消息。消息300的接收者可W通過W下方式來解析該消息:識別BOM標記302, 將接下來的Lm字節(jié)解譯成消息ID 304,隨后基于該消息ID來解譯所包括的每個參數(shù)對/ 值對306。因此,例如與"設定視頻分辨率"消息的消息ID相關聯(lián)的參數(shù)ID 6可表示該相 關聯(lián)的值指示W(wǎng)像素為單位的屏幕尺寸,而與"設定音頻采樣率"消息相關聯(lián)的參數(shù)ID6表 示相關聯(lián)的值指示每砂的樣本數(shù)量。
[0059] 如上文所指出,參數(shù)值的長度可W取決于參數(shù)ID。解析所接收消息的接收者可讀 取參數(shù)ID 308,確定相關聯(lián)的值的期望長度(Lv)(例如,W字節(jié)為單位),并且相應地將接 下來的Lv字節(jié)解譯為該值。除非接下來的字節(jié)對應于分配給EOM標記330的字節(jié)代碼(在 該種情況下消息被認為是完整的),否則接下來的字節(jié)可W被解譯為下一個參數(shù)值。
[0060] 顯式參數(shù)對/值對(而不是例如假定某一參數(shù)順序)的使用提供了靈活性。例 女口,可W為與特定消息ID 304相關聯(lián)的一些或所有參數(shù)分配默認值,并且發(fā)送者可W將待 使用默認值的任何參數(shù)從消息300中省略。該可減少消息長度。此外,當協(xié)議隨時間推移 而發(fā)展(例如,W便適應新設備和/或新功能)時,可W向消息添加新參數(shù)??蒞維持正 向和反向兼容性,只要為在消息的初始定義建立之后添加到該消息的任何新參數(shù)限定默認 值。即使設備不發(fā)送特定參數(shù)(例如,因為其實施早于新參數(shù)定義的較舊版本的協(xié)議),接 收者仍然可W解析消息并作出適當?shù)膭幼?。在一些實施例中,協(xié)議可W規(guī)定:如果設備接收 到具有已識別的消息ID但未識別的參數(shù)ID的消息,則設備應當忽略該未識別的參數(shù)。該 可W允許實施較舊版本的協(xié)議的設備與較新設備進行互操作,而任一設備均不必協(xié)商版本 特定的差異。
[0061] 如上所述,消息300可W包括與附件到主機設備(和/或反之亦然)的識別相關 W及與協(xié)商該些設備將協(xié)同實現(xiàn)的功能(在本文中也被稱為操作協(xié)定)相關的消息。圖4 是示出根據(jù)本發(fā)明的實施例的識別消息的表400。對于列402中的每條消息,在列404中指 示有效的方向(主機到附件或附件到主機);列406描述每條信息可W包括的參數(shù)。
[0062] 主機可W向附件發(fā)送IDStart消息W啟動識別過程。在該實例中,IDStart消息 不包括參數(shù);它僅僅指示主機已準備好從附件接收識別提議。在一些實施例中,IDStart消 息可W包括提供關于主機設備的基本信息(例如,制造商和型號標識符、固件版本等)的參 數(shù)。在一些實施例中,主機可W發(fā)送單獨消息(未示出)來向附件提供主機識別信息。
[0063] 附件可W向主機發(fā)送IDIn化消息W提供識別提議。該IDIn化消息可W包括作為 參數(shù)的多個"信息項",每個"信息項"具有相關聯(lián)的值。W下參照圖5描述具體實例。在一 些實施例中,單個IDIn化消息可W包括;關于附件的所有識別信息,包括制造商和型號信 息;附件提議允許發(fā)送和/或接收的附件協(xié)議消息的列表;附件可W與其進行交互的信息 識別應用程序;關于附件的設置和偏好的信息;關于附件的電源和/或功率消耗特性的信 息;W及關于附件所支持的物理傳輸(例如,USB、UART或其它串行端口、藍牙、Wi-Fi、其它 無線傳輸)的信息。根據(jù)具體實施,IDIn化命令可W任何所需細節(jié)程度向主機提供關于附 件的能力和所提議功能的完整信息。因此,在一些實施例中,附件可W通過發(fā)送IDIn化信 息來向主機呈現(xiàn)互操作的提議。
[0064] 主機可W向附件發(fā)送IDAccept消息W指示提議(例如,如通過IDIn化消息傳送) 被接受;主機可W向附件發(fā)送IDReject消息W指示提議已被拒絕。在一些實施例中,主機 基于IDIn化命令中的信息和其本身的規(guī)則集來確定接受還是拒絕提議。多個實例在下文 進行了描述。
[0065] 主機可W向附件發(fā)送IDTimeout消息W指示超時狀態(tài)。例如,如果主機發(fā) 送IDStart消息并且附件在設定時間段內(nèi)未用IDIn化消息作出響應,則主機可W發(fā)送 IDTimeout消息W指示將不接受未來的消息,包括IDIn化消息。在附件發(fā)送IDIn化消息而 由于某種原因主機未收到該信息的情況下,IDTimeout消息可W向附件提醒該問題;該條 消息可W阻止附件無限期地等待來自主機的響應。
[0066] 附件可W發(fā)送IDCancel消息W指示它不打算完成識別過程(該識別過程可W包 括操作協(xié)定的協(xié)商)。該消息可W例如在附件接收到IDReject消息之后發(fā)送,如果附件確 定它將不會重試。響應于IDCancel消息,主機設備可W使到附件的連接終止或通過發(fā)送新 IDStart消息重新開始識別。在一些實施例中,已完成識別過程的附件可W在任何時間發(fā)送 IDCancel消息W重新識別它本身,并且主機可W通過發(fā)送新IDStart消息來響應。
[0067] 附件可W發(fā)送ID化date消息W便在附件已被接受之后更新識別。在一些實施例 中,可W將可使用I孤Pdate消息更新的參數(shù)限制到IDIn化消息的參數(shù)子集。因此,例如, 可W允許附件通過發(fā)送ID化date消息來改變其名稱或某些用戶偏好設置,但不允許改變 其可發(fā)送或接收的消息的列表。
[0068] 如W上所指出,IDIn化消息可W包括關于附件的所有識別信息。圖5是根據(jù)本發(fā) 明的實施例的列出可針對IDIn化消息進行限定的參數(shù)的表500。列502中列出的每個參數(shù) 均具有確定其長度和有效數(shù)值范圍(列506)的參數(shù)類型(列504),該有效數(shù)值范圍指示一 條IDIn化消息中可包括的參數(shù)實例的數(shù)量。更新列508針對每個參數(shù)指示該參數(shù)是否也 可W包括在ID化date消息中。不能包括在ID化date消息中的任何參數(shù)可W由附件例如通 過發(fā)送IDCancel消息和新IDIn化消息來改變。
[0069] 第一組參數(shù)510包括提供關于附件的基本信息(例如,其名稱、制造商、型號、序 號、固件版本和硬件版本)的參數(shù)。該些參數(shù)中的每一個都可W限定為具有固定長度(例 女口,32字符)的"字符串"類型。如列506中所指示的那樣,在一些實施例中,要求附件為 該些參數(shù)中的每一個剛好提供一個值。因此,主機可W拒絕未能指定該些參數(shù)的IDIn化消 息。
[0070] 第二組參數(shù)512包括識別來自附件協(xié)議的附件提議允許發(fā)送和接收的特定消息 的參數(shù)。此類消息被稱為包括在所提議的"有效"子集中。在該實例中,可W使用單獨參數(shù) 來指定附件可發(fā)送的消息(消息發(fā)送列表)和附件可接收的消息(消息接收列表)。每個 參數(shù)可W限定為"數(shù)組"類型,并且該數(shù)組中的每個元素可W恰好是消息代碼的尺寸Lm(例 如,1或2字節(jié));因此,每個參數(shù)的值可W是適當消息代碼的列表。預期的是,列表的長度 可W取決于附件功能和協(xié)議具體實施的細節(jié)(例如,何種通信使用不同消息與使用具有不 同參數(shù)值的相同消息)而變化。
[0071] 為了允許可變長度的列表,在一些實施例中,數(shù)組型參數(shù)值的長度可W是可變的。 例如,數(shù)組可W尺寸指示符(例如,用于指示數(shù)組中元素數(shù)量的一個或兩個字節(jié))開始,之 后是數(shù)組的元素(在該種情況下為用于待發(fā)送或接收的消息的實際消息代碼)。尺寸指示 符還可W指示每個元素的尺寸(所有元素的尺寸可W相同),或可W基于數(shù)組相關聯(lián)的參 數(shù)ID來確定元素尺寸。基于參數(shù)ID,接收者可W意識到接下來是數(shù)組,讀取尺寸指示符,隨 后讀取該數(shù)組的每個元素。
[0072] 在所示實施例中,附件指定恰好一個待發(fā)送消息列表和恰好一個待接收消息列 表。如上所述,在一些實施例中,可W將消息全域分為通用消息集和可選消息集,并且協(xié)議 可W規(guī)定通用消息始終包括在有效子集中,不管它們是否包括在附件的列表中。因此,例 女口,與識別相關的消息(例如,圖4中列出的消息)可W包括在通用消息集中,并且主機可 W從附件通過發(fā)送IDIn化消息來對IDStart消息作出響應的事實推斷出附件支持該些消 息。在一些實施例中,如果附件不打算發(fā)送除通用消息之外的任何消息,則附件可W發(fā)送具 有空數(shù)組(例如,包含具有空值的一個條目的數(shù)組)的消息列表參數(shù)。
[0073] 第H組參數(shù)514包括與附件與特定主機設備上可能安裝或可能未安裝的特定應 用程序進行的互操作相關的參數(shù)。例如,IDIn化消息可W包括優(yōu)選App參數(shù),該優(yōu)選App參 數(shù)用于指定應用程序的標識符,附件被設計為使用該標識符來進行互操作。標識符可W是 字符串,諸如分配給應用程序的名稱或唯一代碼(例如,在分發(fā)應用程序的應用程序商店 處),并且主機設備可W使用標識符來確定是否已安裝該應用程序。一些附件可W選擇不指 定特定應用程序;因此,IDIn化消息可W包括零個或一個優(yōu)選App參數(shù)實例。
[0074] 此外或相反,IDIn化消息可W包括App協(xié)議參數(shù),該App協(xié)議參數(shù)用于提供關于 附件支持特定應用程序專用協(xié)議的能力的信息。(應用程序專用協(xié)議允許使用附件協(xié)議作 為導管在附件與應用程序之間傳遞消息,其中附件協(xié)議與此類消息的內(nèi)容無關)
[0075] 在該實例中,可W使用用于參數(shù)值的結構化"字段"類型來提供應用程序專用協(xié)議 信息。在一些實施例中,字段型參數(shù)值可W實施為一組固定長度的字段,其中對于特定參 數(shù)而言每個字段的字段定義和長度是固定的??商娲?,字段型參數(shù)值可W非常類似于圖 3中所示的參數(shù)列表那樣使用鍵對/值對來實施,但是在單個參數(shù)內(nèi)而不是作為單獨參數(shù)。 在一些實施例中,要求包括針對字段型參數(shù)限定的所有鍵對/值對,W便有利于解析。字段 型參數(shù)是否可W "嵌套"在字段型參數(shù)內(nèi)是一個設計選擇問題。
[0076] 用于App協(xié)議參數(shù)的字段可W包括;例如包含所支持的應用程序專用協(xié)議的名 稱的固定長度字符串;提供用于應用程序專用協(xié)議的識別號的固定長度整數(shù);和/或根據(jù) 主機設備是否具有能夠使用已識別協(xié)議的安裝應用程序來識別待采取的動作的字節(jié)代碼 (例如,如果未發(fā)現(xiàn)該種應用程序,則可W指示主機在應用程序商店中搜索合適的應用程 序、詢問用戶是否應當進行搜索或什么都不做)。在一些情況下,附件可能不支持應用程序 專用協(xié)議,并且在一些情況下,附件可能支持多于一種應用程序專用協(xié)議;因此,IDIn化消 息可W包括任何數(shù)量(零個或多個)的App協(xié)議參數(shù)實例。
[0077] 第四組參數(shù)516包括與操作中附件對基于語言和/或區(qū)域的差異的支持有關的參 數(shù)。例如,鍵盤附件能夠支持基于語言和/或區(qū)域的不同字符集;顯示信息的附件也可能夠 使用不同語言或使用具有區(qū)域差異的同一種語言(例如,在使用英語的情況下,英國拼寫 與美國拼寫)來呈現(xiàn)信息。能夠支持不同語言和/或區(qū)域的附件可W使用當前語言和/或 當前區(qū)域參數(shù)來識別當前所選的語言和/或區(qū)域,例如,作為包含該語言或區(qū)域的公認名 稱的字符串。因為在給定時間僅一種語言和一個區(qū)域可W是當前的,所W IDIn化消息中可 W包括任一參數(shù)的僅一個實例。
[0078] 如果附件支持多種語言和/或多個區(qū)域,則附件可W使用所支持語言和所支持區(qū) 域參數(shù)來提供所支持語言和/或區(qū)域的列表??蒞包括每個參數(shù)的任何數(shù)量的實例,其中 參數(shù)值是包含某一語言或區(qū)域的公認名稱的字符串。在一些實施例中,假定支持當前語言 和區(qū)域,并且不需要同時使用"當前的"和"所支持的"參數(shù)來提供。
[0079] 第五組參數(shù)518包括與附件電力和電力管理有關的參數(shù)。例如,根據(jù)附件是否和 如何向主機提供電力,充電器類型參數(shù)可W指示所枚舉的電力類型集合中的一種電力類 型。類型可W包括:例如"轉移",用于指示附件從外部源汲取電力并將至少一些該電力傳遞 給主機;"自供電",用于指示附件從內(nèi)部源(例如,其本身的電池、太陽能電池板等)汲取電 力并可W將至少一些該電力提供給主機;W及"無",用于指示附件不向主機提供電力。在一 些實施例中,要求IDIn化命令包括充電器類型參數(shù),其中所枚舉的選項中的一個作為一個 值。
[0080] 在一些實施例中,可W包括最大電流供應參數(shù),W指定附件可向主機供應的電流 的最大量。可W將電流指定為例如表示W(wǎng)毫安(mA)為單位的最大電流的固定長度整數(shù)(例 如,8位)。在一些實施例中,如果IDIn化命令指示充電器類型為"無",則可W省略最大電 流供應參數(shù)。此外,一些實施例可W指定主機將假定的用于每種充電器類型的最大電流供 應參數(shù)的默認值,并且如果該默認值對于附件是可接受的話,則IDIn化命令可W省略最大 電流供應參數(shù)。
[0081] 在一些實施例中,可W包括最大電流消耗參數(shù),W便指定附件將從主機汲取的電 流的最大量。再次,可W將電流指定為例如表示最大電流(W HlA為單位)的固定長度整數(shù) (例如,8位)。一些實施例可W指定主機將假定的最大電流消耗參數(shù)的默認值,并且如果該 默認值對于附件是可接受的話,則IDIn化命令可W省略最大電流消耗參數(shù)。實際上不要求 附件在任何時間都從主機汲取所指定的最大電流(或實際上任何電流)。
[0082] 第六組參數(shù)520包括與附件支持的每個通信接口有關的參數(shù)。預期每個附件都應 當支持至少一個通信接口,但附件可W具有多個接口,并且根據(jù)具體實施,一些附件可W使 用多個接口來與同一個主機設備通信。參數(shù)520允許附件提供與每個可用接口的操作有關 的信息。在任何指定情況下,IDIn化命令可W包括該組中的至少一個參數(shù)的至少一個實例, 并且根據(jù)可用的接口,可W包括多個參數(shù)和/或一個參數(shù)的多個實例。
[0083] 對于每種類型的接口而言,字段可W包括適當?shù)男畔?。例如,對于任何類型的?口,字段可W包括待與該接口相關聯(lián)的標識符、該接口的名稱W及用于指示該接口是否支 持附件協(xié)議通信的位。用于特定類型接口的字段還可W指示該類型接口特定的其它信息。 例如,USB主機設置字段可W包括關于由USB主機接口所支持的音頻樣本速率的信息。藍 牙設置字段可W指示藍牙所支持的版本或風格(例如,經(jīng)典的、低能的、北歐的)、藍牙接口 的MC地址、將使用的配對方法(例如,PIN代碼或安全樣本配對)W及PIN代碼(如果需 要的話)。更一般地,用于特定接口的字段可W包括主機將用來在該接口上建立連接的任何 信息。
[0084] 應當理解,本文所述的消息格式、消息W及參數(shù)是例示性的,并且可W進行變型和 修改。除了或代替W上所示實例,還可W針對IDIn化命令限定其它參數(shù)。例如,如果附件 具有輸入控件,則附件可W提供關于輸入控件的數(shù)量、類型和布置的信息。附件還可W提供 關于其它能力和/或組件(諸如,導航(例如,使用GI^等)、視頻輸出、音頻輸出等)的信 息。在一些實施例中,IDIn化命令可W通過推理指示附件具有某些能力。例如,一個或兩 個消息列表參數(shù)可W包括與向主機設備遞送GI^坐標和/或從主機設備接收GI^坐標有關 的消息。由此,主機可W推斷出附件能夠產(chǎn)生和/或消耗GPS信息。又如,消息發(fā)送列表可 W包括請求來自主機設備的視頻流的消息;由此,主機可W推斷出附件能夠接收視頻流。
[0085] 在一些實施例中,附件本身可W是能夠結合多種組件(諸如,基于藍牙的揚聲器 組件、觸摸屏顯示器和其它控制設備(例如,轉向盤上的控制按鈕))的多功能設備,諸如車 載頭部單元。IDIn化消息可W限定允許附件識別其組件和組件的能力(全部作為該同一附 件的一部分)中的每一個的參數(shù)。
[0086] 識別待發(fā)送消息和待接收消息的信息可W在單個列表中呈現(xiàn)或分為多個列表。在 一些實施例中,每個消息代碼僅在一個方向上有效,并且呈現(xiàn)單個列表不會導致模糊性。在 一些實施例中,一些消息代碼可W在兩個方向上有效,并且附件可W例如通過向消息代碼 附加方向指示符或通過提供待發(fā)送和接收的消息的獨立列表(例如,如圖5中所示)來指 示它是否打算發(fā)送和/或接收特定消息。
[0087] 應當理解,可發(fā)送和/或接收的消息的列表可能是過度包括性的。目P,附件實際上 不需要發(fā)送消息發(fā)送列表中所包括的每一條消息或接收接收消息列表中所包括的每一條 消息。在一些實施例中,消息列表(如果主機接受的話)將附件與W下操作協(xié)定綁定:(1) 附件同意不向主機發(fā)送不在消息發(fā)送列表上的任何消息(除了協(xié)議假定為可發(fā)送的任何 消息,諸如圖4中的識別消息),并且主機可W忽略附件發(fā)送的任何此類消息。(2)附件不 期望接收不在接收消息列表上的任何消息。(3)附件對接收消息列表上的任何消息的接收 將不會導致附件向主機發(fā)送錯誤消息。
[0088] 如上所述的識別消息可W用于支持對連接至主機設備的附件設備的識別,包括操 作協(xié)定的協(xié)商。圖6是根據(jù)本發(fā)明的實施例可在主機設備(例如,圖1的主機設備100或 圖2的主機設備202)中實施的用于協(xié)商識別的過程600的流程圖。
[0089] 當主機檢測到與附件的連接時,過程600可W在框602處開始。例如,附件可W連 接至主機設備上的連接器,如圖1中所示,并且所連接的附件可W將連接器上的一個或多 個引腳引拉至特定電壓,從而指示附件的存在。附件還可W請求經(jīng)由無線協(xié)議(例如,藍牙 或Wi-Fi)的連接,并且主機可W建立可用于交換附件協(xié)議消息的連接來作出響應。
[0090] 在框604處,主機可W例如通過發(fā)送如上所述的IDStart消息來請求附件識別其 本身。主機還可W在框606處啟動認證過程W核實附件的真實性。在一些實施例中,認證 過程可W包括;請求并接收來自附件的數(shù)字證書,確認該數(shù)字證書的有效性(例如,通過將 其與已知良好和/或已知不良的證書進行比較),并且向附件下發(fā)隨機值或質疑W便附件 使用私匙來進行數(shù)字簽名并返回;主機設備可W使用與數(shù)字證書相關聯(lián)的公匙對所簽名的 隨機值進行核實??蒞例如使用附件協(xié)議的通用消息集中的消息來實施認證請求和響應。 (就識別消息而言,可W假定所有附件和所有主機都能夠發(fā)送和接收認證消息,并且主機可 W將附件未能對認證消息作出正確響應或根本不響應解譯為認證過程失敗。)在一些實施 例中,認證過程可W在后臺運行,而過程600繼續(xù)進行識別。在其它實施例中,過程600可 W在框606處等待認證,只有在認證成功時才結束和繼續(xù)進行。
[0091] 在框608處,過程600可W等待來自附件的IDIn化消息。在一些實施例中,主機不 會無限期地等待。例如,在框610處,過程600可W確定自從發(fā)送IDStart消息是否已經(jīng)過 超時周期。該周期可W是例如100毫砂、2砂或任何其它所需時間周期。如果超時周期已過 去,則在框612處,過程600可W退出,同時向附件發(fā)送如W上所述的IDTimeout消息。為 了在超時之后重新嘗試識別,附件可W重新建立連接,從而在框602處重新開始過程600。 根據(jù)具體實施,重新建立連接可能需要或可能不需要設備的物理斷開和重新連接或其它用 戶干預(例如按壓附件上的重置按鈕)。在一些實施例中,主機不具有超時周期,并且過程 600可W-直等待IDIn化消息,只要附件保持連接。
[0092] 如果在框610處超時周期未過去,則在框614處,過程600可W確定是否已接收到 完整的IDIn化消息。在一些實施例中,單個IDIn化消息可W分割成多個分組W便傳輸?shù)?主機,并且可能的是在某個時刻僅已接收IDIn化消息的一部分。如果消息不是完整的,貝U 過程600可W繼續(xù)等待(框608)直到接收到完整的消息或超時發(fā)生。在一些實施例中,部 分IDIn化消息的接收可W重置超時間隔,從而允許附件具有更多的時間來使消息變完整。 在一些實施例中,附件可W發(fā)送多條IDIn化消息,每一條包含一部分識別信息,并且框614 可W包括檢測用于指示附件已完成發(fā)送IDIn化消息的不同消息(例如,"ID完成"消息)。
[0093] 一旦已接收到完整的IDIn化消息,則在框616處,主機設備可W解析所接收的消 息并且例如通過應用各種判定規(guī)則來確定接受還是拒絕該消息。例如,在框618處,主機設 備可W讀取所提議的有效消息的列表(例如,圖5的消息發(fā)送列表和消息接收列表參數(shù)), 并且確定主機是否能夠接收所有可發(fā)送消息和發(fā)送所有可接收消息。如果主機能力不足, 則可W拒絕識別。
[0094] 類似地,在框620處,主機可W至少部分地基于附件所提供的信息來執(zhí)行其它能 力測試。例如,可W使用制造商和型號信息來確定附件的某些能力,諸如它是否能夠提供 GI^坐標或接收視頻。如果附件在其消息發(fā)送列表中包括"發(fā)送GI^坐標"消息但不知其 是否能夠提供GI^坐標,則兼容性測試可能會失敗。類似地,如果附件在其消息接收列表中 包括"視頻請求"消息但不知其是否能夠接收視頻信號,則另一個兼容性測試可能會失敗。 在一些實施例中,測試可W基于是否知道附件能夠做到其消息列表暗示其能夠做的某些事 情,而不是基于已知的能力。
[0095] 在一些實施例中,并非依賴于關于特定附件的能力(或其不具有的能力)的明確 信息,而是主機設備可W從消息列表推斷出附件具有某些能力。例如,如果附件指示它可W 發(fā)送"視頻請求"消息,則主機可W推斷出附件能夠接收視頻信號。在一些實施例中,可選 消息集可W包括協(xié)商待遞送到附件的視頻信號格式和控制(例如,啟動和停止)視頻播放 所需的一組消息,并且主機可能要求附件支持整組該些消息或不支持該些消息中的任何一 個。
[0096] 在一些實施例中,可能已知特定主機設備與特定附件型號不兼容,并且該種已知 的不兼容性還可W是兼容性測試失敗的依據(jù)。
[0097] 還可W限定兼容性測試來強制執(zhí)行關于設備行為的用戶期望。例如,如果用戶可 W與特定附件進行交互W限定存儲在主機設備上的媒體資產(chǎn)的播放列表(例如,通過調用 智能播放列表功能或操作由附件提供用于從主機的媒體資產(chǎn)數(shù)據(jù)庫中選擇資產(chǎn)的遠程接 口),用戶可W合理地期望能夠與該附件進行交互W播放該種播放列表。因此,如果附件提 議的有效消息列表包括與限定附件上的播放列表相關的消息但不包括與播放該種播放列 表相關的消息,則測試可被限定為是失敗的。
[0098] 在框624處,主機可W確定在框606處開始的認證過程是否成功。例如,成功可能 要求附件呈現(xiàn)已知良好的證書(或不在已知不良列表上的證書)并且成功簽名隨機值。成 功還可能要求特定證書對于特定附件是有效的,例如,基于附件型號和/或附件已包括在 所提議的有效消息列表中的消息。也可W應用其它條件來確定認證是否成功。
[0099] 如果通過了框618、620和624處的所有測試,則在框626處,過程600可W接受 識別,例如發(fā)送如上所述的IDAcc巧t消息。過程600可W在此退出,同時識別完成。應當 理解,主機和附件可W保持連接并且可W開始根據(jù)協(xié)商的操作協(xié)定,例如使用主機在框626 處接受的提議中的任何或所有有效消息來進行互操作。該可W包括如上所述的消息發(fā)送和 /或消息接收列表中的消息,W及默認情況下被視為有效的消息(例如,如上所述的通用消 息)。
[0100] 如果在框618、620或624處的任一測試失敗,則在框628處主機可W例如通過發(fā) 送IDReject消息來拒絕識別。在一些實施例中,IDReject消息可W包括指示識別為何被 拒絕的原因代碼。例如,可W分配不同的原因代碼來指示特定的失敗狀況,諸如認證失敗、 主機無能力接收消息發(fā)送列表上的至少一條消息、主機無能力發(fā)送消息接收列表上的至少 一條消息、一條或多條消息與所識別或所推斷的附件特性不兼容、消息集不足W支持相關 聯(lián)的功能等。在一些實施例中,在特定消息已導致拒絕的情況下,原因代碼還可W包括識別 有問題消息的信息。此類消息可W有利于附件的重試嘗試,但此類消息并不是所要求的。
[0101] 在發(fā)送IDRe ject消息之后,過程600可W返回至框608,從而允許附件利用新 IDIn化消息來重試所述識別。在一些實施例中,如果識別由于認證失敗而被拒絕,則過程 600可W退出而不是允許附件重試。
[0102] 在所示實例中,過程600不限制附件重試的次數(shù)。在一些實施例中,過程600可W 通過W下方式強加限制;例如通過每次執(zhí)行框628時使重試計數(shù)器遞增,W及如果計數(shù)器 達到上限(例如,3次重試)則退出而不是返回至框608。在一些實施例中,過程600可W 通過實施"全局超時"來限制重試,該"全局超時"限制在過程600發(fā)送IDStart消息的第一 時間與所提議識別被接受的時間之間經(jīng)過的時間;如果在全局超時周期結束時還沒有建立 操作協(xié)定,則過程600可W退出。如果過程600由于過量重試(包括全局超時期滿和/或 超過重試次數(shù)限制)而退出,則附件可W仍然繼續(xù)嘗試識別,但如在框612處一樣,可能需 要斷開連接/重新連接序列。
[0103] 在一些實施例中,附件可W在過程600期間的任何時刻通過發(fā)送如上所述的 IDCancel消息來取消識別過程。如果當正在執(zhí)行過程600時在主機處接收到取消消息,貝U 過程600可W退出。此時,在主機與附件之間的適當位置處不存在操作協(xié)定,并且主機可W 鎖定(例如,通過忽略)與附件的進一步通信。為了恢復通信,可W要求附件如上所述的那 樣斷開連接和重新連接,從而在框602處重新開始過程600。
[0104] 如果在過程600成功完成(例如,在框626之后)之后接收到取消消息,則主機可 W重新開始過程600 W便獲得來自附件的新識別信息,例如在不需要斷開連接/重新連接 序列的情況下。在該種情況下,只要主機和附件保持連接,一些實施例可能不要求重新認證 (例如,可W省略框606和624)。
[0105] 圖7是根據(jù)本發(fā)明的實施例的可W在附件(例如圖1的附件102和圖2的附件 204)中實施的識別過程700的流程圖。當附件建立到主機的連接時,過程700在框702處 開始。例如,附件上的連接器可W與主機上的配合連接器接合(例如,如圖1中所示),或附 件可W使用無線通信協(xié)議來定位主機并且將主機識別為能夠經(jīng)由附件協(xié)議進行通信的設 備。無論通信信道的細節(jié)如何,框702都可W包括如下操作,附件通過該操作提醒主機其存 在,并且準備好使用附件協(xié)議W進行通信。
[0106] 在框704處,附件可W接收例如如上所述的來自主機的IDStart消息。在框706 處,附件可W啟動與主機的認證過程;該個過程可W與在如上所述的過程600的框606處啟 動的過程互補。如同過程600,框706處的認證可W在后臺與過程700的其它操作同時執(zhí) 行,或過程700可W在框706處等待直到認證完成并且僅響應于成功認證來進一步繼續(xù)進 行。
[0107] 在框708處,附件可W向主機發(fā)送IDIn化消息;該IDIn化消息可W包括附件對于 有效消息列表的提議。在一些實施例中,附件可W具有準備好的IDIn化消息,該消息響應 于IDStart消息而自動發(fā)送。在一些實施例中,附件可W實時地創(chuàng)建或修改IDIn化消息。 例如,如果IDStart消息(或從主機接收到的一些其它初步消息或信號)提供關于特定主 機或其能力的信息,則附件可W基于該信息來修改其有效消息列表,例如,W便基于特定主 機的特性移除已知該特定主機不支持的消息,或選擇將優(yōu)化附件的互操作的有效消息。
[0108] 在框710處,附件可W接收來自主機對IDIn化消息的響應。在所示實施例中,有 效響應為IDAccept和IDReject。如果在框712處接收到IDReject,則在框714處,附件可 W確定是否重試所述識別。所述確定可W是基于各種判定標準,諸如附件已經(jīng)嘗試或重試 并失敗的次數(shù)、是否還有任何備用選項(W下描述)、和/或如果IDRe ject消息中提供有任 何原因代碼將如何。
[0109] 如果決定進行重試,則在框716處,附件可W修改IDIn化消息??蒞實施各種策 略W便在重試時修改IDIn化消息。例如,附件可W具有W優(yōu)選程度遞減的次序布置的用于 識別的一個或多個準備好的"備用"選項。第一選項(框708處的初始通過時發(fā)送)可W 提供最佳的操作體驗;后續(xù)備用選項可W逐漸偏離該個最佳選項,例如,通過去除或減少功 能或通過用可提供類似(如果不相同)功能的較低效集來替換較高效的有效消息集。在框 716處,附件可W選擇備用選項序列中的下一個IDIn化消息。
[0110] 在IDReject消息包括原因代碼(例如如上所述)的實施例中,附件可W在修改 IDIn化消息和/或確定是否重試時使用該信息。例如,如果原因代碼將消息發(fā)送列表或消 息接收列表上的特定消息識別為拒絕的原因,則附件可W移除引起問題的消息,假定仍然 可W提供可接受的功能(并且如果不能提供,則附件可W確定不在框714處進行重試)。 [01U] 修改后的IDIn化消息可W在框708處發(fā)送,并且如果接收到另一個拒絕,則附件 可W再次確定是否在框714處進行重試。如果在任何時刻附件確定不重試,則過程700可W 在框718處發(fā)送IDCancel消息并且在框720處退出。在一些實施例中,不發(fā)送IDCancel ; 如上所述,主機側識別可W實施超時,并且在超時周期內(nèi)未收到來自附件的響應可W解譯 為取消。在一些實施例中,在退出過程700之后,附件可W與主機斷開連接并且重新連接至 主機W便重新開始過程700并再次嘗試。
[0112] 如果在框712處,IDIn化命令沒有被拒絕,則期望附件在框722處接收IDAcc巧t。 在該種情況下,成功完成所述識別,并且附件可W在框724處開始與主機進行互操作。盡管 過程700可W退出,但附件和主機可W保持連接并且可W開始根據(jù)協(xié)商的操作協(xié)定來進行 互操作,例如,使用主機在框722處接受的提議中的任何或所有有效消息。該可W包括如 上所述的消息發(fā)送列表和/或消息接收列表中的消息,W及默認情況下被視為有效的消息 (例如,如上所述的通用消息)。
[0113] 在過程700中,如果附件響應于IDIn化消息既不接收IDAcc巧t也不接收 IDReject,則該被視為錯誤。(在一些實施例中,該種情況也可能發(fā)生在當附件發(fā)送IDIn化 之前或之后主機發(fā)送IDTimeout的情況下。)在該種情況下,連接可W在框726處重置,并 且過程700可W返回至框702 W便嘗試重新建立連接并且從最初重新開始所述識別過程。 在一些實施例中,重置連接可能需要附件與主機的物理斷開或其它用戶干預(例如,按壓 附件上的重置按鈕)。例如,如果主機在附件確定的超時周期內(nèi)根本不響應,或如果響應不 是 IDAccept 或 IDReject,則可 W到達框 726。
[0114] 應當理解,圖6和圖7的識別過程是例示性的并且可W進行變型和修改。可W并 行執(zhí)行按順序描述的步驟,可W改變步驟順序,并且可W修改、組合、添加或省略步驟。例 女口,如果需要,認證過程可W在任何時間(包括在主機向附件發(fā)送IDStart之前或主機接收 IDIn化之后)開始或完全省略。主機確定接受還是拒絕特定識別消息的測試能夠W任何順 序執(zhí)行,并且可W使用任何數(shù)量的測試和任何測試組合。在一些情況下,測試結果可W取決 于IDIn化消息和認證信息兩者的內(nèi)容;例如,可W基于由附件呈現(xiàn)的特定數(shù)字證書來限制 發(fā)送或接收某些消息的能力。
[0115] 在識別失?。ɡ纾瑫r發(fā)生或附件取消)的情況下,根據(jù)具體實施,附件或主機 設備(或兩者)可W提醒用戶。此類提醒可W采取W下形式:屏幕上通知、指示燈點亮、聲 音等。隨后,用戶可W采取適當?shù)膭幼鱽斫鉀Q故障,諸如使附件斷開連接并重新連接(例 女口,使連接器脫離接合并重新接合、按壓重置按鈕等)。
[0116] 如上所述,識別操作(例如,過程600和700)的成功完成使主機和附件處于如下 狀態(tài):其中它們能夠交換消息并且已商定用W規(guī)定每個設備將從另一個設備接受哪些消息 的操作協(xié)定。在一些實施例中,協(xié)定可W隱含地包括假定為可由所有主機或附件設備發(fā)送 或接收的某些消息,例如,如上所述的識別相關消息和/或其它通用消息。
[0117] 運行良好的設備遵守協(xié)商的操作協(xié)定。因此,例如,運行良好的附件不發(fā)送除所接 受的可發(fā)送消息列表上的那些消息之外的任何消息,并且忽略除所接受的可接收消息列表 上的那些消息之外的任何消息。類似地,運行良好的主機忽略從附件接收的除所接受的可 發(fā)送消息列表上的那些消息之外的任何消息,并且不向附件發(fā)送除所接受的可接收消息列 表上的那些消息之外的任何消息。忽略所接收的不符協(xié)定的消息可W有助于保護主機(或 附件)免受因發(fā)送接收者不同意接收的消息而違反協(xié)定的運行不良的附件(或主機)的影 響。該進而可W在設備之間提供更可靠的互操作。并不要求運行良好的設備(主機或附 件)實際上在特定通信會話期間發(fā)送或接收所有商定消息,只有在設備有能力該樣做時才 要求。特定消息是否發(fā)送可W取決于操作的具體情況(在一些情況下包括用戶交互)。
[0118] 在一些實施例中,如上所指出,附件可W在識別(例如,過程600和700)成功完成 之后發(fā)送ID化date消息。該ID化date消息可W包括用于先前使用IDIn化消息所指定的 一個或多個參數(shù)的新值。如上所述,可W限制ID化date消息僅更新IDIn化消息中的參數(shù) 的子集(例如,附件名稱而不是消息列表)。在I孤Pdate消息不影響主機與附件之間的現(xiàn) 有操作協(xié)定的情況下,主機可W簡單地更新相關信息并且使用更新后信息來繼續(xù)與附件進 行交互。
[0119] 例如,在一些實施例中,如上所述,附件可W在IDIn化消息中提供其當前語言和/ 或區(qū)域設置。在識別之后,主機可W利用指示可能不同于當前設置的推薦語言和/或區(qū)域 設置的消息來回復。(推薦可W基于主機設備本身的設置、基于附件的當前設置和所支持的 語言/區(qū)域、基于諸如主機設備或附件的當前位置的其它信息等。)如果附件接受推薦,貝U 附件可W發(fā)送指示新當前語言和/或區(qū)域設置的ID化date消息。又如,用戶可W通過直接 與附件交互來改變附件上的語言和/或區(qū)域設置,并且附件可W發(fā)送ID化date消息來通知 主機該種改變。
[0120] 在一些實施例中,可W使用ID化date消息來發(fā)送對附件的端口和設置的更新。例 女口,附件可W決定激活先前識別為不可用于附件協(xié)議通信的端口,或去激活先前識別為可 用的端口。當附件使用ID化date激活端口時,主機可W將先前協(xié)商的操作協(xié)定應用于新激 活的端口。在一些實施例中,附件無法使用ID化date消息來添加未使用IDIn化進行識別 的端口,但可W使用ID化date來改變與使用IDIn化所識別的任何端口相關的設置。
[0121] 如果附件確定需要對操作協(xié)定作出改變,則附件可W發(fā)送IDCancel消息而不是 ID化date,隨后如上所述進行重新識別。如果主機確定需要對操作協(xié)定作出改變(例如,響 應于ID化date或任何其它事件或情況),則主機可W發(fā)送新的IDStart消息,從而重新調用 所述識別過程。
[0122] 操作協(xié)定的明確協(xié)商(例如,如上所述)還可W有利于實施較舊版本協(xié)議的設備 和較新版本協(xié)議的設備之間的前向和后向兼容性。例如,當添加新功能時,可W擴展協(xié)議W 包括新消息ID。如果使用較新協(xié)議版本的附件連接至使用較舊版本的主機,則附件可能提 議不被主機所認識的消息ID,并且主機將基于不認識的消息ID而拒絕識別。如果拒絕消息 通知附件存在不認識的消息ID,則附件可W推斷出主機正在使用較舊的協(xié)議版本,并且還 可W推斷出例如主機不支持相關功能或支持更有限的功能。
[0123] 相反地,如果使用較舊協(xié)議版本的附件連接至使用較新版本的主機,則附件可W 僅提議消息ID子集,主機將所述消息ID子集與特定功能相關聯(lián)?;诓淮嬖谳^新的消息 ID,主機可W推斷出附件正在使用較舊的協(xié)議版本;主機可W接受協(xié)議,只要主機支持所提 議的消息ID子集。在一些情況下,主機可W基于附件提議的特定消息ID來限制自身行為。 例如,當前的協(xié)議版本可W支持WH種不同格式(A、B和C)將圖像從主機提供至附件,而較 舊版本僅支持兩種(A和B)。主機可W確定呈格式C的圖像實際上不可用于與僅支持A和 B的附件進行互操作的目的。
[0124] 操作協(xié)定的明確協(xié)商(例如,如上所述)還可W有利于對附件進行證書測試。例 女口,主機設備系列的制造商可W操作如下認證項目,該認證項目允許其他制造商提交將被 證明為可與該制造商的主機設備互操作的附件。根據(jù)該項目,例如可W使用專有徽章和語 言來標記已證明的附件并將其公告為兼容的。(認證項目的一個例子是蘋果公司的"Made for iPodK'"項目。)
[0125] 在證書測試期間,測試站(其可為自動的或人工操作的)可W建立與附件的操作 協(xié)定,隨后使用附件聲稱能夠發(fā)送和/或接收的每一條消息來對附件進行測試。測試站還 可W檢測附件是否正在發(fā)送不在其列表上的任何消息。針對附件的證書要求可W包括核實 附件是否符合用于W上所述運行良好的附件的規(guī)則(例如,忽略所接收的不在商定列表上 的消息并且僅發(fā)送在商定列表上的消息)。
[0126] 本文所述的實施例可W提供用于向主機設備識別附件并且建立主機與附件之間 的操作協(xié)定的穩(wěn)健且靈活的技術。附件首先呈現(xiàn)識別其在連接至主機設備時可能使用的所 有能力的信息,并且主機可W基于該信息的全部內(nèi)容來確定接受還是拒絕附件識別(從而 允許或不允許互操作)。
[0127] 該些技術可W在例如W下情景中使用:主機能夠與多個不同附件進行互操作,該 些附件具有用W實現(xiàn)廣泛范圍的依賴附件的功能的不同能力;W及共用協(xié)議限定消息全 域,該消息全域可W支持一系列具有不同能力的附件與能力同樣可多樣化的主機進行互操 作。特定主機和特定附件可W在嘗試W特定方式進行通信(例如,使用特定消息集)之前 使用W上所述的技術來核實另一設備能夠W該種方式進行通信。另外,通過使較舊和較新 的設備協(xié)商它們可交換的消息集來使得它們?nèi)匀豢蒞進行互操作。因此,例如,當特定附件 連接至特定主機時,附件可W例如使用識別消息向主機呈現(xiàn)提議,該提議用于將由協(xié)議限 定的消息全域分成"有效"消息子集(即,特定主機和特定附件互相商定來用W進行彼此通 信的消息)和"無效"子集(即,由協(xié)議限定的不在有效子集中的消息)。在上述某些實施 例中,使用提議包括在有效子集中的特定消息的列表來呈現(xiàn)提議;如上所指出,除任何明確 列出的消息之外,有效子集還可W默認包括某些消息(例如,上述實例中的通用消息)。主 機可W確定所提議的劃分是否可接受,并且將其接受還是拒絕提議的決定通知給附件。
[0128] 明確識別可交換的特定消息,而不是識別將被支持的一組消息或廣泛類別的功 能,可W比在消息組或功能類別的水平上管理多個版本更為靈便,并且可W擴大與更大范 圍的設備進行互操作的可能性。另外,在可通過添加參數(shù)來擴展消息的情況下,識別特定消 息可W至少W-定程度的防過時性進行,只要接收具有不認識行為的消息的設備適當?shù)靥?理該些消息(例如,忽略它們而不是向發(fā)送者生成錯誤消息),并且只要在消息開始之后添 加至消息定義的任何參數(shù)已經(jīng)被分配默認值,W使得使用稍后添加參數(shù)的設備能夠在不存 在指定值的情況下相應地采取動作。
[0129] 雖然已相對于特定實施例描述了本發(fā)明,但是本領域的技術人員應當認識到,許 多修改都是可W的,并且參照一個實施例進行描述的特征可W應用于其它實施例。在一些 實施例中,并不是可連接至主機的每個附件都需要識別其本身;成功的識別可W是使用附 件協(xié)議進行任何進一步通訊的前提條件,但可W支持附件協(xié)議之外的其它(受限的)功能。 例如,充電器可能夠向主機提供電力而不需要發(fā)送任何識別或認證消息。又如,主機設備可 W具有不實施附件協(xié)議的端口(例如,模擬音頻輸出端口,諸如耳機接口),并且對于此類 端口將不需要識別。
[0130] 在一些實施例中,如果所提議的識別被拒絕,則不要求選擇重試的附件重新發(fā)送 其所有參數(shù)(除非附件取消該過程或斷開連接)??蒞要求附件重新發(fā)送完整的消息列表 而不是對先前列表的修正,W及附件確定應當修改的任何其它參數(shù)。要求附件呈現(xiàn)單個完 整消息列表(或兩個單獨列表,一個用于所有發(fā)送的消息并且一個用于所有接收的消息) 可W有利于主機設備對修訂后提議的考慮,并且可W比實施一系列指令來從先前呈現(xiàn)的列 表中移除單獨消息和/或向先前呈現(xiàn)的列表添加單獨消息更為簡單。
[0131] 在一些實施例中,當識別正在進行時,可W阻止附件發(fā)送與識別不相關的任何消 息。例如,主機可W忽略可能接收到的任何此類消息。在其它實施例中,主機在識別過程期 間可W暫時允許至少一些不相關的消息(例如,通過接收并對它們起作用),并且如果過程 W失敗告終或如果該些消息不在所協(xié)商的操作協(xié)定范圍內(nèi),則在識別之后開始阻止或忽略 消息。同樣,在一些實施例中,附件可W選擇忽略或處理在識別過程期間可能接收到的與識 別不相關的消息。
[0132] 另外,雖然W上描述是參考附件向主機識別自身進行描述的,但是了解本教導內(nèi) 容的本領域技術人員將認識到,該些角色可W顛倒??蒞實施類似的消息和過程W允許主 機向附件識別自身,并且基于待支持的特定消息來協(xié)商操作協(xié)定。還可W實施雙向識別,例 如其中一個設備呈現(xiàn)關于其本身的信息并且另一個設備使用其本身的信息來響應。在任何 特定的具體實施中,對待交換的可接受消息集的協(xié)商可W在任一方向上發(fā)生(例如,如上 所述,附件提議/主機接受或拒絕,或在相反方向上,其中主機提議并且附件接受或拒絕)。 其它實施例可W限定一種反復協(xié)商過程,在該種協(xié)商過程中,一個設備可W接收來自另一 個設備的提議,修改該提議的不被接受的一部分并且將經(jīng)修改的提議發(fā)送至另一個設備W 供考慮。在接收經(jīng)修改的提議時,另一個設備可W接受經(jīng)修改的提議或作出進一步修改,并 且該過程可W繼續(xù),直到任一個設備所發(fā)送的提議由另一個設備接受。
[0133] 可W使用專用組件和/或可編程處理器和/或其它可編程設備的任何組合來實現(xiàn) 本發(fā)明的實施例。本文所述的各種過程可W任何組合方式在同一處理器或不同處理器上實 現(xiàn)。在組件被描述為被配置成執(zhí)行某些操作的情況下,可W例如通過設計電子電路W執(zhí)行 操作、通過對可編程電子電路(諸如微處理器)進行編程W執(zhí)行操作或它們的任何組合,來 實現(xiàn)該種配置。另外,盡管上述實施例可引用具體硬件和軟件組件,但本領域的技術人員應 當理解,也可W使用硬件和/或軟件組件的不同組合,并且被描述為在硬件中實現(xiàn)的特定 操作也可能在軟件中實現(xiàn),或反之亦然。
[0134] 可W在各種計算機可讀存儲介質上編碼并存儲結合本發(fā)明各特征的計算機程序; 合適的介質包括磁盤或磁帶、光學存儲介質諸如光盤(CD)或DVD (數(shù)字多功能盤)、閃存存 儲器,W及其它非暫態(tài)介質。(應當理解,數(shù)據(jù)的"存儲"不同于使用暫時性介質(諸如載 波)的數(shù)據(jù)傳播。)可將用程序代碼編碼的計算機可讀介質與兼容的電子設備封裝在一起, 或者該程序代碼可獨立于電子設備提供(例如,經(jīng)由互聯(lián)網(wǎng)下載或作為單獨封裝的計算機 可讀存儲介質)。
[0135] 因此,盡管已相對于具體實施例描述了本發(fā)明,但應當理解,本發(fā)明旨在覆蓋W下 權利要求范圍內(nèi)的所有修改和等價形式。
【權利要求】
1. 一種用于根據(jù)協(xié)議在第一設備與第二設備之間建立通信的方法,所述協(xié)議限定可由 所述第一設備和所述第二設備中的一者發(fā)送到所述第一設備和所述第二設備中的另一者 的消息全域,所述方法包括: 由所述第一設備向所述第二設備發(fā)送識別消息,其中所述識別消息包括將所述消息全 域劃分為有效消息集和無效消息集的提議,并且其中所述提議包括將被包括在所述有效消 息集中的至少一些消息的列表; 響應于發(fā)送所述識別消息,由所述第一設備從所述第二設備接收響應消息,所述響應 消息指示所述提議被所述第二設備接受還是拒絕;以及 在所述提議被接受的情況下,由所述第一設備使用被識別為有效消息的消息中的至少 一些來與所述第二設備進行互操作。
2. 根據(jù)權利要求1所述的方法,其中所述列表包括: 第一列表,所述第一列表識別在所述協(xié)議限定的所述消息全域中的、由所述第一設備 提議向所述第二設備發(fā)送的消息的第一子集;以及 第二列表,所述第二列表識別在所述協(xié)議限定的所述消息全域中的、由所述第一設備 提議從所述第二設備接收的消息的第二子集。
3. 根據(jù)權利要求1所述的方法,還包括: 在狀態(tài)信息指示所述提議被拒絕的情況下,由所述第一設備向所述第二設備發(fā)送經(jīng)修 改的提議,所述經(jīng)修改的提議包括對將被包括在所述有效消息集中的消息的所述列表進行 修改。
4. 根據(jù)權利要求1所述的方法,還包括: 由所述第一設備接收來自所述第二設備的識別請求, 其中響應于接收到所述識別請求,發(fā)送所述識別消息。
5. 根據(jù)權利要求1所述的方法,其中所述識別消息還包括設備描述符,所述設備描述 符包括以下中的至少一者:所述第一設備的制造商的名稱、所述第一設備的型號名稱、所述 第一設備的序號、所述第一設備的硬件版本標識符、或所述第一設備的固件版本標識符。
6. -種用于根據(jù)協(xié)議在第一設備與第二設備之間建立通信的方法,所述協(xié)議限定可由 所述第一設備和所述第二設備中的一者發(fā)送到所述第一設備和所述第二設備中的另一者 的消息全域,所述方法包括: 由所述第二設備接收來自所述第一設備的識別消息,其中所述識別消息包括提議,所 述提議將在所述協(xié)議限定的所述消息全域中的、由所述第一設備提議向所述第二設備發(fā)送 的消息的第一子集和在所述協(xié)議限定的所述消息全域中的、由所述第一設備提議從所述第 二設備接收的消息的第二子集識別為有效消息; 由所述第二設備確定接受還是拒絕所述提議; 由所述第二設備向所述第一設備發(fā)送響應消息,其中所述響應消息指示所述提議被接 受還是拒絕;以及 在所述第二設備接受所述提議的情況下,由所述第二設備使用來自所述第一集和所述 第二集的消息來與所述第一設備進行互操作。
7. 根據(jù)權利要求6所述的方法,還包括: 由所述第二設備接收來自所述第一設備的認證信息, 其中確定是否接受所述提議至少部分地基于所接收的認證信息。
8. 根據(jù)權利要求6所述的方法,其中確定是否接受所述提議部分地基于確定所述第二 設備是否能夠對所述第一子集中的每一條消息作出響應,并且部分地基于確定所述第二設 備是否能夠發(fā)送所述第二子集中的每一條消息。
9. 根據(jù)權利要求6所述的方法,其中確定是否接受所述提議部分地基于確定所述第一 子集和所述第二子集是否包括足以實現(xiàn)與所述第一子集或所述第二子集中的至少一者中 的至少一條消息相關聯(lián)的功能的消息子集。
10. 根據(jù)權利要求6所述的方法,其中所述識別消息還包括設備描述符,并且其中確定 是否接受所述提議包括基于所述設備描述符來確定所述第一子集中的消息和所述第二子 集中的消息是否是可準許的。
11. 一種用于與主機設備一起使用的附件,所述附件包括: 被配置為與所述主機設備進行通信的接口;以及 耦接至所述接口的控制邏輯,所述控制邏輯被配置為: 經(jīng)由所述接口建立與所述主機設備的連接; 生成用于所述附件與所述主機設備根據(jù)限定消息全域的協(xié)議進行互操作的提議,其中 所述提議將所述消息全域劃分為有效消息集和無效消息集,并且其中所述提議包括將被包 括在所述有效消息集中的至少一些消息的列表; 經(jīng)由所述接口將所述提議發(fā)送到所述主機設備; 經(jīng)由所述接口接收來自所述主機設備的響應,其中所述響應指示所述主機設備接受還 是拒絕所述提議;以及 在所述響應指示所述主機設備接受所述提議的情況下啟動與所述主機設備的互操作, 其中與所述主機設備的所述互操作包括交換所述有效消息集中的消息并且忽略所述無效 消息集中的消息。
12. 根據(jù)權利要求11所述的附件,其中所述消息全域由通用消息集和可選消息集組 成,其中所述提議中的所述消息列表包括所述可選消息集中的將被包括在所述有效消息集 中的所有消息。
13. 根據(jù)權利要求12所述的附件,其中所述通用消息集中的所有消息均包括在所述有 效消息集中,但不包括在所述提議中的所述列表中。
14. 根據(jù)權利要求12所述的附件,其中所述列表包括: 第一列表,其用于識別在所述協(xié)議限定的所述消息全域中的、由所述附件提議向所述 主機設備發(fā)送的消息的第一子集;以及 第二列表,其用于識別在所述協(xié)議限定的所述消息全域中的、由所述附件提議從所述 主機設備接收的消息的第二子集。
15. 根據(jù)權利要求11所述的附件,其中所述控制邏輯被進一步配置為: 在所述響應指示所述主機設備拒絕所述提議的情況下生成經(jīng)修改的提議;以及 經(jīng)由所述接口將所述經(jīng)修改的提議發(fā)送至所述主機設備。
16. -種用于與附件一起使用的主機設備,所述主機設備包括: 被配置為與所述附件進行通信的接口;以及 耦接至所述接口的控制邏輯,所述控制邏輯被配置為: 經(jīng)由所述接口檢測到所述附件的連接; 經(jīng)由所述接口從所述附件接收用于所述附件與所述主機設備根據(jù)協(xié)議進行互操作的 提議,所述協(xié)議限定消息全域,其中所述提議將所述消息全域劃分為有效消息集和無效消 息集,并且其中所述提議包括將被包括在所述有效消息集中的至少一些消息的列表; 確定接受還是拒絕所述提議; 經(jīng)由所述接口向所述附件發(fā)送響應,其中所述響應指示所述主機設備接受還是拒絕所 述提議;以及 在所述主機設備接受所述提議的情況下啟動與所述附件的互操作,其中與所述附件的 所述互操作包括交換所述有效消息集中的消息并且忽略所述無效消息集中的消息。
17. 根據(jù)權利要求16所述的主機設備,其中所述消息全域由通用消息集和可選消息集 組成,其中所述提議中的所述消息列表包括所述可選消息集中的將被包括在所述有效消息 集中的所有消息。
18. 根據(jù)權利要求16所述的主機設備,其中所述列表包括: 第一列表,其用于識別在所述協(xié)議限定的所述消息全域中的、由所述附件提議向所述 主機設備發(fā)送的消息的第一子集;以及 第二列表,其用于識別在所述協(xié)議限定的所述消息全域中的、由所述附件提議從所述 主機設備接收的消息的第二子集。
19. 根據(jù)權利要求18所述的主機設備,其中所述控制邏輯被進一步配置為部分地基于 確定所述第二設備是否能夠對所述第一子集中的每一條消息作出響應,并且部分地基于確 定所述第二設備是否能夠發(fā)送所述第二子集中的每一條消息來確定是否接受所述提議。
20. 根據(jù)權利要求16所述的主機設備,其中所述控制邏輯被進一步配置為部分地基于 所述有效消息集是否足以實現(xiàn)與所述有效消息集中的至少一條消息相關聯(lián)的功能來確定 是否接受所述提議。
21. 根據(jù)權利要求16所述的主機設備,其中所述識別消息還包括設備描述符,并且其 中所述控制邏輯被進一步配置為部分地基于以下情況來確定是否接受所述提議:基于所述 設備描述符來確定有效消息集是否是可準許的。
22. 根據(jù)權利要求16所述的主機設備,其中所述控制邏輯被進一步配置為: 等待超時周期結束,隨后發(fā)送指示所述主機設備拒絕所述提議的響應; 在所述超時周期期間接收到經(jīng)修改的提議的情況下,確定接受還是拒絕所述經(jīng)修改的 提議,并且經(jīng)由所述接口向所述附件發(fā)送另外的響應以指示所述主機設備接受還是拒絕所 述經(jīng)修改的提議;以及 在所述超時周期期間未接收到經(jīng)修改的提議的情況下,經(jīng)由所述接口向所述附件發(fā)送 超時消息,并且在發(fā)送所述超時消息之后忽略來自所述附件的另外的消息。
23. -種其上存儲有程序代碼的計算機可讀存儲介質,所述程序代碼包括指令,所述指 令當由主機設備中的處理器執(zhí)行時使所述處理器執(zhí)行如下方法,所述方法包括: 經(jīng)由接口檢測到附件的連接; 經(jīng)由所述接口向所述附件發(fā)送識別請求; 經(jīng)由所述接口從所述附件接收用于所述附件與所述主機設備根據(jù)協(xié)議進行互操作的 提議,所述協(xié)議限定能夠在所述主機設備與所述附件設備之間交換的消息全域,其中所述 提議將所述消息全域劃分為有效消息集和無效消息集; 確定接受還是拒絕所述提議; 經(jīng)由所述接口向所述附件發(fā)送響應,其中所述響應指示所述主機設備接受還是拒絕所 述提議;以及 在所述主機設備接受所述提議的情況下,與所述附件進行互操作,其中互操作包括僅 交換所述有效消息集中的由所接受的提議限定的消息。
24. 根據(jù)權利要求23所述的計算機可讀存儲介質,其中與所述附件的互操作包括: 接收來自所述附件的第一消息; 確定所述第一消息是否包括在所接受的提議中; 如果所述第一消息包括在所接受的提議中,則根據(jù)所述第一消息采取動作;以及 如果所述第一消息不包括在所接受的提議中,則忽略所述第一消息。
25. 根據(jù)權利要求23所述的計算機可讀存儲介質,其中所述方法還包括: 接收來自所述第一設備的認證信息, 其中確定接受還是拒絕所述提議至少部分地基于所接收的認證信息。
26. 根據(jù)權利要求23所述的計算機可讀存儲介質,其中所述方法還包括: 從所述提議推斷出所述附件的能力;以及 確定所述消息標識符列表是否包括足以與所述附件的所推斷出的能力進行互操作的 一組消息, 其中如果所述消息標識符列表不包括足以與所述附件的所推斷出的能力進行互操作 的一組消息,則所述提議被拒絕。
【文檔編號】G06F13/38GK104350484SQ201380028223
【公開日】2015年2月11日 申請日期:2013年5月2日 優(yōu)先權日:2012年6月8日
【發(fā)明者】E·W·富, S·拉蒂, J·J·耶, G·T·利頓 申請人:蘋果公司