يتوفر الآن TinyUSB 0.19، وهو حزمة USB متعددة المنصات للأنظمة المدمجة. يوفر هذا البرنامج مكونات حزمة USB لكلٍّ من مضيفات USB (مضيف USB) وأجهزة USB (جهاز USB). كود المشروع مكتوب بلغة C وموزع بموجب ترخيص MIT.
لتعزيز الأمان، لا يستخدم TinyUSB تخصيص الذاكرة الديناميكي. يدعم التطبيقات متعددة الخيوط. لضمان تشغيل آمن متعدد الخيوط، لا تُعالج جميع أحداث المقاطعة فور استلام طلب خدمة المقاطعة (ISR)، بل تُوضع في قائمة انتظار، تُحلل وتُعالج ضمن سياق التطبيق، وليس من خلال معالج المقاطعة. تُستخدم إشارات المرور (Semaphores) والمزامنة (Mutexes) عند الوصول إلى الموارد المشتركة، مثل FIFO لفئة أجهزة الاتصال (CDC).
تم استخلاص هذه الحزمة من نظام التشغيل، ويمكن استخدامها كمكوّن مستقل، غير مرتبط بوظائف نظام التشغيل. تتوفر وحدات لدمج TinyUSB مع FreeRTOS وRT-Thread وApache Mynewt. كما تدعم ميزات توفير الطاقة، مثل وضع السكون والاستيقاظ عند النشاط. كما يتضمن تطبيقًا أوليًا لبروتوكول PD 3.0 (توصيل الطاقة) لإدارة نقل الطاقة عبر منفذ USB Type-C.

يتيح لك TinyUSB دعم أجهزة USB وفئات المضيف الخاصة بك دون تعديل حزمة USB. تشمل فئات الأجهزة التي يدعمها TinyUSB ما يلي:
- UAC2 — فئة الصوت 2.0؛
- BTH HCI - واجهة وحدة تحكم المضيف بلوتوث؛
- CDC - فئة أجهزة الاتصال؛
- DFU - تحديث البرامج الثابتة للجهاز؛
- HID - جهاز واجهة الإنسان (لوحة المفاتيح، الماوس، لوحة الألعاب)؛
- MSC — فئة التخزين الشامل (بما في ذلك محركات الأقراص ذات الوحدات المنطقية المتعددة)؛
- MIDI - واجهة رقمية للآلات الموسيقية؛
- MTP/PTP - بروتوكول نقل الوسائط؛
- RNDIS وECM (نموذج التحكم في Ethernet) وNCM (نموذج التحكم في الشبكة) - التفاعل مع الشبكة عبر USB؛
- USBTMC - فئة الاختبار والقياس؛
- UVC — فئة الفيديو 1.5؛
- ويب يو إس بي.
فئات المضيف USB المدعومة:
- HID - جهاز واجهة الإنسان؛
- MSC - فئة التخزين الشامل؛
- CDC-ACM - فئة أجهزة الاتصالات؛
- FTDI، CP210x، CH34x، PL2303 - منفذ تسلسلي عبر USB؛
- محور USB.
يُوسّع الإصدار الجديد واجهة برمجة التطبيقات للأجهزة والمضيفين. يدعم تطبيق مضيف USB الآن الأجهزة ذات التكوينات المتعددة. كما أُضيف دعم لوحدات التحكم الدقيقة واللوحات.
- ESP32-H4, ESP32-C5, ESP32-C61;
- STM32U0, STM32WBA, STM32N6;
- AT32F405, AT32F403A, AT32F415, AT32F423;
- CH32V305 و CH32V20x (مضيف USB)؛
- MCXA156 SDK 2.16 وFRDM-MCXA156.
المصدر: opennet.ru
