接口/总线/驱动
注意本文中的单词大小写,含义是不一样的。
控制传输一般在USB枚举的时候见得多,控制传输包含三个阶段:Setup阶段、Data阶段、Status阶段,其中Data阶段是可选的。
Setup阶段 :由一个SETUP事务组成,SETUP事务的组成如下,Setup阶段必须使用DATA0
Data阶段 :由若干个IN事务或者OUT事务组成,此阶段是可选的,有时候并不需要Data阶段,比如SetAddress。Data阶段的IN/OUT事务DATA0和DATA1交替变化。
IN事务举例
OUT事务举例
Satus阶段 :此阶段只有一个IN事务或者OUT事务。如果是控制传输写入,那么以IN事务结束且必须使用DATA1。如果控制传输读取,则以OUT事务结束,也必须使用DATA1。
控制传输过程,如下图所示:
以下是我司某产品使用USB分析仪截取的数据包,三个阶段已在图中标记。
控制传输——写入 :此例子Data阶段只用一个OUT事务完成了数据传输。
控制传输——读取 :此例子Data阶段只用一个IN事务完成了数据传输。
控制传输——无Data阶段 :此例子是SetAddress,地址信息在SETUP事务中的DATA0包里,因此不需要Data阶段。
全部0条评论
快来发表一下你的评论吧 !