yaya001
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2021-02-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1624回复:7

关于U盘数据存储的问题

楼主#
更多 发布于:2003-05-24 15:02
当从PC向U盘,写数据时,数据先写入PDIUSBD12的缓冲区,如果满了以后。对单片机产生一个外部中断。告诉单片机,可以从PDIUSBD12中去读数据了,当数据从PDIUSBD12读到单片机后,就要向FLASH去写了,但是Flash 读写的特点是,
写之前必须先擦除,而一擦又必须擦一个Block,因此在擦除某Block 之前必须保存同一个Block 中有关扇区的数据。
这就需要一个BLOCK大小的缓冲区啊,可是如果单片机没有这么大缓冲区,那该怎么吧 。我看大家单片机用89c52有作成功U盘的帖子,我想请教一下,如何解决缓冲区的问题啊,还有小弟有这么一个想法,如果在向FLASH写入数据一次就把整个U盘写满或是不写满,但是在下次写入时,以前写入U盘的数据,我都不用了,这样的话,是不是就可以不需要缓冲区和block一样大了吧,因为我在写入新数据时,以前的数据。我不用保留了,所以就可以毫无顾忌的在写之前擦除一整个Block了。

最新喜欢:

idlemanidlema...
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-26 14:46
这很简单,你只要将flash后面一块划分出来就行了!让固件循环使用这块区域!
yaya001
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2021-02-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-26 10:11
万分感谢 NewTech chenjp 两位
我目前关心的是实现U盘,这个功能,其他方面,我想在U盘功能实现以后在去改进,看完两位的介绍,我比较倾向与用flsah的一个缓冲区。
不知高手能否在用flsah作的一个缓冲区方面,提供一下资料或是参考。小弟在此叩谢大家了。
小弟在这方面是新手,希望两位多多关照小弟。谢谢
我的QQ   8752004
EMAIL    szsdlyc@etang.com
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-26 01:58
楼上的讲法没错,的确要用外部的SRAM,这对速度要求的场合比较好!而且可以缓冲其他的数据!
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-25 22:57
我也着手做u盘数据存储,有机会可以互相探讨一下,不过我还是初学者,得多请教你。我的方案是89c52+at2808u0a,我觉得可以用flsah的一个缓冲区,不过这样就浪费了一点空间,而且速度也慢了,最好是扩展一个32k RAM 省事
yaya001
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2021-02-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-25 16:47
请大家帮忙看看
小弟在这里叩谢大家了
谢谢
yaya001
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2021-02-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-24 19:32
我主要是想请教,这个缓冲区开在那里啊
是在FLASH中,还是在单片机中啊
我用的单片机是AT90s8515
FLASH  8K
SRAM  512
EEPROM  512
一般是在那里开这块缓冲区啊

NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-24 17:34
如果对速度没要求,可以在u盘上开个缓冲区,用来缓冲被擦除的block中的有用数据,等擦完在写回来!当然如果你不需要保存的话,怎么作都行的!
游客

返回顶部