版块
论坛
喜欢
话题
应用
搜索
登录
注册
frank_wang的个人空间
访问量
1
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=34282
(给分)优盘速度实在太慢怎么办,传不了大文件
AT89C51SND1芯片中自带的USB控制器做U盘。由于此芯片RAM只有2K,因此,我开了512个字节的缓冲区,每写满512字节,便向Flash中写。众所周知的原因,Flash必须整个Block先擦除,然后才写得上,于是我找了一个Block做缓存,先把这个缓冲Block擦干净,...
全文
回复
(
16
)
2003-05-04 23:12
来自版块 -
USB驱动开发
◆
◆
表情
告诉我的粉丝
提 交
cfqxd
:
人家用的是专用控制器,内部带DMA的,你的51片内存储、读取太慢,要是用CPLD来做,速度肯定没问题
(2009-09-13 12:56)
回复
guo136
:
我也在做,问题一样啊,那为大侠帮一下
(2009-09-11 09:26)
回复
wsqss2004
:
Frank_wang: 你也在做89c51snd吗?有qq号没,我想和你交流一下!!!!! 我现在是在写的时候出现了这种情况。在写入时会莫名奇妙的增加64或128字节的0xff,代码如下(端点2out): for(R_count=0;R_count<511;) ...
(2004-12-24 13:04)
回复
lujunql
:
不是片子的问题!程序中有些是需要用汇编写的!
(2004-12-24 12:40)
回复
zhwlu
:
解决方案在这里: QQ:69695814 TEL:029-86510973
(2004-12-24 10:34)
回复
NewTech
:
这是不会的,你算一下就明白了,usb的速度最快是1MB/s,所以在中断中使用的时间只占1/3的cpu时间,而且有2mscpu是在空等的,此外中断接受子程序要用汇编来写才够快!
(2003-05-08 02:32)
回复
frank_wang
:
编译器我用的是KEIL,应该还可以吧。 另外,你的8KRAM是单独加片子么,还是你的处理器里本来就带的有呀?我目前的设计不太允许再加RAM了。而我的芯片中仅有2KRAM 由于我已经将Block4以后的写请求直接写入而不予缓存,其实我想关键其实对于大文件...
(2003-05-07 21:08)
回复
NewTech
:
忘记说一点了,现在市面上的优盘大多数采用专用的硬件控制器,所以读出的速度1M/s,写入800k/s
(2003-05-07 20:03)
回复
NewTech
:
你可以在USB中断里接受数据,放到缓冲区里,在主程序里检测缓冲区数据的多少,大于一定的数值,就写入,再写之前判断是否为空的块,不是就要先擦除(这个时间大约2ms),按照500k/s的速度,缓冲区的大小差不多要8K byte。
(2003-05-07 20:01)
回复
NewTech
:
你的这种做法应该没有什么问题啊,是不是你用的编译器的效率太低啊!
(2003-05-07 19:57)
回复
1
2
下一页 »
frank_wang
加关注
写私信
0
关注
0
粉丝
88
帖子
返回顶部