USB_2.0协议驱动开发入门_1

本文详细介绍了USB 2.0协议的驱动开发,涵盖USB数据结构,包括域、包、事务的构成,以及传输类型如控制传输、中断传输、批量传输和同步传输。枚举过程中的状态转换和设备配置也在文中阐述,强调控制传输在枚举中的关键作用。
摘要由CSDN通过智能技术生成

/***************************************************框架*****************************************************/

一:USB数据

USB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。

  • 域:

1、同步域(SYNC)------所有的USB包都由SYNC开始

2、标识域(PID)---由四位标识符 + 四位标识符反码构成

3、地址域(ADDR)---七位地址,代表了设备在主机上的地址

4、端点域(ENDP)------四位

5、帧号域(FRAM)------11位

6、数据域(DATA)---必须为整数个字节的长度

7、校验域(CRC)---对令牌包和数据包中非PID域进行校验的一种方法,模2运算


  • 包:

这里写图片描述

1、令牌包

2、数据包---分为DATA0包和DATA1包,DATA0包和DATA1包交替发送,(但)在同步传输中所有的数据包都是为DATA0

3、握手包---包括 ACK、NAK、STALL以及NYET 四种

4、特殊包


  • 事务:

每一种事务都由令牌包、数据包、握手包三个阶段构成(数据包不一定有,可能会提前结束进入握手包)

1、IN

2、OUT

3、SETUP---数据包阶段--只有一个固定为8个字节的DATA0包;------

-----握手包阶段--设备接收到主机的命令信息后,返回ACK,此后总线进入空闲状态,并准备下一个传输(在SETUP事务后通常是一个IN或OUT事务构成的传输)。 


  • 标准的USB设备请求命令

bmRequestType(1) + bRequest(1) + wvalue(2) + wIndex(2) + wLength(2)

首字母bm,b,w分别表示位图、字节,双字节 


  • 描述符

1——设备描述符 >2——配置描述符 >3——字符描述符 >4——接口描述符> 5——端点描述符


二:传输

USB

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值