如何通过单片机控制 Nand Flash

2019-07-15 22:23发布

tica, Tahoma, Arial, sans-serif">背景:      
        最近有一个项目是 一个嵌入式系统设备。
        功能:信号采集,数据存储,数据传输(USB+蓝牙)。
        主控MCU:一个M0核的单片机

       由于需要存储的数据有点大(大概130MB)。为了能够将数据上传到PC机,我计划将该设备的存储模块做成一个类似于U盘的东西------只要插上PC机就可以识别,并能够把里面数据文件拷贝出来。
所以需要外加一个存储模块。
        存储:一个256MB的 nand flash 芯片

        但是由于该MCU没有USB接口,为了缩短数据上传的时间,计划加一个 nand flash 控制器(通常控制器都带USB接口),专门用来读取nand flash 中的数据,写flash 不要求高速
        这样的话,就等于是通过 单片机和 “nand 控制器” 同时控制nand flash芯片了。
单片机负责写入,花费15个I/O口与nand flash 的各管脚相连。”nand flash 控制器“负责 PC机与nand flash 之间的数据传输,就像下图。
       由于数据量较大,传输起来需要USB,但是该单片机没有USB口,所以要么采用一个nand flash控制器,要么换一个带USB的MCU。而我的初步计划是前者。(为什么呢?因为该单片机集成了蓝牙,该设备同时需要可以在上位机显示实时数据。)

问题来了:
         1,如何实现,通过单片机写,通过控制器读的切换?互相之间不能影响。
         2,单片机要对nand flash 进行读写,并且创建文件,就需要有一套文件系统。但是专用与nand flash 的文件系统YAFFS好像只用于LINUX,而 windows 不支持,不知道IOS支不支持。(这里还请有经验的人给小弟我解惑,不胜感激~).
         3,通过单片机来读写同样得涉及到 ECC校验,坏块管理,垃圾搜集,负载均衡,这个算法是否很复杂,应该添加在哪一层。用FAT文件系统的话,该如何解决这些问题。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
wufa1986
1楼-- · 2019-07-16 04:09
你还不如使用SD卡记录数据,很多芯片官网都直接提供了代码,包括文件系统,比如我常用的STM32系列就有很详细的例子,atmel也有。
kingG
2楼-- · 2019-07-16 05:50
 精彩回答 2  元偷偷看……
witte
3楼-- · 2019-07-16 11:11
SD NAND (sailor SD)
针对嵌入式领域小容量上非常多变的应用场景,把小容量的SLC NAND跟SD的controller包在一起,然后定制的FW。
6x8mm封装,WSON/8的封装,容量从128MB-1GB都有。
SDIONAND是怎样的芯片?不就是SD卡吗?
不一样,T卡用的wafer很多是ink die,T卡是一个模组,很多坏掉就换新的。我们这个是贴在板子上,都是用good die做的,而且我们封装形式比较小,焊在板子上稳定性比较高,T卡是插上去的由于震动可以能引起接触不良,会脱落。
应用领域? 蓝牙耳机,穿戴式设备,等电子消费类产品。
优点?     
           缩小PCB面积                                                
           质量更有保障                                       
           兼容性高                                          
           耐高温可以过回流焊                  

QQ:3073005119
CAPTAIN_H
4楼-- · 2019-07-16 16:26
PC读取flash的速度有要求吗,你可以试着用一个并口的 nand flash,PC读取FLASH的方法是, PC--mcu--flash.如果代码合理,速度可以轻松上M/s,PC和MCU通过串口转USB连接。
如果线速度慢,还有PC和MCU通过  USB转并口  连接,
都可以在PC机上实时看到数据
CAPTAIN_H
5楼-- · 2019-07-16 17:40
刚发现挖坟了,日

一周热门 更多>