CherryUSB — легкий стек USB-устройств/хостов для встраиваемых систем.


CherryUSB — это легкий стек USB-устройств/хостов с открытым исходным кодом для встраиваемых систем с одним или несколькими интерфейсами USB. Стек реализует различные драйверы классов, такие как CDC, HID, MSC, аудио, видео и так далее.

По-видимому, он является частью SDK Boufallo Lab (например микроконтроллера BL702), и был портирован и протестирован с микроконтроллером WCH CH32V307 RISC-V, STMicro STM32F4 и микроконтроллером Nuvoton NUC442 Cortex-M4, а также с двумя микроконтроллерами Arm Cortex-M3, о которых мы никогда не слышали: EastSoft ES32F3 и MindMotion MM32L3xx .

Особенности стека устройств CherryUSB:

  • Поддержка полной и высокой скорости USB2.0
  • Обратный вызов для прерывания конечной точки
  • Поддержка классов USB
    • Составное устройство
    • Communication Device Class  (CDC)
    • Human Interface Device (HID), включая «Custom HID»
    • Mass Storage Class (MSC)
    • USB VIDEO Class (UVC1.0,UVC1.5)
    • USB AUDIO Class (UAC1.0, UAC2.0)
    • Device Firmware Upgrade CLASS (DFU)
    • MIDI CLASS (MIDI)
    • Test and Measurement CLASS (TMC)
    • Vendor class
  • Поддержка удаленного NDIS (RNDIS)
  • Поддержка WINUSB 1.0, WINUSB 2.0 с BOS (хранилище объектов двоичных устройств)

Ядро стека USB-устройств использует 3045 байт флэш-памяти и 373 байта ОЗУ, а класс HID занимает дополнительные 784 байта хранилища и 201 байт ОЗУ. Нам не говорят, на для каких целей, но можно представить.

Особенности хост-стека CherryUSB:

  • Автоматическая загрузка поддерживаемых драйверов класса
    • Составное устройство
    • Класс коммуникационных устройств (CDC)
    • Устройство интерфейса пользователя (HID)
    • Класс запоминающих устройств (MSC)
    • Класс поставщика
  • Синхронные и асинхронные передачи
  • Поддержка многоуровневого концентратора с возможностью расширения до 7 уровней
  • Поддержка удаленного NDIS (RNDIS)

Нам не дали никакой оценки размера стека хост-устройства.

Исходный код можно найти на Github, выпущенный под лицензией Apache License 2.0. Существует также графический инструмент настройки, используемый для создания дескрипторов USB. Документация доступна, но только на китайском языке, и мы также заметили некоторые инструкции для RT-Thread RTOS, поэтому может поддерживаться больше микроконтроллеров, помимо списка, приведенного выше.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments