从各个寄存器定义后面的注释中可以看出相应寄存器的作用。
这些寄存器相互配合,就可以很方便地实现协议所要求的复杂时序。在对各个寄存器有了全方位的把握之后,就可以实现SD卡的相关功能,其操作过程为:
①CPU寄存器设置过程
◆正确设置SDICON寄存器;
◆正确设置SDIPRE寄存器;
◆等待74个时钟信号初始卡。
②CMD命令发送过程
◆向SDICARG寄存器中写入发送的参数;
◆确定命令类型并且通过设置SDICCON[8]来启动命令;
◆确定命令是否发送完成,没应答的话看SDICSTA[11],有应答的话看SDICSTA[9];
◆清除SDICSTA中的相应位。
③数据传输过程
◆向SDITIMER中写入超时值;
◆向SDIBSIZE中写入块大小的值;
◆设置块模式,总线宽度等,通过SDIDCON启动传输;
◆通过SDIFSTA检查TxFIFO是否可用,再通过SDIDAT写入发送数据;
◆通过SDIFSTA检查RxFIFO是否可用,再通过SDIDAT读入接收数据;
◆通过检查SDIDSTA[4]确定传输过程已完成;
◆清除SDIDSTA中的相应位。
程序采用模块化设计思想。以主程序为核心设置功能模块子程序,简化了设计结构。运行过程中通过主程序调用各功能模块子程序。通过程序的联合作用,实现了对SD卡的读写,对大量的温度、时间信息进行了实时可靠的保存。以下是数据采集保存部分的函数分析。
上一页 [1] [2] [3]