sd卡文件系统设计.doc

sd卡文件系统设计.doc

ID:51469495

大小:31.50 KB

页数:4页

时间:2020-03-25

sd卡文件系统设计.doc_第1页
sd卡文件系统设计.doc_第2页
sd卡文件系统设计.doc_第3页
sd卡文件系统设计.doc_第4页
资源描述:

《sd卡文件系统设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SD卡文件系统设计(note)SD卡文件系统设计(note) CommonSenseofSDFSDesign~~~~~~~~~~~~~~~~~~~~~~~~~~~~~闪存功耗低,密度高,体积小,可靠性高,可擦除,可重写,容量大,便宜(howmuch?).以块为单位对SD卡进行管理.屏蔽硬件操作细节,为应用开发者提供统一的API调用.文件系统分5层(由下往上):SD卡的底层驱动层,磁盘高速缓存Cache层,逻辑盘,文件系统和应用层.1.SD卡的底层驱动层~~~~~~~~~~~~~~~~~~~~~~包括对SD卡的初始化,读/写操作.操作通过对SD卡发送命令信号

2、来实现.SD卡标准定义了两种命令:Application–specificCommand(ACMD)和GeneralCommand(GEN-CMD).普通命令直接发送,所由ACMD命令在发送前必须先发CMD55作为标识.SD卡接收命令后响应.命令和响应都遵循一定格式(SDMemoryCardSpec.Part2FileSystemversion1.0.SDGroup,2000).MMC与SD卡的插槽一样,具体实现稍有区别.SD卡初始化流程如下:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

3、zzzzzzzzzzzzzz1)配置SD卡的控制寄存器中断寄存器2)判断:有卡插入?有,下一步;无,等待.3)判断:发送命令ACMD41:判断插入的卡是不是SD卡?是,下一步;否,返回.4)发送命令CMD2:获取卡的CID(每个卡都有自己特有的CID号,由厂商定义;接收到CID后,卡进入认证状态)5)发送命令CMD3:分配卡的相对地址RCA(即为本系统对卡的访问提供一个临时的访问地址)6)发送命令CMD16:设置数据块的大小7)发送命令ACMD6:设置数据总线宽度(可选,默认数据宽度为4位)zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

4、zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzSD卡读写数据是以块为单位进行的.对卡读一个或多个块通过发送CMD17/CMD18命令来实现;对卡写一个或多个块通过发送CMD24/CMD25命令来实现.这些数据在末尾附有CRC校验码,如果校验码失败,则所传输的数据都会被丢掉,数据的读/写操作也会被中止.2.Cache层~~~~~~~~~~~~~Cache原理:使用较快的存储装置保留一份从较慢速存储装置中所读数据,使读/写动作先在较快速的装置上完成,这样可以提升系统的响应速度.Cache越大,响应速度越快.决定处理器成本的最主要的因

5、素就是处理器芯片的面积.缓存的主要结构如下:typedef struct _Disk_Cache{  U8 Drive; //表示Cache数组中某个元素的存储状态  U8 Flag;  //表示某个元素可以被某种方式访问:只读/只写/读

6、

7、写  U8 RW_ID;  //计数器,表示元素有多久没被访问了  U32 SecIndex; //记录被缓存的扇区的逻辑扇区索引  U8 buf[DISK_CACHE_SIZE]; //存放被缓存的扇区的具体内容}Disk_cache;当有读/写的需求时,从SD卡读取的数据copy一份放到Cache数组的空闲扇区中;

8、如果系统继续要求读取/写入同一份数据或同一扇区时,系统就可以直接从Cache中进行读/写,从而大大提高系统存取速度.每次访问Cache时,Cache数组中所有元素的RW_ID值会被加1,直至最大值;当某个元素被访问时,这个元素的RW_ID值被清零;当cache数组的所有元素都已分配又有新的扇区被访问时,找出Cache模块中RW_ID值最大的元素分配给新的扇区作为缓存(需要回写的内容进行回写后再分配给新的扇区).需要注意的是:这种技术如果仅用于读数据是没问题的.但用于写数据,即如果写入cache的数据不能立即写回SD卡的物理内存中,则一旦断电会丢失数据;若每

9、次都将数据回写到SD上,则影响写速度.基于这种情况,将Cache写入的方式分为直写式和回写式.a)直写式:每次写入cache的同时,把数据回写到SD卡物理内存中,以保证cache的内容和SD卡物理内存中相应单元的数据保持一致.b)回写式:只把数据写入cache(这样有可能出现cache中数据得到更新但物理内存中数据陈旧的情况),并在cache中通过设置Flag标明该缓冲区的数据是否需要回写;等系统空闲或进行cache替换时,再将数据回写到SD卡上.3.逻辑盘管理~~~~~~~~~~~~~~所谓逻辑盘指通过扇区映射吧SD卡物理存储数据的地址隐藏起来,上层通过

10、对逻辑扇区的操作实现对物理扇区的存取.这个模块存有逻辑盘的基本信息

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。