1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      SPI模式下MMC卡的讀寫機制

      更新時間: 2007-11-08 10:30:17來源: 粵嵌教育瀏覽量:1231

      引言

        多媒體卡MMC的特點是閃存功耗低,密度高,體積小,可靠性高,可擦除,可重寫,容量大;內部控制電路,可以使用在手機、數碼相機、MP3、PDA等多種數字設備上,可反復記錄30萬次,現在市場上的主流容量有128MB-2GB。

        SPI早是由摩托羅拉公司提出的一種串行總線接口,支持MCU與外設的雙工、同步串行通信。由于其簡單的接口設計,只用4根線即可完成所有的通信工作,因此被大部分的MCU芯片所支持。利用被廣泛支持的SPI總線來進行MMC卡的讀寫,可解決沒有MMC控制器的問題。

      1 MMC卡

      1.1 MMC卡的簡介

        MMC卡的面積為24mm×32mm,厚度為1.4mm,MMC卡的工作電壓為2.7-3.6V,時鐘頻率范圍為0-20MHz,為了支持廣泛的應用,MMC卡接口簡單(為7引腳),具有的可擴展性和可配置性。其中3腳為電源供應,數據操作通過4腳的串行總線完成。作為SPI設備,MMC卡的SPI通道由以下4個信號組成:CS的反(片選),CLK(時鐘),DateIn(主機到卡的數據信號)和DateOut(卡到主機的數據信號)。CS的反是MMC卡的片選信號線,在整個SPI操作過程中,必須保持低電平有效;CLK便于同步,DateIn不但傳輸數據,還發送命令;DateOut除了發送數據外,還傳送應答信號。

      1.2 MMC卡的SPI協議

        MMC存儲卡有MMC和SPI兩種工作模式。MMC卡上電后即進入MMC模式;當片選(CS)線被拉低時發送Reset(CMD0)指令會使MMC卡進入SPI模式,如果需要從SPI模式轉入MMC模式,只能切斷電源重新上電。

        SPI協議是以主從方式工作的,這種模式通常有一個主設備和一個(或多個)從設備,SPI接口是一種通用同步串行接口總線,字長為8位,用來與外部設備進行通信。該接口在工作時,主設備通過提供移位時鐘和從使能信號來控制信息的流動,主設備的每次開始傳送任務時,都先將片選(CS的反)線置低以激活MMC卡,使其進入工作狀態。

        MMC卡的SPI協議的特點主要有:被選中的卡總是對來自于設備的指令有所響應的,當卡遇到錯誤時,會返回一個出錯響應來代替期望的數據,指令的響應是一個8位或16位的結構,只支持單塊讀寫操作,塊的大小可以大到一個扇區(512字節),小到1個字節。

      2 硬件電路設計

        MMC卡既可以采用MMC總線訪問,也可以采用SPI總線訪問,大部分微處理器都有SPI接口而沒有MMC總線接口,如果采用I/O口模擬MMC總線,不但增加了軟件的開銷,而且對大多數微處理器來說,模擬MMC總線遠不如真正的MMC總線速度快,這將大大降低總線數據傳輸的速度。

        基于以上考慮,可以采用LPC2200微處理器的SPI接口,設計訪問MMC的硬件接口電路,LPC2200是系統的核心控制器,它的主要作用是將數據發送至MMC卡內存儲。MMC卡的數據寫入是以塊為單位的,一塊為512字節,所以當RAM中存放了512字節數據時,LPC2200便將其一次性寫入MMC卡中。

        LPC2200微處理器與MMC卡卡座接口電路如圖1所示,連接引腳如表1所示。

      3 SPI模式下MMC卡的讀寫實現

      3.1 MMC卡初始化

        在對MMC卡讀寫之前要進行初始化操作,這是確保MMC卡能在SPI模式下進行正常數據讀寫的前提,MMC卡上電后默認進入MMC模式,等待至少74個時鐘周期后,片選信號置低,發送CMD0,CMD0的命令索引位是000000,即發送命令字0x40、0x0、0x0、0x0、0x0、0x95。如果收到應答信號01H,則表示出錯。然后向MMC卡發送CMD1,CMD1命令索引位是000001。因此進入閑置狀態后CRC校驗默認關閉,故CRC校驗位可取任意值。受到正確的應答信號00H之后,MMC卡即進入SPI模式;如果收到應答信號不是00H,則重發CMD1直到收到正確的應答。初始化過程如圖2所示。

      3.2 MMC卡塊讀寫

        初始化完成后,可使用默認的讀寫長度(512字節)進行MMC卡的讀寫;也可用CMD16來設置MMC卡的塊讀取長度,可以是1-512字節之間的任意值。但是對MMC卡的寫過程則要求塊長度必須為512字節。MMC卡讀寫數據時使用的是地址,即從0開始編號的32位地址,這里使用塊號來進行讀寫,塊號是從0開始編號的,且每塊的大小為一扇區(即512字節),故開始都必須將扇區號轉換成地址。

      (1)讀取數據塊

        向MMC卡發送CMD17,收到有效應答信號0x00后,開始接收數據,數據由數據起始令牌和數據塊組成,其中起始令牌值為0xFE。當收起起始令牌后,隨后接收數據塊,讀操作如圖3所示。

      (1)寫入數據塊

        向MMC卡發送CMD24,收到有效應答信號0x00后,開始發送數據。數據同樣由數據起始令牌(0xFE)和數據塊組成。寫操作如圖4所示。

      4 小結

        SPI總線接口簡單易用、兼容性好,使用SPI接口實現對MMC卡的讀寫操作是非常簡單有效的。用SPI接口可以實現每秒約1MB的讀寫速度,而用MMC接口則可以達到每秒約3MB的讀寫速度。雖然讀寫速度降低了一些,但是已經可以基本滿足讀寫速度的要求。



      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲电影一区二区 | 亚洲欧美日韩日产在线首页 | 亚洲乱码中文字幕综合69堂 | 六月丁香婷婷亚洲中文字幕 | 天堂网亚洲综合在线中文字幕 | 亚洲国产资源动态gif |