NandFLASH和NorFLASH接口设计和驱动开发.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0 引 言 随着嵌入式系统的迅速发展,其应用环境的广泛性,复杂性对构建于系统上的Nor和Nand闪存设备提出更高要求,需要闪存设备传输速度更快,体积更小,容量更大,稳定性更好。该文在基于Samsung公司的S3C2410处理器平台上,针对FLASH闪存设备在嵌入式系统中的应用,详细分析FLASH闪存设备的接口设计方法,并针对FLASH接口特点,提出Linux环境下NorFLASH和 NandFLASH的驱动开发流程,给出详细的代码分析。 1 NandFLASH和NandFLASH对比 随着存储技术的高速发展,闪存设备因其在性能和成本方面的优势,如非易失性,可擦除性以及更低廉的价格正逐步取代传统记忆体。目前常用闪存是Nor-FLASH和NandFLASH。它们的技术性能差异显著,表1是它们的技术对比。 NorFLASH使用方便,易于连接,可以在芯片上直接运行代码,稳定性出色,传输速率高,在小容量时有很高的性价比,这使其很适合应于嵌入式系统中作为 FLASH ROM。相对于NorFLASH,NandFLASH强调更高的性能,更低的成本,更小的体积,更长的使用寿命。这使NandFLASH很擅于存储纯资料或数据等,在嵌入式系统中用来支持文件系统,在该S3C2410平台上用以支持bon文件系统。 然而FLASH闪存却是保证数据正确性不太理想的设备,应用中可能出现坏块;这就给其在嵌入式系统中的应用,如何更好地进行数据存储管理提出了更高要求。恰当的接口设计和驱动开发是解决问题的关键,本文基于S3C2410,详细分析FLASH接口设计和驱动开发流程。 2 FLASH接口设计 2.1 处理器内存分配情况 在分析FLASH的接口以及工作模式前,先分析处理器的内存分配情况。内核ARM920T是32位处理器,寻址空间4 GB,3 GB被处理器内部的寄存器和一些其他设备占用,只有1 GB用于外部寻址;这1 GB的空间S3C2410分为8个部分以支持不同的设备,每个空间为128 Mb,被命名为BANK。S3C2410给每个BANK一个片选即nGCS0~nGCS7来方便对BANK的操作,将CPU上相应的BANK连线接到外设芯片的片选引脚上就可以根据相应的地址对存储器进行控制。 2.2 FLASH在系统中的架构 FLASH模块通过系统总线与处理器相连,如图1所示。 为了拥有高速的数据交换通道,FLASH经由控制器模块通过AHB总线与处理器通信。NandFLASH控制器、NorFLASH控制器和DMA控制器都是高速总线AHB上的Master模块,都包含符合AMBA标准的总线接口模块与AHB交互工作。FLASH工作时,FLASH控制器模块和DMA控制器模块相互协作,完成各种操作。 2.3 NorFLASH的接口设计 系统用的NorFLASH芯片是Atmel公司开发的AT49BV1614A,存储空间为16 MB,在系统中常用于存放代码,系统上电或复位后获得指令开始执行,因此,应将其配置到Bank0,将AT49BV1614A的片选端nCE接至 S3C2410的nGCS0;AT49BVl614A的输出使能端nOE接S3C2410的nOE;写使能端nWE接S3C2410的nWBE0;将模式选择nBYTE上拉,使AT49BV1614A工作在 16 位数据模式。AT49BV1614A地址总线A[19~0]和S3C2410的地址总线ADDR[20 ~1相连,16位数据总线DQ[15~0]和S3C2410的低16位数据总线DATA[15~0]相连。 2. 4 NorFLASH在系统中的具体操作 以AT49BV1614A芯片时序图为例,具体说明NorFLASH的写操作,如图2所示。 CLE信号有效时系统通过I/O口向命令寄存器发送命令00H,此时WE为低电平,写操作有效,NandFLASH处于写状态。发送命令后,接着发送要读的地址,该操作将占用WE的1,2,3,4四个周期,发送地址信息时,CLE为低电平,ALE为高电平。地址信息发送完毕后,不能立刻读取数据,因为此时芯片正处于BUSY(忙)状态,需要等待2~20 ms,之后,才能开始数据读取。此时WE为高电平,处于无效状态,CE片选信号也始终为低以表明选中该芯片。 3 FLASH驱动程序开发 3.1 Linux系统下的驱动程序 Linux系统将所有的设备都看作具体的文件,通过文件系统对设备进行管理。所以在Linux架构中,和设备相关的处理分成两层:文件系统层和设备驱动层。设备驱动层用来屏蔽具体设备的细节,文件系统层向用户提供一组统一的接口。这种设备管理方法可以很好的实现设备无关性,使Linux系统可以随着外部设备的发展进行扩展,比如要添加一个设备,只

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档