USB封包格式
usb ncm报文格式解析

usb ncm报文格式解析
USB NCM(USB Network Control Model)报文格式是一种用于USB通信的协议格式,用于在USB设备之间传输数据。
NCM报文格式是一种分层结构,包括传输头(NTH)、传输数据块(TDB)和传输结束标记(ETB)。
NTH(NCM传输头)用于标识NCM报文,并向接收方提供有关报文内容的基本信息。
NTH结构的字段包括:
Signature:标识NCM报文,固定为“ncm”。
HeaderLength:NTH长度(字节)。
SequenceNumber:NCM报文的序列号,用于标识报文的顺序。
BlockLength:NCM报文的数据块长度(字节)。
NDPIndex:首个NCM数据报指针(NDP)在NCM报文中的偏移位置。
TDB(传输数据块)用于承载实际的数据。
它包含一个或多个以太网数据包,这些数据包可以是IP、ARP、ICMP等协议的数据包。
TDB的长度由BlockLength字段指定。
ETB(传输结束标记)用于标识NCM报文的结束。
它是一个固定长度的标记,用于告诉接收方报文已经结束。
USB NCM报文格式解析通常涉及对NCM报文的层次结构进行解析,提取出其中的各个组成部分,并解析出其中的以太网数据包。
解析过程通常涉及到对NTH、TDB和ETB的解析,以及提取出以太网数据包中的实际数据。
解析过程可以根据具体的协议要求进行定制化处理,例如解析IP、ARP、ICMP等协议的数据包。
USB接口定义及封装

USB接口定义及封装USB全称Universal Serial Bus(通用串行总线),在USB1.1中,所有设备只能共享1.5MB/s的带宽,USB2.0的最大传输带宽为480Mbps(即60MB/s),而USB3.0的最大传输带宽高达5.0Gbps(500MB/s)。
目前USB 2.0接口分为四种类型A型、B型、Mini型还有后来补充的Micro型接口,每种接口都分插头和插座两个部分,Micro还有比较特殊的AB 兼容型,本文简要介绍这四类插头和插座的实物及结构尺寸图,如果是做设计用途,还需要参考官方最新补充或修正说明,尽管USB 3.0性能非常卓越,但由于USB 3.0规范变化较大,真正应用起来还需假以时日,不管怎样,都已经把火线逼到末路,苹果公司极其郁闷但也爱莫能助。
注意:1、本文封装尺寸来源,USB 2.0 Specification Engineering Change Notice(Date:10/20/2000)2、本文图片来源USB官方协议文档,由于USB 3.0在接口和线缆规范上变化较大,后面专门介绍。
3、本文未带插头封装尺寸,插头尺寸请参加官方文档ecn1-usb20-miniB-revd.pdf,下个版本USB 3.0在接口和封装上都有很大变化,本文属于USB 2.0协议内容,如果是USB 3.0设备,似乎只有A型头才能插到2.0插座中Receptacle。
1、A型USB插头(plug)和A型USB插座(receptacle)引脚顺序(左侧为Plug,右侧为Receptacle):引脚定义:编号定义颜色识别1 VBUS Red(红色)2 D- White(白色)3 D+ Green(绿色)4 GND Black(黑色)封装尺寸(单PIN Receptacle):2、B型USB插头(plug)和B型USB插座(receptacle)引脚顺序(左侧为Plug,右侧为Receptacle,注意箭头所指斜口向上,USB端口朝向自己):引脚定义、封装尺寸均与A型USB引脚说明相同。
USB2.0各类型接口定义及封装

USB2.0各类型接口定义及封装USB全称Universal Serial Bus(通用串行总线),目前USB 2.0接口分为四种类型A型、B型、Mini型还有后来补充的Micro型接口,每种接口都分插头和插座两个部分,Micro还有比较特殊的AB兼容型,本文简要介绍这四类插头和插座的实物及结构尺寸图。
1、A型USB插头(plug)和A型USB插座(receptacle)引脚顺序(左侧为Plug,右侧为Receptacle):引脚定义:封装尺寸(单PIN Receptacle):2、B型USB插头(plug)和B型USB插座(receptacle)引脚顺序(左侧为Plug,右侧为Receptacle,注意箭头所指斜口向上,USB端口朝向自己):引脚定义、封装尺寸均与A型USB引脚说明相同。
封装尺寸(单PIN Receptacle):3、Mini B型USB插头(plug)和Mini B型USB插座(receptacle)引脚顺序(左侧为Plug,右侧为Receptacle,注意宽边在上,USB端口朝向自己):引脚定义:封装尺寸(Receptacle):以上部分为USB 2.0规范内容,下面的Micro USB实际上是在2006年才发布的补充规范,由于该接口定义无法后向支持USB 3.0协议,故仍然归于USB 2.0协议包。
4、Micro USB插头和插座Micro USB补充定义用于蜂窝电话和便携设备的Micro USB接口,比Mini USB接口更小。
其中标准A型和标准B型及Mini-B型都是在USB 2.0规范里定义,2006补充的Micro USB规范定义了,补充了以下定义:Micro-B plug and receptacleMicro-AB receptacleMicro-A plug。
USB2.0协议中文版

