新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > LPCXpresso LPC1114 SSP多扇區(qū)讀寫SD卡

LPCXpresso LPC1114 SSP多扇區(qū)讀寫SD卡

作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
為了更加清楚的說明多扇區(qū)與單扇區(qū)讀寫的不同,單獨(dú)開一貼進(jìn)行詳細(xì)的說明。

本文引用地址:http://butianyuan.cn/article/201611/317370.htm

在FatFs文件系統(tǒng)時(shí),發(fā)現(xiàn)為了提高SD卡的讀寫速度,需要一個(gè)多扇區(qū)讀寫的函數(shù)。當(dāng)然很多人都會(huì)第一反應(yīng)為,用循環(huán)調(diào)用單扇區(qū)讀寫函數(shù)不就能實(shí)現(xiàn)嗎?如:

uint8 i;

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

{

MMCWriteSingleBlock(); // 單扇區(qū)寫

MMCReadSingleBolck(); // 單扇區(qū)讀

}

事實(shí)上的確可以這樣實(shí)現(xiàn),但是,如果是按照這樣的方式實(shí)現(xiàn)就沒有多扇區(qū)讀寫的優(yōu)勢(shì)了。速度是沒有任何提升的。于是我們查閱SD卡技術(shù)可以得到如下時(shí)序:

先看看SD卡的單扇區(qū)與多扇區(qū)的讀寫時(shí)序,可以發(fā)現(xiàn),其時(shí)序基本一直。只是多扇區(qū)讀函數(shù)在讀取完成后需要發(fā)送一個(gè)停止命令。實(shí)現(xiàn)函數(shù)如下:

查看時(shí)序,再對(duì)于一下函數(shù)非常容易理解,本人就不再細(xì)說了。其實(shí)SD卡寫的函數(shù)也是一樣的,先看看如下時(shí)序:

同樣我們發(fā)現(xiàn)單扇區(qū)寫和多扇區(qū)寫的時(shí)序基本一致,只是多扇區(qū)寫函數(shù)多了一個(gè)“send stop transmission token ”。即停止令牌,函數(shù)如下:

對(duì)比以上時(shí)序和函數(shù)非常容易理解,不在敘述。

經(jīng)過以上時(shí)序和函數(shù)的實(shí)現(xiàn)我們知道,多扇區(qū)的讀寫函數(shù)比用單扇區(qū)讀寫函數(shù)循環(huán)執(zhí)行效率高很多,當(dāng)然函數(shù)里邊的一些代碼進(jìn)行適當(dāng)?shù)男薷膶?huì)進(jìn)一步提高執(zhí)行效率,在此就不多說,有編程經(jīng)驗(yàn)的網(wǎng)友都知道怎么更改。

再看看主函數(shù)的實(shí)現(xiàn):

實(shí)驗(yàn)結(jié)果如下:

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

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



評(píng)論


技術(shù)專區(qū)

關(guān)閉