《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > Linux設(shè)備驅(qū)動(dòng)程序架構(gòu)分析之MMC/SD(一)

Linux設(shè)備驅(qū)動(dòng)程序架構(gòu)分析之MMC/SD(一)

2015-04-29
作者:劉昊昱
關(guān)鍵詞: MMC SanDisk公司 西門子公司

內(nèi)核版本:3.10.1

MMC

MMC全稱MultiMedia Card,由西門子公司SanDisk公司1997年推出的多媒體記憶卡標(biāo)準(zhǔn)。MMC卡尺寸為32mm x24mm x 1.4mm,它將存貯單元和控制器一同做到了卡上,智能的控制器使得MMC保證兼容性和靈活性。

MMC卡具有MMC和SPI兩種工作模式,MMC模式是默認(rèn)工作模式,具有MMC的全部特性。而SPI模式則是MMC協(xié)議的一個(gè)子集,主要用于低速系統(tǒng)。

SD

SD卡全稱Secure DigitalMemory Card,由松下、東芝和SanDisk公司于1999年8月共同開發(fā)的新一代記憶卡標(biāo)準(zhǔn),已完全兼容MMC標(biāo)準(zhǔn)。SD卡比MMC卡多了一個(gè)進(jìn)行數(shù)據(jù)著作權(quán)保護(hù)的暗號(hào)認(rèn)證功能,讀寫速度比MMC卡快4倍。

SD卡尺寸為32mm x 24mm x2.1mm,長(zhǎng)寬和MMC卡一樣,只是比MMC卡厚了0.7mm,以容納更大容量的存貯單元。SD卡與MMC卡保持向上兼容,也就是說(shuō),MMC卡可以被新的設(shè)有SD卡插槽的設(shè)備存取,但是SD卡卻不可以被設(shè)有MMC插槽的設(shè)備存取。

SDIO

SDIO全稱Secure DigitalInput and Output Card,SDIO是在SD標(biāo)準(zhǔn)上定義了一種外設(shè)接口,它使用SD的I/O接口來(lái)連接外圍設(shè)備,并通過(guò)SD上的I/O數(shù)據(jù)接口與這些外圍設(shè)備傳輸數(shù)據(jù)。現(xiàn) 在已經(jīng)有很多手持設(shè)備支持SDIO功能,而且許多SDIO外設(shè)也被開發(fā)出來(lái),目前常見的SDIO外設(shè)有:WIFI Card、GPS Card、 Bluetooth Card等等。

eMMC

eMMC全稱Embedded MultiMediaCard,是MMC協(xié)會(huì)所制定的內(nèi)嵌式存儲(chǔ)器標(biāo)準(zhǔn)規(guī)格,主要應(yīng)用于智能手機(jī)和移動(dòng)嵌入式產(chǎn)品等。eMMC是一種嵌入式非易失性存儲(chǔ)系 統(tǒng),由閃存和閃存控制器兩部分組成,它的一個(gè)明顯優(yōu)勢(shì)是在封裝中集成了一個(gè)閃存控制器,它采用JEDEC標(biāo)準(zhǔn)BGA封裝,并采用統(tǒng)一閃存接口管理閃存。

eMMC結(jié)構(gòu)由一個(gè)嵌入式存儲(chǔ)解決方案組成,帶有MMC接口、快閃存儲(chǔ)設(shè)備及主控制器,所有這些由一個(gè)小型BGA封裝。由于采用標(biāo)準(zhǔn)封裝,eMMC也很容易升級(jí),并不用改變硬件結(jié)構(gòu)。

eMMC的這種將Nand Flash芯片和控制芯片封裝在一起的設(shè)計(jì)概念,就是為了簡(jiǎn)化產(chǎn)品內(nèi)存儲(chǔ)器的使用,客戶只需要采購(gòu)eMMC芯片放進(jìn)產(chǎn)品中,不需要處理其它復(fù)雜的Nand Flash兼容性和管理問(wèn)題,減少研發(fā)成本和研發(fā)周期。

下面我們以Mini2440為例,分析其SDI驅(qū)動(dòng)程序。

Mini2440 MMC/SD硬件接口電路原理圖如下:

20131219131948890.png

從Mini2440原理圖可以看出,Mini2440 SDI使用的GPE7-GPE10作為4根數(shù)據(jù)信號(hào)線,使用GPE6作為命令信號(hào)線,使用GPE5作為時(shí)鐘信號(hào)線。另外,使用GPG8的外部中斷功能來(lái)作SD卡的插撥檢測(cè),使用GPH8來(lái)判斷SD卡是否有寫保護(hù)。

一、SDI設(shè)備的注冊(cè)

先來(lái)看device注冊(cè)過(guò)程,在arch/arm/mach-s3c24xx/mach-mini2440.c文件中,有如下內(nèi)容:

捕獲.PNG

這里定義了Mini2440所有的platform device,這里,我們要關(guān)注的是s3c_device_sdi,它是Mini2440的SDI控制器。

s3c_device_sdi定義在arch/arm/plat-samsung/devs.c文件中:

捕獲.PNG

回憶一下platform_device定義在include/linux/platform_device.h文件中:

捕獲.PNG

其中,s3c_sdi_resource定義在arch/arm/plat-samsung/devs.c文件中:

捕獲.PNG

struct resource定義在include/linux/ioport.h文件中:

捕獲.PNG

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。