基于AT89S52和FAT16的SD卡读写系统设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于AT89S52和FAT16的SD卡读写系统设计

来源:中国一卡通网  作者:不详  发布时间:2014-01-23 09:55:11  字体:[ ]

关键字:SD卡  读写系统  数据传输  FAT16  

摘   要:本系统采用MCS51架构的AT89S52单片机。AT89S52是一种低成本、低功耗、高性能的CMOS 8位微控制器,具有8 KB在系统可编程Flash存储器。应用AT89S52读写SD卡,首先要确定它们之间的通信方案。

  FAT16文件系统中1个文件的存储示意图如图5所示。

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图5 文件存储示例

  3.2 SD卡指令规范

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图6 SD卡指令格式

  单片机通过相应指令与SD卡进行交互。SD卡有特定的指令格式,都是6字节长,最高有效位(MSB)传输优先,如图6所示。

  SD卡指令的最高2位“01”是SD卡指令的开始标志,最后1位“1”是结束标志。6位的指令是SD卡的指令序号,例如CMD17的6位指令即17的二进制表示010001。指令参数占4字节,具体内容参照SD卡规范。7位CRC校检的生成多项式为G(x) =x7 +x3 + 1。事实上SD卡在进入SPI模式后,不再通过CRC码来确认指令的传输正确与否,指令中的7为CRC校检,只在SD模式下起作用。因此仅SD卡上电后的第1条切换SPI模式指令CMD0需要校检码,而此校检码是固定的0x95,其他指令的CRC均置1即可。

  SD卡响应有4种格式,不同指令对应不同响应,具体内容可参看SD卡规范。

  3.3 SD卡读写驱动

  3.3.1 SPI时序模拟

  用软件来模拟SPI总线的具体方法是:将SCK的初始状态置0,允许接收后(即CS置0)将SCK置1,这样单片机由DI线输出1位数据到SD卡;接着再将SCK置0,单片机由DO线从SD卡读1位数据。至此,模拟1位数据输入输出完成。此后再将SCK置1,依次循环8次,完成SPI总线1字节数据的输入输出。

  以下是本系统软件模拟SPI时序的汇编代码。以通用寄存器A作为函数参数,实现将寄存器A中的数据通过SPI总线发送出去,并将从SPI总线读到的数据存到寄存器A中。

  /*接口定义*/
  CSBITP1.0
  SCKBITP1.1
  DIBITP1.2
  DOBITP1.3
  /*SPI总线读写函数,A为传递参数,用到R4*/
  SPI_RW:MOVR4,#8
  SPILOOP:
  CLR CLK
  CLRDI
  JNBACC.7,AAA
  SETBDI
  AAA:SETBCLK;在时钟上升沿发送一位数据
  MOVC,DO
  RLCA
  CLRCLK;在时钟下降沿读入一位数据
  DJNZR4,SPILOOP
  CLRCLK
  RET

  3.3.2 SD卡的初始化

  SD卡的初始化流程如图7所示。SD卡上电延时74个时钟周期后,单片机向SD卡发送复位命令CMD0,使SD卡进入SPI模式。之后循环发送激活SD卡指令CMD1,直到接收到SD卡响应的第0位为0。

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图7 SD卡初始化流程

  3.3.3 SD卡数据块的读写

  完成SD卡的初始化后,就可以对SD卡进行读写操作。读写操作都是通过指令来完成的:单块写命令CMD24,多块写命令CMD25;单块读命令CMD17,多块读命令CMD18。单块读写时,数据块的长度为512字节,多块读写时SD卡收到1个停止命令CMD12后停止读写。图8、图9分别是单块读、写SD卡的软件流程。

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图8 读SD卡流程                                                       图9 写SD卡流程

  3.4 FAT16文件读写

  按照FAT16文件系统的文件组织规范,编写读文件函数和写文件函数。 FAT16文件读写的软件流程如图10所示。

基于AT89S52和FAT16的SD卡读写系统设计——中国一卡通网

  图10FAT16文件读写流程

  结语

  通过串口将本系统连接到PC进行测试,结果表明本系统完成了对FAT16文件系统下文件的读写。当采用11.059 2 MHz晶振时,读写速度和质量都令人满意。本系统采用51架构的AT89S52单片机,实现了基于FAT16文件系统的读写SD卡设计,整套系统成本较低,在嵌入式数据记录和存储中有广泛应用前景。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