- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SD卡硬件启动和数据存储控制逻辑设计实现
SD卡硬件启动和数据存储控制逻辑设计实现
摘要:从介绍SD卡协议出发,分析了在初始化SD卡过程中命令发送的步骤以及进行语音数据存储的状态机设计,在不采用APB总线设计的条件下,运用Verilog语言通过模拟APB总线时序完成控制逻辑的设计,用Modelsim进行前仿,并利用Synplify和QuartusII完成综合工作,并在Altera StratixII平台上实现控制逻辑的FPGA验证。
关键词:SD卡;模拟APB总线;硬件初始化;FPGA验证
中图分类号:TP302.2文献标识码:A文章编号:1009-3044(2008)31-0990-02
Design and Implementation of the Control Logic for SD Card Initialization and Data Storaging
WANG Qing, LIU Xin-ning
(National Engineering Research Center for ASIC System, Southeast University, Nanjing 210096, China)
Abstract: Basing on introducing SD card specification,analyzing the commands sending process duringinitialization and the state-machine transform for storaging data.Control logic is carried out in Verilog language without using APB bus but by simulating APB clock cycles. Modelsim is used for front_simulation,and then Synplify and QuartusII are used to accomplish synthesis and integration.The result is validated on Altera StratixII platform.
Key words: SD card; APB Bus simulating; hardware initialization; FPGA Verification
1 引言
SD卡以其价格低廉,性能优异,存储容量大等优点在存储市场占有极大份额,目前在各个领域运用广泛,很多移动嵌入式设备中均采用SD卡作为标准的存储介质。在一般的使用过程中,SD卡的初始化以及数据存储操作均通过APB总线来实现。在本文中,设计一控制逻辑,并采用模拟APB总线时序的方式来实现硬件启动SD卡,这种设计使整个系统的架构更加简单,性能更加优异。
2 控制逻辑系统结构
如图1所示,本控制逻辑由纯硬件实现,在上电之后即开始进行对SD卡进行初始化操作。在采集的语音数据达到一定的量(512bytes)之后,即开始进行数据的存储操作。
2.1 系统结构的设计
在本设计中,控制逻辑的系统结构设计出于以下几点考虑:
1) 语音数据经过编码之后,在到达控制逻辑之前为4bit的ADPCM编码格式,而APB总线为32bit,为了使APB总线的传输效率达到最高,故考虑在接收语音数据之前,将其扩展成32bit后再存储至FIFO中;
2) FIFO大小的考虑:由于在进行数据存储操作时,以BLOCK(512Bytes)为单位,考虑到安全性以及CMD命令发送失败的情况,将控制逻辑中进行数据存储的FIFO设置为1024bytes;
3) SDIO_CONTROLLER:该部分直接和SDIO模块进行连接,是本设计中的核心部分,由于不采用APB总线,故和SDIO之间的通信都通过模拟APB总线时序的方式实现;
2.2 控制逻辑功能设计及工作原理
图2为控制逻辑工作流程。
2.2.1 SD卡初始化阶段
上电之后,控制逻辑对SD卡进行初始化操作,依据SD卡协议的相关规定,首先发送CMD0命令,将SD置于IDLE状态,在等待大于8个CLK的周期时间之后,发送CMD8,该命令用来判断SD卡类型,如果该命令有返回Response,则该卡为SDHC(High Capacity),如果没有Response,则为普通SD卡。在等待最少64个CLK时钟周期之后,继续发送CMD55+ACMD41命令,该命令用来检测卡的状态,返回的Response中如果最高位(busy_bit)为0,则表示SD卡的上电/重启操作还未完成,需要继续发送CMD55
文档评论(0)