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

[复制链接]
10127|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无非是高速缓存一下数据,用来提高传输速度的,防止数据丢失。
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了,上面有对此功能进行设置的寄存器。
JC.Wang 发表于 2012-6-12 15:33 | 显示全部楼层
入门新手参观
平常人 发表于 2012-6-18 21:39 | 显示全部楼层
USB协议中没有double-buffering ep 和single-buffering ep 的概念,这种概念只是具体某个芯片实现上的方便。
viatuzi 发表于 2012-6-27 08:41 | 显示全部楼层
USB的endpoint只有control, interrupt,iso,bulk四种,其中control是双向的,其余三种是单向的。这四种endpoint每种都对应一种transaction类型。
你说的只是设计者在设计endpoint的时候所采用的方案,一般都是在效能和降低成本之间做选择和平衡。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

66

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部