MultiMediacard簡(jiǎn)介及其與單片機接口
摘要:MultiMediaCard是Sandisc公司推出的大容量串行Flash存儲卡,外形尺寸為32mm×24mm×1.4mm,質(zhì)量小于2g,7針引腳,便于開(kāi)發(fā)設計小型的移動(dòng)數碼設備。本文重點(diǎn)介紹此類(lèi)存儲器與PIC單片機的接口,給出實(shí)際的電路設計和軟件代碼示例。
本文引用地址:http://dyxdggzs.com/article/171342.htm1 概述
Sandisc公司推出的大大容量串行Flash存儲器產(chǎn)品——MultiMediaCard(MMC),通常叫作多媒體卡。它的體積比SmartMedia還要小,不怕沖擊,可反復讀寫(xiě)記錄30萬(wàn)次,驅動(dòng)電壓2.7~3.6V,可變時(shí)鐘頻率范圍為0~20MHz,目前常見(jiàn)的容量為64MB/128MB。ATP Electrionics公司已經(jīng)率先推出了1GB的高容量MMC。除了體積小、壽命長(cháng)、容量大等特性外,還具備存儲區糾錯能力;低功耗;5ms內沒(méi)有接收到命令字后,自動(dòng)轉入休眠狀態(tài);支持熱插拔等優(yōu)點(diǎn)。MMC可以格式化為FAT文件系統,便于上位機讀寫(xiě)。
2 MMC簡(jiǎn)介
2.1 引腳排列及功能
根據存儲容量的不同,MMC有SMDB和SDMJ兩種構成技術(shù)。SMDB即二進(jìn)制NAND技術(shù)(Binary NAND),16MB和32MB容量的MMC卡采用此技術(shù)。目前常用的64MB和128MB的MMC采用SDMJ,即MLC(Multi Level Cell)NAND技術(shù)。各容量的MMC卡,其外形尺寸及引腳排列相同,如圖1所示。
MMC讀寫(xiě)接口可以在MMC和SPI兩種通信 協(xié)議下工作。MMC是由MMCA協(xié)會(huì )開(kāi)發(fā)的高性能三線(xiàn)制通信協(xié)議,即CMD、CLK、DAT線(xiàn),最大可尋址64000張MMC卡,單個(gè)物理地址可疊放30張卡,支持順序讀寫(xiě)及單/多數據塊讀寫(xiě)操作,是MMC卡默認的通信協(xié)議。SPI協(xié)議為可選協(xié)議,工作效率不及MMC協(xié)議;但SPI協(xié)議簡(jiǎn)單易用,兼容性好,便于和單片機連接使用。本設計采用SPI通信協(xié)議,下文將詳細介紹。
2.2 內部邏輯結構
MMC卡的內部邏輯結構可分為四部分:MMC/SPI接口、單芯片控制器、數據閃存模塊、控制線(xiàn)和數據線(xiàn)。MMC/SPI接口實(shí)現與主控制器的通信。單芯片控制器完成接口協(xié)議、數據存儲檢索、糾錯碼算法、故障診斷處理、電源管理和時(shí)鐘控制功能。數據內存模塊可以實(shí)現整個(gè)存儲空間內的單字節訪(fǎng)剩??皇羌虻サ淖終罅校??潛環(huán)殖閃碩嘀紙峁埂?12個(gè)字節構成1個(gè)扇區(sector)。根據MMC卡容量的不同,16或32個(gè)扇區構成1個(gè)擦除族(erase group)。32個(gè)擦除族構成1個(gè)寫(xiě)保護族(write protect group)。此設計使MMC操作靈活,使用方便??刂凭€(xiàn)和數據線(xiàn)實(shí)現數據存儲區的訪(fǎng)問(wèn),其內部邏輯結構如圖2所示。
3 MMC/SPI通信協(xié)議
MMC卡上電后,默認進(jìn)入MMC模式。如果轉入SPI模式下工作,需進(jìn)行模式切換。SPI模式設定流程如圖3所示。
如需從SPI模式轉入MMC模式,只能切斷電源,重新上電,進(jìn)入默認MMC模式。從實(shí)際應用角度出發(fā),SPI模式設計簡(jiǎn)單,操作方便,但數據傳輸速率遜于MMC模式?;谠O計要求,筆者采用了SPI通信協(xié)議。
4 存儲器讀寫(xiě)接口
4.1 SPI接口及操作模式
SPI接口是一種通用同步串行接口總線(xiàn),字長(cháng)為8位,用來(lái)與外部設備進(jìn)行通信。SPI接口利用CLK、DataIn和DataOut三根線(xiàn)進(jìn)行數據的讀寫(xiě)。其中,CLK為時(shí)鐘信號,有外部控制器提供;Datain和DataOut為數據輸入和輸出線(xiàn)。CS是MMC片選信號線(xiàn),在整個(gè)SPI操作過(guò)程中,必須保持低電平有效信號。
SPI接口共有四種操作模式,分別為0、1、2和3。SPI操作模式?jīng)Q定了設備接收和發(fā)送數據時(shí)的時(shí)鐘相位和極性,即決定了時(shí)鐘信號的上升和下降沿與數據流動(dòng)方向之間的關(guān)系,如圖4所示。本設計采用模式3。
4.2 MMC卡命令及答復信號
所有MMC卡命令字長(cháng)度均為6個(gè)字節,傳輸從高位開(kāi)始,且包含一個(gè)CRC校驗字。
命令字索引采用二進(jìn)制編碼。比如CMD0的索引位是000000,CMD39的索引位是100111。MMC卡命令字分為10個(gè)命令組,每組由多個(gè)命令字組成,完成MMC卡功能設定。SPI模式下的Sandisc MMC卡支持其中的6個(gè)命令組,可實(shí)現基本設定、數據塊讀、數據塊寫(xiě)、擦除、寫(xiě)保護、MMC卡鎖定功能。
MMC卡有多種應答信號格式,傳輸從高位開(kāi)始。SPI模式下,存在5種應答信號格式,分別為R1、R2、R3、Busy、R1b。
接收到每個(gè)命令后,MMC卡都發(fā)送一個(gè)格式為R1的應答信號,卡狀態(tài)查詢(xún)命令字CMD13除外。此應答信號占1字節,最高位為0,低7位為錯誤標志。若某位為1,表示存在相應錯誤。
評論