專利名稱:多協(xié)議可移動存儲設(shè)備的制作方法
多協(xié)議可移動存儲設(shè)備
扭旦 冃尿 通用串行總線(USB)大容量存儲類(MSC)是由USB設(shè)備
論壇定義的一組計算通信協(xié)議。該標(biāo)準(zhǔn)提供了對各種存儲設(shè)備的接口。連接到 主計算機并包括該標(biāo)準(zhǔn)的典型存儲設(shè)備包括外部磁硬盤驅(qū)動器、包括CD和
DVD讀取器和刻錄機驅(qū)動器的外部光盤驅(qū)動器、包括USB閃存設(shè)備的便攜式
閃存設(shè)備、橋接標(biāo)準(zhǔn)閃存卡和USB連接的適配器、數(shù)碼照相機、諸如MP3播
放器等的數(shù)字音頻播放器、以及用于音樂、視頻和圖片的高端數(shù)字媒體播放器。 這一 USB大容量存儲類并不指定在使用它的設(shè)備上應(yīng)使用哪 個文件系統(tǒng);相反,它主要提供讀出任何硬盤設(shè)備上的扇區(qū)的方法。操作系統(tǒng) 可自由地用諸如文件分配表(FAT)文件系統(tǒng)等的對存儲區(qū)域可用的任何文《牛 系統(tǒng)來格式化該存儲區(qū)域。使用MSC的一個不利方面是它阻止可附連USB的 設(shè)備容易地經(jīng)過USB接口呈現(xiàn)其實際功能行為。 媒體傳輸協(xié)議(MTP)是一種新的協(xié)議,并且附帶了由華盛頓 州雷蒙德市的微軟公司開發(fā)的驅(qū)動程序集以將便攜式設(shè)備連接到Windows XP個人計算機(PC)并且在那些設(shè)備和PC之間同步數(shù)字媒體內(nèi)容。MTP適 于具有硬盤驅(qū)動器的便攜式設(shè)備。以下是MTP的好處。所有兼容MTP的設(shè)備 使用隨Windows Media PlayerTM版本10 (MP10)及以上一起出廠的驅(qū)動程序, 并且用戶將能夠從播放器控制軟件中執(zhí)行所有傳輸和同步功能。所有兼容MTP 的設(shè)備支持被稱為AutoSync (自動同步)的特征,該特征讓用戶將MP10配置 為只要將設(shè)備連接到支持的PC就自動地將新獲取或抓取的內(nèi)容傳輸?shù)皆撛O(shè) 備。兼容MTP的設(shè)備具有允許在設(shè)備斷開連接并然后重新連接時將對該設(shè)備 上的文件屬性(諸如用戶評級等)所做出的改變傳播回PC的文件屬性同步。 因此,媒體傳輸協(xié)議(MTP)設(shè)備提供超出USB大容量存儲 類(MSC)設(shè)備的額外的功能。然而,MTP協(xié)議并沒有在和MSC協(xié)議一樣多 的主機設(shè)備上得到支持。運行MP10的主機設(shè)備支持MTP,而沒有MP10或諸 如Linux、 MacOS、或Windows 95、 Windows認(rèn)、或Windows CE等的操作
6系統(tǒng)的設(shè)備不支持MTP。所有這些操作系統(tǒng)及更多操作系統(tǒng)支持MSC。支持 舊MSC的PC上的MTP設(shè)備的可操作性是有問題的,除非存在某一種協(xié)議靈 活性。其他協(xié)議也存在類似的問題。該問題并不限于MTP和MSC。 特定于MTP和MSC的一個問題是MTP設(shè)備維護對存儲中的 所有對象/文件的數(shù)據(jù)庫索引的這一事實,該數(shù)據(jù)庫索引允許在諸如(但不限于) 專輯、作者、風(fēng)格等的許多屬性上進行快速瀏覽、排序、以及訪問。MSC并 不維護對于所有對象的數(shù)據(jù)庫索引。結(jié)果,當(dāng)使用MSC來訪問可移動存儲設(shè) 備時,MTP使用的數(shù)據(jù)庫索引將變得不與對象同步。 此外,當(dāng)前不存在檢測是否已經(jīng)以導(dǎo)致MTP數(shù)據(jù)庫不同步的 方式使用了MSC的標(biāo)準(zhǔn)方法。結(jié)果,主機或設(shè)備將不得不假設(shè)數(shù)據(jù)庫沒有同 步并在每次連接或重新連接時修復(fù)或重新創(chuàng)建MTP數(shù)據(jù)庫。該操作增加了顯 著的延遲。 一種合乎需要的特征將會是取決于主PC所支持的協(xié)議選擇任一協(xié) 議以及在該協(xié)議中容納升級的改變的能力。
概述 提供本概述以便以簡化形式介紹將在以下詳細(xì)描述中進一步 描述的一些概念。本概述并不旨在標(biāo)識要求保護的主題的關(guān)鍵特征或必要特 征,也不旨在用于幫助確定要求保護的主題的范圍。 在本發(fā)明的一方面中, 一種可移動存儲設(shè)備能夠維護用于可以 支持一個或多個協(xié)議的主計算機的確定優(yōu)先順序的協(xié)議的列表。在一個實施例 中, 一個協(xié)議可以是MTP協(xié)議,而另一個協(xié)議可以是MSC協(xié)議。MTP協(xié)議 可被認(rèn)為是優(yōu)先的協(xié)議。存儲設(shè)備按照優(yōu)先級次序來嘗試各協(xié)議。如果主機成 功地檢測到并支持該協(xié)議,則操作如同該設(shè)備只用該協(xié)議來運行一樣繼續(xù)。如 果主機沒有檢測到或不支持該協(xié)議,則該設(shè)備仿真一斷開連接事件并且用該列 表中的下一個協(xié)議來重新連接。
如果該設(shè)備用MSC協(xié)議來連接,則該設(shè)備對每個存儲區(qū)域啟 用寫入檢測器。對于由主機向存儲區(qū)域的每次寫入,設(shè)備將索引標(biāo)志設(shè)為真。 如果設(shè)備根據(jù)MTP來連接,則該設(shè)備檢查每個存儲區(qū)域的索引標(biāo)志。如果區(qū) 域的索引標(biāo)志為真,則該設(shè)備修復(fù)對應(yīng)于該區(qū)域的數(shù)據(jù)庫索引并且將該索引標(biāo)志清除為假。更新的索引允許在即使該數(shù)字媒體是使用不支持索引的MSC協(xié) 議來存儲在該設(shè)備上的的情況下也能使用MTP協(xié)議的能力來對存儲在設(shè)備上 的數(shù)字媒體進行分類和搜索。
附圖簡述 在附圖中
圖1是示出具有本發(fā)明的各方面的示例媒體存儲設(shè)備的圖; 圖2是展示了本發(fā)明的各方面的示例流程圖;以及 圖3是示出示例主機計算環(huán)境的框圖。
詳細(xì)描述 示例性實施例 可插入存儲媒體的一個問題是所使用的接口和協(xié)議。在可以使 用兩個操作協(xié)議的情況下,用戶可能不知道要使用的協(xié)議。例如,兼容通用串 行總線(USB)的設(shè)備的用戶可能不知道該設(shè)備或者諸如個人計算機等的主計 算機支持哪個協(xié)議。 一種解決方案是使兼容USB的設(shè)備配備在各可選協(xié)議之 間轉(zhuǎn)換的能力以使得用戶無需連接和斷開兼容USB的設(shè)備,也無需做出選擇 一個協(xié)議而不是另一個的手動轉(zhuǎn)換。注意,任何協(xié)議集都可以結(jié)合本發(fā)明來使 用,并且以下所呈現(xiàn)的各具體實施例并非限制。 圖1描繪了用于能夠運用多個協(xié)議而無需主PC或者用戶干涉 的兼容USB的存儲設(shè)備的體系結(jié)構(gòu)。圖1描繪了在其中與至少兩個協(xié)議兼容 的媒體存儲設(shè)備120可連接到第一、第二、或第三主機中的任一個的系統(tǒng)。如 果連接到第一主機105,則所支持的協(xié)議可以是較新的MTP協(xié)議或者常見的 MSC協(xié)議中的任一個。如果連接到第二主機110,則所支持的協(xié)議是MSC協(xié) 議。如果連接到第三主機115,則所支持的協(xié)議是MTP協(xié)議。
媒體存儲設(shè)備120包括物理接口 130,該接口包括典型接口的 電學(xué)和硬件方面。該接口可以是USB接口、火線接口、 WiFi接口、以太網(wǎng)、 光學(xué)(同步光纖網(wǎng)(Sonet))接口、或其他通??捎玫腜C接口中的任一種。 設(shè)備120功能上還包含能夠檢測對PC或其他計算設(shè)備的工作接口的存在的插入和移除檢測模塊125。插入和移除檢測塊確定存儲設(shè)備120與PC或其他外 部主機相連接還是斷開與其連接。 設(shè)備120的協(xié)議失敗檢測功能135可以存儲該設(shè)備內(nèi)可用的協(xié) 議的各方面以便能夠在用所支持的協(xié)議中的一個來操作或試圖操作時檢測到 錯誤。連接和斷開連接仿真器140允許設(shè)備在設(shè)備120有從一個協(xié)議改變到另 一個的原因時仿真斷開連接和重新連接。協(xié)議失敗檢測功能135與連接/斷開連 接仿真器140的組合使設(shè)備120能夠用不止一種協(xié)議來操作。如果嘗試了第一 種協(xié)議并且失敗了,則協(xié)議失敗功能135檢測到該失敗并且,如果合適,可以 用作激活連接/斷開連接仿真器140的觸發(fā)器。在協(xié)議失敗時,在內(nèi)部邏輯170 的控制下,仿真器140能夠仿真設(shè)備120從主機的斷開連接。然后,仿真器140 能夠提供該設(shè)備到主計算機的邏輯連接因此允許嘗試第二種協(xié)議。仿真器140 能夠以邏輯控制170所允許的頻率來向設(shè)備120提供斷開連接和連接服務(wù)。 在本發(fā)明的一方面中,內(nèi)部邏輯控制可被實現(xiàn)為邏輯狀態(tài)機或 可編程控制器??删幊炭刂破骺梢酝ㄟ^到媒體存儲設(shè)備120的接口使用從諸如 CD、軟盤等的計算機可讀介質(zhì)下載的程序來進行編程??删幊探橘|(zhì)可包含用 于在設(shè)備120上執(zhí)行操作的指令。設(shè)備120的電源可以從總線接口中得到,諸 如在設(shè)備是兼容USB的情況下。或者,或作為結(jié)合,設(shè)備120可包括提供用 于維護和/或工作電力的所需的偏壓的電池。 設(shè)備120支持MTP協(xié)議。因此,提供數(shù)據(jù)庫165以使得設(shè)備 120可以對存儲在該設(shè)備中的文件的各方面進行存儲和分類。例如,如果該設(shè) 備是數(shù)字音樂設(shè)備,則每個特定的文件可具有包括文件名、大小、藝術(shù)家、專 輯、風(fēng)格、標(biāo)題、以及其他標(biāo)簽或?qū)傩缘母鞣矫?。這些屬性和信息可被存儲在 數(shù)據(jù)庫165中。MTP協(xié)議還允許用戶排序或搜索用于歌曲的設(shè)備的內(nèi)容。實 現(xiàn)搜索的一種方法是用能夠指向可訪問歌曲的存儲中的位置的數(shù)據(jù)庫上的索 引。因此,MTP支持在數(shù)據(jù)庫信息上的索引。索引行列可被存儲在數(shù)據(jù)庫165 中。在一個實施例中,可由小型磁盤驅(qū)動器或半導(dǎo)體存儲器來支持MTP數(shù)據(jù) 庫。 圖1描繪了存儲區(qū)域1到N、 160a和160b。設(shè)備數(shù)據(jù)庫165 可用作諸如數(shù)字音樂等的媒體的存儲。因此,在該具體示例中,諸如160a和
9160b等的存儲區(qū)域的指示可用于將存儲在數(shù)據(jù)庫165上的音樂文件或音樂文 件組相關(guān)聯(lián)。每個存儲區(qū)域都具有相關(guān)聯(lián)的索引標(biāo)志和寫入檢測元件。索引標(biāo) 志145a和145b分別與存儲區(qū)域160a和160b相關(guān)聯(lián),寫入檢測模塊150a和 150b分別與存儲區(qū)域指示符160a和160b相關(guān)聯(lián)。 在本發(fā)明的一方面中,設(shè)備120可以與兼容MSC的主PC以及 兼容MTP的主PC—起使用。如果兼容MTP的主機連接到該設(shè)備,則用戶可 以根據(jù)搜索準(zhǔn)則使用索引來檢索歌曲。如果添加了新歌曲,則可以更新索引。 然而,如果使用MSC協(xié)議來添加數(shù)字音樂內(nèi)容,則將添加該文件,但不會更 新索引,因為MSC協(xié)議不支持文件的索引。在本發(fā)明的一方面中,如果設(shè)備 被連接到不支持索引搜索的使用的MSC主機,則歌曲將被放置于存儲器中諸 如存儲區(qū)域160a等的存儲區(qū)域中。如果發(fā)生這一情況,則寫入檢測模塊150a 檢測到對存儲區(qū)域160a的寫入已經(jīng)在MSC操作模式中發(fā)生并且設(shè)置索引標(biāo)志 145a。
隨后,如果在后續(xù)會話期間使用MTP協(xié)議,則設(shè)備120能夠
檢測到該索引標(biāo)志并且指示已經(jīng)添加了數(shù)字內(nèi)容但沒有被索引。設(shè)備120然后 允許索引新添加的數(shù)字內(nèi)容以使得MTP協(xié)議能夠允許使用索引來搜索新的數(shù) 字音樂內(nèi)容。 在本發(fā)明的另一方面中,當(dāng)新的數(shù)字音樂被加載到設(shè)備中,更 新對應(yīng)于該新添加的數(shù)字音樂的索引。作為添加的結(jié)果,可以更新多個索引。 更新索引的一種方法是每次進行MTP連接時更新整個存儲區(qū)域。然而,因為 設(shè)備可能保持有10,000以上的可單獨索引的數(shù)字內(nèi)容項,所以這可能花費大量 的時間。通過使用按照每個存儲部分劃分的索引標(biāo)志,只需要更新對于由被激 活的索引標(biāo)志指示的存儲部分的索引。因此,整個索引的重建變得沒有必要, 并且可以在更少的時間內(nèi)實現(xiàn)更新。因此,設(shè)備120變得更快對用戶可用。本 發(fā)明的該方面避免了設(shè)備存儲器的數(shù)據(jù)庫索引的重建。在該設(shè)備上使用的存儲 器可以是諸如非易失性或易失性存儲器等的磁盤或半導(dǎo)體存儲器。 在本發(fā)明的另一方面中,如果該設(shè)備在MTP協(xié)議下操作并且 察覺到部分文件,則可如在任何其他數(shù)據(jù)庫中那樣回退(roll back)數(shù)據(jù)庫以 便移除該部分文件。部分文件可能是用戶在寫入操作期間移除設(shè)備的結(jié)果,或者可能是以其他方式損壞的文件。因此,本發(fā)明允許恢復(fù)和回退其文件因設(shè)備 電源丟失而不完整的數(shù)據(jù)庫。 圖2是利用本發(fā)明的各方面的一個可能的實施方法200。方法 200假設(shè)類似于圖1的設(shè)備120的媒體存儲設(shè)備可由用戶物理地連接到支持 MTP協(xié)議或者MSC協(xié)議中的任一個,或兩者都支持的主機。作為過程200的 開始,設(shè)備等待被物理連接到主機(步驟210)。在物理連接之后,檢査成功 標(biāo)志以査看該設(shè)備是否上一次成功地連接到兼容MTP的主機或是否已過了可 配置時間段(計數(shù))。在一個實施例中,該設(shè)備最初可被設(shè)為使得設(shè)置在步驟 215處的成功標(biāo)志以指示上一次嘗試連接時的成功的MTP初始化,即使先前 從未連接過該設(shè)備??稍O(shè)置該偏好,以使得該設(shè)備最初選擇嘗試用最先進的協(xié) 議MTP來連接。 假設(shè)設(shè)置成功標(biāo)志以指示成功的上一次MTP嘗試,該過程再 次移至連接到兼容MTP的主機(步驟220)。或者,如果超出了計數(shù),則做 出初始化MTP協(xié)議的嘗試(步驟220)。超出計數(shù)可以是諸如超出可配置時 鐘計數(shù)或成功連接計數(shù)等的計數(shù)器事件。時鐘計數(shù)可以是諸如24小時時間段 等的設(shè)備附連之間的時間量,該時間量用作在其后引導(dǎo)該媒體設(shè)備在下一個附 連事件時重新嘗試MTP協(xié)議的超時時間段?;蛘撸鲇嫈?shù)可以是由該設(shè)備 做出的成功的MTP或MSC連接的特定(可配置)數(shù)量。在做出多次連接之后, 可引導(dǎo)該設(shè)備嘗試高優(yōu)先級MTP協(xié)議。假設(shè)做出MTP嘗試(步驟220),如 果連接是成功的(步驟225),則設(shè)置成功標(biāo)志以記住上一次成功的嘗試是與 兼容MTP的主機進行的(步驟230)。在步驟230處,可以啟動上述的諸如 時鐘計數(shù)或成功連接計數(shù)等的計數(shù)。接著,檢查索引標(biāo)志以査看該索引標(biāo)志是 否已設(shè)置(步驟245)。如果設(shè)置了該索引標(biāo)志(真),則指示發(fā)生了先前的 MSC會話并且存在還未被正確索引的媒體存儲數(shù)據(jù)。如果在步驟245中索引 標(biāo)志被檢測到為真,則修復(fù)該索引并且清除該索引標(biāo)志(步驟260)。然后可 做出作為MTP設(shè)備的最終連接(步驟275)。該媒體存儲設(shè)備然后可以等待 斷開連接(步驟280)。如果斷開該設(shè)備,則該過程回到等待下一次連接(步 驟210)。
回到步驟225處的過程200,如果啟動MTP協(xié)議的嘗試不成功, 則做出MSC協(xié)議的嘗試(步驟235)。在本發(fā)明的一個實際方面中,替換協(xié) 議的嘗試可調(diào)用斷開連接后跟連接的仿真。如果與MTP主機相連接的最初嘗 試是成功的(步驟240),則該媒體存儲設(shè)備記住上一次成功的協(xié)議初始化為 MSC協(xié)議連接(步驟250)。最后,調(diào)用完整的協(xié)議并且使用MSC協(xié)議來將 媒體存儲設(shè)備連接到主機設(shè)備(步驟265)。該媒體存儲設(shè)備然后在其等待斷 開連接指示(步驟280)之后等待重新連接(步驟210)時支持MSC協(xié)議的操 作。 如果該媒體存儲設(shè)備隨后被附連到MSC設(shè)備,則過程200允許 快速地連接該設(shè)備。將進行設(shè)備附連(步驟210),并且上一次成功將指示在 其中該存儲設(shè)備將在MSC協(xié)議下啟動與該主機的連接的MSC連接(步驟 215)。與MSC協(xié)議主PC的初始化連接將會是成功的,并且方法200進入上 述的步驟250和265。 如果該媒體存儲設(shè)備隨后被連接到只支持MTP的主機,則該 設(shè)備將在等待(步驟210)之后進入連接狀態(tài)并且將檢査成功標(biāo)志。因為該設(shè) 備先前已經(jīng)有了 MSC成功作為上一次連接協(xié)議,所以該過程將從步驟215遍 歷到步驟235并且將發(fā)生MSC協(xié)議啟動。然而,因為該設(shè)備被連接到只支持 MTP的主機,所以MSC嘗試將會失敗(步驟240)。過程然后詢問在當(dāng)前會 話期間是否已有過MTP協(xié)議嘗試(步驟255)。在這一情況下,不存在先前 的MTP嘗試。所以,該過程從步驟255遍歷到在其中做出MTP協(xié)議嘗試的步 驟220。當(dāng)成功連接時(步驟225),設(shè)置成功標(biāo)志以指示MTP成功,所以任 何隨后到主機的連接將首先嘗試兼容MTP的協(xié)議(步驟230)。再一次,在 成功的MTP初始化之后,測試索引標(biāo)志(步驟245)。如果設(shè)置了該索引標(biāo) 志,則在用MTP協(xié)議來完全連接之前修復(fù)該索引(步驟275)。 回到在其中MSC連接嘗試失敗的步驟255,如果先前已嘗試了 MTP協(xié)議并且失敗了 ,則過程200得出該媒體存儲設(shè)備無法使用MSC協(xié)議或 用MTP來連接的結(jié)論(步驟270)并因此遍歷到等待另一次重新連接(步驟 210)。
方法200示出了本發(fā)明的靈活性。 一旦設(shè)備已用一種協(xié)議來連 接,它就會記住那次成功,并且當(dāng)被重新連接到主機時,嘗試使用該相同的成 功的協(xié)議。然而,如果該存儲媒體設(shè)備被連接到支持不同協(xié)議的主機,則該設(shè) 備首先嘗試上次成功的協(xié)議,并且如果失敗了,則該存儲設(shè)備嘗試替換協(xié)議。 如果兩個協(xié)議都失敗了,則該設(shè)備等待隨后的重新連接。因此,媒體存儲設(shè)備 可被連接到支持MTP協(xié)議、MSC協(xié)議中的任一種的主機,以及支持其中一種 協(xié)議的主機。該設(shè)備可從一個主機移至另一個主機,并且如果該主機支持該設(shè) 備支持的協(xié)議中的任一種則該設(shè)備將成功連接。如果在MSC設(shè)備上使用該設(shè) 備,并且該設(shè)備隨后被連接到MTP設(shè)備,則進行自動索引修復(fù)以使得即使數(shù) 字內(nèi)容是使用MSC協(xié)議下載的也可以使用完整的MTP協(xié)議功能。 在本發(fā)明的一個實施例中,主機計算機可以支持MSC或者 MTP協(xié)議。因此,如果該設(shè)備先前是結(jié)合只支持MSC的主機來使用的,則該 存儲設(shè)備會記住那次成功的連接并且始終嘗試使用MSC協(xié)議來連接。所以, 如果該媒體存儲設(shè)備被連接到支持MSC和MTP協(xié)議兩者的主機,則由于MSC 設(shè)置了成功標(biāo)志,將更偏愛MSC協(xié)議。在一個實施例中,如果上一次成功標(biāo) 志被設(shè)置為嘗試MSC,則將在預(yù)定的計數(shù)數(shù)量之后嘗試MTP協(xié)議。計數(shù)可以 是由時鐘提供的定時計數(shù),或可以是指示該媒體存儲設(shè)備被連接到主計算機的 次數(shù)的計數(shù)器。時鐘、累加器、標(biāo)志、或寄存器可以包括在控制邏輯170內(nèi)。 例如,如果成功標(biāo)志被設(shè)置為偏愛MSC協(xié)議嘗試,則在每個預(yù)定的重新連接 次數(shù)(例如,到主機的三次或四次連接)之后,該存儲設(shè)備將轉(zhuǎn)為偏愛初始 MTP協(xié)議嘗試。這將允許該設(shè)備變得向上兼容高級的MTP協(xié)議并且適應(yīng)存儲 設(shè)備的用戶可能將該設(shè)備連接到兼容MTP或MSC的主機的可能性。
在一個實施例中,超出的預(yù)定計數(shù)會將成功標(biāo)志設(shè)置到優(yōu)選的MTP協(xié)議。 在另一個實施例中,超出的預(yù)定計數(shù)將簡單地覆蓋成功標(biāo)志并且使用優(yōu)選的 MTP協(xié)議作為初始嘗試協(xié)議。 盡管用對結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但 可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動作。相反,
上述具體特征和動作是作為實現(xiàn)權(quán)利要求的示例形式公開的。示例性計算設(shè)備 圖3和以下討論旨在提供適于與媒體存儲設(shè)備進行交互的主計 算機的簡要概括描述。雖然以下描述了通用計算機,但這僅是單個處理器示例, 并且具有多個處理器的主計算機的各實施例可以用諸如具有網(wǎng)絡(luò)/總線互操作 性和交互的客戶機等的其他計算設(shè)備來實現(xiàn)。 參考圖3,用于實現(xiàn)示例主計算機的一個示例性系統(tǒng)包括計算 機系統(tǒng)310形式的通用計算設(shè)備。計算機系統(tǒng)310的組件可以包括,但不限于, 處理單元320、系統(tǒng)存儲器330和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合 至處理單元320的系統(tǒng)總線321。系統(tǒng)總線321可以是若干種總線結(jié)構(gòu)中的任 一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu) 中的任一種的局部總線。 計算機系統(tǒng)310通常包括各種計算機可讀介質(zhì)。計算機可讀介 質(zhì)可以是能由計算機系統(tǒng)310訪問的任何可用介質(zhì),而且包含易失性/非易失 性介質(zhì)以及可移動/不可移動介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可 以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算 機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息的任意方法或技術(shù)來 實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不 限于,隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦可編程只讀 存儲器(EEPROM)、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD) 或其它光盤存儲、盒式磁帶、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或可用于 存儲所需信息并可由計算機系統(tǒng)310訪問的任何其它介質(zhì)。 系統(tǒng)存儲器330包括易失性和/或非易失性存儲器形式的計算 機存儲介質(zhì),如只讀存儲器(ROM) 331和隨機存取存儲器(RAM) 332?;?本輸入/輸出系統(tǒng)333 (BIOS)包含有助于諸如啟動時在計算機系統(tǒng)310中的 元件之間傳遞信息的基本例程,它通常存儲在ROM331中。RAM332通常包 含處理單元320可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為 示例,而非限制,圖3示出了操作系統(tǒng)333、應(yīng)用程序335、其它程序模塊336 和程序數(shù)據(jù)337。
計算機系統(tǒng)310也可以包括其它可移動/不可移動、易失性/非 易失性計算機存儲介質(zhì)。僅作為示例,圖3示出了從不可移動、非易失性磁介 質(zhì)中讀取或向其寫入的硬盤驅(qū)動器331,從可移動、非易失性磁盤352中讀取 或向其寫入的磁盤驅(qū)動器351 ,以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動、 非易失性光盤356中讀取或向其寫入的光盤驅(qū)動器355??梢栽谑纠圆僮鳝h(huán) 境中使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括,但 不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài) ROM等。硬盤驅(qū)動器341通常由不可移動存儲器接口,諸如接口 340連接至 系統(tǒng)總線321,磁盤驅(qū)動器351和光盤驅(qū)動器355通常由可移動存儲器接口, 諸如接口 350連接至系統(tǒng)總線321。到系統(tǒng)總線321的其他連接包括向串行接 口設(shè)備358提供電源和數(shù)據(jù)連接服務(wù)的串行接口連接357。串行連接357的示 例包括火線、USB、以及光學(xué)接口。串行接口設(shè)備的示例包括閃存設(shè)備、媒體 設(shè)備、以及諸如掃描儀和組合設(shè)備等的其他外圍設(shè)備。 上文討論并在圖3中示出的驅(qū)動器及其關(guān)聯(lián)的計算機存儲介質(zhì) 為計算機系統(tǒng)310提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的 存儲。例如,在圖3中,硬盤驅(qū)動器341被示為存儲操作系統(tǒng)344、應(yīng)用程序 345、其它程序模塊346和程序數(shù)據(jù)347。注意,這些組件可以與操作系統(tǒng)344、 應(yīng)用程序345、其它程序模塊346和程序數(shù)據(jù)347相同或不同。操作系統(tǒng)344、 應(yīng)用程序345、其它程序模塊346和程序數(shù)據(jù)347在這里被標(biāo)注了不同的標(biāo)號 是為了說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,如鍵盤362和定 點設(shè)備361 (通常指鼠標(biāo)、跟蹤球或觸摸板)向計算機系統(tǒng)310輸入命令和信 息。其它輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星 天線、掃描儀等。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線320的用戶輸入 接口 360連接到處理單元321,但是也可由諸如并行端口、游戲端口或通用串 行總線(USB)之類的其它接口和總線結(jié)構(gòu)連接。監(jiān)視器391或其它類型的顯 示設(shè)備也經(jīng)由可以進而與視頻存儲器(未示出)進行通信的接口,諸如視頻接 口 390連接至系統(tǒng)總線321。除監(jiān)視器391以外,計算機系統(tǒng)也可以包括其它 外圍輸出設(shè)備,諸如揚聲器397和打印機396,它們可以通過輸出外圍接口 395 連接。
15
計算機系統(tǒng)310可使用至一個或多個遠(yuǎn)程計算機,諸如遠(yuǎn)程計 算機380的邏輯連接在聯(lián)網(wǎng)或分布式環(huán)境中操作。遠(yuǎn)程計算機380可以是個人 計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,且通 常包括上文相對于計算機系統(tǒng)310描述的許多或所有元件,盡管在圖3中只示 出存儲器存儲設(shè)備381。圖3中所示的邏輯連接包括局域網(wǎng)(LAN) 371和廣 域網(wǎng)(WAN) 373,但也可以包括其它網(wǎng)絡(luò)/總線。這樣的聯(lián)網(wǎng)環(huán)境在家庭、辦 公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。 當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機系統(tǒng)310通過網(wǎng)絡(luò)接口 或適配器370連接至LAN 371。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機系統(tǒng)310 通常包括調(diào)制解調(diào)器372,或用于通過WAN373,如因特網(wǎng)建立通信的其它裝 置。調(diào)制解調(diào)器372可以是內(nèi)置或外置的,它可以通過用戶輸入接口 360或其 它合適的機制連接至系統(tǒng)總線321。在聯(lián)網(wǎng)環(huán)境中,相對于計算機系統(tǒng)310所 描述的程序模塊或其部分可被儲存在遠(yuǎn)程存儲器存儲設(shè)備中。作為示例,而非 限制,圖3示出了遠(yuǎn)程應(yīng)用程序385駐留在存儲器設(shè)備381上??梢岳斫?,示 出的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其它手 段。 此處所述的各種技術(shù)可結(jié)合硬件或軟件,或在適當(dāng)時以其組合 來實現(xiàn)。因此,本發(fā)明的方法和裝置或其某些方面或部分,可以采用包含在有 形介質(zhì)中的程序代碼(即,指令)的形式,有形介質(zhì)諸如軟盤、CD-ROM、硬 盤驅(qū)動器或任何其它機器可讀存儲介質(zhì),其中,當(dāng)程序代碼被加載至諸如計算 機等機器并由其運行時,該機器成為用于實現(xiàn)本發(fā)明的裝置。 盡管已結(jié)合各個附圖的優(yōu)選實施例對本發(fā)明的各方面進行了 描述,但是可以理解,可以使用其它類似的實施例,并且可以對所述實施例進 行修改或添加,來實現(xiàn)本發(fā)明的相同功能而不背離本發(fā)明。此外,應(yīng)當(dāng)強調(diào), 可構(gòu)想包括手持式設(shè)備操作系統(tǒng)以及其他專用操作系統(tǒng)的各種計算機平臺,尤 其當(dāng)無線聯(lián)網(wǎng)設(shè)備的數(shù)量繼續(xù)增長時。因此,所要求保護的發(fā)明不應(yīng)限于任何 單個實施例,而是應(yīng)該根據(jù)所附權(quán)利要求書的寬度和范圍來解釋。
權(quán)利要求
1.一種由附連的設(shè)備選擇數(shù)據(jù)傳輸協(xié)議的方法,所述方法包括檢測設(shè)備到主計算機的物理附連,所述設(shè)備能夠使用至少兩種數(shù)據(jù)傳輸協(xié)議;嘗試由所述設(shè)備使用第一數(shù)據(jù)傳輸協(xié)議,所述第一數(shù)據(jù)傳輸協(xié)議包括初始嘗試協(xié)議;當(dāng)所述第一數(shù)據(jù)傳輸協(xié)議無法啟動與所述主計算機的通信時,邏輯上斷開所述設(shè)備而后邏輯上重新連接所述設(shè)備;嘗試由所述設(shè)備使用第二數(shù)據(jù)傳輸協(xié)議,其中所述第二數(shù)據(jù)傳輸協(xié)議是啟動與所述主計算機的通信的成功協(xié)議;以及存儲所述成功協(xié)議的指示符,其中所述指示符在所述設(shè)備隨后物理附連到主計算機時使用以便選擇初始嘗試協(xié)議。
2. 如權(quán)利要求1所述的方法,其特征在于,存儲所述成功協(xié)議的指示符包 括設(shè)置成功標(biāo)志,其中所述成功標(biāo)志指示用來啟動與主計算機的通信的上一次 成功協(xié)議。
3. 如權(quán)利要求2所述的方法,其特征在于,所述成功標(biāo)志指示USB大容 量存儲類(MSC)協(xié)議或者USB媒體傳輸協(xié)議(MTP)中的任一個。
4. 如權(quán)利要求3所述的方法,其特征在于,還包括 測試索引標(biāo)志以確定當(dāng)所述設(shè)備使用所述MSC協(xié)議來操作時是否執(zhí)行了對存儲器的寫入。
5. 如權(quán)利要求4所述的方法,其特征在于,還包括 更新與所述索引標(biāo)志相關(guān)聯(lián)的存儲器區(qū)域的索引,其中所述索引在所述設(shè)備使用所述MTP協(xié)議被成功地連接到主計算機時是有用的。
6. 如權(quán)利要求1所述的方法,其特征在于,還包括 感測所述設(shè)備從所述主計算機的物理斷開連接; 檢測所述設(shè)備到主計算機的隨后的物理附連;如果沒有超過預(yù)定計數(shù),則嘗試使用由所述指示符標(biāo)識的所述成功協(xié)議;以及如果超過了所述預(yù)定計數(shù),則嘗試使用替換協(xié)議而不是由所述指示符標(biāo)識 的所述成功協(xié)議以建立與主計算機的通信。
7. 如權(quán)利要求6所述的方法,其特征在于,所述替換協(xié)議是優(yōu)選協(xié)議,并 且其中所述方法還包括如果所述優(yōu)選協(xié)議被成功地用來啟動與主計算機的聯(lián)系,則更新所述成功 協(xié)議的指示符以指示所述優(yōu)選協(xié)議。
8. 如權(quán)利要求7所述的方法,其特征在于,所述優(yōu)選協(xié)議是MTP協(xié)議。
9. 如權(quán)利要求6所述的方法,其特征在于,所述計數(shù)是所述設(shè)備遇到的到 任何主計算機的物理附連的次數(shù)的指示。
10. —種用于自動選擇至少兩種協(xié)議中的一種的媒體存儲設(shè)備,所述存 儲設(shè)備包括用于連接到任何兼容的主計算機的物理接口;用于檢測所述設(shè)備與任何兼容的主計算機的附連和移除的插入和移除檢 測器;用于確定正用來啟動與連接的主計算機的通信的協(xié)議是否已經(jīng)失敗的協(xié) 議失敗檢測器;用于邏輯上模擬做出和斷開與所述連接的主計算機的通信的連接和斷開 仿真器;表示哪個協(xié)議上一次成功建立與任何兼容的主計算機的通信的成功指示 符;以及內(nèi)部控制邏輯,所述控制邏輯協(xié)調(diào)以下動作檢測所述設(shè)備到目標(biāo)主計算 機的附連、嘗試用于與所述目標(biāo)主計算機通信的初始協(xié)議、在所述協(xié)議失敗檢 測器指示所述初始協(xié)議無法啟動與所述目標(biāo)主計算機的通信的情況下邏輯上 斷開連接并重新連接到所述目標(biāo)主計算機、嘗試用于與所述目標(biāo)主計算機通信 的第二協(xié)議、以及設(shè)置所述成功指示符以記錄哪個協(xié)議成功地用于與所述目標(biāo) 主計算機的通信,其中所述成功指示符在所述設(shè)備隨后的物理附連時使用以選 擇數(shù)據(jù)協(xié)議。
11. 如權(quán)利要求10所述的媒體存儲設(shè)備,其特征在于,還包括用于存儲所述設(shè)備上的數(shù)字媒體的數(shù)據(jù)庫;以及各自都與所述數(shù)據(jù)庫的相應(yīng)的多個存儲區(qū)域相關(guān)聯(lián)的多個索引標(biāo)志,每個 索引標(biāo)志在被設(shè)置時指示存儲在所述相關(guān)聯(lián)的存儲區(qū)域中的數(shù)字媒體的索引 沒有被更新。
12. 如權(quán)利要求11所述的媒體存儲設(shè)備,其特征在于,所述至少兩種 協(xié)議包括USB大容量存儲設(shè)備(MSD)協(xié)議和USB媒體傳輸協(xié)議(MTP)。
13. 如權(quán)利要求12所述的媒體存儲設(shè)備,其特征在于,所存儲的數(shù)字 媒體的索引在所述設(shè)備使用所述媒體傳輸協(xié)議(MTP)來連接,并且先前的附 連使用在其中做出對所述數(shù)據(jù)庫的數(shù)字內(nèi)容寫入的所述大容量存儲類(MSC) 協(xié)議時被更新。
14. 如權(quán)利要求10所述的媒體存儲設(shè)備,其特征在于,還包括 與數(shù)據(jù)庫的存儲區(qū)域相關(guān)聯(lián)的寫入檢測器,其中所述寫入檢測器檢測對所述數(shù)據(jù)庫的存儲區(qū)域的寫入并且設(shè)置相關(guān)聯(lián)的索引標(biāo)志。
15. 如權(quán)利要求10所述的媒體存儲設(shè)備,其特征在于,所述物理接口 包括USB接口、火線接口、 WiFi接口、以太網(wǎng)接口、以及同步光纖網(wǎng)接口中 的一種。
16. 如權(quán)利要求10所述的媒體存儲設(shè)備,其特征在于,還包括 對做出到任何主計算機的物理連接的次數(shù)進行計數(shù)的連接計數(shù)器,所述計數(shù)器用于在所述計數(shù)超出預(yù)定值時強制所述設(shè)備嘗試使用所述媒體傳輸協(xié)議。
17. 如權(quán)利要求10所述的媒體存儲設(shè)備,其特征在于,還包括 對做出到任何主計算機的物理連接之間的時間量進行計數(shù)的時鐘計數(shù)器,所述計數(shù)器用于在所述計數(shù)超出預(yù)定值時強制所述設(shè)備嘗試使用所述媒體傳 輸協(xié)議。
18. —種具有用于包含數(shù)據(jù)庫的媒體存儲設(shè)備的控制器的指令的計算機可讀介質(zhì),所述媒體存儲設(shè)備執(zhí)行一種選擇協(xié)議的方法,所述方法包括檢測所述設(shè)備到主計算機的物理附連,所述設(shè)備能夠使用至少兩種數(shù)據(jù)傳輸協(xié)議,所述協(xié)議包括大容量存儲類(MSC)協(xié)議和媒體傳輸協(xié)議(MTP);嘗試由所述設(shè)備使用第一數(shù)據(jù)傳輸協(xié)議,所述第一數(shù)據(jù)傳輸協(xié)議包括初始 嘗試協(xié)議;當(dāng)所述第一數(shù)據(jù)傳輸協(xié)議無法啟動與所述主計算機的通信時,邏輯上斷開 所述設(shè)備而后邏輯上重新連接所述設(shè)備;嘗試由所述設(shè)備使用第二數(shù)據(jù)傳輸協(xié)議,其中所述第二數(shù)據(jù)傳輸協(xié)議是啟 動與所述主計算機的通信的成功協(xié)議;以及將成功標(biāo)志設(shè)置成所述成功協(xié)議的指示符,其中所述成功標(biāo)志在所述設(shè)備 隨后物理附連到主計算機時使用以便選擇初始嘗試協(xié)議。
19. 如權(quán)利要求18所述的計算機可讀介質(zhì),其特征在于,進一步的方 法還包括測試索引標(biāo)志以確定當(dāng)所述設(shè)備使用所述MSC協(xié)議來操作時是否執(zhí)行了 對存儲器的寫入,并且如果為真,則在使用所述MTP協(xié)議來操作時更新所述 數(shù)據(jù)庫上的數(shù)字媒體的索引。
20. 如權(quán)利要求18所述的計算機可讀介質(zhì),其特征在于,進一步的方 法還包括感測所述設(shè)備從所述主計算機的物理斷開連接; 檢測所述設(shè)備到主計算機的隨后的物理附連;如果沒有超過預(yù)定計數(shù),則嘗試使用由所述成功標(biāo)志標(biāo)識的所述成功協(xié) 議;以及如果超過了預(yù)定計數(shù),則嘗試使用所述MTP協(xié)議以建立與主計算機的通信。
全文摘要
一種自動地選擇通信協(xié)議來與主計算機交換信息的可移動存儲設(shè)備包括物理層接口、協(xié)議失敗檢測模塊、連接和斷開連接仿真器、插入和移除檢測器、以及內(nèi)部控制邏輯。內(nèi)部控制邏輯協(xié)調(diào)以下動作檢測設(shè)備到目標(biāo)主計算機的附連以及嘗試用于與該目標(biāo)主計算機進行通信的初始協(xié)議。如果協(xié)議失敗檢測器指示初始協(xié)議已經(jīng)失敗,則該邏輯還邏輯上斷開與目標(biāo)主計算機的連接并重新連接到它,并且嘗試第二協(xié)議來與該目標(biāo)主計算機進行通信。如果成功,則設(shè)備設(shè)置成功指示符以記錄哪個協(xié)議最后成功用于與目標(biāo)主計算機進行通信。該成功指示符隨后用于指示當(dāng)設(shè)備重新連接到主計算機時首先嘗試哪個協(xié)議。
文檔編號H04L29/06GK101589592SQ200780006696
公開日2009年11月25日 申請日期2007年1月20日 優(yōu)先權(quán)日2006年2月27日
發(fā)明者D·W·普羅克特 申請人:微軟公司