亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

輔助顯示器的可擴展體系結(jié)構(gòu)的制作方法

文檔序號:6651113閱讀:169來源:國知局
專利名稱:輔助顯示器的可擴展體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及計算機系統(tǒng),尤其涉及連接到主計算機系統(tǒng)的輔助計算設(shè)備。
背景技術(shù)
美國專利申請第10/429,930號和第10/429,932號一般地針對具有提供某種輔助計算功能的輔助處理和輔助機制的計算機系統(tǒng)的概念。例如,膝上計算機的頂蓋和側(cè)邊上的小液晶顯示屏(LCD)可甚至在主計算機顯示并非輕易可見時(例如,當(dāng)膝上計算機的頂蓋被合上和/或主計算機電源被切斷時),也可為其所有者提供諸如會議地點和時間等有用信息??商峁┲T如按鈕等控件,以允許用戶與輔助設(shè)備交互來查看不同類型的數(shù)據(jù),諸如在滾動日歷數(shù)據(jù)之間以查看各個約會、閱讀電子郵件消息、閱讀目錄、等等。
一定程度上類似于內(nèi)建于移動主計算機的輔助LCD屏幕,移動電話、音樂播放設(shè)備、袖珍個人計算機、個人數(shù)字助理等等在被物理地和/或經(jīng)由無線(例如,藍牙或紅外)鏈路連接到主計算機時可發(fā)揮輔助設(shè)備的作用,只要該設(shè)備被編程以允許其顯示和/或其它功能可由主計算機控制。一般而言,具有I/O能力、實際上能以任何方式與計算機系統(tǒng)對接的的任何設(shè)備潛在地都可用作輔助計算設(shè)備。
但是,有各種各樣可用作計算機系統(tǒng)的輔助顯示器的設(shè)備。從而,有許多內(nèi)部地配置此類設(shè)備的方法。這給設(shè)備制造商(有時成為獨立硬件供應(yīng)商,或IHV)帶來困難,因為用戶會想要他們的設(shè)備可用作輔助顯示器,但是制造商必須要能夠讓該設(shè)備執(zhí)行預(yù)期的功能。因此,需要對設(shè)備進行不同的設(shè)計,無論它主要是音頻播放器、GPS(全球定位系統(tǒng))接收器、電話、還是數(shù)字相框等。迄今為止,能夠自定義系統(tǒng)中的硬件、同時仍然將該設(shè)備作為功能完整的輔助顯示器使用的唯一方法是制造商編寫極大量的代碼,來將他們的硬件與包含輔助顯示功能的其它現(xiàn)有固件集成。我們需要的是一種計算體系結(jié)構(gòu),它在適當(dāng)時候讓設(shè)備作為功能完整的輔助顯示器運行,但令該設(shè)備可擴展,從而制造商能夠添加所需功能,以及能創(chuàng)新并將其設(shè)備與其它制造商的設(shè)備區(qū)別開來。

發(fā)明內(nèi)容
簡而言之,本發(fā)明提供一種用于輔助顯示器的計算體系結(jié)構(gòu),它包括若干不同的代碼層,設(shè)備制造商可根據(jù)特定需要,按需獨立擴展其中的每一層。以此體系結(jié)構(gòu),本發(fā)明允許設(shè)備制造商以僅要求顯著減少的(例如,極少甚至沒有)固件改變量的方式自定義硬件組件。自定義的例子包括將諸如移動通信的無線電、SPOT無線電、藍牙無線電、和/或GPS接收器等無線電接收器或收發(fā)器;包括溫度傳感器、音頻解碼器(例如,用于數(shù)字信號處理)、附加存儲和/或諸如指示器等其它硬件集成到設(shè)備中。
在硬件組件以上的低層,HAL(硬件抽象層)允許以獨立于硬件的方式編寫較高層的代碼。HAL可按需擴展以支持自定義的硬件。因為HAL將硬件區(qū)別抽象化,所以設(shè)備制造商可在許多類型的設(shè)備之間重復(fù)使用在較高層運行的驅(qū)動程序,而無需大動干戈地為每一類設(shè)備自定義驅(qū)動程序。
在驅(qū)動程序以上,其它設(shè)備軟件包括諸如TinyCLR等公共語言運行庫(runtime),它包括.NET公共語言運行環(huán)境的相對較小范圍的實現(xiàn)。在公共語言運行庫上運行的受管的代碼將在公共語言運行庫所運行的任何平臺上運行,這是由該平臺的HAL(硬件抽象層)(例如基于ARM7芯片的平臺的HAL)實現(xiàn)的。因為固件的主體是用受管代碼編寫的,所以它也不依賴于其運行的硬件的類型。通過控制設(shè)備固件的主體,并將HAL和CLR包括到該體系結(jié)構(gòu)中,設(shè)備制造商可重復(fù)使用現(xiàn)有軟件,而無需進行任何改變,這對于提供用作輔助顯示器的各種類型的設(shè)備之間的高質(zhì)量的、一致的體驗而言是很重要的。
通過將該體系結(jié)構(gòu)分層,設(shè)備制造商只需擴展該體系結(jié)構(gòu)中適當(dāng)?shù)囊粚?或數(shù)層)中的代碼。例如,如果改變是新的CPU,則HAL需要被加以適應(yīng)。但是,如果改變是增加一件硬件而不改變HAL為之存在的CPU,則可能只需要適當(dāng)?shù)膶υ撚布尿?qū)動程序和在該設(shè)備上運行并控制該硬件的其它相應(yīng)的軟件。某些諸如因為性能原因等(例如,涉及高速媒體緩沖)不能用受管代碼編寫的應(yīng)用程序可以用諸如C或C++等本機代碼編寫,并且實質(zhì)上擴展了CLR。
對向輔助顯示平臺添加附加能力感興趣的設(shè)備制造商(硬件制造商)添加硬件,從而擴展現(xiàn)有設(shè)備固件以及所需的任何其它代碼。對現(xiàn)有(例如,由另一家供應(yīng)商所提供)輔助顯示固件的影響是微不足道的。
此外,該平臺可按需擴展,以從在主計算機系統(tǒng)上提供的客戶輔助設(shè)備API集合的角度為改變的硬件進行調(diào)整。為此目的,提供使用客戶API的簡單且可擴展的機制,用于在設(shè)備制造商所提供的設(shè)備軟件和主計算機系統(tǒng)之間所進行的通信。這賦予設(shè)備制造商提供需要使用該平臺的特別硬件的特定特征的端對端實現(xiàn)的能力。API可擴展性允許設(shè)備制造商和獨立軟件供應(yīng)商開發(fā)主計算機系統(tǒng)上的能與該設(shè)備上的自定義硬件交互的客戶應(yīng)用程序而不要求專門的API。
更特別地,可擴展性模型要求在主計算機系統(tǒng)上運行的客戶應(yīng)用程序能夠向該設(shè)備發(fā)送數(shù)據(jù)以前指定“端點”。通過讓設(shè)備制造商提供專門的固件來通告該設(shè)備上的端點,主計算機系統(tǒng)上的軟件可標(biāo)識具有特殊硬件能力的設(shè)備,并直接向該端點打開通信信道??蛻鬉PI被設(shè)計成使客戶應(yīng)用程序和該設(shè)備之間所傳輸數(shù)據(jù)的類型是無關(guān)的。從而該端對端平臺減少了設(shè)備制造商一方提供硬件可擴展性所花費的工作量。
當(dāng)結(jié)合附圖考慮以下詳細(xì)描述時,其它優(yōu)點將會變得顯而易見,附圖中


