не удалось установить драйвер интерфейса sdio driver_usb
не удалось установить драйвер интерфейса sdio driver_usb

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

1. Введение

1.1 Сценарии применения интерфейса SDIO

  • SDIO проходить SD из I/O контакты для подключения внешней периферии device и передать данные. Эти периферийные устройства называются SDIO Оборудование, обычное включает в себя:
    • Карта Wi-Fi (карта беспроводной сети)
    • Сенсорная карта CMOS (модуль камеры)
    • GPS card
    • GSM/GPRS modem card
    • Bluetooth card
    • Radio/TV card

1.2 Скорость SDIO

  • Стандарт SDIO1.0 определяет два типа SDIOКарта:
    • Полная скорость SDIOКарта, скорость передачи может превышать 100 Мбит/с.
    • низкая скоростьизSDIOКарта,Тактовая частота от 0 до 400 к Гц

1.3 Режим передачи SDIO

  • Поддерживаемые режимы работы
    • Режим SPI: Стандартный режим SPI
    • 1-bit Режим: cmd line、 data line、clk line、irq Line
    • 4-битный режим: 1 строка cmd, 3 строки данных, clk
  • В режиме SPI контакт 8 используется как сигнал прерывания. Остальные положения контактов, функции и протоколы связи аналогичны стандартным спецификациям памяти SD. В определении SDIO-шина, DAT1 сигнальная линия повторно использует строку прерывания для. В режиме SDIOиз1BIT DAT0 используется для передачи данных, а DAT1 используется как линия прерывания. В режиме SDIOиз4BIT для передачи данных используются DAT0-DAT3, среди которых DAT1 мультиплексируется как линия прерывания.

2. Аппаратный интерфейс

2.1 Шина SDIO

  • SDIO-шина и USB-шина Аналогично, SDIO также имеет два конца, один из которых является концом HOST, а другой — концом устройства. Все коммуникации осуществляются HOST. отправлять Заказначинатьиз,Пока сторона устройства может анализировать заказ,могут общаться друг с другом
  • сигнальная линия
    • CLK-сигнал:HOSTДаватьDEVICEиз Тактовый сигнал, один заказ передается за каждый такт
    • CMD-сигнал:двусторонний из сигнала, используемого для передачи Заказ и реакция
    • DAT0-DAT3 Сигнал: Четыре линии для передачи данных
    • ВДД-сигнал:сигнал мощности
    • VSS1,VSS2:Сигнал заземления питания

2.2 команды SDIO

  • На SDIO-шине сторона HOST инициирует запрос, а затем сторона DEVICE отвечает на запрос.
  • Команда SDIO состоит из 6 байт (48 бит).
  • Command:используется дляначинатьпередача инфекциииз Заказ,Он отправляется со стороны ХОСТА на сторону УСТРОЙСТВА. где заказ проходитCMDсигнальная линияпередаватьиз
  • Response:ответдаDEVICEвозвращатьсяизHOSTиз Заказ,Ответить на Commandiz. Также осуществляется передача по линии CMD из.
  • Data:данныедадвустороннийизпередаватьиз。Можно установитьдля1Линейный режим,также Можно установитьдля4Линейный режим。данныедапроходитьDAT0-DAT3сигнальная линияпередача инфекциииз。
  • Команды и ответы:SDIOизкаждый раздействовать Всесделан изHOSTсуществоватьCMDНачните онлайнCMD,Для тех у кого есть изCMD,УСТРОЙСТВО должно вернуть ответ,Нет необходимости, если у вас есть
  • команда чтения
    • Сначала HOST будет подчиняться DEVICEотрегулировать Заказ.,Затем DEVICE вернет сигнал установления связи.,в это время,Когда HOST получает ответный сигнал рукопожатия,Поместит данные в 4-битную линию данных.,существоватьпередаватьданныеизбудет сопровождаться одновременноCRCпроверятькод。когда читаешь целикомпередавать После завершения,ХОЗЯИН снова отправит заказ,Уведомление DEVICEдействовать завершено,DEVICE также вернет ответ
    • После получения соответствующей информации от хоста ведомая машина,Начать отправку блока данных на хост,Все блоки данных поставляются с проверкой CRC (автоматически обрабатывается аппаратно).,При чтении одного блока данных,Остановиться можно после получения 1 блока данных.,Не нужно останавливать Заказ (CMD12). Но при чтении нескольких блоков данных,SDКарта всегда будет отправлять данные на хост,До получения хоста отправитьизSTOPЗаказ (CMD12).
    • Сопутствующий заказ
