專利名稱:在無線射頻介質(zhì)上提供遠(yuǎn)程網(wǎng)絡(luò)驅(qū)動(dòng)器接口規(guī)范服務(wù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及無線接口技術(shù),更確切地說,涉及計(jì)算機(jī)軟件應(yīng)用程序和根據(jù)藍(lán)牙規(guī)范運(yùn)行的無線設(shè)備之間的接口。
背景技術(shù):
為了在計(jì)算機(jī)系統(tǒng)上的軟件和硬件組件之間提供最大兼容性,計(jì)算機(jī)的操作系統(tǒng)定義特定接口,軟件組件的程序設(shè)計(jì)員可以訪問并使用這些接口,而由硬件組件的設(shè)計(jì)者提供并支持這些接口。因此,通過使用定義的接口,能夠確保軟件組件與支持該接口的所有硬件組件的兼容性。同樣,使提供特定接口的硬件組件確信軟件組件能夠通過該接口定位并訪問硬件組件提供的功能性。
通常,經(jīng)由物理電纜或電線,互連計(jì)算機(jī)和其他電子設(shè)備。這些通信通道允許在此類設(shè)備之間交換數(shù)據(jù)或控制信息。然而,人們越來越認(rèn)識(shí)到消除互連設(shè)備使用的電纜和電線所產(chǎn)生的益處。此類益處包括易于配置和重新配置,其原因在于無需物理添加、刪除或替換物理介質(zhì)。此外,設(shè)備互連介質(zhì)慣常使用的空間可用作他用。而且通過使用無線連接能夠增加設(shè)備移動(dòng)工作的靈活性。
一種在設(shè)備之間提供無線連接的方法是,利用電磁波頻譜的紅外線范圍中的光波連接設(shè)備。IrDA(紅外數(shù)據(jù)協(xié)會(huì))協(xié)議定義此類連接機(jī)制。不幸的是,此類機(jī)制必須以瞄準(zhǔn)線的方式運(yùn)行。亦即,發(fā)射機(jī)和接收機(jī)之間的不透明障礙物妨礙正常操作。另外,當(dāng)把IR發(fā)射機(jī)安裝到通信設(shè)備中時(shí),IR發(fā)射機(jī)通常不是全向的,因此為了進(jìn)行正確操作,必須把發(fā)射機(jī)指向接收機(jī)的方向,例如30度公稱偏差以內(nèi)。最后,IR發(fā)射機(jī)通常為低功耗設(shè)備,因此IR鏈路的范圍通常約為一米。
射頻鏈路能夠解決紅外鏈路固有的許多問題,然而,需要射頻連接模式,從而通過提供適當(dāng)接口的連接機(jī)制,各種應(yīng)用程序能夠輕易訪問無線電鏈路。通過射頻鏈路定義無線設(shè)備之間的通信的一種協(xié)議是藍(lán)牙規(guī)范。藍(lán)牙設(shè)備無需以瞄準(zhǔn)線方式運(yùn)行,并且其范圍遠(yuǎn)遠(yuǎn)大于IR鏈路的范圍。然而,藍(lán)牙規(guī)范的難點(diǎn)在于,只有為數(shù)很少的計(jì)算機(jī)軟件程序能夠與藍(lán)牙兼容設(shè)備通信。藍(lán)牙規(guī)范的另一個(gè)難點(diǎn)在于,能夠在符合藍(lán)牙規(guī)范的RF鏈路上運(yùn)行的高層網(wǎng)絡(luò)協(xié)議非常少。
發(fā)明內(nèi)容
因此,本發(fā)明提供用于在符合藍(lán)牙規(guī)范的RF鏈路上提供網(wǎng)絡(luò)報(bào)文協(xié)議的方法和計(jì)算機(jī)程序產(chǎn)品,其中網(wǎng)絡(luò)報(bào)文協(xié)議是總線獨(dú)立的,并且最初是為總線連接的網(wǎng)絡(luò)設(shè)備設(shè)計(jì)的。于是,能夠在藍(lán)牙無線網(wǎng)絡(luò)上使用計(jì)劃在硬連接(或總線連接)網(wǎng)絡(luò)上運(yùn)行的許多計(jì)算機(jī)軟件產(chǎn)品。
通過參照附圖閱讀所示實(shí)施方式的詳細(xì)說明,將更加了解本發(fā)明的其他特征和優(yōu)點(diǎn)。
雖然附屬權(quán)利要求書具體闡述本發(fā)明的特征,但是通過連同附圖閱讀以下詳細(xì)說明書,將更好地理解本發(fā)明以及其目的和優(yōu)點(diǎn),其中附圖為圖1是一個(gè)框圖,一般表示實(shí)施本發(fā)明的典型計(jì)算機(jī)系統(tǒng);
圖2是一個(gè)框圖,一般表示七層網(wǎng)絡(luò)模型;以及圖3是一個(gè)框圖,一般表示本發(fā)明能夠在其上運(yùn)行的層模型。
具體實(shí)施例方式
轉(zhuǎn)到附圖,其中相同參考號數(shù)表示相同部件,以在適當(dāng)計(jì)算環(huán)境中實(shí)現(xiàn)本發(fā)明的方式,說明本發(fā)明。在諸如個(gè)人計(jì)算機(jī)執(zhí)行的程序模塊之類的計(jì)算機(jī)可執(zhí)行指令的上下文中說明本發(fā)明,但并不做此規(guī)定。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。此外,熟練技術(shù)人員可以了解,可以利用其他計(jì)算機(jī)系統(tǒng)配置實(shí)現(xiàn)本發(fā)明,這些配置包括手持設(shè)備、多處理器系統(tǒng)、基于微處理器的消費(fèi)類電子產(chǎn)品或可編程的消費(fèi)類電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)和大型計(jì)算機(jī)等。也可以在利用遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式計(jì)算環(huán)境中,實(shí)現(xiàn)本發(fā)明,其中通過通信網(wǎng)絡(luò)連接遠(yuǎn)程處理設(shè)備。在分布式計(jì)算環(huán)境中,可以在本地或遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中存儲(chǔ)程序模塊。
參照圖1,用于實(shí)現(xiàn)本發(fā)明的典型系統(tǒng)包括通用計(jì)算設(shè)備,如常規(guī)個(gè)人計(jì)算機(jī)20,個(gè)人計(jì)算機(jī)20包括處理部件21、系統(tǒng)存儲(chǔ)器22和系統(tǒng)總線23,系統(tǒng)總線23將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件,連接到處理部件21。系統(tǒng)總線23可以為各種類型的總線結(jié)構(gòu),包括存儲(chǔ)總線或存儲(chǔ)控制器、外圍總線以及使用各種總線體系結(jié)構(gòu)的局域總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM)24和隨機(jī)存取存儲(chǔ)器(RAM)25。在ROM 24中存儲(chǔ)包含基本例程的基本輸入/輸出系統(tǒng)(BIOS)26,這些基本例程幫助在個(gè)人計(jì)算機(jī)20內(nèi)的部件之間傳送信息,例如在啟動(dòng)時(shí)。個(gè)人計(jì)算機(jī)20還包括用于讀寫硬盤60的硬盤驅(qū)動(dòng)器27,用于讀寫可更換磁盤29的磁盤驅(qū)動(dòng)器28,以及用于讀寫諸如CD ROM或其他光學(xué)介質(zhì)之類的可更換光盤31的光盤驅(qū)動(dòng)器30。
分別利用硬盤驅(qū)動(dòng)器接口32、磁盤驅(qū)動(dòng)器接口33和光盤驅(qū)動(dòng)器接口34,把硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28和光盤驅(qū)動(dòng)器30連接到系統(tǒng)總線23。驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為個(gè)人計(jì)算機(jī)20提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其他數(shù)據(jù)的非易失性存儲(chǔ)。盡管本文描述的典型環(huán)境采用硬盤60、可更換磁盤29和可更換光盤31,熟練技術(shù)人員可以理解,可以在典型操作環(huán)境中使用能夠存儲(chǔ)計(jì)算機(jī)可讀數(shù)據(jù)的其他類型的計(jì)算機(jī)可讀介質(zhì),如磁帶、閃存存儲(chǔ)卡、數(shù)字視盤、伯努利磁帶、隨機(jī)存取存儲(chǔ)器、只讀存儲(chǔ)器等。
可以在硬盤60、磁盤29、光盤31、ROM 24或RAM 25中存儲(chǔ)許多程序模塊,包括一個(gè)操作系統(tǒng)35,一個(gè)或幾個(gè)應(yīng)用程序36,其他程序模塊37和程序數(shù)據(jù)38。用戶通過諸如鍵盤40和定點(diǎn)設(shè)備42之類的輸入設(shè)備,把命令和信息輸入到個(gè)人計(jì)算機(jī)20中。其他輸入設(shè)備(未示出)包括麥克風(fēng)、操縱桿、游戲控制器、圓盤式衛(wèi)星電視天線或掃描儀等。通常,通過與系統(tǒng)總線相連的串行端口接口46,把輸入設(shè)備連接到處理單元21,也可以利用諸如并行端口、游戲端口或通用串行總線(USB)之類的其他接口,進(jìn)行連接。經(jīng)由諸如視頻適配器48之類的接口,把監(jiān)視器47或其他類型的顯示設(shè)備連接到系統(tǒng)總線23。除監(jiān)視器之外,個(gè)人計(jì)算機(jī)通常還包括其他外圍輸出設(shè)備,如揚(yáng)聲器和打印機(jī)(未示出)。
個(gè)人計(jì)算機(jī)20可以在網(wǎng)絡(luò)環(huán)境中運(yùn)行,其中利用邏輯連接把個(gè)人計(jì)算機(jī)連接到一臺(tái)或幾臺(tái)遠(yuǎn)程計(jì)算機(jī)或設(shè)備,如遠(yuǎn)程計(jì)算機(jī)49或RF設(shè)備64。遠(yuǎn)程計(jì)算機(jī)49可以為其他的個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點(diǎn),通常包括相對于個(gè)人計(jì)算機(jī)20描述的許多或所有設(shè)備,盡管圖1僅示出存儲(chǔ)器存儲(chǔ)設(shè)備50。射頻(RF)設(shè)備64可以為蜂窩式電話、數(shù)字照相機(jī)、其他的個(gè)人計(jì)算機(jī)或能夠通過RF頻譜進(jìn)行通信的其他設(shè)備。圖1描述的邏輯連接包括局域網(wǎng)(LAN)51,廣域網(wǎng)(WAN)52和RF連接63。上述網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中很普通。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),通過網(wǎng)絡(luò)接口或適配器53,把個(gè)人計(jì)算機(jī)20連接到局域網(wǎng)51。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)20通常包括調(diào)制解調(diào)器54或用于在WAN 52上建立通信鏈路的其他裝置。經(jīng)由串行端口接口46,把內(nèi)置或外置調(diào)制解調(diào)器54連接到系統(tǒng)總線23。當(dāng)和RF連接63一起使用時(shí),個(gè)人計(jì)算機(jī)20包括RF接口62。在網(wǎng)絡(luò)環(huán)境中,可以在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中存儲(chǔ)與個(gè)人計(jì)算機(jī)20有關(guān)的全部或部分的程序模塊??梢岳斫猓揪W(wǎng)絡(luò)連接只是示范性的,也可以使用用于在計(jì)算機(jī)之間建立通信鏈路的其他方法。
在以下說明中,將參照一臺(tái)或幾臺(tái)計(jì)算機(jī)執(zhí)行的動(dòng)作和操作的符號表示,描述本發(fā)明,除非另有說明。同樣,可以理解,有時(shí)稱為計(jì)算機(jī)執(zhí)行模塊的動(dòng)作和操作,包括表示結(jié)構(gòu)數(shù)據(jù)的電信號的計(jì)算機(jī)的處理單元進(jìn)行的處理。此類處理把數(shù)據(jù)傳送或保存到計(jì)算機(jī)的存儲(chǔ)系統(tǒng)中的某個(gè)位置,此類處理以熟練技術(shù)人員易于理解的方式,重新配置或改變計(jì)算機(jī)的操作。保存數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)為存儲(chǔ)器的物理位置,存儲(chǔ)器的物理位置具有數(shù)據(jù)格式定義的特定屬性。然而,正如熟練技術(shù)人員理解的那樣,盡管在上述上下文中描述本發(fā)明,但并不意味著此類限制,可以利用硬件實(shí)現(xiàn)下文描述的各種動(dòng)作和操作。
根據(jù)本發(fā)明并轉(zhuǎn)到圖2,該圖表示開放系統(tǒng)互連(OSI)七層模型。該模型為計(jì)算機(jī)網(wǎng)絡(luò)的工業(yè)標(biāo)準(zhǔn)抽象。應(yīng)用層100直接服務(wù)終端用戶,并支持與用戶進(jìn)行交互的軟件應(yīng)用程序。表示層102解釋從一臺(tái)計(jì)算機(jī)上的應(yīng)用層100發(fā)送到另一臺(tái)計(jì)算機(jī)上的應(yīng)用層的數(shù)據(jù)。會(huì)話層104描述正在傳送的數(shù)據(jù)的結(jié)構(gòu)。傳輸層106作為最終的糾錯(cuò)層,確保以正確順序,在沒有損失也沒有重復(fù)的情況下,正確傳送數(shù)據(jù)。網(wǎng)絡(luò)層108定義通過網(wǎng)絡(luò)的數(shù)據(jù)的尋址和路由。它控制局部子網(wǎng)的操作,并根據(jù)給定的網(wǎng)絡(luò)條件、服務(wù)優(yōu)先級和其他因素,確定該數(shù)據(jù)采用的物理通路。數(shù)據(jù)鏈路層110控制數(shù)據(jù)塊或數(shù)據(jù)包在網(wǎng)絡(luò)上的傳輸,并提供更基礎(chǔ)的糾錯(cuò)。把數(shù)據(jù)鏈路層110劃分為兩個(gè)子層邏輯鏈路控制(LLC)子層和媒體存取控制(MAC)子層。LLC子層通過保持邏輯鏈路,控制幀流,排定數(shù)據(jù)幀的先后順序,應(yīng)答數(shù)據(jù)幀以及重新傳輸未應(yīng)答的數(shù)據(jù)幀,確保數(shù)據(jù)幀的正確傳輸。MAC子層管理對網(wǎng)絡(luò)的存取,檢查幀錯(cuò)誤以及所接收幀的地址識(shí)別。包含LLC子層的協(xié)議只需最低限度的傳輸層106。最后,物理層112傳送發(fā)送到網(wǎng)絡(luò)連接114的信號。通常,利用把計(jì)算機(jī)20連接到網(wǎng)絡(luò)連接114的硬件,實(shí)現(xiàn)物理層112。
網(wǎng)絡(luò)設(shè)備接口規(guī)范(NDIS)116可以駐留在網(wǎng)絡(luò)層108和數(shù)據(jù)鏈路層110之間。NDIS 116能夠提供軟件組件和硬件組件之間的接口庫。NDIS 116通過提供網(wǎng)絡(luò)接口卡(NIC)驅(qū)動(dòng)程序需要執(zhí)行的每個(gè)外部函數(shù)的例程,定義NIC驅(qū)動(dòng)程序開發(fā)需要的全部抽象環(huán)境。因此,NDIS116能夠提供NIC驅(qū)動(dòng)程序和上層協(xié)議驅(qū)動(dòng)程序之間的通信接口,以及NIC驅(qū)動(dòng)程序和其低層NIC硬件之間的通信接口。
通常,在計(jì)算機(jī)上運(yùn)行的軟件組件中,實(shí)現(xiàn)應(yīng)用層100、表示層102、會(huì)話層104、傳輸層106和網(wǎng)絡(luò)層108。以諸如網(wǎng)絡(luò)接口卡之類的硬件組件的方式,實(shí)現(xiàn)數(shù)據(jù)鏈路層110和物理層112。在傳輸層110中實(shí)現(xiàn)的軟件驅(qū)動(dòng)程序利用NDIS 116庫,與在數(shù)據(jù)鏈路層110中實(shí)現(xiàn)的網(wǎng)絡(luò)接口卡驅(qū)動(dòng)程序進(jìn)行通信。傳輸層驅(qū)動(dòng)程序通常實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧,如因特網(wǎng)上使用的眾所周知的傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)。如果傳輸層軟件驅(qū)動(dòng)程序有需要傳送的數(shù)據(jù)包,則通過NDIS 116庫的接口,調(diào)用NIC驅(qū)動(dòng)程序,然后向下傳送需要傳輸?shù)臄?shù)據(jù)包。同樣,NIC驅(qū)動(dòng)程序利用NDIS 116的接口,把數(shù)據(jù)包傳送到NIC本身,以便在網(wǎng)絡(luò)上傳輸。NDIS 116的接口可以調(diào)用操作系統(tǒng)的特定組件,后者完成在NIC的傳輸。同時(shí),NIC驅(qū)動(dòng)程序利用NDIS 116的接口與傳輸層軟件驅(qū)動(dòng)程序通信,并且NDIS 116的接口向上傳送接收的數(shù)據(jù)包或其他信息。
物理層112的一個(gè)例子是無線射頻(RF)設(shè)備64。用于設(shè)備64和計(jì)算機(jī)20之間的無線通信的日益普及的RF協(xié)議是藍(lán)牙協(xié)議,“藍(lán)牙系統(tǒng)規(guī)范”版本1.0B(1999年12月1日)詳細(xì)描述藍(lán)牙協(xié)議,這里全文引用作為參考。參見附錄B中的“Windows無線體系結(jié)構(gòu)”介紹,附錄C中的“藍(lán)牙體系結(jié)構(gòu)概述”介紹,附錄D中的“Windows藍(lán)牙體驗(yàn)”介紹和附錄E中的“Windows藍(lán)牙協(xié)議?!苯榻B。正如藍(lán)牙規(guī)范中描述的那樣,邏輯鏈路控制和自適應(yīng)協(xié)議(L2CAP)允許高層協(xié)議在與藍(lán)牙兼容的RF鏈路上運(yùn)行。在“藍(lán)牙系統(tǒng)規(guī)范”版本1.0B,附錄A的D部分“邏輯鏈路控制和自適應(yīng)協(xié)議規(guī)范”(1999年12月1日)中詳細(xì)描述L2CAP層,這里全文引用作為參考。一種高層消息協(xié)議是微軟公司的遠(yuǎn)程網(wǎng)絡(luò)設(shè)備接口規(guī)范(遠(yuǎn)程N(yùn)DIS),序號為09/302,735,申請人為Hyder等,題目為“用于抽象網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器的方法和系統(tǒng)”,申請日期為1999年4月30日并且轉(zhuǎn)讓給本發(fā)明之受讓人的共同未決申請,詳細(xì)描述以上消息協(xié)議,這里全文引用作為參考。正如上述共同未決申請中描述的那樣,遠(yuǎn)程N(yùn)DIS在不改變特定總線消息傳輸機(jī)制的情況下,提供擴(kuò)展性,從而物理層112能夠?qū)崿F(xiàn)更多種類的傳輸機(jī)制。遠(yuǎn)程N(yùn)DIS還提供用于網(wǎng)絡(luò)和外部總線設(shè)備模型的驅(qū)動(dòng)器體系結(jié)構(gòu)。
在不使用本發(fā)明的情況下,硬件廠商需要編寫兩個(gè)驅(qū)動(dòng)程序,即,NDIS miniport驅(qū)動(dòng)程序以及總線或網(wǎng)絡(luò)接口。然而,以單個(gè)二進(jìn)制代碼的方式分發(fā)兩個(gè)驅(qū)動(dòng)程序。第一個(gè)驅(qū)動(dòng)程序,即,NDIS miniport驅(qū)動(dòng)程序,與NDIS 116交換信息,并且通過某些廠商的專用API,與總線或網(wǎng)絡(luò)接口驅(qū)動(dòng)器進(jìn)行通信??偩€或網(wǎng)絡(luò)接口驅(qū)動(dòng)器是面向特定總線或網(wǎng)絡(luò)的,并且通過適當(dāng)?shù)目偩€或網(wǎng)絡(luò)驅(qū)動(dòng)器與硬件通信。NDISminiport驅(qū)動(dòng)程序以及總線或網(wǎng)絡(luò)接口驅(qū)動(dòng)器通過特定廠商的API進(jìn)行通信,因?yàn)樯鲜鰞蓚€(gè)驅(qū)動(dòng)程序都是由正在訪問的網(wǎng)絡(luò)設(shè)備的廠商編寫的。因此,NDIS miniport必須符合NDIS API,以便與NDIS層116通信,同時(shí)總線或網(wǎng)絡(luò)接口必須符合適當(dāng)?shù)目偩€或網(wǎng)絡(luò)驅(qū)動(dòng)器,以便向網(wǎng)絡(luò)設(shè)備傳送信息,NDIS miniport與總線或網(wǎng)絡(luò)接口之間的交互完全由硬件廠商自行處理。要求設(shè)備廠商為市場上銷售的每種設(shè)備編寫兩個(gè)驅(qū)動(dòng)程序會(huì)引起某些非常嚴(yán)重的問題。例如,硬件廠商以及利用其軟件分發(fā)某些設(shè)備驅(qū)動(dòng)程序的操作系統(tǒng)開發(fā)商,很難管理設(shè)備驅(qū)動(dòng)程序的絕對號,并且管理費(fèi)用很高。此外,由于廠商同時(shí)提供到達(dá)NDIS以及總線或網(wǎng)絡(luò)接口的連接,所以網(wǎng)絡(luò)功能性和特定總線的細(xì)節(jié)是聯(lián)在一起的,因此不可能在缺少另一個(gè)驅(qū)動(dòng)程序的情況下,更新一個(gè)驅(qū)動(dòng)程序。通過解決上述問題,將能夠快速部署遠(yuǎn)程連接的網(wǎng)絡(luò)設(shè)備,并且以更低成本開發(fā)基于主機(jī)的驅(qū)動(dòng)程序。
可以利用遠(yuǎn)程N(yùn)DIS miniport層以及特定總線或網(wǎng)絡(luò)的microport,替換設(shè)備硬件廠商提供的NDIS miniport驅(qū)動(dòng)程序以及總線或網(wǎng)絡(luò)接口。遠(yuǎn)程N(yùn)DIS miniport層以及特定總線或網(wǎng)絡(luò)的microport獨(dú)立于正在訪問的特定設(shè)備,因此可以作為操作系統(tǒng)的一部分。因此,不再要求寫入遠(yuǎn)程N(yùn)DIS規(guī)范的硬件廠商編寫其設(shè)備的基于主機(jī)的驅(qū)動(dòng)程序。
遠(yuǎn)程N(yùn)DIS定義連接不可知或連接獨(dú)立的消息集,以及該消息集在諸如特定總線或網(wǎng)絡(luò)之類的特定連接上的運(yùn)行方式的描述。由于遠(yuǎn)程N(yùn)DIS接口是標(biāo)準(zhǔn)化的,所以主驅(qū)動(dòng)程序的核心集能夠支持許多附屬網(wǎng)絡(luò)設(shè)備,從而能夠提高系統(tǒng)穩(wěn)定性以及用戶滿意度,因?yàn)闊o需安裝新驅(qū)動(dòng)程序就能支持新增網(wǎng)絡(luò)設(shè)備。遠(yuǎn)程N(yùn)DIS體系結(jié)構(gòu)包括遠(yuǎn)程N(yùn)DIS miniport驅(qū)動(dòng)程序,后者理解遠(yuǎn)程N(yùn)DIS消息集,并與特定總線或網(wǎng)絡(luò)的microport驅(qū)動(dòng)程序進(jìn)行通信。具體而言,在不修改網(wǎng)絡(luò)設(shè)備的情況下,遠(yuǎn)程N(yùn)DIS miniport層把NDIS OID(對象標(biāo)識(shí)符)和NDIS數(shù)據(jù)包,封裝到能夠傳送的數(shù)據(jù)結(jié)構(gòu)中。該數(shù)據(jù)結(jié)構(gòu)稱為遠(yuǎn)程N(yùn)DIS消息。
特定總線或網(wǎng)絡(luò)的microport驅(qū)動(dòng)程序代表中間層,后者理解負(fù)責(zé)把消息傳送到設(shè)備上的總線或網(wǎng)絡(luò)。因此,microport層接收遠(yuǎn)程N(yùn)DIS消息,然后把它們傳送到總線或網(wǎng)絡(luò)驅(qū)動(dòng)器層的相應(yīng)部件。接著,總線或網(wǎng)絡(luò)驅(qū)動(dòng)器層將遠(yuǎn)程N(yùn)DIS消息傳送到NDIS設(shè)備。
由于網(wǎng)絡(luò)協(xié)議機(jī)制是在特定總線或網(wǎng)絡(luò)microport層上抽取的,所以僅僅改變遠(yuǎn)程N(yùn)DIS miniport層就能添加新的網(wǎng)絡(luò)功能性。Microport層保持不變,因?yàn)閙icroport層僅僅是一種消息傳輸機(jī)制,該機(jī)制傳送封裝在NDIS消息中的NDIS OID以及NDIS數(shù)據(jù)包。此外,所有總線或網(wǎng)絡(luò)microport均可使用以新的NDIS OID格式添加的網(wǎng)絡(luò)功能性,因?yàn)閱蝹€(gè)遠(yuǎn)程N(yùn)DIS miniport層能夠?yàn)樗鼈兲峁┓?wù)。本發(fā)明還保持向后兼容性。在添加新的NDIS OID時(shí),遠(yuǎn)程N(yùn)DIS設(shè)備可能回答并不理解該NDIS OID,因此不支持新的網(wǎng)絡(luò)功能。
現(xiàn)在轉(zhuǎn)到圖3,諸如L2CAP信道160之類的單一L2CAP信道用于遠(yuǎn)程N(yùn)DIS控制通信。上述控制通信包括控制信息,控制消息的應(yīng)答,以及設(shè)備162用來指示狀態(tài)改變的消息。利用一個(gè)分離的L2CAP信道交換遠(yuǎn)程N(yùn)DIS數(shù)據(jù)包。數(shù)據(jù)報(bào)文的長度至多為1500字節(jié),當(dāng)使用全部藍(lán)牙帶寬時(shí)大約需要20ms,如果該數(shù)據(jù)報(bào)文需要與其他通信量共享帶寬,則所需時(shí)間會(huì)大大增加。因此,提供一個(gè)分離的L2CAP信道160,以限制發(fā)送控制消息時(shí)的等待時(shí)間??梢栽黾宇~外的L2CAP信道,以便容納設(shè)備162上可能存在的眾多網(wǎng)絡(luò)信道。
正如參照圖2說明的那樣,將控制消息直接發(fā)送到圖3所示的控制層158,而首先由媒體存取控制層154接收數(shù)據(jù),然后進(jìn)行封裝以便在物理層156的物理網(wǎng)絡(luò)上傳輸。為了便于發(fā)送應(yīng)答和狀態(tài)信號,并且為了提供即時(shí)控制,將控制層158直接連接到媒體存取控制層154和物理層156。
通過L2CAP信道150,在主機(jī)164和設(shè)備162之間傳送網(wǎng)絡(luò)數(shù)據(jù)。采用NDIS網(wǎng)絡(luò)協(xié)議棧所用模型上的NDIS數(shù)據(jù)包機(jī)制,對該數(shù)據(jù)進(jìn)行封裝。L2CAP支持的數(shù)據(jù)包的最大長度為媒體的最大MTU減去RNDIS報(bào)頭長度。設(shè)備152可以將NDIS函數(shù)調(diào)用的中MaxTransferSize值填寫為該設(shè)備能夠發(fā)送的最大L2CAP報(bào)文。如果主機(jī)164具有的報(bào)文長度小于L2CAP最大報(bào)文長度,則利用它的最大報(bào)文長度重寫返回信息。主機(jī)164或設(shè)備162均能發(fā)起控制和數(shù)據(jù)L2CAP信道的建立。
表1表示能夠用于藍(lán)牙遠(yuǎn)程N(yùn)DIS設(shè)備的最小服務(wù)發(fā)現(xiàn)協(xié)議(SDP)記錄。正如從表中看到的那樣,遠(yuǎn)程N(yùn)DIS設(shè)備使用標(biāo)準(zhǔn)服務(wù)發(fā)現(xiàn)描述。個(gè)人區(qū)域網(wǎng)絡(luò)(PAN)服務(wù)能夠彼此通信。藍(lán)牙設(shè)備可能擁有許多PAN服務(wù)。例如,蜂窩電話可以具有一臺(tái)無線WAN服務(wù)器,該服務(wù)器供藍(lán)牙設(shè)備訪問蜂窩數(shù)據(jù)網(wǎng)絡(luò)。在上述情況中,ServiceName為“WWAN”,或者是一個(gè)更具描述性的名稱。作為選擇,蜂窩電話可以具有PAN服務(wù),該服務(wù)允許內(nèi)部PAN服務(wù)在設(shè)備之間進(jìn)行對等通信。在上述情況中,可以把ServiceName設(shè)置為“PEER”。設(shè)備不能利用ServiceName PEER廣告多個(gè)PAN配置文件。
表1
遠(yuǎn)程N(yùn)DIS藍(lán)牙設(shè)備可以建立或接收兩個(gè)或多個(gè)L2CAP信道一個(gè)控制信道以及一個(gè)或多個(gè)數(shù)據(jù)信道。以L2CAP分組數(shù)據(jù)單元(PDU)的形式,發(fā)送到達(dá)設(shè)備162的報(bào)文。能夠在控制信道160上,從主機(jī)164向該設(shè)備發(fā)送一個(gè)報(bào)文,然后該設(shè)備在相同控制信道上發(fā)送應(yīng)答。藍(lán)牙RNDIS設(shè)備的典型事務(wù)示例如下主機(jī)164在控制信道上發(fā)出藍(lán)牙WRITE,其內(nèi)容包括NdisQueryRequest類型。將NdisQueryRequest的RNDIS_OID的值設(shè)置為OID_GEN_MEDIA_CONNECT_STATUS。當(dāng)設(shè)備162收到藍(lán)牙數(shù)據(jù)時(shí),對NdisQueryRequest進(jìn)行解碼,然后執(zhí)行必要操作以確定連接狀態(tài)。當(dāng)該設(shè)備在NdisQueryRequest中具有主機(jī)請求的信息時(shí),在控制信道160上發(fā)出藍(lán)牙WRITE,包括NdisQueryResponse。此時(shí),可以將NdisQueryResponse設(shè)置為OID_GEN_MEDIA_CONNECTION_STATUS。
藍(lán)牙是對等系統(tǒng)。此外,SDP記錄并不定義主機(jī)和設(shè)備系統(tǒng)之間的差異。因此,藍(lán)牙m(xù)icroport可能對它自己產(chǎn)生消極影響。只有主機(jī)的RNDIS microport才需要發(fā)出某些報(bào)文,并且僅僅接收某些報(bào)文。然而,由于microport可以是主機(jī)、設(shè)備或二者,所以能夠處理主機(jī)或設(shè)備接收的所有報(bào)文。因此,microport必須處理上述報(bào)文。例如,當(dāng)連接到蜂窩電話時(shí),藍(lán)牙m(xù)icroport可以僅僅作為主機(jī)microport,當(dāng)連接到運(yùn)行microport的其他設(shè)備時(shí),可以作為雙重主機(jī)/設(shè)備。必須將microport設(shè)計(jì)為在處理報(bào)文時(shí)不出現(xiàn)擺動(dòng)。
遠(yuǎn)程N(yùn)DIS定義REMOTE NDIS PACKET報(bào)文的格式,包括傳送NDIS OOB的空間以及每數(shù)據(jù)包信息字段。當(dāng)遠(yuǎn)程驅(qū)動(dòng)器指定它支持的功能性時(shí),由NDIS提供每數(shù)據(jù)包信息文件??梢灾С痔囟襟w類型的OOB信息。例如,對以太網(wǎng)不需要對等仿真字段。此時(shí),不需要44字節(jié)的偏移以及數(shù)據(jù)包信息長度字段。因此,1514字節(jié)的以太網(wǎng)MTU L2CAP具有最小值為1554字節(jié)的MTU,大約浪費(fèi)3%的藍(lán)牙帶寬。對于低速鏈路,這的確是一個(gè)問題。如果DataOffset為4,則可以進(jìn)行優(yōu)化,其前提是RNDIS PACKET報(bào)頭的其他部分為NULL。從而能夠使數(shù)據(jù)總開銷變?yōu)?6字節(jié),即1%。
在實(shí)施時(shí),當(dāng)支持PAN服務(wù)的遠(yuǎn)程藍(lán)牙設(shè)備在范圍內(nèi)并且能夠通信時(shí),加載藍(lán)牙m(xù)icroport。通過加載microport,促使microport發(fā)送初始化報(bào)文。例如,如果遠(yuǎn)程設(shè)備為蜂窩電話,則利用初始化完成報(bào)文進(jìn)行應(yīng)答。作為另一個(gè)例子,如果遠(yuǎn)程設(shè)備為其他Windows設(shè)備,也可以生成初始化報(bào)文。Microport可以接收諸如REMOTE_NDIS_INITIALIZE_MSG、REMOTE_NDIS_QUERY_MSG、REMOTE_NDIS_SET_MSG、REMOTE_NDIS_RESET_MSG以及REMOTE_NDIS_KEEPALIVE_MSG之類的額外報(bào)文。在附錄F中題目為“藍(lán)牙規(guī)范上的遠(yuǎn)程N(yùn)DIS”(2000年3月20日)一節(jié)中詳細(xì)描述以上報(bào)文。
這里全文引用包含專利、專利申請以及出版物在內(nèi)的所有文獻(xiàn)作為參考。
由于可以將本發(fā)明的原理應(yīng)用于許多可能的實(shí)施方式,所以應(yīng)該理解,參照附圖敘述的實(shí)施方式只是說明性的,而并不能視為對本發(fā)明使用范圍的限制。例如,熟練技術(shù)人員可以理解,可以利用硬件實(shí)現(xiàn)用軟件表示的實(shí)施方式中的組件,反之亦然,可以在排列或細(xì)節(jié)方面修改所示實(shí)施方式而并不背離本發(fā)明的實(shí)質(zhì)。因此,本文敘述的發(fā)明認(rèn)為所有此類實(shí)施方式均在附屬權(quán)利要求書及其等價(jià)物的范圍內(nèi)。
權(quán)利要求
1.一種為無線設(shè)備創(chuàng)建設(shè)備驅(qū)動(dòng)程序的方法,該方法包括以下步驟把設(shè)備控制命令和數(shù)據(jù)抽象為設(shè)備獨(dú)立格式;建立連接獨(dú)立的驅(qū)動(dòng)程序?qū)樱渲羞B接獨(dú)立的驅(qū)動(dòng)程序?qū)咏邮赵O(shè)備控制命令和數(shù)據(jù),然后將設(shè)備控制命令和數(shù)據(jù)封裝為連接獨(dú)立格式;建立中間驅(qū)動(dòng)程序?qū)?,其中中間驅(qū)動(dòng)程序?qū)咏邮找赃B接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),然后將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù)傳送到特定連接的驅(qū)動(dòng)程序?qū)樱灰约敖⑻囟ㄟB接的驅(qū)動(dòng)程序?qū)?,其中特定連接的驅(qū)動(dòng)程序?qū)咏邮找赃B接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù)轉(zhuǎn)換為特定連接的設(shè)備控制命令和數(shù)據(jù),然后將特定連接的設(shè)備控制命令和數(shù)據(jù)傳輸?shù)綗o線設(shè)備。
2.權(quán)利要求1的方法,其中無線設(shè)備能夠接收符合藍(lán)牙協(xié)議的無線通信;并且特定連接的設(shè)備控制命令和數(shù)據(jù)符合藍(lán)牙協(xié)議。
3.權(quán)利要求1的方法,其中特定連接的驅(qū)動(dòng)程序?qū)油ㄟ^至少一個(gè)L2CAP信道,將特定連接的設(shè)備控制命令和數(shù)據(jù)傳輸?shù)綗o線設(shè)備。
4.權(quán)利要求3的方法,其中特定連接的驅(qū)動(dòng)程序?qū)油ㄟ^第一L2CAP信道傳輸特定連接的設(shè)備控制命令,通過第二L2CAP信道傳輸特定連接的數(shù)據(jù)。
5.權(quán)利要求1的方法,其中特定連接的驅(qū)動(dòng)程序?qū)訁⒄辗?wù)發(fā)現(xiàn)協(xié)議記錄,將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),轉(zhuǎn)換為特定連接的設(shè)備控制命令和數(shù)據(jù)。
6.權(quán)利要求1的方法,其中特定連接的驅(qū)動(dòng)程序?qū)油ㄟ^把特定連接的設(shè)備控制命令和數(shù)據(jù),分割為比無線設(shè)備使用的無線協(xié)議的最大傳輸單位小的數(shù)據(jù)包,傳輸特定連接的設(shè)備控制命令和數(shù)據(jù)。
7.一種與無線設(shè)備進(jìn)行通信的方法,該方法包括以下步驟將設(shè)備控制命令和數(shù)據(jù)抽象為設(shè)備獨(dú)立格式;按照設(shè)備獨(dú)立格式將設(shè)備控制命令和數(shù)據(jù)封裝為連接獨(dú)立格式;將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù)轉(zhuǎn)換為特定連接的設(shè)備控制命令和數(shù)據(jù);以及將特定連接的設(shè)備控制命令和數(shù)據(jù)傳輸?shù)綗o線設(shè)備。
8.權(quán)利要求7的方法,其中無線設(shè)備能夠接收符合藍(lán)牙協(xié)議的無線通信;并且特定連接的設(shè)備控制命令和數(shù)據(jù)符合藍(lán)牙協(xié)議。
9.權(quán)利要求7的方法,其中通過至少一個(gè)L2CAP信道,將特定連接的設(shè)備控制命令和數(shù)據(jù)傳輸?shù)綗o線設(shè)備。
10.權(quán)利要求9的方法,其中通過第一L2CAP信道傳輸特定連接的設(shè)備控制命令,通過第二L2CAP信道傳輸特定連接的數(shù)據(jù)。
11.權(quán)利要求7的方法,其中參照服務(wù)發(fā)現(xiàn)協(xié)議記錄,將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),轉(zhuǎn)換為特定連接的設(shè)備控制命令和數(shù)據(jù)。
12.權(quán)利要求7的方法,其中通過把特定連接的設(shè)備控制命令和數(shù)據(jù),分割為比無線設(shè)備使用的無線協(xié)議的最大傳輸單位小的數(shù)據(jù)包,傳輸特定連接的設(shè)備控制命令和數(shù)據(jù)。
13.一種為無線設(shè)備創(chuàng)建設(shè)備驅(qū)動(dòng)程序的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包含帶有以下計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)把設(shè)備控制命令和數(shù)據(jù)抽象為設(shè)備獨(dú)立格式;建立連接獨(dú)立的驅(qū)動(dòng)程序?qū)樱渲羞B接獨(dú)立的驅(qū)動(dòng)程序?qū)咏邮赵O(shè)備控制命令和數(shù)據(jù),然后將設(shè)備控制命令和數(shù)據(jù)封裝為連接獨(dú)立格式;建立中間驅(qū)動(dòng)程序?qū)?,其中中間驅(qū)動(dòng)程序?qū)咏邮找赃B接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),然后將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù)傳送到特定連接的驅(qū)動(dòng)程序?qū)?;以及建立特定連接的驅(qū)動(dòng)程序?qū)?,其中特定連接的驅(qū)動(dòng)程序?qū)咏邮找赃B接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù)轉(zhuǎn)換為特定連接的設(shè)備控制命令和數(shù)據(jù),然后將特定連接的設(shè)備控制命令和數(shù)據(jù)傳輸?shù)綗o線設(shè)備。
14.權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中無線設(shè)備能夠接收符合藍(lán)牙協(xié)議的無線通信;并且特定連接的設(shè)備控制命令和數(shù)據(jù)符合藍(lán)牙協(xié)議。
15.權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中特定連接的驅(qū)動(dòng)程序?qū)油ㄟ^至少一個(gè)L2CAP信道,將特定連接的設(shè)備控制命令和數(shù)據(jù)傳輸?shù)綗o線設(shè)備。
16.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中特定連接的驅(qū)動(dòng)程序?qū)油ㄟ^第一L2CAP信道傳輸特定連接的設(shè)備控制命令,通過第二L2CAP信道傳輸特定連接的數(shù)據(jù)。
17.權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中特定連接的驅(qū)動(dòng)程序?qū)訁⒄辗?wù)發(fā)現(xiàn)協(xié)議記錄,將按照連接獨(dú)立格式封裝的設(shè)備控制命令和數(shù)據(jù),轉(zhuǎn)換為特定連接的設(shè)備控制命令和數(shù)據(jù)。
18.權(quán)利要求13的計(jì)算機(jī)程序產(chǎn)品,其中特定連接的驅(qū)動(dòng)程序?qū)油ㄟ^把特定連接的設(shè)備控制命令和數(shù)據(jù),分割為比無線設(shè)備使用的無線協(xié)議的最大傳輸單位小的數(shù)據(jù)包,傳輸特定連接的設(shè)備控制命令和數(shù)據(jù)。
全文摘要
本發(fā)明提供用于在符合藍(lán)牙規(guī)范的RF鏈路上提供網(wǎng)絡(luò)報(bào)文協(xié)議的方法和計(jì)算機(jī)程序產(chǎn)品,其中網(wǎng)絡(luò)報(bào)文協(xié)議是總線獨(dú)立的,并且最初是為總線連接的網(wǎng)絡(luò)設(shè)備設(shè)計(jì)的。一種網(wǎng)絡(luò)報(bào)文協(xié)議為NDIS設(shè)備管理協(xié)議。于是,能夠在藍(lán)牙無線網(wǎng)絡(luò)上使用計(jì)劃在硬連接(或總線連接)網(wǎng)絡(luò)上運(yùn)行的許多計(jì)算機(jī)軟件產(chǎn)品。
文檔編號H04L29/06GK1446425SQ01810303
公開日2003年10月1日 申請日期2001年3月22日 優(yōu)先權(quán)日2000年4月24日
發(fā)明者蒂莫西·M·摩爾, 歐文·皮雷茨, 肯尼斯·D·雷 申請人:微軟公司