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


    转自: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。

  • 相关阅读:
    使用Bat自动打包并通过FTP发送到备份服务器——实战测试
    什么是STP
    【基础】华为单臂路由技术配置记录
    Windows Server 2012系统上安装.net framework3.5教程
    eNSP启动设备AR1失败记一次解决步骤
    Linux系统设置 SSH 通过密钥登录
    windows和linux修改ipv6和ipv4的优先级
    思科交换机配置中继
    【Nginx】Nginx反向代理转发Host设置
    idea查看类的uml图
  • 原文地址:https://www.cnblogs.com/super119/p/2471857.html
Copyright © 2020-2023  润新知