通化管道保温
USB Mass Storage中的BBB契约、SCSI契约的敕令块传输传输,
USB插拔数据1. 适度传输部分
二周->三、Bus Hound捏包学习->2. USB插拔数据->适度传输、2. 数据传输部分参考文档和辛勤
USB Mass Storage契约USB Mass Storage大容量存储的基本学问. 基础学问.1 联系契约
数据传输依托SCSI契约,传输CBW和CSW敕令块和数据块。
Host和Device间数据通讯契约是Bulk-only Transport。也称为BBB契约,这是与CBI对应的种说法。因为CBI是指Commond、Bulk和Interrupt。而对于Bulk-only所有的传输都是通过BULK EP完成。
USB Device里面和数据存储介质之间通讯契约为SCSI(Small Computer System Interface)。
USB 成立中的固件(firmware)约略硬件(hardware),须要结束底下这些: 检测和反应通用的USB Request和USB总线上的事件。 检测和反应来自USB成立的对于信息约略动作的USB Mass Storage Request。 检测和反应从USB Transfer中取得的SCSI Command。这些业界措施的敕令,是用来取得状态信息,适度成立操作,向存储介质块中读取(read block)和写入(write block)数据的。 image.png USB Mass Storage联系契约
USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport USB Mass Storage Class Bulk-Only (BBB) Transport USB Mass Storage Class Universal Floppy Interface (UFI) Command Specification USB Mass Storage Class Bootability Specification USB Mass Storage Class Compliance Test Specification USB Lockable Storage Devices Feature Specification (LSD FS) USB Mass Storage Class USB Attached SCSI Protocol (UASP)
U盘和PC之间的交互主要治疗以下几个契约:SCSI、BBB和UASP契约(提USB运用率,提传输速率后是UASP契约)。.2 IN和OUT事务传输
批量闇练分为IN和OUT,IN和OUT事务传输历程。image.pngimage.png.3 三种复返包:ACK(阐明)、NAK(未阐明)、STALL(不赞助的适度肯求)
**ACK(阐明):ACK(阐明) 示意主机和成立照旧收到数据,莫得出现失实。**成立须在Setup 事务的交换包中复返ACK,成立也须在OUT事务的交换中复返ACK。主机在IN事务的交换包中复返ACK。 **NAK(未阐明):NAK(未阐明) 示意成直立忙或没罕有据要复返。**若是主机在成立太忙而不成接管数据时发送数据,则成立在交换包中发出NAK。若是主机在成立没罕有据可发送时向成立肯求数据,则成立在数据包中发出NAK。在上述两种情况的任何种下,NAK示意个暂时的状态,而主契机在以后重试。 **STALL:不赞助的适度肯求,适度肯求失败或结尾失败。当个成立吸收到个结尾不赞助的适度传输肯求,那么这个成立复返个STALL 给主机。**成立在它赞助这个肯求可是由于某些原因不成罗致肯求的动作时,也会发出STALL给主机。STALL 的另个用途是在结尾暂停特诞生的情况下来反应传输肯求,示意结尾根底不成发送或吸收数据。轨范称这个类型的延伸为延伸。批量和中断结尾须赞助延伸。在吸收到个STALL后,主机住手所有与成立悬而未决的肯求,何况不会规复通讯直到它照旧发送个得手的肯求来捣毁成立的暂停特。主机不会发送STALL
3. SCSI敕令3. 基本见解
CBW(Command Block Wrapper):包含敕令块和联系信息的数据包 **CSW(Command Status Wrapper):**包含敕令块状态的数据包 **Data-In:**成立到主机的数据传输 **Data-Out:**主机到成立的数据传输 **Phase Error(相位裂缝):**从成立复返的处置后果,在成立复位之前后续的CBW是不确信的 Processed:吸收到数据,而且成立到主机端点的里面适度不再需要探讨 Relevant:发送到主机的数据是有敬爱的。 Reset Recovery:个失实规复历程,主机不错给成立准备好下个CBW。
3.1 Bulk-Only Mass Storage Reset (class-specific request)
用来重置大容量存储成立和联系接口,这个类肯求不错让成立准备好吸收CBW。bmRequestType为:类界说肯求,肯求为属接口,主机到成立。wIndex为联系接口数字image.png3.2 Get Max Lun
Get Max Lun肯求用来确信成立赞助的逻辑单位数目,数目从(h)到15(Fh)一语气,发送此肯求需要发送以下敕令:bmRequestType为:类界说肯求,肯求为属接口,成立到主机。image.png成立复返个字节的数据包含成立的逻辑单位数目,复返值为x,则成立有(x+1)个逻辑单位。3.3 主机/成立数据包传输礼貌
主机写(Data-Out)之前需要发送个CBW敕令。主机在读(Data-In)之前需要发送CBW敕令,读之后需要发送CSW敕令。主机不错在发送联系CBW之前进行读约略发送CSW敕令。3.4 Command Queuing(敕令队伍)
主机收到上个的CBW的CSW之前不成发送CSW。 主机一语气发送两个CBW通化管道保温,中间莫得复位和CSW的发送,成立对二个CBW的反应是不确信的。
3.5 Bi-Directional Command Protocol(双向敕令契约)
单个敕令中不成进行双向数据传输。3.6 SCSI在Mass Storage中常用辅导集
相应的回复在:image.png4. 描述字4.1 成立描述字、建立描述字->聚会4.2 接口描述字
接口描述字包含成立结束的和特的信息,含有类、子类和契约以及接口使用的端点数目。每个接口有我方的接口描述字和附庸描述字,每个接口含有个或多个接口诞生,同个接口的诞生都是互斥的,每次唯一个诞生被激活。(聚会《USB诱导大全》7-71页:详备字段内容先容)image.png4.3 端点描述字4.3.1 Control(适度传输)
除了端点外(梭有成立都赞助端点)每个端点有个端点描述字。成立描述字含有大信息包尺寸以及端点的一王人信息。端点描述字当作建立描述字的附庸描述字而被发送给主机。(聚会《USB诱导大全》71-73页)image.pngimage.pngimage.png4.3.2 Bulk-In端点
Bulk-In端点用于将数据和状态从成立发送到主机。image.png4.3.3 Bulk-Out端点
Bulk-Out端点用于将敕令和数据从主机发送至成立。image.png5. Bulk_Only数据传输历程(敕令、数据和状态传输历程)
image.png5.1 CBW(Command Block Wrapper)敕令块
CBW传输的字节数为31(1Fh)。按照小端智商(低地址存放字数据的低字节,地址存放字数据的字节,与之相背为大端智商)罗列。image.png
dCBWSignature:匡助识别为个CBW数据包,包含43425355h(小端) **dCBWTag:**主机发送的对个CBW块进行象征,成立需要在CSW的dCSWTag中将相应的内容反馈给主机,dCSWTag不错把CSW同CBW筹商起来。 dCBWDataTransferLength:主机盼望传输的数据长度。 bmCBWFlags: 界说数据的传输向,由bit7界说(:Data-Out,设备保温施工1:Data-In),其他比特默许为。 bCBWLUN::成立逻辑单位号(LUN)。对于赞助多个LUN的成立,主机把指向的LUN写在这个字段里,莫得指向则置。 bCBWCBLength:CBW的CB的有长度 CBWCB:成立实际的敕令块,这里是SCSI敕令,般是16字节。成立应将该字段中的个bCBWLength字节证明为由bInterfaceSubClass象征的敕令集界说的敕令块。若是成立赞助的敕令集使用的敕令块长度小于16 (1h)字节,则先传输有字节,从偏移量为15 (Fh)的字节开动。成立将忽略CBWCB字段的内容过偏移量(15 + bcbwclength - 1)的字节。
image.png5.2 CSW(Command Status Wrapper敕令传输状态包)
CSW传输13个字节的数据,按照小端智商,示意CBW传输状态(成立到主机)image.png
dCSWSignature:匡助识别此数据包为CSW的签名。签名字段须包含值53425355h(小端),示意CSW。 **dCSWTag:**和相应的CBW进行对应。 **dCSWDataResidue:**主机对成立进行数据写时,由于dCBWDataTransferLength中礼貌的预期数据量与成立骨子处置的数据量之间存在互异,成立应在dCSWDataResidue中讲明Data-Out的数据量。主机对成立进行数据读时,在成立中,由于dCBWDataTransferLength中预期的数据量与成立骨子发送的联所有据量之间存在互异,成立应在dCSWDataResidue中讲明Data-In的数据量。dCSWDataResidue不成过在dCBWDataTransferLength中发送的值。 **bCSWStatus:**CBW是否传输得手,为得手,非为失败
image.png5.3数据传输条目(Data Transfer Conditions)
描述传输若何保持同步,主机使用CBW的向和长度域(dCBWDataTransferLength)进行传输。成立确信骨子的传输向和长度。成立用适的CSW复返CBW的后果。image.png5.3.1 敕令传输
主机通过Bulk-Out端点发送CBW,每个CBW包含个敕令块。CBW为31(1Fh)个字节。5.3.2 数据传输
主机尝试按照dCBWDataTransferLength和向位(主机到成立如故成立到主机)进行数据向和大小实在信。在数据完成之前成立不错讲明失实,需要在使用中的端点(数据输入:Bulk-In端点,数据输出:Bulk-Out端点)传输STALL进行敕令圮绝。5.3.3 状态传输
成立需要通过Bulk-In端口发送CSW到主机传输状态。个CSW大小为13(Dh)个字节。6. 逐行默契
对以下数据进行逐行默契:查询官文档获取联系复返信息数据界说和类型(文档为)image.png6.1 CBW
image.png
55 53 42 43为CBW的签名dCBWSignature(小端智商,骨子为43425355h) 1 f 18 8a为CBW象征块,迷惑底下的CSW 24 为主机盼望的数据长度,为36个字节 **8(1b)**为数据传输向:为Data-In:数据读 为逻辑成立单位号,成立唯一个逻辑成立单位,是认为 6为CB的有长度为6个字节 **12 24 …**16个字节的数据为CBWCB:x12为获取成立信息 x24为分拨进程36个字节
image.png6.2 成立复返联系信息image.png
成立返复活产厂、居品称呼和版块等联系信息,信息智商如下:image.png6.3 CSW
image.png55 53 42 53是CSW的前缀,在2号端口由存储成立向主机发送数据,1 f 18 8a为和6.1的CBW对应的象征块,后头的示意要传输的数据量和CBW中的要求相符,后的示意传输得手。6.4 CBW
image.png
fc示意传输12+16*15=252个字节的数据 数据传输向为数据读 a为CB的有长度,为1个字节 23 fc为CB的罕有据:在SCSI辅导积聚x23为查询可用容量及剩余空间,fc为低位
image.png6.5 复返可用容量和剩余空间(UFI文档33-36页)
image.png骨子复返的是Block(存储块)的数目(每块大小与文献系统筹商),并非字节数:image.pngimage.pngimage.png6.6 CSW
image.pngCBW传输得手的信号,同上6.36.7 CBW
image.png
主机盼望数据长度为15+15*16=255个字节 12 1 8 ff为获取成立信息:x1为主机指定成立传送页的联系信息
6.8 复返成立联系指定信息
邮箱:215114768@qq.comimage.png6.9 CSW
示意传送得手image.png6.1 Get Descriptor(获取成立描述符)
image.png
x8为吸收端是成立,措施类型,向成立到主机 x6为Get Descriptor x3为描述符类型为字符串,索引为x 为wIndex ff(15+16*15)为成立复返字节数,小于即可————————————————版权声明:本文为CSDN博主「小森豆丁」的原创著述,征服CC 4. BY-SA版权契约,转载请附上原文出处聚会及本声明。原文聚会:https://blog.csdn.net/m_37769256/article/details/115672978
相关词条:玻璃棉 塑料挤出机厂家 钢绞线 管道保温 PVC管道管件粘结胶1.本网站以及本平台支持关于《新广告法》实施的“极限词“用语属“违词”的规定,并在网站的各个栏目、产品主图、详情页等描述中规避“违禁词”。
2.本店欢迎所有用户指出有“违禁词”“广告法”出现的地方,并积极配合修改。
3.凡用户访问本网页,均表示默认详情页的描述,不支持任何以极限化“违禁词”“广告法”为借口理由投诉违反《新广告法》,以此来变相勒索商家索要赔偿的违法恶意行为。