rodney
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2712回复:14

谁知道EZUSB GPD的IOCTL_EZUSB_BULK_READ是否可以一次传输>64B的数据

楼主#
更多 发布于:2001-08-09 14:12
如果可以,是否是FIRMWARE要在很短的时间内不断的更新IN?BUF[]和EP?BC,还是通过什么其它的方式。

我觉得好象IOCTL_EZUSB_BULK_READ执行的很慢,我用循环去每次取64B的速度为256kbps数据时跟不上,有丢数的现象了,或者还有其它的什么办法?
fyshe
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2004-06-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-09 17:17
只需要FIRMWARE作工作就行了,每次传输数据的最大长度一般说来是64KB.
rodney
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-09 18:07
刚才用逻辑分析仪作了测试,结果是完成一次IOCTL_EZUSB_BULK_READ居然用了2ms,如果每次传64B的话,每秒最高只能传32KB,显然不行。
但是现在就有问题,我没有发现2131的GPD  IOCTL_EZUSB_BULK_READ
有可以设定一次传输>64B的参数,我改了FIRMWARE,但不行,好象它每次只读64B.

各位DX能不能回答这个问题?
csyoyo
驱动牛犊
驱动牛犊
  • 注册日期2001-05-19
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-08-10 21:16
好像不行吧
只有同步方式才可以
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-11 01:04
为什么要改firmware?跟它何相干?MAX最大就只能是64.
[sunkai 编辑于 2001-08-11 01:26]
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-08-11 01:10
你完全可以一次读64KB的数据回来.deviceioctrol()的第5个参数随便你设置.


[sunkai 编辑于 2001-08-11 01:30]
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-08-11 02:00
你完全可以一次读64KB的数据回来.deviceioctrol()的第5个参数随便你设置,主机会安排任务,无须你控制.看看"GPD note.pdf", IOCTL_EZUSB_BULK_READ没有可以决定firmware中的64B的参数.
如果我没有理解错的话,每次最大64KB的限制可以在驱动程序中修改为更大,不知道哪位大虾有异议?


lgfox
驱动牛犊
驱动牛犊
  • 注册日期2001-07-26
  • 最后登录2002-01-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-08-11 12:44
64B是USB本身的限制,如果要传输超过64B的,只有分两次传输。解决这个问题制定一个自己的传输协议就行,将数据在firmware端分解,在驱动端组合。用EZUSB的通用驱动,那就写个DLL接口吧。另外,同步传输可以超过这个限制,但没有错误更改功能。
正在奋斗中的人
fyshe
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2004-06-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-08-13 08:44
 我同意sunkai的看法,我也知道在驱动中改变传输包的大小,但是不知道微软的USB.SYS,USBDI.sys里面是否已经写死了(为了遵守USB 规范)。
custjcy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-08 23:15
各位谁手头有ez-usb bulk的驱动,可以给小弟发一份吗?
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-08-09 00:06
在此
westbb
驱动牛犊
驱动牛犊
  • 注册日期2002-07-15
  • 最后登录2002-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-09 08:02
你完全可以一次读64KB的数据回来.deviceioctrol()的第5个参数随便你设置.


[sunkai 编辑于 2001-08-11 01:30]
 

老兄:郑这么简单吗?!
hxm5460
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2014-05-16
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望19点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-08-09 09:57
确实如此,刚开始时我也是这样的,但只要上端应用程序一次尽可能读取较多的数据,就明显可以提高速度,最高可以设定为64K,驱动会每毫秒到固件的缓冲区读取一次数据,按1.1协议,每毫秒读取的数据量最大可以达到19*64byte.yin
takaya
驱动小牛
驱动小牛
  • 注册日期2002-02-10
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-08-09 16:27
设备的处理速度要足够快才行.
我是只可爱的小猫咪,高枕无忧................................. QQ:2745071
custjcy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-08-10 22:12
to sunkai:
   谢谢了!
游客

返回顶部