本帖最后由 jcky001 于 2022-3-28 09:44 编辑
软件平台: MounRiver Studio(MRS),硬件平台:CH32V103开发板,以及一张小于32G SD卡。 一、SD卡简介 SD存储卡( Secure Digital Memory Card)是一种基于半导体快闪存储器的新一代高速存储设备。SD存储卡的技术是从MMC卡( MultiMedia Card格式上发展而来,在兼容SD存储卡基础上发展了SDIO( SD Input/ Output)卡,此兼容性包括机械,电子,电力,信号和软件,通常将SD、SDIO卡俗称SD存储卡。 SD卡具有高**容量、快速数据传输率、极大的移动灵活性以及很好的安全性,它被广泛地应用于便携式装置上,例如数码相机、平板电脑和多媒体播放器等。根据SD卡容量大小不同,可将SD卡分为以下几类: 0~2G:SD卡;2~32G:SDHC卡;32~2T:SDXC卡; 其中,SD卡协议和SDHC卡版本协议基本兼容,但SDXC卡与SD卡和SDHC卡相差较大,本文主要介绍使用SD卡和SDHC卡。 控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是SPI接口,另外一种是SDIO接口。 SPI协议驱动SD卡方式相较于SDIO驱动SD卡方式,使用引脚资源少,控制程序相对较为简单,但传输速度不如使用SDIO接口的快。由于CH32V103开发板上SD卡槽与芯片引脚的连接方式为SPI驱动方式,因此本文采用SPI协议驱动SD卡方式。 使用SPI方式驱动SD卡需要用到以下几个寄存器: ① CID:卡识别号(Card identification number),用来识别卡的唯一的个体号码; ② CSD:卡的特定数据(Card Specific Data),指卡的操作条件信息; ③ SCR:SD配置寄存器(SD Configuration Register),SD卡特殊性信息; ④ OCR:操作条件寄存器(Operation conditions register) 关于SD卡其他寄存器信息,可参考SD 简易规格文件《 Physical Layer Simplified Specification V2.0》。 关于SD命令格式,固定为48bit,通过命令线(CMD)连续传输,其具体命令格式以及命令解释如下:
|