USB 2.0 规范USB 体系简介USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S。
USB 支持“总线供电”和“自供电”两种供电模式。
在总线供电模式下,设备最多可以获得500mA 的电流。
USB2.0 被设计成为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。
一条USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB 以及USB 功能设备。
USB 体系包括“主机”、“设备”以及“物理连接”三个部分。
其中主机是一个提供USB 接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG 设备。
一个USB 系统中仅有一个USB 主机;设备包括USB 功能设备和USB HUB,最多支持127 个设备;物理连接即指的是USB 的传输线。
在USB 2.0 系统中,要求使用屏蔽的双绞线。
一个U S B H O S T最多可以同时支持128个地址,地址0作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个U S B H O S T最多可以同时支持127个地址,如果一个设备只占用一个地址,那么可最多支持127个U S B设备。
在实际的U S B体系中,如果要连接127个U S B 设备,必须要使用U S B H U B,而U S B H U B也是需要占用地址的,所以实际可支持的U S B功能设备的数量将小于127。
USB 体系采用分层的星型拓扑来连接所有USB 设备,如下图所示:以HOST-ROOT HUB Array为起点,最多支持7 层(Tier),也就是说任何一个USB 系统中最多可以允许5个USB HUB 级联。
一个复合设备(Compound Device)将同时占据两层或更多的层。
R OO T H U B是一个特殊的U S B H U B,它集成在主机控制器里,不占用地址。
usb ncm报文格式解析 -回复

usb ncm报文格式解析-回复USB NCM(Network Control Model)是一种用于在USB设备之间进行网络通信的协议,它通过USB接口传输数据,使设备能够在没有网络接口的情况下进行网络通信。
本文将详细解析USB NCM报文的格式,包括报文头、数据传输包等内容,以帮助读者更好地理解和应用该协议。
首先,我们需要了解USB NCM报文的基本结构。
USB NCM报文由报文头和数据传输包组成,其中报文头包含了一些必要的字段信息,数据传输包则用于携带具体的数据。
报文头的结构如下所示:1. Signature:一个4字节的字段,用于标识报文的开始部分,固定值为"NCMZ"。
2. Message Type:一个2字节的字段,用于指示报文的类型,包括Command、Data和Response。
3. Message Length:一个4字节的字段,用于表示报文的长度,包括报文头和数据传输包的长度。
4. Reserved:一个2字节的保留字段,目前仅用于填充。
5. CRC32:一个4字节的字段,用于校验报文的准确性,计算方法为对整个报文进行CRC32校验。
接下来是数据传输包的结构。
数据传输包用于携带具体的数据内容,它的格式可以根据应用的需要而变化。
在数据传输包中,通常包含以下几个字段:1. Data Length:一个2字节的字段,用于表示数据的长度,即下面Data 字段的长度。
2. Reserved:一个2字节的保留字段,目前仅用于填充。
3. Data:一个变长的字段,用于存储具体的数据内容。
除了上述字段外,USB NCM报文还可以包含一些可选的字段,如Vendor-Specific字段,用于存储厂商自定义的数据,以满足特定应用需求。
当我们了解了USB NCM报文的格式后,接下来就可以对报文进行解析和处理了。
首先,我们需要读取报文头中的Signature字段,以验证报文的有效性。
USB的工作原理及数据包格式

USB的工作原理及数据包格式一概述对于USB的工作我这里做个比方,主机好比一个公司,你就是USB设备,要进入公司首先要面试(枚举),你到了面试现场(第一次插入设备),面试官首先了解到你的外表,性别已经你要应聘的岗位(设备描述符),然后给你一个号,以后就开始按号叫人,当你被叫到就开始问你的专业知识,性格等(配置描述符),如果你比较合适(通过了枚举)你就会录取了,并且注册一个你的信息到公司(驱动安装,并且写入注册表)。
等你下次来公司,只要把工号(PID,VID)报上,就知道是你来了。
USB的概念历史啥的这里就不说了。
我们先不管具体的数据包格式,这一节先从整个包的层面上简单的说,过程是这样的,设备插入1)主机会轮回查询各个USB端口,主机检测到D+与D-之间有电压差,就认为有新的设置接入。
主机等待100ms后发出复位请求。
设备接到复位请求后将产生一个外部中断信号。
枚举过程2)主机这时候只是知道有新的设备插入了,但是不知道插进来个什么东西,所以就开始询问它是什么设备,怎么用,负荷能力怎么样。
这个时侯就进入了枚举过程。
因为刚刚插入的设备没有分配地址,就用默认地址0,首先发送一个Get_descriptor(获取设备描述符)指令包,设备接到包后就开始解析包(其实就是你在固件程序里判断处理),然后按固定格式返回自己设备的设备描述符,这一步主要是主机知道你的USB设备的基础属性,比如支持的传输数据长度,电流负荷多少,支持那个USB版本,以及以后方便电脑找驱动的PID,VID。
3)这时候主机知道你(你做的设备,简称你吧)的数据长度还有电流大小后,下一步就是给你分配一个属于你的地址。
4)给你一个地址后就开始询问你的具体配置。
首先发送一个试探性的设备配置请求Get_configuration(要求固定返回9个设备配置字),你接到后就开始发送9字节的设备配置字,其中包括你的配置字的总长度,这样主机就知道你的配置到底有多长,然后再发一次设备配置请求,这时你就开始上传所有的配置字。
封装usb最新最简单教程

