- 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 [ ]
SSDD卡接口设计[[附硬件电路和程序]]
1SD
1SD
11SSDD卡标准
SD 卡标准是SD 卡协会针对可移动存储设备设计专利并授权的一种标准,主要用于制
定卡的外形尺寸、电气接口和通信协议。
1 1SD
1 1SD
11.11SSDD卡引脚功能
SD 卡的外形如图1所示,引脚功能如表1所列。SD 卡的引脚具有双重功能,既可工作
在SD模式,也可工作在SPI模式。不同的模式下,引脚的功能不同。
SD模式多用于对SD卡读写速度要求较高的场合,SPI模式则是以牺牲读写速度换取更
好的硬件接口兼容性。由于SPI协议是目前广泛流行的通信协议, 大多数高性能单片机都
配备了SPI硬件接口,硬件连接相对简单,因此,在对SD卡读写速度要求不高的情况下,
采用SPI模式无疑是一个不错的选择。
1 2SPI
1 2SPI
11.22SSPPII模式
SPI 模式是一种简单的命令响应协议,主控制器发出命令后,SD卡针对不S 同的命令
返回对应的响应。
SD卡的命令列表都是以CMD和ACMD开头,分别指通用命令和专用命令,后面接命
令的编号。例如,CMD17就是一个通用命令,用来读单块数据。
在SPI模式中,命令都是以如下的6字节形式发送的:
每帧命令都以“01”开头,然后是6位命令号和4字节的参数(高位在前,低位在后),最
后是7位CRC校验和1位停止位“1”。
SD 卡的每条命令都会返回对应的响应类型。在SPI 模式下,共有3种响应类型:R1、
R2和R3,分别占1、2和3个字节。这里仅列出了R1响应的格 式,如表2所列。当出现表中
所描述的状态时,相应的位置1。R2和R3的第1个字节格式与R1完全一样,详细内容请参考
SD卡标准。
2
2
22 硬件设计
本设计选用Freescale公司的32位低功耗微控制器MCF51QE128,采用SPI模式实现与
SD卡的接口。
由于MCF51QE128是一款低功耗的微控制器,工作电压的典型值为3.6V,与SD卡的
工作电压兼容,因而可以直接与SD卡连接,无需电平转换电路。这里选用的是MCF51QE128
的第2个SPI口,硬件连接如图2所示。
3
3
33 软件实现
软件部分主要实现MCF51QE128的初始化、底层SPI通信,以及SD卡的通用写命令、
初始化和单块数据的读写等功能。
3 1MCF51QE128
3 1MCF51QE128
33.11MMCCFF5511QQEE112288的初始化
在与SD卡通信之前,首先需要配置MCF51QE128,并初始化SPI端口。代码如下:
3 2 SPI
3 2 SPI
33.22 底层SSPPII通信
底层的SPI 通信是实现最终读写的关键。由于MCF51QE128自带SPI 硬件接口,因此
只需要读写SPI 数据寄存器的值。这里自定了byte、word 和dword三种数据类型,分别对
应于8位、16位和32位数据。代码如下:
3 3SD
3 3SD
33.33SSDD卡的通用写命令
由于SD卡的命令具有统一的格式,因此可以用一个通用的写命令函数来实现所有命令
的发送。另外,考虑到多数命令的响应类型都是R1,这里的通用写命令函数所接收的响应
类型默认为R1。函数代码如下:
3 4SD
3 4SD
33.44SSDD卡的初始化
SD卡的初始化要遵循一定的步骤。首先将SPI时钟降低到400kHz,等待至少74个时钟
周期。接着拉低片选信号,并发送CMD0命令,对SD卡进行复位并使其进入SPI模式,这
里需要正确的CRC校验,校验字节为 0x95。若SD卡进入空闲状态(即接收响应为0x01时),
则发送CMD1命令,激活卡的初始化过程,此时响应为0x00。然后设置块的长度,一般为 512
字节。最后将片选拉高并将SPI 时钟设为最大值,以保证最大的读写速度。SD卡初始化过
程如图
文档评论(0)