當前位置:編程學習大全網 - 編程語言 - u盤怎麽保存文件的

u盤怎麽保存文件的

壹、U盤基本工作原理

通用串行總線(Universal serial Bus)是壹種快速靈活的接口,

當壹個USB設備插入主機時,由於USB設備硬件本身的原因,它會使USB總線的數據信號線的電平發生變化,而主機會經常掃描USB總線。當發現電平有變化時,它即知道有設備插入。

當USB設備剛插入主機時,USB設備它本身會初始化,並認為地址是0。也就是沒有分配地址,這有點象剛進校的大學生沒有學號壹樣。

正如有壹個陌生人闖入時我們會問“妳是什麽人”壹樣,當壹個USB設備插入主機時,,它也會問:“妳是什麽設備”。並接著會問,妳使用什麽通信協議等等。當這壹些信息都被主機知道後,主機與USB設備之間就可以根據它們之間的約定進行通信。

USB的這些信息是通過描述符實現的,USB描述符主要包括:設備描述符,配置描述符,

接口描述符,端點描述符等。當壹個U盤括入主機時,妳立即會發現妳的資源管理器裏多了壹個可移動磁盤,在Win2000下妳還可以進壹步從主機上知道它是愛國者或是朗科的。這裏就有兩個問題,首先主機為什麽知道插入的是移動磁盤,而不是鍵盤或打印機等等呢?另外在Win2000下為什麽還知道是哪個公司生產的呢?其實這很簡單,當USB設備插入主機時,主機首先就會要求對方把它的設備描述符傳回來,這些設備描述符中就包含了設備類型及制造商信息。又如傳輸所采用的協議是由接口描述符確定,而傳輸的方式則包含在端點描述符中。

USB設備分很多類:顯示類,通信設備類,音頻設備類,人機接口類,海量存儲類.特定類的設備又可分為若幹子類,每壹個設備可以有壹個或多個配置,配置用於定義設備的功能。配置是接口的集合,接口是指設備中哪些硬件與USB交換信息。每個與USB交換信息的硬件是壹個端點。因些,接口是端點的集合。

U盤應屬於海量存儲類。

USB海量存儲設備又包括通用海量存儲子類,CDROM,Tape等,U盤實際上屬於海量存儲類中通用海量存儲子類。通用海量存儲設備實現上是基於塊/扇區存儲的設備。

USB組織定義了海量存儲設備類的規範,這個類規範包括4個獨立的子類規範。主要是指USB總線上的傳輸方法與存儲介質的操作命令。

海量存儲設備只支持壹個接口,即數據接口,此接口有三個端點Bulk input ,Bulk output,中斷端點

這種設備的接口采用SCSI-2的直接存取設備協議,USB設備上的介質使用與SCSI-2以相同的邏輯塊方式尋址

二、 Bulk-Only傳輸協議

當壹個U盤插入主機以後,主機會要求USB設備傳回它們的描述符,當主機得到這些描述符後,即完成了設備的配置。識別出USB設備是壹個支持Bulk-Only傳輸協議的海量存儲設備。這時應可進行Bulk-Only傳輸方式。在此方式下USB與設備之間的數據傳輸都是通過Bulk-In和Bulk-Out來實現的。

在這種傳輸方式下,有三種類型數據在USB和設備傳送,它們是命令塊包(CBW),命令執行狀態包(CSW)和普通數據包。CBW是主機發往設備的命令。格式如下:

其中dCBWSignature的值為43425355h,表示當前發送的是壹個CBW。

DCBWTag:以後再講。

DCBWDataTransferLength:表示這次CBW要傳送數據長度。

BmCBWFlags:表示本次CBW是讀數據還是寫數所

BBWCBLength:表示命令的長度。

CBWCB:表示本次命令內容。也即是SCSI命令。

當設備從主機收到CBW塊以後,它會把SCSI命令從CBW中分離出來,然後根據要求執行,執行的結果又以CSW的形式發給主機。

CSW的格式如下:

其中dCSWSignature的值為53425355h,表示當前發送的是壹個CSW。

DCSWTag:必須和CBW中dCBWTag壹樣。

DCSWDataResidue:還要傳送的數據。

BCSWStatue:命令執行狀態,命令正確執行時,為0。

三、 SCSI命令集

在Bulk-Only的命令塊包(CBW)中,有壹段CBECB內容,它就是SCSI命令塊描述符。其內容如下

Operation Code:是SCSI命令操作代碼。

Logical Block Address:邏輯塊地址,對U盤而言應是扇區。前面已經講過:通用海量存儲設備是壹個基於塊/扇區存儲的設備,因此在SCSI中要提供這個參數是很顯然的。

transfer length:為要傳送的扇區數

SCSI中直接存取類型的存儲介質的傳輸命令有很多,如:

INQUIRY:其操作碼為12H

Test Unit Ready:其操作碼為00H

Format Unit:其操作碼為04H

.......

這裏以INQUIRY命令為例:

INQUIRY命令描述符如下:

INQUIRY的結果是

至於其他SCSI命令,請用戶查閱相關文檔。

  • 上一篇:副業大全,辭職在家也可以掙米的項目,堅持學習!
  • 下一篇:兒童動漫小故事
  • copyright 2024編程學習大全網