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

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于嵌入式系統(tǒng)的多媒體存儲卡接口設(shè)計(jì)

          基于嵌入式系統(tǒng)的多媒體存儲卡接口設(shè)計(jì)

          作者: 時(shí)間:2008-03-18 來源: 收藏

            嵌入式系統(tǒng)由于本身存儲容量的限制,急需擴(kuò)展外存,多媒體卡(MMC)就是解決外存擴(kuò)展的一個(gè)很好的方案。

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

            多媒體卡在多媒體領(lǐng)域廣泛用作外部存儲介質(zhì),但是大多數(shù)微處理器(MCU)并沒有專門的多媒體卡控制器,多媒體卡的串行外設(shè)模式給了不具有多媒體卡控制器而需要讀寫多媒體卡的微處理器另一種選擇,串行外設(shè)接口協(xié)議是廣泛支持的總線協(xié)議,它通過串行外設(shè)接口總線與多媒體卡相連。本文介紹了MMC卡的工作原理和多媒體卡的串行外設(shè)接口協(xié)議(SPI)模式,給出了微處理器與MMC卡的接口電路、程序流程圖及部分程序代碼。

            1 MMC(多媒體卡)簡介

            MMC卡(Multimedia Card)是由美國SanDisk公司和德國西門子公司在1997年共同開發(fā)研制的一種多功能、體積小巧而容量大的快閃存儲卡。1998年1月十四家公司聯(lián)合成立了MMC協(xié)會(Multi-Media Card Association簡稱MMCA)。MMC卡的發(fā)展目標(biāo)主要是針對移動(dòng)電話、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、MP3音樂、PDA、電子書、玩具等產(chǎn)品。MMC卡在一定程度上改善了CF卡讀寫速度較慢的缺點(diǎn),并且體積輕巧,抗沖擊性強(qiáng),可反復(fù)讀寫30萬次左右。MMC卡4.0標(biāo)準(zhǔn)提供了更寬的數(shù)據(jù)帶寬和更快的傳輸速率,并支持雙電壓操作模式。MMC存儲卡還具備存儲區(qū)糾錯(cuò)能力和低功耗特性,如果在5 ms內(nèi)沒有接收到命令控制字,MMC卡會自動(dòng)轉(zhuǎn)入休眠狀態(tài),MMC卡同時(shí)還支持熱插拔。

            MMC存儲卡可以分為MMC和SPI兩種工作模式,MMC模式是MMC卡的標(biāo)準(zhǔn)默認(rèn)模式,具有MMC的全部特性。而SPI模式則是MMC存儲卡可選的第二種模式,這個(gè)模式是MMC協(xié)議的一個(gè)子集,主要用于只需要小數(shù)量的卡和低數(shù)據(jù)傳輸率的系統(tǒng),這個(gè)模式可以把設(shè)計(jì)成本減到最小,但性能不如MMC工作模式。

            2 MMC的結(jié)構(gòu)及工作原理

            2.1 MMC卡的引腳及功能

            MMC卡通常設(shè)計(jì)為一種低成本的數(shù)據(jù)平臺和通訊介質(zhì),目前MMC存儲卡的容量可達(dá)2 GB。它的接口設(shè)計(jì)非常簡單:MMC卡采用7針的接口(如圖1所示),低成本的串行總線時(shí)鐘頻率可達(dá)20MHz,MMC的工作電壓為2.7 V~3.6 V,寫/讀電流只有27 mA和23 mA。它的讀寫模式包括流式、多塊和單塊。最小的數(shù)據(jù)傳送是以塊為單位的,缺省的塊大小為512字節(jié)。

            

          MMC卡采用7針的接口

           

            MMC讀寫接口機(jī)可在MMC和SPI兩種通信協(xié)議下工作,MMC是MMCA協(xié)會開發(fā)的高性能三線制通信協(xié)議,即圖l中的CMD、CLK和DAT三根線,可尋址64 000張MMC卡,單個(gè)物理尋址可疊放30張卡,支持順序讀/寫、單/多數(shù)據(jù)塊讀/寫操作,MMC工作模式是MMC卡默認(rèn)的通信協(xié)議。SPI協(xié)議作為MMC卡的可選協(xié)議,工作效率不及MMC協(xié)議,但SPI協(xié)議簡單易用、兼容性好、便于嵌入式系統(tǒng)連接使用。表1是MMC卡使用SPI協(xié)議時(shí)的引腳定義。

            

          MMC卡使用SPI協(xié)議時(shí)的引腳定義

           

            2.2 MMC卡的內(nèi)部邏輯結(jié)構(gòu)及功能

            MMC卡的內(nèi)部邏輯結(jié)構(gòu)可分為四部分:MMC/SPI通信協(xié)議接口、單芯片控制器、數(shù)據(jù)閃存模塊、控制線和數(shù)據(jù)線。MMC/SPI接口實(shí)現(xiàn)與主控制器的通信;單芯片控制器完成接口協(xié)議、數(shù)據(jù)存儲檢索、糾錯(cuò)碼算法、故障判斷處理、電源管理和時(shí)鐘控制等功能;數(shù)據(jù)閃存模塊可以實(shí)現(xiàn)整個(gè)存儲區(qū)空間的單字節(jié)訪問;控制線和數(shù)據(jù)線可以實(shí)現(xiàn)單芯片控制器與數(shù)據(jù)閃存模塊的訪問。

            2.3 MMC/SPI通信協(xié)議

            MMC卡上電后,以默認(rèn)方式進(jìn)入MMC協(xié)議模式,如果要轉(zhuǎn)入SPI協(xié)議模式,還需要進(jìn)行協(xié)議模式切換。如果要從SPI協(xié)議模式轉(zhuǎn)入MMC協(xié)議模式,則只能切斷電源后重新通電,本設(shè)計(jì)采用SPI通信協(xié)議。

            2.4 MMC卡的文件系統(tǒng)

            MMC卡的文件格式定義并不包括在系統(tǒng)規(guī)范內(nèi),不過為了提高資料的交換性,還是定義了三種基本的文件系統(tǒng),其中除了不帶分區(qū)的DOS-FAT文件系統(tǒng)和類似硬盤帶分區(qū)的文件系統(tǒng)外,開發(fā)者還可以定義自己獨(dú)特的文件系統(tǒng)。這些定義同樣使得MMC卡具有廣泛的操作平臺(如DOS、Windows系統(tǒng))支持性。

            3 MMC(多媒體卡)的SPI協(xié)議

            3.1 SPI通信協(xié)議模式及接口簡介

            SPI是一個(gè)高速同步串行輸入/輸出端口或同步串行外圍接口,是一種通用同步串行接口總線,字長為8位,主要用于與各種外圍器件進(jìn)行通訊。SPI接口很容易與許多廠家的各種外圍器件直接相連,這些外圍器件可以是簡單的TTL移位寄存器、復(fù)雜的LCD顯示驅(qū)動(dòng)器或A/D轉(zhuǎn)換子系統(tǒng)。還可應(yīng)用于嵌入式系統(tǒng)、MCU與外部移位寄存器、D/A轉(zhuǎn)換器、A/D轉(zhuǎn)換器、串行EEPROM、LED顯示驅(qū)動(dòng)器等外部設(shè)備之間的通信接口擴(kuò)展。SPI接口有主、從兩種工作模式,在多主機(jī)系統(tǒng)中,SPI還可用于不同MCU之間的通訊。SPI接口的傳送速率可編程,其內(nèi)部有125個(gè)可編程的波特率,接收或發(fā)送操作均可通過中斷或查詢方式來進(jìn)行。整個(gè)工作狀態(tài)要通過設(shè)置其內(nèi)部的幾個(gè)控制寄存器來完成,如:

            (1)SPICCR:SPI配置控制寄存器。

            (2)SPICTL:SPI操作控制寄存器。

            (3)SPISTS:SPI狀態(tài)寄存器。

            (4)SPlBRR:SPI波特率寄存器。

            (5)SPIRXEMU:SPI仿真緩沖寄存器。

            (6)SPIRXBUF:SPI串行輸入緩沖寄存器。

            (7)SPITXBUF:SPI串行發(fā)送緩沖寄存器。

            (8)SPIDAT:SPI串行數(shù)據(jù)寄存器。

            (9)SPIPRI:SPI優(yōu)先級控制。

            

          SPI接口

           

            如圖2和表1所示,SPI接口利用CLK、DATAIn、DataOut三線進(jìn)行數(shù)據(jù)的讀寫操作,其中,CLK為時(shí)鐘信號,由外部控制器提供,DataIn和DataOut為數(shù)據(jù)輸入和輸出線,CS是MMC卡的片選信號線,在整個(gè)SPI操作過程中,CS必須保持低電平有效。

            3.2 MMC卡命令的CRC校驗(yàn)

            MMC卡在數(shù)據(jù)處理時(shí)為了確保數(shù)據(jù)存儲的準(zhǔn)確性,均采用了CRC校驗(yàn)字,MMC卡的CRC校驗(yàn)分為兩種:CRC7和CRCl6。CRC7適合于MMC卡的所有命令,只有應(yīng)答信號格式為R3的除外,它的算法表達(dá)式為:G(x)=x7+x3+1。CRCl6用于數(shù)據(jù)塊傳輸模式的保護(hù)處理,它的算法表達(dá)式為:G(x)=x16+x12+x5+1 。

            3.3 MMC卡的命令及答復(fù)信號

            所有MMC卡的命令字長度為6個(gè)字節(jié),傳輸從高位開始,且包含一個(gè)CRC校驗(yàn)字,命令字的格式如表2所示。

            

          命令字的格式

           

            3.3.1 MMC卡的命令

            MMC卡的命令字共分為10個(gè)命令組,每組由多個(gè)命令字組成。SPI協(xié)議模式下支持其中的6個(gè)命令組,可實(shí)現(xiàn)基本設(shè)定、數(shù)據(jù)塊讀、數(shù)據(jù)塊寫、擦除、寫保護(hù)和MMC卡鎖定等功能。以堆棧的檢查管理命令CIM_CHECK_STACK為例,它是命令組中的基本設(shè)定命令之一,主要是通過命令SEND_CSD(CMD9)來讀取MMC卡的信息后,與進(jìn)入系統(tǒng)中堆棧表的接口卡信息對比,如果不是上一張卡,再判定是否超時(shí)和超出卡的數(shù)量,從而確定該卡是否已進(jìn)入系統(tǒng)。堆棧的檢查管理命令流程圖如圖3所示。

            

          堆棧的檢查管理命令流程圖

           

            3.3.2 MMC卡的應(yīng)答信號格式

            對于MMC卡的命令,MMC卡有多種應(yīng)答信號格式,其應(yīng)答信號的傳輸也是從高位開始,在SPI協(xié)議模式下,有5種應(yīng)答信號格式:即Rl、R2、R3、Busy和Rlb。

            接收到每個(gè)命令字后,MMC卡都會發(fā)送一個(gè)格式為R1的應(yīng)答信號(除卡狀態(tài)查詢命令字CMDl3外),此應(yīng)答信號為1字節(jié),最高位為O,其他位為錯(cuò)誤標(biāo)志,如表3所示。

            

          MMC卡的應(yīng)答信號格式

           

            Busy格式應(yīng)答信號的長度為多個(gè)字節(jié),各位均為0時(shí),表示卡正忙,如果存在非O位,表明MMC卡已經(jīng)準(zhǔn)備好接受下一個(gè)命令。

            R2格式應(yīng)答信號的長度為2個(gè)字節(jié),用于答復(fù)卡狀態(tài)查詢命令字CMDl3,首字節(jié)同R1,第2字節(jié)表示的是錯(cuò)誤類型,如表4所示。

            

          第2字節(jié)

           

            R3格式應(yīng)答信號的長度為5個(gè)字節(jié),用于答復(fù)卡內(nèi)OCR寄存器,R3的首字節(jié)同Rl,其余4字節(jié)為OCR寄存器的內(nèi)容。

            Rlb格式應(yīng)答信號包括兩部分,Rl格式部分和Busy格式可選附加部分。

            4 MMC與嵌入式系統(tǒng)的接口

            4.1 硬件設(shè)計(jì)

            圖2是MMC卡與嵌入式系統(tǒng)芯片的硬件接口,圖中可增加一個(gè)片外存儲器作緩存芯片,采用Port C的硬件SPI接口對MMC卡進(jìn)行讀寫操作,對MMC卡的文件系統(tǒng)進(jìn)行讀寫操作可參閱參考文獻(xiàn)[4]。

            4.2 軟件設(shè)計(jì)

            訪問MMC卡存儲單元前,需要設(shè)定訪問塊的長度,默認(rèn)的長度為512個(gè)字節(jié),系統(tǒng)通過寫緩存儲芯片,當(dāng)寫入的數(shù)據(jù)達(dá)到512個(gè)字節(jié)后即轉(zhuǎn)入主存MMC,故讀寫長度不再設(shè)定。MMC格式化為FAT文件系統(tǒng)的結(jié)構(gòu)后,數(shù)據(jù)以文件的形式保存,這樣方便上位機(jī)對主存MMC的讀取。

            MMC接口的部分軟件設(shè)計(jì)流程如圖4所示。

            

          MMC接口的部分軟件設(shè)計(jì)流程

           

            SPI模式支持單數(shù)據(jù)塊和多數(shù)據(jù)塊的寫命令,以下的程序?yàn)閱螖?shù)據(jù)塊寫子程序的部分代碼:

            

          單數(shù)據(jù)塊寫子程序

           

            5 結(jié)束語

            和CompactFlash一樣,MMC也是把存儲單元和控制器一同做到了卡上,智能的控制器使得MMC保證了較好的兼容性和靈活性。實(shí)際上所有的MMC是向上兼容的,而且能保證與以后出現(xiàn)的新規(guī)格的產(chǎn)品兼容。Sanyo和Fujitsu聯(lián)合推出了Secure MMC,這種新的MMC采用了Hitachi的SuperHRISC微處理器內(nèi)核,能高速執(zhí)行與安全相關(guān)的操作(如加密解密等),具有很強(qiáng)的版權(quán)保護(hù)功能,Secure MMC也是向上兼容的,可以插入MMC插槽中使用,這種卡配合應(yīng)用Hitachi、Sanyo和Fujitsu開發(fā)的UDAC-MB(universal distribution with accesscontrol-media base)版權(quán)保護(hù)技術(shù),可以用于提供基于移動(dòng)電話的音樂發(fā)行服務(wù),且具有低功耗、攜帶方便、性能價(jià)格比高等特點(diǎn)。



          關(guān)鍵詞: 多媒體 存儲卡

          評論


          相關(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); })();