阅读:1534回复:11
急请教版主
我现在用pdiusbd12做一个设备(bulk传输),现在正在做其上位机的应用程序和驱动程序,我已经仔细阅读了zboard板所带的程序。但还有一个地方拿不准,向你求教确定一下。
就是在应用程序用readfile转到驱动程序再到设备读数,在readfile之前用一个DeviceIoControl传到驱动程序里面的一个vendorrequest,然后就针对firmware里面的vendorrequest向EP2写数,然后的读都是通过readfile实现的,针对firmware就是在中断服务程序里面读数。并且每次readfile所读数据个数最大数量都是EP2最大数目:64。 也可以这么说,DeviceIoControl只是启动读数,即在firmware里面第一次把数放到EP2。然后用readfile进行读数,每一readfile只能读最大64个数,然后在应用程序里面循环readfile,实现读取多于64个数。在readfile里面一次能读多于64(EP2最大传输量)的数吗? 你看我的理解是否正确,是不是我所理解的流程有错误,请指正,谢谢了! |
|
|
沙发#
发布于:2002-01-17 23:01
版主有时间帮我看看好吧,
给你写信你也不回, |
|
|
板凳#
发布于:2002-01-18 09:15
你那个263的信箱忒烂!给你的信都给退回来,早点换一个吧!
理解基本上正确,不过循环也可以放到kernel里面。 |
|
|
地板#
发布于:2002-01-18 12:15
谢谢你的回答。
你说在哪儿循环速度更快一些啊?你们用的是在哪儿循环啊? 如果我用ds生成驱动,那么所谓的在kernel里面,用自己编吗?还是ds生成时就有了? 谢谢了 |
|
|
地下室#
发布于:2002-01-21 23:18
不会是每64B就要用一个urb吧?斑主请指教一下,
|
|
|
5楼#
发布于:2002-01-22 08:56
我是每64byte用一个urb
|
|
|
6楼#
发布于:2002-01-22 16:21
好象有个传输最大长度。Windows自动根据数据分成64B一包。
|
|
|
7楼#
发布于:2002-01-22 18:33
那每个urb的最大长度肯定比64B大多了吧?
|
|
|
8楼#
发布于:2002-01-22 19:14
最大传输长度可以很大,比如64K,你可以试一下,你会发现USB速度其实还是挺快的,按我理解USB控制器会把数据分成一些64字节的包来传输
|
|
9楼#
发布于:2002-01-23 10:13
好象有个传输最大长度。Windows自动根据数据分成64B一包。 对!还是LitteSW说的对,我也曾经被这个问题搞晕过,其实可以一次发很多的,有个参数可以设置。 我上面的帖子是错的,取消! :D |
|
|
10楼#
发布于:2002-01-23 11:11
哪个参数可以设置,请有经验的大侠介绍一下。
|
|
|
11楼#
发布于:2002-01-25 09:45
看一下dw的help
|
|
|