<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          SD卡接口設(shè)計(jì)

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

          1 卡標(biāo)準(zhǔn)
          卡標(biāo)準(zhǔn)是卡協(xié)會(huì)針對(duì)可移動(dòng)存儲(chǔ)設(shè)備專利并授權(quán)的一種標(biāo)準(zhǔn),主要用于制定卡的外形尺寸、電氣和通信協(xié)議。
          1.1 SD卡引腳功能
          SD卡的外形如圖1所示,引腳功能如表1所列。SD卡的引腳具有雙重功能,既可工作在SD模式,也可工作在SPI模式。不同的模式下,引腳的功能不同。

          本文引用地址:http://www.ex-cimer.com/article/150041.htm

          SD模式多用于對(duì)SD卡讀寫速度要求較高的場(chǎng)合,SPI模式則是以犧牲讀寫速度換取更好的硬件兼容性。由于SPI協(xié)議是目前廣泛流行的通信協(xié)議,大多數(shù)高性能單片機(jī)都配備了SPI硬件,硬件連接相對(duì)簡(jiǎn)單,因此,在對(duì)SD卡讀寫速度要求不高的情況下,采用SPI模式無(wú)疑是一個(gè)不錯(cuò)的選擇。
          1.2 SPI模式
          SPI模式是一種簡(jiǎn)單的命令響應(yīng)協(xié)議,主控制器發(fā)出命令后,SD卡針對(duì)不S同的命令返回對(duì)應(yīng)的響應(yīng)。
          SD卡的命令列表都是以CMD和ACMD開(kāi)頭,分別指通用命令和專用命令,后面接命令的編號(hào)。例如,CMD17就是一個(gè)通用命令,用來(lái)讀單塊數(shù)據(jù)。
          在SPI模式中,命令都是以如下的6字節(jié)形式發(fā)送的:

          每幀命令都以“01”開(kāi)頭,然后是6位命令號(hào)和4字節(jié)的參數(shù)(高位在前,低位在后),最后是7位CRC校驗(yàn)和1位停止位“1”。
          SD卡的每條命令都會(huì)返回對(duì)應(yīng)的響應(yīng)類型。在SPI模式下,共有3種響應(yīng)類型:R1、R2和R3,分別占1、2和3個(gè)字節(jié)。這里僅列出了R1響應(yīng)的格式,如表2所列。當(dāng)出現(xiàn)表中所描述的狀態(tài)時(shí),相應(yīng)的位置1。R2和R3的第1個(gè)字節(jié)格式與R1完全一樣,詳細(xì)內(nèi)容請(qǐng)參考SD卡標(biāo)準(zhǔn)。

          2 硬件
          選用Freescale公司的32位低功耗微控制器MCF51QE128,采用SPI模式實(shí)現(xiàn)與SD卡的接口。
          由于MCF51QE128是一款低功耗的微控制器,工作電壓的典型值為3.6 V,與SD卡的工作電壓兼容,因而可以直接與SD卡連接,無(wú)需電平轉(zhuǎn)換電路。這里選用的是MCF51 QE128的第2個(gè)SPI口,硬件連接如圖2所示。

          3 軟件實(shí)現(xiàn)
          軟件部分主要實(shí)現(xiàn)MCF51QE128的初始化、底層SPI通信,以及SD卡的通用寫命令、初始化和單塊數(shù)據(jù)的讀寫等功能。
          3.1 MCF51QE128的初始化
          在與SD卡通信之前,首先需要配置MCF51QE128,并初始化SPI端口。代碼如下:


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

          關(guān)鍵詞: 設(shè)計(jì) 接口 SD

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();