打印

利用usb能否设计出一个全双工协议?

[复制链接]
1994|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
twicave|  楼主 | 2011-3-7 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
工作中我要为usb链路设计一个通讯协议。
之前的设计是一个完全双向的。
后来发现这样做好像不能实现,
因为usb是一个主从式结构,从机需要发送数据包的时候,需要主机发出ep_in token.

你们的设计中做过全双工的通讯协议吗?
可以介绍一下。

相关帖子

沙发
dqyubsh| | 2011-3-7 18:11 | 只看该作者
USB2.0就是主从的,主机发起命令,设备才能响应。据说USB3.0设备可以申请中断主机。

通常的作法就是主机发命令,等待设备传来数据,从而完成一个回合的通讯。主机不取数,设备就空转。

使用特权

评论回复
板凳
twicave|  楼主 | 2011-3-9 11:24 | 只看该作者
有没有谁试过,在usb从模式,进入ep_in模式后,仍可以响应ep_out包,并把发送缓冲区的内容清空?

如果这样是可行的,那么双向协议也应该是可行的。

使用特权

评论回复
地板
dqyubsh| | 2011-3-9 14:12 | 只看该作者
你说的大概有点象异步通讯,主机随意发下去命令,设备相继执行并返回结果。主从之间没有一问一答的必然对应关系。主机收到的,不一定是刚刚发下去的命令返回的。如果能实现这个,就已经是大大地隔离了软件和硬件的关系。粗看了USB3.0,它是全双工的异步通讯。

使用特权

评论回复
5
twicave|  楼主 | 2011-3-11 16:58 | 只看该作者
昨天看了一个usb转串口的实现。对于双向通讯的情形。实际上是使用了两个通道。通道0和中断传输。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

44

帖子

0

粉丝