cd0424
驱动牛犊
驱动牛犊
  • 注册日期2003-06-11
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1499回复:6

DeviceIoControl问题

楼主#
更多 发布于:2004-02-11 18:56
(cy7c68013)请问执行一条 DeviceIoControl()指令作bluk_write 需要花费多少时间?谢谢
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-11 21:11
那要看你携带多少数据了,一般情况下启动一次ioctl需要0.1ms-0.5ms左右的时间,如果你携带数据较多,那时间会增长。
下面是用cy7c68013测试的大致速率,仅供参考:

条件:用内部增强行8051来搬移数据,时钟是48MHz,指令周期最少是4个时钟周期。
当一次请求的有效载荷小于10KB时,基本上是1ms以下,0.1ms以上
当一次请求的有效载荷大于10KB时,每增加10KB,时间增加1ms。例如,一次申请40KB的数据需要时间时4ms。

如果你使用更快的外围设备和usb芯片连接,那么传输时间会缩短。
cd0424
驱动牛犊
驱动牛犊
  • 注册日期2003-06-11
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-12 08:35
当一次请求只发送1个字节时,需要花费多少时间呢?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-12 08:40
你发送一个字节和发送512字节是没有太大区别的,因为这样都要启动一次传输,数据要从app到驱动再到硬件,然后到设备,设备应答在反方向到app,软件损耗占用了很多时间,至少也要0.1ms左右,因此建议一次带的数据量多一些,这样能把软件损耗降到最低。
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-02-12 09:08
批传输呢
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
cd0424
驱动牛犊
驱动牛犊
  • 注册日期2003-06-11
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-12 16:20
感谢jinghuiren。 :)
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-02-12 22:35
批传输呢

说的就是批传输。
要是其它的传输会更慢。
游客

返回顶部