完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
USB网站
www.u***.org USB速度 [tr]定义速度版本[/tr]
USB硬件 电气特性 USB低速模式,采用的是电压传输模式,而在高速模式下采用的是电流传输模式。 USB使用NRZI编码,当数据为0时电平翻转,当数据为1时电平不翻转。未防止长时间电平不翻转,所以在数据发送前会进行位填充处理。 一般USB都是4根线,后来有了5根线,也就是USB OTG,多出来的那根线叫ID线,用来身份识别(主机/从机)。 USB标准中规定了信号线的颜色 Vbus为红色,D-为白色,D+为绿色,GND为黑色。 插入检查 USB集线器端的D+和D-都会有一个15K下拉电阻,设备端通过D+还是D-接1.5K上拉电阻来判断速度。 一般USB芯片都会内部集成1.5K上拉电阻,来实现软连接。
u***1.1
新增加的描述符
在USB系统中,主机处于主导地位,所以把主机到设备的数据叫做输出,从设备到主机的数据叫做输入。
USB是串行总线,LSB方式一位一位传输,原始数据在发送到总线上之前需要进行未填充和NRZI编码(当然这些都是由PHY完成)。 总线上的数据以包为基本单位,所以一个数据包必然有包标识符PID(Packet Identifier)和包结束符EOP(End of Packet)。 PID定义 PID总共有8bit,USB协议之用了4位(PID0-PID3),另外4位(PID4-PID7)是PID0-PID3的取反,用来校验PID。 [tr]PID类型PID名PID[3:0]说明[/tr]
setup令牌包后只能使用DATA0数据包,且只能发送到设备控制端点0,并且设备必须接收,而OUT令牌包则没有这些限制。 IN令牌包用来通知设备返回一个数据包。 SOF令牌包 4个令牌包中,只有SOF令牌包之后不跟随数据传输,其他的都有数据传输。 SOF令牌包结构图 [tr]同步域8位PID11位帧号5位CRC5校验EOP[/tr] OUT、IN、SETUP令牌包结构图 [tr]同步域8位PID7位地址4位端点号5位CRC5校验EOP[/tr] 数据包结构图 [tr]同步域8位PIDByte0…Byte N16位CRC5校验EOP[/tr] 之所以有不同类型的数据包,是用在当握手包出错是纠错,比如当数据包成功发送或者接收时,数据包类型切换。 握手包结构图 [tr]同步域8位PIDEOP[/tr] 握手包用来表示一个传输是否被对方确认。 特殊包 PRE是通知集线器打开其低速端口的一种前导包。pre只使用在全速设备中,平时,为了防止全速信号使低速设备误动作,集线器是没有将全速信号传递给低速设备的。只有当收到PRE令牌时,才打开其低速端口。接着主机会以低速模式给低速设备发送令牌、数据等。 PRE令牌包结构图 [tr]同步域8位PIDEOP[/tr] PING令牌包 PING令牌包与OUT令牌包具有一样的结构,但是PING令牌包后并不发数据,而是等待设备返回ACK或者NAK,以判断设备是否能够传送数据。 只有在USB2.0的高速环境中才会使用PING令牌包,它只被使用在批量传输和控制传输的输出事务中,PING命令可以在下位机处理速度慢的情况下测试设备当前是否有空间接受数据,避免直接使用OUT令牌包,既浪费了总线带宽,又白白传送了数据。 数据包如何处理 这么多数据包一般的USB接口芯片都会完成,如CRC校验、位填充、PID识别、数据包切换、握手等协议处理。 USB的四种传输类型 批量传输 批量传输包含三个阶段:令牌包阶段、数据包阶段、握手包阶段。通常用在数据量大,但对实时性要求不高的场景中,如打印机、大容量存储设备等。 批量传输没有规定数据包中数据的意义,具体的数据结构由设备自己定义。 批量输出事务 step1、主机发出一个OUT令牌包;包含设备地址、端点号 step2、设备返回数据,NAK(没有数据返回,主机会再稍后重试),STALL(端点处于挂起状态),无任何响应(检测到有错误,等待主机自动超时)。 step3、主机返回ACK(成功接收),无任何响应(检测到错误,等待设备自动超时)。 批量输入事务 step1、主机发出一个IN令牌包;包含设备地址、端点号 step2、主机切换到数据接收状态,等待设备返回数据。 step3、主机切换为接收模式,等待设备返回握手包。 中断传输 中断端点在端点描述符中要报告它的查询间隔,主机会保证在小于这个时间间隔的范围内安排一次传输。 中断传输通常用在数据量不大,但是对时间要求较严格的设备中,如HID设备(键盘,鼠标) 中断传输流程和批量传输基本上一样,只是没有NYET和PING两种包。 等时传输 等时传输用在数据量大,对实时性要求高的场合,如音频设备,视频设备等。等时传输对数据的100%正确要求不高,所以当数据错误时,并不要求重传操作,因此等时传输没有应答包。 控制传输 控制传输与前面3中相比,稍微复杂些。 包含3个过程:建立过程,数据过程,状态过程。 建立过程 主机使用SETUP令牌包,数据只能使用DATA0包,设备只能使用ACK或者不应答(出错了)。 数据过程 数据过程是可选的,可包含0个或多个数据事务,在数据事务中,所有的数据事务必须是同一个传输方向的。 数据过程的第一个包必须是DATA1包,然后每次正确传输一个数据包后就在DATA0和DATA1之间交替。 状态过程 传输方向刚好和数据过程相反; 状态过程只使用DATA1包。 端点 一个具体的端点,只能工作在一种传输模式下。 每个端点描述符中都规定了端点所支持的最大数据包长度。 控制传输的端点:低速模式最大包长固定为8字节,高速模式最大包长固定为64字节,而全速模式可在8、16、24、32、64字节中选择。 等时传输:低速模式不支持等时传输,全速模式最大包长上限是1023字节,高速模式最大包长上限是1024字节。 中断传输:低速模式最大包长上限是8字节,全速模式最大包长上限是64字节,高速模式最大包长上限是1024字节。 批量传输:低速模式不支持批量传输,全速模式最大包长可在8、16、24、32字节中选择,高速模式最大包长上限是512字节。 |
|||
|
|||
只有小组成员才能发言,加入小组>>
4491个成员聚集在这个小组
加入小组3327 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4260 浏览 1 评论
4287 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 12:03 , Processed in 0.707646 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号