hillsky
驱动牛犊
驱动牛犊
  • 注册日期2005-03-28
  • 最后登录2006-04-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:2334回复:10

68013 slavefifo一问!

楼主#
更多 发布于:2005-06-18 23:24
  我现在USB配置在slave fifo模式
用PC进行BULK读操作
但是我用vc将读进来的数据写入文件时,usb的fifo会满 这个时候就产生丢包
是不是因为我的pc写文件太慢
导致usb的fifo满 所以产生丢包?
哪位大虾能指点一下应该怎么解决呢?


因此我考虑将slave fifo的大小从512*2变成1024*3
不知道slave fifo模式下允许这样的配置么?

真的愁死我了
哪位能赐教 万分感谢!

最新喜欢:

murongyumurong...
funlove
驱动牛犊
驱动牛犊
  • 注册日期2003-08-25
  • 最后登录2007-10-07
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-19 20:22
看来要提高速度,驱动程序也很重要是嘛??
用CY68013自带的驱动速度行不行啊??

楼上各位能留个QQ嘛!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-16 09:45
你启动一次不管读多少数据都代表一次,驱动自己分割包耗时会非常小,延迟可以忽略
比如你一次读64K数据,那么在这64K数据中每个512间的延时是可以忽略不计的,最重要的延迟出现在两个64K传输中间那段时间。
bennydice
驱动牛犊
驱动牛犊
  • 注册日期2006-09-20
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望48点
  • 贡献值0点
  • 好评度47点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-16 08:55
异步的话  对SLWR的频率有什么要求吗?

我上次看到个68013的资料  看到异步SLWR最小的周期都需要50+70ns  这个时间好长啊  速度好象不是很快样的
lb0021
禁止发言
禁止发言
  • 注册日期2001-06-22
  • 最后登录2016-01-16
  • 粉丝0
  • 关注0
  • 积分5470分
  • 威望24655点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-13 17:29
用户被禁言,该主题自动屏蔽!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-13 09:05
因为PC每启动一次bulk读,就算没有数据也需要0.1-0.2ms的时间,如果在这段时间内端点都满了,那么数据就丢失了
改成异步还是比较麻烦的,你可以尝试先用4x512缓冲,主机开双线程,1线程读数据,1线程写数据,这样能提高不少
lb0021
禁止发言
禁止发言
  • 注册日期2001-06-22
  • 最后登录2016-01-16
  • 粉丝0
  • 关注0
  • 积分5470分
  • 威望24655点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-04-12 22:23
用户被禁言,该主题自动屏蔽!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-20 10:43
当然如果你把FIFO的块数增加可以稍微提高一点速率
我说的使用BULK双缓冲的情况,如果你用4缓冲可能会好一点
注意,Bulk最大包大小最多512,可以4缓冲,1024是不可能的
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-06-20 10:40
不是因为你写文件而丢的包,而是在读数据的时候已经丢了!
68013只支持大约1MB/s的实时传输速率,当你的传输速率大于这个数的时候就会丢包
你需要采用异步IO的读写方式,具体怎么操作请参考DDK下面的BulkUSB里的Read和Write函数
hillsky
驱动牛犊
驱动牛犊
  • 注册日期2005-03-28
  • 最后登录2006-04-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-06-19 15:58
可是我需要做到实时传输
外面的码流不断
我在外面做fifo似乎用处也不大。。。
qyxu1979
驱动牛犊
驱动牛犊
  • 注册日期2005-03-11
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-06-19 11:07
怎么会有丢包呢!只要你发的速度不是比USB快,就不会有丢包,硬盘写文件是很快的,至于FIFO写满的情况是有的,为了不冲掉上次的数据,你可以判断FIFO满标志吗,只要FIFO满,就让主控停止写FIFO,直到FIFO不满再写入!
游客

返回顶部