打印

困扰我很久的问题:关于usb的endpoint

[复制链接]
8770|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongjiajia|  楼主 | 2012-4-27 21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
usb中double-buffering ep 和single-buffering ep 的区别是什么呀!我看有些例程用单缓冲区的ep,有的用双缓冲区的ep,我想问一下,他们应该在什么条件下使用,他们的区别是什么!

相关帖子

沙发
dqyubsh| | 2012-4-29 12:51 | 只看该作者
几个EP的缓冲区已经开在那了,即便你用不满,它也不能挪作他用,比如当作普通RAM。

对一个特定的端点来说,多缓冲有利于提高传输速度。

使用特权

评论回复
板凳
gool| | 2012-5-9 16:52 | 只看该作者
排队学习

使用特权

评论回复
地板
liangziusb| | 2012-5-11 15:23 | 只看该作者
将端点的缓冲区理解成FIFO就好了。FIFO无非是高速缓存一下数据,用来提高传输速度的,防止数据丢失。

使用特权

评论回复
5
l_lin2003| | 2012-5-29 17:19 | 只看该作者
本帖最后由 l_lin2003 于 2012-5-29 17:24 编辑

双buffer的功能就是提高主机通过OUT/IN令牌包发送给/读取设备数据的速度
对于OUT数据,设备可以同时用两个buffer接收主机的数据
对于IN数据,两个buffer中,一个buffer发送数据,另一个buffer同时写数据,设备可以做到 准备发送的数据和USB 控制器发送数据做到完全同步

对于如何设置,这就要看你所用的芯片的datasheet了,上面有对此功能进行设置的寄存器。

使用特权

评论回复
6
JC.Wang| | 2012-6-12 15:33 | 只看该作者
入门新手参观

使用特权

评论回复
7
平常人| | 2012-6-18 21:39 | 只看该作者
USB协议中没有double-buffering ep 和single-buffering ep 的概念,这种概念只是具体某个芯片实现上的方便。

使用特权

评论回复
8
viatuzi| | 2012-6-27 08:41 | 只看该作者
USB的endpoint只有control, interrupt,iso,bulk四种,其中control是双向的,其余三种是单向的。这四种endpoint每种都对应一种transaction类型。
你说的只是设计者在设计endpoint的时候所采用的方案,一般都是在效能和降低成本之间做选择和平衡。

使用特权

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

本版积分规则

0

主题

66

帖子

0

粉丝