免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
U盤工作原理概要

一、U盤基本工作原理

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

當(dāng)一個USB設(shè)備插入主機(jī)時,由于USB設(shè)備硬件本身的原因,它會使USB總線的數(shù)據(jù)信號線的電平發(fā)生變化,而主機(jī)會經(jīng)常掃描USB總線。當(dāng)發(fā)現(xiàn)電平有變化時,它即知道有設(shè)備插入。

當(dāng)USB設(shè)備剛插入主機(jī)時,USB設(shè)備它本身會初始化,并認(rèn)為地址是0。也就是沒有分配地址,這有點象剛進(jìn)校的大學(xué)生沒有學(xué)號一樣。

正如有一個陌生人闖入時我們會問“你是什么人”一樣,當(dāng)一個USB設(shè)備插入主機(jī)時,,它也會問:“你是什么設(shè)備”。并接著會問,你使用什么通信協(xié)議等等。當(dāng)這一些信息都被主機(jī)知道后,主機(jī)與USB設(shè)備之間就可以根據(jù)它們之間的約定進(jìn)行通信。

USB的這些信息是通過描述符實現(xiàn)的,USB描述符主要包括:設(shè)備描述符,配置描述符,

接口描述符,端點描述符等。當(dāng)一個U盤括入主機(jī)時,你立即會發(fā)現(xiàn)你的資源管理器里多了一個可移動磁盤,在Win2000下你還可以進(jìn)一步從主機(jī)上知道它是愛國者或是朗科的。這里就有兩個問題,首先主機(jī)為什么知道插入的是移動磁盤,而不是鍵盤或打印機(jī)等等呢?另外在Win2000下為什么還知道是哪個公司生產(chǎn)的呢?其實這很簡單,當(dāng)USB設(shè)備插入主機(jī)時,主機(jī)首先就會要求對方把它的設(shè)備描述符傳回來,這些設(shè)備描述符中就包含了設(shè)備類型及制造商信息。又如傳輸所采用的協(xié)議是由接口描述符確定,而傳輸?shù)姆绞絼t包含在端點描述符中。

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

U盤應(yīng)屬于海量存儲類。

USB海量存儲設(shè)備又包括通用海量存儲子類,CDROM,Tape等,U盤實際上屬于海量存儲類中通用海量存儲子類。通用海量存儲設(shè)備實現(xiàn)上是基于塊/扇區(qū)存儲的設(shè)備。

USB組織定義了海量存儲設(shè)備類的規(guī)范,這個類規(guī)范包括4個獨(dú)立的子類規(guī)范。主要是指USB總線上的傳輸方法與存儲介質(zhì)的操作命令。

海量存儲設(shè)備只支持一個接口,即數(shù)據(jù)接口,此接口有三個端點Bulk input ,Bulk output,中斷端點

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

 

 

                                                                                          

二、 Bulk-Only傳輸協(xié)議

       當(dāng)一個U盤插入主機(jī)以后,主機(jī)會要求USB設(shè)備傳回它們的描述符,當(dāng)主機(jī)得到這些描述符后,即完成了設(shè)備的配置。識別出USB設(shè)備是一個支持Bulk-Only傳輸協(xié)議的海量存儲設(shè)備。這時應(yīng)可進(jìn)行Bulk-Only傳輸方式。在此方式下USB與設(shè)備之間的數(shù)據(jù)傳輸都是通過Bulk-InBulk-Out來實現(xiàn)的。

 

 

 

 

 

 

 

在這種傳輸方式下,有三種類型數(shù)據(jù)在USB和設(shè)備傳送,它們是命令塊包(CBW),命令執(zhí)行狀態(tài)包(CSW)和普通數(shù)據(jù)包。CBW是主機(jī)發(fā)往設(shè)備的命令。格式如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


其中dCBWSignature的值為43425355h,表示當(dāng)前發(fā)送的是一個CBW。

DCBWTag:以后再講。

DCBWDataTransferLength:表示這次CBW要傳送數(shù)據(jù)長度。

BmCBWFlags:表示本次CBW是讀數(shù)據(jù)還是寫數(shù)所

BBWCBLength:表示命令的長度。

CBWCB:表示本次命令內(nèi)容。也即是SCSI命令。

當(dāng)設(shè)備從主機(jī)收到CBW塊以后,它會把SCSI命令從CBW中分離出來,然后根據(jù)要求執(zhí)行,執(zhí)行的結(jié)果又以CSW的形式發(fā)給主機(jī)。

CSW的格式如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


其中dCSWSignature的值為53425355h,表示當(dāng)前發(fā)送的是一個CSW。

DCSWTag:必須和CBWdCBWTag一樣。

DCSWDataResidue:還要傳送的數(shù)據(jù)。

BCSWStatue:命令執(zhí)行狀態(tài),命令正確執(zhí)行時,為0。

 

 

 

 

三、 SCSI命令集

      

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Operation Code:SCSI命令操作代碼。

Logical Block Address:邏輯塊地址,對U盤而言應(yīng)是扇區(qū)。前面已經(jīng)講過:通用海量存儲設(shè)備是一個基于塊/扇區(qū)存儲的設(shè)備,因此在SCSI中要提供這個參數(shù)是很顯然的。

transfer length:為要傳送的扇區(qū)數(shù)

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

INQUIRY:其操作碼為12H

Test Unit Ready:其操作碼為00H

Format Unit:其操作碼為04H

.......

這里以INQUIRY命令為例:

INQUIRY命令描述符如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


INQUIRY的結(jié)果是

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


至于其他SCSI命令,請用戶查閱相關(guān)文檔。

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
USB固件開發(fā)總結(jié)(四)
STM32 USB Mass Storage 例程調(diào)試筆記
ISP1161驅(qū)動開發(fā)
U盤實現(xiàn)流程跟蹤分析01
第一章主要硬件芯片介紹
U盤插入顯示“無法識別的USB設(shè)備”怎么辦?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服