圖1以常規(guī)個人計算機系統(tǒng)的形式表示可加入本發(fā)明的通用計算設(shè)備框圖;圖2A-2E是一般地表示在各種設(shè)備上放置輔助顯示器的為之的示例性示意圖;圖3是一般地表示根據(jù)本發(fā)明的一個方面可使主計算機系統(tǒng)上的應(yīng)用程序與任意輔助顯示設(shè)備的固件交換數(shù)據(jù)的示例性實施例的框圖;圖4是一般地表示根據(jù)本發(fā)明的一個方面構(gòu)造的示例性分層體系結(jié)構(gòu)的框圖;以及圖5是根據(jù)本發(fā)明的一個方面的硬件顯示器的示例性表示,其顯示屏示出設(shè)備制造商可如何自定義屏幕。
具體實施例方式
示例性操作環(huán)境圖1表示可加入本發(fā)明的以主個人計算機系統(tǒng)形式的計算設(shè)備120的框圖。本領(lǐng)域技術(shù)人員將會認(rèn)識到,圖1中所示的個人計算機系統(tǒng)120純粹旨在示例,且本發(fā)明可用其它計算機系統(tǒng)配置來實施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程的消費者電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、無外設(shè)(Headless)服務(wù)器、等等。本發(fā)明還可在分布式計算環(huán)境中實施,其中任務(wù)是由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行的。在分布式計算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程記憶存儲設(shè)備中。
個人計算機系統(tǒng)120包括處理單元121、系統(tǒng)存儲器122、以及將包括系統(tǒng)存儲器在內(nèi)的各個系統(tǒng)組件耦合到處理單元121的系統(tǒng)總線123。系統(tǒng)總線123可以是若干類型總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任何一種的局部總線。系統(tǒng)存儲器包括只讀存儲器(ROM)124和隨機存取存儲器(RAM)125。包含諸如在啟動期間幫助在個人計算機120內(nèi)部的各元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)126(BIOS)存儲在ROM 124中。個人計算機120還可包括用于讀或?qū)懹脖P(未示出)的硬盤驅(qū)動器127、用于讀或?qū)懣梢苿哟疟P129的磁盤驅(qū)動器128、以及用于讀或?qū)懼T如CD-ROM或其它光介質(zhì)等可移動光盤的光盤驅(qū)動器130。硬盤驅(qū)動器127、磁盤驅(qū)動器128以及光盤驅(qū)動器130分別由硬盤驅(qū)動器接口132、磁盤驅(qū)動器接口133、以及光盤驅(qū)動器接口134連接到系統(tǒng)總線123。各驅(qū)動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)為個人計算機120提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。盡管本文中所描述的示例性計算機系統(tǒng)使用硬盤、可移動磁盤129以及可移動光盤131,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識到,在示例性計算機系統(tǒng)中還可使用可存儲可由計算機訪問的數(shù)據(jù)的其它類型的計算機可讀介質(zhì),諸如磁帶盒、閃存卡、數(shù)字視頻盤、貝努利盒式磁帶、隨機存取存儲器(RAM)、只讀存儲器(ROM)、等等。
若干程序模塊可存儲在硬盤、磁盤129、光盤131、ROM 124或RAM 125上,包括操作系統(tǒng)135(諸如WindowsXP等)、一個或多個應(yīng)用程序136(諸如MicrosoftOutlook)、其它程序模塊137和程序數(shù)據(jù)138。用戶可通過諸如鍵盤140和定位設(shè)備142等輸入設(shè)備將命令和信息輸入到個人計算機120中。其它輸入設(shè)備(未示出)可包括話筒、控制桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀、等等。這些及其它輸入設(shè)備常常通過耦合到系統(tǒng)總線的串行端口接口146連接到處理單元121,但也可通過諸如并行端口、游戲端口或通用串行總線(USB)等其它接口連接。監(jiān)視器147或其它類型的顯示設(shè)備也可經(jīng)由諸如視頻適配器148等接口連接到系統(tǒng)總線123。除了監(jiān)視器147以外,個人計算機通常還包括諸如揚聲器和打印機等其它外圍輸出設(shè)備(未示出)。輔助顯示/設(shè)備200是附加輸出設(shè)備,并可經(jīng)由例如輔助顯示接口155連接到系統(tǒng)總線123。
輔助顯示器還可通過串行接口或由諸如并行端口、游戲端口、紅外或無線連接、通用串行總線(USB)或其它外圍設(shè)備連接等其它接口連接到主計算設(shè)備120。圖1中的輸入設(shè)備201可提供一個或多個激勵器賴于與輔助顯示器200對接和/或?qū)ζ溥M行控制,例如可經(jīng)由輸入設(shè)備接口156(可以是串行接口)、或由諸如并行端口、游戲端口、紅外或無線連接、通用串行總線(USB)或其它外圍設(shè)備連接等其它接口連接到系統(tǒng)總線123。
個人計算機120可使用到諸如遠(yuǎn)程計算機149等一個或多個遠(yuǎn)程計算機的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計算機149可以是另一個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它普通網(wǎng)絡(luò)節(jié)點,并且通常包括以上相對于個人計算機120所描述的許多或所有元件,盡管圖1中僅示出記憶存儲設(shè)備150。圖1中所示的邏輯連接包括局域網(wǎng)(LAN)151和廣域網(wǎng)(WAN)152。此類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍的計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,個人計算機120通過網(wǎng)絡(luò)接口或適配器153連接到局域網(wǎng)151。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,個人計算機120通常包括調(diào)制解調(diào)器154或用于通過諸如因特網(wǎng)等廣域網(wǎng)152建立通信的其它裝置??梢允莾?nèi)置或者外置的調(diào)制解調(diào)器154經(jīng)由串行端口接口146連接到系統(tǒng)總線123。在聯(lián)網(wǎng)環(huán)境中,相對于個人計算機120所描述的程序模塊或其部分可存儲在遠(yuǎn)程記憶存儲設(shè)備中??梢岳斫猓瑘D示的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其它裝置。
應(yīng)當(dāng)注意,根據(jù)本發(fā)明,該計算機系統(tǒng)無需為使輔助設(shè)備工作而始終保持運行狀態(tài)。實際上,當(dāng)計算機電源切斷時,輔助設(shè)備仍可在默認(rèn)范圍或用戶配置的范圍工作,諸如當(dāng)計算機系統(tǒng)處于睡眠狀態(tài)或冬眠模式中時,和/或當(dāng)用戶尚未登錄,或者經(jīng)由安全機制封鎖系統(tǒng)時。
輔助顯示/設(shè)備200可作為主顯示器的補充,還可在主顯示器關(guān)閉或者不在工作狀態(tài)(例如,斷開)時用作代用顯示器來為用戶提供某些信息。例如,諸如如何對主顯示器加電等信息可能是有幫助的,同樣連接到移動計算機、當(dāng)主顯示器關(guān)閉和/或并非輕易可見(例如,膝上計算機的頂蓋合上)時用戶可以看到的輔助顯示設(shè)備上的會議房間號和/或方向也是有幫助的。輔助設(shè)備可播放音頻和/或視頻,顯示圖像,顯示日歷信息,顯示電子郵件,等等。
為在這些斷電模式中啟用和控制通信,可存在固件,它存儲在非易失性存儲器中,當(dāng)被次級處理器加載和操作時,它啟用輔助顯示器以及其它要使用的輔助組件,只要還有一些電源可用。注意,如本文中所使用,術(shù)語“固件”和“設(shè)備硬件”本質(zhì)上是等價的,并且一般可被視為表示輔助存儲器、其中的代碼和/或其上運行該代碼的輔助處理器。
圖2A-2E分別示出計算設(shè)備上或與之相關(guān)聯(lián)的用于放置輔助顯示屏200a-200e的示例性位置。如圖2A和2B所示,一個輔助顯示屏200a可被放置在獨立(陸線或移動)電話202的前表面、后表面、或其它表面上,(如果經(jīng)由諸如藍牙技術(shù)等連接則無需被物理地耦合)和/或另一個輔助顯示屏200b放置在移動計算機204或圖形輸入板計算設(shè)備(未示出)的側(cè)邊或頂蓋上。輔助顯示屏200c的另一個位置(圖2C)可以是在安裝在計算機或連接到計算機的外圍設(shè)備上(諸如監(jiān)視器206上或鍵盤上(未示出))的電話機上。圖2D和2E分別示出輔助顯示屏200d和200e在連接到計算機的獨立控制臺或其它外殼210(諸如主板的外殼等)的前面板上的其它放置方案。本領(lǐng)域技術(shù)人員將會認(rèn)識到,輔助顯示屏可放在任何計算設(shè)備或其它具有顯示能力的任何表面上,諸如放在帶有到計算機的無線或其它連接的手表上,放在遠(yuǎn)程控制設(shè)備上,放在遠(yuǎn)程壁掛式單元上,等等。實際上,輔助顯示器無需物理地靠近主計算機系統(tǒng),因為連接可以是通過LAN或WAN,甚至是通過因特網(wǎng)。
如從圖2A-2E明確的,輔助顯示器可以是任何數(shù)量的已知類型的顯示器的形式,諸如一個或多個發(fā)光二極管(LED)、2線字母數(shù)字顯示器、單色顯示器、彩色顯示器等。本領(lǐng)域技術(shù)人員將會認(rèn)識到,本發(fā)明還可使用其它計算或通信設(shè)備的顯示器,作為輔助顯示器200。這些其它計算或通信設(shè)備包括通用計算機、蜂窩電話、以及諸如尋呼機或個人數(shù)字助理(PDA)等手持式設(shè)備。此外,本發(fā)明可將計算設(shè)備120的屏幕顯示的一個區(qū)域內(nèi)實現(xiàn)的虛擬輔助顯示(例如,屏幕保護程序或圖形用戶界面的組件)作為輔助顯示器200使用,包括在用戶登錄以前。輔助顯示器200可包括上述任何形式的組合,還可物理地或邏輯地與諸如一個或多個LED等指示器結(jié)合,和/或與虛擬輔助顯示結(jié)合使用。
即使沒有屏幕,或當(dāng)其屏幕被斷電時,輔助設(shè)備仍可提供功能。例如,輔助設(shè)備可播放音頻,收集數(shù)據(jù)(例如,用于在稍后下載回到主計算機系統(tǒng)),執(zhí)行計算,等等。而且,顯示器可由一個或多個LED等而不是完整屏幕組成。因此,盡管有輔助顯示屏可能產(chǎn)生許多好處和優(yōu)點,因此輔助設(shè)備在本文中可被稱為輔助顯示器,但是顯示器不是必需的。一般而言,如本文中所稱的輔助顯示器本質(zhì)上可由可被感知的任何事物組成,包括任何可視化、可聽、和/或可觸知的表示??捎米鬏o助顯示設(shè)備的各類設(shè)備的例子包括單獨的計算機系統(tǒng)、膝上計算機頂蓋上的顯示器、移動電話、袖珍型個人計算機、數(shù)字的基于圖像的相框、廚房顯示器、電視、媒體播放器、包括鬧鐘的鐘、手表、等等。其它類型的設(shè)備包括嵌入在消費者電子設(shè)備(諸如冰箱、家庭影院接收器、DVD播放器、等等),壁式顯示器,汽車、運輸或其它車輛單位(例如,將汽車/火車/飛機里已有的顯示器作為輔助顯示器使用)、主計算機系統(tǒng)的鍵盤或其它輸入設(shè)備、PDA(包括非蜂窩電話PDA)等的主顯示器內(nèi)的、或使用其主顯示器的輔助設(shè)備。
輔助顯示器的可擴展體系結(jié)構(gòu)轉(zhuǎn)到圖3,圖示出經(jīng)由輔助性顯示API集合304將輔助性設(shè)備300和/或301向包括應(yīng)用程序302和其它程序(例如,操作系統(tǒng)組件)的客戶機展現(xiàn)的示例性實現(xiàn)。API集合304為各種功能提供API,包括向系統(tǒng)注冊客戶應(yīng)用程序306(程序的組件或者該程序本身),向附加設(shè)備發(fā)送內(nèi)容,向附加設(shè)備發(fā)送通知,以及從附加設(shè)備接收事件。事件可包括導(dǎo)航事件、內(nèi)容請求事件、內(nèi)容改變事件、等等。
API層304被寫在便攜式設(shè)備API集合310上,后者經(jīng)由用戶模式驅(qū)動程序框架312與設(shè)備的驅(qū)動程序過程通信。便攜式設(shè)備API集合310將輔助顯示映射到一類便攜式設(shè)備,且它允許設(shè)備能力的枚舉。但是,這被封裝在用戶模式驅(qū)動程序內(nèi),并不向客戶應(yīng)用程序306展現(xiàn)。圖3所示的其它(可選的)組件包括能在輔助顯示上提供通知的通知客戶機316。例如,即使在諸如日歷程序等應(yīng)用程序不在運行中時,系統(tǒng)提供對應(yīng)于該程序的預(yù)定時間的通知;通知客戶機316能實現(xiàn)此類情形。
轉(zhuǎn)到硬件制造商的角度,一般而言,每一個輔助設(shè)備供應(yīng)商都提供對應(yīng)的輔助設(shè)備驅(qū)動程序324,盡管該設(shè)備驅(qū)動程序可由輔助性顯示平臺的供應(yīng)商供應(yīng)。某些類型的輔助設(shè)備被認(rèn)為是“增強型”設(shè)備,因為它們是用某些固件配置的,其中這些固件一般是與可經(jīng)由API集合304接收的任何信息兼容的。因此,可為此類設(shè)備提供一般的驅(qū)動程序,盡管如下所述,此驅(qū)動程序可被擴展,且/或其它驅(qū)動程序可被添加。
在任何情況下,用戶模式驅(qū)動程序框架都提供設(shè)備驅(qū)動程序接口(DDI),用于將設(shè)備驅(qū)動程序(例如,324和325)耦合到輔助顯示平臺。然后這些驅(qū)動程序?qū)?yīng)于API所接收的信息的數(shù)據(jù)轉(zhuǎn)發(fā)(和返回)給適當(dāng)?shù)挠布涌?傳輸),用于與輔助顯示設(shè)備的通信。例如,在圖3中,設(shè)備驅(qū)動程序324被示為正在將數(shù)據(jù)轉(zhuǎn)發(fā)(經(jīng)由先前所定義的協(xié)議)給遠(yuǎn)程堆棧和驅(qū)動程序327,用于與設(shè)備300的無線(例如,藍牙、Wi-Fi、AM/FM紅外等等)通信,而設(shè)備驅(qū)動程序325被示為正在將數(shù)據(jù)轉(zhuǎn)發(fā)給基于USB的硬件328,盡管包括諸如基于TCP/IP傳輸?shù)染W(wǎng)絡(luò)傳輸在內(nèi)的其它類型的傳輸也是可行的。注意,用戶模式驅(qū)動程序?qū)λ性鰪娦燥@示均有效,而無論連接的類型是什么,但是每個設(shè)備每種連接類型使用一個驅(qū)動程序可能更為直接。還要注意,如圖3中所表示,多個設(shè)備可被耦合到計算機,以在同時用作一個輔助顯示器。用戶可配置(例如,經(jīng)由控制面板或系統(tǒng)數(shù)據(jù)提供器308之類)在哪個設(shè)備上顯示哪個客戶應(yīng)用程序的數(shù)據(jù)。系統(tǒng)數(shù)據(jù)提供器308還向輔助顯示器供應(yīng)諸如時間數(shù)據(jù)、無線信號強度數(shù)據(jù)和/或電池電平數(shù)據(jù)等系統(tǒng)信息。
又如圖3所示,“增強型”顯示器301是運行本文中稱為輔助顯示平臺的特定固件堆棧的顯示器。例如,在本發(fā)明的一個實現(xiàn)中,這一固件堆棧包括TinyCLR組件,并支持TinyCLR對象串行化。
在圖3所示的示例性實現(xiàn)中,為導(dǎo)航和顯示被高速緩存的內(nèi)容,設(shè)備應(yīng)用程序369和外殼程序370在TinyCLR框架374和實時運行組件376上運行,后者解釋、導(dǎo)航、并顯示數(shù)據(jù)。圖示TinyCLR運行時組件376至少在一個驅(qū)動程序377和TinyHAL之上,如以下參考圖4所述。
一般而言,外殼程序370提供主頁、非客戶區(qū)域、菜單、以及輔助顯示設(shè)備的一般外觀和感覺。所提供的數(shù)據(jù)可以是或被修改為屏幕的有向圖的形式,其中每一個屏幕都是以TinyCLR形式對象為根的TinyCLR視圖對象的可視化樹。外殼層接收來自固件較低層的按鈕事件,解釋這些事件,并適當(dāng)?shù)貒@數(shù)據(jù)進行導(dǎo)航。外殼程序370還經(jīng)由如上所述的輔助顯示平臺接受來自主計算機系統(tǒng)的通知請求,并且當(dāng)它從高速緩存管理器372得知需要該內(nèi)容(例如,內(nèi)容丟失的情況)時,向主計算機系統(tǒng)發(fā)布請求以提供新的內(nèi)容。外殼程序370還顯示定時的通知,這可在主計算機系統(tǒng)未被連接時發(fā)生。注意,呈現(xiàn)引擎370也可以是可擴展的,從而應(yīng)用程序可提供能夠呈現(xiàn)該應(yīng)用程序的數(shù)據(jù)的自定義代碼。
離線高速緩存管理器372包括寫在TinyCLR 376之上的匯編程序,它管理存儲在該設(shè)備上的數(shù)據(jù)項的高速緩存。此組件還執(zhí)行一些存儲器管理,處理系統(tǒng)應(yīng)用程序可能提供多于設(shè)備所能存儲的數(shù)據(jù)這一事實。如果固件修改數(shù)據(jù)高速緩存,則此組件跟蹤該信息,并向系統(tǒng)上的應(yīng)用程序宣告事件,以在主計算機系統(tǒng)在線時立即讓它知道,或如果不在線時,則讓它在機器一回到在線狀態(tài)時即得知。高速緩存管理程序可經(jīng)由接口向驅(qū)動程序360展現(xiàn)。
根據(jù)本發(fā)明的一個方面,各個層(如圖4中一般示出)是分離的,且每一層都可根據(jù)需要由設(shè)備制造商單獨擴展以支持?jǐn)U展的硬件。注意,圖4的大部分一般地對應(yīng)于圖3的固件堆棧。通過將該體系結(jié)構(gòu)分層,設(shè)備制造商僅需按照如擴展的硬件所需要的那樣來擴展該體系結(jié)構(gòu)中適當(dāng)?shù)囊粚踊驍?shù)層中的代碼。
特別地,除了顯示面板和控制器490、輔助處理器491和存儲器492以外,設(shè)備制造商還添加了擴展的硬件493來自定義設(shè)備。自定義的例子包括將以下一個或多個集成到設(shè)備中,諸如SPOT無線電、藍牙無線電、GPS接收器、溫度傳感器、音頻解碼器、音頻編碼器、附加存儲、諸如指紋讀出器等生物測定傳感器、加速計、RFID標(biāo)簽/讀出器、在場檢測、到存儲陣列/系統(tǒng)管理的接口(例如,對諸如SMbus等可提供系統(tǒng)信息的系統(tǒng)總線的訪問,或?qū)Υ笮痛鎯﹃嚵械脑L問)、電池(例如,設(shè)備自帶的電源,而不是與主計算機系統(tǒng)共享的電源)、紅外收發(fā)器、RF發(fā)送器(例如,RF遙控器)、話筒、和/或諸如指示器等硬件。如應(yīng)理解,制造商能以僅要求對輔助設(shè)備固件堆棧進行顯著減少的(例如,極少甚至沒有)改變量的方式自定義硬件組件。
在硬件組件之上,HAL(例如,硬件抽象層)允許以獨立于硬件的方式編寫高層代碼。如本文中所使用,當(dāng)指代碼堆棧時,術(shù)語“高層”和“低層”、“之上”和“之下”等類似于在其它計算情形中所使用的那些術(shù)語,其中一般而言,軟件組件相對于較高的組件越是低,該較低的組件就越靠近硬件。如圖4中所示,基本HAL可由HAL擴展代碼480根據(jù)需要擴展,以支持自定義的硬件。注意,擴展HAL不總是必要的,因為,例如可能有未使用的通用I/O等可用于通過現(xiàn)有HAL479來操作設(shè)備?;蛘?,可經(jīng)由擴展的HAL來管理端口。
在HAL之上是驅(qū)動程序4771-4773,其中包括為擴展的硬件添加的自定義驅(qū)動程序4773。注意,盡管圖4僅示出一個驅(qū)動程序4773和一個擴展的硬件塊493,但可添加更多的驅(qū)動程序和/或硬件。此外,應(yīng)當(dāng)注意,修改現(xiàn)有的驅(qū)動程序代碼而不是添加另一個驅(qū)動程序,來執(zhí)行所需的被添加的功能是等效的。如一般所知,因為HAL 479抽象出硬件差異,所以設(shè)備制造商可重復(fù)使用在許多類型的物理設(shè)備之間運行的自定義驅(qū)動程序4773(或經(jīng)修改的驅(qū)動程序),而無需為每個不同的設(shè)備類自定義驅(qū)動程序4773。
在驅(qū)動程序之上,其它設(shè)備軟件包括諸如TinyCLR 376等公共語言運行庫(CLR),它由.NET公共語言實時運行環(huán)境的相對較小范圍的實現(xiàn)組成。在公共語言運行庫上運行的受管代碼將在公共語言運行庫運行的任何平臺上運行,這是由該平臺的HAL(例如基于ARM7芯片的平臺的HAL)實現(xiàn)的。因為固件的主體是用受管代碼編寫的,所以它們也不依賴于它運行的硬件的類型。通過控制設(shè)備固件的主體,并將HAL和CLR包括到該體系結(jié)構(gòu)中,設(shè)備制造商可重復(fù)使用現(xiàn)有軟件,而無需進行任何改變,這對于用作輔助顯示器的各種類型的設(shè)備之間提供高質(zhì)量的、一致的體驗而言是很重要的。
應(yīng)用程序402可以是與擴展的硬件493協(xié)同工作的自定義應(yīng)用程序。但是,也能夠通過用戶體驗來擴展如圖4中所示的已經(jīng)編寫好的應(yīng)用程序,從而來擴展用戶體驗。作為示例,考慮擴展的硬件包括接收到通知即發(fā)亮的簡單指示器。接收通知的程序402可被擴展成在接收到通知時點亮指示器,并在通知被解除時將其熄滅。
某些諸如因為性能原因等不能用受管代碼編寫的應(yīng)用程序可用諸如C或C++等本機代碼編寫,并且實際上擴展了CLR,如圖4中CLR擴展476所示。盡管CLR可提供諸如讀、寫、打開、關(guān)閉、I/O控制等API供框架擴展474使用,但這對某些應(yīng)用程序而言可能還不足夠。例如,如果從應(yīng)用程序?qū)泳彌_通過CLR復(fù)制到低層數(shù)字信號處理緩沖中,則可能不能足夠快地實現(xiàn)高速媒體緩沖。為避免此類復(fù)制開銷,CLR擴展476中的本機代碼可填充單個緩沖集合。
通過使用主計算機系統(tǒng)上的API并下載代碼到設(shè)備,還可擴展輔助外殼程序370。通常這樣做的原因是向自定義的功能添加諸如圖標(biāo)、概述文本、上下文敏感的文本、和菜單項等引用。例如,還被配置成音頻播放器的輔助顯示設(shè)備還可允許記錄其它數(shù)據(jù),進行游戲,以及維護約會日歷??山?jīng)由外殼擴展470來添加圖標(biāo)和菜單項,以允許能簡便地運行這些不同的應(yīng)用程序。還可經(jīng)由對應(yīng)的擴展474來擴展框架庫374。
注意,如圖5所示,在輔助顯示屏有足夠控件的一個實施例中,輔助顯示設(shè)備的屏幕506的一個區(qū)域504被保留,以供設(shè)備制造商顯示諸如公司徽標(biāo)等某些信息。該區(qū)域可被用于顯示對應(yīng)于擴展的硬件的信息,例如,GPS接收器可在該區(qū)域中顯示某些GPS數(shù)據(jù)或圖標(biāo),當(dāng)選擇該圖標(biāo)時可迅速將GPS數(shù)據(jù)調(diào)到主屏幕。
回到圖3,此外,還可在主計算機系統(tǒng)的客戶輔助顯示API集合304和/或310上擴展該平臺。為此目的,為了在設(shè)備制造商提供的設(shè)備軟件和主計算機系統(tǒng)之間進行通信提供一種使用客戶API的簡單且可擴展的機制。這賦予設(shè)備制造商提供需要使用該平臺的特別硬件的特定特征的端對端實現(xiàn)的能力。API可擴展性允許設(shè)備制造商和獨立軟件供應(yīng)商開發(fā)主計算機系統(tǒng)上的能與該設(shè)備上的自定義硬件交互的客戶應(yīng)用程序306和其它程序302而不要求專門的API。
更特別地,可擴展模型要求在客戶應(yīng)用程序302能向設(shè)備發(fā)送數(shù)據(jù)以前指定“端點”。通過讓設(shè)備制造商擴展輔助設(shè)備固件中的代碼來通告該設(shè)備上的端點,主計算機系統(tǒng)上的軟件可標(biāo)識具有特殊硬件能力的設(shè)備,并直接向該端點打開通信信道??蛻鬉PI被設(shè)計成使客戶應(yīng)用程序和該設(shè)備之間所傳輸數(shù)據(jù)的類型是無關(guān)的,例如,可傳遞文本、二進制數(shù)據(jù)、媒體、對象、等等。從而該端對端平臺提供了硬件的可擴展性而只需要設(shè)備制造商一方所花費較少的工作量。
對于增強型設(shè)備,本質(zhì)上唯一的要求是建立端點之間的數(shù)據(jù)管道,并傳入串行化的對象等。實現(xiàn)此要求的一個方法是使用稱為.NET遠(yuǎn)程操作的技術(shù),它允許主計算機系統(tǒng)上的代碼對輔助設(shè)備上的類進行方法調(diào)用。因此,例如,主計算機系統(tǒng)上的應(yīng)用程序可調(diào)用以GPS能力配置的輔助設(shè)備以在主計算機系統(tǒng)上獲得GPS信息。
如上所述,內(nèi)容可被下載到增強型設(shè)備上的高速緩存中,然后設(shè)備本身將根據(jù)需要處理該內(nèi)容。注意,這允許斷開的使用,并使系統(tǒng)上運行的多個應(yīng)用程序提供內(nèi)容,一般情況下同一時間有一個應(yīng)用程序運行以訪問輔助顯示器上被高速緩存的內(nèi)容。
如可從上文中看到,本發(fā)明提供具有可根據(jù)需要擴展以支持附加硬件的輔助顯示平臺。同時,該輔助顯示平臺令硬件設(shè)備的制造商能夠使那些設(shè)備被作為特征完整的輔助顯示器使用,只需少量或甚至無需改變固件來擴展,從而制造商能夠輕易添加所需的功能,以及創(chuàng)新并將其設(shè)備與其它制造商的設(shè)備區(qū)別開來。從而本發(fā)明提供當(dāng)代計算中所需的許多好處和優(yōu)點。
盡管本發(fā)明容許各種修改和替換結(jié)構(gòu),但是在附圖中示出了某些示例性實施例,并且以上已經(jīng)對它們進行了詳細(xì)的描述。但是,應(yīng)當(dāng)理解,本文無意將本發(fā)明限制于所揭示的一種或多種具體形式,相反,本發(fā)明將覆蓋所有落入本發(fā)明的精神和范圍的修改、替換構(gòu)造和等效技術(shù)方案。
權(quán)利要求
1.一種能夠耦合到主計算機系統(tǒng)的輔助設(shè)備,一種系統(tǒng)包括所述主計算機系統(tǒng)上的輔助平臺,所述輔助平臺包括硬件抽象層,它從高層軟件中抽象硬件差異并可根據(jù)需要擴展以支持?jǐn)U展的硬件;驅(qū)動程序?qū)?,它可通過包括所述擴展的硬件的驅(qū)動程序代碼來擴展;運行庫層,它可根據(jù)需要擴展以支持?jǐn)U展的硬件;以及輔助設(shè)備程序代碼,它顯示對應(yīng)于始發(fā)于所述主計算機系統(tǒng)或在所述擴展的硬件中的數(shù)據(jù)的信息。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述輔助設(shè)備包括移動通信設(shè)備。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述輔助設(shè)備包括來自一設(shè)備類型集合之中的一個設(shè)備,所述設(shè)備類型包含單獨的計算機;移動通信設(shè)備;具有按鈕激勵器的次級顯示屏;手表;壁式顯示器;顯示屏;數(shù)字相框;鬧鐘;電視機;收音機;手表;媒體播放器;嵌入到消費者電子設(shè)備的主顯示器內(nèi)或使用所述主顯示器的設(shè)備;汽車、運輸或其它車輛單位;主計算機系統(tǒng)的鍵盤或其它輸入設(shè)備;尋呼機;以及個人數(shù)字助理。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括所述輔助設(shè)備上對應(yīng)于所述擴展的硬件的自定義軟件代碼。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,還包括所述主計算機系統(tǒng)上的應(yīng)用程序接口,所述應(yīng)用程序接口可被擴展以在所述主計算機系統(tǒng)上運行的軟件代碼和所述輔助設(shè)備上的自定義軟件代碼之間傳輸數(shù)據(jù)。
6.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述運行庫包括公共語言運行庫,且其中,所述自定義軟件代碼包括受管代碼。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括可擴展以支持所述擴展的硬件的輔助外殼程序。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述輔助設(shè)備包括顯示器,用于顯示包括對應(yīng)于所述主計算機系統(tǒng)上始發(fā)的數(shù)據(jù)的輔助信息的信息,且其中,所述顯示器包括為顯示定制輸出所保留的區(qū)域。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述擴展的硬件對應(yīng)于一組件集合中的至少一個硬件組件,所述集合包括SPOT無線電;藍牙無線電;GPS接收器;溫度傳感器;音頻解碼器;音頻編碼器;附加存儲;生物測定傳感器;加速計;RFID標(biāo)簽/讀出器;在場檢測;到存儲陣列/系統(tǒng)管理的接口;電池;RF發(fā)射器;話筒;無線電接收器;移動電話組件;無線通信組件;無線聯(lián)網(wǎng)組件;以及指示器。
10.計算設(shè)備中的一種方法,包括在所述計算設(shè)備中安裝包括輔助設(shè)備固件堆棧的固件,所述固件堆棧包括在所述計算設(shè)備的顯示器上顯示對應(yīng)于所述主計算機系統(tǒng)上始發(fā)的數(shù)據(jù)的輔助信息的代碼;向所述計算設(shè)備添加擴展的硬件;以及擴展所述固件堆棧以支持所述擴展的硬件。
11.如權(quán)利要求10所述的方法,其特征在于,所述固件堆棧包括硬件抽象層,且其中,擴展所述固件包括擴展所述硬件抽象層。
12.如權(quán)利要求10所述的方法,其特征在于,所述固件堆棧包括驅(qū)動程序?qū)?,且其中,擴展所述固件包括擴展驅(qū)動程序代碼。
13.如權(quán)利要求10所述的方法,其特征在于,所述固件堆棧包括運行庫,且其中,擴展所述固件包括擴展所述運行庫。
14.如權(quán)利要求10所述的方法,其特征在于,所述固件堆棧包括外殼程序,且其中,擴展所述固件包括擴展所述外殼程序。
15.如權(quán)利要求10所述的方法,其特征在于,所述固件堆棧包括框架庫,且其中,擴展所述固件包括擴展所述框架庫。
16.如權(quán)利要求10所述的方法,其特征在于,向所述計算設(shè)備添加擴展的硬件包括配置所述計算機設(shè)備用于移動通信。
17.如權(quán)利要求10所述的方法,其特征在于,添加擴展的硬件包括添加一組件集合中的至少一個硬件組件,所述集合包括SPOT無線電;藍牙無線電;GPS接收器;溫度傳感器;音頻解碼器;音頻編碼器;附加存儲;生物測定傳感器;加速計;RFID標(biāo)簽/讀出器;在場檢測;到存儲陣列/系統(tǒng)管理的接口;電池;RF發(fā)射器;話筒;無線電接收器;移動電話組件;無線通信組件;無線聯(lián)網(wǎng)組件;以及指示器。
18.如權(quán)利要求10所述的方法,其特征在于,還包括在所述主計算機系統(tǒng)上運行的程序和在對應(yīng)于所述擴展的硬件的所述輔助設(shè)備上運行的自定義軟件代碼之間傳遞數(shù)據(jù)。
19.如權(quán)利要求10所述的方法,其特征在于,還包括在所述顯示器上為顯示定制輸出所保留的區(qū)域上顯示自定義信息。
20.一個或多個具有計算機可執(zhí)行指令的計算機可讀介質(zhì),當(dāng)執(zhí)行所述計算機可執(zhí)行指令時,實現(xiàn)如權(quán)利要求10所述的方法。
21.至少一個具有計算機可執(zhí)行指令的計算機可讀介質(zhì),當(dāng)執(zhí)行所述計算機可執(zhí)行指令時,實現(xiàn)以下步驟在所述計算設(shè)備中安裝包括輔助設(shè)備固件堆棧的固件,所述固件堆棧包括在所述計算設(shè)備的顯示器上顯示對應(yīng)于所述主計算機系統(tǒng)上始發(fā)的數(shù)據(jù)的輔助信息的代碼;以及建立通過所述固件堆棧中的至少一部分到自定義軟件的通信路徑,所述自定義軟件擴展所述固件堆棧以支持添加到所述計算設(shè)備的擴展的硬件。
22.如權(quán)利要求21所述的計算機可讀介質(zhì),其特征在于,擴展所述固件堆棧的所述自定義軟件包括添加到驅(qū)動程序?qū)拥尿?qū)動程序代碼。
全文摘要
所描述的是設(shè)備制造商可用來擴展具有輔助顯示平臺的輔助計算設(shè)備的一種系統(tǒng)和方法,該輔助顯示平臺顯示對應(yīng)于主計算機系統(tǒng)上始發(fā)的數(shù)據(jù)的信息。諸如無線電接收器和/或音頻解碼器等擴展的硬件被添加到該設(shè)備。該輔助顯示平臺是分層的并可在每一層可以進行擴展,并且包括在需要情況下可擴展以支持?jǐn)U展的硬件的可擴展的硬件抽象層,以及可通過添加擴展的硬件的驅(qū)動程序代碼來擴展的驅(qū)動程序?qū)?。還可根據(jù)需要擴展運行庫層以支持?jǐn)U展的硬件,諸如庫、輔助外殼程序和其它受管代碼等。還可擴展客戶API以允許主計算機系統(tǒng)上的應(yīng)用程序經(jīng)由設(shè)備運行庫層與擴展的硬件通信。
文檔編號G06F9/44GK1782996SQ200510127138
公開日2006年6月7日 申請日期2005年11月22日 優(yōu)先權(quán)日2004年11月23日
發(fā)明者A·J·弗爾勒, D·J·珀利夫, M·P·羅頓, M·S·伯恩斯泰因, R·H·懷恩 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1