Язык кода:javascript
копировать
(1)отправлять CMD17 (одиночный блок) или CMD18 (несколько штук) чтения,возвращаться 0x00
(2) Получить токен начала данных 0xfe (или 0xfc ) + Формальные данные 512Bytes + CRC проверять 2Bytes,
     Формальная передача по умолчанию длины данных равна 512Bytes , доступен CMD16 Установите длину блока.
  • написать команду
    • Сначала HOST будет подчиняться DEVICEотрегулировать Заказ.,Затем DEVICE вернет сигнал установления связи.,в это время,Когда HOST получает ответный сигнал рукопожатия,Поместит данные в 4-битную линию данных.,существоватьпередаватьданныеизбудет сопровождаться одновременноCRCпроверятькод。когда пишешь целикомпередавать После завершения,ХОЗЯИН снова отправит заказ,Уведомление DEVICEдействовать завершено,DEVICE также вернет ответ。
    • Запись блока данных в основном аналогична операции чтения блока данных.,Только когда блок данных записан,Еще одно суждение о занятости,Новые блоки данных должны быть в SD-карте, незанятой по времени отправки. Здесь сигнал занятости понижается с помощью SDКарта SDIO_D0.,выразить занятость,Аппаратное автоматическое управление SDIO,Нет необходимости в нашем программном обеспечении для обработки
Язык кода:javascript
копировать
(1)отправлять CMD24 (одиночный блок) или CMD25 (Несколько штук) написать команду,возвращаться 0x00
(2) отправить токен начала данных 0xfe (или 0xfc ) + Формальные данные 512Bytes + CRC проверять 2Bytes
  • Удаление SD-карты
Язык кода:javascript
копировать
(1)отправлять CMD32, за которым следует параметр, указывающий первый начальный адрес, который будет удален (в руководстве SD указано, что это номер блока)
(2)отправлять CMD33, указываем последний из адресов
(3)отправлять CMD38, стереть содержимое указанного интервала

3. Драйвер Wi-Fi SDIO для Linux.

  • SDIO Интерфейс из Wi-Fi, прежде всего, это sdio Карта оборудование, а затем иметь wifi из функции, поэтому SDIO Интерфейс из WiFi Водитель там wifi Драйвер установлен снаружи SDIO водить машину из кожуха
  • Каталог кода драйвера SDIO:drivers/mmc Есть mmcКарта、sdКарта、sdio Картаводить машину
  • многоуровневое управление драйверами:Хозяинводить машинуслой(выполнитьSDIOводить машину) => Базовый уровень (восходящие и нисходящие интерфейсы) => оборудованиеводить машинуслой(WiFiоборудование)
  • основная цель (CORE-уровень):поколениекодродыdrivers/mmc/coreв каталоге,Среди них — универсальный код Медиа Картаиз. включить core.c, хост.c, stdio.c
  • Функции базового уровня
    • Различные протоколы и спецификации и реализации
    • для уровня HOST изпривод машины обеспечивает функции интерфейса
    • Регистрация шины SDIO завершена
    • Соответствует оперативным операциям
    • поддерживать mmc из кода
  • каталог хоста (уровень HOST):host Каталог (ХОСТ Layer) написан для разных платформ. host водить машину
  • WiFiводить процесс машины:
Язык кода:javascript
копировать
rockchip_wifi_init_module_rkwifi //Создал поток ядра wifi_init_thread
—wifi_init_thread //->
——dhd_module_init
———dhd_wifi_platform_register_drv // Найти устройство, зарегистрироваться wifi водить машину, после успешной регистрации позвоните из bcmdhd_wifi_plat_dev_drv_probe
————wifi_ctrlfunc_register_drv
————|—bus_find_device //Находить wifi оборудование
————|—platform_driver_register(&wifi_platform_dev_driver) //регистрация wifi водить машину
————bcmdhd_wifi_plat_dev_drv_probe //->
—————dhd_wifi_platform_load //двадействовать
——————wl_android_init //1. wlan инициализация
——————dhd_wifi_platform_load_sdio //2. в соответствии с Тип интерфейса usb、sdio、pcie Выберите другое издействовать
———————dhd_bus_register // Звонок после успешной регистрации dhd_sdio.dhdsdio_probe
————————bcmsdh_register(&dhd_sdio)
————————|—bcmsdh_register_client_driver
————————|——sdio_register_driver(&bcmsdh_sdmmc_driver) //регистрация успешно вызвана bcmsdh_sdmmc_probe
————————|———bcmsdh_sdmmc_probe //->
————————|———sdioh_probe
————————dhdsdio_probe

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/186495.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose