Linux(open source)的 SD/MMC/SDIO 支援現況概要

來源:互聯網
上載者:User
轉自:http://www.jollen.org/blog/2007/01/open_source_sd_mmc_sdio.html

SD(Secure Digital)與 MMC(Multimedia Card)

SD 是一種 flash memory card 的標準,也就是一般常見的 SD 記憶卡,而 MMC 則是較早的一種記憶卡標準,目前已經被 SD
標準所取代。在維基百科上有相當詳細的 SD/MMC 規格說明:[http://zh.wikipedia.org/wiki/Secure_Digital]。

SDIO(Secure Digital I/O)

SDIO 是目前我們比較關心的技術,SDIO 故名思義,就是 SD 的 I/O
介面(interface)的意思,不過這樣解釋可能還有點抽像。更具體的說明,SD 本來是記憶卡的標準,但是現在也可以把 SD
拿來插上一些週邊介面使用,這樣的技術便是 SDIO。

所以 SDIO 本身是一種相當單純的技術,透過 SD 的 I/O 接腳來連接外部週邊,並且透過 SD 上的 I/O 資料接位與這些週邊傳輸資料,而且 SD
協會會員也推出很完整的 SDIO stack 驅動程式,使得 SDIO 週邊(我們稱為 SDIO 卡)的開發與應用變得相當熱門。

現在已經有非常多的手機或是手持裝置都支援 SDIO 的功能(SD 標準原本就是針對 mobile device 而制定),而且許多 SDIO
週邊也都被開發出來,讓手機外接週邊更加容易,並且開發上更有彈性(不需要內建週邊)。目前常見的 SDIO 週邊(SDIO 卡)有:

  • Wi-Fi card(無線網路卡)
  • CMOS sensor card(照相模組)
  • GPS card
  • GSM/GPRS modem card
  • Bluetooth card
  • Radio/TV card(很好玩)

SDIO 的應用將是未來嵌入式系統最重要的介面技術之一,並且也會取代目前 GPIO 式的 SPI 介面。

SD/SDIO 的傳輸模式

SD 傳輸模式有以下 3 種:

  • SPI mode(required)
  • 1-bit mode
  • 4-bit mode

SDIO 同樣也支援以上 3 種傳輸模式。依據 SD 標準,所有的 SD(記憶卡)與 SDIO(週邊)都必須支援 SPI mode,因此 SPI mode
是「required」。此外,早期的 MMC 卡(使用 SPI 傳輸)也能接到 SD 插糟(SD slot),並且使用 SPI mode 或 1-bit
mode 來讀取。

SD 的 MMC Mode

SD 也能讀取 MMC 記憶體,雖然 MMC 標準上提到,MMC 記憶體不見得要支援 SPI mode(但是一定要支援 1-bit
mode),但是市面上能看到的 MMC 卡其實都有支援 SPI mode。因此,我們可以把 SD 設定成 SPI mode 的傳輸方式來讀取 MMC
記憶卡。

SD 的 MMC Mode 就是用來讀取 MMC 卡的一種傳輸模式。不過,SD 的 MMC Mode 雖然也是使用 SPI
mode,但其物理特性仍是有差異的:

  • MMC 的 SPI mode 最大傳輸速率為 20 Mbit/s;
  • SD 的 SPI mode 最大傳輸速率為 25 Mbit/s。

為避免混淆,有時也用 SPI/MMC mode 與 SPI/SD mode 的寫法來做清楚區別。

Linux 的 SD/MMC 驅動程式

Linux 2.6.17 正式加入 SD/MMC 驅動程式,「官方版」的 release 當然只能在 ARM 平臺上使用,若不討論 host
controller 的支援,目前的 Linux SD/MMC/SDIO 支援狀況(Core API)如下(Open source compatible for
SD/MMC/SDIO):

1. 支援 MMC。Open source 的實作即是 SD-MMC 的驅動程式。

2. Core API 「可以做到」支援 SD/SPI mode only,因為有辦法做到支援 SPI mode,當然 1-bit mode
也「可以想辦法」做出來。將 1-bit mode 擴充至 4-bit mode,網路上雖然有人做,不過會有版權問題。

3. SDIO 目前只看到 Atheros Wi-Fi card 的支援(可在 sourceforge 上找到,已正式釋出 source
code)。

4. 完整的 SD stack 是要付錢的,請特別注意,SD Card Association product license agreement
並「不」允許 open source 的驅動程式實作。所以也不用再問,為什麼沒有 open source 的 SD 驅動程式了;Linux
是無罪的!

請特別留意的是,以上所述是「官方」的正式支援,並不包含玩家所分享的各種 patch。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.