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。
usb package分包原理
usbpackage分包原理随着科技的飞速发展,电子设备如计算机、智能手机、平板电脑等已经深入到我们生活的方方面面。
在这些设备中,usbpackage分包原理是一项关键技术,它为数据传输和设备连接提供了基础。
一、usb简介USB(UniversalSerialBus)是一种通用的计算机接口,用于连接外部设备。
它具有易于使用、速度高效、支持多种设备和协议的优点。
USB接口分为三种类型:USB1.0、USB2.0和USB3.0/3.1。
其中,USB2.0和USB3.0/3.1的速度更快,数据传输量更大。
在usb设备的数据传输过程中,数据包(package)起着至关重要的作用。
数据包是由多个小部分(segment)组成,这些部分通过usb 接口进行传输。
每一个数据包都包含一个头信息,这个头信息包含了数据包的目的地、大小以及其他相关信息。
分包(packaging)是usb数据传输过程中的一个重要步骤。
分包的主要目的是为了确保数据包的完整性,防止数据在传输过程中被损坏或丢失。
在分包过程中,数据包会被分割成更小的部分,每个部分都有自己的头信息,以确保数据包的顺序和完整性。
当数据到达目的地时,这些小部分会被重新组合成一个完整的数据包。
这个过程被称为包组装(unpackaging)。
包组装的过程需要正确解析每个小部分头信息,以确保数据包的顺序和完整性。
三、分包策略在usb设备的数据传输过程中,分包策略的选择和实施对于数据传输的效率和可靠性至关重要。
常见的分包策略包括:固定大小分包、可变大小分包和混合大小分包。
固定大小分包是指每个数据包的大小是固定的。
这种策略适用于需要固定大小的数据传输任务,例如音频或视频流。
可变大小分包是指根据数据量的大小调整数据包的大小。
这种策略适用于数据量不固定的情况,如文件传输。
混合大小分包则结合了固定和可变大小分包的优点,在一些情况下使用固定大小的数据包,在其他情况下使用可变大小的数据包。
USB通信协议
USB通信协议转⾃0. 基本概念⼀个【传输】(控制、批量、中断、等时):由多个【事务】组成;⼀个【事务】(IN、OUT、SETUP):由⼀多个【Packet】组成。
USB数据在【主机软件】与【USB设备特定的端点】间被传输。
【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。
⼀个USB设备可以有多个管道(pipes)。
1. 包(Packet)包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。
数据在 USB总线上的传输以包为单位,包只能在帧内传输。
⾼速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。
帧的起始由⼀个特定的包(SOF 包)表⽰,帧尾为 EOF。
EOF不是⼀个包,⽽是⼀种电平状态,EOF期间不允许有数据传输。
注意:虽然⾼速USB总线和全速/低速USB总线的帧周期不⼀样,但是SOF包中帧编号的增加速度是⼀样的,因为在⾼速USB系统中,SOF包中帧编号实际上取得是计数器的⾼11位,最低三位作为微帧编号没有使⽤,因此其帧编号的增加周期也为 1mS。
• USB总线上的情形是怎样的?• 包是USB总线上数据传输的最⼩单位,不能被打断或⼲扰,否则会引发错误。
若⼲个数据包组成⼀次事务传输,⼀次事务传输也不能打断,属于⼀次事务传输的⼏个包必须连续,不能跨帧完成。
⼀次传输由⼀次到多次事务传输构成,可以跨帧完成。
USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),包的基本格式如下图:1.1 PID类型(即包类型)1.2 Token Packets此格式适⽤于IN、OUT、SETUP、PING。
PID 数据传输⽅向IN Device->HostOUT Host->DeviceSETUP Host->DevicePING Device->Host1.3 Start-of-Frame(SOF) PacketsSOF包由Host发送给Device。
usb ncm报文格式解析 -回复
usb ncm报文格式解析-回复USB NCM(网络连接模型)是一种用于USB设备之间的网络连接的通信协议。
它允许USB 设备像网络设备一样进行数据传输和通讯。
在本篇文章中,我们将详细解析USB NCM报文格式,从而了解其内部结构和工作原理。
第一步:理解USB NCM的背景和基本概念要深入了解USB NCM报文格式,我们首先需要对USB NCM的基本概念和背景有所了解。
USB NCM是一种用于USB网络连接的设备级协议,它允许网络连接设备通过USB接口进行通信。
这些设备可以是计算机、网络摄像头、打印机等任何采用网络连接的USB设备。
第二步:理解USB NCM报文的结构USB NCM报文由多个报文元素组成,每个报文元素包含不同的字段和控制信息,用于传输和接收数据。
以下是USB NCM报文的主要元素和字段:1. NCM特征描述符(NCM Functional Descriptor):描述了NCM设备的功能和特性,如最大数据包大小、数据边界和数据存储组织等。
2. NCM数据包(NCM Packet):用于传输数据的单位,包含了数据的有效负载和相关的控制信息。
3. NCM数据头(NCM Data Header):包含了有关数据包的基本信息,如起始标记和数据包长度等。
4. NCM数据帧(NCM Data Frame):由一个或多个数据包组成的实际数据传输单元。
5. NCM命令参数集(NCM Command Parameter Set):包含了设备之间交换的命令和参数信息。
第三步:解析NCM报文的传输过程在如何解析NCM报文之前,我们首先需要了解NCM报文的传输过程。
当一个NCM设备想要发送数据时,它将数据封装成数据帧,并添加上报文头和控制信息。
然后该设备将数据帧发送到另一个NCM设备,并由接收设备进行解析和处理。
接收设备根据报文头和控制信息将数据提取出来,并将其传递给上层应用程序进行处理。
第四步:解析NCM报文的具体格式和字段根据上述NCM报文的结构,我们可以以以下步骤解析NCM报文的具体格式和字段:1. 解析NCM特征描述符:首先,我们需要解析NCM设备的特征描述符,以获取有关NCM设备的功能和特性的信息。
细谈USB2.0的封包种类
细谈USB2.0的封包种类
陈乃塘
【期刊名称】《电子测试》
【年(卷),期】2004(000)004
【摘要】USB规模用了4位的“PID-Packet identifier”来识别各种封包。
从主机PC启动通信的令牌封包,如IN(数据请求),OUT(数据传送通知)、SETUP(命令传送通知)等,用“Token”这个词标记,另外USB接口还规范了Bulk Transfer,Control Transfer,Interrupt Transfer,Isochronous Transfer四种传送模式。
【总页数】8页(P55-62)
【作者】陈乃塘
【作者单位】无
【正文语种】中文
【中图分类】TP336
【相关文献】
B
2.0期待升温,OTG蓄势待发—记Cypress USB2.0亚太巡回会 [J], 迎九
2.教你真正用上USB2.0设备当USB2.0仅有USB1.1速度时…… [J], Riven
3.供应室胶带封包与绳子封包防控医院感染的效果对比观察 [J], 汪善华
B2.0桌面式7口集线器 USB2.0桌面式4口集线器 [J],
5.细谈媒体深化拓展国际新闻传播的有效策略 [J], 万雪松;余青阳
因版权原因,仅展示原文概要,查看原文内容请购买。
在USB中,定义了这四种类型包
数据包实例如下: 上图为 SETUP 请求数据包,用于读取设备的设备描述符。 握手包格式 握手包有三种 ACK、NAK 和 STALL,其中 ACK 表示数据传输完成 并且无错误,NAK 表示设备不能接收数据或者没有数据上传,STALL 表示 设备不能进行数据传输。而 NYET 和 ERR 握手包只针对高速设备,表示设 备没有准备好或者出错。握手包格式定义如下:
ACK 握手包实例如下:
<!--
在 USB 中,定义了这四种类型包
USB 底层协议 USB 它是串行总线,所以数据在总线上是一位一位传输的,先传输最 低位数据,最后传输最高位数据低字节数据,最后传输高字节数据。 在 USB 中,数据是以包为单位进行传输的,所有的包都必须以 SYNC 字段开始,以 EOP(End-of-Packet)结尾。在 SYNC 字段之后,紧跟着的是包 标识符(PID),PID 为一个字节,其中 4 位用于定义包的类型,另外 4 位是用 来校验 PID 的,PID 格式如下:
在 USB 中,定义了四种类型的包,令牌包、数据包、握手包和特殊 包,包类型详细定义如下: 在令牌包的 PID 字段之后,还包含地址域,地址就包括设备地址和端 点地址,设备地址共 7 位,总共可寻址 128 个地址,但是地址 0 是作为默认 设备地址的,所以说,USB 系统中,最多只能同时连接 127 个设备。端点地 址共 4 位,可寻址 16 个端点。 在 USB 包最后,还包含 5 位的 CRC 检验码,CRC 校验码只对 PID 后 面的数据进行校验,不对 PID 进行校验,因为 PID 本身就包含 4 位校验码。 包格式 令牌包格式 令牌包格式定义如下:
这里的令牌特指 IN、OUT、SETUP 令牌,而 SOF 包格式定义如下: 令牌包实例如下: 数据包格式 数据包包含包标识符(PID)和 0 到多个字节的数据,数据包类型总共四 种,DATA0、DATA1、DATA2 和 MDATA。数据包格式定义如下:
USBHID设备报告描述符详解
USB/HID设备报告描述符详解概述:报告在这里意思是数据传输(data transfer),而报告描述符是对这些传输的数据作用途(usage)上的说明。
USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction)。
交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的数据。
在这里,传输和报告的意思相类似。
传输方式有四种,初始学一般只要了解控制型传输(control transfer)和中断型传输(interrupt transfer)即可。
控制型传输是当需要时才执行传输要求,是最一般的传输方式,组态、命令和状态的通讯都可以使用控制型传输;控制型传输主要用于消息型数据(message-type data)。
中断型传输目的在做重复的数据更新(recurring data)传输,精确一点而言,即是在每个有限周期内(bounded period)作至少一次的小量数据发送或接收;所以适用于流动型数据(stream-type data),注意这里所谓的周期时间就是在端点描述符中的轮询间隔时间。
报告有三种:input、output和Feature。
后面将作进一步介绍。
中断型输入管线(interrupt in pipe)仅可以传送input报告;中断型输出管线(interrupt out pipe)仅可以传送output报告;但是控制型管线(control pipe)可以传送input、output和feature报告。
端点描述符有声明所使用的端点为何种管线。
数据本身没有任何意义,要赋于用途才能明确其为控制什么(control);例如设备上的按钮指示灯和X与Y轴的位移等都通称控制,数据则为按钮和指示灯的开关状态或X与Y轴的位移量。
为了这个目的应运而生报告描述符,其将数据的操控与它的用途作一对一的对应,所以解读报告后就可以知道每个数据作何种操作。
封包初级教程
封包初级教程封包(Packet)是计算机网络中常用的数据传输形式,它将数据按照特定的格式和结构进行打包和传输。
对于网络工程师和程序员来说,了解和掌握封包的基本知识是非常重要的。
本文将介绍封包的基本概念、结构和一些常见的封包操作。
1. 封包概述封包是指将数据分割成一定大小的块,每个块包含了一定的头部信息和有效载荷。
这些头部信息包含了用于指示数据传输和处理的相关信息,比如数据的源地址、目标地址、数据类型等等。
而有效载荷则是封装的实际数据内容。
2. 封包结构封包通常由几个部分组成,包括头部、有效载荷和尾部:- 头部:头部一般包含了封包的元数据信息,比如源地址、目标地址、协议版本等。
这些信息一般由网络协议定义,并根据协议规范进行解析。
- 有效载荷:有效载荷是封包中实际的数据内容。
它可以是文本、图像、音频或视频等任何形式的数据。
有效载荷的长度可以根据具体需求进行设定。
- 尾部:尾部一般包含了一些校验信息,用于检测封包在传输过程中是否出现错误或丢失。
3. 封包操作封包操作是指生成、传输和接收封包的过程。
以下是一些常见的封包操作:- 封包生成:封包生成指的是将数据按照封包结构进行打包。
在生成封包时,需要确定头部信息、有效载荷和尾部校验等内容。
- 封包传输:封包传输是指将封包从发送端传输到接收端的过程。
在传输过程中,封包会经过各种网络设备和传输介质,并可能会受到噪声、干扰或损耗的影响。
- 封包接收:封包接收是指接收端对传输过来的封包进行解析和处理。
接收端需要根据封包的头部信息,提取出有效载荷,并进行相应的处理和响应。
4. 封包技术封包技术在计算机网络和软件开发中有广泛的应用。
一些常见的封包技术包括:- 网络封包:在计算机网络中,封包是最基本的数据传输单位。
网络封包可以通过各种协议进行传输,比如以太网、IP、TCP、UDP等。
- 数据封装:在软件开发中,数据封装指的是将一系列数据打包成一个封包,并进行传输或存储。
USB封包中的数据域类型
USB封包中的数据域类型USB 接口是以令牌封包为主(token based)的总线协议,而且PC 主机掌握了这个总线的一切主控权。
换而言之,一切的沟通都由PC 主机来负责激活与执行。
再加上,由于USB 不占用任何PC 的中断向量、DMA 或是任何输人/输出的资源,因此,必须通过严谨的协议才能与外围设各达成通信的目的,进而执行各项传输的命令。
当然,在USB 的通信协议中,不仅只有令牌封包而已,还包含了数据封包、握手封包以及特殊封包等。
因此,就必须先介绍USB 封包类型中的各种数据域的格式,并加以说明。
不同的封包类型,含有不同数量与形态的数据域。
以下依序介绍各种数据域的规范与结构。
而通过不同形态的数据域的组成,即可构成所要的封包类型。
封包内所包含的信息数据位于1~3 074 字节之间。
第1 个字节总是封包标识符(PID),用来定义其余的信息字节所要表达的意义。
而封包的最后一部分,则是封包结束EOP(End-of-Packet)标识符。
但应注意,USB 的串行传输是先送出最低位LSB,然后再依序送出,直到最高位MSB 为止,如图1 所示。
而PID[0:3]与PID[0:3]的意义稍后会再加以解释。
图1 封包格式首先,介绍第一个,也是每一种封包都含有的数据域:同步列数据域。
1.同步列(Synchronization Sequence,SYNC)数据域SYNC 字段由8 位组成,作为每一个数据封包的前导,用来产生同步,将会起始PLL。
因此,它的数值固定为:00000001。
这个字段仅可以在闲置时,作传输之用。
封包的起始是由总线从J 状态转换成K 状态的变化所产生设置的。
USB_Audio_技术
USB Audio技術解析與應用一、相關技術與說明USB傳輸協定USB 1.1通信協定的規範是以1毫秒產生一個USB 訊框(frame),USB裝置可以在每一個訊框中傳送和接收一串交易(transactions)。
交易是由數個封包(packets)組成,由一或數個交易來完成傳遞一筆有意義的數據稱之為傳輸(transfer)。
傳輸方式有四種:(1)控制型傳輸(Control Transfers):為雙向傳輸,主要用來溝通主機和裝置之間的配置、命令或狀態。
控制型傳輸包含三種控制傳輸型態:控制讀取、控制寫入與無資料控制。
USB運用CRC(Cyclic Redundancy Check)來檢查資料之正確性,若此錯誤無法恢復,則要求重新傳送。
(2)中斷型傳輸(Interrupt Transfers):在USB1.0定義為單向傳輸,於USB1.1及USB2.0定義為雙向傳輸。
由於USB不支援硬體的中斷方式運行,所以必須靠主機以週期性的方式來輪詢(Polling),故於USB的中斷傳輸意即是一種輪詢的過程。
對於USB 1.1的裝置而言,可以訂定1ms至255ms之間的輪詢週期,所以最快的輪詢速度為1kHz。
(3)巨量型傳輸(Bulk Transfers):可為單向或雙向的傳輸,適用於傳送大量的資料,且沒有固定的傳輸速率。
(4)同時型傳輸(Isochronous Transfers):可為單向或雙向的傳輸,此種傳輸需要維持一定的傳輸速度,且允許一定錯誤率下的錯誤。
它事先與主機協議好固定的頻寬,以確保發送端及接收端的傳送速度。
在USB Audio MCU中,通常會支援控制型、中斷型與同時型等傳輸,其中同時型是專門用來傳送喇叭與麥克風的語音資料。
同時型(Isochronous)傳輸USB Audio使用Isochronous 傳輸模式,每個frame為1 ms (USB規範1 ms±500ns),根據不同的頻率會傳送不同大小的語音資料量,例如48KHz/16-bit/2-CH時,1 ms的資料量為192 byte,以此為例,USB Audio MCU 內部有兩塊Ping-Pong結構的Buffer,各為192 Bytes,總共為384 Bytes,以SOF(Start Of Frame)做為切換兩個Buffer的控制信號。
- 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 数据域皆可由此推算而得到。