阅读:2742回复:16
如何利用EZ-USB开发板实现文件的块传输
利用开发板可以很简单的实现一个数据块的传输。
但想请教高手:如何实现文件的块传输。即给出一个文件,USB实现传输。 |
|
最新喜欢:![]()
|
沙发#
发布于:2001-08-31 17:26
写一个驱动程序或直接用EZUSB.SYS。再做一个应用程序调用即可。
|
|
|
板凳#
发布于:2001-09-02 17:29
能不能给个应用程序的例子?
|
|
地板#
发布于:2001-09-03 09:23
如果你得到了,请给我 也发一个。谢谢。
|
|
|
地下室#
发布于:2001-09-05 01:46
Ezusb有现成的代码,何必问别人要?控制面板程序就有个文件传输的按钮,读一读消息处理就OK了.
|
|
5楼#
发布于:2001-09-05 08:45
但只能传输64个字节
|
|
|
6楼#
发布于:2001-09-05 21:00
[QUOTE]原本由 fanwei7 发表
[B]但只能传输64个字节 [/B][/QUOTE] 例子是传64个,驱动允许WIN32程序每调用一次DeviceIoCtrol最多可以传64KB(怎么传并不需要你管理),你把文件分割成64KB大小的块,重复调用deviceioctrol直到文件尾就可以了.我已经做过,传8M文件大概要21s.用bulk传比较好. 给点分吧 |
|
7楼#
发布于:2001-09-05 21:41
如果给我一个例子。另有重谢。
不作商业用途 |
|
|
8楼#
发布于:2001-09-05 21:46
如果给我一个例子。另有重谢。
不作商业用途 |
|
|
9楼#
发布于:2001-09-05 22:20
[QUOTE]原本由 fanwei7 发表
[B]如果给我一个例子。另有重谢。 不作商业用途 [/B][/QUOTE] 是商业用途也无所谓,只不过太简单了,既然64B能传下去,用我说的方法再大的文件也就能传下去,我用的也还是控制面板中的那些代码,只不过稍加修改就是了,老兄,不能太懒哦,麻烦你自己动手练练吧,能看得懂例子,就基本没有做不了的事.我这里是个新区,网没通,我也只能到网吧过瘾,所有的机器都是没有小驱的,想帮你都不行,见谅. [sunkai 编辑于 2001-09-05 22:23] |
|
10楼#
发布于:2001-09-06 10:22
感谢诸位的帮助和鞭策,目前我的速率只有200K字节/秒。(利用BULTTEST)
对于提高传输率我有几个想法: 1)EZ-USB芯片号称其时钟为 一个加强形8051,我想它实际工作的频率到底为多少。能通过程序提高它从而提高传输速度。 2)EZ-USB芯片号称有一个双缓存和自动自增指针技术。我把BULKTEST的固件程序改写为双缓存,程序在控制面板中可以通过, 但接不上BULKTEST.EXE。请教一二。并且我想知道固件程序对速率的影响有多大。 3)驱动程序对数据的分配是否起很大的的作用? 请各位高手指点,给分毫不吝惜。 |
|
|
11楼#
发布于:2001-09-06 21:47
:2)EZ-USB芯片号称有一个双缓存和自动自增指针技术。我把BULKTEST的固件程序改写为双缓存,程序在控制面板中可以通过,
但接不上BULKTEST.EXE。请教一二。并且我想知道固件程序对速率的影响有多大。 我也觉得BULKTEST.EXE的固件下载不大对头, 用它下的HEX和控制面板下的不一样,看那个资料只有简单的说明 IOCTL_Ezusb_ANCHOR_DOWNLOAD不知怎么用? |
|
12楼#
发布于:2001-09-07 19:09
[QUOTE]原本由 fanwei7 发表
[B]感谢诸位的帮助和鞭策,目前我的速率只有200K字节/秒。(利用BULTTEST) 对于提高传输率我有几个想法: 1)EZ-USB芯片号称其时钟为 一个加强形8051,我想它实际工作的频率到底为多少。能通过程序提高它从而提高传输速度。 2)EZ-USB芯片号称有一个双缓存和自动自增指针技术。我把BULKTEST的固件程序改写为双缓存,程序在控制面板中可以通过, 但接不上BULKTEST.EXE。请教一二。并且我想知道固件程序对速率的影响有多大。 3)驱动程序对数据的分配是否起很大的的作用? 请各位高手指点,给分毫不吝惜。 [/B][/QUOTE] fan兄:不知道你看过那篇ezusb bulk transfer perferance note的文档,BULK传输固件的框架(除了再枚举部分)已经在这篇中讲齐了. 2,pairing endpoint & autopoint能提高访问缓存的速度,尤其是autopoint在高速读写数据总线和内部FIFO时优势明显,连不上主机程序跟这两个优化设置应该无关吧?怎么来量化影响我也不知道,起码编程要简洁一些,指令少了,速度自然就高了些. |
|
13楼#
发布于:2001-09-13 09:39
做试验时,我发现如果一次传送的数据超过64K,好像就截取剩下得数据进行传输。
不知我理解是否正确 |
|
|
14楼#
发布于:2001-09-13 11:06
我对BHLKTEST得固件代码进行改写:
void ISR_Ep7out(void) interrupt 0 { // Arm the OUT so it can receive the next packet OUT7BC = 0; // clear the IRQ EZUSB_IRQ_CLEAR(); OUT07IRQ = bmEP7; } 去掉了数据转存得程序。 然后利用BULKTEST.EXE进行测试,速度立刻上去了:800K字节/秒。 看来中断服务程序占用了很长得时间。 如果能把在中断程序中执行得程序放到别处,是否会有提高? 希望高手共同讨论 ^_^ |
|
|
15楼#
发布于:2001-09-14 14:06
那位高手能给我讲一下:USB应用程序,驱动程序,固件在传输数据时如何实现,
最好能结合双缓存技术。 |
|
|
16楼#
发布于:2001-09-14 18:00
[QUOTE]原本由 mich 发表
[B我也觉得BULKTEST.EXE的固件下载不大对头, 用它下的HEX和控制面板下的不一样,看那个资料只有简单的说明 IOCTL_Ezusb_ANCHOR_DOWNLOAD不知怎么用? [/B][/QUOTE] 前不久我向cypress的技术支持提问时,提到过这个问题,他说最新的安装CD已经做了修改,还很主动地寄了一张过来,需要就去申请吧.usbapp@cypress.com. |
|