hooligan686
驱动牛犊
驱动牛犊
  • 注册日期2004-05-06
  • 最后登录2009-11-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1714回复:10

对USB的一点疑惑或则称为理解也行,大伙看看对不??

楼主#
更多 发布于:2005-03-18 09:11
批量传输中的有两种基本事务,IN事务和OUT事务

对于Mass Storage 设备类,使用的Bulk-Only传输协议则使用3次IN/OUT事务来完成一次完成的传输,

比如是一个Write10命令:
先用OUT事务来传输命令,
然后再用OUT事务来发送数据到设备,
最有IN CSW

而0x2f命令则只用了
OUT CBW
IN  CSW
两个事务处理了一个Bulk Only传输

所以Buly 传输只要两个端点IN和OUT端点
在一次Bulk传输中,两个端点交替使用??????
如上面所说的0x2f命令
先到OUT端点将命令读取过来,然后处理
最后通过IN端点将处理的结果通过CSW命令发送给主机
不知我的理解对否???
hooligan686
驱动牛犊
驱动牛犊
  • 注册日期2004-05-06
  • 最后登录2009-11-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-19 09:11
呵呵,我也不太理解coolwuya说的“连续的IN封包以空OUT封包结束,连续的OUT封包以IN封包结束,这是协议里面的东东,没什么异议。”

连续的IN最后以OUT CSW封包结束还差不多
tsingkong
驱动牛犊
驱动牛犊
  • 注册日期2003-03-25
  • 最后登录2013-11-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-18 22:16
这么理解没有错误。
但你完全可以按照IN和OUT的意思来理解
IN的就是设备到HOST的
OUT的就是HOST发出的
但记得,连续的IN封包以空OUT封包结束,连续的OUT封包以IN封包结束,这是协议里面的东东,没什么异议。

一次BULK传输中并非是两个端点交替使用,要看具体数据走向,你所说的交替使用可能是说的Data0/Data1吧


看不懂这一句:
但记得,连续的IN封包以空OUT封包结束,连续的OUT封包以IN封包结束,这是协议里面的东东,没什么异议。
mailto:tsingkong@163.com
hooligan686
驱动牛犊
驱动牛犊
  • 注册日期2004-05-06
  • 最后登录2009-11-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-18 17:44
这么理解没有错误。
但你完全可以按照IN和OUT的意思来理解
IN的就是设备到HOST的
OUT的就是HOST发出的
但记得,连续的IN封包以空OUT封包结束,连续的OUT封包以IN封包结束,这是协议里面的东东,没什么异议。

一次BULK传输中并非是两个端点交替使用,要看具体数据走向,你所说的交替使用可能是说的Data0/Data1吧


是我表达的不严格,不应该称之为交替,
liulin
驱动牛犊
驱动牛犊
  • 注册日期2003-01-28
  • 最后登录2009-06-19
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-18 16:06
USB 是半双工的。不能同时访问 IN OUT 端点。
理解的没错
coolwuya
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2007-08-24
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望21点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-18 12:47
这么理解没有错误。
但你完全可以按照IN和OUT的意思来理解
IN的就是设备到HOST的
OUT的就是HOST发出的
但记得,连续的IN封包以空OUT封包结束,连续的OUT封包以IN封包结束,这是协议里面的东东,没什么异议。

一次BULK传输中并非是两个端点交替使用,要看具体数据走向,你所说的交替使用可能是说的Data0/Data1吧
USB开发交流
hooligan686
驱动牛犊
驱动牛犊
  • 注册日期2004-05-06
  • 最后登录2009-11-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-18 12:10
是以上两三个步骤呀?
只不过把每个IN/OUT事务展开而已
每个IN/OUT又是由3个阶段组成,

我想要确信的是
分给Bulk传输的两个端点IN 和OUT

在一次Bulk-Only传输中,由2~3个过程(IN/OUT事务)组成,
在这些过程中
如果发送数据,就将数据放到IN端点去
如果接受数据,就到OUT端点去读取数据
我这么理解对否,望赐教!!!

可能我的语言表达能力有些差,见笑啦:)
fujionline
驱动牛犊
驱动牛犊
  • 注册日期2003-01-08
  • 最后登录2005-09-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-18 11:56
 我觉得你应该说是对MSC的理解比较好,CBW,CSW要在
USB上传的话USB要做的事情不止两三个步骤。
hooligan686
驱动牛犊
驱动牛犊
  • 注册日期2004-05-06
  • 最后登录2009-11-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-18 11:54
啊,什么意思??不懂呀
coolwuya
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2007-08-24
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望21点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-18 11:43
批量传输中的有两种基本事务,IN事务和OUT事务

对于Mass Storage 设备类,使用的Bulk-Only传输协议则使用3次IN/OUT事务来完成一次完成的传输,

比如是一个Write10命令:
先用OUT事务来传输命令,
然后再用OUT事务来发送数据到设备,
最有IN CSW

而0x2f命令则只用了
OUT CBW
IN  CSW
两个事务处理了一个Bulk Only传输
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

所以Buly 传输只要两个端点IN和OUT端点
在一次Bulk传输中,两个端点交替使用??????
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如上面所说的0x2f命令
先到OUT端点将命令读取过来,然后处理
最后通过IN端点将处理的结果通过CSW命令发送给主机
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~              
不知我的理解对否???



汗~~
USB开发交流
hooligan686
驱动牛犊
驱动牛犊
  • 注册日期2004-05-06
  • 最后登录2009-11-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-18 10:15
大家可以随便说说,事情总是越讨论越明了的。呵呵
游客

返回顶部