




已阅读5页,还剩58页未读, 继续免费阅读
(计算机系统结构专业论文)基于智能卡的闪存文件系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉科技大学 研究生学位论文创新性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下,独立进行研 究所取得的成果。除了文中已经注明引用的内容或属合作研究共同完成的 工作外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:蕴:d ! 刍 日期:兰竺! ! :! 主:堡 研究生学位论文版权使用授权声明 本论文的研究成果归武汉科技大学所有,其研究内容不得以其它单位 的名义发表。本人完全了解武汉科技大学有关保留、使用学位论文的规定, 同意学校保留并向有关部门( 按照武汉科技大学关于研究生学位论文收录 工作的规定执行) 送交论文的复印件和电子版本,允许论文被查阅和借阅, 同意学校将本论文的全部或部分内容编入学校认可的国家相关数据库进行 检索和对外服务。 鬻黧;一 指导教师签名:墟4 型 日期:趔2 :丛:f 厘 i 页 摘要 随着i c 工艺水平不断发展,智能卡处理能力不断增强,存储空间不断增大,使得卡 上可以存储越来越多的信息,因此有必要在传统智能卡平台中引入数据管理,从而能够利 用卡上资源,灵活、高效地管理卡上的各类数据。嵌入式文件系统也成为智能卡操作系统 ( c o s ) 中一个必不可少的组件。c o s 的全称是c h i po p e r a t i o ns y s t e m ( 片内操作系统) ,它 是一个专用系统而不是通用系统,不同的卡内c o s 根据应用的差异而各不相同,但是每 个版本的c o s 都必须实现文件管理。由于f a t 文件系统广泛应用于w i n d o w s 的平台, 为了增加智能卡与p c 平台的兼容性,因此我们选择f a t 文件系统作为的嵌入式平台的文 件系统。 本文主要介绍c o s 的体系结构,研究f a t 文件系统的算法与设计。最后,根据文件 系统的测试需求,开发p c s c 通讯接口,实现t c l 测试平台,并且利用t c l 脚本对文件 系统进行完整的测试。解决一些隐藏的问题,最终的性能达n - f 相关需求。 在本系统开发过程中使用s a m s u n g 公司提供的评估板为硬件环境,使用k c i l u v i s i o n v 3 1 0 作为软件开发环境,使用v s 2 0 0 5 作为测试平台的软件开发工具,然后分析 测试结果以便后期进行优化。 最后,指出了现阶段设计方案的可取之处和需要改进的地方,并指导后期项目的维护 和升级。 , 关键词:芯片操作系统;p c s c t 文件分配表;闪存;t c l 第1 i 页武汉科技大学硕士学位论文 a b s t r a c t w i t ht h ec o n t i n u o u sd e v e l o p m e n to ft h ei ct e c h n o l o g y , t h ep r o c e s s i n gc a p a b i l i t yo f s m a r t c a r di sk e e p i n ge n h a n c i n g , t h es t o r a g es p a c ei sb e c o m i n gl a r g e r , s oc a r dc a ns t o r em o r e i n f o r m a t i o n t h e r e f o r e ,i ti sn e c e s s a r yt oa d dd a t am a n a g e m e n tp l a t f o r mi nt h et r a d i t i o n a l s m a r t c a r dp l a t f o r m t h u s ,w ec a nm a k eu s eo fr e s o u r c e so fc a r dt od e a lw i t hd i f f e r e n td a t a f l e x i b l ya n de f f i c i e n t l y e m b e d d e df i l es y s t e mb e c o m e sa ne s s e n t i a lc o m p o n e n t o fc o s c o s ( c h i po p e r a t i o ns y s t e m ) ,i sas p e c i a ls y s t e mb u tn o tag e n e r a ls y s t e m e a c hc o s i s d i f f e r e n ta c c o r d i n gt ot h ed i f f e r e n ta p p l i c a t i o n ,b u ti tm u s tc o n t a i nf i l es y s t e m t h ef i l es y s t e m i sw i d e l ya p p l i e di n t h ew i n d o w s ,i no r d e rt oi n c r e a s et h ec o m p a t i b i l i t yo ft h es m a r t c a r da n dp c , w es e l e c tt h ef a tf i l es y s t e ma st h ef i l es y s t e mo fe m b e d d e dp l a t f o r m i nt h i sp a p e r , w ei n t r o d u c et h es y s t e ms t r u c t u r eo fc o s ,s t u d yt h ea l g o r i t h md e s i g no f f a t f i l es y s t e m f i n a l l y , i no r d e rt om e e tt h ed e m a n do ft h et e s t ,w ed e v e l o p ap c s c c o m m u n i c a t i o ni n t e r f a c ea n da c h i e v e dat c lt e s tp l a t f o r m w et e s tt h ef i l es y s t e mw i t ht c l s c r i p tl a n g u a g ei n t e g r a l i t y w es o l v es o m eh i d d e nb u ga n dt h ef i n a lp e r f o r m a n c em e e t st h e c o r r e s p o n d i n gr e q u i r e m e n t i nt h ed e v e l o p m e n t ,w eu s ee v a l u a t i o nb o a r dw h i c hp r o v i d e db ys a m s u n ga sh a r d w a r e e n v i r o n m e n t ,k e i lu v i s i o nv 3 10 a ss o f t - w a r ed e v e l o p m e n te n v i r o n m e n t ,a n du s et h ev s 2 0 0 5a s t h et e s tp l a t f o r md e v e l o p m e n tt 0 0 1 t h e nw ea n a l y s e st h et e s tr e s u l tf o rf u r t h e ro p t i m i z e r i nc o n c l u s i o n ,ip o i n t so u tt h em e r i t sa n df a u l t so ft h ep r e s e n td e s i g nf o rh e l p i n gm a i n t a i n a n du p g r a d eo ft h ew o r k k e yw o r d :c o s ,p c s c ,f a t , f l a s h ,t c l 第1 i i 页 目录 摘要i a b s t r a c t i i 第一章绪论l 1 1 研究背景及意义。l 1 2 国内外研究现状一l 1 3 本文主要工作2 1 4 本文的结构安排2 第二章研究基础4 2 1 智能卡的逻辑结构4 2 2 智能卡操作系统的体系结构4 2 3 闪存文件系统6 2 3 1f l a s h 存储器的硬件基础6 2 3 2 文件系统概述7 2 3 3 常见的闪存文件系统。8 第三章文件系统的层次结构模型研究9 3 1 文件系统层9 3 2f l a s h 传输层ll 3 3 驱动层1 l 第四章文件系统层的设计与实现1 5 4 1 文件系统层的存储结构1 5 4 1 1 保留扇区1 5 4 1 2 文件分配表l 7 4 1 3 根目录18 4 1 4 文件和目录数据区18 4 2 重要的数据结构l9 4 2 1 引导扇区b i o s 参数表( b p b ) 1 9 4 2 2 文件目录2 0 4 2 3 文件系统抽象层2 3 4 2 4 物理存储器的数据结构2 4 4 3 文件系统初始化流程说明2 5 4 4 文件系统层函数举例2 6 4 4 1 文件系统控制函数2 6 4 4 2 文件输入输出函数2 6 4 4 3 目录操作函数2 8 第1 v 页武汉科技大学硕士学位论文 4 5 文件系统层函数的指令封装2 9 4 5 1a p d u 介绍。2 9 4 5 2 私有指令的封装3 0 第五章f l a s h 传输层的设计与实现3 2 5 1f l a s h 传输层的层次结构3 2 5 2f l a s h 传输层物理层上的存储结构3 3 5 3 初始化流程3 3 5 4f l a s h 传输层的解决方案3 4 5 4 1 地址转换3 4 5 4 2 坏块管理3 4 5 4 3 擦写均衡3 4 5 4 4 掉电保护3 5 5 4 5 校验纠错3 5 第六章p c s c 应用程序的设计与实现3 6 6 1 应用程序的层次结构3 6 6 1 1p c s c 规范介绍3 6 6 1 2t c l 语言介绍3 7 6 1 3 应用程序主要功能3 8 6 1 4 重要控件的实现3 9 6 2 应用层与脚本层的接口模型4 2 第七章f a t 文件系统的测试4 4 7 1 测试平台的应用环境4 4 7 1 1 硬件环境介绍4 4 7 1 2 软件环境介绍4 4 7 2 测试设计4 4 7 2 1 功能测试4 4 7 2 2 性能测试4 6 7 2 3 压力测试4 7 7 3 测试总结4 9 第八章结束语5 0 8 1 工作总结5 0 8 2 工作展望5 0 参考文献51 致 谢5 4 附录a 攻读学位其间发表的论文5 5 第l 页 1 1 研究背景及意义 智能卡,英文名称是“s m a r tc a r d ,是一种内嵌芯片的塑料卡。它是在光电卡、 条码卡、磁卡等传统卡之后出现的一种新型卡。 智能卡是由法国人布尔于1 9 7 6 年发明的,将含有存储加密模块和数据处理模块的集 成电路芯片封装于和信用卡一样大小的卡片中,便构成了智能卡。随后,智能卡的发卡量 以每年4 0 以上的速度增长,它作为一种新的信息媒体,不但可以替代传统的标识卡, 而且在更广泛的领域得到了应用,例如:金融财务、零售服务、社会安全、交通旅游、医 疗保健、政府行政、教育、娱乐、通信等领域。 这种集成电路卡是随着i c 产业的发展以及社会对信息安全和存储容量要求的日益提 高而应运而生的,其涉及到微电子技术、计算机技术、信息技术、系统工程和社会工程等 多个学科。 由此,对智能卡的研究不仅在能方便社会生活的日益增长的需要,而且对社会各个领 域的经济发展具有非常重要的现实意义。 同时,智能卡操作系统( c o s ) 作为智能卡软件的核心,也是嵌入式系统发展的一个分 支,因此对智能卡操作系统的研究就显得极其重要。c o s 1 】由文件管理、命令解释、安全 体系和传输管理等模块组成。本文的研究重点是文件管理,也涉及到命令解释和传输管理 模块。 1 2 国内外研究现状 我国的智能卡技术起步比较晚,但是目前正在迎头赶上,目前国内智能卡发展具有如 下增长点: ( 1 ) e m v 迁移 在智能卡的发展过程中,银行的信息化程度进一步深化非常关键,尤其指银行卡方面。 现在全球的银行卡正由磁条卡向i c 智能卡过渡,也就是业内经常提到的e m v 迁移现象。 为了防止信用卡欺诈,已经推动信用卡往智能卡迁移。此外,e m v 迁移另一个真j 下的动 力来源于智能卡可以通过多应用卡技术为用户提供增值服务和各种不同的个性服务。因 此,我们现在常用的银行卡都属于磁条卡,磁条卡以后必将被i c 卡代替。 ( 2 ) 二代身份证 除了e m v 迁移之外,第二代智能卡身份证也已经得到全面推行。在国内,大唐微电 子、同方微电子、华大等知名芯片供应商已经成为主流的身份证芯片提供商。 ( 3 ) 三卡合一 公交卡、电信卡、银行卡的融合正在全球被积极提倡。在中国,这几类智能卡的独自 发展都已取得了显著的成绩,融合的工作正在得到进展。 目前,国外的智能卡行业发展还是领先于中国,例如法国在上世纪9 0 年代初就全部 第2 页武汉科技大学硕士学位论文 舍弃金融卡,改用智能卡了。相关业务也发展得更为普及,诸如多应用电子钱包,可以提 供电子票务、电话服务等不同功能。同时还可以支持多种小额支付功能,例如超市、零售、 公交、航空、公路、加油站、出租车、医疗等方面。 以上提到了智能卡的多种应用,其中非常重要的一部分就是数据管理。因此如何在智 能卡中对数据进行有效的管理,成为了本文研究的核心内容。 1 3 本文主要工作 本论文以智能卡为切入点,选择三星公司的s 3 f s 9 c i 开发板为开发平台,其中此款平 台中芯片内置7 6 8 k 的n o rf l a s h ,用于开发i s o 文件系统,此版文件系统符合 i s 0 7 8 1 6 - 4 规范。另外通过f l a s h 控制器外接1 2 8 m 的n a n df l a s h ,用于开发标准的 f a t 文件系统,此版文件系统符合微软相关规范。 在n a n df l a s h 中选用何种文件系统,本文做了比较充分的调研,分析了常用文件 系统的差异,在众多文件系统中,f a t 文件系统的兼容性好、应用广泛并且实现起来比较 方便,所以论文选择软件实现并且将其应用到智能卡的n a n df l a s h 存储设备中。 本文将文件系统分为两层:文件系统层和f l a s h 传输层。 文件系统层主要负责管理的最小单位是逻辑扇区,对上层应用提供的最小单位是文 件。通过i s 0 7 8 1 6 4 规范,将文件系统层对上层的a p i 封装成相应的私有a p d u 指令。 f l a s h 传输层作为文件系统层与驱动层的接口,用于增加地址映射和擦写均衡等算 法,用于延长n a n df l a s h 的使用寿命,同时也可以作为底层支持开发其它版本的闪存 文件系统。 随后,通过开发p c 端的p c s c 应用程序,并且同时添加了t c l 测试平台建立起了 由脚本、应用程序和文件系统组成的软件测试环境。 最后,通过搭建起来的测试环境,对这个版本文件系统做了比较详细的功能测试、性 能测试和压力测试,最后的测试结果符合预期。 1 4 本文的结构安排 本文分为八章,各章内容组织如下: 第一章简要介绍了智能卡的发展和对其进行数据管理的研究背景和意义,并且分析 其国内外研究现状,介绍了本文所做的主要工作和文章结构安排。 第二章对智能卡的基础知识做了介绍,介绍了智能卡的逻辑结构、智能卡操作系统 的体系结构和闪存文件系统的相关知识。 第三章重点介绍了f a t 文件系统的层次结构模型,包括:文件系统层、f l a s h 传输 层和驱动层。分别介绍了它们的功能划分。 第四章详细介绍了文件系统层的设计思路和具体实现,包括其存储结构的详细说 明、重要的数据结构、关键的函数实现,和其a p i 的封装。 第五章详细介绍了f l a s h 传输层的设计思路和具体实现,包括传输层的层次结构、 其存储结构和相关核心技术的解决方案。 第3 页 规范,和t c l 脚本的相 平台的搭建,在本章的 第七章介绍f c s c 应用程序对f a t 文件系统进行测试,包括功能测试、性能测试和 压力测试,最后给出了测试结果。 第八章总结了本文工作的创新与不足,并简要分析了智能卡文件系统存在的难点, 最后对此研究领域将来的工作做出了展望。 第4 页武汉科技大学硕士学位论文 2 1 智能卡的逻辑结构 芯片的逻辑结构如图2 1 所示。 第二章研究基础 g n 。v c c 趴m r s t c p u 加密逻辑 r o m c l k加 f l s h 图2 1 芯片逻辑结构 c p u 加密逻辑:运行c o s 程序,保证f l a s h 外界不能用任何非法手段获取f l a s h 中的数据。 r o m :存放c o s 程序的区域。 r a m tc o s 工作时存放命令参数、返回结果、安全状态及临时工作密钥的区域。 f l a s h :存放用户应用数据区域,c o s 将用户数据以文件形式保存在f l a s h 中,在 满足用户规定的安全条件时,可进行读或写。 v c c ( c 1 ) :电源电压 r s t ( c 2 ) - 复位信号 c l k ( c 3 ) :时钟信号 c4 :未使用 g n d ( c 5 ) :接地 c 6 - 未使用 i o ( c 7 ) :输入输出 c 8 :未使用 2 2 智能卡操作系统的体系结构 智能卡操作系统【2 】- 【5 】,即c o s ,它的定义,简单的说是智能卡芯片上的一个系统软件, 用于接收和处理外界发给智能卡的各种信息,并给出相应的应答信息。 c o s 在智能卡上的概念与d o s 在p c 中的概念差不多,替用户管理智能卡内的各种 文件,选择并执行应用的各种功能。c o s 更安全,有自己的安全体系。 武汉科技大学硕士学位论文第5 页 c o s 的系统框架如图2 2 所示。 调度层 m d u 指+ 循环 c a i u !j c r e 7 v j c a p i 应用层 行业虑用s t k 指令 j c v m 八 逻辑层 文件系统 安全通讯密钥管理安全体系 j 一 f v 硬件层 存储器读写模块 配置管理 姆l i 孔模块算法模块 r一一一一 芯片硬件 【一一 图2 2 c o s 的系统框架 硬件层: 提供与芯片打交道的基础a p i ,所有其它层必须通过该层访问硬件设备,禁止直接对 硬件操作。 配置管理模块:配置与硬件相关的参数,供其他模块查询芯片信息。例如:n v m 的 大小、r a m 中各个变量范围的起始大小。 通讯模块:维护与通讯相关的功能,例如:i s 0 7 8 1 6 、u s b 、m m c 等。 算法模块:维护与硬件相关的算法函数,例如:d e s 、r s a 等。 存储器读写访问模块:维护存储器的读写功能。r o m 、r a m 、n v m 的地址虚拟成线 性排布。在读取数据时r o m 、r a m 、n v m 的访问方式相同,防止多种读取函数产生的 混淆。 逻辑层: 提供基本的n v m 的存储与访问的功能。在c o s 中属于功能最稳定的一部分,除极 其特殊的情况外,该部分在各个芯片上都相同。 文件系统模块:实现文件系统中文件和目录的建立、访问、修改与删除等操作。 第6 页武汉科技大学硕士学位论文 密钥管理模块:实现密钥的添加和查找操作。 安全通讯模块【6 】:与通讯相关的加密解密操作和各种算法的抽象,支持相关的算法如 3 3 、s c b 2 等。 安全体系:维护安全寄存器中的安全状态,提供与安全状态相关的操作函数。 应用层: 实现应用的基本功能,主要分为以下三个部分。 行业应用:主要处理与文件体系、密钥和安全体系相关的a p d u 指令。例如:p b o c 、 社保、p s a m 、s i m 、u s i m 等应用相关的a p d u 指令。 s t k 指令:主要实现s t k 的指令和与s t k 相关的辅助功能。 j ca p i 、j c v m :主要实现j a v ac a r da p i 、j c v m 和与j a v a 相关的辅助功能。 调度层: 实现卡片各个功能之间的调度和执行。 a p d u 循环:基本a p d u 指令的调度、a p d u 补丁程序的调用。 c a r e - s t k 程序的入口处理、s t k 指令补丁的调用。 j c r e i t :j a v a 程序的入口处理、j a v a a p i 补丁程序的调用。 2 3 闪存文件系统 2 3 1f l a s h 存储器的硬件基础 市面上嵌入式系统多数使用闪存为其外存储器【8 】【9 】。闪存分成n o rf l a s h 和n a n d f l a s h 两种类型。n o rf l a s h 技术是由i n t e l 在1 9 8 8 年率先开发的,彻底改变了原先由 e p r o m 与e e p r o m 垄断的格局。随后,1 9 8 9 年东芝发明了n a n df l a s h 架构,它强调降 低每比特的成本,能够提供更高的性能。目前,n o rf l a s h 的容量从几k b 至i j 6 4 m b 之间不 等,而n a n df l a s h 存储芯片的容量从8 m 到1 2 8 m 。 n o r 和n a n d 的性能比较如下【l o 】: ( 1 ) n o r 的读取速度与n a n d i :t 较稍快一些: ( 2 ) n a n d 的写入速度i : :n o r 要快很多; ( 3 ) n a n d 的4 m s 擦除速度远匕b n o r 的5 s 快; ( 4 ) n a n d 的擦除单元更小,其相应的擦除电路更小。 根据n o r 和n a n d 的特性,我们习惯在n o r 的部分区域存放代码,不过同时也将其作 为数据存储介质。而n a n d ,经常通过串行接口扩展,用来替代硬盘或者其它块设备。 因此此版f a t 文件系统应用在n a n d1 2 8 m 的数据存储区。 本系统采用的三星公司【1 1 】【1 3 】型号为k 9 f 1 g 0 8 u o b 的n a n df l a s h 。图2 3 为其物理层 结构。 7 页 1 0 2 4 个 2 k 字节 图2 3k 9 f 1 g 0 8 u o b 的物理层接口 可以发现,该芯片的读操作最小读耿单位是b y t e ,写操作最小单位是页,擦除操作最小 单位是块,a 1 2 - a 2 7 寻址范围是6 4 k ,用于寻址页,a 肛a l l 寻址范围是4 k ,用于页内寻址。 设备大小为1 0 5 6 m b i t ,块大小为( 1 2 8 k + 4 k ) b y t e s ,页的大小为( 2 k + 6 4 ) b y t e s 。其中每页的 后6 4 字节区域为s p a r e 区,用于存放e c c 校验码、标记坏块等关键信息,文件系统会用到这 个区域。 n a n df l a s h 的擦写遵循以下原理:只能由l 写成0 ,不能由0 写成l 。 块擦除是放电的过程,页编程是充电的过程,即把需要写成0 的部分进行充电。n a n d 出厂时允许有坏块,擦写次数过多也会产生坏块,因此坏块的处理显得异常重要。n a n d 有时也会因为写操作不当等因素出现比特翻转的问题,通过e c c 校验能一定程度上解决这 些问题。另外在改变磁盘数据过程中出现掉电情况的话,将有可能出现数据混乱的问题, 因此掉电保护也必不可少。n a n df l a s h 一次随机读的时间为2 5 1 1s ,一次顺序读的时间 为2 5 n s ,一次页编程的时间为2 0 01 ts ,一次块擦除的时问为1 5 m s ,平均寿命为1 0 万次,数 据保留时间为1 0 年。 2 3 2 文件系统概述 文件系统1 4 】【1 7 1 是一种用于向用户提供地址数据访问的机制。它将设备中的空间划分为 特定大小的块( 扇区) ,一般每块5 1 2 字节。数据存储在这些块中,大小被修正为占用整数多 个块。由文件系统软件来负责将这些扇区组织为文件和目录,并记录哪些块被分配给了哪 个文件,以及哪些块没有被使用。 不过,文件系统并不一定只在特定存储设备上出现。它是数据的组织者和提供者,至 于它的底层,可以是磁盘,c i j 存,也可以是其它的块设备。 第8 页武汉科技大学硕士学位论文 2 3 3 常见的闪存文件系统 1 、j f f s j f f s 2 j f f s 1 8 】【1 9 】的全称是t h ej o u r n a l l i n gf l a s hf i l es y s t e m ,是由瑞典公司a x i s c o m m u n i c a t i o n s 设计发布。它是一种f 1 志文件系统,主要应用于嵌入式l i n u x 闪存中。它自 身提供了掉电保护,垃圾回收,擦写均衡等功能。 j f f s 与传统文件系统相比,减少了中间层n f t l ,下层接口就是闪存驱动,因此能提 高闪存的使用效率。而j f f s 的一个重要特点是“追加式 ,即新的数据总是要追加到原来 数据的后面,其另外一个特点是,该文件系统可以直接在r a wf l a s h 设备上执行,这是因为 在m t d 设备驱动程序中已经支持了r a wf l a s h 。 在2 0 0 1 年,r e dh a t 开始实现j f f sv e r s i o n2 ,展i j f f s 2 ,它改善了原先j f f s 设计中的局 限。现在的j f f s 2 是完全开源的项目,任何人都可以下载其源代码,升级优化并且发布自 己的系统。 2 、y a f f s y a f f s 2 0 】【2 2 1 是设计专用于n a n df l a s h 的文件系统,其特点类似于j f f s j f f s 2 。它 同样是一种日志结构的文件系统,能够提供擦写均衡和掉电保护等相关功能。y a f f s 文件 系统分为文件系统管理层接口、y a f f s 内部实现层和n a n d 接口层。与j f f s 相比,它简化 了一些功能,因此速度更快、占用的内存也更小。但是它得缺陷是不支持数据压缩。 y a f f s 采用多策略混合的垃圾回收算法,将贪心策略和随机选择策略按照一定比例混 合使用:当满足特定的小概率条件时,垃圾回收器会试图随机选择一个可回收的页面,否 则,使用贪心策略回收最“脏的块。这种多策略混合算法能够有效地改善由于使用贪心策 略造成的不均,通过不同的混合比例,控制损耗平均和系统丌销之间的平衡。 3 、f a t 初期的f a t 2 3 】【2 5 1 就是现在所说的f a t l 2 ,设计于1 9 7 0 年末,是专门为软盘操作系统所 设计,被m s d o s 所支持,分区最多支持3 2 m 。1 9 8 7 年,微软发布了最终的f a t l 6 ,f a t 有了更大的空间,最大的分区大小扩展至u 2 g b 。2 0 0 0 年左右,微软为了解决f a t l 6 容易引 起的大量内存碎片的问题,实施了新一代的f a t ,并且被称为f a t 3 2 ,带有3 2 位的簇数, 目前用了其中的2 8 位。理论上,这将支持总数达2 6 8 ,4 3 5 ,4 3 8 ( 2 2 8 ) 的簇。 这三种文件系统都主要通过f a t 表来管理磁盘空间。f a t 文件系统的结构是这样的: m b r 区、d b r 区、f a t 区、f d t 区、f d t 区和d a t a 区。 我们在智能卡系统中选用f a t 文件系统主要是由于其具备别的文件系统无法比拟的兼 容性,另外,由于智能卡对嵌入式式系统的实时性要求非常高,要求其响应时间短,因此 我们必须得在功能完整性方面有些舍弃,例如智能卡支持的文件系统擦写均衡的算法不能 实现的过于复杂,也得舍弃其垃圾回收的功能,同时保留必须的坏块处理功能。下节,将 介绍文件系统的层次结构。然后,从下章开始,将开始介绍文件系统的详细设计与实现。 武汉科技大学硕士学位论文第9 页 第三章文件系统的层次结构模型研究 本论文分成3 层实现文件系统,分别是驱动层,n f t l 层和文件系统层。其结构如 图3 1 : r 一一一一一一一一一一一一一一1 ; 文件系统 i : i | y | 弋夕 n a n df 1 a s 啭输层 :二一一一一一一一一n f t t s 接口一一一一一: i !一一一: : 坏块管理 : 擦写均衡 ; 闷 弋夕 r 一一一一一i r l l d e jj 妙 图3 1 文件系统层次结构 3 1 文件系统层 文件系统层主要负责实现为应用所需要的文件目录读写接口,为应用层提供统一的 接口函数。应用层对文件系统层进行操作的基本单位是文件。为了实现各层的功能,每层 都需要占用一定的物理空间来放置各层必要的信息,因此文件存储的起始地址并不是物理 地址的0 。图3 2 为有关每一层起始地址和截止地址。 第l o 页 武汉科技大学硕士学位论文 麴醒j j j j j j j 羔翅j j j j j j j j j 图3 2 文件系统与n 订l 文件系统就是操作系统的一部分,为操作系统提供关于文件目录的操作机制。文件系 统应该具有以下2 个功能模块: ( 1 ) 文件管理子模块:描述文件的逻辑结构和其在f l a s h 上的物理分布; ( 2 ) 目录管理子模块:描述目录的逻辑结构和其在f l a s h 上的物理分布。 文件系统的功能模块如图3 3 所示。 图3 3 文件系统的功能框图 武汉科技大学硕士学位论文第1 1 页 3 2f l a s h 传输层 f l a s h 不同于传统的块设备,但是其作为存储介质被广泛应用。n f t l t 2 6 】【2 7 ( n a n d f l a s ht r a n s l a t i o nl a y e r ) 就是现有系统与f l a s h 之间的接e l 驱动层,这层屏蔽了 f l a s h 与普通的块设备之间的差异。它主要实现两个方面的功能: ( 1 ) 物理地址到逻辑地址的转换; ( 2 ) 实现损耗均衡、坏块管理。 n f t l 层对上层文件系统提供的接口主要包含:开启n f t l 、关闭n f t l 、读扇区、写 扇区、格式化。 3 3 驱动层 驱动层的功能主要为实现底层驱动对上层的读写函数。n a n df l a s h 对于智能卡来 说属于片# m e m o r y ,通过n d f c ( n a n df l a s hc o n t r o l l e r ) 挂接在芯片外部。n d f c 为n a n d 的主控制器提供硬件接口,与n a n df l a s h 建立高速通道。它支持e c c ,包含5 位识别和4 位纠错。 n a n df l a s h 驱动层的操作支持按块擦、按页读、按页编程、不支持按字节写。擦除 操作为将存储单元由0 变成l ,而写入操作则是将存储单元由l 变成0 。擦除和写入操作一般 通过控制f l a s h 的寄存器来处理。 块擦除操作步骤: ( 1 ) 写入自动块擦除操作码6 0 h ; ( 2 ) 写入需要擦除的块地址; ( 3 ) 写入擦除操作开始的操作码d o h ; ( 4 ) 延时几个微秒,再读取状态寄存器; ( 5 ) 延时,等待总线上第6 位是否被清除0 或空闲信号信息; ( 6 ) 若是则读取状态寄存器,判断读出的状态信息第0 位是否为o ; ( 7 ) 若是0 ,表示擦除操作成功,否则代表未成功,返回失败信号由主函数处理。 另外,如果擦除过程中发生错误,用一个新的块代替错误块。 其流程如图3 4 。 第1 2 页武汉科技大学硕士学位论文 图3 4n a n df l a s h 块擦除流程图 否 页编程操作的一般步骤: ( 1 ) 写入写数据的操作码8 0 h ; ( 2 ) 写入存储数据的地址; ( 3 ) 延时后,往页内的相应地址写入数据; ( 4 ) 写入操作码1o h ,表示数据结束; ( 5 ) 延时,等待处理完后给r e a d y 信号,并且读取状态寄存器; ( 6 ) 延时,等待总线上第6 位是否被清除0 或空闲信号信息; ( 7 ) 若成功则读取状态寄存器,查看读出的状态信息第o 位是否被清o ; ( 8 ) 若是o ,表示擦除操作成功,否则代表未成功,返回失败信号由主函数处理。 需要注意的是:如果页编程过程中发生错误,标出当前页所处的块,把要写入的数据写 到备选块。 其流程如图3 5 。 第1 3 页 图3 5n a n df l a s h 页编程流程图 页读操作的一般步骤: ( 1 ) 写入读操作操作码o o h ; ( 2 ) 写入需要读取的页地址; ( 3 ) 写入操作码3 0 ,表示开始读取数据; ( 4 ) 读取数据,并产生e c c 校验码; ( 5 ) 比较校验码,若为相同返回成功标志,如果不同则返回失败标志,由主 函数做相应处理。 其流程如图3 6 。 第1 4 页 武汉科技大学硕士学位论文 ( 二二 、一,一7 图3 6n a n df l a s h 页读流程图 , 一 ( 武汉科技大学硕士学位论文第1 5 页 第四章文件系统层的设计与实现 4 1 文件系统层的存储结构 一个f a t 文件系统的结构由4 部分组成:保留扇区,文件分配表,根目录,数据区。 其中,f a t 3 2 不包含根目录,表4 1 标出了f a t 3 2 分区的基本构成: 表4 1f a t 3 2 分区的基本构成 l 扇区3 1 个扇区 专臀 同 第2 簇不足一簇 取大小 f a t l 吣留扇区jl 数据区一一 4 1 1 保留扇区 f a t 3 2 保留扇区是引导扇区和其余保留扇区组成的,共占用3 2 个扇区,这点与f a t l 6 只含有一个保留扇区不同。 引导扇区( 启动区) 是文件系统中第一个重要的数据结构,它位于文件系统层的第一 个扇区,与文件系统存储结构相关的信息都存放在这里,每次上电通过程序初始化读出该 扇区可以得到各个区的起始地址以及其他一些基本信息。启动区的字段如下表所示。 表4 2 启动区的字段 启动区的字段( b o o ts e c t o ra n db p bs t r u c t u r e ) 字节位移 字段k 度( 字节) 参考值名称和定义 o x 0 0 3e 9 0 0 0 0 跳转指令( b s _ j m p b o o t ) 。 o x 0 38m s w b q 4 1 格式化名称( b s _ o e m n a m e ) ,建议值为“m s w i n 4 1 ”,可以避 免兼容性问题。 o x o b2o x 0 2 0 0 每扇区字节数( b p b _ b y t s p e r s e e ) ,取值一般为:5 1 2 ,1 0 2 4 ,2 0 4 8 , 4 0 9 6 。其中,5 1 2 字:1 了的兼容性最好。目前多数f a t 代码都是硬性 规定每扇区字节数为5 1 2 。 0 x o dl0 x 4 0 每簇扇区数( b p b s e c p e r c l u s ) ,取值为2 的n 次方( n 为大于等于0 的整数) ,每簇字节数不能超过3 2 k 。 o x o e20 x 0 0 0 1 保留扇区数目( b p br s v d s e c c n t ) ,引导扇区和其它保留扇区的总 和,它的起始扇区为文件系统层的第一个扇区。其值不能为0 , n 2 f a t l 6 必须为1 ,f a t 3 2 的典型值为3 2 。 第1 6 页武汉科技大学硕士学位论文 r 丽一厂1 厂石二厂一 _ h _ h h _ _ _ _ n h ”n r _ h _ _ 盼区中f a t 表的个数( b p b j i 啪f a t s ) ,建议值为2 。 一_ “h 一- h _ ,_ ”h h 一一 1 一_ * h 0 x 0 2 0 0 ;根目录数( b p br o o t e n t c n t ) ,对于f a t l 2 和f a t l 6 ,这个域包含 根目录中目录的个数( 每项长度为3 2 b y t e ) ,对于f a t 3 2 ,此项必 须为o 。在一个典型的磁盘上,本字段的值为5 1 2 。 早期版本小扇区数( b p bt o t s e c l 6 ) ,此分区上的扇区数,表示为1 6 1 位( 小于6 5 5 3 6 ) 。对于大于6 5 5 3 6 个分区来说,本字段为o ,使用 l 大扇区数来替代它。 l 媒体描述符( b p bm e d i a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全防护机制评估报告
- 中医结合试题及答案
- 中医考试题及答案分析
- 中医科技师面试题及答案
- 中医三基基础测试题及答案
- 中医膳食护理试题及答案
- 2025年生态茶园观光旅游项目生态旅游培训与发展建议
- 中医食疗考试题及答案
- 2025年事业单位工勤技能-安徽-安徽水生产处理工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽机械冷加工三级(高级工)历年参考题库含答案解析
- 企业廉洁管理办法
- 2025年列车长(官方)-高级工历年参考试题库答案解析(5卷套题【单项选择题100题】)
- 高三生物一轮复习课件微专题5电子传递链化学渗透假说及逆境胁迫
- DBJ50-T-306-2024 建设工程档案编制验收标准
- 2025四川雅安荥经县国润排水有限责任公司招聘5人笔试历年参考题库附带答案详解
- 2025中国银行新疆区分行社会招聘笔试备考试题及答案解析
- 动脉置管并发症
- 药品医疗器械试题及答案
- 子宫内膜类器官构建与临床转化专家共识解读 2
- 2025年甘肃省高考历史试卷真题(含答案解析)
- ESD手术常见并发症
评论
0/150
提交评论