1、USB事务处理是USB主机和USB设备数据通信的基础。共7种事务:IN事务处理、OUT事务处理、SETUP、PING、SOF、SPLIT、PRE事务处理。
一个完整的USB事务处理包含3个阶段:令牌阶段、数据阶段、握手阶段
令牌包阶段:(主机到USB设备)每一个事务处理类型都从一个令牌阶段开始,它定义了事务处理的类型。
数据包阶段:传输相关的数据,在一个事务处理中可以传输的最大数据包是1024字节(高速设备)。
握手阶段:对数据发送方提供了一个反馈信号,通知发送方数据是否已经被正确接收。
例子: IN事务处理步骤
(1)USB主机向USB设备发送IN令牌包,表示主机可以接收数据;
(2)USB设备正确接收到IN令牌包,然后向USB主机发送数据包;
(3)USB主机正确接收到数据包后,向USB设备返回ACK握手包,确认传输成功。
事务处理可以采用块传输、中断传输、同步传输和控制传输4种方式。
USB 传输类型有四种: 控制传输,中断传输,块传输,同步传输。
传输类型和事物处理的关系:
事物处理是USB通信最小的单位,各种传输类型都是由事物处理组成的,比如控制传输类型分成三个阶段:建立阶段,数据阶段,状态阶段。每个阶段都是由特定的事务组成;
建立阶段需要一个SETUP事务处理;数据阶段可能需要多个 IN/OUT事务处理;控制阶段由一个IN事务和一个OUT事务处理组成。对于每一个事务,都是由令牌阶段、数据阶段、握手阶段组成。
2、USB总线设备列举过程
为什么枚举:
枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。
在设备的枚举过程中都是使用控制传输,端点0(管道0);
枚举过程:
(1)主机检测到插入USB设备后,使用默认地址0,向USB设备发送GetDescriptor(Device)请求,获取设备描述符;
(2)主机发送SetAddress请求,为连接的USB设备分配一个唯一的设备地址;
(3)主机使用新的地址向USB设备发送设备描述符请求,获取全部描述符,包括产品ID,供应商ID等;
(4)主机循环发送描述符请求,获取配置、接口、端点描述符和自定义描述符;
(5)主机根据USB设备的配置信息,如产品ID、供应商ID等,选择并加载一个合适的驱动程序。
(6)在加载驱动程序后,便可以进行各种配置操作和数据传输等。
用户377640 2014-5-24 08:54
shihlin_812989226 2014-4-15 16:08
谢谢分享!