專利名稱:一種實現(xiàn)在usb從設備端直接訪問usb主設備端文件的方法
技術領域:
本發(fā)明涉及一種數(shù)據(jù)傳輸方法,尤其涉及一種利用在USB從設備端的存儲器中建立交換緩存區(qū)的方式來實現(xiàn)USB從設備對USB主設備直接訪問的方法。
背景技術:
隨著集成電路技術的發(fā)展,手持設備體積越來越小巧,功能越來越強大,像智能手機、PMP、PSP等很多設備具有數(shù)字音樂,數(shù)字視頻的多媒體播放功能,其存儲介質通常為外插Flash存儲卡或內置Flash內存顆粒,由于Flash價格昂貴,其容量都不大,通常在幾百兆,然而一部一個小時的影片轉成MP4格式就大約就需要400MB左右,其存儲器容量相對不足成為矛盾。與之相對應的是硬盤容量雖然大,可以存上百部影片,但是其體積卻偏大,不適合與手持設備做成一體,雖然有微硬盤,但容量也相應偏小。舉例來說明,同一時期512MB的SD卡的單價大約為三四百人民幣,而40GB的筆記本硬盤也只要四百多RMB,其單位容量價格比接近100倍。
解決這個矛盾的一種選擇是允許外擴硬盤平時使用手機、PMP、PSP的時候不用把硬盤那么大的東西拿在手里,其內置Flash卡只存儲最常用的數(shù)據(jù),如商務文件,音樂,拍照的照片,小游戲等,而將大量喜愛的影片和大文件放在隨身包里的移動硬盤里,當有閑暇機會的時候想要欣賞某部電影的時候,再從硬盤中選擇該文件導入手持設備的存儲器即可。這種方式顯然是可以接受的,因為我們經(jīng)常可以看到有人把手機別在腰上,而隨身包里還揣著一塊移動硬盤,即使是某一天不帶隨身包出門,也不影響手機的使用。硬盤的重量在背包里卻幾乎感覺不到,相對拿在手上而言,不會覺得不方便。問題在于,如何外擴硬盤呢?如果在手持播放器上都使用USB主控制器芯片的話,的確是可以直接支持外接移動硬盤,但是這會增加每一個手機的硬件成本,而并不是每一個人都有在手機上看電影的需求,在成本競爭如此激烈的今天,很多手機廠商和PMP廠商都選擇了僅支持USB從控制器,只能做“從設備”,不能直接外接硬盤。
雖然目前大量的智能手機,PMP,PSP可以播放視頻,但都是“USB從設備”,不能直接外擴USB移動硬盤。通常只能使用PC來備份或更新其數(shù)據(jù)。于是市面上出現(xiàn)了針對那些有擴充容量需求的用戶而推出的支持雙向傳輸?shù)臄?shù)碼伴侶的產(chǎn)品,這些數(shù)碼伴侶其實就是普通移動硬盤的增強版,除了可以在PC間倒數(shù)據(jù)以外,還支持無PC環(huán)境下備份數(shù)碼相機照片、拍照手機照片以及往PMP、PSP上拷貝影片等大文件的用途。這類雙向數(shù)碼伴侶又分為兩種,一種是插卡方式的,使用的時候必須把數(shù)碼相機、PMP、PSP的Flash存儲卡拔出,插在數(shù)碼伴侶上,然后在數(shù)碼伴侶的小的液晶屏上選擇文件,進行拷貝操作,其優(yōu)點是成本較便宜,問題在于拔插卡比較麻煩;另一種是USB OTG方式的,它沒有Flash存儲卡插槽,只有一個USB口,當與PC連接的時候數(shù)碼伴侶做“USB從設備”,當與數(shù)碼相機、PMP、PSP連接的時候數(shù)碼伴侶做“USB主設備”,其優(yōu)點是免卻了拔插卡的麻煩,但是在數(shù)碼伴侶上的小液晶屏上操作起來不方便的缺點仍然存在。
以上兩類數(shù)碼伴侶產(chǎn)品還存在一個共同的致命的弱點在于他們都是把硬盤中的文件完整拷貝到手持設備上,然后才能在手持設備上使用,這就要求手持設備本身的存儲卡的剩余空間必須足夠放得下整個大文件,例如要看一部影片大小為400MB,手持播放器上就必須得有大于400MB的剩余空間,很多智能手機很難滿足這個要求,即使是總的容量夠大,當其內部已經(jīng)有一些電影而要看下一部電影的時候,很多時候也必須要先刪除原來的影片,給后面的影片騰出空間,這都是非常麻煩的事情。當然對用戶來說最方便的操作方式還是在手持設備端操作,因為智能手機、PMP、PSP既然做到可以看影片,其屏一定都是真彩的大尺寸的LCD,按鍵操作起來也非常方便,加上用戶已經(jīng)習慣其操作方式,甚至很多是有觸摸屏的,更加方便。目前市面上的手機、PDA、數(shù)碼相機、PMP等的USB“從設備”一般都只能支持PC或數(shù)碼伴侶對它們自身存儲器的訪問,它們無法倒過來直接訪問PC或數(shù)碼伴侶的硬盤存儲器,所以發(fā)明一種可以實現(xiàn)“USB從設備”對“USB主設備”存儲器的“直接訪問”方法很有意義。
發(fā)明內容
本發(fā)明的目的是針對上述所提到的數(shù)碼伴侶使用不方便的問題,提供一種可實現(xiàn)在“USB從設備”端直接訪問“USB主設備”端文件的方法。
實現(xiàn)本發(fā)明的技術方案為一種實現(xiàn)在“USB從設備”端(下面簡稱“從設備”)直接訪問“USB主設備”端(下面簡稱“主設備”)文件的方法,包括以下步驟在“從設備”存儲器中建立交換緩存區(qū),讓操作者在“從設備”端操作;“從設備”端上層軟件把其對于“主設備”存儲器文件的訪問“請求”按一定的協(xié)議寫在自身存儲器的一個“請求”緩存區(qū)里(文件或特殊存儲扇區(qū));然后把存儲器的控制權交給“主設備”端,“主設備”端讀取“從設備”存儲器中的這個“請求”緩存區(qū),并執(zhí)行其“請求”,對于文件管理“請求”進行文件復制、移動、刪除等操作,對于文件“讀請求”把“主設備”端的文件塊復制到“從設備”端交換緩存區(qū)中的緩存塊,對于文件“寫請求”把“從設備”端交換緩存區(qū)中的緩存塊復制到“主設備”端的文件中;當“從設備”再一次獲得其存儲器控制權的時候,要訪問的文件已經(jīng)全部或部分在本身的存儲器里了,就可以實現(xiàn)對其進行讀寫訪問。
用戶在“USB從設備”端進行操作,對“USB主設備”端(或稱OTG端)的存儲器進行文件訪問;“包括但不限于”瀏覽分區(qū)信息、瀏覽文件名或目錄結構、打開文件/目錄、讀文件、寫文件、關閉文件、復制文件/目錄、移動文件/目錄、刪除文件/目錄、復制文件的某一部分、或者對主引導區(qū)、引導區(qū)、FAT表、扇區(qū)讀寫等操作的一種或多種的組合。
本發(fā)明只需要在“USB從設備”端存儲器中建立交換緩存區(qū),在“USB從設備”端上層應用程序中把對“USB主設備”端文件訪問的“請求”以文件或特殊存儲塊的形式記錄在交換緩存區(qū)中;在“USB主設備”端解析“從設備”端的“請求”,并執(zhí)行相應操作。對于“USB主設備”端文件塊的訪問,是把文件塊復制到“USB從設備”端的交換緩存區(qū)(文件或特殊存儲扇區(qū))中,然后再進行訪問。這樣USB從設備端對USB主設備端的文件訪問全部轉化為對自身存儲器文件或交換緩存區(qū)的訪問。
本發(fā)明的優(yōu)點(1)本發(fā)明方法不需要在“主設備”端(數(shù)碼伴侶端)進行任何操作,而在“從設備”端(智能手機、MP4、PMP、PSP端)就可以“直接訪問”“主設備”端文件,非常方便;(2)此外,不需要把幾百兆文件全部復制過來再使用,可以要使用哪部分就復制哪部分,即使手持設備存儲器總容量小于文件大小或者剩余空間不足,也可以訪問大文件,甚至對于處理器速度足夠快的設備,可以達到一邊播放影片,一邊復制影片后續(xù)的部分,在整個影片播放過程中間沒有停頓,對用戶來說與播放自身存儲卡中的影片感覺完全一樣;(3)本發(fā)明的第三個好處是允許手持播放器以低成本和省電的方式擴展可直接訪問的外接硬盤目前有些MP4和PMP為了既不增加硬盤成本又能保持可播放外接硬盤視頻的可擴展性,采取了自帶USB Host芯片的方式,可是為了省電還要帶USB Host 2.0High Speed的芯片才行,否則傳輸過慢,硬盤費電,硬盤瞬間電流可達700mA~1A,一會兒就沒電了,但是真正的USB Host 2.0 OTG芯片的成本大約是USB Device 2.0芯片的6~10倍,本發(fā)明的方法允許手持播放器端只要用USB Device芯片就可以了,大大降低了手持播放器的硬件成本,而且大緩存的方式也可以讓硬盤不用一直保持旋轉,以1Mbps碼率的視頻來說大約1分鐘的播放只需要10秒傳輸時間,讓電池使用時間延長5倍以上。
圖1是本發(fā)明實施例的硬件框圖;圖2是本發(fā)明實施例的軟件系統(tǒng)框架與數(shù)據(jù)流圖;圖3是本發(fā)明實施例的USB從設備端資源管理器軟件流程圖;圖4是本發(fā)明實施例的USB從設備端以順序讀為主要應用的軟件流程圖;圖5是本發(fā)明實施例的USB從設備端以順序寫為主要應用的軟件流程6是本發(fā)明實施例的USB主設備端(數(shù)碼伴侶端)軟件流程圖。
具體實施例方式
下面根據(jù)附圖和實施例對本發(fā)明作進一步詳細說明。
如圖1所示,表示典型的USB主設備端(數(shù)碼伴侶端)與諸如手機、PDA、PMP、數(shù)碼相機等USB從設備的連接方式。數(shù)碼伴侶工作的時候USB Host/OTGController/MCU將手機/PDA/PMP/數(shù)碼相機統(tǒng)一識別為一個UMS(USB MassStorage Class)或PTP存儲設備,然后將硬盤中的文件與“USB從設備”中的文件相互交換。本發(fā)明的方法不需要改動這種硬件結構,而僅僅只是通過讓USBHost/OTG Controller/MCU由主要控制者變?yōu)閺目刂普?,而讓USB從設備端的主功能芯片成為主控者。
如圖2所示,表示整個軟件系統(tǒng)框圖和數(shù)據(jù)流圖,包括USB從設備端建立“硬盤文件緩存系統(tǒng)層”;交換緩存區(qū)中細分為配制文件、請求文件、硬盤索引文件、緩存塊文件;文件讀寫示意,文件復制、移動及刪除操作示意等。
如圖3所示,表示USB從設備端資源管理器軟件流程圖,首先在“USB從設備”端(手機/PDA/MP4/PMP)實現(xiàn)最基本的數(shù)碼伴侶功能,也就是要利用這些設備的大屏幕來顯示文件、目錄、操作菜單等,利用它們方便的按鍵或觸摸屏來進行操作,代替?zhèn)鹘y(tǒng)的在數(shù)碼伴侶端小屏幕上操作的方式。所以首先要在“USB從設備”端寫一個類似于PC Windows上的資源管理器的軟件界面,用于顯示硬盤和本地存儲器的各文件目錄,提供文件瀏覽、復制、刪除、打開等基本操作。這個軟件可叫做“硬盤資源管理器”或者“數(shù)碼伴侶管理器”之類的名字。實現(xiàn)這個“硬盤資源管理器”的關鍵在于在USB從設備端的存儲器中建立一個“請求”文件,把各操作“請求”按照一定的協(xié)議寫在這個“請求”文件中,然后打開USB連接,等待數(shù)碼伴侶端按照這個“請求”清單執(zhí)行,等到檢測到數(shù)碼伴侶端執(zhí)行完各“請求”之后的“關閉USB連接事件”(Suspend USBBus),即完成了一次傳輸。
如圖4所示,表示本發(fā)明實施例的USB從設備端以順序讀為主要應用的軟件流程圖。除了“硬盤資源管理器”實現(xiàn)文件管理操作上的方便性以外,另一個最能體現(xiàn)直接訪問優(yōu)勢的應用就是直接播放硬盤上的視頻文件了,還有MP3音樂播放器,照片瀏覽器,文字閱讀器等的應用雖然沒有那么迫切,但是用于文件復制前的預覽也是很有用的。以上這些軟件的共同特征就是他們主要的操作就是順序讀,或者以順序讀為主要方式,隨機讀為次要方式,沒有寫操作。本發(fā)明方法利用“USB從設備”端存儲器為交換媒介優(yōu)點一是兼容性好,不用改原來的硬件和底層驅動程序就可以實現(xiàn),優(yōu)點二是避免硬盤一直旋轉,可以省電,但是反應速度慢,其從操作命令發(fā)出到完成的時間需要幾秒到幾十秒之長,所以要在那么長的讀取延時環(huán)境下實現(xiàn)視頻的連續(xù)不間斷播放,是需要用比較好的算法來進行大緩存預讀。以視頻播放為例,一般來說,一個視頻文件可能由幾個通道組成一個視頻通道、兩個音頻通道、一個索引區(qū)等。剛開始播放器會去打開索引區(qū),然后根據(jù)索引區(qū)打開各視頻音頻通道,之后就開始順序讀取各通道數(shù)據(jù)進行播放,區(qū)別在于視頻通道讀得快,音頻通道讀得慢。我們要想播放器一旦啟動就不用停下來等待讀取數(shù)據(jù),則必須要根據(jù)各通道讀取速度進行預讀,始終保持要播放的內容已經(jīng)在本地存儲器中。但是,如果我們要仔細分析每一個視頻播放器的流程,每一種視頻格式的規(guī)范,然后把讀取文件的提前量寫入播放器程序的每一個過程,那工作量就太大了,所以我們只能實現(xiàn)一個智能判斷各文件讀取速度而做出預讀計算的“硬盤文件緩存系統(tǒng)”層。要簡單快捷的插入一個“硬盤文件緩存系統(tǒng)”層,最簡單的方法就是把所有文件操作函數(shù)重定向到該層,然后對于本地文件操作,調用對應的文件操作函數(shù)即可,對于硬盤文件操作,進行預讀、傳輸、然后從緩存中讀取數(shù)據(jù)塊返回上層應用程序。以C語言視頻播放器為例,在所有源文件的頭文件最前面插入以下重定向宏定義#define fopen bufferSystem_fopen#define fclose bufferSystem_fclose#define fread bufferSystem_fread#define fwrite bufferSystem_fwrite#define fget bufferSystem_fget#define fput bufferSystem_fput#define fseek bufferSystem_fseek然后重寫各文件操作函數(shù),如果是本地文件操作,則調用本地文件操作函數(shù),如果是硬盤文件操作,則采用預讀的算法提前從硬盤傳輸?shù)奖镜卮鎯ζ骶彺鎱^(qū),從緩存中讀取數(shù)據(jù)塊返回上層應用程序,以下是其中兩個函數(shù)的例子FILE*bufferSystem_fopen(const char*file,const char*flags){…if(isFilePathLocal(file)==TRUE)return fopen(file,flags);
else{return hardisk_fopen(file,flags);//在這里返回一個內部管理文件句柄,并記下該文件句柄,以后凡是使用該句柄的文件讀操作都要受預讀算法管理。
}}int bufferSystem_fread(unsigned char*buf,int size,int count,FILE*fd){…if(isTheFileLocal(fd)==TRUE)return fread(buf,size,count,fd);
else{return hardisk_fread(buf,size,count,fd);//采用預讀的算法提前從硬盤傳輸?shù)奖镜卮鎯ζ骶彺鎱^(qū),從緩存中讀取數(shù)據(jù)塊返回上層應用程序}}……其他函數(shù)都是類似的結構,這里不再累述,下面著重分析一下算法核心的部分,就是預讀算法。
預讀的難點在于預讀時間提前量的計算,下面就各相關因素進行分析1、總緩存區(qū)大小緩存區(qū)開得越大,就能緩存越多的數(shù)據(jù),提高緩存命中率(當某一次讀取文件數(shù)據(jù)的時候如果數(shù)據(jù)已經(jīng)預讀到緩存區(qū)了,我們稱“緩存命中”,如果文件還在硬盤,需要立即讀取,造成應用程序的等待,我們稱“緩存未命中”),還能減少傳輸次數(shù),減少硬盤啟動次數(shù),讓系統(tǒng)省電。但是,緩存區(qū)也不能無限制開大,因為直接訪問的優(yōu)點之一,就是要在“USB從設備端”存儲器空間有限的情況下訪問大文件,緩存區(qū)占用空間越小,給其他應用留的空間就越多。再說很多數(shù)碼相機、手機、MP4隨機贈送的卡只有16MB或32MB,要想在這些卡上就能使用的話,更要控制緩存區(qū)大小,所以我們還是要控制緩存區(qū)大小,盡量不要超過16MB。
2、單個緩存塊大小/緩存塊個數(shù)在總的緩存區(qū)大小確定的情況下,單個緩存塊個數(shù)越少,即單個緩存塊越大,傳輸次數(shù)就越少,優(yōu)點是硬盤啟動次數(shù)減少,系統(tǒng)省電,但是缺點是不夠靈活,當同時有多個通道分別在文件不同位置順序讀寫時(例如一個視頻通道從文件頭開始讀,兩個音頻通道從文件中部開始讀),就會造成緩存頻繁切換的抖動,所以必須要有足夠多的緩存區(qū)。一個均衡的方法是,單個緩存塊的大小小一些,但是根據(jù)一個通道讀取的速度來決定單次傳輸緩存塊的個數(shù),即讀得快的通道一次多傳幾個緩存塊,讀得慢的通道一次少傳幾個緩存塊。一般來說,視頻碼率如果是1Mbps的話,1分鐘數(shù)據(jù)量為60s×1Mb/s=60Mb=8MB,音頻碼率如果是64Kbps的話,雙通道1分鐘數(shù)據(jù)量為2×60s×64Kb/s=7.5Mb=1MB,以1MB為單個緩存塊大小的話,音頻占一個,視頻占8個,1分鐘啟動一次傳輸,傳輸時間大約要10秒。這樣的話,開15MB的總緩存區(qū),分為15個1MB的緩存塊。實際上還可以根據(jù)各手持播放器所支持視頻碼率的實際情況進行調整。
3、預讀的時機預讀的時機是根據(jù)實際讀取的速度來計算提前量的,比如要1分鐘進行一次傳輸,已知1Mbps的視頻通道與兩個64Kbps的音頻通道,一分鐘的數(shù)據(jù)量分別是8MB和1MB,傳輸時間10秒,則提前30秒開始傳輸應該來得及,30秒時剩余未播放數(shù)據(jù)4.5MB,總緩存區(qū)15MB,正好可以空出10MB來給下一分鐘放緩存數(shù)據(jù)。實際上還可以根據(jù)各手持播放器所支持視頻碼率的實際情況進行調整。
4、初次傳輸與啟動時間預讀的一個問題是剛開始播放的時候的第一次傳輸,沒有讀取歷史速度的依據(jù),甚至連文件頭都沒有,只有一個文件名和文件大小可以參考,該如何選擇初始傳輸?shù)拇笮∧??要想盡可能快的開始播放,則要盡可能少的傳輸,然而如果傳輸過少,萬一遇上是大碼流的視頻文件,則會發(fā)生開始播放以后沒多久就停頓,等待第二次傳輸?shù)耐瓿桑@是一個矛盾。幸運的是,一般手持多媒體播放器所能支持的最高碼流都是一定的,并不會經(jīng)常變化,而我們的直接訪問技術對播放器也都需要單獨開發(fā)和調試,并不是一個一般的播放器要支持所有機型,所以可以根據(jù)實際硬件性能來調試定制初始的兩次傳輸?shù)拇笮?,只要對最高碼率的視頻調試出一個在不會造成播放后停頓的最短啟動時間,就可以了。一般來說,1MB的緩存塊,1MBps的碼率,第一次傳輸一個緩存塊,第二次預讀5~8個緩存塊,以后根據(jù)實際讀取的速度來計算,是沒有問題的。
以下是流程主要部分在各種情況下的走向
第一次讀/立即讀/遇突然讀取速度變快而讀取未命中1-->2-->4-->5-->6-->7-->8-等待->9-->10-->1第二次讀/正常預讀1-->2-->4-->11-->12-->13-->14-->10-->1大部分情況下讀取命中(數(shù)據(jù)已在緩存區(qū))1-->2-->4-->11-->12-->10-->1或1-->2-->4-->11-->10-->1正常預讀完成1-->2-->3-->4-->11-->12-->10-->1預讀傳輸過程中遇突然讀取速度變快而讀取未命中1-->2-->4-->5-->15-等待->16-->4-->11-->12-->13-->14-->10-->1或發(fā)生更慘的情況(上次預讀的還不夠本次讀取,等待兩次)1-->2-->4-->5-->15-等待->16-->4-->5-->6-->7-->8-等待->9-->10-->1圖5是本發(fā)明實施例的USB從設備端以順序寫為主要應用的軟件流程圖。盡管直接訪問的大部分應用是以順序讀為主要應用的各種播放器,順序寫也是有其應用面的,例如視頻錄像機軟件,錄音機軟件等,也可以利用直接訪問技術來把長時間錄像直接寫在數(shù)碼伴侶硬盤上。這類軟件基本上是以順序寫為主要操作。與“預讀”相對應的,我們稱之為“后寫”操作,意即先寫在本地存儲器緩存區(qū),等積累到一定大小之后,再寫到硬盤。同樣,后寫操作也要靠“硬盤文件緩存系統(tǒng)”層來實現(xiàn)。其核心是后寫的時間估計算法。
緩存區(qū)大小和分塊方法同預讀算法。這里分析一下后寫的時機后寫時機估計比預讀要簡單,因為預讀的前幾次傳輸既沒有計算依據(jù),又要盡可能縮短啟動時間,而后寫基本上不存在這些問題。可以簡單的等緩存區(qū)半滿的時候,幾個通道的寫速度都均衡了以后,再開始寫。而且一般來說只要總緩存區(qū)夠大,不會發(fā)生堵住等待的情況。最后關閉文件的時候再把剩下緩存塊的全部寫入硬盤就可以了。
以下是流程主要部分在各種情況下的走向寫緩存命中(有空緩存區(qū))1-->2-->4-->6-->7-->8-->10-->1正常后寫1-->2-->4-->6-->7-->8-->9-->10-->1
正常后寫完成1-->2-->3-->4-->6-->7-->8-->10-->1遇寫速度突然變快而寫緩存未命中(無空緩存區(qū))1-->2-->4-->11-->12-->13-等待->14-->15-->10-->1后寫傳輸過程中遇寫速度突然變快而寫緩存未命中1-->2-->4-->11-->16-等待->17-->4-->6-->7-->8-->9-->10-->1或者發(fā)生更慘的情況(上次后寫的騰出的空緩存區(qū)還不夠本次寫,等待兩次,一般來說不會發(fā)生這種情況)1-->2-->4-->11-->16-等待->17-->4-->11-->12-->13-等待->14-->15-->10-->1如圖6所示,表示數(shù)碼伴侶端軟件流程圖。數(shù)碼伴侶端的任務是執(zhí)行“USB從設備”端寫在“請求”文件中的各命令,跟普通雙向OTG數(shù)碼伴侶的區(qū)別僅在于發(fā)命令的源不一樣,普通雙向OTG數(shù)碼伴侶是由用戶在數(shù)碼伴侶端操作按鍵,選擇菜單的方式發(fā)命令,直接訪問方式的數(shù)碼伴侶需要根據(jù)“USB從設備”端寫在“請求”文件中的命令來執(zhí)行。
配置文件規(guī)范PC安裝軟件的時候在手持播放器根目錄中寫入本配置文件,文件名為“WitDADTM.ini”(Witchain Direct Accessible Digital Tour Mate的縮寫),數(shù)碼伴侶按照本配置文件進行操作。
硬盤索引文件規(guī)范數(shù)碼伴侶向手持播放器的存儲卡中寫入一些表示硬盤中文件目錄的索引文件,由兩部分組成,一部分是硬盤主引導分區(qū)和各分區(qū)(或邏輯盤)引導記錄,都是512字節(jié),這部分默認情況下位于手持播放器工作目錄下叫HDIndex.dat文件。
另一部分是目錄表,從根目錄開始,每一個目錄作為一個文件,位于手持播放器工作目錄下,文件名是首簇號,內容對應硬盤上一個目錄表的內容,由手持播放器負責解析這些目錄表內容。
“請求”文件規(guī)范
命令定義1、命令MBRDPT代號0x01功能請求硬盤分區(qū)信息參數(shù)
2、命令1s功能請求數(shù)碼伴侶列硬盤某文件夾下的文件目錄代號0x10參數(shù)
3、命令cp功能請求數(shù)碼伴侶進行復制文件或文件夾操作代號0x20參數(shù)
4、命令rm功能請求數(shù)碼伴侶進行刪除文件或文件夾操作代號0x30參數(shù)
5、命令mv功能請求數(shù)碼伴侶進行移動文件或文件夾操作代號0x40參數(shù)
6、命令partial copy file功能請求數(shù)碼伴侶進行“部分復制”文件操作,生成新文件。
代號0x50參數(shù)
7、命令copy file to cache功能請求“部分復制”硬盤文件到手持播放器存儲器緩存區(qū)文件代號0x51參數(shù)
8、命令copy cache to file功能請求“部分復制”手持播放器存儲器緩存區(qū)數(shù)據(jù)塊到硬盤文件代號0x52參數(shù)
9、命令append cache to file功能請求“追加復制”手持播放器存儲器緩存區(qū)數(shù)據(jù)塊到硬盤文件末尾,用于最后的非整簇數(shù)據(jù)復制代號0x53參數(shù)
10、命令Power Control功能控制數(shù)碼伴侶電源代號0x02參數(shù)
錯誤代碼0未執(zhí)行;1執(zhí)行成功;2該命令未定義,可能是版本的原因;3參數(shù)越界;4空間不足;5源文件不存在;6目的文件不存在本發(fā)明的實施例中雖然規(guī)定一種交換緩存區(qū)、“請求”文件、配制文件的協(xié)議規(guī)范,但該規(guī)范僅僅是該發(fā)明方法的一個具體實現(xiàn),在不脫離本發(fā)明范圍和實質特點的情況下,采用其他任何形式的交換緩存區(qū)、“請求”緩沖區(qū)(文件或特殊存儲扇區(qū))協(xié)議規(guī)范,都在本發(fā)明權利要求的保護范圍內。
權利要求
1.一種實現(xiàn)在USB從設備端直接訪問USB主設備端文件的方法,其特征在于包括以下步驟在USB從設備端存儲器中建立交換緩存區(qū);USB從設備端上層軟件把其對于USB主設備端存儲器文件的訪問“請求”寫在自身存儲器的一個“請求”緩存區(qū)里;USB主設備端讀取USB從設備端存儲器中的這個“請求”緩存區(qū),并執(zhí)行其“請求”,進行文件復制、移動或刪除操作或把USB主設備端的文件塊與USB從設備端交換緩存區(qū)中的緩存塊進行交換;USB從設備端直接讀寫訪問自身存儲器文件或交換緩存區(qū)。
2.如權利要求1所述的實現(xiàn)在USB從設備端直接訪問USB主設備端文件的方法,其特征在于所述USB從設備端對USB主設備端存儲器進行文件訪問,包括但不限于以下一種或多種操作的組合瀏覽分區(qū)信息、瀏覽文件名或目錄結構、打開文件/目錄、讀文件、寫文件、關閉文件、復制文件/目錄、移動文件/目錄、刪除文件/目錄、復制文件的一部分、或者對主引導區(qū)、引導區(qū)、FAT表、扇區(qū)讀寫。
3.如權利要求1所述的實現(xiàn)在USB從設備端直接訪問USB主設備端文件的方法,其特征在于在USB從設備端上層應用程序中把對USB主設備端文件訪問的“請求”以文件或特殊存儲塊的形式記錄在自身 存儲器的交換緩存區(qū)中。
全文摘要
本發(fā)明涉及一種實現(xiàn)在USB從設備端直接訪問USB主設備端文件的方法,包括以下步驟在USB從設備端存儲器中建立交換緩存區(qū);USB從設備端上層軟件把對USB主設備端存儲器文件的訪問“請求”寫在自身存儲器的一個“請求”緩存區(qū)里;USB主設備讀取USB從設備端存儲器中“請求”緩存區(qū),并執(zhí)行“請求”,進行文件復制、移動、刪除等操作或把USB主設備端文件塊與USB從設備端交換緩存區(qū)中緩存塊交換;USB從設備端可直接讀寫訪問自身存儲器文件或交換緩存區(qū)。本發(fā)明有益效果可在USB從設備端直接訪問主設備端文件,不需要把幾百兆的文件全部復制過來再使用,可訪問遠大于自身存儲器剩余空間的大文件;允許手持播放器以低成本和省電的方式擴展可直接訪問外接硬盤。
文檔編號G06F13/38GK1858748SQ20061008113
公開日2006年11月8日 申請日期2006年5月22日 優(yōu)先權日2006年5月22日
發(fā)明者張志 申請人:上海懷瑾計算機科技有限公司