阅读:6040回复:29
BULK传输真的有希望达到1MByte/s!!!
PDIUSBD12+89C52
上次那个贴子太长了,我另外再起一个。 回去修改了一下D12的CLKOUT的输出,让它输出24MHz的时钟,我在BULK传输的时候每次都直接让它发送64个字节。经过同时优化windows device driver和firmware,结果传输16MByte的数据用了33秒!!!计算一下达到了496KByte/s。如果弄个可以运行50MHz的MCU,岂不是要加倍,达到992KByte/s? :) 当然,如果要实际的每次给D12写64byte的数据,速度就会慢许多,基本上会减半。但我发现,其实D12因为有double buffering的功能,可以每次向它写128bytes!而且,在driver里面直接把16Mbyte的数据分成64K,发给usbd,全部完成以后再一次性的返回给app,这样就得到了我上面说的数据了。 因此,我认为,只要有合适的MCU,再加上时序的调整,driver和app的配合,很有希望得到一个800~900k的传输速率。当然,这只是我的设想,还没有条件验证。哪位xd有条件试验的,可一定要告诉我结果啊!:D 另外,由于usb的传输和usbd.sys的速度也有很大关系,因此用一个速度快的PC和可以得到更快的传输。 |
|
最新喜欢:![]()
|
沙发#
发布于:2007-08-30 16:55
养牛场阿
|
|
板凳#
发布于:2004-09-03 09:10
我买了一套USB smart board开发板,测试速度就70KBytes/s,要提高到150KBytes/s如何改变固件和驱动还有应用程序啊?我用的开发板自带的固件还有驱动、应用程序,基本没什么修改,还有我是货真价实的新手。
大侠们给点提示,好吗? :) |
|
地板#
发布于:2004-09-02 17:23
我倒,好象解决了~~~~;)
|
|
地下室#
发布于:2004-09-02 11:30
用的BULK传输,主板接口是1。1的,所以工作在全速状态~~~郁闷
|
|
5楼#
发布于:2004-09-02 11:29
都那么牛啊~~我现在做的EZUSB68013 速率只有10几K :( ~~~用BUSHOUND 观察,URB转到数据传输DO状态只要30几US,但是URB转到数据传输用了3。几MS,甚至有的上了10几MS,这个又是怎么回事?烦请大虾们作答
|
|
6楼#
发布于:2004-09-02 10:00
晕~~~
都N年前的帖子了,还翻出来! 斑竹测试的方法只能测试出数拒载USB电缆上的传输速率,这个速率是没有实际的应用价值的 因为在USB电缆上速度传输再快,如果数据没有准备好也是无用的 因此,速率的限制瓶颈主要在于与之相连的MCU以及芯片本身的限制! 通常用MCU控制USB芯片是都是有读写时序的,而读写时序绝对会限制读写数据的周期不会达到USB的极限速率,例如PHILIPS的ISP1581读写周期试80ns,对于16位的数据,他的最高速率是25MB/s,不管用什么方式,总的传输速率绝对不会超过这个值。 可是我用斑竹的方式测试时,可以达到30MB/s的,实际上我做的设备最高速率只能达到10MB/s,如果用DMA方式这个速率还会增加,但不会超过25MB/s. 斑竹测试的速率之所以能达到这么高,最根本的原因是他省掉了MCU往D12写64B数据的时间!这段时间是影响速率的最根本原因。 另外,除了这方面的原因,还有MCU在读写数据时的软件损耗,以及主机软件的软件损耗,这些都会影响传输速率。 综上:达到300KB/s是可以实现的,也是比较理想的速率 达到1MB/s在实际应用中是不可能的!:) 呵呵,个人见解,仅供参考。 :D |
|
7楼#
发布于:2004-09-02 07:53
好诱人的速度啊,羡慕啊!
rayyang2000版主,能否把你的驱动和固件给俺copy一份啊!十分感激啊! ssonu@163.net :D |
|
8楼#
发布于:2001-09-10 10:41
我的一点体会:
修改一下firmware,对bulk的提速很有帮助。 |
|
9楼#
发布于:2001-09-10 09:45
[QUOTE]原本由 crabtao 发表
[B]我用SCANLOGIC的SL11T BULK IN 380KB/S。 BULK OUT 430KB/S。 DMA 上传 780KB/S。 这是传送字节数除于时间例如传送64K字节100次。 至于DMA线上的瞬间速率为1MB/S!!! D12的数据手册第一页写着D12能达到的BULK速率为1MB/S。 [/B][/QUOTE] 我想non-dma方式应该还可以提速。 |
|
|
10楼#
发布于:2001-09-07 17:28
我用SCANLOGIC的SL11T
BULK IN 380KB/S。 BULK OUT 430KB/S。 DMA 上传 780KB/S。 这是传送字节数除于时间例如传送64K字节100次。 至于DMA线上的瞬间速率为1MB/S!!! D12的数据手册第一页写着D12能达到的BULK速率为1MB/S。 |
|
11楼#
发布于:2001-09-07 12:49
[QUOTE]原本由 fanwei7 发表
[B]我的意思是:将一个大文件分割成63K字节的文件是在应用程序实现好,还是在驱动程序实现好。如果是后者,大体如何实现? [/B][/QUOTE] 应该是在kernel里面快一些。但如果占用内存太多的话,可能会出问题。 只要在build urb的时候,指向特定的一段buffer。 |
|
|
12楼#
发布于:2001-09-07 09:37
我的意思是:将一个大文件分割成63K字节的文件是在应用程序实现好,还是在驱动程序实现好。如果是后者,大体如何实现?
|
|
|
13楼#
发布于:2001-09-07 08:48
[QUOTE]原本由 fanwei7 发表
[B]目前我的速率只有200K字节/秒。(利用BULTTEST) 对于提高传输率我有几个想法: 1)EZ-USB芯片号称其时钟为 一个加强形8051,我想它实际工作的频率到底为多少。能通过程序提高它从而提高传输速度吗?如果能,如何提高? 2)EZ-USB芯片号称有一个双缓存和自动自增指针技术。我把BULKTEST的固件程序改写为双缓存,程序在控制面板中可以通过, 但接不上BULKTEST.EXE。请教一二。并且我想知道固件程序对速率的影响有多大。 3)驱动程序对数据的分配是否起很大的的作用? [/B][/QUOTE] 3. 你说的“数据的分配“是什么意思? |
|
|
14楼#
发布于:2001-09-07 08:35
目前我的速率只有200K字节/秒。(利用BULTTEST)
对于提高传输率我有几个想法: 1)EZ-USB芯片号称其时钟为 一个加强形8051,我想它实际工作的频率到底为多少。能通过程序提高它从而提高传输速度吗?如果能,如何提高? 2)EZ-USB芯片号称有一个双缓存和自动自增指针技术。我把BULKTEST的固件程序改写为双缓存,程序在控制面板中可以通过, 但接不上BULKTEST.EXE。请教一二。并且我想知道固件程序对速率的影响有多大。 3)驱动程序对数据的分配是否起很大的的作用? |
|
|
15楼#
发布于:2001-09-06 12:31
现在双向传输是2.2Mbps。
|
|
|
16楼#
发布于:2001-09-06 09:16
[QUOTE]原本由 LitteSW 发表
[B]最新消息,特大喜讯。 我的USB设备今天提速后测试结果为:单写速度达到4.5Mbps。 哈哈! [/B][/QUOTE] 那就是576kbytes/s了?恭喜恭喜! |
|
|
17楼#
发布于:2001-09-04 12:15
最新消息,特大喜讯。
我的USB设备今天提速后测试结果为:单写速度达到4.5Mbps。 哈哈! |
|
|
18楼#
发布于:2001-09-04 09:00
超时是挺麻烦的。有时候一直不返回,如果硬把设备拔下,下次再插入就不枚举了。
|
|
|
19楼#
发布于:2001-09-03 20:36
速度快有什么用?
现在驱动有问题,在处理超时时会引起系统崩溃!我快头疼死了。 |
|
|
上一页
下一页