[USB波形分析] 全速USB波形数据分析(二)
在上一篇文章全速USB波形数据分析(一)介绍了全速USB的数据包(Packet)的组成,数据的类型等基本知识。这篇文章介绍USB的几种传输方式
事务(Transaction)
USB协议定义了三种不同的事务(Transation),即SETUP事务, IN事务和OUT事务
SETUP 事务
一次成功的SETUP事务包含3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)
用示波器实际获取的D+/D-信号如下,
IN 事务
一次成功的SETUP事务包含2个或者3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)。对于同步传输(Isochronous)模式,省略了握手包以保证数据实时传输
用示波器实际获取的D+,D-信号如下,
OUT 事务
一次成功的OUT事务包含2个或者3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)。对于同步传输(Isochronous)模式,省略了握手包以保证数据实时传输
OUT事务在示波器中的波形如下,
USB数据传输(Transfer)
USB数据传输过程包含1个到多个事务传输,一个事务传输包含了2个到3个的数据包传输,它们的层次结构如下图所示,
USB协议定义了四种数据传输类型,分别是控制传输(Control Transfer), 中断传输(Interrupt Transfer),同步传输(Isochronous),批量传输(Bulk Transfer)
控制传输(Control Transfer)
用于对设备配置和发送命令,使用了完善的错误检查机制。控制传输强制使用端口0(Endpoint 0)。控制传输包含2个到3个阶段,SETUP阶段,DATA阶段(可选),STATUS阶段。
没有数据的控制传输(Control No Data Transfer)
写数据控制传输(Control Write Transfer)
读控制传输(Control Read Transfer)
批量传输(Bulk Transfer)
不定周期的大数据量的传输方式,对于全速USB,数据包的数据大小可以是8,16,32,64字节;对于高速USB数据包的数据大小为512字节
中断传输(Interrupt Transfer)
中断传输类似于批量传输,对于全速USB,数据包的数据大小可以由1字节到64字节;对于高速USB,数据包的数据大小可以由1字节到1024字节。中断端点有一个相关联的轮询间隔,确保主机将定期轮询它们(接收IN令牌)。
同步传输(Isochronous Transfer)
同步传输用于流数据,如音频和视频。对于全速USB,数据包数据可以多达1023个字节;对于高速USB则可多达1024个字节。同步传输没有握手数据包
-----------------------------------------------------------------------------------END
[参考资料]
- https://elearning.renesas.com/file.php/1/CoursePDFs/DevCon_On-the-Road/DevCon_On-the-Road/Operating_Systems/Embedding_USB_-_The_Implementation_Challenges_and_Limitations.pdf
- USB 101: An Introduction to Universal Serial Bus 2.0, Cypress Semiconductor Corporation
- EZ-USB® Technical Reference Manual, Cypress Semiconductor Corporation