基于SD卡的电能耗用记录仪设计与实现
2、SD卡在SPI方式下的读写实现
SPI是一种通用同步串行接口总线,字长为8 bit。SPI协议是以主从方式工作的,通常有一个主设各和一个(或多个)从设备。工作时主设各通过提供同步时钟和从设备使能信号来控制数据传输。主设各每次开始传送数据时,必须先将片选信号置低以激活SD卡,使其进人工作状态。SD卡在SPI方式下工作时,被选中的卡总是对来自于主设备的命令有所响应,当卡遇到错误时,将返回一个出错响应来代替期望的数据。
2.1 SD卡初始化
SD卡在读写操作之前必须进行初始化,这是确保SD卡能在sPI方式下进行正常数据传输的前提。由于大容量SD卡的出现,SDI,x标准已经升级为SD2.0,但也因此出现许多电子设各无法驱动大容量SD卡的情况,如何识别SDI.x与SD2.0就显得特别重要。SD卡上电后默认进人SD工作方式,应等待至少74个时钟周期后,将片选信号置低,发送复位命令CMD0,等SD卡复位完成后再向SD卡发送CMD8命令。如果收到的应答信号为01H,则表示为SD2.0卡,否则为SDI。x卡SDI.x与SD2 0最大不同之处在于命令地址的表示,SDI.x的地址单位是字节,而SD2 0的地址单位是扇区,因此在读写操作时应根据不同的卡对地址作相应处理。图2所示为SD卡在sPI方式下的初始化流程。
图2 SD卡在SPI方式下的初始化流程
2.2 FAT32文件系统
SD卡在能够进行数据保存之前必须先按某种文件系统的规定进行格式化,FAT32文件系统因具有高度兼容性而被广泛应用于移动存储设备中。FAT32文件系统结构分为五个部分:MBR区、DBR区、FAT区、EDT区、DATA区。
MBR区又称为主引导记录,其后为64 B的磁盘分区表DPT。
DBR区即操作系统引导记录区,占用分区的第0扇区,共512 B,由跳转指令、结束标志等几部分组成。
评论