• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 开发usb20主机软件实现读写速度上出问题了麻烦各位高手帮帮忙!!!

开发usb20主机软件实现读写速度上出问题了麻烦各位高手帮帮忙!!!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了usb20 camera驱动下载,usb20,usb20 camera,usb20驱动下载,usb20驱动等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 开发usb20主机软件实现读写速度上出问题了麻烦各位高手帮帮忙!!!
描述:

目的就是通过usb2.0设备和pc进行高速数据交换。买那个usb外设板子的时候提供有事例程序,但是是往设备写和读一次的。现在为了测试其速度到底是不是达到usb2.0高速标准,我将其改为:
// TODO: Add your command handler code here
//BULK数据的写操作
int i = 0;
char *buffer;
char senddat[512] = {0};
    ULONG length;
    BULK_TRANSFER_CONTROL bulkControl;
int recnBytes = 0;
/*写Endpoint2*/
bulkControl.pipeNum = 0;     //0,1管道为写
for(i = 0;i<512;i++)
{
senddat[i] = i;
}
buffer = &senddat[0];
length =theApp.m_USBbufferlong;              //usb2.0最大数据包512bytes
DWORD  dwStartTime = ::timeGetTime();                 //计算传输时间用
for(int n = 0;n < 100000;n++)                         //读写总数据为100m
{
bulkControl.pipeNum = 0;
buffer = &senddat[0];
Sx2BulkdataTrans( &bulkControl,
buffer,
length,
&recnBytes);
                  /*读回Endpoint6,并显示*/
bulkControl.pipeNum = 2;              //2,3管道为度
for(i = 0;i<512;i++)
{
senddat[i] = 0;
}
buffer = &senddat[0];
Sx2BulkdataTrans( &bulkControl,
buffer,
length,
&recnBytes);
}
DWORD  dwElapsedTime = ::timeGetTime() - dwStartTime;
theApp.Out("%d\n",dwElapsedTime);
Sx2BulkdataTrans()函数原型如下:
BOOLEAN Sx2BulkdataTrans(PVOID bulkControl,
 char *buffer,
 int bufferSize,
 int *recnBytes)
{
int nBytes = 0;
bool bResult = FALSE;
PUSBD_PIPE_INFORMATION pPipe = pSx2InterfaceInfo->Pipes;
         //管道信息,打开设备时已得到
         //执行读写操作的判断
DWORD ioctl_val = IOCTL_EZUSB_BULK_WRITE;
if(pPipe[((PBULK_TRANSFER_CONTROL)bulkControl)->pipeNum].EndpointAddress >> 7)
{
ioctl_val = IOCTL_EZUSB_BULK_READ;
}
         //执行读写操作的判断
bResult = DeviceIoControl ( hDevice,
ioctl_val, 
bulkControl,
sizeof (BULK_TRANSFER_CONTROL),
buffer,
bufferSize,
(unsigned long *)&nBytes,
NULL);
if(bResult == FALSE)
{
return FALSE;
}
*recnBytes = nBytes;
return TRUE;
}
如此测试下来用的时间为65秒多,也就是说每秒才1.Xm的速度,对于一个usb2.0的设备不可能有这么慢吧,是不是有什么没有配置阿?还望各位高手指点


解决方案1:

学习

解决方案2:

在这里,只要你的PC驱动没有错误,就不会这么慢的。
你还是看一下USB设备端是怎么处理的吧。
每次发512bytes已经很快了,一般情况下你的USB设备的Buffer一般只有1K或更少,所以,
你最多每次发送1K数据,但是在你发下一个1K数据之前,你的设备还没有处理完,
那么PC端只有等待。
还有可能就是你的PC主板不支持USB2.0。

解决方案3:

倒,怎么用DeviceIoControl,可以用ReadFile或者WriteFile直接读写bulk pipe阿。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在C++中,如何知道计算机是支持USB11还是USB20的?
  • 有没有哪位高手建议一本USB20开发的参考书?
  • 那位高手能提供一下usb20驱动的开发资料,最好有代码
  • 开发usb20主机软件实现读写速度上出问题了麻烦各位高手帮帮忙!!!
  • 4412的usb20两层板走差分对,这样可以么?

相关文章

  • 2017-06-05 MSP430多路捕获问题……
  • 2017-06-05 [求助]usb设备如何判断是否与pc端联接
  • 2017-06-05 各位大牛都来看看!
  • 2017-06-05 浮点乘法器,由于设计原因两个输入不能同步
  • 2017-06-05 想做一个51单片机控制数字电源,求大体方案
  • 2017-06-05 有人在做嵌入式开发os吗?
  • 2017-06-05 请问在win32XP系统下能用的驱动如何移植到64bit的xp系统上,多谢了
  • 2017-06-05 MDK有没有类似于VS的函数调用堆栈信息?
  • 2017-06-05 hlp文件怎么打开
  • 2017-06-05 做不出来我就没机会见到你们了:(

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 同样的程序,tftp到板子上不能正确执行,但是mount在已经启动的板子上,却可以运行。
    • wince平台如何绘制圆弧
    • 求教wifi高人指引基于STM32
    • 我要分析USB通信协议,也就是得到USB设备与PC的具体通信过程,可以用单片机或其他嵌入式开发板完成吗
    • 关于ds18b20一直显示-006的问题
    • 这个式子是怎么算出来的
    • lua.dlllua新手入门问题?
    • 求98下虚拟硬盘代码!!!我还给加分的放心!!!
    • ubuntuusb转串口驱动问题?
    • WinCE下使用SQLite数据库一直不能成功,望各位老师给解答一下

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有