摘 要: | LH79520與多媒體存儲卡接口應(yīng)用 |
關(guān) 鍵 詞: | 多媒體存儲 |
| 概述 MultiMediaCard (MMC),多媒體存儲卡是一種低成本的數(shù)據(jù)存儲介質(zhì),廣泛應(yīng)用于MP3播放器、數(shù)字錄音設(shè)備、智能電話、PDA和傳呼機中。在一些高端微控制器中多嵌入了MMC控制器,并不一定需要使用硬件的MMC控制器與MMC相連。 SHARP的LH79520微控制器的SPI外設(shè)就可以實現(xiàn)這個功能。 本文描述了如何完成LH79520與MMC硬件、軟件上的連接,也將討論通過將MMC與LH79520內(nèi)建的SPI控制器連接實現(xiàn)LH79520在MMC中的應(yīng)用,以及如何讀取MMC中FAT16主引導(dǎo)模塊 1 LH79520處理器帶寬 LH79520是一款32位通用微控制器,使用ARM720T內(nèi)核,176-pin QFP封裝。ARM內(nèi)核處理速度達到77.4 MHz,總線達到51.6 MHz。它集成了很多外設(shè),包括MMU、CACHE、SSP、UART、 SDRAM 控制器、PWM、VIC、GPIO和一個65千色的LCD控制器。LH79520中的SPI控制器運行速度達到總線時鐘速度的一半(接近25 Mbit/s),因此,SPI控制器驅(qū)動MMC時可獲得最高處理速度為20 Mbit/s。 2 連接MMC和SHARP LH79520控制器 MMC基于先進的7-pin串行總線模式,一般稱為“多媒體存儲卡模式”。多數(shù)MMC的通信電壓為2.0 V~3.6 V,存儲器存取電壓范圍為2.7 V~3.6 V,容量在4MB到十億字節(jié)。 表1所示,SPI模式下MMC引腳的分配。圖1為LH79520與MMC在SPI模式下的一種連接方法。注意,如果在系統(tǒng)中只有1個MMC卡,那么MMC的引腳1必須接地。如果在系統(tǒng)中有多個MMC卡,需要使用一個GPIO來控制每個卡的引腳1。當(dāng)引腳1為“低”時,相應(yīng)的MMC卡開始工作。 引腳DataIn和DataOut的上拉電阻很重要,因為MMC卡在“Open Drain”模式下驅(qū)動引腳。地線與電源之間的空隙對于減少MMC中時鐘與數(shù)據(jù)線之間的噪音也很重要。 表1:SPI模式下MMC引腳分配 圖1:LH79520與MMC卡的連接 3 SPI命令 微控制器與MMC之間的通信時通過由微控制器向MMC傳達不同的命令進行的。最常見的命令羅列在表2中,完整的命令集需要參考MMC的規(guī)格。 表2:SPI命令 命令傳送 所有的命令都是6字節(jié)長,并且先傳輸MSB。 表3:命令傳輸 3.1 CRC計算 CRC計算如下: 7-bit CRC Calculation: G(x) = x7 + x3 + 1 M(x) = (start bit) × x39 + (second bit) × x38+…+(last bit before CRC) × x0 CRC[6…0] = Remainder[(M(x) × x7)/G(x)] 3.2 響應(yīng)格式R1 MMC卡在每個命令之后送出響應(yīng)令牌,SEND_STATUS命令除外。 響應(yīng)令牌為1字節(jié)長,MSB通常設(shè)置為0,其它為錯誤提示。一個“1”就以為著1個錯誤。表4和表5為R1格式。 表4:R1格式的字節(jié)結(jié)構(gòu) 表5:R1格式的字節(jié)定義 3.3 響應(yīng)格式R1B 這個響應(yīng)令牌與R1格式的是一致的,增加了可選擇的BUSY信號。MMC卡保持DataIn線低,得到BUSY信號。這個信號可以一直持續(xù)到MMC卡完成處理目前的程序。一旦卡解除了這條數(shù)據(jù)線,就可以執(zhí)行下一個命令。 3.4 響應(yīng)格式R2 這個響應(yīng)SEND_STATUS命令的令牌有2個字節(jié)長。R2數(shù)據(jù)格式見表6和表7。 表6:響應(yīng)格式R2 表7:響應(yīng)R2格式定義 3.5數(shù)據(jù)響應(yīng) 卡中寫入的每個數(shù)據(jù)塊都由一個數(shù)據(jù)響應(yīng)令牌確認(rèn)。這個響應(yīng)有1字節(jié)長,格式見表8。 表8:數(shù)據(jù)響應(yīng)字節(jié)結(jié)構(gòu) 數(shù)據(jù)位為下列兩種狀態(tài)之一: ‘010’ = Data accepted ‘101’ = Data rejected due to a CRC error 3.6數(shù)據(jù)令牌 讀取和寫入命令自身都有數(shù)據(jù)的傳輸。通過數(shù)據(jù)令牌來傳送或接收數(shù)據(jù)。所有的數(shù)據(jù)字節(jié)都是先傳送MSB。 數(shù)據(jù)令牌為4~512字節(jié)長,格式見表9。 表9:數(shù)據(jù)令牌開始字節(jié)結(jié)構(gòu) 數(shù)據(jù)令牌最后兩個字節(jié)為16-bit CRC 3.7 數(shù)據(jù)錯誤令牌 如果讀取操作失敗,卡不能提供響應(yīng)的數(shù)據(jù),那么就會產(chǎn)生一個數(shù)據(jù)錯誤令牌。這個令牌有1個字節(jié)長,格式見表10 表10:數(shù)據(jù)錯誤令牌結(jié)構(gòu) 4 軟件實現(xiàn) 4.1 SHARP SPI驅(qū)動 LH79520同步串行端口(SSP)外設(shè)支持Motorola SPI、National Semiconductor Mircrowire或者Texas Instruments的Synchronous Serial interfaces。 SSP實現(xiàn)數(shù)據(jù)寫入內(nèi)部傳送FIFO從并行到串行的轉(zhuǎn)換,接著以串行的形式將數(shù)據(jù)傳送到外部的附屬外設(shè)。SSP也從外部的附屬外設(shè)中接收串行數(shù)據(jù),執(zhí)行接收數(shù)據(jù)從串行到并行的轉(zhuǎn)換,再將接收數(shù)據(jù)緩傳送到內(nèi)部接收FIFO中。兩個FIFO存儲地址為16 bits wide × 8。數(shù)據(jù)幀長度為4~16 bits。 | |





