新闻中心

EEPW首页>嵌入式系统>设计应用> LPCXpresso LPC1114 SSP多扇区读写SD卡

LPCXpresso LPC1114 SSP多扇区读写SD卡

作者: 时间:2016-11-10 来源:网络 收藏
为了更加清楚的说明多扇区与单扇区读写的不同,单独开一贴进行详细的说明。

本文引用地址://m.amcfsurvey.com/article/201611/317370.htm

在FatFs文件系统时,发现为了提高SD卡的读写速度,需要一个多扇区读写的函数。当然很多人都会第一反应为,用循环调用单扇区读写函数不就能实现吗?如:

uint8 i;

for (i=0; i < count; i++)

{

MMCWriteSingleBlock(); // 单扇区写

MMCReadSingleBolck(); // 单扇区读

}

事实上的确可以这样实现,但是,如果是按照这样的方式实现就没有多扇区读写的优势了。速度是没有任何提升的。于是我们查阅SD卡技术可以得到如下时序:

先看看SD卡的单扇区与多扇区的读写时序,可以发现,其时序基本一直。只是多扇区读函数在读取完成后需要发送一个停止命令。实现函数如下:

查看时序,再对于一下函数非常容易理解,本人就不再细说了。其实SD卡写的函数也是一样的,先看看如下时序:

同样我们发现单扇区写和多扇区写的时序基本一致,只是多扇区写函数多了一个“send stop transmission token ”。即停止令牌,函数如下:

对比以上时序和函数非常容易理解,不在叙述。

经过以上时序和函数的实现我们知道,多扇区的读写函数比用单扇区读写函数循环执行效率高很多,当然函数里边的一些代码进行适当的修改将会进一步提高执行效率,在此就不多说,有编程经验的网友都知道怎么更改。

再看看主函数的实现:

实验结果如下:

IMG_3424.JPG(40.69 KB)
2010-5-23 08:10

IMG_3427.JPG(45.85 KB)
2010-5-23 08:10



评论


技术专区

关闭