基于AT89S52和FAT16的SD卡读写系统设计
3.3.2 SD卡的初始化
SD卡的初始化流程如图7所示。SD卡上电延时74个时钟周期后,单片机向SD卡发送复位命令CMDO,使SD卡进入SPI模式。之后循环发送激活SD卡指令CMD1,直到接收到SD卡响应的第0位为0。本文引用地址:https://www.eepw.com.cn/article/173605.htm
3.3.3 SD卡数据块的读写
完成SD卡的初始化后,就可以对SD卡进行读写操作。读写操作都是通过指令来完成的:单块写命令CMD24,多块写命令CMD25;单块读命令 CMD17,多块读命令CMD18。单块读写时,数据块的长度为512字节,多块读写时SD卡收到1个停止命令CMD12后停止读写。图8、图9分别是单块读、写SD卡的软件流程。
3.4 FAT16文件读写
按照FAT16文件系统的文件组织规范,编写读文件函数和写文件函数。FAT16文件读写的软件流程如图10所示。
结 语
通过串口将本系统连接到PC进行测试,结果表明本系统完成了对FAT16文件系统下文件的读写。当采用11.059 2 MHz晶振时,读写速度和质量都令人满意。本系统采用51架构的AT89S52单片机,实现了基于FAT16文件系统的读写SD卡设计,整套系统成本较低,在嵌入式数据记录和存储中有广泛应用前景。
评论