πŸ“Œ SDIO

SDIO (Secure Digital Input Output) β€” интСрфСйс Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ стандарта Secure Digital (SD), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, GPS, ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, ΠΊΠ°Ρ€Π΄Ρ€ΠΈΠ΄Π΅Ρ€Ρ‹) ΠΊ хост-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· стандартный слот SD-ΠΊΠ°Ρ€Ρ‚Ρ‹. SDIO ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ устройством Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ».


🧠 Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики

  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с SD-ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ ΠΏΠΎ физичСскому Ρ€Π°Π·ΡŠΡ‘ΠΌΡƒ ΠΈ элСктричСским сигналам.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 1-, 4-Π±ΠΈΡ‚Π½ΠΎΠΉ ΠΈ высокоскоростной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн ΠœΠ±ΠΈΡ‚/с).
  • ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² схоТ с SD, Π½ΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ для управлСния ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠ΅ΠΉ.
  • Устройства SDIO ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (multi-function devices).
  • Π₯ост взаимодСйствуСт с устройством Ρ‡Π΅Ρ€Π΅Π· стандартныС рСгистры ΠΈ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ЀизичСский интСрфСйс

  • Π›ΠΈΠ½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:
    • CMD β€” линия ΠΊΠΎΠΌΠ°Π½Π΄
    • CLK β€” Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал
    • DAT0..DAT3 β€” Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π±ΠΈΡ‚Π°)
  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с SD, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ SPI (ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ).

ЛогичСская схСма SDIO

flowchart TB
    Host["Host Controller (MCU/SoC)"]
    CMD["CMD Line"]
    CLK["Clock Line"]
    DAT0["Data Line DAT0"]
    DAT1["Data Line DAT1"]
    DAT2["Data Line DAT2"]
    DAT3["Data Line DAT3"]
    SDIO_Device["SDIO Device (Wi-Fi, GPS, Camera)"]

    Host -->|CLK| SDIO_Device
    Host -->|CMD| SDIO_Device
    Host <-->|DAT0..3| SDIO_Device

	style SDIO_Device stroke:#fff,stroke-width:5px,font-weight:bold

βš™οΈ Π“Π΄Π΅ примСняСтся

  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ возмоТностСй ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ встраиваСмых систСм.

  • ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Wi-Fi, Bluetooth, GPS, ΠΊΠ°ΠΌΠ΅Ρ€ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

  • ΠšΠ°Ρ€Π΄Ρ€ΠΈΠ΄Π΅Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SD ΠΈ SDIO.

  • ВстроСнныС систСмы, IoT-устройства с ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ интСрфСйсом.

  • Устройства с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ количСством ΠΏΠΈΠ½ΠΎΠ² ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.


βœ… ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ физичСский ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ интСрфСйс.

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств.

  • Высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ слотами SD.

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° управлСния устройством ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ шинС.


❌ НСдостатки

  • Π‘ΠΎΠ»Π΅Π΅ слоТный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Ρ‡Π΅ΠΌ Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… SD-ΠΊΠ°Ρ€Ρ‚.

  • ВрСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ со стороны Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΈ помСхоустойчивости.

  • НС всС устройства ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ SDIO.

  • Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° максимальная пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ.


πŸ”— БвязанныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

SD Card, SPI, MMC, I2C, MCU, SoC, Wi-Fi Module, GPS, Camera Interface, Host Controller, Memory Card


РСзюмС

SDIO β€” Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ стандарта SD, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΡ‘ΠΌ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ встраиваСмых систСмах для добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· измСнСния Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ баланс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ интСрфСйса.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

Linux: просмотр SDIO устройств

ls /sys/bus/sdio/devices/
dmesg | grep sdio

C (Linux kernel): рСгистрация SDIO Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°

#include <linux/mmc/sdio_func.h>
 
static int my_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id) {
    // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ устройства
    return 0;
}
 
static void my_sdio_remove(struct sdio_func *func) {
    // ΠžΡ‡ΠΈΡΡ‚ΠΊΠ°
}
 
static const struct sdio_device_id my_sdio_ids[] = {
    { SDIO_DEVICE(0x1234, 0x5678) }, // Vendor, Device ID
    { /* end: all zeroes */ },
};
 
static struct sdio_driver my_sdio_driver = {
    .name = "my_sdio_driver",
    .id_table = my_sdio_ids,
    .probe = my_sdio_probe,
    .remove = my_sdio_remove,
};
 
module_sdio_driver(my_sdio_driver);

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ:
SD Association Specifications, osdev.org, Linux kernel docs, Wikipedia, embedded.com, device manufacturer app notes.