lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3831回复:32

一次DeviceIoControl与内核的通讯花费2ms左右的时间

楼主#
更多 发布于:2003-05-20 13:32
请教高手们:
    我编写的usb驱动程序速度很慢(500hz),应用层一次DeviceIoControl与内核的通讯花费2ms左右的时间,我用ds、ddk编写的驱动速度都是一样的,太慢了!你们的速度是多少呀?
    不尽感激!!!

最新喜欢:

idlemanidlema...
lq519
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-20 14:37
我的好像比你的快不了多少,我用的是buffered方式,我正在做direct方式,也许这样能快一些。
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝1
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-20 14:38
这与你 DeviceIoControl 中完成的功能有关
你的认可是对我最大的鼓励!
Snailpipi
驱动牛犊
驱动牛犊
  • 注册日期2002-07-05
  • 最后登录2007-07-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-20 14:53
deviceIOControl 差不多就在这样的速度
关键是你的Reafile/WriteFile()的速度要高
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-20 15:36
jinghuiren  direct方式一样,别试了!!!其实,他与buffer 的通讯方式的快慢程度差不多,解决不了问题!比起500hz的速度,小菜一碟!
lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-20 15:43
swf2003   您说的功能我不太清楚,您能说具体点吗?好像即使从内核传个常数,也不过1-2K、2―3K的样子!我去年做pci驱动时做过测试,记得是这样!
lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-20 15:48
Snailpipi  您好,Reafile/WriteFile()?我没用过,请指教!我一直用deviceIOControl, Reafile/WriteFile()与内核通讯速度是多少? 谢谢!lq519@263.net
lq519
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-20 18:14
内存映射吧,这样应该很快,不要考来考去
二姑家的猫想......
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-20 22:57
是吗,那我到可以考虑用readfile和writefile试试了,现在的速度虽然能满足我们的要求,但是觉得有点太慢了,才3M字节左右。
drivermaster
驱动中牛
驱动中牛
  • 注册日期2003-02-26
  • 最后登录2004-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-21 10:03
我的测试,平均40k/s
菩提本无树,明镜亦非台, 本来无一物,何处染尘埃? 身似菩提树,心如明镜台, 愿将勤拂拭,勿使染尘埃。
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-21 11:03
kilroy_guo,您好?“内存映射“没用过,这样应用层与内核的通讯会达到多快呀!
lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-21 11:13
jinghuiren,您好:您的速度好像比我的快不了多少?“3M字节左右”您是怎么实现的呀?批量传输吗?固件是怎么往内核送数的呢,几个端点呀?
lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-21 11:22
drivermaster,您好:“平均40k/s“是应用层与内核的通讯速度吗?太快了!您是如何实现的呢?谢谢!
lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-05-21 11:51
从硬件――固件――内核――应用层,犹如是在接力!其实速度问题(和稳定性相比)也是一个很实际的问题,usb速度的计算到底是怎样算得呢?

固件:中断、等时传输好算,批量传输速度到底是如何计算的呢?1ms的帧中批量传输最多能占多少字节呢?这些字节(〉64 byte)能是同一端点的吗?“u盘,移动硬盘也应该是bulk模式,它们的速率可以达到6,7Mbps”,是如何组织下面端点向1ms的帧中放数的呢?

内核:通过usbd.sys访问usb总线,一次读(批量传输)一个端点,只能最多64byte吧!???

应用层:他与内核的通讯速度到底有多快呢?

我对一些概念,不是很清楚,望各位大虾,能指点一下,在下不胜感激!!!我想其他人也会由类似的问题,高手们不妨在这里讨论一下这个“USB 的接力过程???”


 
lq519
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-05-21 12:18
jinghuiren,您好:您的速度好像比我的快不了多少?“3M字节左右”您是怎么实现的呀?批量传输吗?固件是怎么往内核送数的呢,几个端点呀?
 

我用了一个in一个out端点,都是双缓冲,我的是2.0的芯片,这个速度已经很慢了!
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-05-21 12:39
我用了一个in一个out端点,都是双缓冲,我的是2.0的芯片,这个速度已经很慢了! [/quote]

难怪?
lq519
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-05-22 10:16
如果是USB1。1能到600kb/s就很不错了!
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-05-22 10:41
如果是USB1。1能到600kb/s就很不错了!


NewTech 您好:我用的是usb1.1,您指的是批量传输的速度吗?
              600kb/s如何解释呢?
              如何组织下面端点向1ms的帧中放数的呢?

              谢谢!!!



 

lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-05-26 12:33
??????????????
大虾们:
    我的问题好像没解决。有没有人能明白的阐述一下以上的问题呢?
    另一个问题:usb1.1,bulk传输,1ms帧,一个端点一次传输64字节,在1ms的帧中,一个端点只能放一次数吗?如果不只一次,一个端点的bulk传输,如何往总线上放数呢?
lq519
lq519
驱动牛犊
驱动牛犊
  • 注册日期2001-12-09
  • 最后登录2003-08-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-05-27 10:10
usb的传输是基于1ms的帧的,bulk传输是如何往usb总线上放数的呢?
lq519
上一页
游客

返回顶部