經(jīng)由通信接口提取操作系統(tǒng)特定的特性的制作方法
【專利說明】
【背景技術(shù)】
[0001]通用串行總線(USB)是支持在主機計算機與很大范圍的同時可訪問的外圍設(shè)備之間的數(shù)據(jù)交換的通信接口。附加的外圍設(shè)備通過使用主機調(diào)度的、基于記號的協(xié)議而操作??偩€允許外圍設(shè)備在主機與其它外圍設(shè)備正在操作的同時被附著、配置、使用、和分離。
[0002]USB是由工業(yè)代表委員會批準(zhǔn)的技術(shù)規(guī)范所規(guī)定的。這個USB技術(shù)規(guī)范是從USB實施者論壇(當(dāng)前的互聯(lián)網(wǎng)URL: www.usb.0rg)可得到的。USB技術(shù)規(guī)范覆蓋USB操作的所有的方面,包括電的、機械的、和通信特性。為被稱為USB設(shè)備,外圍設(shè)備遵循這個技術(shù)規(guī)范。
[0003]USB設(shè)備信息典型地被存儲在所謂的“描述符”中。描述符在USB系統(tǒng)中被使用來把所述設(shè)備識別給主機系統(tǒng),例如使得主機計算機可以選擇和執(zhí)行被使用來與被連接到該主機計算機的設(shè)備進行接口聯(lián)系的適當(dāng)軟件。主機計算機發(fā)送從設(shè)備檢索描述符的控制請求。獨立的硬件供應(yīng)商(IHV)也可以存儲類別和供應(yīng)商特定的描述符。然而,這些描述符的使用的靈活性以及它們保證的兼容性是有限的。例如,這樣的描述符或者受到被包括在與所述設(shè)備相關(guān)聯(lián)的通信接口(例如,USB)的技術(shù)規(guī)范中的描述符的類型的限制,或者描述符可能受限于它們與可接納這樣的設(shè)備的各種主機計算系統(tǒng)的兼容性。
[0004]本申請的實施例針對的正是這種通用技術(shù)環(huán)境。
【發(fā)明內(nèi)容】
[0005]總之,本公開內(nèi)容涉及到用于規(guī)定在使用通用串行總線(USB)接口訪問的設(shè)備中的擴展能力描述符信息的系統(tǒng)和方法。這里描述的擴展能力描述符信息允許由設(shè)備提供操作系統(tǒng)特定的功能性,同時也保持與不實施擴展描述符的設(shè)備的兼容性。在某些情形下,擴展描述符是與設(shè)備、設(shè)備配置、或設(shè)備的功能相關(guān)聯(lián)的,由此允許主機計算系統(tǒng)尋址到在不同的范圍處的設(shè)備。此外,在某些實施例中,擴展能力描述符可以例如根據(jù)主機計算系統(tǒng)的操作系統(tǒng)的版本或類型而與不同的配置和/或功能性一起被使用,由此允許同一個設(shè)備根據(jù)它被連接到的主機計算系統(tǒng)而具有不同的特性。另外,擴展能力描述符例如可以根據(jù)主機計算系統(tǒng)的最小操作系統(tǒng)版本來識別所述設(shè)備支持與設(shè)備一起被使用的替換的一組標(biāo)準(zhǔn)描述符。
[0006]在實施例中,系統(tǒng)包括可編程電路和存儲器,存儲器與所述可編程電路通信地接口連接并被配置成存儲計算指令。當(dāng)被可編程電路執(zhí)行時,計算指令使得可編程電路響應(yīng)于經(jīng)由把設(shè)備通信地連接到主機計算系統(tǒng)的接口在設(shè)備處接收到請求,而把平臺能力描述符傳送到主機計算系統(tǒng)。平臺能力描述符包括一個或多個元素,每個元素識別與所述設(shè)備相關(guān)聯(lián)的不同的擴展能力描述符組,所述元素中的至少一個識別能夠支持對應(yīng)的擴展能力描述符組的最小操作系統(tǒng)版本。
[0007]在另外的實施例中,方法包括從主機計算系統(tǒng)發(fā)送請求到設(shè)備,以及接收向主機計算系統(tǒng)識別被存儲在設(shè)備上的至少一個擴展描述符組的擴展能力描述符。擴展能力描述符識別能夠支持對應(yīng)的擴展描述符組的最小操作系統(tǒng)版本。
[0008]在另一些實施例中,公開了計算機實施的存儲介質(zhì),其包括被存儲在其上的計算機可執(zhí)行指令。當(dāng)指令由計算設(shè)備執(zhí)行時,指令使得計算設(shè)備執(zhí)行方法,所述方法包括將對于被存儲在設(shè)備處的一個或多個描述符的請求發(fā)送到設(shè)備,所述一個或多個描述符包括擴展能力描述符。請求是從主機計算系統(tǒng)經(jīng)由通信地將設(shè)備連接到主機計算系統(tǒng)的接口被發(fā)送的。方法還包括在主機計算系統(tǒng)處接收擴展能力描述符,其中擴展能力描述符包括一個或多個元素,每個元素識別與設(shè)備相關(guān)聯(lián)的不同的擴展能力描述符組。元素中至少一個識別能夠支持對應(yīng)的擴展描述符組的最小操作系統(tǒng)版本。方法還包括從主機計算系統(tǒng)發(fā)送第二請求到設(shè)備,第二請求對應(yīng)于對于根據(jù)擴展能力描述符的內(nèi)容和主機計算系統(tǒng)的操作系統(tǒng)而被識別的擴展描述符組的請求。方法還包括,響應(yīng)于第二請求,接收能由主機計算系統(tǒng)使用來枚舉設(shè)備的一組擴展描述符,以及規(guī)定由主機計算系統(tǒng)的操作系統(tǒng)支持的功能性。
[0009]本概要被提供來以簡化的形式介紹概念的選擇,這些概念還在下面的詳細說明中進行描述。本概要既不打算識別所要求保護的主題的關(guān)鍵特征或必要特征,也不打算被使用來限制所要求保護的主題的范圍。
【附圖說明】
[0010]圖1是按照示例性實施例的、包括經(jīng)由USB接口連接的主機計算系統(tǒng)和設(shè)備的示例性系統(tǒng)的框圖;
圖2是使用這里討論的方法和系統(tǒng)可得到的擴展能力描述符的分層圖;
圖3是圖示按照示例性實施例的、擴展能力描述符組的設(shè)備級別特性的組織的邏輯圖;圖4是圖示按照示例性實施例的、擴展能力描述符組的配置級別特性的組織的邏輯圖;圖5是圖示按照示例性實施例的、擴展能力描述符組的功能級別特性的組織的邏輯圖;圖6是按照示例性實施例的、用于復(fù)合設(shè)備的和包括設(shè)備級別與功能級別特征描述符的總的擴展能力描述符組的示例性布局;
圖7是按照示例性實施例的、可使用來提供一個或多個擴展能力描述符組的標(biāo)識的平臺能力描述符的示例性邏輯布局;
圖8是按照示例性實施例的、用于提取操作系統(tǒng)特定的特性的示例性方法的流程圖;
圖9是按照示例性實施例的、用于檢測被通信地連接到主機計算系統(tǒng)的設(shè)備的非標(biāo)準(zhǔn)能力的方法的詳細流程圖;
圖10是可以用其實踐本實施例的計算設(shè)備的簡化框圖;
圖1lA和IlB是可以用其實踐本實施例的移動計算設(shè)備的簡化框圖;
圖12是可以在其中實踐本實施例的分布式計算系統(tǒng)的簡化框圖。
【具體實施方式】
[0011]如以上概述的,本公開內(nèi)容的實施例針對用于規(guī)定在通過使用例如在主機計算系統(tǒng)與外設(shè)設(shè)備之間的通信接口而被訪問的設(shè)備中的擴展能力描述符信息的系統(tǒng)和方法。這里描述的擴展能力描述符信息允許由設(shè)備提供操作系統(tǒng)特定的功能性或信息,同時也保持與不實施這樣的擴展能力描述符的、或?qū)嵤┟枋龇囊郧暗陌姹镜脑O(shè)備的兼容性。另外,可以確定其它類型的配置特定的信息,諸如設(shè)備被連接到的主機計算系統(tǒng)的性質(zhì)(例如,主機系統(tǒng)的操作系統(tǒng)或計算結(jié)構(gòu)),或所使用的連接的類型(例如,USB標(biāo)準(zhǔn)或低功率連接)。另夕卜,特定的操作系統(tǒng)設(shè)定和客戶設(shè)備特定的設(shè)定也可以使用這樣的描述符被提供。
[0012]通常,包括操作系統(tǒng)(“OS”)描述符的USB設(shè)備已被開發(fā)。當(dāng)OS描述符被集成到設(shè)備時,主機設(shè)備可以運行使用那些OS描述符的操作系統(tǒng),以及可以使用控制請求來檢索信息。所檢索的信息然后被使用來安裝和配置USB設(shè)備,而不需要用戶交互。然而,這樣的OS描述符的當(dāng)前的實施方案具有缺點。例如,在其中USB設(shè)備缺乏這樣的OS描述符的某些情形下,該設(shè)備在OS描述符被主機計算系統(tǒng)請求時將失敗。此外,OS描述符當(dāng)前不能提供基于主機設(shè)備的操作系統(tǒng)的不同的版本的標(biāo)識的任何特定的信息;換句話說,當(dāng)前的OS描述符或者存在并且能夠被操作系統(tǒng)訪問,或者它們都不行。再者,當(dāng)前的OS描述符在接口級別被規(guī)定,而不是在設(shè)備級別被規(guī)定;因此,用于多功能設(shè)備的描述符規(guī)定特定功能的特征,而不是整個設(shè)備的特征。正如下面進一步討論的,按照本公開內(nèi)容規(guī)定的OS描述符允許將信息的范圍界定到適當(dāng)?shù)募墑e,不管它例如是與設(shè)備、設(shè)備的配置、還是與設(shè)備中包括的功能相關(guān)聯(lián)。
[0013]現(xiàn)在參照圖1,圖上顯示了系統(tǒng)100,其中使用通信接口被連接的設(shè)備包括非標(biāo)準(zhǔn)的設(shè)備、配置、以及功能類別和子類別代碼。另外,系統(tǒng)包括主機應(yīng)用程序和主機操作系統(tǒng),其能夠枚舉非標(biāo)準(zhǔn)的兼容的ID,或?qū)?yīng)于設(shè)備的非標(biāo)準(zhǔn)的類別和子類別代碼。在所顯示的實施例中,系統(tǒng)100是與通用串行總線(USB)技術(shù)規(guī)范兼容的。這些技術(shù)規(guī)范是從USB實施者論壇(當(dāng)前的互聯(lián)網(wǎng)URL: www.usb.0rg)可得到的。
[0014]系統(tǒng)100包括主機計算系統(tǒng)102和設(shè)備114,諸如USB外圍設(shè)備或通信地連接到主機計算機的其它外圍設(shè)備(例如,使用IEEE 1394串行總線接口或藍牙無線接口 )。計算機和外圍設(shè)備的相應(yīng)的功能性在許多情形下是由諸如程序模塊那樣的計算機可執(zhí)行指令體現(xiàn)的,所述計算機可執(zhí)行指令是由相應(yīng)的處理器執(zhí)行的。通常,程序模塊包括例行程序、程序、對象、構(gòu)件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)嵤┨囟ǖ某橄髷?shù)據(jù)類型。
[0015]主機計算系統(tǒng)102是一種計算系統(tǒng),諸如臺式機、膝上型電腦、平板電腦、或其它計算設(shè)備,諸如下面描述的和在圖10-12中圖示的。主機計算系統(tǒng)102具有一個或多個處理器104和一種或多種形式的存儲器106,諸如電子存儲器、磁存儲媒體、光學(xué)存儲媒體、或某種其它類型的數(shù)據(jù)存儲裝置。程序被存儲在存儲器106中,程序從其中被處理器104執(zhí)行。在本例中,這樣的程序包括操作系統(tǒng)108,諸如MICROSOFT WINDOWS ?家族的操作系統(tǒng)。操作系統(tǒng)108提供各種系統(tǒng)服務(wù)給在主機計算系統(tǒng)102上運行的一個或多個應(yīng)用程序110,并且可以是任何的各種各樣類型或版本的操作系統(tǒng)。
[0016]在顯示的實施例中,計算機還具有USB通信驅(qū)動器和USB端口 112 WSB端口 112由操作系統(tǒng)108支持。為了經(jīng)由USB端口與設(shè)備通信,應(yīng)用程序110對由操作系統(tǒng)提供的系統(tǒng)服務(wù)進行高級別調(diào)用。系統(tǒng)服務(wù)注意到較低級別通信細節(jié),并且把請求的信息返回給應(yīng)用程序。
[0017]在各種實施例中,設(shè)備114可以是任何的許多不同的類型的設(shè)備,諸如數(shù)據(jù)存儲設(shè)備、數(shù)字照相機、掃描儀、控制桿、游戲板、操縱單元、鼠標(biāo)、觸針、數(shù)字揚聲器、麥克風(fēng)、顯示設(shè)備等等。在某些實施例中,設(shè)備114可以是另一個計算系統(tǒng),諸如移動電話或平板計算系統(tǒng)。在這樣的實施例中,設(shè)備114具有一個或多個處理器116和一種或多種形式的存儲器118,其包括至少某種形式的非易失性存儲器120。在替換實施例中,設(shè)備可以沒有這樣的處理器或存儲器118。在顯示的示例性實施例中,設(shè)備114通信地連接到主機計算系統(tǒng)102。
[0018]在顯示的實施例中,設(shè)備114具有USB端口 126,并且經(jīng)由USB通信接口 128而與主機計算系統(tǒng)102通信。設(shè)備任選地還具有操作邏輯,該操作邏輯由處理器116執(zhí)行來檢測控制驅(qū)動和用于跨通信接口 128而與主機計算系統(tǒng)102通信。
[0019]正如下面進一步討論的,設(shè)備114對來自主機計算系統(tǒng)102的、跨通信接口128的請求進行響應(yīng)。這些請求是使用控制轉(zhuǎn)移而作出的,在控制轉(zhuǎn)移中交換設(shè)置分組(未示出)。在某些情形下(諸如這里討論的那些