新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的SD卡FAT文件系统读写设计

基于单片机的SD卡FAT文件系统读写设计

作者:时间:2011-11-18来源:网络收藏

2 硬件设计
有2种操作模式:模式、SPI模式。模式允许通过4线高速总线传输,但由于大部分单片机无此接口模块,故选择SPI模式。HCSl2X系列单片机内部都带有此同步串行外部设备接口(Serial Peripheral Interface,SPI)。单片机可以通过SPI系统组成一个通信速率比SCI高的同步网络,故使用SPI模式可以把外设减少到最低。SPI模式相对于SD卡模式的缺点是损失了传输速度;但是目前的微处理器的处理速度越来越高,利用SPI模式大都能满足工程需要。
的全双工8位有4个引脚,分别为主入从出引脚MISO、主入从出引脚MOSI、串行时钟引脚SCK以及从机片选引脚SS。当CS信号线为低电平时,主机开始所有的总线传输。数据从单片机的MOSI引脚同步输入 SD卡的DA引脚, SD卡返回数据由DO线同步输入单片机的MISO引脚,数据在CLK信号的上升沿同步输入和输出。

3 软件设计
3.1 HCSl2X总线时钟超频
MC9S12XSl28MAA默认总线时钟默认同外接晶振相关,但可以通过配置PLL锁相环实现单片机总线超频,从而加快SD卡读取速率。实验中可通过下列代码将单片机总线频率超频到80MHz:

c.JPG

3.2 HCSl2XSPl模块初始化
MC9S12XSl28MAA单片机包含2个串行外设接口SPI,可以很方便地实现对 SD卡接口的数据传输。为了配置时钟和数据长度,需要对SPI控制寄存器(SPCRl和SPICR2)、SPI波特率寄存器SPIBR和SPI数据寄存器SPIDR进行设置:使能,将SPICRl中的MSTR位置1使单片机工作在主机模式,产生串行时钟来同步主从双方的移位寄存器,配置SPI时钟极性位与SPI时钟相位控制位,使能从机输出选择;初始化SPI波特率寄存器。
3.3 SD卡初始化
SD卡初始数据传输需工作在低于400 kb/s的频率,因此配置SPI波特率寄存器,以工作在低速模式下。片选信号后应延时至少74个时钟周期。SD卡默认缺省使用SD总线传输协议,主机需要发出命令CMDO(CMD_GO_IDLE_STATE)才能使SD卡工作在SPI传输模式下,当单片机返回0x 01时说明已经进入了IDLE状态。此时应循环发送CMD55+ACMD41以确认是否为SD卡,如果回应超时则发送CMDl(CMD_SEND_OP_COND)以确认是否为MMC卡。经实验发现,Kingston公司的Micro SD卡使用CMD55+ACMD41或者CMDl都可以进行激活。激活SD卡的SPI模式后SD卡进入准备状态,此时发送CMDl6(CMD_SET_BLOCKLEN)设置SD卡的读写块大小,然后重新配置SPI波特率寄存器SPIBR使单片机SPI工作在高速频率下,延时8个时钟周期后返回,完成SD卡初始化。图2为SD卡SPI高速模式初始化流程。

b.JPG

51单片机相关文章:51单片机教程


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


晶振相关文章:晶振原理
锁相环相关文章:锁相环原理


评论


相关推荐

技术专区

关闭