前言
下面首先簡單的介紹了MMC,SD和SDIO,對這些名詞有個概念即可。
從本文開始會重點講講eMMC相關(guān)的內(nèi)容(Linux MMC子系統(tǒng)系列文章介紹的eMMC協(xié)議為:eMMC 5.1協(xié)議),對eMMC相關(guān)的知識有了一定的了解之后,后續(xù)文章也會對Linux的MMC子系統(tǒng)做一個介紹,包括MMC子系統(tǒng)的初始化過程,MMC host驅(qū)動與host設(shè)備是如何匹配的,MMC host驅(qū)動的基本框架,MMC驅(qū)動和MMC卡設(shè)備是如何關(guān)聯(lián)起來的,MMC子系統(tǒng)是如何實現(xiàn)塊設(shè)備驅(qū)動的等等。
對于MMC卡,SD卡或者SDIO接口的設(shè)備,Linux MMC子系統(tǒng)同樣適用。
好了,廢話不多說,下面開始本文的內(nèi)容吧。
MMC SD SDIO介紹
MMC
多媒體卡(MMC)全稱Multi Media Card,是由西門子公司和SanDisk公司于1997年推出的多媒體記憶卡標(biāo)準(zhǔn)。MMC卡尺寸為32mm x 24mm x 1.4mm,它將存儲單元和控制器一同做到了卡上,這種攜帶方便、可靠性高、重量輕的數(shù)據(jù)載體一經(jīng)推出,市場占有率不斷上升,廣泛應(yīng)用于移動電話,數(shù)碼相機(jī),MP3等產(chǎn)品。
MMC卡具有MMC和SPI兩種工作模式,MMC模式是默認(rèn)工作模式,具有MMC的全部特性。而SPI模式則是MMC協(xié)議的一個子集,主要用于低速系統(tǒng)。
SD
SD卡(Secure Digital Memory Card)是一種基于半導(dǎo)體快閃存記憶器的新一代記憶存儲設(shè)備。SD卡是由松下、東芝和SanDisk公司于1999年8月共同開發(fā)的新一代記憶卡標(biāo)準(zhǔn),已完全兼容MMC標(biāo)準(zhǔn)。SD卡比MMC卡多了一個進(jìn)行數(shù)據(jù)著作權(quán)保護(hù)的暗號認(rèn)證功能。
SD卡尺寸為32mm x 24mm x 2.1mm,長寬和MMC卡一樣,只是比MMC卡厚了0.7mm,以容納更大容量的存儲單元。SD卡與MMC卡保持向上兼容,也就是說,MMC卡可以被新的設(shè)有SD卡插槽的設(shè)備存取,但是SD卡卻不可以被設(shè)有MMC插槽的設(shè)備存取。
SDIO
SDIO全稱為Secure Digital Input and Output,中文名稱為:安全數(shù)字輸入輸出接口。SDIO是在SD標(biāo)準(zhǔn)上定義的一種外設(shè)接口,它使用SD的I/O接口來連接外圍設(shè)備,并通過SD上的I/O數(shù)據(jù)接口與這些外圍設(shè)備傳輸數(shù)據(jù)?,F(xiàn)在已經(jīng)有很多手持設(shè)備支持SDIO接口,而且許多SDIO外設(shè)也被開發(fā)出來,目前常見的SDIO外設(shè)有:WIFI Card、GPS Card、 Bluetooth Card等等。
eMMC介紹
eMMC卡全稱為Embedded Multi Media Card,是MMC協(xié)會所制定的內(nèi)嵌式存儲器標(biāo)準(zhǔn)規(guī)格。通俗點講,eMMC就是一個類似于SD卡一樣的存儲芯片。eMMC主要應(yīng)用于智能手機(jī)和平板電腦等產(chǎn)品。eMMC在封裝中集成了一個控制器,提供標(biāo)準(zhǔn)接口來管理閃存,使得產(chǎn)品開發(fā)過程中不再需要考慮NAND Flash兼容性問題和管理問題,讓產(chǎn)品開發(fā)人員能夠?qū)W⒂诋a(chǎn)品開發(fā),縮短產(chǎn)品推向市場的時間。
eMMC整體結(jié)構(gòu)
eMMC的整體結(jié)構(gòu)如下圖所示:
Snipaste_2023-10-10_20-35-50
eMMC主要由設(shè)備控制器和存儲陣列組成。設(shè)備控制器主要提供主機(jī)接口和存儲管理功能。
eMMC主機(jī)接口
HOST和eMMC之間的接口連接如下圖所示:
Linux_MMC子系統(tǒng)_eMMC主機(jī)接口
CLK:時鐘線上的每個時鐘周期,意味著命令線上傳輸了1bit命令,或者數(shù)據(jù)線上完成了1bit或者2bit的數(shù)據(jù)傳輸。時鐘頻率的范圍為:0~最大時鐘頻率。
CMD:該信號線主要用于傳輸HOST到eMMC的command和eMMC到HOST的response。
DAT0~DAT7:用于傳輸數(shù)據(jù)的8bit數(shù)據(jù)線。在上電或者復(fù)位以后,僅僅只有DAT0數(shù)據(jù)線可以用于數(shù)據(jù)傳輸??梢酝ㄟ^eMMC主機(jī)控制器來配置eMMC的數(shù)據(jù)總線位寬,eMMC支持的數(shù)據(jù)線寬度有:1bit(DAT0),4bit(DAT0~DAT3),8bit(DAT0~DAT7)。
Data Strobe:該信號是從eMMC設(shè)備輸出給Host的時鐘信號,頻率和CLK信號相同,用于Host進(jìn)行接收數(shù)據(jù)的同步。該信號只在HS400模式下使用,啟用后可以提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性,省去總線tuning過程。
HOST和eMMC之間的通信都是以HOST發(fā)送一個Command給eMMC開始的,eMMC對于收到的不同Command會做出不同的response,當(dāng)然了eMMC對于收到的部分Command可以不做response。
聊了這么久的eMMC,到底eMMC長什么樣,大多數(shù)的eMMC芯片一般是黑色的外觀,來欣賞下某廠商的eMMC芯片外觀圖:
foresee emmc
大多數(shù)的eMMC芯片一般采用BGA封裝,下圖是某廠商的BGA封裝的eMMC芯片引腳圖:
Snipaste_2023-10-11_20-16-29
eMMC接口各個引腳的輸入輸出類型以及相關(guān)描述可以參考下圖進(jìn)行理解:
Snipaste_2023-10-11_20-28-18
eMMC存儲陣列
eMMC的存儲陣列是由非易失性的存儲器組成,目前,絕大多數(shù)eMMC芯片內(nèi)部的存儲器都是由Nand Flash組成的。
在智能手機(jī)或者其他嵌入式設(shè)備中,可以使用eMMC的存儲陣列來存放操作系統(tǒng),應(yīng)用數(shù)據(jù)等信息。
eMMC存儲管理
eMMC芯片內(nèi)部的設(shè)備控制器具有存儲管理功能,主要用于對Nand Flash的管理,包括:擦寫均衡,壞塊管理,ECC校驗等。相比于直接將NAND Flash連接到Host端,采用eMMC芯片屏蔽了NAND Flash的物理特性,可以減少Host端軟件的復(fù)雜度,讓Host端專注于上層業(yè)務(wù),省去對NAND Flash進(jìn)行特殊的處理。同時,eMMC通過使用Cache、Memory Array等技術(shù),在讀寫性能上也比NAND Flash要好很多。
eMMC尋址
以前實現(xiàn)的eMMC協(xié)議(比如eMMC 4.1協(xié)議)采用的是32位域的字節(jié)尋址。這種尋址機(jī)制限制了eMMC的最大容量為2GB。
為了支持更大容量的eMMC,后續(xù)的eMMC協(xié)議(比如eMMC 5.1協(xié)議)增加了sector尋址方式(1 sector=512B)。容量大于2GB的eMMC,都是采用sector尋址的方式。
為了確定eMMC的尋址模式,主機(jī)可以讀取eMMC的OCR寄存器,通過OCR寄存器的bit[30:29]可以知道eMMC的尋址模式。
eMMC速率模式
隨著eMMC協(xié)議的不斷更新,eMMC總線的速率越來越高。為了兼容舊版本的eMMC,所有eMMC在上電啟動或者Reset后,都會先進(jìn)入兼容速率模式(Backwards Compatibility with legacy MMC card)。在完成對eMMC的初始化后,Host可以通過特定的流程,讓eMMC進(jìn)入其他高速率模式,目前支持以下幾種速率模式。
Snipaste_2023-10-11_21-09-03
Extended CSD寄存器的HS_TIMING[185],可以配置總線速率模式。
Extended CSD寄存器的BUS_WIDTH[183],可以配置總線寬度和Data Strobe。
在一個時鐘周期內(nèi),DAT0~DAT7信號線上傳輸1個比特時,就是SDR(Single Data Rate)模式。
在一個時鐘周期內(nèi),DAT0~DAT7信號線上傳輸2個比特時,就是DDR(Double Data Rate)模式。
審核編輯:湯梓紅
-
半導(dǎo)體
+關(guān)注
關(guān)注
335文章
28919瀏覽量
238067 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213842 -
子系統(tǒng)
+關(guān)注
關(guān)注
0文章
115瀏覽量
12841 -
emmc
+關(guān)注
關(guān)注
7文章
230瀏覽量
54019
原文標(biāo)題:Linux MMC子系統(tǒng) - 1.eMMC簡介
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Linux下輸入子系統(tǒng)上報觸摸屏坐標(biāo)

Windows10內(nèi)置Linux子系統(tǒng)使用
如何使用Linux內(nèi)核中的input子系統(tǒng)
s3c2440 mmc和camera的linux驅(qū)動

基于Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動研究
詳細(xì)了解Linux設(shè)備模型中的input子系統(tǒng)

Linux系統(tǒng)中NFC子系統(tǒng)架構(gòu)分析
linux-usb子系統(tǒng)的核心描述
Linux內(nèi)核之LED子系統(tǒng)(一)

Linux clock子系統(tǒng)是什么

評論