封装usb3.0到2008操作系统最新最简单教程:
先解压附件到D盘任意文件夹(最好英文路径,附件中包含了usb3.0驱动),然后使用ultraiso/WinRAR等软件提取原版ISO镜像里面Sources目录下的Boot.wim及Install.wim两个文件,并放到附件解压后的如下目录下:
1:右键文件1chkboot,选择以管理员身份运行,
获取最大索引号,记录最后的索引号为X,按回车退出;
如下图最大索引号为2,则接下来运行2boot2
2:然后选择在2bootX (X为步骤1中的最大索引号)文件上点右键,选择以管理员身份运行;
3:右键文件3chkIns,选择以管理员身份运行,获取所需安装版本(例如企业版/标准版等等)应对的索引号;
4:找到程序4insX(如安装企业版完整安装则选择文件:4ins3,
简单可以根据字节大小来判断,一般字节最多为完整安装),在该程序上点右键,选择以管理员身份运行;
5:等待一段时间,ok USB3.0已完成集成到对应文件中: Boot.wim 及 Install.wim
6:将这两个文件重新替换到原来iOS的目录即可;
后续镜像的刻录以及安装不再复述,非常感谢~!。
USB的数据格式概述

USB的数据格式概述和其他的一样,USBUSB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。
下面简单介绍一下域、包、事务、传输,请注意他们之间的关系。
(一)域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型:1、同步域(SYNC),八位,值固定为0000 0001,用于本地时钟与输入同步2、标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式格式,这是一个很重要的部分,这里可以计算出,USB的标识码有16种,具体分类请看问题五。
3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此可以知道为什么一个USB主机只能接127个设备的原因。
4、端点域(ENDP),四位,由此可知一个USB设备有的端点数量最大为16个。
5、帧号域(FRAM),11位,每一个帧都有一个特定的帧号,帧号域最大容量0x800,对于同步传输有重要意义(同步传输为四种传输类型之一,请看下面)。
6、数据域(DATA):长度为0~1023字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度7、校验域(CRC):对令牌包和数据包(对于包的分类请看下面)中非PID域进行校验的一种方法,CRC校验在通讯中应用很泛,是一种很好的校验方法,至于具体的校验方法这里就不多说,请查阅相关资料,只须注意CRC码的除法是模2运算,不同于10进制中的除法。
(二)包:由域构成的包有四种类型,分别是令牌包、数据包、握手包和特殊包,前面三种是重要的包,不同的包的域结构不同,介绍如下1、令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输出包是用来设置输出命令的,而不是放据数的)其中输入包、输出包和设置包的格式都是一样的:SYNC+PID+ADDR+ENDP+CRC5(五位的校验码)(上面的缩写解释请看上面域的介绍,PID码的具体定义请看问题五)帧起始包的格式:SYNC+PID+11位FRAM+CRC5(五位的校验码)2、数据包:分为DATA0包和DATA1包,当USB发送数据的时候,当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为好几个包,分批发送,DATA0包和DATA1包交替发送,即如果第一个数据包是DATA0,那第二个数据包就是DATA1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USB封包格式
1.起始(SOP)封包根集线器会在每1 ms 时,送出SOF 封包。
这介于2 个SOF 封包之间的时间,即称为帧(frame)。
SOF 封包虽是属于令牌封包的一种,但却具有独自的PID 形态名称SOF。
通常目标设各都利用SOF 封
包来辨识帧的起点。
这个封包常用于等时传输。
也就是在1 ms 的帧(高速是125 μS微帧,将1 ms 切成8 份)开始时,等时传输会利用SOF 激活传输并达到同步传输的作用。
而在每一个帧开始时,SOF 会传给所有连接上去的全速设
各(包含集线器)。
因此,SOF 封包并不适用于低速设备。
这个封包内包含了
一个帧码,其可不断地递增,且在高达最大值时反转为0,重新再计数一次。
这个帧码是用来表示帧的计数值,因此,8 个微帧都使用同一
个帧码值。
若必要时,高速设各可计算出SOF 的重复使用次数,并计算出微帧的数量。
通过缩短微帧的周期时间,便可减少高速设各对于缓冲存储器的需求。
如图1 所示,高速的根集线器将会使用额外的SOF 来传输8 个微帧。
有些书籍会把这种高速的SOF,另命名为uSOF。
这种增加的微帧,同时也替高
速的连接带来了更复杂的控制方式。
图1 USB 帧与微帧示意图
此外,再利用如图2 所示的简图来说明主机所送出的一个SOF 封包的格式。
其中,SOF 的封包标识符,PID 数据域的值为0xA5。
PID[3:o]=0101 与PID[3:o]=1010 所产生的,只不过它的传送顺序须由LSB→MSB。
因此,即可推算出0xA5。
以下,所有的PID 数据域皆可由此推算而得到。