一种SDMMC存储器启动方案在SoC中设计与实现.docVIP

一种SDMMC存储器启动方案在SoC中设计与实现.doc

  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文档。上传文档
查看更多
一种SDMMC存储器启动方案在SoC中设计与实现

一种SDMMC存储器启动方案在SoC中的设计与实现   摘要:本文通过分析嵌入式系统的启动过程,设计实现了基于SD/MMC存储卡的直接启动方案。该方案基于AMBA总线,采用硬件描述语言(Verilog HDL)实MSD/MMC启动控制器,利用EDA工具VCS进行仿真,Synplify进行综合,采用Altera公司的FPGA进行验证。全文从系统架构设计出发,详细介绍了启动过程的硬件设计和软件流程,最后给出仿真、综合和FPGA验证结果。   关键词:SD;MMC BootLoader;AMBA;SoC      引言      SD/MMC存储器以其成本低廉、存储容量大、性能优良、安全性高等特点越来越广泛地应用于便携式设备和家用电子设备。目前很多移动嵌入式产品采用了外置NOR Flash作为Boot Flash外加SD存储器作为扩展存储容量的系统方案,或者利用芯片的管理与非器件和MMc存储器进行启动的方法,这些传统的启动方案都会使用到两种或以上的存储介质,大大增加了芯片互联的不稳定性,增大了系统面积和成本。本文全面考虑嵌入式芯片启动过程中涉及到的软、硬件问题,基于AMBA总线架构,通过硬件语言设计、软件仿真,以及FPGA验证,设计实现了一种基于SD/MMc存储器的直接启动方案,使得设计者可以使用SD/MMC作为单一的、非易失性的存储介质,使系统的成本更低、性能更优、扩展性更强。      系统架构及软、硬件设计      SoC的启动设计是一个系统且复杂的过程,需要根据总线技术综合考虑构建整个系统架构。本文中sD/MMC存储器的直接启动方案基于AMBA总线架构,除了设计sD/MMc启动控制器,还需要协调内核、ESRAM(片上存储器)、EMI(外部存储器接口)、PMU(功耗管理单元)、DMA(直接存储器存取)等完成整个启动过程。如图1所示,内核、ESRAM、EMI连接在高速AHB总线上,DMA模块实现数据在外设和存储器之间的直接传输,PMU和INTc(中断控制器)连       接在APB总线上,SD/MMc控制器实现对SD/MMC存储介质的操作。   直接启动方案由软、硬件两部分组成,对SD/MMc存储介质完成初始化之后由DMA控制器将启动代码载入到芯片内置存储空间ESRAM,并且将ESRAM映射到零地址,内核开始执行指令;软件代码实现系统的启动配置,完成硬件初始化,设置中断向量表,配置系统时钟、中断控制器、内存控制器、DMA控制器等,并且完成堆栈设置以及地址重映射等功能。      系统架构的设计      为了成功实现从SD/MMC存储器的启动,在整个硬件系统中考虑以下几个方面的实现:   1、对于不同的启动模式,在上电复位以后,需要对AMBA总线的地址译码电路进行不同的设计,实现不同的零地址映射。   2、在功耗管理模块中应保证系统启动时与启动相关的功能模块如ESRAM、DMA、SD/MMc控制器的时钟是默认打开的。   3、SD/MMc存储器在上电之后需要进行初始化配置,因而在上电之后,默认由DMA控制总线,直到完成数据载人的传输之后释放总线,CPU核从零地址开始执行程序。   4、由于启动过程中涉及到通过DMA实现代码的搬运,因而DMA的初始参数配置和时序配置应满足完成代码传输的需要。         5、由于SD/MMC启动对于程序员的设计而言是一个黑盒子,因而在保证启动控制器设计稳定性的同时,应该考虑设计中友善的接口,在启动失败时应有指示信号以便于程序员调试。      启动方案的硬件设计      sD/MMC控制器的顶层设计如图2所示,为了实现上电启动以后,sD/MMC控制器模块对sD/MMc存储器的初始化以及数据载入,在已有的代码基础上加入SD/MMC启动控制器,新建SD/MMC_顶层设计实现两个模块的连接。作为整个芯片设计的启动方案之一,模块设计中采用Boot_en信号作为使能信号,并在启动失败时输出Boot_error信号作为芯片调试信号。   硬件设计的启动控制器对存储卡进行初始化,并且通过初始化过程中存储卡对初始化命令的不同响应,判断存储卡的种类,完成单线多块(4K)数据的传输。   硬件启动控制器的状态转换如图3所示,在系统上电复位和时钟稳定之后,硬件启动控制器进入BOOT_IDLE状态对Boot_en信号采样,当信号有效则进入sTART状态,否则进入IDLE状态;在START状态首先检查是否有sD/MMC卡连接在卡槽上,之后完成模块输入时钟配置、清除状态寄存器、更新输出时钟等操作。此时应注意将初始化过程中的输出时钟频率设定在低于400kHz;在完成以上设置之后发送CMD0命令,应考虑到在上电后存储卡需要初始化延时(74个输出时钟周期,最大时

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档