新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STCl2C5A60S2單片機(jī)的SD卡讀寫

基于STCl2C5A60S2單片機(jī)的SD卡讀寫

作者: 時(shí)間:2010-04-23 來(lái)源:網(wǎng)絡(luò) 收藏

4 軟件設(shè)計(jì)
4.1 卡的初始化
卡從上電到對(duì)卡進(jìn)行正確的操作,往往都需要一個(gè)上電初始化的過(guò)程。SD卡上電后,主機(jī)必須先向SD卡發(fā)送74個(gè)時(shí)鐘周期,以完成SD卡的上電過(guò)程。通常SD卡上電后會(huì)自動(dòng)進(jìn)入SD總線模式,并在SD總線模式下向SD卡發(fā)送復(fù)位命令(CMD0)。因此,主機(jī)在對(duì)SD卡進(jìn)行任何操作前,都必須先要拉低SD卡的片選信號(hào)CS(card select),以使SD卡進(jìn)入SPI總線模式,然后再由主機(jī)向SD卡發(fā)送命令。SD卡可以響應(yīng)主機(jī)發(fā)來(lái)的各種應(yīng)答信號(hào),同時(shí)向主機(jī)發(fā)送一個(gè)特殊的數(shù)據(jù)響應(yīng)標(biāo)志。若主機(jī)讀到的應(yīng)答信號(hào)為01,即表明SD卡已進(jìn)人SPI模式,此時(shí),主機(jī)即可不斷地向SD卡發(fā)送命令字(CMDl)并讀取SD卡的應(yīng)答信號(hào),直到應(yīng)答信號(hào)為00,表明SD卡已完成初始化過(guò)程,并準(zhǔn)備好接受下一命令。此后,系統(tǒng)便可讀取SD卡的各寄存器,以進(jìn)行等操作。SD卡初始化流程如圖3所示。下面是SD卡初始化的程序代碼:


4.2 SD卡的
SD卡的數(shù)據(jù)傳輸主要通過(guò)塊讀寫來(lái)實(shí)現(xiàn)。塊長(zhǎng)度默認(rèn)為512 KB。當(dāng)RAM中已存放由模數(shù)轉(zhuǎn)換模塊傳來(lái)的512 KB數(shù)據(jù)時(shí),便向SD卡寫入此塊數(shù)據(jù)。塊讀取時(shí),可發(fā)送命令CMDl7,接收到的應(yīng)答信號(hào)為0x00。這樣就可以直接接收數(shù)據(jù)了,接收到的數(shù)據(jù)的第1個(gè)字節(jié)為數(shù)據(jù)令牌0xfe,后面的為接收到的數(shù)據(jù),當(dāng)輸出口變?yōu)楦唠娖綍r(shí)。表明讀取操作完成。SD卡的讀操作與寫操作相同,故此不再贅述。圖4所示是SD卡的讀寫軟件流程圖。其具體程序代碼如下:


5 結(jié)束語(yǔ)
該SD卡與的接口電路已在實(shí)際的試驗(yàn)板上驗(yàn)證成功,并已證明可以正確實(shí)現(xiàn)數(shù)據(jù)通訊,故可對(duì)SD卡上的文件進(jìn)行各種操作。

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