TWI515568B - 用以建立通信之方法及相關配件與主機裝置 - Google Patents

用以建立通信之方法及相關配件與主機裝置 Download PDF

Info

Publication number
TWI515568B
TWI515568B TW102118293A TW102118293A TWI515568B TW I515568 B TWI515568 B TW I515568B TW 102118293 A TW102118293 A TW 102118293A TW 102118293 A TW102118293 A TW 102118293A TW I515568 B TWI515568 B TW I515568B
Authority
TW
Taiwan
Prior art keywords
accessory
message
messages
host device
offer
Prior art date
Application number
TW102118293A
Other languages
English (en)
Other versions
TW201401059A (zh
Inventor
艾德溫W 弗
賽雷希 萊西
傑森J 姚
葛瑞高利T 萊登
Original Assignee
蘋果公司
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 蘋果公司 filed Critical 蘋果公司
Publication of TW201401059A publication Critical patent/TW201401059A/zh
Application granted granted Critical
Publication of TWI515568B publication Critical patent/TWI515568B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

用於建立通信之方法及相關配件與主機裝置 相關申請案之交叉參考
本申請案主張2012年6月8日申請之題為「電子裝置之以訊息為基礎之識別(Message-Based Identification of an Electronic Device)」之美國臨時申請案第61/657,586號之權利,該臨時申請案之全部內容出於全部目的而以引用方式併入。
本發明大體而言係關於在電子裝置之間傳達資料,且特定言之係關於一個裝置向另一裝置之以訊息為基礎之識別。
攜帶型電子裝置(諸如智慧型手機、平板電腦、媒體播放器及其類似者)已變得普遍存在。已產生各種配件以與攜帶型電子裝置相互操作以擴展該等裝置之功能性及/或增強使用者體驗。配件之實例包括充電器、揚聲器銜接台、提供用於使用車輛之控制台來控制攜帶型裝置之選項的車輛內銜接台、運動設備、健康監視配件(例如,心率、血壓或血糖計)等。配件可經設計而與在外觀尺寸及能力(例如,處理能力;韌體版本;電池壽命,相機、麥克風或其他組件之存在或不存在)上可不同之多個攜帶型電子裝置相互操作。
為了為結合一配件操作攜帶型裝置之使用者提供可靠之愉快體驗,可需要驗證該配件能與一特定攜帶型裝置一起正確操作。然而, 單單是可能配件之多樣性以及一特定配件可連接至之不同攜帶型裝置之數目就使得此驗證十分困難。
本發明之特定實施例提供一種以訊息為基礎之識別程序,其可促進配件與主機裝置(包括攜帶型裝置)之間的可靠相互操作。該程序可在該配件連接至一主機時作為初始化通信之部分來執行。在該識別程序期間,該等裝置可協商規定每一裝置被准許發送至另一裝置或自另一裝置接收之特定通信(例如,訊息)之一操作協議。舉例而言,在識別期間,該配件可將一識別該配件意欲發送至該主機裝置及/或自該主機裝置接收之特定訊息之一清單之提議發送至該主機裝置。該主機裝置可檢閱該提議且通知該配件該提議被接受抑或未被接受。在一些實施例中,若該提議未被接受,則該配件可提出一新(假定經修改)提議。一旦一提議已被接受,則該主機裝置及該配件就可開始相互操作,其可包括發送及/或接收在該達成協議之提議中識別之訊息中之任一者。在一些實施例中,在操作期間,該主機裝置可(例如)藉由忽略未在該達成協議之提議中識別之訊息來防止該配件調用或使用未包括於該提議中之任何功能性;同樣地,該配件可忽略自該主機接收的未在該達成協議之提議中識別之訊息。
舉例而言,在一些實施例中,該主機裝置及該配件可藉由交換經定義為屬於一配件協定之訊息之一有限「總體(universe)」之部分的訊息來相互操作。此總體可包括預期遵守該協定之所有配件及所有主機裝置會支援之「一般」訊息之一集合,及取決於該主機裝置及該配件之能力且取決於該主機裝置與該配件之間協商得到的特定操作協議,可能使用或可能不使用之「選用」訊息之一集合。由該配件提出之該提議可使用可為該等一般訊息中之一者之一識別訊息來提出。該識別訊息可包括識別該配件提議允許發送至該主機之選用訊息中之每 一訊息及該配件提議自該主機接收之選用訊息中之每一訊息之一清單。(在此實例中,假定對一般訊息之支援,且一般訊息無需被列出。)該主機裝置可判定其是否支援包括於該提議中之該等訊息中之每一者。在一些實施例中,該主機亦可(例如)基於一鑑認操作及/或由該配件提供之其他識別資訊來判定是否應准許該配件使用包括於該提議中之該等訊息中之每一者。該主機裝置可基於其判定來回應於該提議。在一些實施例中,該回應可為一接受抑或拒絕;在一拒絕之情況下,可按需要提供或不提供拒絕原因之一指示。
若一提議被拒絕,則該配件可具有以一不同提議重試之選項。在一些實施例中,重試可包括發送取代前一訊息之一新識別訊息。該新識別訊息可包括將被發送及/或接收之選用訊息之一不同清單。舉例而言,該配件可首先提議可允許該配件最佳地執行其所有功能的選用訊息之一集合。若該第一提議未被接受,則該配件可提議可允許該配件執行其功能(雖然可能以不如最佳方式之方式)或可允許該配件執行其功能之一子集的選用訊息之一第二集合。訊息之該第二所提議集合可包括該第一所提議集合之一子集及/或額外訊息;例如,在該第二集合中可用可用以達成類似功能性之一或多個其他訊息來替換在該第一集合中之一訊息。一旦一提議被接受,該主機裝置及該配件就可藉由交換由該配件提供之該訊息清單上之該等訊息中之任一者以及依據該配件協定而假定支援的任何一般訊息來相互操作。
在一些實施例中,該主機裝置不限制該配件可提出之不成功提議之數目;該配件可提出任何數目個提議,直至一提議被接受抑或該配件已判定其不具有將被接受之提議為止。
本發明之特定態樣係關於用於根據定義可由兩個裝置中之一者發送至另一裝置的訊息之一總體之一協定來建立該兩個裝置之間的通信之方法。舉例而言,一第一裝置可將一識別訊息發送至第二裝置, 該識別訊息包括用以將訊息之該總體分割成操作訊息之一集合及非操作訊息之一集合之一提議。此提議可包括將被包括於操作訊息之該集合中的該等訊息中之至少一些之一列表。在一些實施例中,該列表可劃分成識別該第一裝置提議發送之訊息之一第一清單及識別該第一裝置提議接收之訊息之一第二清單。作為回應,該第二裝置可判定接受或拒絕該提議且將指示該提議係被接受抑或被拒絕之一訊息發送至該第一裝置。若該提議被接受,則該等裝置可使用包括於由該經接受提議定義之操作訊息之該集合中的該等訊息中之一些或全部來相互操作;所發送的未包括於該操作集合中之任何訊息可被接收裝置忽略。若該提議被拒絕,則在一些實施例中,該第一裝置可發送一經修改提議(例如,對將被包括於操作訊息之該集合中的訊息之列表之一修改)。在一些實施例中,該第二裝置可限制重試(經修改提議)之數目及/或強加用於在通知該第一裝置一提議被拒絕之後接收一經修改提議之一逾時週期。
該第二裝置可在判定接受抑或拒絕該提議時應用各種規則。舉例而言,由該第一裝置發送之該識別訊息可包括一裝置描述符,該裝置描述符可併有諸如以下各者之資訊:該裝置之一製造商之一名稱、該裝置之一型號名稱、該裝置之一序號、一硬體版本識別符及/或一韌體版本識別符。該第二裝置可使用關於該第一裝置之描述性資訊來判定是否應將操作訊息之該所提議集合用於該裝置。在一些實施例中,該第二裝置可自該第一裝置接收鑑認資訊且在判定接受抑或拒絕該提議時使用該資訊。因此,在以下情況下,可拒絕一提議:該鑑認資訊指示該第一裝置未經授權以與該第二裝置相互操作,或該資訊指示該第一裝置未經授權以使用操作訊息之該所提議集合中之該等訊息之全部。
在一些實施例中,該第二裝置接受抑或拒絕該提議可部分地取 決於該第二裝置是否能夠辨識及/或產生操作訊息之該所提議集合中之該等訊息之全部。該判定亦可基於操作訊息之該所提議集合是否足以實施與該集合中之該等訊息中之至少一者相關聯之一功能性。
在一些實施例中,發送提議之裝置可為配件,而接受或拒絕提議之裝置可為主機。在其他實施例中,此等角色可以顛倒,且主機可將一提議發送至配件。用於產生及發送提議及/或用於判定接受或拒絕一接收到的提議之控制邏輯可(例如)藉由提供經合適程式化之處理器而實施於該等裝置中。
以下詳細描述與附圖一起將提供對本發明之性質及優點之較好理解。
100‧‧‧主機裝置
102‧‧‧配件
104‧‧‧顯示區域
106‧‧‧帶槽框
108‧‧‧控制按鈕
110‧‧‧插座連接器
112‧‧‧揚聲器
114‧‧‧顯示器
116‧‧‧使用者可操作之控制件
118‧‧‧插頭連接器
120‧‧‧插圖
122‧‧‧主機側識別邏輯
124‧‧‧提議規則
130‧‧‧插圖
132‧‧‧配件側識別邏輯
134‧‧‧提議
140‧‧‧識別訊息
142‧‧‧回應
200‧‧‧系統
202‧‧‧主機裝置
204‧‧‧配件
210‧‧‧處理子系統
212‧‧‧儲存裝置
214‧‧‧使用者介面
216‧‧‧網路介面
218‧‧‧配件I/O介面
230‧‧‧控制器
232‧‧‧使用者介面
234‧‧‧配件特定硬體
236‧‧‧主機I/O介面
238‧‧‧鑑認模組
300‧‧‧訊息
302‧‧‧訊息開始(「BOM」)旗標
304‧‧‧訊息識別符
306‧‧‧參數/值對
308‧‧‧參數識別符
310‧‧‧參數之值
330‧‧‧訊息結束(「EOM」)旗標
400‧‧‧表
402‧‧‧訊息欄
404‧‧‧方向欄
406‧‧‧參數欄
500‧‧‧表
502‧‧‧欄
504‧‧‧欄
506‧‧‧欄
508‧‧‧更新欄
510‧‧‧參數之第一群組
512‧‧‧參數之第二群組
514‧‧‧參數之第三群組
516‧‧‧參數之第四群組
518‧‧‧參數之第五群組
520‧‧‧參數之第六群組
600‧‧‧用於協商識別之程序
602‧‧‧區塊
604‧‧‧區塊
606‧‧‧區塊
608‧‧‧區塊
610‧‧‧區塊
612‧‧‧區塊
614‧‧‧區塊
616‧‧‧區塊
618‧‧‧區塊
620‧‧‧區塊
624‧‧‧區塊
626‧‧‧區塊
628‧‧‧區塊
700‧‧‧識別程序
702‧‧‧區塊
704‧‧‧區塊
706‧‧‧區塊
708‧‧‧區塊
710‧‧‧區塊
712‧‧‧區塊
714‧‧‧區塊
716‧‧‧區塊
718‧‧‧區塊
720‧‧‧區塊
722‧‧‧區塊
724‧‧‧區塊
726‧‧‧區塊
圖1展示根據本發明之一實施例之主機裝置及配件。
圖2為包括根據本發明之一實施例之主機裝置及配件之系統的簡化方塊圖。
圖3說明根據本發明之一實施例可實施的訊息之格式。
圖4為展示根據本發明之一實施例之識別訊息之表。
圖5為根據本發明之一實施例之列出可針對識別訊息定義之參數之表。
圖6為根據本發明之一實施例之可實施於主機裝置中的用於協商識別之程序的流程圖。
圖7為根據本發明之一實施例之可實施於配件中之識別程序的流程圖。
本發明之特定實施例提供一種以訊息為基礎之識別程序,其可促進配件與主機裝置(包括攜帶型裝置)之間的可靠相互操作。該程序可作為當該配件連接至一主機時的初始化通信之部分來執行。在該識 別程序期間,該等裝置可協商規定每一裝置被准許發送至另一裝置或自另一裝置接收之特定通信(例如,訊息)之一操作協議。舉例而言,在識別期間,該配件可將一識別該配件意欲發送至該主機裝置及/或自該主機裝置接收之特定訊息之一清單之提議發送至該主機裝置。該主機裝置可檢閱該提議且通知該配件該提議被接受或未被接受。在一些實施例中,若該提議未被接受,則該配件可提出一新(假定經修改)提議。一旦一提議已被接受,則該主機裝置及該配件就可開始相互操作,其可包括發送及/或接收在該達成協議之提議中識別之訊息中之任一者。在一些實施例中,在操作期間,該主機裝置可(例如)藉由忽略在該達成協議之提議中未識別之訊息來防止該配件調用或使用未包括於該提議中之任何功能性;同樣地,該配件可忽略自該主機接收的未在該達成協議之提議中識別之訊息。
圖1根據本發明之一實施例展示主機裝置100及配件102。
主機裝置100可為(例如)手持型裝置(諸如媒體播放器、智慧型手機或個人數位助理);平板電腦;膝上型電腦;桌上型電腦;或能夠與其他裝置通信之任何其他電子裝置。在一些實施例中,主機裝置100可為攜帶型裝置(意味容易由使用者自一處攜帶至另一處之裝置),但並不要求如此。在所展示之實例中,主機裝置100為具有由帶槽框106包圍之顯示區域104及控制按鈕108之平板電腦。插座連接器110係設置於主機裝置100之底部處(例如,凹陷至外殼中)以允許配件連接至主機裝置100。
配件102可為能夠與主機裝置102互動之任何配件,諸如揚聲器銜接台(dock)或揚聲器系統、媒體控制台、汽車音響主機(head unit)或其類似者。配件102可具有各種使用者介面組件,諸如揚聲器112、顯示器114及使用者可操作之控制件116。在所展示之實例中,配件102具有插頭連接器118,該插頭連接器可插入至插座連接器110中以 提供配件102與主機裝置100之間的電及機械連接。在一些實施例中,電連接可包括電力連接及資料連接兩者,從而允許配件102將電力遞送至主機裝置100及/或自主機裝置100接收電力。雖然指示了連接器110與連接器118之間的直接連接,但將理解,一些實施例可使用(例如)經由纜線或配接器的間接連接。在一些實施例中,除了由連接器110及118提供之有線信號路徑之外或替代由連接器110及118提供之有線信號路徑,主機裝置100及配件102可能夠(例如)使用射頻通信技術(諸如Wi-Fi或藍芽)、近場通信技術、紅外線通信或其類似通信技術以無線方式通信。在一些實施例中,可在主機裝置100與配件102之間同時建立多個通信路徑,其中不同類型之資訊係選擇性地經由不同路徑投送。
藉由(例如)經由連接器110及118進行通信,主機裝置100及配件102可實施各種功能性。舉例而言,在一些實施例中,主機裝置100可串流傳輸媒體內容以供配件102呈現,且可將狀態資訊(例如,關於目前正在播放之音訊曲目之資訊)提供至配件102以(例如)在顯示器114上向使用者呈現。使用者可操作配件102之控制件116以控制媒體資產之播放(例如,播放/暫停)或對不同資產之選擇。作為另一實例,配件102可包括一無線電接收器(未圖示)以(例如)自FM、AM或衛星傳輸器接收媒體內容。攜帶型裝置100可用以控制無線電接收器之操作,例如,頻道或節目選擇。許多其他類型之相互操作係可能的。
為了促進相互操作,主機裝置100及配件102可協商定義該兩者將互相支援之功能性之一操作協議。在一些實施例中,在主機裝置100及配件102建立連接時協商該協議,且協商該協議可為裝置識別程序之部分。
舉例而言,如插圖130中所展示,配件裝置102可包括配件側識別邏輯132及一或多個提議134。每一提議134可包括配件102提議被允 許發送至主機及/或自主機接收之訊息之清單。每一提議可包括足以允許配件執行其功能性之至少某些子集之訊息之清單,且不同提議134可按配件偏好之次序排名;例如,提供完全配件功能性集合之提議可排名在提供部分功能性之提議之前。在一些實施例中,可針對配件預先產生一或多個提議134(例如,併入至配件韌體中);額外或替代性地,可即時產生提議134(例如,部分地基於由主機裝置提供之資訊)。
如插圖120中所展示,主機裝置100可包括主機側識別邏輯122及提議規則124。提議規則124可包括用於判定是否可同時支援由配件提議之訊息之特定組合、配件需要哪些能力以便於支援特定訊息等之規則。下文將描述用於評估提議之規則的特定實例。
在操作中,當主機裝置100及配件裝置102建立連接時,配件側識別邏輯132可選擇(或產生)一個提議134以在識別訊息140中向主機裝置100提出。主機側識別邏輯122可接收識別訊息140,且判定接受抑或拒絕該提議。可藉由參考提議規則124來做出此判定。主機側識別邏輯122可將其判定作為回應142傳達至配件側識別邏輯134。若接受該提議,則配件及主機裝置可通信,且在通信之過程中可交換在所接受提議134中列出之任何訊息。若拒絕提議,則配件側識別邏輯132可選擇(或產生)另一提議134且在新識別訊息140中提出新提議134。此程序可繼續,直至主機100接受提議為止,直至配件102判定不發送另一提議,或主機100用信號表示:其他嘗試將不被准許。
將瞭解,圖1之主機裝置及配件係說明性的且變化及修改係可能的。主機裝置及/或配件可實施功能性之任何組合。在一些實施例中,不是配件提出提議以由主機接受(或拒絕),而是主機可向配件提出提議,且配件可發出(issue)接受或拒絕來自主機之提議之決策。在本文中所描述之實施例中,提議係作為整體來接受或拒絕。其他實施 例可定義一反覆協商程序,其中一個裝置可自另一裝置接收提議,修改提議之無法接受之部分,且將經修改提議發送至該另一裝置以供考慮;在接收到經修改提議時,該另一裝置可接受經修改提議或作出進一步修改,且該程序可繼續,直至由任一裝置發送之提議為另一裝置所接受。
可使用各種訊息格式及發信技術來傳達識別訊息及決策,其中細節取決於配件協定。決策程序可實施併有關於配件及/或主機之任何可用資訊之許多規則。將在下文描述合適格式及程序之實例。
主機裝置及配件可實施為經由一或多個介面通信以支援相互操作之單獨計算裝置。圖2為包括根據本發明之一實施例之主機裝置202及配件204之系統200的簡化方塊圖。在此實施例中,主機裝置202(例如,實施圖1之主機裝置100)可提供計算、通信、媒體播放及/或其他能力。主機裝置202可包括處理子系統210、儲存裝置212、使用者介面214、網路介面216及配件輸入/輸出(I/O)介面218。主機裝置202亦可包括其他組件(未明確展示),諸如電池、功率控制器及可操作以提供增強能力之其他組件。
儲存裝置212可(例如)使用碟片、快閃記憶體或任何其他非暫時儲存媒體或媒體之組合來實施,且可包括揮發性及/或非揮發性媒體。在一些實施例中,儲存裝置212可儲存媒體物件(諸如音訊檔案、視訊檔案、影像或原圖檔案);關於使用者之聯絡人之資訊(姓名、地址、電話號碼等);關於使用者之已排程約會及事件之資訊;記事;及/或其他類型之資訊。在一些實施例中,儲存裝置212亦可儲存將由處理子系統210執行之一或多個應用程式(例如,視訊遊戲程式、個人資訊管理程式、媒體播放程式等)。
使用者介面214可包括:輸入裝置,諸如觸控板、觸控螢幕、滾輪、點按式選盤(click wheel)、撥號盤、按鈕、開關、小鍵盤、麥克 風或其類似者;以及輸出裝置,諸如視訊螢幕、指示器燈、揚聲器、耳機插口或其類似者,連同支援電子器件(例如,數位至類比或類比至數位轉換器、信號處理器或其類似者)。使用者可操作使用者介面214之輸入裝置以調用主機裝置202之功能性,且可經由使用者介面214之輸出裝置看到及/或聽到來自主機裝置202之輸出。
處理子系統210可實施為一或多個積體電路(例如,一或多個單核心或多核心微處理器或微控制器),該一或多個積體電路之實例係此項技術中已知的。在操作中,處理系統210可控制主機裝置202之操作。在各種實施例中,處理子系統210可回應於程式碼而執行多種程式,且可維持多個同時執行之程式或程序。在任何給定時間,待執行之程式碼中之一些或全部可駐存於處理子系統210中及/或諸如儲存裝置212之儲存媒體中。
經由合適的程式設計,處理子系統210可提供主機裝置202之各種功能性。舉例而言,在一些實施例中,處理子系統210可實施圖1之主機側識別邏輯122中之一些或全部。處理子系統210亦可執行用以控制主機裝置202之其他功能之其他程式,包括可儲存於儲存裝置212中之應用程式;在一些實施例中,此等應用程式可(例如)藉由產生待發送至配件204之訊息及/或自配件204接收訊息而與配件204互動。
網路介面216可提供主機裝置202之語音及/或資料通信能力。在一些實施例中,網路介面216可包括用於存取無線語音及/或資料網路之射頻(RF)收發器組件(例如,使用蜂巢式電話技術、諸如3G或EDGE之進階資料網路技術、Wi-Fi(IEEE 802.11系列標準),或其他行動通信技術,或以上技術之任何組合)、用於短程無線網路連接之組件(例如,使用藍芽標準)、GPS接收器組件及/或其他組件。在一些實施例中,除了無線介面之外或替代無線介面,網路介面216亦可提供有線網路連接性(例如,乙太網路)。可使用硬體(例如,驅動器電路、天 線、調變器/解調變器、編碼器/解碼器及其他類比及/或數位信號處理電路)及軟體組件之組合來實施網路介面216。
配件I/O介面218可允許主機裝置202與諸如配件204之各種配件通信。舉例而言,配件I/O介面218可支援至電腦、外部鍵盤、揚聲器銜接台或媒體播放台、數位相機、無線電調諧器、車輛內娛樂系統或汽車音響主機、外部視訊裝置、記憶卡讀取器等之連接。在一些實施例中,配件I/O介面218可包括連接器(諸如對應於各種iPod®、iPhone®及iPad®產品中所使用之連接器之連接器),以及支援電路。連接器可提供用於電力及接地以及用於一或多個資料通信介面(諸如通用串列匯流排(USB)、FireWire(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之控制件116)之情況下,控制器230可中斷使用者對控制件之操作且回應地調用配件204之功能性;在一些例子中,所調用之功能性可包括將訊息發送至主機裝置202及/或自主機裝置202接收訊息。作為另一實例,控制器220可實施圖1之配件側識別邏輯132中之一些或全部。
使用者介面232可包括:使用者可操作之輸入裝置,諸如觸控板、觸控螢幕、滾輪、點按式選盤(click wheel)、撥號盤、按鈕、開關、小鍵盤、麥克風或其類似者;以及輸出裝置,諸如視訊螢幕、指示器燈、揚聲器、耳機插口或其類似者,連同支援電子器件(例如,數位至類比或類比至數位轉換器、信號處理器或其類似者)。取決於特定配件204之實施,使用者可操作使用者介面232之輸入裝置以調用配件204之功能性。
配件特定硬體234可包括可存在於配件204中以允許實現配件之功能性之任何其他組件。舉例而言,在各種實施例中,配件特定硬體234可包括使用固定或抽取式儲存媒體之一或多個儲存裝置;GPS接收器;網路介面;電源及/或電力管理電路;環境感測器(例如,溫度感測器、壓力感測器、加速度計、化學感測器等)等。將理解,可藉由提供適當配件特定硬體234來支援任何類型之配件功能性。
主機I/O介面236可允許配件204與主機裝置202通信。根據本發明 之一些實施例,主機I/O介面236可包括與包括於主機裝置202中之連接器直接匹配之連接器,諸如與各種iPod®、iPhone®及iPad®產品中所使用之連接器互補的連接器。此連接器可用以將電力供應至主機裝置202及/或自主機裝置202接收電力、以類比及/或數位格式發送及/或接收音訊及/或視訊信號,及使用諸如USB、UART及/或FireWire之一或多個資料通信介面傳達資訊。亦可使用其他連接器;例如,主機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可為(例如)用以指示後面跟隨的係訊息之特定位元組碼、字元或字元序列。訊息識別符(MessageID)304可跟在BOM旗標302後;此識別符指示哪個訊息正在被發送。在一些實施例中,所有訊息可具有相同長度(L M )且取決於協定將支援之訊息之總數,可為(例如)1個位元組或2個位元組。
跟在訊息ID 304之後的可為與訊息ID相關聯之零個或更多個參數/值對306。不同訊息ID可具有不同數目個相關聯參數(包括用於一些訊息ID之零參數),且取決於實施,與特定訊息ID相關聯之參數中之 一些或全部可為選用的。考慮到靈活性,每一參數/值對可包括顯式參數識別符(paramID)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、將接下來的L M 個位元組解譯為訊息ID 304、接著基於訊息ID來解譯每一所包括參數/值對306來剖析該訊息。因此,例如,與「設定視訊解析度」訊息的訊息ID相關聯之為6之paramID可表示相關聯值指示按像素計之螢幕大小,而與「設定音訊取樣速率」訊息相關聯之為6之參數ID表示相關聯值指示每秒之樣本數目。
如上文所說明,參數值之長度可取決於參數ID。剖析所接收訊息之接收者可讀取參數ID 308、判定相關聯值之預期長度(L V )(例如,以位元組計)且相應地將接下來的L V 個位元組解譯為值。可將後續位元組解譯為下一個參數值,除非後續位元組對應於指派給EOM旗標330之位元組碼,在該情況下,將訊息視為完整的。
使用顯式參數/值對(而非(例如)假設參數次序)提供靈活性。舉例而言,與特定訊息ID 304相關聯之參數中之一些或全部可被指派一預設值,且發送者可自訊息300省略將使用預設值之任何參數。此可使訊息長度減少。另外,隨著協定隨時間經過而發展(例如,以適應新裝置及/或新功能性),可將多個新參數添加至一訊息。只要在建立訊 息之初始定義之後針對添加至訊息之任何新參數定義預設值,就可維持正向及回溯相容性。即使一裝置不發送一特定參數(例如,因為該裝置實施在時間上先於新參數之定義之較舊協定版本),接收者仍可剖析該訊息且適當地動作。在一些實施例中,協定可規定:若一裝置接收到一具有經辨識訊息ID但具有未經辨識參數ID的訊息,則該裝置應忽略該未經辨識參數。此可允許實施協定之較舊版本之一裝置與一較新裝置相互操作,而任一裝置皆不必協商版本特定差別。
如上所述,訊息300可包括與向主機裝置識別配件(及/或反之亦然)及協商裝置將協同實施之功能性(本文中亦被稱為操作協議)有關的訊息。圖4為展示根據本發明之一實施例之識別訊息之表400。針對欄402中之每一訊息,在欄404中指示有效方向(主機至配件或配件至主機);欄406描述可隨每一訊息包括之參數。
IDStart訊息可由主機發送至配件以起始一識別程序。在此實例中,IDStart訊息不包括參數;該訊息僅指示主機準備好自配件接收一識別提議。在一些實施例中,IDStart訊息可包括提供關於主機裝置之基本資訊(例如,製造商及型號識別符、韌體版本或其類似者)的參數。在一些實施例中,主機可發送單獨訊息(未圖示)以將主機識別資訊提供至配件。
IDInfo訊息可由配件發送至主機以提供一識別提議。IDInfo訊息可包括作為參數的許多「資訊項目(info item)」,該等資訊項目中之每一者可具有相關聯值。下文將參看圖5描述特定實例。在一些實施例中,單一IDInfo訊息可包括關於配件之識別資訊之全部,包括:製造商及型號資訊;配件提議被允許發送及/或接收之配件-協定訊息之一清單;識別應用程式(配件可與該等應用程式互動)之資訊;關於配件之設定及偏好之資訊;關於配件之電源及/或功率消耗特性之資訊;及關於配件所支援之實體輸送(例如,USB、UART或其他串列埠、藍 芽、Wi-Fi、其他無線輸送)之資訊。取決於實施,IDInfo命令可以任何所要之詳細程度為主機提供關於配件之能力及所提議功能性的完整資訊。因此,在一些實施例中,配件可藉由發送IDInfo訊息來向主機提出用於相互操作之提議。
IDAccept訊息可由主機發送至配件以指示提議(例如,如由IDInfo訊息所傳達)被接受;IDReject訊息可由主機發送至配件以指示提議已被拒絕。在一些實施例中,主機基於IDInfo命令中之資訊及其自身之規則集合來判定接受抑或拒絕提議。在下文描述實例。
IDTimeout訊息可由主機發送至配件以指示逾時狀況。舉例而言,若主機發送一IDStart訊息且配件在一設定時間段內未以一IDInfo訊息回應,則主機可發送一IDTimeout訊息以指示未來訊息(包括IDInfo訊息)將不被接受。在配件發送一IDInfo訊息,但主機出於某一原因未接收到該訊息之情況下,IDTimeout訊息可警示配件該問題;此訊息可防止配件無限期地等待來自主機之回應。
IDCancel訊息可由配件發送以指示配件不欲完成該識別程序(其可包括操作協議之協商)。(例如)在配件接收到一IDReject訊息之後,若配件判定其將不會重試,則可發送此訊息。回應於一IDCancel訊息,主機裝置可終止至配件之連接或(例如)藉由發送一新IDStart訊息來重新開始識別。在一些實施例中,已完成該識別程序之配件可在任何時間發送一IDCancel訊息以便重新識別自身,且主機可藉由發送一新IDStart訊息來回應。
IDUpdate訊息可由配件發送以在該訊息已被接受之後更新識別。在一些實施例中,可使用IDUpdate訊息進行更新之參數可侷限於IDInfo訊息之參數之一子集。因此,例如,可准許配件藉由發送一IDUpdate訊息來改變其名稱或某些使用者偏好設定,但不准許配件改變其可發送或接收之訊息之清單。
如上文所說明,IDInfo訊息可包括關於配件之識別資訊之全部。圖5為根據本發明之一實施例之列出可針對IDInfo訊息定義之參數之表500。欄502中所列出之每一參數具有判定參數之長度的參數類型(欄504)及指示可包括於一個IDInfo訊息中之參數之例項之數目的有效數目範圍(欄506)。更新欄508為每一參數指示參數是否亦可包括於IDUpdate訊息中。可由配件(例如)藉由發送一IDCancel訊息及一新IDInfo訊息來改變不能包括於IDUpdate訊息中之任何參數。
參數之第一群組510包括提供關於配件之基本資訊(例如,配件之名稱、製造商、型號、序號、韌體版本及硬體版本)之參數。可將此等參數中之每一者定義為具有固定長度(例如,32個字元)之「字串」類型。如欄506中所指示,在一些實施例中,要求配件為此等參數中之每一者供應正好一個值。因此,主機可拒絕未能規定此等參數之IDInfo訊息。
參數之第二群組512包括識別來自配件協定之配件提議被允許發送及接收之特定訊息的參數;此等訊息被稱為包括於所提議之「操作」子集中。在此實例中,將單獨參數用以規定配件可發送之訊息(訊息發送清單)及配件可接收之訊息(訊息接收清單)。可將每一參數定義為「陣列」類型,且陣列之每一元素可恰好為訊息碼之大小L M (例如,1或2個位元組);因此,每一參數之值可為適當訊息碼之清單。已考量到清單之長度可取決於配件功能性及協定實施之細節(例如,與將相同訊息用於不同參數值相對,哪些通信將相異訊息用於不同參數值)而改變。
考慮到可變長度之清單,在一些實施例中,陣列類型參數值之長度可為可變的。舉例而言,陣列可以大小指示符(例如,一或兩個位元組以指示陣列中之元素之數目)開始,繼之以陣列之元素(在此情況下,用於待發送或接收之訊息之實際訊息碼)。大小指示符亦可指 示每一元素之大小(大小針對所有元素可相同),或可基於陣列所相關聯於之參數ID來判定元素大小。基於參數ID,接收者可辨識後面跟隨的係陣列,讀取大小指示符,接著讀取陣列之每一元素。
在所展示之實施例中,配件規定待發送之正好一個訊息清單及待接收之正好一個訊息清單。如上所述,在一些實施例中,可將訊息之總體劃分成一般訊息之一集合及選用訊息之一集合,且協定可規定一般訊息始終包括於操作子集中而不管該等一般訊息是否包括於配件之清單中。因此,舉例而言,與識別相關之訊息(例如,圖4中所列出之訊息)可包括於一般訊息集合中,且主機可根據配件藉由發送IDInfo訊息來回應於IDStart訊息之事實推斷:配件支援此等訊息。在一些實施例中,若配件不欲發送除一般訊息外之任何訊息,則配件可發送具有空陣列(例如,含有一個具有空值之輸入項之陣列)之訊息清單參數。
參數之第三群組514包括關於配件與可能或可能不安裝於特定主機裝置上之特定應用程式之相互操作的參數。舉例而言,IDInfo訊息可包括偏好應用程式(Preferred App)參數,其用以規定配件經設計以與之相互操作的應用程式之識別符。識別符可為字串,諸如指派給該應用程式之名稱或唯一碼(例如,在藉以散發該應用程式之應用程式商店處),且主機裝置可使用識別符來判定是否安裝該應用程式。一些配件可選擇不規定特定應用程式;因此,IDInfo訊息可包括偏好應用程式參數之零個抑或一個例項。
額外地或替代地,IDInfo訊息可包括用以提供關於配件之支援特定的應用程式特定協定之能力之資訊的應用程式協定(App-Protocols)參數。(應用程式特定協定允許使用配件協定作為管道在配件與應用程式之間傳遞訊息,其中配件協定對於此等訊息之內容不作干涉)。
在此實例中,可使用參數值之結構化「欄位」類型來提供應用 程式特定協定資訊。在一些實施例中,欄位類型參數值可實施為固定長度欄位之一群組,其中欄位定義及每一欄位之長度對特定參數而言係固定的。或者,很像圖3中所展示之參數清單,欄位類型參數值可使用密鑰/值對來實施,但在單一參數內實施,而非實施為單獨的若干參數。在一些實施例中,要求包括針對欄位類型參數定義之所有密鑰/值對,以促進剖析。欄位類型參數是否可「巢套」於欄位類型參數內係設計選擇之問題。
應用程式協定參數之欄位可包括(例如):含有獲支援之應用程式特定協定之名稱的固定長度字串、提供應用程式特定協定之識別號碼的固定長度整數及/或識別將取決於主機裝置是否已安裝能夠使用經識別協定之應用程式而採取之動作的位元組碼(例如,若未發現應用程式,則可命令主機在應用程式商店中搜尋合適應用程式,詢問使用者是否應進行搜尋,或不採取任何動作)。在一些例子中,配件可能不支援應用程式特定協定,且在一些例子中,配件可能支援一個以上應用程式特定協定;因此,IDInfo訊息可包括一應用程式協定參數的任何數目個(零個或更多個)例項。
參數之第四群組516包括與配件對操作中之基於語言的差異及/或區域差異之支援有關的參數。舉例而言,鍵盤配件可能能夠取決於語言及/或區域而支援不同字元集合;顯示資訊之配件亦可能能夠用不同語言或用具有區域變化之相同語言(例如,在英語情況下,U.K.對比U.S.拼寫法)來呈現資訊。能夠支援不同語言及/或區域之配件可使用當前語言(Current Language)及/或當前區域(Current Region)參數來識別當前所選擇之語言及/或區域,例如,作為含有語言或區域之經辨識名稱之一字串。由於在給定時間僅有一種語言及一個區域為當前的,故在IDInfo訊息中不能包括任一參數之一個以上例項。
若配件支援多種語言及/或多個區域,則配件可使用支援語言 (Supported Language)及支援區域(Supported Region)參數來供應所支援之語言及/或區域之清單。可包括每一參數之任何數目個例項,其中參數值為含有語言或區域之經辨識名稱之字串。在一些實施例中,假設支援當前語言及區域且不必使用「當前」及「支援」參數兩者來提供當前語言及區域。
參數之第五群組518包括與配件功率及電力管理有關的參數。舉例而言,取決於配件是否及如何提供電力至主機,充電器類型(Charger Type)參數可指示所列舉電力類型之一集合中之一者。類型可包括(例如):用以指示配件自外部源汲取電力且將該電力中之至少一些傳遞至主機的「傳遞(passthrough)」、用以指示配件自內部源(例如,配件自身之電池、太陽電池板或其類似者)汲取電力且可將該電力中的至少一些提供至主機的「自供電(self-powered)」,及用以指示配件不提供電力至主機的「不供電(none)」。在一些實施例中,要求IDInfo命令包括以所列舉選項中之一者作為值之充電器類型參數。
在一些實施例中可包括最大電流供應(Max Current Supply)參數以規定配件可供應至主機之電流之最大量。可將電流規定(例如)為以毫安(mA)為單位表示最大電流之固定長度整數(例如,8位元)。在一些實施例中,若IDInfo命令指示充電器類型為「不供電」,則可省略最大電流供應參數。另外,一些實施例可針對每一充電器類型規定主機將對於最大電流供應參數採取之預設值,且若該預設值為配件可接受的,則IDInfo命令可省略最大電流供應參數。
在一些實施例中可包括最大電流汲取(Max Current Draw)參數以規定配件將自主機汲取之電流之最大量。再一次,可將電流規定(例如)為表示最大電流(以毫安計)之固定長度整數(例如,8位元)。一些實施例可規定主機將對於最大電流汲取參數採取之預設值,且若該預設值為配件可接受的,則IDInfo命令可省略最大電流汲取參數。不要 求配件在任何時間自主機實際地汲取規定之最大電流(或實際上任何電流)。
參數之第六群組520包括與配件所支援之每一通信介面有關的參數。已考量到每一個配件應支援至少一通信介面,但一配件可具有多個介面,且取決於實施,一些配件可使用多個介面來與同一主機裝置通信。參數520允許配件提供與每一可用介面之操作有關的資訊。在任何給定例子中,IDInfo命令可包括此群組之參數中之至少一者之至少一例項且可取決於哪些介面可用而包括多個參數及/或一個參數之多個例項。
對於每一類型之介面,欄位可包括適當資訊。舉例而言,對於任何類型之介面,欄位可包括將與該介面相關聯之識別符、該介面之名稱,及用以指示該介面是否支援配件協定通信之位元。用於特定類型之介面之欄位亦可指示特定針對該類型之介面之其他資訊。舉例而言,USB主機設定(USB Host Settings)欄位可包括關於USB主機介面所支援之音訊樣本速率之資訊。藍芽設定(Bluetooth Settings)欄位可指示藍芽之獲支援版本或類別(flavor)(例如,經典、低功耗、北歐(Nordic))、藍芽介面之MAC位址、將使用之配對方法(例如,PIN碼或安全樣本配對)及PIN碼(若需要)。更一般而言,用於特定介面之欄位可包括主機可使用以在該介面上建立連接之任何資訊。
將瞭解,本文中所描述之訊息格式、訊息及參數係說明性的,且變化及修改係可能的。除了上文所展示之實例之外或替代上文所展示之實例,亦可針對IDInfo命令定義其他參數。舉例而言,若配件具有輸入控制件,則配件可提供關於輸入控制件之數目、類型及配置之資訊。配件亦可提供關於其他能力及/或組件(諸如導航(例如,使用GPS或其類似物)、視訊輸出、音訊輸出或其類似者)之資訊。在一些實施例中,IDInfo命令可根據推斷指示配件具有某些能力。舉例而 言,訊息清單參數中之一者或兩者可包括關於遞送GPS座標至主機裝置及/或自主機裝置接收GPS座標之訊息;主機可根據此訊息推斷配件能夠產生及/或消費GPS資訊。作為另一實例,訊息發送清單可包括向主機裝置請求視訊串流之訊息;主機根據此訊息可推斷配件能夠接收視訊串流。
在一些實施例中,配件本身可為諸如車輛內汽車音響主機之多功能裝置,其可併有許多組件,諸如基於藍牙之免持聽筒組件、觸控螢幕顯示器及其他控制裝置(例如,方向盤上之控制按鈕)。IDInfo訊息可定義允許配件識別其組件中之每一者及每一組件之能力(其皆為相同配件之部分)的參數。
識別待發送之訊息及待接收之訊息的資訊可被呈現於單一清單中或劃分成多個清單。在一些實施例中,每一訊息碼僅在一個方向上有效,且不會由於呈現單一清單而產生模糊性(ambiguity)。在一些實施例中,一些訊息碼可在兩個方向上有效,且配件可(例如)藉由將一方向指示符附加至訊息碼或藉由提供待發送及接收之訊息之單獨清單(例如,如圖5所示)來指示配件是否意欲發送及/或接收特定訊息。
將理解,可被發送及/或接收之訊息之清單可為過度包括性的(overinclusive)。亦即,配件不必實際上發送包括於訊息發送清單中之每一條訊息或接收包括於訊息接收清單中之每一條訊息。在一些實施例中,該等訊息清單(若被主機接受)將配件繫結至以下操作協議:(1)配件同意不將不在訊息發送清單上之任何訊息發送至主機(協定假設可發送之任何訊息除外,諸如圖4中之識別訊息),且主機可忽略配件發送之任何此等訊息;(2)配件不預期接收不在訊息接收清單上之任何訊息;(3)配件對在訊息接收清單上之任何訊息之接收不會使配件將錯誤訊息發送至主機。
如上所述之識別訊息可用以支援向主機裝置識別配件裝置,包 括協商操作協議。圖6為根據本發明之一實施例之可實施於主機裝置(例如,圖1之主機裝置100或圖2之主機裝置202)中的用於協商識別之程序600的流程圖。
程序600可自區塊602開始,此時主機偵測至配件之連接。舉例而言,配件可連接至主機裝置上之連接器,如圖1所示,且經連接配件可將連接器上之一或多個接針拉至指示配件之存在之特定電壓。配件亦可請求經由無線協定(例如,藍芽或Wi-Fi)之連接,且主機可進行回應以建立可用以交換配件-協議訊息之連接。
在區塊604,主機可(例如)藉由發送如上所述之IDStart訊息來請求配件識別其本身。在區塊606,主機亦可開始鑑認程序以驗證配件之確實性。在一些實施例中,鑑認程序可包括請求一數位憑證並自配件接收該數位憑證、確認該數位憑證之有效性(例如,藉由將該數位憑證與已知良好及/或已知不良憑證之清單進行比較),及將一隨機臨時亂數或挑戰發出至配件以供配件使用私密密鑰進行數位簽署並傳回;可由主機裝置使用與該數位憑證相關聯之公共密鑰來驗證已簽署之臨時亂數。可(例如)使用配件協定之一般訊息集合中之訊息來實施該等鑑認請求及回應。(關於識別訊息,可假設所有配件及所有主機能夠發送及接收鑑認訊息,且配件不能正確回應鑑認訊息或根本不回應鑑認訊息可被主機解譯為鑑認程序之失敗。)在一些實施例中,鑑認程序可在程序600繼續進行識別之同時在背景中執行。在其他實施例中,程序600可在區塊606處等待鑑認完成且僅在鑑認成功之情況下進一步繼續進行。
在區塊608,程序600可等待來自配件之IDInfo訊息。在一些實施例中,主機並不無限期地等待。舉例而言,在區塊610,程序600可判定自發送IDStart訊息以來是否已經過一逾時週期。該週期可為(例如)100毫秒、2秒或任何其他所要時間段。若已經過該逾時週期,則 在區塊612,程序600可退出,從而將如上所述之IDTimeout訊息發送至配件。為了在逾時之後再次嘗試識別,配件可重新建立連接,藉此在區塊602處重新開始程序600。取決於實施,重新建立連接可能或可能不要求裝置之實體斷開及重新連接或其他使用者介入(例如,按壓配件上之重設按鈕)。在一些實施例中,主機不具有逾時週期,且只要配件保持連接,程序600就可等待IDInfo訊息。
若在區塊610,逾時週期尚未經過,則在區塊614,程序600可判定是否已接收完整IDInfo訊息。在一些實施例中,單一IDInfo訊息可分裂在多個封包中以供輸送至主機,且有可能在某一時刻僅已接收IDInfo訊息之部分。若訊息不完整,則程序600可繼續等待(區塊608),直至接收到完整訊息抑或逾時發生為止。在一些實施例中,部分IDInfo訊息之接收可重設逾時間隔,從而允許配件有更多時間使訊息完整。在一些實施例中,配件可發送多個IDInfo訊息,每一者含有識別資訊之一部分,且區塊614可包括偵測指示配件已完成發送IDInfo訊息之一不同訊息(例如,「ID完成」訊息)。
一旦已接收到完整IDInfo訊息,在區塊616,主機裝置就可剖析接收到之資訊且判定接受抑或拒絕該資訊,例如,藉由應用各種決策規則。舉例而言,在區塊618,主機裝置可讀取所提議之操作訊息之清單(例如,圖5之訊息發送清單及訊息接收清單參數)且判定主機是否能夠接收所有可發送訊息及發送所有可接收訊息。若主機不具有如此能力,則可拒絕該識別。
類似地,在區塊620,主機可至少部分地基於由配件提供之資訊來執行其他相容性測試。舉例而言,製造商及型號資訊可用以判定配件之特定能力,諸如配件是否可提供GPS座標或接收視訊。若配件將「發送GPS座標」訊息包括於其訊息發送清單中,但並不已知其能夠提供GPS座標,則一相容性測試可失敗。類似地,若配件將「視訊請 求」訊息包括於其訊息接收清單中,但並不已知其能夠接收視訊信號,則另一相容性測試可失敗。在一些實施例中,測試可基於是否已知配件不能夠執行其訊息清單暗示配件可以執行的某事,而非基於已知能力。
在一些實施例中,主機裝置可根據訊息清單推斷配件具有某些能力,而非依賴於關於特定配件之能力(或不具備能力)之明確資訊。舉例而言,若配件指示其可發送一「視訊請求」訊息,則主機可推斷配件能夠接收視訊信號。在一些實施例中,該選用訊息集合可包括協商待遞送至配件之一視訊信號格式及控制(例如,開始及停止)一視訊饋送所需的訊息群組,且主機可要求配件支援該整個群組抑或不支援此等訊息中之任一者。
在一些實施例中,可能已知特定主機裝置與特定配件型號不相容,且此已知的不相容性亦可為相容性測試失敗之基礎。
亦可定義相容性測試以強制執行使用者關於裝置行為之預期。舉例而言,若使用者可與特定配件互動以定義儲存於主機裝置上之媒體資產之播放清單(例如,藉由調用智慧播放清單功能性或操作由配件提供之遠端介面以自主機之媒體資產資料庫選擇資產),使用者可合理地預期能夠與同一配件互動以播放此播放清單。因此,可定義一測試,其在配件之經提議操作訊息之清單包括與定義配件上之播放清單有關之訊息,但不包括與播放此播放清單有關之訊息之情況下失敗。
在區塊624,主機可判定在區塊606開始之鑑認程序是否成功。舉例而言,成功可要求配件提供一已知良好憑證(或不在一已知不良清單上之憑證)並成功簽署隨機臨時亂數。成功亦可要求特定憑證針對特定配件有效,例如,基於配件型號號碼及/或配件已包括於經提議操作訊息之清單中的訊息。亦可強加其他條件以判定鑑認是否成 功。
若區塊618、620及624處之測試全部通過,則在區塊626,程序600可接受識別,例如,如上所述發送IDAccept訊息。程序600可在此點退出,此時識別完成。將理解,主機及配件可保持連接且可開始根據已協商之操作協議(例如,使用主機在區塊626處接受之提議中之操作訊息中之任一者或全部)相互操作。此可包括上文所描述之訊息發送清單及/或訊息接收清單中之訊息,以及被預設地視為操作性之任何訊息(例如,如上所述之一般訊息)。
若區塊618、620或624處之測試中之任一者失敗,則在區塊628,主機可拒絕該識別,例如,藉由發送IDReject訊息。在一些實施例中,IDReject訊息可包括指示識別為何被拒絕之原因碼。舉例而言,可指派不同原因碼以指示特定失敗條件,諸如鑑認失敗、主機不能接收訊息發送清單上之至少一訊息、主機不能發送訊息接收清單上之至少一訊息、一或多個訊息與經識別或所推斷之配件特性不相容、訊息之集合不足以支援相關聯的功能性等。在一些實施例中,在特定訊息導致拒絕之情況下,原因碼亦可包括識別有問題訊息之資訊。此資訊可促進由配件進行之重試嘗試,但非必需的。
在發送IDReject訊息之後,程序600可返回至區塊608,從而允許配件以新IDInfo訊息來重試該識別。在一些實施例中,若識別由於鑑認失敗而被拒絕,則程序600可退出而非准許配件進行重試。
在所展示之實例中,程序600不限制由配件進行之重試之數目。在一些實施例中,程序600可強加一極限,(例如)藉由在每當執行區塊628時使重試計數器遞增及在該計數器達到一上限(例如,3次嘗試)之情況下退出而非返回至區塊608。在一些實施例中,程序600可藉由實施限制在程序600第一次發送IDStart訊息時的時間與接受所提議識別的時間之間可經過之時間之「全域逾時」來限制重試;若在全域逾 時週期之最後未建立操作協議,則程序600可退出。若程序600由於過多重試(包括全域逾時期滿及/或超過重試之數目之極限)而退出,則配件可仍繼續嘗試進行識別,但如在區塊612,可需要斷開/重新連接序列。
在一些實施例中,配件可在程序600期間之任何點取消識別程序,例如,藉由發送如上所述之IDCancel訊息。若在執行程序600時在主機處接收到取消訊息,則程序600可退出。在該點處,在主機與配件之間不存在適當操作協議,且主機可封鎖(例如,藉由忽略)來自配件之其他通信。為了恢復,可要求配件如上所述地斷開並重新連接,藉此在區塊602重新開始程序600。
若在程序600之成功完成之後(例如,在區塊626之後)接收到取消訊息,則主機可重新開始程序600以自配件獲得新識別資訊,例如,無須斷開/重新連接序列。在此情境下,只要主機及配件保持連接,一些實施例就可不要求重新鑑認(例如,可省略區塊606及624)。
圖7為根據本發明之一實施例之可實施於配件(例如,圖1之配件102或圖2之配件204)中之識別程序700的流程圖。程序700自區塊702開始,此時配件建立至主機之連接。舉例而言,配件上之一連接器可變為與主機上之一配合連接器嚙合(例如,如圖1所示),或配件可使用一無線通信協定尋找一主機且將該主機辨識為能夠經由配件協定進行通信之裝置。無論通信頻道之細節如何,區塊702可包括一操作,配件可藉由該操作警示主機該配件存在及準備好使用配件協定進行通信。
在區塊704,配件可(例如)如上所述地自主機接收IDStart訊息。在區塊706,配件可起始與主機之鑑認程序;此程序可與在上文所描述之程序600之區塊606處起始之程序互補。如同程序600一樣,區塊706處之鑑認可在背景中與程序700之其他操作同時執行,或程序700 可在區塊706處等待直至鑑認完成,且僅回應於成功鑑認才進一步繼續進行。
在區塊708,配件可將IDInfo訊息發送至主機;IDInfo訊息可包括配件對操作訊息之清單之提議。在一些實施例中,配件可具有回應於IDStart訊息而被自動發送之已準備IDInfo訊息。在一些實施例中,配件可即時地建立或修改IDInfo訊息。舉例而言,若IDStart訊息(或自主機接收之某一其他初步訊息或信號)提供關於特定主機或其能力之資訊,則配件可基於該資訊修改其操作訊息清單,(例如)以移除已知不被特定主機支援之訊息,或基於特定主機之特性來選擇將最佳化配件之相互操作之操作訊息。
在區塊710,配件可接收來自主機之對IDInfo訊息之回應。在所展示之實施例中,有效回應為IDAcceptIDReject。若在區塊712處接收到IDReject,則在區塊714,配件可判定是否重試該識別。判定可基於各種決策準則,諸如,配件已經嘗試或重試並失敗之次數,是否留下任何後援選項(下文所描述)及/或若在IDReject訊息中提供了任何原因碼又如何。
若決策為重試,則在區塊716,配件可修改IDInfo訊息。可實施各種策略以用於在重試時修改IDInfo訊息。舉例而言,配件可具有按偏好遞減之次序配置的用於識別之一或多個已準備「後援」選項。第一選項(在區塊708處之初始遍次中發送)可提供一最佳操作體驗;相繼的後援選項可(例如)藉由移除或減少功能性或藉由用可提供類似(若不相同)功能性之效率較低集合替換操作訊息之較有效率集合來愈來愈偏離此最佳選項。在區塊716,配件可在後援選項之序列中選擇下一IDInfo訊息。
IDReject訊息包括原因碼(例如,如上所述)之實施例中,配件可使用該資訊來修改IDInfo訊息及/或判定是否要進行重試。舉例而 言,若原因碼將訊息發送或訊息接收清單上之一特定訊息識別為拒絕之原因,則假定仍可提供可接受的功能性(且若不能,則在區塊714,配件可判定不重試),配件可移除違規訊息。
在區塊708,可發送經修改IDInfo訊息,且若接收到另一拒絕,則在區塊714,配件可再次判定是否重試。若在任何點,配件判定不重試,則程序700可在區塊718處發送IDCancel訊息且在區塊720退出。在一些實施例中,不發送IDCancel;如上所述,主機側識別可實施逾時,且可將在逾時週期內沒有來自配件之回應解譯為取消。在一些實施例中,在退出程序700之後,配件可與主機斷開且重新連接至主機以便重新開始程序700且再次嘗試。
若在區塊712,未拒絕IDInfo命令,則預期配件在區塊722處接收到IDAccept。在該情況下,識別成功完成,且在區塊724,配件可開始與主機相互操作。雖然程序700可退出,但主機及配件可保持連接且可開始根據已協商之操作協議(例如,使用主機在區塊722處接受之提議中之操作訊息中之任一者或全部)相互操作。此可包括上文所描述之訊息發送清單及/或訊息接收清單中之訊息,以及被預設地視為操作性之任何訊息(例如,如上所述之一般訊息)。
在程序700中,若配件回應於IDInfo訊息既未接收到IDAccept亦未接收到IDReject,則將此情況視為錯誤。(在一些實施例中,若主機在配件發送IDInfo之前抑或之後發送IDTimeout,則此情況亦可出現。)在此情況下,在區塊726,可重設連接,且程序700可返回至區塊702以試圖重新建立連接且從頭重新開始識別程序。在一些實施例中,重設連接可能要求配件與主機實體斷開或其他使用者介入(例如,按動配件上之重設按鈕)。舉例而言,若主機在配件判定之逾時週期內根本不回應或若回應為除IDAcceptIDReject外的某物,則可達到區塊726。
將瞭解,圖6及圖7之識別程序係說明性的且變化及修改係可能的。被描述為順序性之步驟可平行地執行,步驟之次序可以改變,且步驟可被修改、組合、添加或省略。舉例而言,鑑認程序可在任何時間(包括在主機將IDStart發送至配件之前或在主機接收到IDInfo之後)開始或完全省略(若需要)。可以任何次序來執行由主機進行的用以判定接受抑或拒絕特定識別訊息之測試,且可使用任何數目個測試及測試之組合。在一些例子中,測試結果可取決於IDInfo訊息之內容及鑑認資訊兩者;例如,可基於配件所提供之特定數位憑證來限制發送或接收某些訊息之能力。
在識別失敗之例子(例如,逾時發生,或配件取消)中,取決於實施,配件抑或主機裝置(或兩者)可警示使用者。此等警示可採用螢幕上通知、指示器燈點亮、聲音等之形式。使用者可接著採取適當動作以解決故障,諸如斷開並重新連接配件(例如,使連接器脫嚙並重新嚙合、按壓重設按鈕或其類似者)。
如上所述,識別操作(例如,程序600及700)之成功完成將主機及配件置於該兩者能夠交換訊息且已協商規定每一裝置可自另一裝置接受哪些訊息之一操作協議之狀態。在一些實施例中,該協議可隱含地包括假定可由所有主機或配件裝置發送或接收之某些訊息,例如,如上所述之與識別相關之訊息及/或其他一般訊息。
正常執行之裝置遵守已協商之操作協議。因此,例如,正常執行之配件不發送除了在可發送訊息之已接受清單上之訊息外的任何訊息,且不理會除了在可接收訊息之已接受清單上之訊息外的任何訊息。類似地,正常執行之主機不理會自配件接收的除了在可發送訊息之已接受清單上之訊息外的任何訊息,且不將除了在可接收訊息之已接受清單上之訊息外的任何訊息發送至配件。不理會未達成協議之所接收訊息可幫助保護主機(或配件)不受藉由發送接收者未同意接收之 訊息來違背協議的不正常執行之配件(或主機)影響。此又可提供裝置之間的更可靠相互操作。不要求正常執行之裝置(主機或配件)在特定通信作業階段期間實際上發送或接收所有達成協議之訊息,僅要求正常執行之裝置能夠進行此操作。是否發送特定訊息可取決於操作之特定情境(在一些例子中包括使用者互動)。
在一些實施例中,如上文所說明,配件可在識別(例如,程序600及700)之成功完成之後發送IDUpdate訊息。IDUpdate訊息可包括先前使用IDInfo訊息規定之一或多個參數之新值。如上所述,IDUpdate訊息可限於更新IDInfo訊息中之參數之子集(例如,參數名稱,而非訊息清單)。就IDUpdate訊息不影響主機與裝置之間的現有操作協議之意義而言,主機可僅更新相關資訊且使用經更新資訊來繼續與配件互動。
舉例而言,在一些實施例中,配件可在如上所述之IDInfo訊息中提供其當前語言及/或區域設定。在識別之後,主機可用指示可能不同於當前設定之推薦語言及/或區域設定之一訊息進行回覆。(推薦可基於主機裝置自身之設定、配件之當前設定及所支援之語言/區域、諸如主機裝置或配件之當前位置之其他資訊等。)若配件接受該推薦,則配件可發送指示新的當前語言及/或區域設定之IDUpdate訊息。在另一實例中,使用者可藉由直接與配件互動來使配件上之語言及/或區域設定變化,且配件可發送IDUpdate訊息以通知主機該變化。
在一些實施例中,可使用IDUpdate訊息來發送對配件之埠及設定之更新。舉例而言,配件可決定啟動先前經識別為不可用於配件協定通信之埠,或決定去啟動先前經識別可用之埠。當配件使用IDUpdate啟動一埠時,主機可將先前所協商之操作協議應用於該新啟動之埠。在一些實施例中,配件不可使用IDUpdate訊息來添加未使用 IDInfo識別之埠,但可使用IDUpdate來改變與使用IDInfo識別之任何埠有關之設定。
若配件判定操作協議之變化係所需的,則配件可發送IDCancel訊息而非IDUpdate,接著如上所述地重新識別。若主機判定操作協議之變化係所需的(例如,回應於IDUpdate或任何其他事件或情況),則主機可發送新IDStart訊息,藉此重新調用該等識別程序。
操作協議之快速協商(例如,如上所述)亦可促進實施協定之較舊及較新版本之裝置之間的正向及回溯相容性。舉例而言,由於添加了新功能性,故協定可經擴展以包括新訊息ID。若使用較新協定版本之配件連接至使用較舊版本之主機,則配件可提議不被主機辨識之訊息ID,且主機將基於不被辨識之訊息ID來拒絕識別。若拒絕訊息通知配件存在不被辨識之訊息ID,則配件可推斷主機正在使用協定之較舊版本,且亦可推斷(例如)主機不支援相關聯功能性或支援更有限之功能性。
相反地,若使用較舊協定版本之配件連接至使用較新版本之主機,則配件可能僅提議主機與特定功能性相關聯之訊息ID之一子集。基於不存在較新訊息ID,主機可推斷配件正在使用協定之較舊版本;主機可接受提議,只要主機支援訊息ID之經提議子集便可。在一些例子中,主機可基於配件所提議之特定訊息ID來限制其行為。舉例而言,協定之當前版本可支援以三種不同格式(A、B及C)將來自主機之影像提供至配件,而較舊版本僅支援兩種格式(A及B)。主機可判定,呈格式C之影像實際上不可用於與僅支援A及B之配件的相互操作。
操作協議之快速協商(例如,如上所述)亦可促進對配件之認證測試。舉例而言,一系列主機裝置之製造商可運作允許其他製造商提交配件以便被認證為可與該製造商之主機裝置相互操作之一認證計劃。根據該計劃,經認證之配件可被加上標記且廣告宣傳為相容的,例如 使用專屬徽章及語言。(認證計劃之一個實例為Apple之「Made for iPod®」計劃。)
在認證測試期間,測試台(其可為自動化的或人工操作的)可與配件建立一操作協議,接著使用假設配件能夠發送及/或接收之每一條訊息來測試配件。測試台亦可偵測配件是否正在發送不在配件之清單上之任何訊息。配件之認證要求可包括驗證配件遵守上文所述的正常執行之配件之規則(例如,忽略不在已達成協議之清單上之所接收訊息且僅發送在已達成協議之清單上之訊息)。
本文中所描述之實施例可提供用於向主機裝置識別配件及建立主機與配件之間的操作協議之穩健且靈活之技術。配件最初提供識別在其連接至主機裝置時可能使用之所有能力之資訊,且主機可基於該資訊之整體來判定接受抑或拒絕配件識別(藉此允許或不允許相互操作)。
此等技術可(例如)在如下內容脈絡中使用:主機能夠與具有不同能力之許多不同配件相互操作以實施寬廣範圍之配件相依功能性,及共同協定定義可支援具有不同能力之一系列配件與能力亦可改變之主機的相互操作的訊息之總體。特定主機及特定配件可使用上文所描述之該等技術在試圖以特定方式(例如,利用訊息之一特定集合)通信之前驗證另一裝置能夠以該方式通信。此外,藉由使較舊及較新裝置協商該等裝置可交換之訊息之一集合,仍可使該等裝置相互操作。因此,例如,當一特定配件連接至一特定主機時,該配件可(例如)使用一識別訊息向該主機提出一提議,該提議用以將由協定定義之訊息之總體分割成訊息之一「操作」子集(亦即,該特定主機及該特定配件相互同意使用以相互通信之訊息)及一「非操作」子集(亦即,由協定定義的不在操作子集中之訊息)。在上文所描述之特定實施例中,提議係使用經提議包括於操作子集中之特定訊息之一清單提出;如上文 所說明,除了任何明確列出之訊息之外,該操作子集亦可預設地包括某些訊息(例如,在上述實例中之一般訊息)。該主機可判定該提議的分割是否可接受且向該配件通知其接受或拒絕該提議之決策。
並非識別要支援之訊息之群組或廣泛種類之功能性,而是明確識別可交換之特定訊息可能比在訊息群組或功能性種類之層級管理多個版本更為容易,且可將相互操作之可能性擴大至較大範圍之裝置。此外,在可藉由添加參數來擴展訊息之情況下,只要接收到具有不被辨識行為的訊息之裝置適當地處理該等訊息(例如,忽略該等訊息而非產生一錯誤訊息至發送者),且如果在訊息之起始之後添加至訊息之定義的任何參數已指派預設值使得使用稍後添加的參數之裝置可在沒有規定值之情況下相應地動作,便可使識別特定訊息至少稍微不會過時(future-proof)。
雖然已關於特定實施例描述本發明,但熟習此項技術者將認識到,許多修改係可能的,且特定參考一個實施例所描述之特徵可在其他實施例中應用。在一些實施例中,並不要求可連接至主機之每一個配件識別其自身;成功識別可為使用配件協定之任何進一步通信之必要條件;但亦可支援超出配件協定範圍之其他(受限)功能性。舉例而言,充電器可能能夠將電力提供至主機裝置而不發送任何識別或鑑認訊息。作為另一實例,主機裝置可具有不實施配件協定之埠(例如,諸如耳機插口之類比音訊輸出埠),且對於此等埠而言,將不需要識別。
在一些實施例中,若提議之識別被拒絕,則不要求選擇重試之配件重新發送其全部參數(除非該配件取消該程序或斷開)。可要求該配件重新發送完整訊息清單而非對先前清單之修正,以及該配件判定應被改變之任何其他參數。要求配件提供單一完整訊息清單(或兩個單獨清單,已發送之所有訊息之清單及接收到之所有訊息之清單)可 促進主機裝置對經修訂提議之考慮,且可比實施一系列指令以自先前提供之清單移除個別訊息及/或將個別訊息添加至先前提供之清單簡單。
在一些實施例中,當識別在進行中時,可阻止配件發送與識別無關之任何訊息。舉例而言,主機可忽略可能接收到的任何此等訊息。在其他實施例中,主機可在識別程序期間臨時允許至少一些無關訊息(例如,藉由接收該等訊息並相應地進行動作)且在程序以失敗結束或該等訊息不在所協商之操作協議之範疇內之情況下在識別之後開始阻止或忽略訊息。同樣地,在一些實施例中,配件可選擇忽略抑或處理在識別程序期間可接收的與識別無關之訊息。
此外,雖然上文之描述參考了向主機裝置識別自身之配件,但得益於本發明教示的熟習此項技術者將認識到,角色可以顛倒。可實施類似訊息及程序以允許主機向配件識別自身且基於待支援之特定訊息協商一操作協議。亦可實施雙向識別,(例如)一個裝置提供關於其自身之資訊而另一裝置以其自身資訊作為回應。在任何特定實施中,待交換之訊息之可接受集合之協商可在任一方向上發生(例如,如上所述,配件提議/主機接受或拒絕,抑或在相反方向上,主機提議且配件接受或拒絕)。其他實施例可定義一反覆協商程序,其中一個裝置可自另一裝置接收提議,修改提議之不被接受之部分,且將經修改提議發送至該另一裝置以供考慮;在接收到經修改提議時,該另一裝置可接受經修改提議抑或作出進一步修改,且該程序可繼續,直至由任一裝置發送之提議被另一裝置接受。
可使用專用組件及/或可程式化處理器及/或其他可程式化裝置之任何組合來實現本發明之實施例。可在相同處理器或不同處理器上以任何組合實施本文中所描述之各種程序。在將組件描述為經組態以執行特定操作之情況下,可(例如)藉由設計電子電路以執行操作、藉由 程式化可程式化電子電路(諸如微處理器)以執行操作或其任何組合來實現此等組態。此外,雖然上文所描述之實施例可參考特定硬體及軟體組件,但熟習此項技術者將瞭解,亦可使用硬體及/或軟體組件之不同組合,且經描述為以硬體實施之特定操作亦可能以軟體來實施,或反之亦然。
併有本發明之各種特徵之電腦程式可編碼並儲存於各種電腦可讀儲存媒體上;合適媒體包括磁碟或磁帶、光學儲存媒體,諸如光碟(CD)或DVD(數位多功能光碟)、快閃記憶體及其他非暫時性媒體。(將理解,資料之「儲存」不同於使用諸如載波之暫時性媒體的資料之傳播。)編碼有程式碼之電腦可讀媒體可與相容電子裝置包裝在一起,或程式碼可與電子裝置分開提供(例如,經由網際網路下載或作為單獨包裝之電腦可讀儲存媒體)。
因此,雖然本發明已依特定實施例說明,但應理解本發明意欲包含以下申請專利範圍內的所有變更及等效物。
100‧‧‧主機裝置
102‧‧‧配件
104‧‧‧顯示區域
106‧‧‧帶槽框
108‧‧‧控制按鈕
110‧‧‧插座連接器
112‧‧‧揚聲器
114‧‧‧顯示器
116‧‧‧使用者可操作之控制件
118‧‧‧插頭連接器
120‧‧‧插圖
122‧‧‧主機側識別邏輯
124‧‧‧提議規則
130‧‧‧插圖
132‧‧‧配件側識別邏輯
134‧‧‧提議
140‧‧‧識別訊息
142‧‧‧回應

Claims (38)

  1. 一種根據定義可由一第一裝置及一第二裝置中之一者發送至該第一裝置及該第二裝置中之另一者之一總體訊息之一協定用於建立該第一裝置與該第二裝置之間的通信之方法,該方法包含:由該第一裝置將一識別訊息發送至該第二裝置,其中該識別訊息包括將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合之一提議,且其中該提議包括識別將被包括於操作訊息之該集合中的在該總體訊息中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該第一裝置提議發送至該第二裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該第一裝置提議自該第二裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集;回應於發送該識別訊息,由該第一裝置自該第二裝置接收一回應訊息,該回應訊息指示該提議被該第二裝置接受抑或拒絕;及在該提議被接受之情況下,由該第一裝置使用經識別為操作訊息之自該等訊息之該第一子集及該等訊息之該第二子集之該等訊息中之至少一些來與該第二裝置相互操作。
  2. 如請求項1之方法,其進一步包含:在該回應訊息指示該提議被拒絕之情況下,由該第一裝置將一經修改提議發送至該第二裝置,該經修改提議包括識別對將被包括於操作訊息之該集合中之訊息之該列表之一修改。
  3. 如請求項1之方法,其進一步包含: 由該第一裝置自該第二裝置接收一識別請求,其中該識別訊息係回應於接收到該識別請求而被發送。
  4. 如請求項1之方法,其中該識別訊息進一步包括一裝置描述符,該裝置描述符包括選自由以下各者組成之一群組之一或多個資訊項目:該第一裝置之一製造商之一名稱;該第一裝置之一型號名稱;該第一裝置之一序號;該第一裝置之一硬體版本識別符;及該第一裝置之一韌體版本識別符。
  5. 一種根據定義可由一第一裝置及一第二裝置中之一者發送至該第一裝置及該第二裝置中之另一者之一總體訊息之一協定用於建立該第一裝置與該第二裝置之間的通信之方法,該方法包含:由該第二裝置自該第一裝置接收一識別訊息,其中該識別訊息包括將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合之一提議,且其中該提議包括將被包括於操作訊息之該集合中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該第一裝置提議發送至該第二裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該第一裝置提議自該第二裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集;由該第二裝置判定接收抑或拒絕該提議;由該第二裝置將一回應訊息發送至該第一裝置,其中該回應訊息指示該提議被接受抑或被拒絕;及在該第二裝置接受該提議之情況下,由該第二裝置使用來自訊息之該第一子集及該第二子集來與該第一裝置相互操作。
  6. 如請求項5之方法,其進一步包含:由該第二裝置自該第一裝置接收鑑認資訊, 其中判定接受抑或拒絕該提議係至少部分地基於該接收之鑑認資訊。
  7. 如請求項5之方法,其中:判定接受抑或拒絕該提議係部分地基於判定該第二裝置是否能夠回應於該第一子集中之該等訊息中之每一條訊息且部分地基於判定該第二裝置是否能夠發送該第二子集中之該等訊息中之每一條訊息。
  8. 如請求項5之方法,其中判定接受抑或拒絕該提議係部分地基於判定操作訊息之該集合是否足以實施與操作訊息之該集合中之該等訊息中之至少一者相關聯之一功能性。
  9. 如請求項5之方法,其中該識別訊息進一步包括一裝置描述符,且其中判定接受抑或拒絕該提議包括基於該裝置描述符判定操作訊息之該集合是否係容許的。
  10. 一種用於與一主機裝置一起使用之配件,該配件包含:一介面電路,其用於與該主機裝置通信;及耦接至該介面電路之控制邏輯電路,該控制邏輯電路經組態以:建立經由該介面電路至該主機裝置之一連接;產生用於根據定義一總體訊息之一協定的該配件與該主機裝置之相互操作之一提議,其中該提議將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合之一提議,且其中該提議包括識別將被包括於操作訊息之該集合中的在該總體訊息中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該配件提議發送至該主機裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該配件提議自該主機裝置接收的由該協定定義之 該總體訊息中之訊息之一第二子集;經由該介面電路將包括該提議之一識別訊息發送至該主機裝置;經由該介面電路自該主機裝置接收一回應,其中該回應指示該主機裝置接受抑或拒絕該提議;且在該回應指示該主機裝置接受該提議之情況下,起始與該主機裝置之相互操作,其中與該主機裝置之該相互操作包括交換操作訊息之該集合中之訊息及忽略非操作訊息之該集合中之訊息。
  11. 如請求項10之配件,其中該總體訊息由一般訊息之一集合及選用訊息之一集合組成,其中該提議中之識別訊息之該列表進一步包括將被包括於操作訊息之該集合中的選用訊息之該集合中之該等訊息之全部。
  12. 如請求項11之配件,其中一般訊息之該集合中之該等訊息之全部係包括於操作訊息之該集合中,但不包括於該提議中之該列表中。
  13. 如請求項10之配件,其中該控制邏輯電路進一步:在該回應指示該主機裝置拒絕該提議之情況下產生一經修改提議;且經由該介面電路將該經修改提議發送至該主機裝置。
  14. 一種用於與一配件一起使用之主機裝置,該主機裝置包含:一介面電路,其用於與該配件通信;及耦接至該介面電路之控制邏輯電路,該控制邏輯電路經組態以:偵測經由該介面電路至該配件之一連接;經由該介面電路自該配件接收用於根據定義一總體訊息之 一協定的該配件與該主機裝置之相互操作之一提議,其中該提議將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合,且其中該提議包括將被包括於操作訊息之該集合中的在該總體訊息中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該配件提議發送至該主機裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該配件提議自該主機裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集;判定接受抑或拒絕該提議;經由該介面電路將一回應發送至該配件,其中該回應指示該主機裝置接受抑或拒絕該提議;且在該主機裝置接受該提議之情況下,起始與該配件之相互操作,其中與該配件之該相互操作包括交換操作訊息之該集合中之訊息及忽略非操作訊息之該集合中之訊息。
  15. 如請求項14之主機裝置,其中該總體訊息由一般訊息之一集合及選用訊息之一集合組成,其中該提議中之識別訊息之該列表包括將被包括於操作訊息之該集合中的選用訊息之該集合中之該等訊息之全部。
  16. 如請求項14之主機裝置,其中該控制邏輯電路進一步以部分地基於判定該第一子集及該第二子集是否包括足以實施與該第一子集或該第二子集中之至少一者中的該等訊息中之至少一者相關聯之一功能性的一訊息子集來判定接受抑或拒絕該提議。
  17. 如請求項14之主機裝置,其中用於相互操作之該提議進一步包括一裝置描述符,且其中該控制邏輯電路至少部分地基於基於該裝置描述符判定操作訊息之該集合是否係容許的來判定接受抑或拒絕該提議。
  18. 如請求項14之主機裝置,其中該控制邏輯電路進一步:等待一逾時週期經過,隨後發送指示該主機裝置拒絕該提議之一回應;在於該逾時週期期間接收到一經修改提議之情況下,判定接受抑或拒絕該經修改提議,且經由該介面電路將一另外回應發送至該配件,以指示該主機裝置接受抑或拒絕該經修改提議;且在於該逾時週期期間未接收到經修改提議之情況下,經由該介面電路將一逾時訊息發送至該配件且在發送該逾時訊息之後忽略來自該配件之其他訊息。
  19. 一種根據定義可由一主機裝置及一配件中之一者發送至該主機裝置及該配件中之另一者之一總體訊息之一協定用於建立該主機裝置與該配件之間的通信之方法,該方法包含:由該主機裝置自該配件接收一識別訊息,其中該識別訊息包括將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合之一提議,且其中該提議包括將被包括於操作訊息之該集合中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該配件提議發送至該主機裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該配件提議自該主機裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集;及由該主機裝置判定接收抑或拒絕該提議,其中判定接收抑或拒絕該提議係部分地基於判定一第一訊息及一第二訊息是否由該列表而被識別,且若該第一訊息由該列表而被識別且該第二訊息由該列表而未被識別,則拒絕該提議。
  20. 如請求項19之方法,其進一步包含: 由該主機裝置發送一回應訊息至該配件,其中該回應訊息指示該提議被接受抑或拒絕。
  21. 如請求項20之方法,其中在該主機裝置接受該提議的情況下,由該主機裝置使用由該列表識別之訊息以與該配件相互操作。
  22. 如請求項19之方法,其進一步包含:由該主機裝置接收自該配件之鑑認資訊,其中判定接收抑或拒絕該提議係部分地基於該經接收之鑑認資訊。
  23. 如請求項19之方法,其中判定接收抑或拒絕該提議係部分地基於判定該配件是否可回應在該第一子集中之每一訊息且部分地基於判定該主機裝置是否可發送在該第二子集中之每一訊息。
  24. 如請求項19之方法,其中判定接收抑或拒絕該提議係部分地基於判定該第一子集及該第二子集是否包括用以實施與該第一子集或該第二子集中之至少一者中的該等訊息中之至少一者相關聯之一功能性的一足夠的訊息子集。
  25. 如請求項19之方法,其中該識別訊息進一步包括一裝置描述符,且其中判定接收抑或拒絕該提議包括基於該裝置描述符判定該第一子集中之訊息及該第二子集中之訊息是否係容許的。
  26. 一種根據定義可由一主機裝置及一配件中之一者發送至該主機裝置及該配件中之另一者之一總體訊息之一協定用於建立該主機裝置與該配件之間的通信之方法,該方法包含:由該主機裝置自該配件接收一識別訊息,其中該識別訊息包括將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合之一提議,且其中該提議包括將被包括於操作訊息之該集合中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該配件提議發送至該主機裝置的由該協定定義之該 總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該配件提議自該主機裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集;及由該主機裝置判定接收抑或拒絕該提議,其中判定接收抑或拒絕該提議係部分地基於判定在該第一子集中之一第一訊息或在該第二子集中之一第二訊息是否並未與該配件之一已知能力相關聯,且若該第一訊息並未與該配件之該已知能力相關聯,則拒絕該提議。
  27. 如請求項26之方法,其中該配件之該已知能力係由該配件之製造商及型式資訊來識別。
  28. 如請求項27之方法,其中該識別訊息進一步包括一裝置描述符,該裝置描述符包括該配件之該製造商及型式名稱。
  29. 如請求項26之方法,其進一步包含:由該主機裝置自該配件接收鑑認資訊,其中判定接受抑或拒絕該提議係至少部分地基於該接收之鑑認資訊。
  30. 如請求項26之方法,其進一步包含:由該主機裝置發送一回應訊息至該配件,其中該回應訊息指示該提議被接受抑或拒絕。
  31. 如請求項30之方法,其中在該主機裝置接受該提議的情況下,由該主機裝置使用自該列表之訊息以與該配件相互操作。
  32. 一種根據定義可由一主機裝置及一配件中之一者發送至該主機裝置及該配件中之另一者之一總體訊息之一協定用於建立該主機裝置與該配件之間的通信之方法,該方法包含:由該主機裝置自該配件接收一識別訊息,其中該識別訊息包括將該總體訊息分割成操作訊息之一集合及非操作訊息之一集 合之一提議,且其中該提議包括將被包括於操作訊息之該集合中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該配件提議發送至該主機裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該配件提議自該主機裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集;由該主機裝置接收包括一數位憑證之鑑認資訊;由該主機裝置判定接收抑或拒絕該提議,其中判定接收抑或拒絕該提議係部分地基於訊息之該第一子集及訊息之該第二子集之訊息是否基於該數位憑證係容許的。
  33. 如請求項32之方法,其進一步包含:由該主機裝置發送一回應訊息至該配件,其中該回應訊息指示該提議被接受抑或拒絕。
  34. 如請求項33之方法,其中在該主機裝置接受該提議的情況下,由該主機裝置使用自該列表之訊息以與該配件相互操作。
  35. 一種根據定義可由一主機裝置及一配件中之一者發送至該主機裝置及該配件中之另一者之一總體訊息之一協定用於建立該主機裝置與該配件之間的通信之方法,該方法包含:由該配件發送一識別訊息至該主機裝置,其中該識別訊息包括將該總體訊息分割成操作訊息之一集合及非操作訊息之一集合之一提議,且其中該提議包括將被包括於操作訊息之該集合中的該等訊息中之至少一些之一列表,該列表包括一第一清單,其識別該配件提議發送至該主機裝置的由該協定定義之該總體訊息中之該等訊息之一第一子集,及一第二清單,其識別該配件提議自該主機裝置接收的由該協定定義之該總體訊息中之訊息之一第二子集; 由該配件發送鑑認資訊至該主機裝置,該鑑認資訊包括一數位憑證;回應於發送該識別資訊及該鑑認資訊,由該配件自該主機裝置接收一回應訊息,該回應訊息指示該提議被該主機裝置接受抑或拒絕;及在該提議被接受的情況下,由該配件使用訊息之該第一子集及訊息之該第二子集之至少一些訊息以與該主機裝置相互操作。
  36. 如請求項35之方法,其進一步包含:在該回應訊息指示該提議被拒絕的情況下,由該配件發送一經修改提議至該主機裝置,該經修改提議包括一修改,該修改係針對識別將被包括於該操作訊息之該集合中之該列表。
  37. 如請求項35之方法,其進一步包含:由該配件接收來自主機裝置之一識別請求,其中該識別訊息係被發送以回應於接收該識別請求。
  38. 如請求項35之方法,其中該識別訊息進一步包括一裝置描述符,該裝置描述符包括該配件之一製造商之一名稱、該配件之一型式名稱、該配件之一序號、該配件之一硬體版本識別符及該配件之一韌體版本識別符之至少一者。
TW102118293A 2012-06-08 2013-05-23 用以建立通信之方法及相關配件與主機裝置 TWI515568B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261657586P 2012-06-08 2012-06-08
US13/710,084 US9306879B2 (en) 2012-06-08 2012-12-10 Message-based identification of an electronic device

Publications (2)

Publication Number Publication Date
TW201401059A TW201401059A (zh) 2014-01-01
TWI515568B true TWI515568B (zh) 2016-01-01

Family

ID=48446652

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102118293A TWI515568B (zh) 2012-06-08 2013-05-23 用以建立通信之方法及相關配件與主機裝置

Country Status (4)

Country Link
US (2) US9306879B2 (zh)
CN (1) CN104350484B (zh)
TW (1) TWI515568B (zh)
WO (1) WO2013184257A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104125244B (zh) * 2013-04-23 2019-05-07 中兴通讯股份有限公司 一种分布式网络中转发信息的方法及系统
US9244492B2 (en) * 2013-09-09 2016-01-26 Apple Inc. Docking station with audio output
US9411369B2 (en) 2013-09-19 2016-08-09 Apple Inc. Power distribution in a docking station
CN104066027B (zh) * 2014-06-06 2017-12-08 武汉天喻信息产业股份有限公司 音频设备的识别方法及系统
US10613585B2 (en) * 2014-06-19 2020-04-07 Samsung Electronics Co., Ltd. Transparent display apparatus, group play system using transparent display apparatus and performance methods thereof
US9729534B2 (en) * 2015-02-26 2017-08-08 Seagate Technology Llc In situ device authentication and diagnostic repair in a host environment
CN104811771B (zh) * 2015-04-24 2017-12-15 天脉聚源(北京)传媒科技有限公司 一种视频推送失败的处理方法及装置
US10333903B1 (en) * 2015-06-16 2019-06-25 Amazon Technologies, Inc. Provisioning network keys to devices to allow them to provide their identity
EP3171245B1 (en) 2015-09-24 2020-03-18 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method, apparatus, and system for upgrading adapter
EP3381153B1 (en) * 2015-11-24 2022-01-05 Harman International Industries, Incorporated Automated system setup
US10049059B2 (en) * 2015-12-22 2018-08-14 Lenovo (Singapore) Pte. Ltd. Device with magnet(s) for engaging with another device
KR102475304B1 (ko) * 2016-06-03 2022-12-07 삼성전자 주식회사 전자 장치 및 케이블과 그의 구동 방법
US10321587B2 (en) * 2017-02-03 2019-06-11 Google Llc Integrated connector receptacle device
WO2019043750A1 (ja) * 2017-08-28 2019-03-07 三菱電機株式会社 通信装置、動作手順管理方法及び動作手順管理プログラム
CN111417442B (zh) 2017-10-16 2023-08-08 乐高公司 交互式游戏设备
KR102457868B1 (ko) * 2017-12-02 2022-10-25 현대자동차주식회사 터치 입력장치

Family Cites Families (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475836A (en) 1987-04-01 1995-12-12 Lotus Development Corporation Interface for providing access to external data sources/sinks
KR910007403B1 (ko) 1987-07-29 1991-09-25 가부시키가이샤 도시바 반도체 집적회로
US4938483A (en) 1987-11-04 1990-07-03 M. H. Segan & Company, Inc. Multi-vehicle interactive toy system
US4924216A (en) 1988-02-12 1990-05-08 Acemore International Ltd. Joystick controller apparatus
US4850899A (en) 1988-06-20 1989-07-25 Maynard Scott D Connector for interfacing a disk drive with a computer
JP2802088B2 (ja) * 1989-02-06 1998-09-21 株式会社日立製作所 プロトコル選択切替方法
US5247138A (en) 1991-11-08 1993-09-21 Calcomp Inc. Cordless digitizer stylus status encoding and transmission scheme
US5525981A (en) 1992-01-30 1996-06-11 Calcomp Inc. Cordless digitizer transducer/cursor status transmission apparatus and method
US5618045A (en) 1995-02-08 1997-04-08 Kagan; Michael Interactive multiple player game system and method of playing a game between at least two players
US5835862A (en) 1996-03-06 1998-11-10 Nokia Mobile Phones Ltd. Data adapter unit for infrared communications
US5881366A (en) 1996-05-01 1999-03-09 Logitech, Inc. Wireless peripheral interface
US5873000A (en) 1996-07-19 1999-02-16 Compaq Computer Corporation System incorporating hot docking and undocking capabilities without requiring a standby or suspend mode by placing local arbiters of system and base into idle state
US5732361A (en) 1996-09-18 1998-03-24 Liu; Chun-Chieh Adapter for mobile phone
FR2760163A1 (fr) 1997-02-25 1998-08-28 Philips Electronics Nv Appareil de telecommunication muni d'un dispositif de reconnaissance de peripheriques
US5964847A (en) 1997-03-10 1999-10-12 International Business Machines Corporation Mobile client computer interacting with docking device
US6012105A (en) 1997-05-01 2000-01-04 Telefonaktiebolaget L M Ericsson System for interfacing with an external accessory in one of two interface modes based on whether communication can be established with external accessory or not
US5859522A (en) 1997-07-16 1999-01-12 Motorola, Inc. Accessory identification apparatus and method
US6199102B1 (en) 1997-08-26 2001-03-06 Christopher Alan Cobb Method and system for filtering electronic messages
US6078402A (en) 1997-09-24 2000-06-20 Hewlett-Packard Company Accessory based resource offset mechanism for a PCI bus in a printer
US6272127B1 (en) 1997-11-10 2001-08-07 Ehron Warpspeed Services, Inc. Network for providing switched broadband multipoint/multimedia intercommunication
US6101393A (en) 1997-11-20 2000-08-08 Ericsson Inc. Selective acceptance of short message service (SMS) messages in a cellular telephone network
US6188265B1 (en) 1997-12-12 2001-02-13 Scenix Semiconduction, Inc. High-voltage NMOS switch
GB9821103D0 (en) 1998-09-30 1998-11-18 Xerox Corp Mobile Email document transaction service
GB2342195A (en) 1998-09-30 2000-04-05 Xerox Corp Secure token-based document server
GB2342196A (en) 1998-09-30 2000-04-05 Xerox Corp System for generating context-sensitive hierarchically-ordered document service menus
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6725061B1 (en) 1999-01-12 2004-04-20 Qualcomm, Incorporated System and method for the automatic identification of accessories coupled to a wireless communication device
JP2000214953A (ja) 1999-01-25 2000-08-04 Fujitsu Ltd 電子機器の機能拡張装置
US6859538B1 (en) 1999-03-17 2005-02-22 Hewlett-Packard Development Company, L.P. Plug and play compatible speakers
US6463473B1 (en) 1999-04-09 2002-10-08 Sharewave, Inc. Configuring a wireless computer network to allow automatic access by a guest client device
US6453371B1 (en) 1999-04-23 2002-09-17 Palm, Inc. Method, apparatus, and system for selection of a port for data exchange
US6523124B1 (en) 1999-04-23 2003-02-18 Palm, Inc. System and method for detection of an accessory device connection status
US6493760B1 (en) 1999-06-28 2002-12-10 Xerox Corporation Standalone device for identifying available document services in a token-enabled operating environment
US7068674B1 (en) 1999-08-23 2006-06-27 Lg Electronics Inc. Method of controlling connection between nodes in digital interface
US7945284B1 (en) 1999-11-23 2011-05-17 Agere Systems Inc. Cordless telephone with MP3 player capability
JP3819658B2 (ja) 1999-12-27 2006-09-13 三洋電機株式会社 共通シリアルバスコネクターを具えた携帯電子機器
JP2001184147A (ja) 1999-12-27 2001-07-06 Sanyo Electric Co Ltd 携帯電子機器
US6539030B1 (en) * 2000-02-07 2003-03-25 Qualcomm Incorporated Method and apparatus for providing configurable layers and protocols in a communications system
KR20010092569A (ko) 2000-03-22 2001-10-26 이은복 탈착 가능한 전자 기기를 포함하는 이동 전화기
US6934752B1 (en) 2000-03-23 2005-08-23 Sharewave, Inc. Quality of service extensions for multimedia applications in wireless computer networks
US7187947B1 (en) 2000-03-28 2007-03-06 Affinity Labs, Llc System and method for communicating selected information to an electronic device
JP2001285439A (ja) 2000-03-29 2001-10-12 Rohm Co Ltd 携帯電話装置および充電器
KR20020001348A (ko) 2000-06-28 2002-01-09 윤종용 근거리 이동무선시스템을 이용하여 디지탈 오디오데이타를 청취할 수 있는 헤드셋
US7031267B2 (en) 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules
SG118066A1 (en) 2000-08-25 2006-01-27 Serial System Ltd A reconfigurable communication interface and method therefor
US6608399B2 (en) 2000-10-17 2003-08-19 Lear Corporation Vehicle universal docking station and electronic feature modules
US20020065074A1 (en) 2000-10-23 2002-05-30 Sorin Cohn Methods, systems, and devices for wireless delivery, storage, and playback of multimedia content on mobile devices
US20020068610A1 (en) 2000-12-05 2002-06-06 Anvekar Dinesh Kashinath Method and apparatus for selecting source device and content delivery via wireless connection
US6766175B2 (en) 2000-12-13 2004-07-20 Waxess Technologies, Inc. Cordless and wireless telephone docking station
US7127678B2 (en) 2000-12-21 2006-10-24 Microsoft Corporation System and method to specify device specific user interface information in the firmware of a USB device
US20020151327A1 (en) 2000-12-22 2002-10-17 David Levitt Program selector and guide system and method
DE60042461D1 (de) * 2000-12-22 2009-08-06 Nokia Corp Verfahren und system für den aufbau einer multimedia verbindung durch austausch der übertragungskapazitäten in einem ausserband-signalisierungskanal
US20020105861A1 (en) 2000-12-29 2002-08-08 Gateway, Inc. Standalone MP3 recording station
US20020103008A1 (en) 2001-01-29 2002-08-01 Rahn Michael D. Cordless communication between PDA and host computer using cradle
US6423892B1 (en) 2001-01-29 2002-07-23 Koninklijke Philips Electronics N.V. Method, wireless MP3 player and system for downloading MP3 files from the internet
DE60234573D1 (de) 2001-01-30 2010-01-14 Broadcom Corp Verfahren zum hinzufügen eines neuen Gerätes zu einem drahtlosen Netz
US20020115480A1 (en) 2001-02-13 2002-08-22 Huang Chih Chen Adapter set
EP1379986A4 (en) 2001-03-01 2007-08-01 Andy Vilcauskas AUDIO PROPERTY SYSTEM
US6724339B2 (en) 2001-03-14 2004-04-20 Universal Electronics Inc. System and method for controlling home appliances
JP3714882B2 (ja) 2001-03-16 2005-11-09 シャープ株式会社 携帯型通信端末充電システム
JP2002318647A (ja) 2001-04-19 2002-10-31 Mitsubishi Electric Corp 検出装置及びその検出方法
US7890661B2 (en) 2001-05-16 2011-02-15 Aol Inc. Proximity synchronizing audio gateway device
US7620363B2 (en) 2001-05-16 2009-11-17 Aol Llc Proximity synchronization of audio content among multiple playback and storage devices
US20020194621A1 (en) 2001-06-18 2002-12-19 Tran Thanh T. Multimedia interface control for consumer electronics device
CN1466835A (zh) 2001-06-27 2004-01-07 ���ṫ˾ 无线通信控制装置和方法、存储介质以及程序
US20030004934A1 (en) 2001-06-29 2003-01-02 Richard Qian Creating and managing portable user preferences for personalizion of media consumption from device to device
GB2378531B (en) 2001-07-11 2003-04-16 Sendo Int Ltd Software driver code usage
US6798647B2 (en) 2001-07-16 2004-09-28 Hewlett-Packard Development Company, L.P. Portable computer with integrated PDA I/O docking cradle
US7310821B2 (en) 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US7054423B2 (en) 2001-09-24 2006-05-30 Nebiker Robert M Multi-media communication downloading
US20030073432A1 (en) 2001-10-16 2003-04-17 Meade, William K. Mobile computing device with method and system for interrupting content performance among appliances
JP4204977B2 (ja) 2001-10-22 2009-01-07 アップル インコーポレイテッド メディアプレーヤーのためのインテリジェントなシンクロ操作
US20030167318A1 (en) 2001-10-22 2003-09-04 Apple Computer, Inc. Intelligent synchronization of media player with host computer
KR100420265B1 (ko) 2001-11-15 2004-03-02 한국전자통신연구원 무선 인터넷 망간 접속 방법
US7299304B2 (en) 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
US7050783B2 (en) 2002-02-22 2006-05-23 Kyocera Wireless Corp. Accessory detection system
AU2003213056A1 (en) 2002-02-22 2003-09-09 Emc Corporation Authenticating hardware devices incorporating digital certificates
US7254708B2 (en) 2002-03-05 2007-08-07 Intel Corporation Apparatus and method for wireless device set-up and authentication using audio authentication—information
US6742061B1 (en) 2002-03-08 2004-05-25 Nokia Corporation Accessory control interface
US20030208750A1 (en) 2002-03-29 2003-11-06 Tapper Gunnar D. Information exchange for process pair replacement in a cluster environment
US7433546B2 (en) 2004-10-25 2008-10-07 Apple Inc. Image scaling arrangement
US7187948B2 (en) 2002-04-09 2007-03-06 Skullcandy, Inc. Personal portable integrator for music player and mobile phone
JP2003309664A (ja) 2002-04-17 2003-10-31 Sony Corp 端末装置、データ送受信システム及びデータ送受信開始方法
JP2003316524A (ja) 2002-04-24 2003-11-07 Konica Minolta Holdings Inc 記録媒体及びプログラム
US20030220988A1 (en) 2002-05-22 2003-11-27 Hymel James A. Method and electronic device for establishing an interface to control an accessory device
US20040162029A1 (en) 2002-07-17 2004-08-19 Jeff Grady Audio player assembly comprising an MP3 player
US20070086724A1 (en) 2002-07-17 2007-04-19 Jeff Grady Interface systems for portable digital media storage and playback devices
GB0226778D0 (en) * 2002-11-18 2002-12-24 Hewlett Packard Co Using semantic web technology to enhance current business-to-business integration approaches
US20040103223A1 (en) 2002-11-26 2004-05-27 Motorola, Inc. USB accessory adaptor
KR100493858B1 (ko) 2002-12-16 2005-06-10 삼성전자주식회사 멀티 이어잭 및 그의 제어방법
US7363045B2 (en) 2003-01-03 2008-04-22 Vtech Telecommunications Limited Systems and methods for exchanging data and audio between cellular telephones and landline telephones
US7062261B2 (en) 2003-01-31 2006-06-13 Motorola, Inc. Method and apparatus for automatic detection and installation of Java-enabled accessories
US7791319B2 (en) 2003-02-21 2010-09-07 Research In Motion Limited Circuit and method of operation for an electrical power supply
US9274576B2 (en) 2003-03-17 2016-03-01 Callahan Cellular L.L.C. System and method for activation of portable and mobile media player devices for wireless LAN services
US7054965B2 (en) 2003-03-18 2006-05-30 Oqo Incorporated Component for use as a portable computing device and pointing device
US20040194154A1 (en) 2003-03-26 2004-09-30 Meadors Michael J. Removable storage device media player
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
GB0310929D0 (en) 2003-05-13 2003-06-18 Koninkl Philips Electronics Nv Portable device for storing media content
TW594544B (en) 2003-05-14 2004-06-21 Benq Corp Interface device for automatically determining peripherals and electronic device having such a function
US7043572B2 (en) 2003-06-06 2006-05-09 Microsoft Corporation Method and system for providing a peripheral service to a host computing device
US20040267812A1 (en) 2003-06-26 2004-12-30 Microsoft Corporation Media platform
US7305254B2 (en) 2003-07-17 2007-12-04 Sony Ericsson Mobile Communications Ab System and method of software transfer between a mobile phone and a mobile phone accessory
US20060184456A1 (en) 2003-07-21 2006-08-17 De Janasz Christopher G Vehicle-based wireless identification system
US8468209B2 (en) 2003-09-18 2013-06-18 International Business Machines Corporation Method of rescinding previously transmitted e-mail messages
US20050097087A1 (en) 2003-11-03 2005-05-05 Punaganti Venkata Murali K. System and method for providing a unified framework for service discovery
US8190723B2 (en) 2003-12-14 2012-05-29 Cisco Technology, Inc. Method and system for automatically determining commands for a network element
US20050135790A1 (en) 2003-12-23 2005-06-23 Sandisk Corporation Digital media player with resolution adjustment capabilities
US20050149213A1 (en) 2004-01-05 2005-07-07 Microsoft Corporation Media file management on a media storage and playback device
US20050181756A1 (en) 2004-02-17 2005-08-18 Chung-Hung Lin Wireless digital music player
US20050207726A1 (en) 2004-03-22 2005-09-22 Jui-Ming Chen Portable multimedia electronic device
US7441062B2 (en) 2004-04-27 2008-10-21 Apple Inc. Connector interface system for enabling data communication with a multi-communication device
US7673083B2 (en) 2004-04-27 2010-03-02 Apple Inc. Method and system for controlling video selection and playback in a portable media player
US7529870B1 (en) 2004-04-27 2009-05-05 Apple Inc. Communication between an accessory and a media player with multiple lingoes
US7293122B1 (en) 2004-04-27 2007-11-06 Apple Inc. Connector interface system facilitating communication between a media player and accessories
US7676590B2 (en) 2004-05-03 2010-03-09 Microsoft Corporation Background transcoding
GB0412338D0 (en) 2004-06-03 2004-07-07 Koninkl Philips Electronics Nv Transfer of content between storage devices
US7721304B2 (en) 2004-06-08 2010-05-18 Cisco Technology, Inc. Method and apparatus providing programmable network intelligence
US8396973B2 (en) 2004-10-22 2013-03-12 Microsoft Corporation Distributed speech service
US7450084B2 (en) 2004-12-17 2008-11-11 Microsoft Corporation System and method for managing computer monitor configurations
US7823214B2 (en) 2005-01-07 2010-10-26 Apple Inc. Accessory authentication for electronic devices
US20060161621A1 (en) 2005-01-15 2006-07-20 Outland Research, Llc System, method and computer program product for collaboration and synchronization of media content on a plurality of media players
US20060247851A1 (en) 2005-03-08 2006-11-02 Morris Robert P Mobile phone having a TV remote style user interface
US7532890B2 (en) 2005-04-01 2009-05-12 Rockliffe Systems Content-based notification and user-transparent pull operation for simulated push transmission of wireless email
US7466659B1 (en) * 2005-04-29 2008-12-16 Network Appliance, Inc. System and method for performing version negotiation of a network protocol and associated interfaces
US8244179B2 (en) 2005-05-12 2012-08-14 Robin Dua Wireless inter-device data processing configured through inter-device transmitted data
US20070080823A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Techniques for pairing remote controllers with host devices
US20080313704A1 (en) 2005-10-21 2008-12-18 Boxsentry Pte Ltd. Electronic Message Authentication
CN2904519Y (zh) 2006-01-20 2007-05-23 广州矽金塔电子有限公司 一种多功能蓝牙音箱
US20070236482A1 (en) 2006-04-07 2007-10-11 Microsoft Corporation Attachable display system for a portable device
US7444388B1 (en) 2006-04-13 2008-10-28 Concert Technology Corporation System and method for obtaining media content for a portable media player
US9026117B2 (en) 2006-05-16 2015-05-05 Aylus Networks, Inc. Systems and methods for real-time cellular-to-internet video transfer
US8073984B2 (en) 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
WO2007143720A2 (en) 2006-06-07 2007-12-13 Avaya Technology Llc Modular communication system for supporting wireless and wired telecommunication
WO2008097273A1 (en) 2006-08-10 2008-08-14 Avocent Huntsville Corporation Usb based virtual media system
EP2078236A4 (en) 2006-10-31 2013-12-18 Redpoint Pty Ltd INDUCTION OF BEHAVIOR DEFINED BY PART B IN PART A COMMUNICATIONS BY DISTRIBUTING USER INTERFACES
AU2007336832B2 (en) 2006-12-22 2012-05-24 Apple Inc. Communicating and storing information associated with media broadcasts
US20080256205A1 (en) 2007-02-26 2008-10-16 Shawn Christopher Mahoney Apparatus and Method for a Portable Hand Held Device Into a Media Controller
US8205080B2 (en) 2007-05-11 2012-06-19 Microsoft Corporation Over the air communication authentication using a device token
US8208403B2 (en) 2007-12-26 2012-06-26 Verizon Patent And Licensing Inc. Defining an end-to-end path for a network service
JP2011513804A (ja) 2008-01-02 2011-04-28 サンディスク アイエル リミテッド 直接ユーザアクセスを受ける記憶デバイス
CN101488953B (zh) 2008-01-14 2012-03-14 鸿富锦精密工业(深圳)有限公司 网络通信设备及其网络通信协议会话的分配方法
US8144187B2 (en) 2008-03-14 2012-03-27 Microsoft Corporation Multiple video stream capability negotiation
US8416811B2 (en) * 2008-04-10 2013-04-09 International Business Machines Corporation Coordinated timing network having servers of different capabilities
US9069908B2 (en) * 2009-03-16 2015-06-30 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US8452903B2 (en) * 2009-03-16 2013-05-28 Apple Inc. Mobile computing device capabilities for accessories
US8909803B2 (en) 2009-03-16 2014-12-09 Apple Inc. Accessory identification for mobile computing devices
US20110167176A1 (en) 2010-01-06 2011-07-07 Apple Inc. Connecting multiple accessories to a portable computing device
US8347014B2 (en) 2010-06-04 2013-01-01 Apple Inc. Class-based compatibility testing and notification
US8509694B2 (en) 2010-08-31 2013-08-13 Apple Inc. Techniques for facilitating communication between a portable media device and an accessory using multiple communication paths
US20130332632A1 (en) 2012-06-08 2013-12-12 Apple Inc. Holistic identification of an electronic device

Also Published As

Publication number Publication date
US20150339079A1 (en) 2015-11-26
WO2013184257A1 (en) 2013-12-12
CN104350484A (zh) 2015-02-11
US9306879B2 (en) 2016-04-05
TW201401059A (zh) 2014-01-01
US20130332542A1 (en) 2013-12-12
CN104350484B (zh) 2017-05-03

Similar Documents

Publication Publication Date Title
TWI515568B (zh) 用以建立通信之方法及相關配件與主機裝置
US20130332632A1 (en) Holistic identification of an electronic device
US9201827B2 (en) Device dependent selection between modes for asymmetric serial protocols
US8472874B2 (en) Method and system for pairing of wireless devices using physical presence
CN102428456B (zh) 移动计算设备的附件识别
CA2651048C (en) Method and system for authenticating an accessory
CN201509210U (zh) 跨传输端认证
CN102428457B (zh) 用于附件的移动计算设备附件能力
US20110167176A1 (en) Connecting multiple accessories to a portable computing device
CN103597805B (zh) 用于促进附件与多个设备之间的交互操作的技术
TW201502787A (zh) 使用配件協定經由無線傳輸之主機與配件裝置間之通信
CN102483787A (zh) 附件设备认证
EP2842043B1 (en) Protocol translating adapter
AU2012203921A1 (en) Method and system for pairing of wireless devices using physical presence