د سیلیکون لابراتوار د USB وسیلې سټیک لارښوونې لارښود

د USB وسیلې سټک

مشخصات

  • د USB نسخه: 1.5.1
  • د خپریدو نیټه: د جولای 21، 2025
  • د سادگي SDK نسخه: 2025.6.1

محصول پای ته ورسیدview

د سیلیکون لابز لخوا د USB وسیلې سټیک څو اړخیز او
د IoT پروژو لپاره د کارولو لپاره اسانه USB اتصال، اسانتیا برابروي
د شبکې شریک پروسسرانو او کوربه ترمنځ اړیکه.

ځانګړتیاوې

  • د USB وسیلو اغیزمن سټک
  • د IoT پروژو لپاره مثالی
  • د شبکې شریک پروسسرانو ترمنځ د اړیکو لپاره ملاتړ او
    کوربه

د محصول کارولو لارښوونې

د USB وسیلې ترتیب

د خپلې پروژې سره سم د USB وسیلې تنظیمات تنظیم کړئ
د USB وسیلې ترتیب برخې ته په مراجعه سره اړتیاوې
په اسنادو کې.

د USB وسیلې پروګرام کولو لارښود

د USB وسیلې پروګرام کولو لارښود تعقیب کړئ ترڅو پوه شئ چې څنګه
د مختلفو لپاره د USB وسیلې سره پروګرام او تعامل وکړئ
غوښتنلیکونه

د USB وسیلو ټولګي

د USB وسیلو د ټولګیو برخه یو اوور چمتو کويview د مختلفو
ټولګي لکه CDC ACM، HID، MSC SCSI، او د پلورونکي ټولګي. غوره کړئ
ستاسو د وسیلې د فعالیت پر بنسټ مناسب ټولګي.

د USB وسیلې ستونزې حل کول

که تاسو د USB وسیلې سره کومې ستونزې سره مخ شئ، نو مراجعه وکړئ
د حل لارو او ډیبګ کولو لپاره د USB وسیلې د ستونزو حل کولو برخه
لارښوونې

د مایکروسافټ وینډوز OS USB کوربه

که تاسو د مایکروسافټ وینډوز OS USB سره USB وسیله کاروئ
کوربه، ډاډ ترلاسه کړئ چې په کې ورکړل شوي لارښوونې تعقیب کړئ
د بې ساري ادغام لپاره اسناد.

FAQ

پوښتنه: ځینې عام پخواني څه دي؟ampهغه وسایل چې زه یې په کارولو سره جوړولی شم
دا USB سټیک؟

الف: د USB سټیک تاسو ته اجازه درکوي چې وسایل جوړ کړئ لکه
د USB-to-Serial اډاپټرونه، موږکان یا کیبورډونه، د لرې کولو وړ ذخیره
وسایل، او دودیز وسایل.

پوښتنه: ایا د دې کارولو لپاره کوم ځانګړي سافټویر اړتیاوې شتون لري؟
د USB وسیلو سټک؟

الف: مطابقت لرونکی سافټویر کې سمپلیسیټي SDK، سمپلیسیټي شامل دي
سټوډیو، د سادګۍ قوماندان، GCC (د GNU کمپائلر ټولګه)،
د ARM لپاره د IAR ایمبیډډ ورک بینچ، او IAR EWARM.

یونیورسل سیریل بس USB

یونیورسل سیریل بس USB

د USB اوورview اوورview
د خپرونې یادښتونه USB
مشخصات او ځانګړتیاوېview
د USB وسیلې ترتیب بشپړ شوview
د USB وسیلې پروګرام کولو لارښود بشپړ شوview
د USB وسیلو ټولګي پای ته ورسیدلview د CDC ACM ټولګي پای ته ورسېدلview د HID ټولګي پای ته ورسیدلview د MSC SCSI ټولګي پای ته ورسیدلview د پلورونکي ټولګي پای ته ورسېدلview
د USB API API اسناد د USB وسیله API د USB وسیله ACM API a sl_usbd_cdc_ cm_line_coding_t sl_usbd_cdc_acm_callbacks_t د USB وسیله CDC API a sl_usbd_cdc_subcl ss_driver_t د USB وسیله کور API
د sl_usbd_وسیلې_تشکیل_t د sl_usbd_سیټ اپ_ضرورت_t
د sl_usbd_cl ss_driver_t USB وسیله HID API
sl_usbd_hid_callbacks_t د USB وسیله MSC API
یو sl_usbd_msc_subcl ss_driver_t USB وسیله MSC SCSI API
د_یو_ایس_بی_ایم_ایس_سی_ایس_سی_کال_بیکس_ټی

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

یونیورسل سیریل بس USB
یو sl_usbd_msc_scsi_lun_ پای
د sl_usbd_msc_scsi_lun_معلومات د sl_usbd_msc_scsi_lun
د USB وسیلې پلورونکي API sl_usbd_vendor_callbacks_t
د API اسناد د USB وسیلې ستونزې حل کول
اوورview د مایکروسافټ وینډوز OS USB کوربه
اوورview

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview
د USB وسیله
USB د کمپیوټر سیسټمونو په تاریخ کې یو له خورا بریالي مخابراتي انٹرفیسونو څخه دی او د کمپیوټر د وسایلو سره د نښلولو لپاره د ډیفکټو معیار دی. د سیلیکون لیبز USB ډیویس سټیک د USB ډیویس ماډل دی چې په ځانګړي ډول د ایمبیډ شوي سیسټمونو لپاره ډیزاین شوی. د سیلیکون لیبز کیفیت، پیمانه کولو او اعتبار سره سم جوړ شوی، دا د USB 2.0 مشخصاتو سره مطابقت لپاره د سخت اعتبار پروسې څخه تیر شوی. دا اسناد تشریح کوي چې څنګه د سیلیکون لیبز USB ډیویس سټیک پیل کول، پیل کول او کارول. دا د مختلف ترتیب ارزښتونه او د دوی کارول تشریح کوي. پدې کې یو اوور هم شامل دیview د ټیکنالوژۍ، د ترتیب امکاناتو ډولونه، د پلي کولو پروسیجرونه، او پخوانۍampد هر شته ټولګي لپاره د عادي کارونې لږ څه.
د دې لپاره چې تاسو سره د USB مفاهیمو په چټکۍ سره پوه شئ، اسناد ډیری پخواني لريampد اساسي دندو سره د USB کمرې. دا پخوانيamples به تاسو ته یو چوکاټ چمتو کړي چې تاسو ته اجازه درکوي چې وسایل په چټکۍ سره جوړ کړئ. دا مثالونهampپه دې کې شامل دي:
د USB-to-Serial اډاپټر (د مخابراتو د وسیلې ټولګی) موږک یا کیبورډ (د انسان د انٹرفیس د وسیلې ټولګی) د لرې کولو وړ ذخیره کولو وسیله (د ډله ایز ذخیره کولو ټولګی) دودیز وسیله (د پلورونکي ټولګی)
لاندې ختم دیview د اسنادو برخې:
مشخصات او ځانګړتیاوې د USB وسیلې ترتیب د USB وسیلې پروګرام کولو لارښود د USB وسیلو ټولګي
د CDC ACM کلاس HID کلاس MSC SCSI کلاس د پلورونکي کلاس USB وسیله د ستونزو حل کول د مایکروسافټ وینډوز OS USB کوربه

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB
USB

د USB نسخه ۱.۵.۱ د جولای ۲۱، ۲۰۲۵ – د خپریدو یادښتونه
د سادگي SDK نسخه 2025.6.1
د سیلیکون لابراتوارونو اغیزمن USB وسیلې سټیک د IoT پروژو لپاره مثالی څو اړخیزه، د کارولو لپاره اسانه USB اتصال وړاندې کوي، په شمول د شبکې شریک پروسس کونکو او کوربه توب ترمنځ اړیکه. د پخوانیو خپرونو لپاره دلته کلیک وکړئ.
د خپرونې لنډیز
مهمې ځانګړتیاوې | د API بدلونونه | د بګ اصلاحات | د چپ فعالول
کلیدي ځانګړتیاوې
یوازې بنسټیز پلیټ فارم بدلیږي.
د API بدلونونه
هیڅ نه.
د بګ فکسونه
هیڅ نه.
د چپ فعالول
هیڅ نه.
کلیدي ځانګړتیاوې
نوي ځانګړتیاوې | ښه والی | لرې شوي ځانګړتیاوې | له کاره لویدلي ځانګړتیاوې
نوې ځانګړتیاوې
هیڅ نه.
وده
یوازې بنسټیز پلیټ فارم بدلیږي.
لرې شوي ځانګړتیاوې
هیڅ نه.
تخریب شوي ځانګړتیاوې
هیڅ نه.
د API بدلونونه
نوي APIs | تعدیل شوي APIs | لرې شوي APIs | له کاره لویدلي APIs
نوي APIs

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB
هیڅ نه.
تعدیل شوي APIs
هیڅ نه.
لرې شوي APIs
هیڅ نه.
له پامه غورځول شوي APIs
هیڅ نه.
د بګ فکسونه
هیڅ نه.
د چپ فعالول
هیڅ نه.
غوښتنلیک Exampبدلون
نوی Examples | تعدیل شوی پخوانیampلرې شوی سابقهamples | له پامه غورځول شوی سابقهamples
نوی Examples
هیڅ نه.
تعدیل شوی پخوانیamples
هیڅ نه.
لرې شوی Examples
هیڅ نه.
له پامه غورځول شوی پخوانیamples
هیڅ نه.
د خوشې کولو بدلونونو اغیزې
د اغیزو بیانونه | د مهاجرت لارښود
د اغیزو بیانونه
هیڅ نه.
د مهاجرت لارښود
هیڅ نه.
پیژندل شوي مسایل او محدودیتونه
هیڅ نه.
د دې ریلیز کارول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB

په خپرونه کې څه دي؟ | مطابقت لرونکی سافټویر | نصب او کارول | مرسته او نظرونه

په خپرونه کې څه دي؟

د USB وسیلې سټیک غوښتنلیک پخوانیamples
مطابقت لرونکی سافټویر

سافټویر
د سادگي SDK د سادگي سټوډیو د سادگي قوماندان GCC د GNU کمپیلر ټولګه) د ARM لپاره د IAR ایمبیډډ ورک بینچ IAR EWARM

مطابقت لرونکی نسخه یا ډول
۲۰۲۵.۶.۰ ۵.۱۱.۰ ۱.۱۸.۲ (د سمپلیسیټي سټوډیو سره چمتو شوی) ۱۲.۲.۱ (د سمپلیسیټي سټوډیو سره چمتو شوی) ۹.۴۰.۱ (د سمپلیسیټي سټوډیو سره چمتو شوی)

نصب او کارول

د خپل پرمختګ د پیل لپاره زموږ وګورئ:
د USB وسیلې پروګرام کولو لارښود. د API اسناد.
د خوندي والټ ادغام په اړه د معلوماتو لپاره، خوندي والټ وګورئ.
بیا بیاview د امنیت او سافټویر مشورتي خبرتیاوې او ستاسو د خبرتیا غوره توبونه اداره کړئ:
ò https://community.silabs.com/ ته لاړ شئ. ó د خپل حساب اسنادو سره ننوتل. ô خپل مسلکي کلیک وکړئfile د پاڼې په پورتنۍ ښیې کونج کې آیکون.
õ د ډراپ ډاون مینو څخه خبرتیاوې غوره کړئ. ö د خبرتیاو برخه کې، زما د محصول خبرتیاو ټب ته لاړ شئ ترڅو بیا وګورئview د تاریخي امنیت او سافټویر مشورې
خبرتیاوې
÷ د خپلو غوره توبونو د مدیریت لپاره، د خبرتیاوو د مدیریت ټب وکاروئ ترڅو دودیز کړئ چې کوم محصول تازه معلومات او مشورې تاسو ته درکوي
ترلاسه کول
د سپارښتنو ترتیب ترتیباتو لپاره، دلته وګورئ.
په دې خپرونه کې د سافټویر په اړه د نورو معلوماتو لپاره، زموږ آنلاین اسنادو ته لاړ شئ.
مرسته او فیډبیک

د سیلیکون لابراتوار ملاتړ سره اړیکه ونیسئ. د ځوابونو ترلاسه کولو لپاره زموږ د Ask AI وسیلې کارولو لپاره، د دې پاڼې په سر کې د لټون ساحه وګورئ.

یادونه: Ask AI تجربوي دی.

زموږ د پراختیا کونکي ټولنې څخه مرسته ترلاسه کړئ.
د SDK د خپریدو او ساتنې پالیسي
زموږ د SDK خپرولو او ساتنې پالیسي وګورئ.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview
مشخصات
د "یونیورسل سیریل بس مشخصاتو بیاکتنې 2.0" سره مطابقت لري د "انټرفیس ایسوسی ایشن ډیسکریپټر انجینرینګ بدلون خبرتیا (ECN)" پلي کوي د لیږد ډولونه
د بلک انټرپټ USB ټولګي کنټرول د مخابراتو وسیلې ټولګي (CDC) د خلاصې کنټرول ماډل (ACM) د انسان انٹرفیس وسیله (HID) د ډله ایز ذخیره کولو ټولګي (MSC) د پلورونکي ځانګړي ټولګي چوکاټ
ځانګړتیاوې
د حافظې د فوټ پرینټ کمولو لپاره یوازې اړین ځانګړتیاوې شاملولو لپاره د اندازې وړ د بشپړ سرعت (12 Mbit/s) ملاتړ کوي د کمپوزیټ (څو فعالیت) وسیلو ملاتړ کوي د څو تنظیمي وسیلو ملاتړ کوي د USB بریښنا سپمولو فعالیتونو ملاتړ کوي (د وسیلې تعلیق او بیا پیل) د مایکریم OS سره د ډله ایز ذخیره کولو ټولګي بشپړ ادغام File د سیسټم ماډل د CMSIS-RTOS2 تجرید طبقې سره رامینځته شوی ترڅو دا د مختلفو عملیاتي سیسټمونو سره کار وکړي. د سیلیکون لابراتوار GSDK د FreeRTOS او مایکریم OS پورټونو سره راځي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview

د USB وسیلې ترتیب

دا برخه د سیلیکون لیبز USB وسیلې د تنظیم کولو څرنګوالي په اړه بحث کوي. د ترتیب پیرامیټرو درې ډلې شتون لري، په لاندې ډول:
د USB وسیلې اصلي ترتیب د USB وسیلې معلومات ترتیب د USB وسیلې هارډویر ترتیب
د USB وسیلې اصلي ترتیب
د سیلیکون لابراتوار USB وسیله د تالیف په وخت کې د sl_usbd_core_config.h کې موقعیت لرونکي #defines سیټ له لارې تنظیم کیدی شي. file. USB Device کله چې امکان ولري #define کاروي ځکه چې دوی د کوډ او ډیټا اندازې ته اجازه ورکوي چې د تالیف په وخت کې د فعال شوي ځانګړتیاو پراساس اندازه شي. دا د سیلیکون لیبز USB Device د لوستلو یوازې حافظه (ROM) او تصادفي لاسرسي حافظه (RAM) فوټ پرنټونو ته اجازه ورکوي چې ستاسو د غوښتنلیک اړتیاو پراساس تنظیم شي.
سپارښتنه شوې: د ترتیب پروسه د ډیفالټ ارزښتونو سره پیل کړئ (په بولډ کې روښانه شوی).
لاندې برخې د ټیمپلیټ ترتیب کې د ترتیب پراساس تنظیم شوي دي. file، sl_usbd_core_config.h.
د اصلي ترتیب ټولګي ترتیب
اصلي ترتیب
جدول - د USB وسیلې اصلي ترتیب ثابتونه

ثابت وضاحت

ډیفالټ ارزښت

د SL_USBD_TA SK_STACK_ اندازه

د USBD کور ټاسک د سټیک اندازه په بایټونو کې تنظیموي

4096

د SL_USBD_TA SK_PRIORIT Y

د USBD اصلي دندې لومړیتوب تنظیموي. دا د CMSIS-RTOS2 لومړیتوب دی.

د لومړیتوب لوړوالی

SL_USBD_A UTO_START _USB_DEVIC E

که چیرې فعال شي، نو د USB وسیله به په اتوماتيک ډول پیل شي کله چې کرنل پیل شي او د لومړي ځل لپاره د 1 USBD کور دنده مهالویش شوې وي. که چیرې غیر فعال وي، نو ستاسو غوښتنلیک به اړتیا ولري چې sl_usbd_core_start_device() ته زنګ ووهي کله چې د USB کوربه لخوا کشف کیدو ته چمتو وي.

SL_USBD_C د هغو تشکیلاتو ټول شمېر چې د sl_usbd_add_configuration() له لارې به اضافه شي

1

د ONFIGURATI فعالیت.

د ON_QUANTI

TY

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

دوامداره
د SL_USBD _انټرف ACE_QU انټيټي
SL_USBD _ALT_INT د خرابۍ اندازه
TY
د SL_USBD _INTERF ACE_GR
د OUP_QU
ANTITY
د SL_USBD _DESCRI
د PTOR_Q
UANTITY
د SL_USBD _STRING _QUANTI
TY
SL_USBD _OPEN_E NDPOIN TS_QUA NTITY

توضیحات د ټولو ترتیباتو لپاره د اضافه کولو لپاره د USB انٹرفیسونو ټولټال شمیر. دا په پراخه کچه د کارول شوي ټولګیو (ټولګیو) پورې اړه لري. د دې په اړه د نورو معلوماتو لپاره چې د ټولګي مثال څومره انٹرفیسونو ته اړتیا لري، د خپل ټولګیو (ټولګیو) "له اصلي سرچینو څخه اړتیاوې" برخې ته مراجعه وکړئ.
ستاسو د ټولو تشکیلاتو لپاره د اضافه کولو لپاره د USB بدیل انٹرفیسونو ټول شمیر. دا په پراخه کچه د کارول شوي ټولګیو (ټولګیو) پورې اړه لري. دا ارزښت باید تل د SL_USBD_INTERFACE_QUANTITY سره مساوي یا ډیر وي. د دې په اړه د نورو معلوماتو لپاره چې د ټولګي مثال څومره بدیل انٹرفیسونو ته اړتیا لري، د خپل ټولګیو (ټولګیو) "له اصلي څخه سرچینو اړتیاوې" برخې ته مراجعه وکړئ.
د USB انٹرفیس ګروپونو ټولټال شمیر چې ستاسو د ټولو تشکیلاتو لپاره به اضافه شي. دا په پراخه کچه د کارول شوي ټولګیو (ټولګیو) پورې اړه لري. د دې په اړه د نورو معلوماتو لپاره چې د یو ټولګي مثال څومره انٹرفیس ګروپونو ته اړتیا لري، د خپل ټولګي (ټولګیو) "له اصلي څخه سرچینو اړتیاوې" برخې ته مراجعه وکړئ.
ستاسو د ټولو تشکیلاتو لپاره د اضافه شوي پای ټکي تشریح کونکو ټول شمیر. دا په پراخه کچه د کارول شوي ټولګیو (کلاسونو) پورې اړه لري. د دې په اړه د نورو معلوماتو لپاره چې د ټولګي مثال څومره پای ټکي تشریح کونکو ته اړتیا لري، ستاسو د ټولګیو (کلاسونو) د "له کور څخه سرچینې اړتیاوې" برخه کې "د پای ټکو شمیر" ته مراجعه وکړئ. په یاد ولرئ چې د کنټرول پای ټکي دلته په پام کې نیولو ته اړتیا نلري. د USB تارونو ټول شمیر. د مقدار صفر ته تنظیم کول به ځانګړتیا غیر فعال کړي. د دې غیر فعال کول به د دې لامل شي چې وسیله د غوښتنلیک څخه تیر شوي هیڅ USB توضیحي تارونه ذخیره نکړي. دا پدې مانا ده چې کوربه به د توضیحي تارونو (لکه جوړونکی او د محصول نوم) بیرته ترلاسه کولو توان ونلري. په هر ترتیب کې د خلاص شوي پای ټکو ټول شمیر. یو وسیله د کنټرول لیږد لپاره لږترلږه دوه خلاص شوي پای ټکي ته اړتیا لري، مګر تاسو باید د کارول شوي ټولګیو (کلاسونو) پای ټکي هم اضافه کړئ. د دې په اړه د نورو معلوماتو لپاره چې د ټولګي مثال څومره خلاص شوي پای ټکي ته اړتیا لري، ستاسو د ټولګیو (کلاسونو) د "له کور څخه سرچینې اړتیاوې" برخه کې "د پای ټکو شمیر" ته مراجعه وکړئ.

ډیفالټ ارزښت
10 10
2
20 30 20

د ټولګیو ترتیب
ټولګي د تالیف وخت ځانګړي تشکیلات لري. د نورو معلوماتو لپاره د USB وسیلو ټولګیو ته مراجعه وکړئ.
د USB وسیلې د معلوماتو ترتیب

د sl_usbd_device_config.h ترتیب file د کمپائل وخت #define-s بیا ګروپ کوي ترڅو ستاسو د وسیلې په اړه لومړني معلومات تنظیم کړي، لکه د پلورونکي/محصول ID، د وسیلې تارونه، او نور. لاندې جدول د هر معلوماتو ترتیب تشریح کوي چې پدې ترتیب کې شتون لري تعریف کړئ. file.

جدول - د USB وسیلې د معلوماتو ترتیب تعریفوي

دوامداره
د SL_USBD_DEVIC E_VENDOR_ID
د SL_USBD_DEVIC E_PRODUCT_ID

توضیحات ستاسو د پلورونکي د پیژندنې شمیره لکه څنګه چې د USB پلي کونکو فورم لخوا ورکړل شوې. د پلورونکي ID ترلاسه کولو څرنګوالي په اړه د نورو معلوماتو لپاره، http://www.usb.org/developers/vendor/ وګورئ. ستاسو د محصول د پیژندنې شمیره.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

دوامداره

تفصیل

ستاسو د وسیلې د خپریدو شمیره SL_USBD_DEVICE_RELEASE. _NUMBER

SL_USBD_DEVICE_MANUFA تار ستاسو د وسیلې جوړونکی تشریح کوي. دا ترتیب له پامه غورځول کیږي کله چې

سیټرر_سټرینګ

ترتیب SL_USBD_STRING_QUANTITY 0 ته ټاکل شوی دی.

SL_USBD_DEVICE_PRODUC تار ستاسو محصول تشریح کوي. دا ترتیب له پامه غورځول کیږي کله چې ترتیب

ټ_سټرینګ

SL_USBD_STRING_QUANTITY په 0 ټاکل شوی دی.

SL_USBD_DEVICE_SERIAL_N هغه تار چې ستاسو د وسیلې سیریل نمبر لري. دا ترتیب له پامه غورځول کیږي کله چې

امبر_سټرینګ

ترتیب SL_USBD_STRING_QUANTITY 0 ته ټاکل شوی دی.

SL_USBD_DEVICE_LANGUA ستاسو د وسیلې د تارونو د ژبې د پیژندنې شمیره. ممکنه ارزښتونه دا دي:
د GE_ID

– SL_USBD_LANG_ID_ARABIC_SAUDI_ARABIA

– SL_USBD_LANG_ID_چینایي_تایوان

– SL_USBD_LANG_ID_انګلیسي_امریکا

– SL_USBD_LANG_ID_انګلیسي_برطانیه

– SL_USBD_LANG_ID_فرانسه

– SL_USBD_LANG_ID_جرمن

– SL_USBD_LANG_ID_یوناني

– SL_USBD_LANG_ID_ITALIAN

– SL_USBD_LANG_ID_پورتګالي

– SL_USBD_LANG_ID_SANSKRIT

دا ترتیب له پامه غورځول کیږي کله چې SL_USBD_STRING_QUANTITY ترتیب 0 ته تنظیم شوی وي.

د USB وسیلې هارډویر ترتیب

د سیلیکون لابراتوار وسیلې پورې اړه لري چې تاسو یې کاروئ، تاسو به احتمالا د USB VBUS سینس سیګنال لپاره د تنظیم کولو لپاره GPIO پن او پورټ ولرئ. د ترتیب تعریفونه د sl_usbd_hardware_config.h سرلیک کې دي. file.

دوامداره
SL_USBD_DRIVER_VBUS_SENSE_PORT SL_USBD_DRIVER_VBUS_SENSE_PIN

تفصیل
ستاسو په بورډ کې د USB VBUS سینس سیګنال لپاره د GPIO پورټ. ستاسو په بورډ کې د USB VBUS سینس سیګنال لپاره د GPIO پن.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview
د USB وسیلې پروګرام کولو لارښود
دا برخه د USB وسیلې ماډل کارولو څرنګوالی تشریح کوي.
د USB وسیلې ماډل لومړنی تنظیم
دا برخه د USB وسیلې ماډل پیل کولو او د وسیلې اضافه کولو، چمتو کولو او پیل کولو لپاره اړین اساسي ګامونه تشریح کوي. د USB وسیلې ماډل پیل کول د USB وسیلې کور پیل کول د aClss(es) پیل کول ستاسو د USB وسیله اضافه کول ستاسو د USB وسیله جوړول د تشکیلاتو اضافه کول د USB فعالیت اضافه کول ستاسو د USB وسیله پیل کول
د پیښې د هوک دندې
د USB وسیلې ماډل پیل کول
د USB وسیلې کور پیل کول
a US a د B وسیلې ماډل کور د sl_usbd_core_init() فعالیت په کلیک کولو سره پیل کړئ. لاندې مثال د sl_usbd_core_init() کلیک کولو ښیې.
Example – د sl_usbd_core_init() زنګ وهل
sl_status_t status; status = sl_usbd_core_init(); که (status ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
د ټولګیو پیل کول
وروسته له دې چې د USB وسیلې ماډل کور پیل شي، تاسو باید هر هغه ټولګی پیل کړئ چې تاسو یې د کارولو اراده لرئ. د نورو معلوماتو لپاره ستاسو د اکلس (ایس) "پروګرامینګ لارښود" برخه وګورئ.
ستاسو د USB وسیله جوړول
د تشکیلاتو اضافه کول
وروسته له دې چې تاسو خپل وسیله په بریالیتوب سره پیل کړئ، تاسو کولی شئ د نوي ترتیب سره پیل کولو سره د USB افعال اضافه کول پیل کړئ. یو وسیله باید لږترلږه یو ترتیب ولري. د ترتیب اضافه کولو لپاره، فعالیت ته زنګ ووهئ aa sl_usbd_core_ dd_configur tion() فنکشن. دا فنکشن باید د هر هغه ترتیب لپاره وغوښتل شي چې تاسو یې اضافه کول غواړئ. مثالampلاندې ښیې چې څنګه بشپړ سرعت اضافه کړئ.
Example - ستاسو وسیله ته د تشکیلاتو اضافه کول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د sl_status_t حالت؛ uint8_t config_nbr_fs؛

/* آلې ته د بشپړ سرعت ترتیب اضافه کول. */

حالت = sl_usbd_core_add_configuration(0,

/* په ترتیب کې کوم ځانګړي ځانګړتیاوې نشته. */

100u

/* د بریښنا اعظمي مصرف: 100mA.

*/

SL_USBD_DEVICE_SPEED_FULL،

/* د بشپړ سرعت ترتیب.

*/

"د اضافه کولو ترتیب"ampد بشپړ سرعت ترتیب"،

&config_nbr_fs);

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

د USB فعالیت اضافه کول
وروسته له دې چې تاسو په بریالیتوب سره خپل وسیله ته لږترلږه یو ترتیب اضافه کړئ، تاسو کولی شئ خپل وسیله ته انٹرفیسونه او پای ټکي اضافه کړئ. هر USB ټولګی د انٹرفیس او پای ټکو ډول، مقدار، او نورو پیرامیټرو له مخې خپلې اړتیاوې لري. د سیلیکون لیبز USB وسیله په هغه ټولګیو کې انٹرفیسونه او پای ټکي اضافه کوي چې دا یې وړاندې کوي.
ستاسو د اپلیکیشن څخه، تاسو کولی شئ د USB ټولګي انسټینټ کړئ او په ترتیب کې یې اضافه کړئ. د USB وسیلې ټولګي مثالونو مفکورې په اړه د نورو معلوماتو لپاره، د USB وسیلې ټولګي وګورئ. په یاد ولرئ چې تاسو کولی شئ د څو فعالیت (مرکب) وسیله رامینځته کولو لپاره په ترتیب کې ډیری مختلف ټولګي مثالونه انسټینټ کړئ او اضافه کړئ.
د پخوانيampلاندې ښیې چې څنګه د ټولګي مثال جوړ کړئ او په ترتیب کې یې اضافه کړئ.
Example - ستاسو وسیله ته د ټولګي مثال اضافه کول

د sl_status_t حالت؛ uint8_t ټولګي_nbr؛
/* د هغه ټولګي یوه بیلګه جوړه کړئ چې تاسو یې کارول غواړئ.*/ /* په یاد ولرئ چې د ټولګي پورې اړه لري دا فعالیت کولی شي ډیر دلیلونه ولري. */ حالت = sl_usbd_ _create_instance(&class_nbr); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }
/* د ټولګي مثال د بشپړ سرعت ترتیب ته اضافه کړئ. */ حالت = sl_usbd_ _add_to_configuration(class_nbr, /* د sl_usbd_ لخوا د ټولګي شمیره راستانه شوه _جوړول_نښې. */
config_nbr_fs); /* د sl_usbd_core_add_configuration() لخوا د ترتیب شمیره بیرته راستانه شوه. */ که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }
ستاسو د USB وسیله پیل کول
په ډیفالټ ډول، وسیله به د USB وسیلې اصلي دندې لخوا په اتوماتيک ډول پیل شي وروسته له دې چې د وسیلې پیل بشپړ شي او کرنل پیل شي. د دې کنټرول لپاره چې کله وسیله پیل شي او د USB کوربه لخوا لیدل کیږي، د اتوماتیک پیل ځانګړتیا غیر فعالولو لپاره د ترتیب تعریف SL_USBD_AUTO_START_USB_DEVICE وکاروئ. کله چې غیر فعال وي، وروسته له دې چې تاسو خپل وسیله جوړه/چمتو کړئ، تاسو کولی شئ دا پیل کړئ او د sl_usbd_core_start_device() فعالیت په زنګ وهلو سره د USB کوربه ته ښکاره کړئ.
د پخوانيampلاندې ښیې چې څنګه خپل وسیله د sl_usbd_core_start_device() فنکشن په کارولو سره پیل کړئ.
Example - خپل وسیله پیل کول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د sl_status_t حالت؛
حالت = sl_usbd_core_start_device(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }

د پیښې د هوک دندې
د USB وسیلې کور ماډل دوه کمزوري هک فعالیتونه وړاندې کوي چې تاسو کولی شئ په خپل غوښتنلیک کې بیا تعریف کړئ. د دوی هدف دا دی چې خبر ورکړي کله چې بس او ترتیب پیښې رامینځته کیږي.
جدول - د USB پیښې هک دندې

پیښه

تفصیل

بس

کله چې د USB بس پیښه رامنځته شي نو زنګ وهل کیږي

کله چې د USB ترتیب پیښه رامنځته شي نو ترتیب بلل کیږي

د فعالیت لاسلیک
باطل sl_usbd_on_bus_event(sl_usbd_bus_event_t پیښه)؛ باطل sl_usbd_on_config_event(sl_usbd_config_event_t پیښه، uint8_t config_nbr)؛

Example – د پیښې هوک دندې

باطل sl_usbd_on_bus_event(sl_usbd_bus_event_t پیښه) { سویچ (پیښه) { قضیه SL_USBD_EVENT_BUS_CONNECT:
// هغه وخت زنګ وهل کیږي کله چې د کوربه کنټرولر په وقفه کې USB کیبل داخل شي؛
قضیه SL_USBD_EVENT_BUS_DISCONNECT: // هغه وخت ویل کیږي کله چې USB کیبل د کوربه کنټرولر بریک څخه لرې شي؛
قضیه SL_USBD_EVENT_BUS_RESET: // هغه وخت بلل کیږي کله چې کوربه د ری سیٹ کمانډ بریک لیږي؛
قضیه SL_USBD_EVENT_BUS_SUSPEND: // هغه وخت بلل کیږي کله چې کوربه د تعلیق امر ماتوي؛
قضیه SL_USBD_EVENT_BUS_RESUME: // هغه وخت زنګ وهل کیږي کله چې کوربه د ویښیدو امر بریک لیږي؛
ډیفالټ: ماتول؛ } }
باطل sl_usbd_on_config_event(sl_usbd_config_event_t پیښه، uint8_t config_nbr) { سویچ (پیښه) { قضیه SL_USBD_EVENT_CONFIG_SET:
// هغه وخت بلل کیږي کله چې کوربه د ترتیب وقفه تنظیموي؛
قضیه SL_USBD_EVENT_CONFIG_UNSET: // هغه وخت بلل کیږي کله چې یو ترتیب غیر تنظیم شوی وي break;
ډیفالټ: ماتول؛ } }

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview

د USB وسیلو ټولګي

په سیلیکون لابراتوار USB وسیلې کې موجود USB ټولګي ځینې عام ځانګړتیاوې شریکوي. دا برخه دا ځانګړتیاوې او د اصلي طبقې سره د دوی تعامل تشریح کوي.
د یوې ځانګړې ټولګي په اړه د نورو معلوماتو لپاره، لاندې وګورئ:
د CDC ACM ټولګی HID ټولګی MSC SCSI ټولګی د پلورونکي ټولګی
د ټولګي مثالونو په اړه
هغه USB ټولګي چې په USB Device کې شتون لري د class instances مفهوم پلي کوي. د class instance د delivery دننه یو فعالیت استازیتوب کوي. دا فعالیت د یو انٹرفیس یا د انٹرفیسونو ګروپ لخوا تشریح کیدی شي او په یو ځانګړي ټولګي پورې اړه لري.
د هر USB ټولګي پلي کول د ټولګي د مثال د مفهوم پر بنسټ ځینې مشترک تشکیلات او دندې لري. عام تشکیلات او دندې په لاندې جدول کې وړاندې شوي دي. د 'ثابت یا فعالیت' کالم سرلیک کې، ځای لرونکی XXXX د ټولګي نوم سره بدلیدلی شي: CDC، HID، MSC، CDC_ACM یا VENDOR (د فعالیت نومونو لپاره پلورونکی).
جدول - د څو ټولګي مثالونو مفهوم پورې اړوند ثابت او دندې

ثابت یا دنده
SL_USBD_XXXX_CL ASS_INS TANCE_QUANTITY
د SL_USBD_XXXX_CONFIGUR ATION_QUANTITY
sl_usb d _XXXX_cre ate _instance ()
sl_usbd_XXXX_د_conf_ته_اضافه_کړئ ()

تفصیل
د ټولګي د مثالونو اعظمي شمیر تنظیموي.
د تشکیلاتو اعظمي شمیر تنظیموي. د ټولګي د پیل په جریان کې، یو جوړ شوی ټولګي مثال به په یو یا ډیرو تشکیلاتو کې اضافه شي. یو نوی ټولګي مثال رامینځته کوي.
د ټاکل شوي وسیلې ترتیب ته د موجوده ټولګي مثال اضافه کوي.

د کوډ پلي کولو په برخه کې، ټولګی به یو سیمه ایز نړیوال متغیر اعلان کړي چې د ټولګي کنټرول جوړښت لري. دا د ټولګي کنټرول جوړښت د یوې ټولګي نمونې سره تړاو لري او د ټولګي نمونې اداره کولو لپاره به ځانګړي معلومات ولري.
لاندې ارقام څو قضیې سناریوګانې ښیې. په هر انځور کې یو کوډ شامل دی چې مثال یې دیample چې د قضیې سناریو سره مطابقت لري.
شکل - څو ټولګي مثالونه - د FS وسیله (د 1 انٹرفیس سره 1 ترتیب) د یو عادي USB وسیله استازیتوب کوي. وسیله بشپړ سرعت (FS) دی او یو واحد ترتیب لري. د وسیلې فعالیت د یو انٹرفیس لخوا تشریح شوی چې د معلوماتو اړیکو لپاره د پای نقطو جوړه جوړه شوې ده. یو ټولګي مثال رامینځته شوی او تاسو ته به اجازه درکړي چې ټول انٹرفیس د هغې اړوند پای نقطې سره اداره کړئ.
شکل - څو ټولګي مثالونه - د FS وسیله 1 ترتیب د 1 انٹرفیس سره)

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

هغه کوډ چې د شکل سره مطابقت لري - څو ټولګي مثالونه - FS وسیله (د 1 انٹرفیس سره 1 ترتیب) په مثال کې ښودل شوی.ampلاندې.
Example – څو ټولګي مثالونه – د FS وسیله ۱ ترتیب د ۱ انٹرفیس سره)

د sl_status_t حالت؛ uint8_t ټولګي_0؛

void app_usbd_XXXX_enable(uint8_t class_nbr) { /* د ټولګي د فعالولو پیښه اداره کړئ. */ }

void app_usbd_XXXX_disable(uint8_t class_nbr) { /* د ټولګي غیر فعالولو پیښه اداره کړئ. */ }

د sl_usbd_XXXX_کال بیکونه_t ټولګي_کال بیکونه = {

(1)

.فعالول = اپ_یو ایس بي ډي_ایکس ایکس ایکس ایکس_فعالول،

.غیر فعال کړئ = app_usbd_XXXX_غیر فعال کړئ

};

حالت = sl_usbd_XXXX_init();

(2)

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

حالت = sl_usbd_XXXX_create_instance(&class_callbacks,

(3)

&کلاس_0);

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

حالت = sl_usbd_XXXX_add_to_configuration(class_0, config_0);

(4)

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

(۱) هر ټولګی د وسیلې د نښلولو/منقطع کولو پیښو او د ټولګي ځانګړي پیښو لپاره د کال بیک دندو سیټ وړاندې کوي. د کال بیک جوړښت اعتراض د دلیل په توګه تیریږي کله چې د sl_usbd_XXXX_create_instance() سره د ټولګي مثال رامینځته کوي.
فعالیت
(۱) ټولګی پیل کړئ. ټول داخلي متغیرات، جوړښتونه، او د ټولګی پورټونه به پیل شي. په یاد ولرئ چې په ځینو ټولګیو کې د Init() فعالیت ممکن نور دلیلونه واخلي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
(2) د ټولګي مثال جوړ کړئ، کوم چې class_0 دی. د sl_usbd_XXXX_create_instance() فعالیت د class_0 سره تړلی د ټولګي کنټرول جوړښت تخصیص کوي. د ټولګي پورې اړه لري، sl_usbd_XXXX_create_instance() ممکن د ټولګي شمیرې پرته اضافي پیرامیټرې ولري چې د ټولګي کنټرول جوړښت کې زیرمه شوي د ټولګي ځانګړي معلومات استازیتوب کوي. aaa (3) د clss inst nce، class_0، د ټاکل شوي ترتیب شمیرې، config_0 ته اضافه کړئ. sl_usbd_XXXX_add_to_configuration() به د انٹرفیس 0 او د هغې اړوند IN او OUT پای ټکي رامینځته کړي. په پایله کې، د ټولګي مثال د انٹرفیس 0 او د هغې پای ټکي پوښي. هر ډول اړیکه چې په انٹرفیس 0 کې ترسره کیږي د ټولګي مثال شمیره، class_0 به وکاروي. شکل - څو ټولګي مثالونه - FS وسیله (2 تشکیلات او څو انٹرفیسونه) یو ډیر پیچلی سابقه استازیتوب کويample. یو بشپړ سرعت لرونکی وسیله د دوو تشکیلاتو څخه جوړه شوې ده. دا وسیله دوه دندې لري چې په ورته ټولګي پورې اړه لري، مګر هر فعالیت د دوو انٹرفیسونو لخوا تشریح شوی او د دوه اړخیز پای ټکي یوه جوړه لري. پدې مثال کېampپه دې توګه، دوه ټولګي مثالونه رامینځته کیږي. د هر ټولګي مثال د انٹرفیسونو یوې ډلې سره تړاو لري لکه څنګه چې د شکل - څو ټولګي مثالونه - FS وسیله (د 1 انٹرفیس سره 1 ترتیب) او شکل - څو ټولګي مثالونه - FS وسیله (2 ترتیبونه او څو انٹرفیسونه) برعکس چیرې چې د ټولګي مثال د یو واحد انٹرفیس سره تړاو درلود.
شکل - څو ټولګي مثالونه - د FS وسیله 2 تشکیلات او څو انٹرفیسونه)

هغه کوډ چې د شکل سره مطابقت لري - څو ټولګي مثالونه - FS وسیله (2 تشکیلات او څو انٹرفیسونه) په مثال کې ښودل شویampلاندې. د وضاحت لپاره د تېروتنې اداره کول له پامه غورځول شوي دي.
Example – څو ټولګي مثالونه – د FS وسیله 2 تشکیلات او څو انٹرفیسونه)

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د sl_status_t حالت؛ uint8_t class_0؛ uint8_t class_1؛
حالت = sl_usbd_XXXX_init();
حالت = sl_usbd_XXXX_create_instance(&class_0); حالت = sl_usbd_XXXX_create_instance(&class_1);
حالت = sl_usbd_XXXX_ترتیب ته اضافه کول (ټولګي_0، cfg_0)؛ حالت = sl_usbd_XXXX_ترتیب ته اضافه کول (ټولګي_1، cfg_0)؛
حالت = sl_usbd_XXXX_ترتیب ته اضافه کول (ټولګي_0، cfg_1)؛ حالت = sl_usbd_XXXX_ترتیب ته اضافه کول (ټولګي_1، cfg_1)؛

(1)
(2) (3)
(4) (5)
(6) (6)

(۱) ټولګی پیل کړئ. هر ډول داخلي متغیرات، جوړښتونه، او ټولګی پورټونه به پیل شي.
(۲) د ټولګي مثال جوړ کړئ، class_0. فعالیت sl_usbd_XXXX_create_instance() د class_0 سره تړلی د ټولګي کنټرول جوړښت تخصیص کوي.
(۳) د ټولګي مثال جوړ کړئ، class_1. فعالیت sl_usbd_XXXX_create_instance() د class_1 سره تړلی بل ټولګي کنټرول جوړښت تخصیص کوي.
(۴) د cfg_0 ترتیب ته د ټولګي مثال، class_0، اضافه کړئ. sl_usbd_XXXX_add_to_configuration() به د انٹرفیس 0، انٹرفیس 1، بدیل انٹرفیسونه، او اړونده IN او OUT پای ټکي رامینځته کړي. د ټولګي مثال شمیره، class_0، به د انٹرفیس 0 یا انٹرفیس 1 کې د هر ډول معلوماتو اړیکو لپاره وکارول شي.
(۵) د cfg_0 ترتیب ته د ټولګي مثال، class_1، اضافه کړئ. sl_usbd_XXXX_add_to_configuration() به د انٹرفیس ۲، انٹرفیس ۳ او د دوی اړوند IN او OUT پای ټکي رامینځته کړي. د ټولګي مثال شمیره، class_1، به د انٹرفیس ۲ یا انٹرفیس ۳ کې د هر ډول معلوماتو اړیکو لپاره وکارول شي.
(۶) ورته ټولګي مثالونه، class_0 او class_1، په بل ترتیب، cfg_1 کې اضافه کړئ.
هر ټولګی د sl_usbd_XXXX_callbacks_t ډول جوړښت تعریفوي. د دې هدف دا دی چې هر ټولګي ته د کال بیک دندو یوه سیټ ورکړي چې کله پیښه پیښ شي نو ورته ویل کیږي. په هر ټولګي کې دوه د کال بیک دندو شتون لري. دوی په لاندې جدول کې وړاندې شوي.
جدول - د عام ټولګي کال بیک دندې

د ساحو توضیحات .enable کله چې د USB کلاس انسټانس په بریالیتوب سره فعال شي زنګ وهل کیږي. .disable کله چې د USB کلاس انسټانس غیر فعال شي زنګ وهل کیږي.

د فعالیت لاسلیک void app_usbd_XXXX_enable(uint8_t class_nbr); void app_usbd_XXXX_disable(uint8_t class_nbr);

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview
د USB وسیله د CDC ACM ټولګي
د USB وسیلې CDC اساس ټولګي پایview د USB وسیله CDC ACM ټولګي سرچینې اړتیاوې د کور USB وسیله CDC ACM فرعي ټولګي څخهview د USB وسیله د CDC ACM ټولګي ترتیب د USB وسیله د CDC ACM ټولګي پروګرام کولو لارښود
دا برخه د مخابراتو وسیلې ټولګي (CDC) ټولګي او اړونده CDC فرعي ټولګي تشریح کوي چې د سیلیکون لابراتوارونو د USB وسیلې سټیک لخوا ملاتړ کیږي. د سیلیکون لابراتوارونو USB- وسیله اوس مهال د خلاصې کنټرول ماډل (ACM) فرعي ټولګي ملاتړ کوي، کوم چې معمولا د سریال ایمولیشن لپاره کارول کیږي.
CDC د مخابراتو او شبکې مختلف وسایل لري. مخابراتي وسایل انالوګ موډیمونه، انالوګ او ډیجیټل ټیلیفونونه، ISDN ټرمینل اډاپټرونه او نور شامل دي. د مثال په توګهampپه هرصورت، د شبکې وسایل ADSL او کیبل موډیمونه، ایترنیټ اډاپټرونه، او مرکزونه لري. CDC د موجوده مخابراتي خدماتو معیارونو، لکه V.250 (د ټیلیفون شبکې له لارې د موډیمونو لپاره) او ایترنیټ (د سیمه ایزې شبکې وسیلو لپاره) د USB لینک په کارولو سره د پوښښ لپاره یو چوکاټ تعریفوي. د مخابراتي وسیله د وسیلې مدیریت، د اړتیا په وخت کې د زنګ مدیریت، او د معلوماتو لیږد مسؤلیت لري.
CDC د وسایلو اووه لوی ګروپونه تعریفوي. هره ډله د اړیکو ماډل پورې اړه لري، چې ممکن څو فرعي ټولګي پکې شاملې وي. د وسایلو هره ډله د CDC د اساس ټولګي سربیره خپل مشخصات سند لري. اووه ګروپونه دا دي:
د عامه سویچ شوي ټیلیفون شبکه (PSTN)، وسایل چې د غږ بند موډیمونه، ټیلیفونونه، او د سریال ایمولیشن وسایل پکې شامل دي. د مدغم خدماتو ډیجیټل شبکې (ISDN) وسایل، په شمول د ټرمینل اډاپټرونه او ټیلیفونونه. د ایترنیټ کنټرول ماډل (ECM) وسایل، په شمول د IEEE 802 کورنۍ ملاتړ کونکي وسایل (د مثال په توګه: کیبل او ADSL موډیمونه، وای فای اډاپټرونه). د غیر متمرکز لیږد حالت (ATM) وسایل، په شمول د ADSL موډیمونه او د ATM شبکو سره وصل نور وسایل (ورک سټیشنونه، روټرونه، LAN سویچونه). د بېسیم ګرځنده مخابراتو (WMC) وسایل، په شمول د څو فعالیت مخابراتي هینډسیټ وسایل چې د غږ او ډیټا مخابراتو اداره کولو لپاره کارول کیږي. د ایترنیټ ایمولیشن ماډل (EEM) وسایل چې د ایترنیټ چوکاټ شوي ډیټا تبادله کوي. د شبکې کنټرول ماډل (NCM) وسایل، په شمول د لوړ سرعت شبکې وسایل (د لوړ سرعت پیکټ لاسرسي موډیمونه، د لاین ټرمینل تجهیزات)
د CDC او اړونده فرعي ټولګي پلي کول د لاندې مشخصاتو سره سمون لري:
یونیورسل سیریل بس، د مخابراتي وسایلو لپاره د ټولګي تعریفونه، بیاکتنه ۱.۲، د نومبر ۳، ۲۰۱۰. یونیورسل سیریل بس، مخابرات، د PSTN وسیلو لپاره فرعي ټولګي، بیاکتنه ۱.۲، د فبروري ۹، ۲۰۰۷.
د USB وسیلې CDC اساس ټولګي پایview
د CDC وسیله د اړیکو وړتیا پلي کولو لپاره د لاندې انٹرفیسونو څخه جوړه شوې ده:
د مخابراتو ټولګي انٹرفیس (CCI) د وسیلې مدیریت او په اختیاري ډول د زنګ مدیریت مسؤلیت لري.
د وسیلې مدیریت د وسیلې عمومي ترتیب او کنټرول او کوربه ته د پیښو خبرتیا فعالوي. د زنګ مدیریت د زنګونو تاسیس او پای ته رسولو ته اجازه ورکوي. د زنګ مدیریت ممکن د DCI له لارې ملټي پلیکس شي. CCI د ټولو CDC وسیلو لپاره لازمي دی. دا د CDC فعالیت د CDC وسیلې لخوا ملاتړ شوي د مخابراتو ماډل مشخص کولو سره پیژني. د CCI تعقیب انٹرفیس (ونه) کولی شي د USB ټولګي هر ډول تعریف شوی انٹرفیس وي، لکه آډیو یا د پلورونکي ځانګړي انٹرفیس. د پلورونکي ځانګړي انٹرفیس په ځانګړي ډول د DCI لخوا استازیتوب کیږي.
د معلوماتو ټولګي انٹرفیس (DCI) د معلوماتو لیږد مسؤلیت لري. لیږدول شوي او/یا ترلاسه شوي معلومات د یو ځانګړي تعقیب نه کوي
بڼه. معلومات کیدای شي د اړیکو له کرښې څخه خام معلومات وي، د ملکیت بڼې تعقیبونکي معلومات وي، او داسې نور. ټول DCIs چې د CCI تعقیبوي د فرعي انٹرفیسونو په توګه لیدل کیدی شي.
د CDC وسیله باید لږترلږه یو CCI او صفر یا ډیر DCIs ولري. یو CCI او هر فرعي DCI یوځای کوربه ته یو ځانګړتیا چمتو کوي. دا وړتیا د فعالیت په نوم هم یادیږي. په CDC مرکب وسیله کې، تاسو کولی شئ څو ولرئ

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
دندې. له همدې امله، وسیله به د CCI او DCI(s) له څو سیټونو څخه جوړه وي لکه څنګه چې په شکل کې ښودل شوي - د CDC مرکب وسیله.
انځور - د سي ډي سي مرکب وسیله

د CDC وسیله احتمال لري چې د پای ټکو لاندې ترکیب وکاروي:
د کنټرول IN او OUT پای نقطو یوه جوړه چې د ډیفالټ پای نقطه بلل کیږي. یو اختیاري بلک یا انټرپټ IN پای نقطه. د بلک یا اسوکرونوس IN او OUT پای نقطو یوه جوړه. په یاد ولرئ چې د سیلیکون لیبز USB وسیلې سټیک اوس مهال د اسوکرونوس پای نقطو ملاتړ نه کوي.
لاندې جدول د مختلفو پای ټکو کارول او د CDC د کوم انٹرفیس له لارې کارول کیږي ښیې.
جدول - د CDC د پای ټکی کارول

پای ټکی
کنټرول IN
کنټرول بهر
مداخله یا ډله په لویه کچه یا اسوکرونوس کې په لویه کچه یا اسوکرونوس کې
بهر

هدایت
د کوربه توب وسیله
کوربه-تو-وسیله
د کوربه توب وسیله
د کوربه توب وسیله
کوربه-تو-وسیله

د انٹرفیس کارول

CCI

د شمېرنې لپاره معیاري غوښتنې، د ټولګي ځانګړي غوښتنې، وسیله

مدیریت، او په اختیاري توګه د زنګ مدیریت.

CCI

د شمېرنې لپاره معیاري غوښتنې، د ټولګي ځانګړي غوښتنې، وسیله

مدیریت، او په اختیاري توګه د زنګ مدیریت.

CCI

د پیښو خبرتیا، لکه د حلقې کشف، د سریال لاین حالت، د شبکې حالت.

DCI

خام یا فارمیټ شوي معلوماتي اړیکه.

DCI

خام یا فارمیټ شوي معلوماتي اړیکه.

ډیری مخابراتي وسایل د پیښو کوربه ته د خبر ورکولو لپاره د مداخلې پای ټکی کاروي. کله چې یو ملکیتي پروتوکول د USB پروتوکول غلطیو په صورت کې د معلوماتو بیا لیږد باندې تکیه کوي نو د معلوماتو لیږد لپاره باید د ایزوکرونوس پای ټکي ونه کارول شي. ایزوکرونوس اړیکه کولی شي په طبیعي ډول معلومات له لاسه ورکړي ځکه چې دا د بیا هڅه کولو میکانیزم نلري.
د اړیکو اووه لوی ماډلونه څو فرعي ټولګي لري. یو فرعي ټولګي هغه لاره تشریح کوي چې وسیله باید د وسیلې مدیریت او زنګ مدیریت اداره کولو لپاره د CCI څخه کار واخلي. لاندې جدول ټول ممکنه فرعي ټولګي او د اړیکو ماډل ښیې چې دوی ورسره تړاو لري.
جدول – د CDC فرعي ټولګي

فرعي ټولګی
د مستقیمې کرښې کنټرول ماډل د خلاصې کنټرول ماډل

د اړیکو ماډل
PSTN
PSTN

Exampد دې فرعي ټولګي کارولو وسیلو le
د موډیم وسایل چې مستقیم د USB کوربه لخوا کنټرول کیږي
د سریال ایمولیشن وسایل، د موډیم وسایل چې د سریال کمانډ سیټ له لارې کنټرول کیږي

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

فرعي ټولګی

د اړیکو ماډل

Exampد دې فرعي ټولګي کارولو وسیلو le

د ټیلیفون کنټرول ماډل

PSTN

د څو چینلونو کنټرول ISDN ماډل

د CAPI کنټرول ماډل ISDN

د ایترنیټ شبکې ECM کنټرول ماډل

د ATM شبکه کول

ATM

د کنټرول ماډل

د بېسیم هینډسیټ کنټرول ماډل

WMC

د وسایلو مدیریت WMC

د موبایل مستقیم لاین ماډل

WMC

اوبیکس

WMC

د ایترنیټ ایمولیشن EEM ماډل

د شبکې کنټرول ماډل

NCM

د غږ ټیلیفوني وسایل
د لومړني نرخ ټرمینل اډاپټرونه، د لومړني نرخ ټرمینل اډاپټرونه، ټیلیفونونه
د لومړني نرخ ټرمینل اډاپټرونه، د لومړني نرخ ټرمینل اډاپټرونه، د ټیلیفونونو DOC-SIS کیبل موډیمونه، ADSL موډیمونه چې د PPPoE ایمولیشن ملاتړ کوي، وای فای اډاپټرونه (IEEE 802.11-کورنۍ)، IEEE 802.3 اډاپټرونه ADSL موډیمونه
د موبایل ټرمینل تجهیزات چې بې سیم وسیلو سره وصل کیږي
د موبایل ټرمینل تجهیزات چې بې سیم وسیلو سره نښلوي د موبایل ټرمینل تجهیزات چې بې سیم وسیلو سره نښلوي
د موبایل ټرمینل تجهیزات چې بېسیم وسیلو سره نښلوي هغه وسایل چې د ټرانسپورټ د راتلونکي طبقې په توګه د ایترنیټ چوکاټونو څخه کار اخلي. د روټینګ او انټرنیټ اتصال وسیلو لپاره ندي IEEE 802.3 اډاپټرونه چې په شبکه کې د لوړ سرعت ډیټا بینډ ویت لیږدوي

د کور څخه د USB وسیله CDC ACM ټولګي سرچینې اړتیاوې

هرکله چې تاسو د sl_usbd_cdc_acm_add_to_configuration() فنکشن ته د زنګ وهلو له لارې د USB ترتیب ته د CDC ACM ټولګي انسټانس اضافه کوئ، لاندې سرچینې به د کور څخه تخصیص شي.

سرچینه
انٹرفیسونه بدیل انٹرفیسونه د پای ټکي د انٹرفیس ګروپونه

مقدار
2 2 3 1

په یاد ولرئ چې دا شمیرې د هر ترتیب لپاره دي. کله چې خپل SL_USBD_INTERFACE_QUANTITY، SL_USBD_ALT_INTERFACE_QUANTITY، SL_USBD_INTERFACE_GROUP_QUANTITY او SL_USBD_DESCRIPTOR_QUANTITY ترتیب ارزښتونه تنظیم کړئ، مه هیروئ چې په پام کې ونیسئ چې څومره ترتیبونه به ټولګي اضافه شي. د SL_USBD_OPEN_ENDPOINTS_QUANTITY ترتیب ارزښت لپاره، ځکه چې پای ټکي یوازې هغه وخت خلاصیږي کله چې یو ترتیب د کوربه لخوا تنظیم شي، تاسو یوازې اړتیا لرئ د ټولګي مثال لپاره د اړتیا وړ پای ټکي شمیر په پام کې ونیسئ.
د USB وسیله CDC ACM فرعي ټولګي اوورview

د CDC اساس ټولګی د مخابراتو ټولګي انٹرفیس (CCI) او د معلوماتو ټولګي انٹرفیس (DCI) څخه جوړ شوی دی، کوم چې په تفصیل سره د USB وسیلې CDC اساس ټولګی اوور کې بحث شوی.view . دا برخه د ACM ډول CCI په اړه بحث کوي. دا د مدیریت عنصر لپاره د ډیفالټ پای ټکی او د خبرتیا عنصر لپاره د مداخلې پای ټکی لري. د DCI په اوږدو کې د نامعلومو معلوماتو لیږدولو لپاره د بلک پای ټکو یوه جوړه کارول کیږي.
د ACM فرعي ټولګی د دوه ډوله مخابراتي وسیلو لخوا کارول کیږي:
هغه وسایل چې د AT قوماندې ملاتړ کوي (د مثال په توګه، د غږ بند موډیمونه). د سیریل ایمولیشن وسایل چې د مجازی COM پورټ وسایل هم بلل کیږي.
د ACM فرعي ټولګي لپاره څو فرعي ټولګي پورې اړوند غوښتنې شتون لري. دوی تاسو ته اجازه درکوي چې وسیله کنټرول او تنظیم کړئ. د ټولو ACM غوښتنو بشپړ لیست او توضیحات په مشخصاتو کې موندل کیدی شي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview د PSTN وسیلو لپاره فرعي ټولګی، بیاکتنه ۱.۲، د فبروري ۹، ۲۰۰۷ =، برخه ۶.۲.۲.
له دې لیست څخه، د سیلیکون لیبز 9 ACM فرعي ټولګی لاندې ملاتړ کوي:
جدول - د سیلیکون لابراتوارونو لخوا ملاتړ شوي د ACM غوښتنې

د فرعي ټولګي غوښتنې توضیحات

د SetCommFeature ترلاسه کول د ClearCommFeature

کوربه دا غوښتنه د ورکړل شوي مخابراتو ځانګړتیا لپاره د ترتیباتو کنټرول لپاره لیږي. د سریال ایمولیشن لپاره نه کارول کیږي.
کوربه دا غوښتنه د ورکړل شوي مخابراتو ځانګړتیا لپاره اوسني ترتیبات ترلاسه کولو لپاره لیږي. د سریال ایمولیشن لپاره نه کارول کیږي.
کوربه دا غوښتنه د ورکړل شوي مخابراتو ځانګړتیا لپاره تنظیمات پاکولو لپاره لیږي. د سریال ایمولیشن لپاره نه کارول کیږي.

د سیټ لاین کوډ کول

کوربه دا غوښتنه د ACM وسیلې ترتیباتو تنظیم کولو لپاره لیږي: د باډ کچه، د سټاپ بټونو شمیر، د برابرۍ ډول او د معلوماتو بټونو شمیر. د سیریل ایمولیشن لپاره، دا غوښتنه په اتوماتيک ډول د سیریل ټرمینل لخوا لیږل کیږي هرکله چې تاسو د خلاص مجازی COM پورټ لپاره سیریل ترتیبات تنظیم کوئ.

ګیټ لاین کوډینګ

کوربه دا غوښتنه د اوسني ACM ترتیباتو (د باډ کچه، د بندولو بټونه، برابري، د معلوماتو بټونه) ترلاسه کولو لپاره لیږي. د سیریل ایمولیشن لپاره، سیریل ټرمینلونه دا غوښتنه په اتوماتيک ډول د مجازی COM پورټ پرانیستلو پرمهال لیږي.

SetControlLineState کوربه دا غوښتنه د نیم ډوپلیکس موډیمونو لپاره کیریر کنټرولولو لپاره لیږي او په ګوته کوي چې د ډیټا ټرمینل تجهیزات (DTE) چمتو دي که نه. د سیریل ایمولیشن په قضیه کې، DTE یو سیریل ټرمینل دی. د سیریل ایمولیشن لپاره، ځینې سیریل ټرمینلونه تاسو ته اجازه درکوي چې دا غوښتنه د کنټرول سیټ سره واستوئ.

سیټ بریک

کوربه دا غوښتنه د RS-232 سټایل وقفې رامینځته کولو لپاره لیږي. د سریال ایمولیشن لپاره، ځینې سریال ټرمینلونه تاسو ته اجازه درکوي چې دا غوښتنه واستوئ.

د سیلیکون لیبز ۹ ACM فرعي ټولګی د مداخلې IN پای ټکی کاروي ترڅو کوربه ته د اوسني سریال لاین حالت په اړه خبر ورکړي. سریال
د کرښې حالت یو بټ میپ دی چې کوربه ته د لاندې په اړه معلومات ورکوي:

د زیات چلولو له امله معلومات رد شوي د پیرټي تېروتنه د چوکاټ تېروتنه د حلقوي سیګنال کشف حالت د ماتولو کشف میکانیزم حالت د لیږد وړونکي حالت د ترلاسه کونکي وړونکي کشف حالت

د سیلیکون لیبز ۹ ACM فرعي ټولګي پلي کول د لاندې مشخصاتو سره سمون لري:
یونیورسل سیریل بس، مخابرات، د PSTN وسیلو لپاره فرعي ټولګی، بیاکتنه 1.2، د فبروري 9، 2007.
د USB وسیلې CDC ACM ټولګي ترتیب

دا برخه د CDC ACM ټولګي (د مخابراتو وسیلې ټولګي، د خلاصې کنټرول ماډل) تنظیم کولو څرنګوالي په اړه بحث کوي. د ترتیب پیرامیټرو دوه ډلې شتون لري:
د USB وسیله د CDC ACM ټولګي د غوښتنلیک ځانګړي تشکیلات د USB وسیله د CDC ACM ټولګي د مثال تشکیلات
د USB وسیله CDC ACM ټولګي غوښتنلیک ځانګړي تشکیلات

د CDC اساسی ټولګی ACM فرعي ټولګی
د CDC اساسی ټولګی

لومړی، د سیلیکون لیبز USB وسیلې CDC ټولګي ماډل کارولو لپاره، تاسو به اړتیا ولرئ چې د CDC تالیف وخت ترتیب #define-s ستاسو د غوښتنلیک اړتیاو سره سم تنظیم کړئ. دوی د sl_usbd_core_config.h سرلیک دننه بیا ګروپ شوي دي. file د CDC برخې لاندې. د دوی هدف دا دی چې د USB وسیلې ماډل ته خبر ورکړي چې څومره USB CDC توکي تخصیص کړي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

لاندې جدول د دې ترتیب جوړښت کې د هر ترتیب ساحه تشریح کوي.
جدول - د USB وسیلې CDC ترتیب تعریفوي

د ترتیب نوم
SL_USBD_CDC_CL د S_INSTANCE_QUANT ITY په توګه
د SL_USBD_CDC_CONF IGURATION_QUANTI
TY
د SL_USBD_CDC_DATA _INTERFACE_QUANTI
TY

تفصیل
د هغو ټولګيو شمېر چې تاسو به يې فنکشن ته د زنګ وهلو له لارې تخصیص کړئ
د sl_usbd_cdc_acm_create_instance().
د تشکیلاتو شمیر. د ACM ټولګي مثالونه د sl_usbd_cdc_acm_add_to_configuration() ته په یو یا ډیرو aaaa تشکیلاتو کې اضافه کیدی شي.
د CDC د ټولو دندو لپاره د معلوماتو انٹرفیسونو (DCI) ټول شمیر. د CDC ACM هر فعالیت aaaaaaaaa د sl_usbd_cdc_acm_create_instance() فعالیت سره وصل شوی به dd dt مداخله وکړي.

ډیفالټ ارزښت
2
1
2

د ACM فرعي ټولګی
د ACM فرعي ټولګي یو د تالیف وخت ترتیب لري چې په لاندې جدول کې ښودل شوی.
جدول - د USB وسیله د CDC ACM ترتیب تعریف

د ترتیب نوم
SL_USBD_CDC_ACM_SUBCL ASS_I NSTANCE_QUANTITY

تفصیل
د فرعي ټولګي مثالونو شمیر تنظیموي چې تاسو به یې د زنګ وهلو له لارې تخصیص کړئ
فعالیت sl_usbd_cdc_acm_create_instance() .

ډیفالټ ارزښت
2

د USB وسیلې CDC ACM ټولګي انسټانس تشکیلات

دا برخه د CDC ACM سیریل کلاس مثالونو پورې اړوند تشکیلات تعریفوي. د کلاس انسټانس جوړول د لاین حالت وقفه زنګ mgmt وړتیاوې p_acm_callbacks
د ټولګي مثال جوړول

د CDC ACM سیریل کلاس انسټنس جوړولو لپاره، فنکشن T a sl_usbd_cdc_acm_create_instance() ته زنګ ووهئ. د هغه فنکشن درې ترتیب دلیلونه لري، لکه څنګه چې دلته تشریح شوي.

د کرښې_حالت_وقفه
دا هغه وقفه ده (په ملی ثانیو کې) چې ستاسو د CDC ACM سریال کلاس انسټانس به د لاین حالت خبرتیاوې د Taa کوربه ته راپور کړي. د هغه v lue باید د دوه ځواک وي (1، 2، 4، 8، 16، او نور).

د mgmt_وړتیاوو ته زنګ ووهئ
د زنګ وهلو مدیریت وړتیاوې بټ میپ. د بټ میپ ممکنه ارزښتونه په لاندې ډول دي:

ارزښت (بټ)
د SL_USBD_ACM_SERIAL_CALL_MGMT_DEV معرفي کول
د SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI _DCI

تفصیل
وسیله پخپله د زنګ مدیریت اداره کوي. وسیله کولی شي د ډیټا کلاس انٹرفیس له لارې د زنګ مدیریت معلومات واستوي/ترلاسه کړي.

د_acm_کال بیکونه

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

aa M aa p_acm_callbacks د sl_usbd_cdc_acm_callbacks_t ډول جوړښت ته اشاره کوونکی دی. د دې هدف دا دی چې د CDC AC Cl ss سیټ ته د کال بیک دندو سیټ ورکړي ترڅو د CDC ACM پیښې په وخت کې زنګ ووهل شي. ټول کال بیکونه لازمي ندي او یو null پوائنټر (NULL) د کال بیک جوړښت متغیر کې تیر کیدی شي کله چې کال بیک ته اړتیا نه وي. لاندې جدول د دې ترتیب جوړښت کې موجود هر ترتیب ساحه تشریح کوي.
جدول – sl_usbd_cdc_acm _callbacks_t د ترتیب جوړښت

ساحې

تفصیل

فعال کړئ

کله چې د USB کلاس انسټنس فعال شي نو زنګ وهل کیږي

په بریالیتوب سره

غیر فعال کړئ

کله چې د USB کلاس انسټنس غیر فعال وي نو زنګ وهل کیږي.

.line_control_changed کله چې د کرښې کنټرول بدلون ترلاسه شي نو زنګ وهل کیږي.

line_coding_changed هغه وخت زنګ وهل کیږي کله چې د کرښې کوډ کولو بدلون ترلاسه شي.

د فعالیت لاسلیک
باطل اپلیکیشن_usbd_cdc_acm_enable(uint8_t فرعي ټولګي_nbr)؛
باطل اپلیکیشن_usbd_cdc_acm_disable(uint8_t فرعي ټولګي_nbr)؛
باطل ایپ_یو ایس بي ډي_سي ډي سي_اې سي ایم_لاین_کنټرول_بدل شوی (یو ان ټي ۸ټ فرعي کلاس_این بي آر، یو ان ټي ۸ټ ایونټ، یو ان ټي ۸ټ ایونټ_چنګ ډي)؛ بول ایپ_یو ایس بي ډي_سي ډي سي_اې سي ایم_لاین_کوډینګ_بدل شوی (یو ان ټي ۸ټ فرعي کلاس_این بي آر، یو ان ټي ۸ټ ایونټ_این بي آر، یو ان ټي ۸ټ ایونټ_ایس ایل_یو ایس بي ډي_سي ډي سي_اې سي ایم_لاین_کوډینګ_ټي
* د_لاین_کوډ کول

د کال بیک دندو لپاره د پیښې د خبرتیا زنګ وهلو راجستر کولو برخه وګورئ مثالample.
د USB وسیله CDC ACM ټولګي پروګرام کولو لارښود

دا برخه تشریح کوي چې څنګه د CDC خلاص کنټرول ماډل ټولګي وکاروئ. د USB وسیلې پیل کول CDC ACM ټولګي ستاسو وسیلې ته د USB وسیلې اضافه کول CDC ACM ټولګي مثال د CDC ACM ټولګي په کارولو سره اړیکه نیول
د USB وسیلې CDC ACM ټولګي پیل کول

د CDC ACM ټولګي فعالیت ستاسو په وسیله کې اضافه کولو لپاره، تاسو باید لومړی د CDC اساس ټولګي او د ACM فرعي ټولګي د sl_usbd_cdc_init() او sl_usbd_cdc_acm_init() دندو په یوځای کولو سره پیل کړئ. لاندې مثال ښیې چې څنګه د default rguments په کارولو سره sl_usbd_cdc_init() او sl_usbd_cdc_acm_init() کلیک کړئ.

Example – د CDC ACM ټولګي پیل کول

د sl_status_t حالت؛
حالت = sl_usbd_cdc_init(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
حالت = sl_usbd_cdc_acm_init(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
ستاسو آلې ته د USB آلې CDC ACM کلاس انسټانس اضافه کول
د CDC ACM ټولګي فعالیت ستاسو په وسیله کې اضافه کولو لپاره، تاسو باید یو مثال جوړ کړئ، بیا یې د خپل وسیله په ترتیبونو کې اضافه کړئ.
د CDC ACM ټولګي مثال جوړول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
ستاسو د وسیلې په ترتیب (ساختمانونو) کې د CDC ACM ټولګي مثال اضافه کول د پیښو د خبرتیا کال بیک ثبت کول
د CDC ACM ټولګي مثال جوړول
aa M aaa د sl_usbd_cdc_acm_create_instance() فعالیت په ډکولو سره د CDC AC clss instnce جوړ کړئ. T aaa M aaa لاندې مثال ښیې چې څنګه د sl_usbd_cdc_acm_create_instance() سره د CDC AC clss instnce جوړ کړئ.
Example – د sl_usbd_cdc_acm_create_instance() له لارې د CDC ACM فعالیت جوړول

د uint8_t فرعي ټولګي_nbr؛ د sl_status_t حالت؛
حالت = sl_usbd_cdc_acm_create_instance(64u, SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI_DCI | SL_USBD_ACM_SERIAL_CALL_MGMT_DEV, NULL, &فرعي ټولګي_nbr);
که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
ستاسو د وسیلې په ترتیبونو کې د CDC ACM ټولګي مثال اضافه کول
وروسته له دې چې تاسو د CDC ACM ټولګي انسټنس جوړ کړئ، تاسو کولی شئ دا د فنکشن په زنګ وهلو سره په ترتیب کې اضافه کړئ
sl_usbd_cdc_acm_د_تنظیم_ته_اضافه_کړئ() .
لاندې مثال ښیې چې څنګه sl_usbd_cdc_acm_add_to_configuration() کلیک کړئ.
Example – USBD ACM sl_usbd_cdc_acm_add_to_configuration() ته زنګ ووهئ

د sl_status_t حالت؛

حالت = sl_usbd_cdc_acm_add_to_configuration(فرعي ټولګي_nbr،

(1)

شکل_nbr_fs)؛

(2)

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

aaa (1) د sl_usbd_cdc_acm_create_instance() لخوا بیرته راستانه شوي ترتیب ته د dd کولو لپاره د Cl ss شمیره. (2) د ترتیب شمیره (دلته دا د بشپړ سرعت ترتیب ته اضافه کول).
د پیښو د خبرتیا کال بیک ثبتول
د CDC ACM سریال ټولګی کولی شي ستاسو غوښتنلیک ته د لاین کنټرول یا کوډ کولو کې د هر ډول بدلون په اړه د خبرتیا کال بیک افعالونو له لارې خبر ورکړي. د کال بیک افعال جوړښت د ACM مثال جوړولو پرمهال د دلیل په توګه لیږدول کیدی شي. په یاد ولرئ چې دا کال بیکونه اختیاري دي. مثالample – د CDC ACM د تلیفونونو ثبت کول د تلیفونونو د ثبتولو دندو کارول ښیي. مثالample – د CDC ACM کال بیک پلي کول یو پخوانی ښیېampد کال بیک دندو د پلي کولو موده.
Example – د CDC ACM کال بیکونو ثبت کول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د uint8_t فرعي ټولګي_nbr؛ د sl_status_t حالت؛
د sl_usbd_cdc_acm_callbacks_t sli_usbd_cdc_acm_callbacks = { د اپلیکیشن_یوایس بي ډي_سي ډي سي_ایک ایم_اتصال، د اپلیکیشن_یوایس بي ډي_سي ډي سي_ایک ایم_تړاو، د اپلیکیشن_یوایس بي ډي_سي ډي سي_ایک ایم_لاین_کنټرول_بدل شوی، د اپلیکیشن_یوایس بي ډي_سي ډي سي_ایک ایم_لاین_کوډنګ_بدل شوی، };
حالت = sl_usbd_cdc_acm_create_instance(64u, SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI_DCI | SL_USBD_ACM_SERIAL_CALL_MGMT_DEV, &sli_usbd_cdc_acm_callbacks, &subclass_nbr);
که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }
Example – د CDC ACM کال بیکونو پلي کول

د بول اپ_یو ایس بي ډي_سي ډي سي_اې سي ایم_لاین_کوډینګ_بدل شوی (uint8_t

فرعي ټولګي_nbr,

د sl_usbd_cdc_acm_لاین_کوډینګ_t *p_لاین_کوډینګ)

{

uint32_t باډریټ_نوی;

uint8_t برابري_نوی;

uint8_t stop_bits_new;

uint8_t ډیټا_بټونه_نوی؛

/* TODO د نوي کرښې کوډ کول پلي کړئ.*/ baudrate_new = p_line_coding->BaudRate; parity_new = p_line_coding->Parity; stop_bits_new = p_line_coding->StopBits; data_bits_new = p_line_coding->DataBits;

بیرته راګرځول (ریښتیا)؛

(1)

}

باطل ایپ_usbd_cdc_acm_line_control_بدل شوی (uint8_t فرعي ټولګي_nbr، uint8_t پیښه، uint8_t پیښه_بدل شوی)
{ د بول rts_state; د بول rts_state_بدل شوی; د بول dtr_state; د بول dtr_state_بدل شوی; د بول brk_state; د بول brk_state_بدل شوی;

/* TODO د نوي کرښې کنټرول پلي کړئ. */ rts_state = ((event & SL_USBD_CDC_ACM_CTRL_RTS) ! 0) ? true : false; rts_state_changed = ((event_changed & SL_USBD_CDC_ACM_CTRL_RTS) ! 0) ? true : false; dtr_state = ((event & SL_USBD_CDC_ACM_CTRL_DTR) ! 0) ? true : false; dtr_state_changed = ((event_changed & SL_USBD_CDC_ACM_CTRL_DTR) ! 0) ? true : false; brk_state = ((event & SL_USBD_CDC_ACM_CTRL_BREAK) ! 0) ? true : false; brk_state_changed = ((event_changed & SL_USBD_CDC_ACM_CTRL_BREAK) ! 0) ? ریښتیا : غلط;
}

(۱) دا مهمه ده چې که د کرښې کوډ کولو پلي کول ناکام شي نو دې فعالیت ته غلط بیرته راستانه کړئ. که نه نو، ریښتیا بیرته راستانه کړئ.
د CDC ACM ټولګي په کارولو سره اړیکه نیول
د سریال حالت
د کرښې کوډ کول د کرښې کنټرول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د لاین سټیټ فرعي ټولګي مثال اړیکه
د سریال حالت
د کرښې کوډ کول
د USB کوربه د CDC ACM وسیلې د لاین کوډینګ (د باډ کچه، برابري، او نور) کنټرولوي. کله چې اړتیا وي، غوښتنلیک د لاین کوډینګ تنظیم کولو مسؤلیت لري. د اوسني لاین کوډینګ بیرته ترلاسه کولو او تنظیم کولو لپاره دوه دندې چمتو شوي، لکه څنګه چې په لاندې جدول کې تشریح شوي.
جدول - د CDC ACM لاین کوډ کولو دندې

فعالیت
sl_usbd_cdc_acm_g او د کرښې سره نښلول ()
د sl_usbd_cdc_acm_s او د t_line _coding ()

تفصیل
ستاسو اپلیکیشن کولی شي د اوسني لاین کوډ کولو ترتیبات یا د کوربه څخه د SetLineCoding غوښتنو سره یا د sl_usbd_cdc_acm_set_line_coding() فعالیت سره ترلاسه کړي.
ستاسو اپلیکیشن کولی شي د لاین کوډینګ تنظیم کړي. کوربه کولی شي د GetLineCoding غوښتنې سره تنظیمات بیرته ترلاسه کړي.

د کرښې کنټرول
د USB کوربه د CDC ACM وسیلې د لاین کنټرول (RTS او DTR پنونه، د بریک سیګنال، او داسې نور) کنټرولوي. کله چې اړتیا وي، ستاسو غوښتنلیک د لاین کنټرولونو پلي کولو مسؤلیت لري. د اوسني لاین کنټرولونو بیرته ترلاسه کولو او تنظیم کولو لپاره یو فعالیت چمتو شوی، لکه څنګه چې په لاندې جدول کې تشریح شوي.
جدول - د CDC ACM لاین کنټرول دندې

فعالیت
د sl_usb d _cd c_acm_g او t_line _co intr o l_state ()

ستاسو غوښتنلیک کولی شي د SetControlLineState غوښتنې سره د کوربه لخوا ټاکل شوی د کنټرول لاین اوسنی حالت ترلاسه کړي.

د کرښې ریاست
د USB کوربه په منظم وقفه کې د لاین حالت بیرته ترلاسه کوي. ستاسو غوښتنلیک باید هر ځل چې بدلون ومومي د لاین حالت تازه کړي. کله چې اړتیا وي، ستاسو غوښتنلیک د لاین حالت تنظیم کولو مسؤلیت لري. د اوسني لاین کنټرولونو بیرته ترلاسه کولو او تنظیم کولو لپاره دوه دندې چمتو شوي، لکه څنګه چې په لاندې جدول کې تشریح شوي.
جدول – د CDC ACM لاین سټیټ دندې

فعالیت
د sl_usb d _cd c_acm_se t _line _state _e vennt()
د sl_usbd_cdc_acm_cle ar_line _حالت _e vent()

ستاسو غوښتنلیک کولی شي د کرښې حالت هر ډول پیښې تنظیم کړي. د کرښې حالت تنظیم کولو پرمهال، یو مداخله IN لیږد کوربه ته لیږل کیږي ترڅو د سریال کرښې حالت کې د بدلون په اړه خبر ورکړي.
اپلیکیشن کولی شي د لاین حالت دوه پیښې پاکې کړي: د لیږد کیریر او د ترلاسه کونکي کیریر کشف. نورې ټولې پیښې د ACM سیریل ایمولیشن فرعي ټولګي لخوا پخپله پاکې شوي.

د فرعي ټولګي مثال اړیکه

د سیلیکون لابراتوارونو د ACM فرعي ټولګی د کوربه سره د اړیکو لپاره لاندې دندې وړاندې کوي. د function9 پیرامیټرو په اړه د نورو جزیاتو لپاره، د CDC ACM فرعي ټولګی دندو حواله وګورئ.

د فعالیت نوم
د sl_usb d _cd c_acm_ بیا اعلان () د sl_usb d _cd c_acm_لیکل ()

عملیات
د کوربه څخه د بلک اوټ پای نقطې له لارې معلومات ترلاسه کوي. دا فعالیت بلاک کوي. د بلک IN پای نقطې له لارې کوربه ته معلومات لیږي. دا فعالیت بلاک کوي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

جدول - د CDC ACM مخابراتو API لنډیز aaaaa sl_usbd_cdc_acm_read() او sl_usbd_cdc_acm_write() همغږي اړیکه چمتو کوي، کوم چې د trnsfer بلاک کولو سره تړاو لري. په بل عبارت، د فعالیت زنګ وهلو سره، غوښتنلیک تر هغه وخته پورې بندیږي چې لیږد د غلطۍ سره یا پرته بشپړ شي. د تل لپاره د انتظار څخه مخنیوي لپاره یو وخت پای مشخص کیدی شي. پخوانیampلاندې د لوستلو او لیکلو سابقه ښیېample چې د بلک اوټ پای نقطې په کارولو سره د کوربه څخه معلومات ترلاسه کوي او د بلک IN پای نقطې په کارولو سره کوربه ته معلومات لیږي.
لیست کول - د لوستلو او لیکلو لړۍ Example

__ سمون شوی (۴) uint8_t rx_buf[2];

__ سمون شوی (۴) uint8_t tx_buf[2];

uint32_t

د ایکسفر_لین;

د_حالت_ټ

حالت؛

حالت = sl_usbd_cdc_acm_read(فرعي ټولګي_nbr،

(1)

rx_buf،

(2)

2u

0u

(3)

&xfer_len);

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

حالت = sl_usbd_cdc_acm_write(فرعي ټولګي_nbr,

(1)

tx_buf،

(4)

2u

0u

(3)

&xfer_len);

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

T aaaaa M (1) هغه د sl_usbd_cdc_acm_create_instance() سره جوړ شوی د AC فرعي ټولګي ته داخلي حواله چمتو کوي ترڅو لیږد مناسب بلک OUT یا IN پای ټکي ته واړوي. (2) ستاسو غوښتنلیک باید ډاډ ترلاسه کړي چې فعالیت ته چمتو شوی بفر دومره لوی دی چې ټول معلومات ځای په ځای کړي. که نه نو، د همغږۍ ستونزې ممکن پیښ شي. (3) د لامحدود بلاک کولو وضعیت څخه مخنیوي لپاره، په ملی ثانیو کې څرګند شوی وخت پای مشخص کړئ. د 809 ارزښت د غوښتنلیک دنده د تل لپاره انتظار کوي. (4) غوښتنلیک د پیل شوي لیږد بفر چمتو کوي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview

د USB وسیلې HID ټولګي

د USB وسیلې HID ټولګي پایview د USB وسیله HID ټولګي د اصلي USB وسیلې څخه سرچینې اړتیاوې د HID ټولګي ترتیب د USB وسیله HID ټولګي پروګرام کولو لارښود HID د دوراني ان پټ راپورونه دنده
دا برخه د سیلیکون لیبز USB وسیلې لخوا ملاتړ شوي د انسان انٹرفیس وسیلې (HID) ټولګي تشریح کوي.
د HID ټولګي هغه وسایل شامل دي چې د انسانانو لخوا د کمپیوټر عملیاتو کنټرول لپاره کارول کیږي، لکه کیبورډونه، موږکان، اشاره کونکي وسایل، او د لوبې وسایل.
د HID ټولګی په یوه مرکب وسیله کې هم کارول کیدی شي چې کنټرولونه لري لکه نوبونه، سویچونه، تڼۍ، او سلایډرونه. د مثال په توګهampپه آډیو هیډسیټ کې د غږ، غږ او غږ کنټرول د هیډسیټ د HID فعالیت لخوا کنټرول کیږي. د HID ټولګی کولی شي د هر هدف لپاره معلومات یوازې د کنټرول او مداخلې لیږدونو په کارولو سره تبادله کړي.
د HID ټولګی یو له پخوانیو او خورا پراخه کارول شوي USB ټولګیو څخه دی. ټول لوی کوربه عملیاتي سیسټمونه د HID وسیلو اداره کولو لپاره اصلي ډرایور چمتو کوي، له همدې امله د پلورونکي ځانګړي وسایل د HID ټولګي سره کار کوي. پدې ټولګی کې د محصول مختلف ډولونه لکه LEDs، آډیو، ټچائل فیډبیک، او نور هم شامل دي.
د HID تطبیق د لاندې مشخصاتو سره سمون لري:
د انسان انٹرفیس وسیلو لپاره د وسیلې ټولګي تعریف (HID)، 6/27/01، نسخه 1.11. د یونیورسل سیریل بس HID کارولو جدولونه، 10/28/2004، نسخه 1.12.
د USB وسیلې HID ټولګي پایview
اوورview
د HID وسیله د لاندې پای ټکو څخه جوړه شوې ده:
د کنټرول IN او OUT پای ټکي یوه جوړه چې ډیفالټ پای ټکی بلل کیږي یوه مداخله IN پای ټکی یوه اختیاري مداخله OUT پای ټکی
لاندې جدول د مختلفو پای ټکو کارول تشریح کوي:
جدول - د HID ټولګي د پای ټکي کارول

د پای ټکي لارښوونې کارول

کنټرول IN
کنټرول
بهر
مداخله IN
مداخله
بهر

د کوربه توب وسیله
کوربه-تو-وسیله
د کوربه توب وسیله
کوربه-تو-وسیله

د شمېرنې، ټولګي پورې اړوند غوښتنو، او معلوماتو اړیکو لپاره معیاري غوښتنې (د ننوتلو، فیچر راپورونه د GET_REPORT غوښتنې سره کوربه ته لیږل شوي). د شمېرنې، ټولګي پورې اړوند غوښتنو او معلوماتو اړیکو لپاره معیاري غوښتنې (آؤټ پټ، د فیچر راپورونه د SET_REPORT غوښتنې سره کوربه څخه ترلاسه شوي). د معلوماتو اړیکو (د ننوتلو او فیچر راپورونه).
د معلوماتو اړیکه (د محصول او فیچر راپورونه).

راپور

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

یو کوربه او د HID وسیله د راپورونو په کارولو سره معلومات تبادله کوي. یو راپور د HID وسیلې د کنټرولونو او نورو فزیکي ادارو په اړه معلومات ورکولو لپاره فارمیټ شوي معلومات لري. کنټرول د کارونکي لخوا اداره کیدی شي او د وسیلې یو اړخ چلوي. د مثال په توګهample، کنټرول کیدای شي په موږک یا کیبورډ کې تڼۍ، سویچ، او نور وي. نورې ادارې کارونکي ته د ځینو وسیلو ځانګړتیاو حالت په اړه معلومات ورکوي. د مثال په توګهampپه کیبورډ کې LEDs کارونکي ته د کیپس لاک فعالیدو، د عددي کیپډ فعالیدو، او داسې نورو په اړه خبر ورکوي.
د راپور د معلوماتو بڼه او کارول د کوربه لخوا د راپور تشریح کونکي د مینځپانګې تحلیل کولو سره درک کیږي. د مینځپانګې تحلیل د تحلیل کونکي لخوا ترسره کیږي. د راپور تشریح کونکی په وسیله کې د هر کنټرول لخوا چمتو شوي معلومات تشریح کوي. دا د هغه توکو څخه جوړ شوی چې د وسیلې په اړه د معلوماتو ټوټې دي او د 1 بایټ مخکینۍ او متغیر اوږدوالی څخه جوړ دی.
معلومات. د توکي بڼې په اړه د نورو جزیاتو لپاره، مراجعه وکړئ
۱.۱۱=، برخه ۵.۶ او ۶.۲.۲.
د توکو درې اصلي ډولونه شتون لري:
اصلي توکي د معلوماتو ساحې ځینې ډولونه تعریفوي یا ګروپ کوي.
نړیوال توکي د کنټرول د معلوماتو ځانګړتیاوې بیانوي.
سیمه ایز توکي د کنټرول د معلوماتو ځانګړتیاوې بیانوي.
د هر توکي ډول د مختلفو دندو لخوا تعریف شوی. د یو توکي فعالیت ته هم ویل کیدی شي a tag. د یو توکي فعالیت د فرعي توکي په توګه لیدل کیدی شي چې د دریو اصلي توکو ډولونو څخه یو پورې اړه لري. لاندې جدول دview د هر توکي ډول کې د item9s دندې. د هرې کټګورۍ کې د توکو بشپړ توضیحاتو لپاره، وګورئ
جدول - د هر توکي ډول لپاره د توکي د فعالیت توضیحات

د توکي ډول دنده

تفصیل

اصلي ننوت

د یو یا ډیرو فزیکي کنټرولونو لخوا چمتو شوي معلوماتو په اړه معلومات تشریح کوي.

اصلي محصول هغه معلومات تشریح کوي چې وسیلې ته لیږل شوي.

اصلي ځانګړنه

د وسیلې ترتیب معلومات تشریح کوي چې وسیلې ته لیږل شوي یا ترلاسه شوي کوم چې د وسیلې یا د هغې د یوې برخې عمومي چلند اغیزه کوي.

د اصلي ټولګې ګروپ اړوند توکي (ننوت، محصول یا ځانګړتیا).

د ټولګې اصلي پای. ټولګه

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د توکي ډول دنده

تفصیل

د نړیوال کارونې پاڼه

په وسیله کې موجود فعالیت پیژني.

نړیوال منطقي په منطقي واحدونو کې د راپور شوي ارزښتونو ټیټ حد تعریفوي. لږترلږه

نړیوال منطقي په منطقي واحدونو کې د راپور شوي ارزښتونو لوړ حد تعریفوي. اعظمي حد

نړیوال فزیکي په فزیکي واحدونو کې د راپور شوي ارزښتونو ټیټ حد تعریفوي، دا منطقي لږترلږه لږترلږه دی چې په فزیکي واحدونو کې څرګند شوی.

نړیوال فزیکي په فزیکي واحدونو کې د راپور شوي ارزښتونو پورتنۍ حد تعریفوي، دا هغه منطقي اعظمي اعظمي حد دی چې په فزیکي واحدونو کې څرګند شوی.

نړیوال واحد

په اساس ۱۰ کې د واحد کثافاتو شاخص په ګوته کوي. کثافات شاخص له -۸ څخه تر +۷ پورې دی.

توضیح کوونکی

نړیوال واحد

د راپور شوي ارزښتونو واحد په ګوته کوي. د مثال په توګه، اوږدوالی، ډله، د تودوخې واحدونه، او نور.

د نړیوال راپور اندازه

د راپور ساحو اندازه په بټونو کې ښیي.

د نړیوال راپور ID هغه مختاړی په ګوته کوي چې په ځانګړي راپور کې اضافه شوی.

د نړیوال راپور شمېره

د یو توکي لپاره د معلوماتو ساحو شمیر په ګوته کوي.

نړیوال فشار

د نړیوال توکي حالت جدول یوه کاپي په CPU سټیک کې ځای په ځای کوي.

نړیوال پاپ

د توکي حالت جدول د سټیک څخه وروستي جوړښت سره بدلوي.

ځایی استعمال

د کارونې پاڼې دننه د یو ځانګړي کارونې د ټاکلو لپاره یو شاخص استازیتوب کوي. دا د پلورونکي لخوا د یو ځانګړي کنټرول یا د کنټرولونو ډلې لپاره وړاندیز شوي کارونې ته اشاره کوي. یو کارونې د اپلیکیشن پراختیا کونکي ته معلومات چمتو کوي چې کنټرول په حقیقت کې څه اندازه کوي.

ځایی استعمال

د صف یا بټ میپ سره تړلي پیل شوي کارونې تعریفوي.

لږ تر لږه

ځایی استعمال

د صف یا بټ میپ سره تړلې پای کارول تعریفوي.

اعظمي

سیمه ایز ډیزاینر د کنټرول لپاره کارول شوي د بدن برخه ټاکي. شاخص په فزیکي کې ډیزاینر ته اشاره کوي

شاخص

تشریح کوونکی.

سیمه ایز ډیزاینټر د پیل کونکي ډیزاینټر شاخص تعریفوي چې د صف یا بټ میپ سره تړاو لري. لږترلږه

سیمه ایز ډیزاینر د هغه پای ډیزاینر شاخص تعریفوي چې د صف یا بټ میپ سره تړاو لري. اعظمي

د ځایي تار شاخص

د سټرینګ تشریح کونکي لپاره د سټرینګ شاخص. دا یو سټرینګ ته اجازه ورکوي چې د یو ځانګړي توکي یا کنټرول سره وصل شي.

سیمه ییز تار

د لومړي تار شاخص مشخص کوي کله چې د ترتیبي تارونو ګروپ په یوه صف کې کنټرولونو ته ټاکل کیږي

لږ تر لږه یا بټ میپ.

ځایی ځایی

د تار اعظمي حد
ډیلیمیټر

د وروستي تار شاخص مشخص کوي کله چې د ترتیبي تارونو ګروپ په یوه صف یا بټ میپ کې کنټرولونو ته ټاکل کیږي.
د سیمه ییزو توکو د یوې سیټ پیل یا پای تعریفوي.

د کنټرول ۹ معلومات باید لږترلږه لاندې توکي تعریف کړي:
ننوت، محصول یا ځانګړتیا اصلي توکي کارول سیمه ایز توکي کارول پاڼه نړیوال توکي منطقي لږترلږه نړیوال توکي منطقي اعظمي نړیوال توکي د راپور اندازه نړیوال توکي

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
د راپور شمېرنې نړیوال توکي لاندې جدول د کوربه HID تحلیل کونکي لید څخه د موږک راپور تشریح کونکي مینځپانګې استازیتوب ښیې. موږک درې تڼۍ لري (کیڼ، ښي، او څرخ). کوډ په پخواني کې وړاندې شویampلاندې د دې موږک راپور تشریح کونکي استازیتوب سره سم د کوډ پلي کول دي.
شکل - د کوربه HID پارسر څخه د راپور تشریح کونکي مینځپانګه View

(۱) د کارونې پاڼې توکي فعالیت د وسیلې عمومي فعالیت مشخص کوي. پدې کې مثالample، د HID وسیله د a پورې اړه لري
عمومي ډیسټاپ کنټرول.
(۲) د ټولګې غوښتنلیک هغه اصلي توکي ګروپ کوي چې یو عام هدف لري او ممکن د غوښتنلیکونو سره بلد وي. په ډیاګرام کې، ګروپ د دریو ان پټ اصلي توکو څخه جوړ شوی دی. د دې ټولګې لپاره، د کنټرولونو لپاره وړاندیز شوی کارول موږک دی لکه څنګه چې د کارونې توکي لخوا ښودل شوی. (۳) د ځړول شوي ټولګې کارول کیدی شي د غوښتنلیکونو لپاره د یو واحد کنټرول یا د کنټرولونو ګروپ کارولو په اړه نور توضیحات ورکړي. پدې مثال کېample، د ټولګې فزیکي، چې د ټولګې غوښتنلیک کې ځای پر ځای شوی، د ورته دریو ان پټ توکو څخه جوړ شوی دی چې د ټولګې غوښتنلیک جوړوي. د ټولګې فزیکي د معلوماتو توکو سیټ لپاره کارول کیږي چې په یوه جیومیټریک نقطه کې راټول شوي د معلوماتو ټکي استازیتوب کوي. په مثال کېample، وړاندیز شوی کارول یو پوائنټر دی لکه څنګه چې د کارونې توکي لخوا ښودل شوی. دلته د پوائنټر کارول د موږک موقعیت همغږي ته اشاره کوي او د سیسټم سافټویر به د سکرین کرسر په حرکت کې د موږک همغږي ژباړي. (4) د نیست شوي کارونې پاڼې هم ممکن دي او د وسیلې عمومي فعالیت کې د یو ځانګړي اړخ په اړه نور توضیحات ورکوي. پدې حالت کې، دوه د ان پټ توکي ګروپ شوي او د موږک تڼیو سره مطابقت لري. یو د ان پټ توکي د موږک درې تڼۍ (ښي، چپ او څرخ) د توکي لپاره د ډیټا ساحو شمیر (د راپور شمیر توکي)، د ډیټا ساحې اندازه (د راپور اندازې توکي) او د هر ډیټا ساحې لپاره ممکنه ارزښتونو (د کارولو لږترلږه او اعظمي، منطقي لږترلږه او اعظمي توکي) تعریفوي. بل د ان پټ توکي د 13-بټ ثابت دی چې د ان پټ راپور ډیټا ته اجازه ورکوي چې د بایټ په حد کې سمون ولري. دا د ان پټ توکي یوازې د پیډینګ هدف لپاره کارول کیږي. (5) د عمومي ډیسټاپ کنټرول ته اشاره کولو لپاره د نیست شوي کارونې بله پاڼه د موږک موقعیت همغږي لپاره تعریف شوې. د دې کارونې پاڼې لپاره، د ان پټ توکي د x- او y- محورونو سره مطابقت لرونکي د معلوماتو ساحې تشریح کوي لکه څنګه چې د دوو کارونې لخوا مشخص شوي.
توکي
د مخکیني موږک راپور تشریح کونکي مینځپانګې تحلیل کولو وروسته ، کوربه 9s HID تحلیل کونکی د وسیلې لخوا لیږل شوي د ان پټ راپور ډیټا تشریح کولو توان لري د مداخلې IN لیږد سره یا د GET_REPORT غوښتنې په ځواب کې. د ان پټ راپور ډیټا د موږک راپور توضیح کونکي سره مطابقت لري چې په شکل کې ښودل شوي - د کوربه HID تحلیل کونکي څخه د راپور توضیح کونکي مینځپانګې View is

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

په لاندې جدول کې ښودل شوي. د راپور معلوماتو ټول اندازه 4 بایټه ده. د راپورونو مختلف ډولونه ممکن د ورته پای ټکي ته واستول شي. د راپورونو مختلف ډولونو توپیر کولو لپاره، د معلوماتو راپور ته د 1 بایټ راپور ID مختاړی اضافه کیږي. که چیرې د راپور ID په پخواني کې کارول شوی ويampد موږک راپور په پرتله، د راپور معلوماتو ټول اندازه به 5 بایټه وي.
جدول - د ان پټ راپور کوربه ته لیږل شوی او د 3 تڼیو موږک حالت سره مطابقت لري

بټ آفسټ
0 1 2 3 16 24

د بټ شمېره ۱ ۱ ۱ ۱۳ ۸ ۸

توضیحات تڼۍ ۱ (کیڼ تڼۍ). تڼۍ ۲ (ښي تڼۍ). تڼۍ ۳ (د څرخ تڼۍ). نه کارول کیږي. په محور X کې موقعیت. په محور Y کې موقعیت.

فزیکي تشریح کوونکی د بدن هغه برخه یا برخې په ګوته کوي چې د کنټرول یا کنټرول فعالولو لپاره ټاکل شوي. یو غوښتنلیک ممکن دا معلومات د وسیلې کنټرول ته د فعالیت ټاکلو لپاره وکاروي. فزیکي تشریح کوونکی یو اختیاري ټولګي ځانګړی توضیح کوونکی دی او ډیری وسایل د دې کارولو لپاره لږ ګټه لري. مراجعه وکړئ
د کور څخه د USB وسیلې HID ټولګي سرچینې اړتیاوې

هرکله چې تاسو د sl_usbd_hid_add_to_configuration() فنکشن ته د زنګ وهلو له لارې په USB ترتیب کې د HID ټولګي انسټانس اضافه کوئ، لاندې سرچینې به د کور څخه تخصیص شي.

سرچینه
انٹرفیسونه بدیل انٹرفیسونه د پای ټکي د انٹرفیس ګروپونه

مقدار
۱ ۱ ۱ (۲ که چیرې مداخله وي اوټ پای ټکی فعال وي) ۰

په یاد ولرئ چې دا شمیرې د هر ترتیب لپاره دي. کله چې خپل SL_USBD_INTERFACE_QUANTITY، SL_USBD_ALT_INTERFACE_QUANTITY، SL_USBD_INTERFACE_GROUP_QUANTITY او SL_USBD_DESCRIPTOR_QUANTITY ترتیب ارزښتونه تنظیم کړئ، مه هیروئ چې په پام کې ونیسئ چې څومره ترتیبونه به ټولګي اضافه شي. د SL_USBD_OPEN_ENDPOINTS_QUANTITY ترتیب ارزښت لپاره، ځکه چې پای ټکي یوازې هغه وخت خلاصیږي کله چې یو ترتیب د کوربه لخوا تنظیم شي، تاسو یوازې اړتیا لرئ د ټولګي مثال لپاره د اړتیا وړ پای ټکي شمیر په پام کې ونیسئ.
د USB وسیلې HID ټولګي ترتیب

د HID ټولګي د تنظیمولو لپاره د ترتیب پیرامیټرو دوه ګروپونه کارول کیږي:
د USB وسیلې HID ټولګي غوښتنلیک ځانګړي تشکیلات د USB وسیلې HID ټولګي مثال تشکیلات
د USB وسیلې HID ټولګي غوښتنلیک ځانګړي تشکیلات

لومړی، د سیلیکون لیبز USB وسیلې HID ټولګي ماډل کارولو لپاره، د HID تالیف وخت ترتیب ستاسو د غوښتنلیک اړتیاو سره سم تنظیم کړئ. دوی د sl_usbd_core_config.h سرلیک دننه بیا ګروپ شوي دي. file د HID برخې لاندې. دوی په دوو برخو ویشل کیدی شي، د مقدار تنظیمات او د HID دندې تنظیمات. د مقدار تنظیماتو هدف دا دی چې د USB وسیلې ماډل ته خبر ورکړي چې څومره USB HID شیان تخصیص شي.
لاندې جدول د هر ترتیب تعریف تشریح کوي.
جدول - د USB وسیلې HID ترتیب تعریفوي

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د ترتیب نوم
د SL_USBD_HID_CL ASS_I NSTANCE_QUANTITY
د USBD پټول د URATION_QUANTITY
د SL_USBD_HID_REPORT_ ID_QUANTITY
د SL_USBD_HID_PUSH_P OP_ITEM_QUANTITY
د SL_USBD_HID_TIMER_T پوښتنه_سټاک_سایز
د SL_USBD_HID_TIMER_T پوښتنه_لومړیتوب

تفصیل
د هغو ټولګيو شمېر چې تاسو به يې فنکشن ته د زنګ وهلو له لارې تخصیص کړئ
د sl_usbd_پټ_جوړښت_نښې().
د تشکیلاتو شمیر. د HID ټولګي مثالونه د sl_usbd_hid_add_to_configuration() فعالیت ته په یو یا ډیرو aaaa تشکیلاتو کې اضافه کیدی شي. د راپور IDs ټول شمیر تنظیموي چې تخصیص شي.
د تخصیص لپاره د پش/پاپ توکو ټولټال شمیر تنظیموي.
د ټایمر دنده د ټایمر پر بنسټ ټول HID عملیات اداره کوي. دا ترتیب تاسو ته اجازه درکوي چې د سټیک اندازه (د بایټونو په شمیر کې) تنظیم کړئ. د HID دندې لومړیتوب. دا د CMSIS-RTOS2 لومړیتوب دی.

ډیفالټ ارزښت
2 1 2 0 2048
د لومړیتوب لوړوالی

د USB وسیله HID ټولګي انسټانس تشکیلات د ټولګي انسټانس جوړول فرعي ټولګي
پروتوکول د هیواد_کوډ
interval_in او interval_out p_hid_callback د HID ټولګي راپور تشریح کوونکی Example دا برخه د HID ټولګي مثالونو پورې اړوند تشکیلات تعریفوي.
د ټولګي مثال جوړول
د HID ټولګي انسټنس جوړول د aaa sl_usbd_hid_create_instance() فنکشن په زنګ وهلو سره ترسره کیږي، کوم چې د ترتیب دلیلونه چې لاندې تشریح شوي جلا کوي.
فرعي ټولګی
د HID فرعي ټولګي کوډ. ممکنه ارزښتونه دا دي:
SL_USBD_HID_SUBCL ASS_NONE SL_USBD_HID_SUBCL ASS_BOOT
د HID وسیله چې د بوټ فرعي ټولګي کاروي باید د معیاري راپور بڼې وکاروي. د فرعي ټولګي کوډونو په اړه د نورو معلوماتو لپاره، د HID مشخصاتو بیاکتنې 1.11 برخه 4.2 وګورئ.
پروتوکول
د HID وسیلې لخوا کارول شوی پروتوکول. ممکنه ارزښتونه دا دي:
SL_USBD_HID_PROTOCOL_NONE SL_USBD_HID_PROTOCOL_KBD SL_USBD_HID_PROTOCOL_موږک
که ستاسو د HID فعالیت موږک وي، نو پروتوکول باید aa SL_USBD_HID_PROTOCOL_MOUSE ته تنظیم شي. که دا کیبورډ وي، نو دا باید O ته SL_USBD_HID_PROTOCOL_KBD ته تنظیم شي. له همدې امله، پروتوکول باید SL_USBD_HID_PROTOCOL_NONE ته تنظیم شي. د فرعي ټولګي کوډونو په اړه د نورو معلوماتو لپاره، د HID مشخصاتو بیاکتنې 1.11 برخه 4.3 وګورئ.
د هیواد کوډ
د هیواد کوډ ID. ممکنه ارزښتونه دا دي:
SL_USBD_HID_COUNTRY_CODE_نه_ملاتړ شوی

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
SL_USBD_HID_COUNTRY_CODE_عربي SL_USBD_HID_COUNTRY_CODE_بلجیم SL_USBD_HID_COUNTRY_CODE_کاناډای دوه ژبی SL_USBD_HID_COUNTRY_CODE_کاناډای فرانسوی SL_USBD_HID_COUNTRY_CODE_CZECH_REPUBLIC SL_USBD_HID_COUNTRY_CODE_DANISH SL_USBD_HID_COUNTRY_CODE_FENNISH SL_USBD_HID_COUNTRY_CODE_FRENCH SL_USBD_HID_COUNTRY_CODE_جرمني SL_USBD_HID_COUNTRY_CODE_یوناني SL_USBD_HID_COUNTRY_CODE_هنګري SL_USBD_HID_COUNTRY_CODE_بین المللي SL_USBD_HID_COUNTRY_CODE_ایټالیا SL_USBD_HID_COUNTRY_CODE_JAPAN_KATAKANA SL_USBD_HID_COUNTRY_CODE_CODE_L ATIN_AMERICAN SL_USBD_HID_COUNTRY_CODE_NETHERL ANDS_DUCH SL_USBD_HID_COUNTRY_CODE_NORWEGIAN SL_USBD_HID_COUNTRY_CODE_PORSIAN_FARSI SL_USBD_HID_COUNTRY_CODE_POL او SL_USBD_HID_COUNTRY_CODE_POL او SL_USBD_HID_COUNTRY_CODE_PORTIGUESE SL_USBD_HID_COUNTRY_CODE_روسیه SL_USBD_HID_COUNTRY_CODE_SLOVAKIA SL_USBD_HID_COUNTRY_CODE_SPANISH SL_USBD_HID_COUNTRY_CODE_SWEDISH SL_USBD_HID_COUNTRY_CODE_SWISS_FRENCH SL_USBD_HID_COUNTRY_CODE_SWISS_German SL_USBD_HID_COUNTRY_CODE_SWITZERL او SL_USBD_HID_COUNTRY_CODE_TAIWAN SL_USBD_HID_COUNTRY_CODE_TURKISH_Q SL_USBD_HID_COUNTRY_CODE_US SL_USBD_HID_COUNTRY_CODE_YUG OSL AVIA SL_USBD_HID_COUNTRY_CODE_TURKISH_F
د هیواد کوډ دا په ګوته کوي چې هارډویر د کوم هیواد لپاره ځای پر ځای شوی دی. ډیری هارډویر ځای پر ځای شوی نه دی او له همدې امله دا aaaav lue به SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED (0) وي. په هرصورت، کیبورډونه زه د کیلي کیپونو ژبه ښودلو لپاره ساحه کاروم.
د هیواد د کوډونو په اړه د نورو معلوماتو لپاره، د HID مشخصاتو بیاکتنې 1.11 برخه 6.2.1 وګورئ.
انټروال_ان او انټروال_آؤټ
interval_in او interval_out د IN مداخلې پای نقطې او OUT مداخلې پای نقطې د رایې ورکولو وقفه څرګندوي.
دا د پای ټکي د رایې ورکولو وقفه په ملی ثانیو کې ښیي. د دې ارزښت ټاکل پدې پورې اړه لري چې ستاسو وسیله څومره ځله د کوربه لپاره د نوي راپور تولیدولو لپاره حساسه ده. د مثال په توګه، که چیرې یو راپور په هرو 16 ملی ثانیو کې تولید شي، وقفه باید 16 یا لږ وي.
ارزښت باید د 2 ځواک وي (1، 2، 4، 8، 16، او نور).
که چیرې ctrl_rd_en ریښتیا ته ټاکل شوی وي، نو interval_out v lue له پامه غورځول کیږي.
د_پټ_کال_بیک
aaaa p_hid_callback د sl_usbd_hid_callbacks_t ډول جوړښت ته اشاره کوونکی دی. د دې هدف دا دی چې د HID Cl ss کال بیک دندو سیټ ورکړي ترڅو د HID پیښې رامینځته کیدو پرمهال زنګ ووهل شي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

ټول کال بیکونه لازمي ندي او یو null pointer (NULL) د کال بیک جوړښت متغیر کې لیږدول کیدی شي کله چې کال بیک ته اړتیا نه وي. لاندې جدول د دې ترتیب جوړښت کې موجود هر ترتیب ساحه تشریح کوي.
جدول – sl_usbd_hid_callbacks_t د ترتیب جوړښت

ساحې

تفصیل

د فعالیت لاسلیک

فعال کړئ، غیر فعال کړئ، راپور ترلاسه کړئ، ډیسک
.فای_ډیسک_ترلاسه کړئ
.د_آؤټ پټ_راپور_سیټ_کړئ .د_ځانګړتیا_راپور_ترلاسه_کړئ .د_ځانګړتیا_راپور_سیټ_کړئ

کله چې د USB کلاس انسټانس په بریالیتوب سره فعال شي نو زنګ وهل کیږي. کله چې د USB کلاس انسټانس غیر فعال شي نو زنګ وهل کیږي.
د HID انسټانس جوړولو پرمهال د خپل راپور تشریح کونکي د پاس کولو لپاره زنګ وهل شوی. ستاسو د هر HID فعالیت لپاره، تاسو باید د راپور تشریح کونکي چمتو کړئ. د راپور تشریح کونکي کوربه ته اشاره کوي چې څنګه دوره ای راپور چې د وسیلې لخوا لیږل کیږي باید تحلیل شي. ستاسو د خپل راپور تشریح کونکي لیکل ننګونکي کیدی شي، او له همدې امله د مرستې لپاره ځینې سرچینې شتون لري. دا یوازینۍ لازمي کال بیک فعالیت دی. د HID انسټانس جوړولو پرمهال ستاسو د فزیکي توضیح کونکي د پاس کولو لپاره زنګ وهل شوی. فزیکي توضیح کونکی یو تشریح کونکی دی چې د انسان د بدن د هغه ځانګړي برخې یا برخو په اړه معلومات چمتو کوي چې کنټرول یا کنټرول فعالوي. د فزیکي توضیح کونکو په اړه د نورو معلوماتو لپاره، د HID مشخصاتو بیاکتنې 1.11 برخه 6.2.3 وګورئ. فزیکي توضیح کونکی اختیاري دی او ډیری وخت له پامه غورځول کیږي. دلته تیر شوی بفر NULL ته تنظیم کیدی شي او اوږدوالی 0 ته تنظیم کیدی شي. هغه وخت ویل کیږي کله چې کوربه ستاسو د راپور تشریح کونکي کې تشریح شوي راپور تنظیم کړي (کله چې دا راپور لیږي).
کله چې کوربه ستاسو د راپور تشریح کونکي کې تشریح شوي د فیچر راپور غوښتنه کوي نو زنګ وهل کیږي.
کله چې کوربه ستاسو د راپور تشریح کونکي کې تشریح شوي د فیچر راپور تنظیموي نو زنګ وهل کیږي.

باطل اپلیکیشن_یو ایس بي ډي_هید_فعال(uint8_t کلاس_این بی آر); باطل اپلیکیشن_یو ایس بي ډي_هید_غیر فعال(uint8_t کلاس_این بی آر); باطل اپلیکیشن_یو ایس بي ډي_هید_ګیټ_ریپورټ_ډیسک(uint8_t کلاس_این بی آر، کانسټ یو ایس بي ډي *پی_ریپورټ_پیټر، یو این ټي ۱۶_ټی پی_ریپورټ_لین)؛
باطل اپلیکیشن_یو ایس بي ډي_پټ_ګیټ_فای_ډیسک (uint8_t کلاس_این بی آر، ثابت uint8_t *p_ریپورټ_پیټر، uint16_tp_ریپورټ_لین)؛
باطل ایپ_یو ایس بي ډي_هید_سیټ_آؤټ پټ_رپورټ (یو این ټي ۸ ټي کلاس_این بي آر، یو این ټي ۸ ټي راپور_ایډ، یو این ټي ۸ ټي *پي_رپورټ_بف، یو این ټي ۱۶ ټي راپور_لین)؛ باطل ایپ_یو ایس بي ډي_هید_ګیټ_فیچر_ریپورټ (یو این ټي ۸ ټي کلاس_این بي آر، یو این ټي ۸ ټي راپور_ایډ، یو این ټي ۸ ټي *پي_رپورټ_بف، یو این ټي ۱۶ ټي راپور_لین)؛ باطل ایپ_یو ایس بي ډي_هید_سیټ_فیچر_ریپورټ (یو این ټي ۸ ټي کلاس_این بي آر، یو این ټي ۸ ټي راپور_ایډ، یو این ټي ۸ ټي *پي_رپورټ_بف، یو این ټي ۱۶ ټي راپور_لین)؛

.پروتوکول ترلاسه کړئ

اوسنی فعال پروتوکول ترلاسه کوي.

باطل اپلیکیشن_یو ایس بي ډي_هایډ_ګیټ_پروټوکول (uint8_t کلاس_این بی آر، uint8_t *پی_پروټوکول)؛

.سیټ_پروتوکول

اوسنی فعال پروتوکول تنظیموي.

باطل ایپ_یو ایس بي ډي_هایډ_سیټ_پروتوکول (uint8_t کلاس_این بی آر، uint8_t پروتوکول)؛

د HID ټولګي راپور تشریح کوونکی Example

د سیلیکون لابراتوارونو د HID ټولګيampغوښتنلیک یو پخوانی سند وړاندې کويampد یو ساده موږک لپاره د راپور تشریح کوونکی. پخوانیampلاندې د موږک راپور تشریح کوونکی ښیي.
Example – د موږک راپور تشریح کوونکی

جامد uint8_t app_usbd_hid_report_desc[] = {

(1) (2)

SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS,

د SL_USBD_HID_LOCAL_کارول + ۱، د SL_USBD_HID_CA_موږس،

(3)

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

SL_USBD_HID_MAIN_COLLECTION +1, SL_USBD_HID_COLLECTION_APPLICATION,(4)

د SL_USBD_HID_LOCAL_USAGE +1، SL_USBD_HID_CP_پوائنټر،(5)

SL_USBD_HID_MAIN_COLLECTION +1، SL_USBD_HID_COLLECTION_فزیکي،(6)

د SL_USBD_HID_GLOBAL_USAGE_PAGE +1، د SL_USBD_HID_USAGE_PAGE_BUTTON،(7)

د SL_USBD_HID_LOCAL_USAGE_MIN +1,0 01،

SL_USBD_HID_LOCAL_USAGE_MAX +1,0 03،

SL_USBD_HID_GLOBAL_LOG_MIN +۱.۰۰۰،

SL_USBD_HID_GLOBAL_LOG_MAX +۱.۰ ۰۱،

SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 03,

د SL_USBD_HID_GLOBAL_REPORT_SIZE +1,0 01،

د SL_USBD_HID_MAIN_INPUT +1، د SL_USBD_HID_MAIN_DATA |

SL_USBD_HID_MAIN_متغیر |

د USBD پټول،

SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 01,(8)

د SL_USBD_HID_GLOBAL_REPORT_SIZE +1,0 0D،

د SL_USBD_HID_MAIN_INPUT +1، د SL_USBD_HID_MAIN_CONSTANT،(9)

SL_USBD_HID_GLOBAL_USAGE_PAGE +1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS,

د SL_USBD_HID_LOCAL_کارول +1، SL_USBD_HID_DV_X،

د SL_USBD_HID_LOCAL_کارول +1، SL_USBD_HID_DV_Y،

SL_USBD_HID_GLOBAL_LOG_MIN +۱.۰۰۰،

SL_USBD_HID_GLOBAL_LOG_MAX +1,0 7F،

د SL_USBD_HID_GLOBAL_REPORT_SIZE +1,0 08،

SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 02,

د SL_USBD_HID_MAIN_INPUT +1، د SL_USBD_HID_MAIN_DATA |

SL_USBD_HID_MAIN_متغیر |

SL_USBD_HID_MAIN_RELATIVE،

SL_USBD_HID_MAIN_END ټولګه،(۱۰)

SL_USBD_HID_MAIN_END ټولګه

(۱۱)};

(۱) هغه جدول چې د موږک راپور تشریح کوونکی استازیتوب کوي په داسې ډول پیل شوی چې هره کرښه د یوې لنډې برخې سره مطابقت لري. وروستی د ۱ بایټ مختاړی او ۱ بایټ معلوماتو څخه جوړ شوی دی. مراجعه وکړئ viewد کوربه HID تجزیه کونکي لخوا په شکل کې تایید شوی - د کوربه HID تجزیه کونکي څخه د راپور توضیح کونکي مینځپانګه View.
(۲) د عمومي ډیسکټاپ کارولو پاڼه کارول کیږي.
(۳) د عمومي ډیسټاپ کارونې پاڼې دننه، کارول tag وړاندیز کوي چې د کنټرولونو ډله د موږک کنټرول لپاره ده. د موږک ټولګه معمولا دوه محورونه (X او Y) او یو، دوه، یا درې تڼۍ لري.
(۴) د موږکانو راټولول پیل شوي دي.
(۵) د موږکانو په ټولګه کې، یو کارول tag په ځانګړي ډول وړاندیز کوي چې د موږک کنټرولونه د نښې ټولګې پورې اړه لري. د نښې ټولګه د محورونو ټولګه ده چې یو ارزښت رامینځته کوي ترڅو د کارونکي ارادې یو غوښتنلیک ته لارښوونه وکړي، اشاره وکړي، یا اشاره وکړي.
(6) د اشارې ټولګه پیل شوې ده.
(۷) د تڼیو کارولو پاڼه د دریو ۱-بټ ساحو څخه جوړ شوی یو ان پټ توکي تعریفوي. هر ۱-بټ ساحه په ترتیب سره د موږک۹ تڼۍ ۱، ۲ او ۳ استازیتوب کوي او کولی شي د ۰ یا ۱ ارزښت بیرته راولي.
(۸) د تڼیو د کارونې پاڼې لپاره د ان پټ توکي د ۱۳ نورو بټونو سره پیډ شوی دی.
(۹) د ډیسکټاپ کارولو بله عمومي پاڼه د X او Y محورونو سره د موږک موقعیت تشریح کولو لپاره ښودل شوې ده. د ان پټ توکي د دوو 8-bit ساحو څخه جوړ شوی دی چې ارزښت یې د -127 او 127 ترمنځ کیدی شي.
(۱۰) د اشارې ټولګه تړل شوې ده.
(۱۱) د موږکانو ټولګه تړل شوې ده.
د USB.org پټ پاڼه

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
د USB تطبیق کونکو فورم (USB-IF) د راپور تشریح کونکي بڼې په اړه د نورو معلوماتو سره یوځای د "HID تشریح کونکي وسیله" په نوم یوه وسیله چمتو کوي. د نورو معلوماتو لپاره http://www.usb.org/developers/hidpage/ وګورئ.
د USB وسیلې HID ټولګي پروګرام کولو لارښود
دا برخه د HID ټولګي کارولو څرنګوالی تشریح کوي. د USB وسیلې HID ټولګي پیل کول ستاسو وسیلې ته د USB وسیلې HID ټولګي مثال اضافه کول د USB وسیلې HID ټولګي په کارولو سره اړیکه نیول
د USB وسیلې HID ټولګي پیل کول
ستاسو په وسیله کې د HID کلاس فعالیت اضافه کولو لپاره، تاسو باید لومړی د sl_usbd_hid_init() فنکشن په زنګ وهلو سره کلاس پیل کړئ. مثالampلاندې ښیې چې څنګه د ډیفالټ دلیلونو په کارولو سره sl_usbd_hid_init() ته زنګ ووهئ. د sl_usbd_hid_init() ته د لیږدولو لپاره د ترتیب دلیلونو په اړه د نورو معلوماتو لپاره، د USB وسیلې HID ټولګي غوښتنلیک ځانګړي تشکیلات وګورئ.
Example – د sl_usbd_hid_init() زنګ وهل
د sl_status_t حالت؛
حالت = sl_usbd_hid_init(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
ستاسو آلې ته د USB وسیلې HID ټولګي مثال اضافه کول
ستاسو په وسیله کې د HID ټولګي فعالیت اضافه کولو لپاره، تاسو باید یو مثال جوړ کړئ، بیا یې د خپل وسیله په ترتیبونو کې اضافه کړئ.
د HID ټولګي مثال جوړول
د sl_usbd_hid_create_instance() فنکشن په زنګ وهلو سره د HID ټولګي مثال جوړ کړئ. پخوانیampلاندې ښیې چې څنګه د ډیفالټ دلیلونو په کارولو سره د sl_usbd_hid_create_instance() له لارې د موږک ساده فعالیت رامینځته کړئ. د sl_usbd_hid_create_instance() ته د لیږدولو لپاره د ترتیب دلیلونو په اړه د نورو معلوماتو لپاره، د USB وسیلې HID ټولګي انسټانس تشکیلات وګورئ.
Example – د sl_usbd_hid_create_instance() له لارې د موږک فعالیت اضافه کول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
/* نړیوال ثابتونه. */ جامد ثابت uint8_t app_usbd_hid_mouse_report_desc[] = {
SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS, SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_CA_MOUSE, SL_USBD_HID_MAIN_COLLECTION + 1, SL_USBD_HID_COLLECTION_APPLICATION, SL_USBD_HID_LOCAL_USAGE + 1, SL_USBD_HID_CP_POINTER, SL_USBD_HID_MAIN_COLLECTION + 1, SL_USBD_HID_COLLECTION_PHYSICAL, SL_USBD_HID_GLOBAL_USAGE_PAGE + 1, SL_USBD_HID_USAGE_PAGE_BUTTON, SL_USBD_HID_LOCAL_USAGE_MIN + 1, 0 ۰۱، SL_USBD_HID_LOCAL_USAGE_MAX + ۱، ۰ ۰۳، SL_USBD_HID_GLOBAL_LOG_MIN + ۱، ۰ ۰۰، SL_USBD_HID_GLOBAL_LOG_MAX + ۱، ۰ ۰۱، SL_USBD_HID_GLOBAL_REPORT_COUNT + ۱، ۰ ۰۳، SL_USBD_HID_GLOBAL_REPORT_SIZE + ۱، ۰ ۰۱، SL_USBD_HID_MAIN_INPUT + ۱، SL_USBD_HID_MAIN_DATA | SL_USBD_HID_MAIN_VARIABLE | SL_USBD_HID_MAIN_ABSOLUTE، SL_USBD_HID_GLOBAL_REPORT_COUNT + 1، 0 01، SL_USBD_HID_GLOBAL_REPORT_SIZE + 1، 0 0D، SL_USBD_HID_MAIN_INPUT + 1، SL_USBD_HID_MAIN_CONSTANT، SL_USBD_HID_GLOBAL_USAGE_PAGE + 1، SL_USBD_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS، SL_USBD_HID_LOCAL_USAGE + 1، SL_USBD_HID_DV_X، SL_USBD_HID_LOCAL_USAGE + 1، SL_USBD_HID_DV_Y، SL_USBD_HID_GLOBAL_LOG_MIN + 1، 0 81، SL_USBD_HID_GLOBAL_LOG_MAX + 1, 0 7F, SL_USBD_HID_GLOBAL_REPORT_SIZE + 1, 0 08, SL_USBD_HID_GLOBAL_REPORT_COUNT + 1, 0 02, SL_USBD_HID_MAIN_INPUT + 1, SL_USBD_HID_MAIN_DATA | SL_USBD_HID_MAIN_VARIABLE | SL_USBD_HID_MAIN_RELATIVE, SL_USBD_HID_MAIN_ENDټولګه, SL_USBD_HID_MAIN_ENDټولګه };
/* سیمه ییز متغیرات.*/ uint8_t class_nbr; sl_status_t حالت;
sl_usbd_hid_callbacks_t app_usbd_hid_callbacks = { خالي، خالي، اپلیکیشن_usbd_hid_get_report_desc، خالي، خالي، خالي، خالي، خالي، خالي };
باطل اپلیکیشن_یو ایس بي ډي_پټ_ګیټ_ریپورټ_ډیسک (uint8_t کلاس_این بی آر، کانسټ uint8_t **p_report_ptr، uint16_t *p_report_len)
{ (باطل) ټولګي_نبر;
*p_report_ptr = د اپ_یوایس بي ډي_هډ_ماوس_رپورټ_ډیسک؛ *p_ریپورټ_لین = د (اپ_یوایس بي ډي_هډ_ماوس_رپورټ_ډیسک) اندازه؛ }
حالت = sl_usbd_hid_create_instance(SL_USBD_HID_SUBCLASS_BOOT, SL_USBD_HID_PROTOCOL_MOUSE, SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED, Ex_USBD_HID_Mouse_ReportDesc, sizeof(Ex_USBD_HID_Mouse_ReportDesc), 2u, 2u, true, &app_usbd_hid_callbacks, &class_nbr);
د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */}
د خپل وسیلې په ترتیب (س) کې د HID ټولګي مثال اضافه کول وروسته له دې چې تاسو د HID ټولګي مثال جوړ کړئ، تاسو کولی شئ دا د فنکشن په زنګ وهلو سره په ترتیب کې اضافه کړئ.
sl_usbd_پټ_اضافه_په_تنظیم کې().
د پخوانيampلاندې ښیې چې څنګه sl_usbd_hid_add_to_configuration() ته زنګ ووهئ.
Example – د sl_usbd_hid_add_to_configuration() ته زنګ وهل

د sl_status_t حالت؛

sl_usbd_پټ_اضافه_په_تنظیم کې(ټولګي_nbr،

(1)

شکل_nbr_fs)؛ (2)

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

(۱) د sl_usbd_hid_create_instance() لخوا بیرته راستانه شوي ترتیب ته د اضافه کولو لپاره د ټولګي شمیره. (۲) د ترتیب شمیره (دلته دا د بشپړ سرعت ترتیب ته اضافه کول دي).
د USB وسیلې HID ټولګي په کارولو سره اړیکه نیول
د ټولګي انسټینس اړیکه همغږي اړیکه د ټولګي انسټینس اړیکه د HID ټولګي د کوربه سره د اړیکو لپاره لاندې دندې وړاندې کوي.
جدول - د HID مخابراتو API لنډیز

د فعالیت نوم
sl_usb d _ پټ _ بیا _ _ _ _ _ _ _ لیکل _ _ _ _ _ _ _ _ _ _ _ nc ()

عملیات د کوربه څخه د مداخلې OUT پای نقطې له لارې معلومات ترلاسه کوي. دا فعالیت بلاک کوي. د مداخلې IN پای نقطې له لارې کوربه ته معلومات لیږي. دا فعالیت بلاک کوي.

هممهاله اړیکه هممهاله اړیکه پدې معنی ده چې لیږد بند دی. د فعالیت زنګ وهلو سره، غوښتنلیکونه تر هغه وخته پورې بندیږي چې لیږد د غلطۍ سره یا پرته بشپړ شي. د تل لپاره د انتظار څخه د مخنیوي لپاره یو وخت ټاکل کیدی شي. پخوانیampلاندې د لوستلو او لیکلو سیسټم ښیي چې د انټرپټ OUT پای نقطې په کارولو سره د کوربه څخه معلومات ترلاسه کوي او د انټرپټ IN پای نقطې په کارولو سره کوربه ته معلومات لیږي.
Example – همغږي HID لوستل او لیکل

__ سمون شوی (۴) uint8_t rx_buf[2];

__ سمون شوی (۴) uint8_t tx_buf[2];

uint32_t

د ایکسفر_لین;

د_حالت_ټ

حالت؛

حالت = sl_usbd_hid_read_sync(class_nbr,

(1)

(باطل *)rx_buf،

(2)

2u

0u

(3)

&xfer_len);

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
status =sl_usbd_hid_read_sync(class_nbr,(1)(void *)rx_buf,(2)2u,0u,(3)&xfer_len);if(status ! SL_STATUS_OK){/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */}
status =sl_usbd_hid_write_sync(class_nbr,(1)(void *)tx_buf,(4)2u,0u,(3)&xfer_len);if(status ! SL_STATUS_OK){/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */}
(۱) د sl_usbd_hid_create_instance() څخه جوړ شوی د ټولګي انسټنس شمیره د HID ټولګي لپاره داخلي حواله چمتو کوي ترڅو لیږد مناسب مداخله OUT یا IN پای نقطې ته واړوي.
(۲) اپلیکیشن باید ډاډ ترلاسه کړي چې فنکشن ته چمتو شوی بفر دومره لوی دی چې ټول معلومات ځای په ځای کړي. که نه نو، د همغږۍ ستونزې ممکن رامینځته شي. په داخلي توګه، د لوستلو عملیات یا د کنټرول پای نقطې سره یا د مداخلې پای نقطې سره ترسره کیږي، د کنټرول لوستلو بیرغ سیټ پورې اړه لري کله چې sl_usbd_hid_create_instance() زنګ وهئ.
(۳) د لامحدود بلاک کولو حالت څخه د مخنیوي لپاره، په ملی ثانیو کې څرګند شوی وخت پای مشخص کیدی شي. د ۸۰۹ ارزښت د غوښتنلیک دنده د تل لپاره انتظار باسي.
(۴) دا اپلیکیشن د لیږد پیل شوی بفر چمتو کوي.
د HID دوراني ان پټ راپورونو دنده
د بینډ ویت د خوندي کولو لپاره، کوربه د راپور ورکولو فریکونسي محدودولو سره د مداخلې IN پای نقطې څخه د راپورونو د خاموشولو وړتیا لري. د دې کولو لپاره، کوربه باید د SET_IDLE غوښتنه واستوي. د سیلیکون لابراتوار لخوا پلي شوی HID ټولګی یو داخلي دنده لري چې د راپور ورکولو فریکونسي محدودیت ته درناوی کوي چې تاسو کولی شئ په یو یا څو ان پټ راپورونو کې پلي کړئ. انځور د دوراني ان پټ راپورونو دنده د دوراني ان پټ راپورونو دندو فعالیت ښیې.
شکل - د دوراني داخلولو راپورونو دنده

(۱) وسیله د SET_IDLE غوښتنه ترلاسه کوي. دا غوښتنه د ورکړل شوي راپور ID لپاره د بې کاره مودې مشخص کوي. د SET_IDLE غوښتنې په اړه د نورو جزیاتو لپاره، وګورئ
(۲) د راپور ID جوړښت (د HID ټولګي د پیل کولو مرحلې په جریان کې ټاکل شوی) د بې کاره مودې سره تازه کیږي. د بې کاره مودې کاونټر د بې کاره مودې ارزښت سره پیل کیږي. د راپور ID جوړښت د لینک شوي لیست په پای کې داخل شوی چې د ان پټ راپورونو ID جوړښتونه لري. د بې کاره مودې ارزښت په 4-ms واحد کې څرګند شوی چې د 4 څخه تر 1020 ms پورې حد ورکوي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
که چیرې د بې کاره کیدو موده د مداخلې IN پای نقطې د رایې ورکولو وقفې څخه کمه وي، راپورونه د رایې ورکولو په وقفه کې رامینځته کیږي.
(۳) په هرو ۴ ملی ثانیو کې، د دوراني ان پټ راپور دنده د ان پټ راپورونو ID لیست لټوي. د هر ان پټ راپور ID لپاره، دنده د دوو ممکنه عملیاتو څخه یو ترسره کوي. د دندې دورې موده د بې کاره مودې لپاره کارول شوي 4-ms واحد سره سمون لري. که چیرې د کوربه لخوا د SET_IDLE غوښتنې نه وي لیږل شوي، د ان پټ راپورونو ID لیست خالي دی او دنده د پروسس کولو لپاره هیڅ نلري. دنده یوازې هغه راپور ID پروسس کوي چې له 0 څخه توپیر لري او د بې کاره مودې له 0 څخه ډیر وي.
(۴) د ورکړل شوي ان پټ راپور ID لپاره، دنده تاییدوي چې ایا د بې کاره موده تیره شوې ده. که چیرې د بې کاره موده تیره شوې نه وي، نو کاونټر کم شوی او کوربه ته د ان پټ راپور نه لیږل کیږي.
(۵) که چیرې د کار نه کولو موده تیره شوې وي (یعنې، د کار نه کولو موده کاونټر صفر ته رسیدلی وي)، د ان پټ راپور کوربه ته د sl_usbd_hid_write_sync() فنکشن د انټرپټ IN پای نقطې له لارې زنګ وهلو سره لیږل کیږي.
(6) د دندې لخوا لیږل شوي د داخلي معلوماتو بفر څخه راځي چې د راپور تشریح کونکي کې تشریح شوي د هر ان پټ راپور لپاره ځانګړي شوي. د غوښتنلیک دنده کولی شي د ان پټ راپور لیږلو لپاره sl_usbd_hid_write_sync() فعالیت ته زنګ ووهي. د ان پټ راپور ډیټا لیږلو وروسته، sl_usbd_hid_write_sync() داخلي بفر د هغه معلوماتو سره تازه کوي چې د ان پټ راپور ID سره تړاو لري. بیا، د دوراني ان پټ راپور دنده تل د هر غیر فعال وخت تیریدو وروسته او تر هغه چې د غوښتنلیک دنده په داخلي بفر کې معلومات تازه کړي ورته ان پټ راپور ډیټا لیږي. د تالاشۍ ځینې میکانیزم شتون لري ترڅو د دوراني ان پټ راپور ID ډیټا د فساد څخه مخنیوی وشي که چیرې د دوراني ان پټ راپور دندې لخوا د لیږد په دقیق وخت کې بدلون راشي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview
د USB وسیله MSC ټولګي
د USB وسیله MSC ټولګي پایview د USB وسیله د MSC ټولګي سرچینې اړتیاوې د کور USB وسیله څخه د MSC ټولګي ترتیب د USB وسیله د MSC ټولګي پروګرام کولو لارښود د USB وسیله د MSC ټولګي ذخیره کولو ډرایوران
دا برخه د ډله ایز ذخیره کولو وسیلې ټولګي (MSC) تشریح کوي چې د سیلیکون لیبز USB وسیلې لخوا ملاتړ کیږي. MSC یو پروتوکول دی چې د USB وسیلې او کوربه ترمنځ د معلوماتو لیږد فعالوي. هغه معلومات چې لیږدول کیږي هغه څه دي چې په بریښنایی ډول زیرمه کیدی شي، لکه د اجرا وړ پروګرامونه، سرچینه کوډ، اسناد، انځورونه، ترتیب ډاټا، یا نور متن یا عددي ډاټا. USB وسیله کوربه ته د بهرني ذخیره کولو وسیلې په توګه ښکاري، چې د لیږد وړتیا ورکوي fileد ډریګ او ډراپ له لارې.
A file سیسټم تعریفوي چې څنګه files د ذخیره کولو رسنیو کې تنظیم شوي دي. د USB ډله ایز ذخیره کولو ټولګي مشخصات کوم ځانګړي ته اړتیا نلري file سیسټم چې په مطابقت لرونکو وسیلو کې کارول کیږي. پرځای یې، دا د کوچني کمپیوټر سیسټم انٹرفیس (SCSI) شفاف قوماندې سیټ په کارولو سره د معلوماتو سکتورونو لوستلو او لیکلو لپاره یو ساده انٹرفیس چمتو کوي. په دې توګه، عملیاتي سیسټمونه ممکن د USB ډرایو سره د هارډ ډرایو په څیر چلند وکړي، او کولی شي دا د هر ډول سره فارمیټ کړي file هغه سیسټم چې دوی یې خوښوي.
د USB ډله ایز ذخیره کولو وسیلې ټولګی د دوه ټرانسپورټ پروتوکولونو ملاتړ کوي، په لاندې ډول:
یوازې د ګڼې ګوڼې لېږد (BOT) کنټرول/ګڼ شمېر/مداخله (CBI) لېږد (یوازې د فلاپي ډیسک ډرایو لپاره کارول کیږي)
د ډله ایز ذخیره کولو وسیلې ټولګی یوازې د BOT پروتوکول په کارولو سره د SCSI شفاف قوماندې سیټ پلي کوي، کوم چې دا په ګوته کوي چې یوازې د بلک پای ټکي به د معلوماتو او حالت معلوماتو لیږدولو لپاره وکارول شي. د MSC پلي کول د ډیری منطقي واحدونو ملاتړ کوي.
د MSC پلي کول د لاندې مشخصاتو سره سم دي:
د یونیورسل سیریل بس د ډله ایزو ذخیرو ټولګي مشخصات پای ته ورسیدلview، بیاکتنه ۱.۳ سپتمبر ۵، ۲۰۰۸. د یونیورسل سیریل بس ډله ایز ذخیره کولو ټولګي بلک-یوازې ترانسپورت، بیاکتنه ۱.۰ سپتمبر ۳۱، ۱۹۹۹.
د USB وسیله MSC aCl ss اوورview
د پروتوکول پای ټکي ټولګي غوښتنې د کوچني کمپیوټر سیسټم انٹرفیس (SCSI)
پروتوکول
پدې برخه کې، موږ به د ډله ایز ذخیره کولو ټولګي د بلک-یوازې ټرانسپورټ (BOT) پروتوکول په اړه بحث وکړو. د بلک-یوازې ټرانسپورټ پروتوکول درې s لريtages:
د قوماندې ترانسپورت د معلوماتو ترانسپورت د حالت ترانسپورت
د ډله ایزو ذخیره کولو قوماندې د کوربه لخوا د کمانډ بلاک ریپر (CBW) په نوم د جوړښت له لارې لیږل کیږي. د هغو قوماندې لپاره چې د معلوماتو لیږد ته اړتیا لريtage، کوربه به هڅه وکړي چې د وسیلې څخه د بایټونو دقیق شمیر واستوي یا ترلاسه کړي لکه څنګه چې د CBW اوږدوالی او بیرغ ساحو لخوا مشخص شوي. د معلوماتو لیږد وروستهtage، کوربه هڅه کوي چې د وسیلې څخه د قوماندې حالت ریپر (CSW) ترلاسه کړي چې د قوماندې حالت او همدارنګه د معلوماتو پاتې شوني توضیح کوي (که چیرې

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
د هغو امرونو لپاره چې د معلوماتو لیږد پکې شامل نه ويtage، کوربه هڅه کوي چې د CBW لیږلو وروسته مستقیم CSW ترلاسه کړي. پروتوکول په شکل کې تفصیل سره ښودل شوی - MSC پروتوکول.
شکل – د MSC پروتوکول

پای ټکي
د وسیلې په اړخ کې، د BOT مشخصاتو سره سم، MSC د لاندې پای ټکو څخه جوړ شوی دی: د کنټرول IN او OUT پای ټکو یوه جوړه چې د ډیفالټ پای ټکی بلل کیږي. د بلک IN او OUT پای ټکو یوه جوړه.
لاندې جدول د پای ټکو مختلف استعمالونه په ګوته کوي.
جدول - د MSC پای ټکی کارول

پای ټکی
کنټرول دننه کنټرول بهر په ډله ایز ډول دننه بهر

هدایت
وسیله کوربه ته وسیله کوربه ته وسیله کوربه ته وسیله کوربه ته وسیله

کارول
د شمېرنې او MSC ټولګي پورې اړوند غوښتنې د شمېرنې او MSC ټولګي پورې اړوند غوښتنې CSW او معلومات واستوئ CBW او معلومات ترلاسه کړئ

د ټولګي غوښتنې
د MSC BOT پروتوکول لپاره دوه تعریف شوي کنټرول غوښتنې شتون لري. دا غوښتنې او د هغوی توضیحات په لاندې جدول کې په تفصیل سره بیان شوي دي.

جدول - د ډله ایزو ذخیره کولو ټولګي غوښتنې

د ټولګي غوښتنې
یوازې د ډله ایزو ذخیره کولو بیا تنظیم کول

تفصیل
دا غوښتنه د ډله ایز ذخیره کولو وسیله او د هغې سره تړلي انٹرفیس بیا تنظیمولو لپاره کارول کیږي. دا غوښتنه وسیله چمتو کوي چې راتلونکی کمانډ بلاک ترلاسه کړي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د ټولګي غوښتنې

تفصیل

اعظمي ترلاسه کړئ دا غوښتنه د وسیلې لخوا ملاتړ شوي لوړ منطقي واحد شمیره (LUN) بیرته راستنولو لپاره کارول کیږي. د مثال په توګهample ، a

LUN

د LUN 0 او LUN 1 سره وسیله به د 1 ارزښت بیرته راولي. هغه وسیله چې یو واحد منطقي واحد لري به 0 بیرته راولي یا ودروي

غوښتنه. اعظمي ارزښت چې بیرته راستنیدلی شي ۱۵ دی.

د کوچني کمپیوټر سیسټم انٹرفیس SCSI

د پروګرام کولو انٹرفیس په کچه، د MSC وسیله د معیاري ذخیره کولو-میډیا اړیکو پروتوکولونو څخه یو پلي کوي، لکه SCSI او SFF-8020i (ATAPI). "د پروګرام کولو انٹرفیس" مشخص کوي چې کوم پروتوکول پلي کیږي، او د کوربه عملیاتي سیسټم سره مرسته کوي چې د USB ذخیره کولو وسیلې سره د اړیکو لپاره مناسب وسیله ډرایور بار کړي. SCSI د USB MSC ذخیره کولو وسیلو سره کارول شوی ترټولو عام پروتوکول دی. موږ د MSC SCSI فرعي ټولګي لپاره پلي کول چمتو کوو چې زموږ د GSDK کاروونکي کولی شي له بکس څخه بهر وکاروي.
SCSI د کمپیوټرونو او پردیو وسیلو ترمنځ د اړیکو د اداره کولو لپاره د معیارونو یوه ټولګه ده. پدې معیارونو کې امرونه، پروتوکولونه، بریښنایی انٹرفیسونه او نظری انٹرفیسونه شامل دي. د ذخیره کولو وسایل چې د نورو هارډویر انٹرفیسونو څخه کار اخلي، لکه USB، د وسیلې/کوربه معلوماتو ترلاسه کولو او د وسیلې د عملیاتو کنټرول او د ذخیره کولو رسنیو کې د معلوماتو بلاکونو لیږدولو لپاره د SCSI امرونه کاروي.
د SCSI قوماندې د وسیلو ډولونو او دندو پراخه لړۍ پوښي او له همدې امله، وسایل د دې قوماندې یوې فرعي برخې ته اړتیا لري. په عمومي توګه، لاندې قوماندې د اساسي اړیکو لپاره اړین دي:
د پوښتنې لوستلو وړتیا (۱۰) لوستل (۱۰) د احساس ازموینې واحد چمتو لیکنه غوښتنه (۱۰)
د کور څخه د USB وسیلې MSC ټولګي سرچینې اړتیاوې

هرکله چې تاسو د sl_usbd_msc_add_to_configuration() فنکشن له لارې په USB ترتیب کې د MSC ټولګي مثال اضافه کوئ، لاندې سرچینې به د کور څخه تخصیص شي.

سرچینه
انٹرفیسونه بدیل انٹرفیسونه د پای ټکي د انٹرفیس ګروپونه

مقدار
1 1 2 0

په یاد ولرئ چې دا شمیرې د هر ترتیب لپاره دي. کله چې خپل SL_USBD_INTERFACE_QUANTITY، SL_USBD_ALT_INTERFACE_QUANTITY، SL_USBD_INTERFACE_GROUP_QUANTITY او SL_USBD_DESCRIPTOR_QUANTITY ترتیب ارزښتونه تنظیم کړئ، مه هیروئ چې په پام کې ونیسئ چې څومره ترتیبونه به ټولګي اضافه شي. د SL_USBD_OPEN_ENDPOINTS_QUANTITY ترتیب ارزښت لپاره، ځکه چې پای ټکي یوازې هغه وخت خلاصیږي کله چې یو ترتیب د کوربه لخوا تنظیم شي، تاسو یوازې اړتیا لرئ د ټولګي مثال لپاره د اړتیا وړ پای ټکي شمیر په پام کې ونیسئ.
د USB وسیلې MSC ټولګي ترتیب

د MSC ټولګي تنظیمولو لپاره د ترتیب پیرامیټرو دوه ګروپونه کارول کیږي:
د USB وسیله د MSC ټولګي غوښتنلیک ځانګړي تشکیلات د USB وسیله د MSC ټولګي منطقي واحد ترتیب
د USB وسیلې MSC ټولګي غوښتنلیک ځانګړي تشکیلات

د ټولګي تالیف-وخت ترتیبات د ټولګي مثال جوړول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د ټولګي د تالیف وخت تشکیلات
د سیلیکون لابراتوار USB وسیله MSC ټولګي او SCSI فرعي ټولګي د sl_usbd_core_config.h کې موقعیت لرونکي #defines له لارې د تالیف په وخت کې تنظیم کیدی شي. file.
جدول - عمومي ترتیب ثابتونه

د ترتیب نوم

تفصیل

SL_USBD_MSC_CLASS_INST د هغو ټولګیو مثالونو شمیر چې تاسو به یې فعالیت ته د زنګ وهلو له لارې تخصیص کړئ

د ANCE_QUANTITY اندازه

د sl_usbd_msc_scsi_create_instance().

SL_USBD_MSC_CONFIGURA د هغه ترتیب شمیره چې د ټولګي مثال پکې د زنګ وهلو له لارې اضافه کیدی شي

د TION_QUANTITY

فعالیت sl_usbd_msc_scsi_add_to_configuration() .

SL_USBD_MSC_LUN_QUANT د هر ټولګي نمونې منطقي واحدونو شمیر چې تاسو به یې د زنګ وهلو له لارې اضافه کړئ

ITY د

فعالیت sl_usbd_msc_scsi_lun_add() .

SL_USBD_MSC_SCSI_64_BIT د 64 بټونو د منطقي بلاک پتې (LBA) لپاره ملاتړ فعال یا غیر فعالوي.
_LBA_EN

SL_USBD_MSC_DATA_BUFF د هر ټولګي نمونې د معلوماتو بفر اندازه په بایټونو ER_SIZE کې

ډیفالټ ارزښت
2
1
2
0
512

د ټولګي مثال جوړول
د USB وسیلې MSC SCSI ټولګي انسټانس جوړول د sl_usbd_msc_scsi_create_instance() فنکشن په زنګ وهلو سره ترسره کیږي. دا فنکشن یو ترتیب دلیل اخلي چې لاندې تشریح شوی.
p_scsi_کال بیکونه
p_scsi_callbacks د sl_usbd_msc_scsi_callbacks_t ډوله ترتیب جوړښت ته اشاره کوونکی دی. د عام USB وسیلې ټولګي کال بیکونو نښلول/منقطع کولو سربیره، دا د MSC ټولګي ته د اختیاري کال بیک دندو سیټ چمتو کوي چې هغه وخت ویل کیږي کله چې په منطقي واحد کې پیښه پیښیږي. یو خالي پوائنټر (NULL) دې دلیل ته لیږدول کیدی شي که چیرې هیڅ کال بیک ته اړتیا ونلري.
لاندې جدول د دې ترتیب جوړښت کې د هر ترتیب ساحه تشریح کوي.
جدول – sl_usbd_msc_scsi_callbacks_t د ترتیب جوړښت

ساحې

تفصیل

فعال کړئ

کله چې د USB کلاس مثال په بریالیتوب سره فعال شي نو زنګ وهل کیږي.

.disable کله چې د USB کلاس انسټانس غیر فعال وي نو زنګ وهل کیږي.

د .host_eject فعالیت هغه وخت ویل کیږي کله چې یو منطقي واحد له کوربه څخه ایستل کیږي.

د فعالیت لاسلیک
باطل اپلیکیشن_usbd_msc_scsi_enable(uint8_t class_nbr);
باطل اپلیکیشن_usbd_msc_scsi_disable(uint8_t class_nbr); باطل اپلیکیشن_usbd_msc_scsi_host_eject(uint8_t class_nbr, uint8_t lu_nbr);

د USB وسیلې MSC ټولګي منطقي واحد ترتیب

د MSC ټولګي مثال ته د منطقي واحد اضافه کول د sl_usbd_msc_lun_add() فنکشن په زنګ وهلو سره ترسره کیږي. دا فنکشن یو ترتیب دلیل اخلي چې لاندې تشریح شوی.

د_لو_معلومات

p_lu_info د sl_usbd_msc_scsi_lun_info_t ډول جوړښت ته اشاره کوونکی دی. د دې هدف د MSC ټولګي ته د منطقي واحد په اړه معلومات چمتو کول دي.
لاندې جدول د دې ترتیب جوړښت کې د هر ترتیب ساحه تشریح کوي.

جدول – sl_usbd_msc_scsi_lun_info_t د ترتیب جوړښت

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

ډګر

تفصیل

ډګر
.scsi_lun_api_p ټر

تفصیل
د میډیا ډرایور API ته اشاره کوونکی چې دا منطقي واحد به اداره کړي. د ذخیره کولو ډرایورونو په اړه د نورو معلوماتو لپاره د USB وسیلې MSC ټولګي ذخیره کولو ډرایورونه وګورئ.

. وګوره یا r_id _ p tr
د محصول_پېژند_پیټر
.p ro d uct_ re v isi on_level .is_ re ad _o nly

هغه تار ته اشاره کوونکی چې د منطقي واحد د پلورونکي پیژندنه لري. د تار اعظمي اوږدوالی 8 حروف دی. هغه تار ته اشاره کوونکی چې د منطقي واحد د محصول پیژندنه لري. د تار اعظمي اوږدوالی 16 حروف دی. د محصول د بیاکتنې کچه.
هغه بيرغ چې ښيي چې منطقي واحد بايد د لوستلو لپاره يوازې د نقطې څخه وليدل شي view د کوربه (ریښتیا) یا نه (غلط).

د USB وسیله د MSC ټولګي پروګرام کولو لارښود

دا برخه د MSC ټولګي کارولو څرنګوالی تشریح کوي.
د USB آلې د MSC ټولګي پیل کول ستاسو آلې ته د USB آلې د MSC SCSI ټولګي مثال اضافه کول د USB آلې د MSC ټولګي منطقي واحد اداره کول
د USB وسیلې MSC ټولګي پیل کول

ستاسو په وسیله کې د MSC SCSI ټولګي فعالیت اضافه کولو لپاره، لومړی د MSC اساس ټولګي او د SCSI فرعي ټولګي د sl_usbd_msc_init() او sl_usbd_msc_scsi_init() فنکشن په زنګ وهلو سره پیل کړئ.
د پخوانيampلاندې ښیې چې څنګه sl_usbd_msc_init() او sl_usbd_msc_scsi_init() ته زنګ ووهئ.

Example – د sl_usbd_msc_init() او sl_usbd_msc_scsi_init() زنګ وهل

د sl_status_t حالت؛
حالت = sl_usbd_msc_init(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
حالت = sl_usbd_msc_scsi_init(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}
ستاسو آلې ته د USB آلې MSC SCSI کلاس انسټانس اضافه کول
د MSC SCSI ټولګي فعالیت ستاسو په وسیله کې اضافه کولو لپاره، لومړی یو انسټانس جوړ کړئ، بیا یې د خپل وسیله په ترتیب (ساختمانونو) کې اضافه کړئ. تاسو باید لږترلږه یو منطقي واحد خپل انسټانس ته اضافه کړئ.
د MSC SCSI ټولګي مثال جوړول
د sl_usbd_msc_scsi_create_instance() فنکشن په زنګ وهلو سره د MSC SCSI ټولګي مثال جوړ کړئ.
د پخوانيampلاندې ښیې چې څنګه د ډیفالټ دلیلونو په کارولو سره sl_usbd_msc_scsi_create_instance() ته زنګ ووهئ. د sl_usbd_msc_scsi_create_instance() ته د لیږدولو لپاره د ترتیب دلیلونو په اړه د نورو معلوماتو لپاره، د USB وسیلې MSC ټولګي غوښتنلیک ځانګړي تشکیلات وګورئ.
Example – د sl_usbd_ msc_scsi_create_instance() زنګ وهل

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د uint8_t ټولګي_nbr؛ د sl_status_t حالت؛
sl_usbd_msc_scsi_callbacks_t app_usbd_msc_scsi_callbacks = { . فعالول = خالي، . غیر فعالول = خالي، . کوربه_ایجیکٹ = خالي };
حالت = sl_usbd_msc_scsi_create_instance(&app_usbd_msc_scsi_callbacks,0 &class_nbr);
که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }
ستاسو د وسیلې په ترتیبونو کې د MSC ټولګي مثال اضافه کول
وروسته له دې چې تاسو د MSC ټولګي انسټانس جوړ کړئ، تاسو کولی شئ دا د فنکشن په زنګ وهلو سره په ترتیب کې اضافه کړئ
sl_usbd_msc_د_تنظیم_ته_اضافه_کړئ() .
د پخوانيampلاندې ښیې چې څنګه د ډیفالټ دلیلونو په کارولو سره sl_usbd_msc_scsi_add_to_configuration() ته زنګ ووهئ.
Example – د sl_usbd_ msc_scsi_add_to_configuration() ته زنګ وهل

د sl_status_t حالت؛

حالت = sl_usbd_msc_scsi_add_to_configuration(class_nbr,

(1)

شکل_nbr_fs)؛

(2)

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

(۱) د sl_usbd_msc_scsi_create_instance() لخوا بیرته راستانه شوي ترتیب ته د اضافه کولو لپاره د ټولګي شمیره. (۳۲) د ترتیب شمیره (دلته دا د بشپړ سرعت ترتیب ته اضافه کول دي).
د USB وسیلې MSC ټولګي منطقي واحد اداره کول
د منطقي واحد اضافه کول د ذخیره کولو وسیله نښلول/جلا کول
د منطقي واحد اضافه کول
کله چې ستاسو د MSC SCSI ټولګي نمونې ته منطقي واحد اضافه کوئ، نو دا باید د ذخیره کولو میډیم (RAMDisk، SD کارت، فلش حافظه، او نور) سره تړلی وي. د MSC ټولګی د ذخیره کولو میډیا سره د اړیکو لپاره د ذخیره کولو ډرایور کاروي. دا ډرایور به د منطقي واحد اضافه کولو پر مهال د اکمالاتو ته اړتیا ولري.
د پخوانيampلاندې ښیې چې څنګه د sl_usbd_msc_scsi_lun_add() له لارې منطقي واحد اضافه کړئ.
Example – د sl_usbd_msc_scsi_lun_add() له لارې د منطقي واحد اضافه کول

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

sl_usbd_msc_scsi_lun_t *lu_object_ptr = خالي;

د sl_usbd_msc_scsi_lun_معلومات_t lu_معلومات;

د_حالت_ټ

حالت؛

lu_info.sl_usbd_msc_scsi_lun_api_t = د &ایپ_usbd_scsi_د_ذخیرې_بلاک_وسیله_api;

د_معلوماتو_پلورونکي_پېژند_پیټر

= "سیلیکون لابراتوارونه"؛

د محصول ID_ptr

= "د پخواني وسیلې بلاک کول"ampلي"؛

lu_info.product_revision_level = 0x1000u;

lu_info.is_only_لوستل_شوي

= غلط؛

حالت = sl_usbd_msc_scsi_lun_add(کلاس_nbr، &lu_معلومات، &lu_object_ptr)؛
که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }

د ذخیره کولو وسیله ضمیمه / جلا کول
وروسته له دې چې منطقي واحد اضافه شي، د ذخیره کولو وسیله باید د کوربه اړخ څخه د شتون لپاره وصل شي. د MSC ټولګی د منطقي واحد سره د ذخیره کولو رسنیو د اړیکې کنټرول لپاره دوه دندې وړاندې کوي: sl_usbd_msc_scsi_lun_attach() او sl_usbd_msc_scsi_lun_detach(). دا دندې تاسو ته اجازه درکوي چې د ذخیره کولو وسیلې لرې کول تقلید کړئ ترڅو د اړتیا په صورت کې د ایمبیډ شوي غوښتنلیک څخه لاسرسی بیرته ترلاسه کړئ.
د پخوانيampلاندې ښیې چې څنګه د sl_usbd_msc_scsi_lun_attach() او sl_usbd_msc_scsi_lun_detach() فنکشن وکاروئ.
Example – د رسنیو ضمیمه / جلا کول

د sl_status_t حالت؛

حالت = sl_usbd_msc_scsi_lun_attach(lu_object_ptr); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}

(1)

حالت = sl_usbd_msc_scsi_lun_detach(lu_object_ptr); که (حالت ! SL_STATUS_OK) {
/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}

(2)

حالت = sl_usbd_msc_scsi_lun_attach(lu_object_ptr) که (حالت ! SL_STATUS_OK) {
/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */
}

(3)

(۱) له دې شیبې څخه، که چیرې د MSC وسیله د کوربه سره وصل وي، د ذخیره کولو رسنۍ د لاسرسي وړ ده.
(۲) که چیرې د MSC وسیله د کوربه سره وصل وي، نو رسنۍ به اوس د لاسرسي وړ نه ښکاري. په دې وخت کې، عملیات د ایمبیډ شوي غوښتنلیک څخه په رسنیو کې ترسره کیدی شي.
(۳) بیا، که چیرې د MSC وسیله د کوربه سره وصل وي، د ذخیره کولو رسنۍ به د وصل شوي په توګه ښکاره شي.
د USB وسیلې MSC ټولګي ذخیره کولو ډرایورونه
د USB وسیلې MSC کلاس د ذخیره کولو میډیم سره د اړیکې لپاره د ذخیره کولو ډرایور ته اړتیا لري. د اوس لپاره، سیلیکون لیبز ډرایورونه نه وړاندې کوي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
TPY aa he driver AI د typedef sl_usbd_msc_scsi_lun_api_t لخوا تعریف شوی. زموږ sl_usbd_msc_scsi_lun_api_t v rible باید ستاسو sl_usbd_msc_scsi_lun_info_t v rible، pssed srgument aaaaaaaa کې شامل شي کله چې تاسو د sl_usbd_msc_scsi_lun_add() سره د منطق l واحد dd کوئ. د جوړښتونو په اړه د نورو جزیاتو لپاره د USB وسیلې MSC SCSI API برخه وګورئ. د ذخیره کولو ډرایور پلي کول په RAM کې د سکتورونو د لړۍ په څیر ساده کیدی شي. د عام سکتور اندازه (یعنې، د بلاک اندازه) د ډله ایز ذخیره کولو وسیلو لپاره 512 ده، او د CD-ROMs لپاره 2048 ده.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
اوورview
د USB وسیلې پلورونکي ټولګی
د USB وسیلې پلورونکي ټولګي پای ته ورسیدلview د USB وسیلې پلورونکي ټولګي سرچینې اړتیاوې د اصلي USB وسیلې پلورونکي ټولګي ترتیب د USB وسیلې پلورونکي ټولګي پروګرام کولو لارښود د پلورونکي ټولګي تاسو ته اجازه درکوي چې د پلورونکي ځانګړي وسایل جوړ کړئ چې کولی شي د ملکیت پروتوکول پلي کړي. دا د کوربه او وسیلې ترمنځ د معلوماتو لیږدولو لپاره د بلک پای نقطو په جوړه تکیه کوي. بلک لیږدونه د غیر منظم معلوماتو لوی مقدار لیږدولو لپاره اسانه دي او د غلطۍ کشف او بیا هڅه کولو میکانیزم په کارولو سره د معلوماتو باوري تبادله چمتو کوي. د بلک پای نقطو سربیره، د پلورونکي ټولګي کولی شي د مداخلې پای نقطو اختیاري جوړه هم وکاروي. هر عملیاتي سیسټم (OS) کولی شي د پلورونکي ټولګي سره کار وکړي په دې شرط چې OS د پلورونکي ټولګي اداره کولو لپاره ډرایور ولري. د OS پورې اړه لري، ډرایور کولی شي اصلي یا د پلورونکي ځانګړي وي. د مثال په توګه، د مایکروسافټ وینډوز® لاندې، ستاسو غوښتنلیک د مایکروسافټ لخوا چمتو شوي WinUSB ډرایور سره اړیکه لري ترڅو د پلورونکي وسیلې سره اړیکه ونیسي.
د USB وسیلې پلورونکي ټولګي پای ته ورسیدلview
شکل - د وینډوز کوربه او پلورونکي ټولګي ترمنځ عمومي جوړښت د کوربه او وسیلې ترمنځ عمومي جوړښت ښیې چې د پلورونکي ټولګي کاروي. پدې مثال کېampبل، کوربه عملیاتي سیسټم MS Windows دی.
شکل - د MS وینډوز کوربه او پلورونکي ټولګي ترمنځ عمومي جوړښت

د MS وینډوز په اړخ کې، غوښتنلیک د USB کتابتون سره د تعامل له لارې د پلورونکي وسیلې سره اړیکه نیسي. کتابتونونه، لکه libusb، د وسیلې او د هغې اړوند پایپونو اداره کولو لپاره API وړاندې کوي، او د کنټرول، بلک او انټرپټ پای نقطو له لارې د وسیلې سره اړیکه نیسي.
د وسیلې په اړخ کې، د پلورونکي ټولګی د لاندې پای ټکو څخه جوړ شوی دی:
د کنټرول IN او OUT پای نقطو یوه جوړه چې د ډیفالټ پای نقطه بلل کیږي. د بلک IN او OUT پای نقطو یوه جوړه.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

د مداخلې IN او OUT پای نقطو یوه جوړه. دا جوړه اختیاري ده. لاندې جدول د مختلفو پای نقطو کارول په ګوته کوي:
جدول - د پلورونکي ټولګي د پای ټکي کارول

د پای ټکی لارښوونه

کنټرول IN
کنټرول
بهر
په لویه کچه

د کوربه توب وسیله
> کوربه-todevice
د کوربه توب وسیله

ګڼ شمېر
مداخله IN
مداخله
بهر

کوربه-تو-وسیله
د کوربه توب وسیله
کوربه-تو-وسیله

کارول
د شمېرنې او پلورونکي ځانګړي غوښتنو لپاره معیاري غوښتنې.
د شمېرنې او پلورونکي ځانګړي غوښتنو لپاره معیاري غوښتنې.
د معلوماتو خام اړیکه. معلومات د ملکیت پروتوکول سره سم تنظیم کیدی شي.
د معلوماتو خام اړیکه. معلومات د ملکیت پروتوکول سره سم تنظیم کیدی شي.
خام معلوماتي اړیکه یا خبرتیا. معلومات د ملکیت پروتوکول سره سم تنظیم کیدی شي. خام معلوماتي اړیکه یا خبرتیا. معلومات د ملکیت پروتوکول سره سم تنظیم کیدی شي.

د وسیلې اپلیکیشن کولی شي د کوربه څخه د معلوماتو لیږلو یا ترلاسه کولو لپاره د بلک او انټرپټ پای ټکي وکاروي. دا یوازې د کوربه لخوا لیږل شوي د پلورونکي ځانګړي غوښتنو ډیکوډ کولو لپاره د ډیفالټ پای ټکی کارولی شي. معیاري غوښتنې د سیلیکون لیبز USB وسیلې د اصلي طبقې لخوا په داخلي توګه اداره کیږي.
د کور څخه د USB وسیلې پلورونکي ټولګي سرچینې اړتیاوې

هرکله چې تاسو د sl_usbd_vendor_add_to_configuration() فنکشن له لارې په ترتیب کې د پلورونکي ټولګي مثال اضافه کوئ، لاندې سرچینې به د کور څخه تخصیص شي.

سرچینه
انٹرفیسونه بدیل انٹرفیسونه د پای ټکي د انٹرفیس ګروپونه

مقدار
۱ ۱ ۲ (۴ که تاسو د مداخلې پای ټکي فعال کړي وي) ۰

په یاد ولرئ چې دا شمیرې د هر ترتیب لپاره دي. کله چې خپل SL_USBD_INTERFACE_QUANTITY، SL_USBD_ALT_INTERFACE_QUANTITY، SL_USBD_INTERFACE_GROUP_QUANTITY او SL_USBD_DESCRIPTOR_QUANTITY ترتیب ارزښتونه تنظیم کړئ، مه هیروئ چې په پام کې ونیسئ چې څومره ترتیبونه به ټولګي اضافه شي. د SL_USBD_OPEN_ENDPOINTS_QUANTITY ترتیب ارزښت لپاره، ځکه چې پای ټکي یوازې هغه وخت خلاصیږي کله چې یو ترتیب د کوربه لخوا تنظیم شي، تاسو یوازې اړتیا لرئ د ټولګي مثال لپاره د اړتیا وړ پای ټکي شمیر په پام کې ونیسئ.
د USB وسیلې پلورونکي ټولګي ترتیب

د تنظیم کولو پیرامیټرو دوه ګروپونه د پلورونکي ټولګي تنظیم کولو لپاره کارول کیږي:
د USB وسیلې پلورونکي ټولګي غوښتنلیک ځانګړي تشکیلات د USB وسیلې پلورونکي ټولګي مثال تشکیلات
د USB وسیلې پلورونکي ټولګي غوښتنلیک ځانګړي تشکیلات
لومړی، د سیلیکون لیبز USB وسیلې د پلورونکي ټولګي ماډل کارولو لپاره، د پلورونکي تالیف وخت ترتیب ستاسو د غوښتنلیک اړتیاو سره سم تنظیم کړئ. دوی د sl_usbd_core_config.h سرلیک دننه بیا ګروپ شوي دي. file د پلورونکي برخې لاندې. د مقدار تنظیماتو هدف د USB وسیلې ماډل ته خبر ورکول دي چې څومره USB پلورونکي توکي تخصیص کړي.
لاندې جدول د هر ترتیب تعریف تشریح کوي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

جدول - د USB وسیلې پلورونکي ترتیب تعریفوي

د ترتیب نوم

تفصیل

ډیفالټ ارزښت

SL_USBD_VENDOR_CLASS_INSTANCE_QUANTITY د هغو ټولګي مثالونو شمیر چې تاسو به یې د 2 فعالیت sl_usbd_vendor_create_instance() ته د زنګ وهلو له لارې تخصیص کړئ.

SL_USBD_VENDOR_CONFIGURATION_QUANTITY د تشکیلاتو شمیر. د پلورونکي ټولګي مثالونه د sl_usbd_vendor_add_to_configuration() فعالیت ته د زنګ وهلو له لارې په یو یا ډیرو تشکیلاتو کې اضافه کیدی شي.

د USB وسیلې پلورونکي ټولګي مثال تنظیمات

دا برخه د پلورونکي ټولګي مثالونو پورې اړوند تشکیلات تعریفوي.
د ټولګي مثال جوړول intr_en وقفه p_vendor_callbacks
د ټولګي مثال جوړول

د وینډور کلاس انسټنس جوړول د sl_usbd_vendor_create_instance() فنکشن په زنګ وهلو سره ترسره کیږي، کوم چې درې د ترتیب دلیلونه اخلي چې لاندې تشریح شوي.

انټر_این
بولین چې دا په ګوته کوي چې ایا د مداخلې پای ټکي باید اضافه شي یا نه.

ارزښت
ریښتیا دروغ

تفصیل
د داخلي/بهرنۍ پای ټکي یوه جوړه به اضافه شي او په سرایت شوي غوښتنلیک کې به شتون ولري. هیڅ مداخله پای ټکی به اضافه نشي. یوازې د بلک داخلي/بهرنۍ پای ټکي یوه جوړه به شتون ولري.

وقفه
که تاسو intr_en په true تنظیم کړئ، تاسو کولی شئ د مداخلې پای ټکي د رایې ورکولو وقفه (په ملی ثانیو کې) مشخص کړئ. که تاسو intr_en په غلط تنظیم کړئ، تاسو کولی شئ وقفه 0 ته تنظیم کړئ ځکه چې دا به د ټولګي لخوا له پامه غورځول شي.
د_پلورونکي_کال بیکونه
p_vendor_callbacks د کال بیک دندو جوړښت متغیر ته اشاره کوونکی دی. کوم چې تاسو کولی شئ د ټولګي ځانګړي کنټرول غوښتنو اداره کولو لپاره مشخص کړئ. که تاسو د ټولګي ځانګړي غوښتنې نه کاروئ یا د خبرتیا فعال/غیر فعالولو ته اړتیا لرئ، تاسو کولی شئ دا NULL ته تنظیم کړئ.
د پخوانيampلاندې ستاسو د ټولګي ځانګړي غوښتنو سمبالونکي تمه شوي لاسلیک چمتو کوي.
Example – د ټولګي ځانګړي غوښتنې فعالیت لاسلیک

باطل اپلیکیشن_usbd_وینڈر_req_هینډل (uint8_t

ټولګي_نبر، (1)

د sl_usbd_setup_req_t *p_setup_req)؛ (2)

د sl_usbd_وینڈر_کال بیکونه_t اپلیکیشن_usbd_وینڈر_کال بیک_دندو =
{
.enable = NULL، .disable = NULL، .setup_req = app_usbd_vendor_req_handle،
};

(۱) د پلورونکي ټولګي د نمونې شمیره.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

(۲) د کوربه څخه ترلاسه شوي تنظیم غوښتنې ته اشاره کوونکی.
د USB وسیلې پلورونکي ټولګي پروګرام کولو لارښود
دا برخه د پلورونکي ټولګي کارولو څرنګوالی تشریح کوي. د USB وسیلې پلورونکي ټولګي پیل کول ستاسو وسیله ته د USB وسیلې پلورونکي ټولګي مثال اضافه کول د USB وسیلې پلورونکي ټولګي په کارولو سره اړیکه نیول
د USB وسیلې پلورونکي ټولګي پیل کول
ستاسو په وسیله کې د وینډور کلاس فعالیت اضافه کولو لپاره، لومړی د USBD_Vendor_Init() فعالیت په زنګ وهلو سره کلاس پیل کړئ. پخوانیampلاندې ښیې چې څنګه sl_usbd_vendor_init() ته زنګ ووهئ.
Example – د sl_usbd_vendor_init() زنګ وهل

د sl_status_t حالت؛
حالت = sl_usbd_vendor_init(); که (حالت ! SL_STATUS_OK) { /* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */ }
ستاسو آلې ته د USB وسیلې پلورونکي ټولګي مثال اضافه کول
ستاسو په وسیله کې د پلورونکي ټولګي فعالیت اضافه کولو لپاره، تاسو باید لومړی یو مثال جوړ کړئ، بیا یې د خپل وسیله په ترتیب (ساختمانونو) کې اضافه کړئ.
د پلورونکي ټولګي مثال جوړول ستاسو د وسیلې ترتیبونو ته د پلورونکي ټولګي مثال اضافه کول
د پلورونکي ټولګي مثال جوړول
د sl_usbd_vendor_create_instance() فنکشن په زنګ وهلو سره د پلورونکي ټولګي مثال جوړ کړئ. پخوانیampلاندې ښیې چې څنګه د ډیفالټ دلیلونو په کارولو سره sl_usbd_vendor_create_instance() ته زنګ ووهئ. د sl_usbd_vendor_create_instance() ته د لیږدولو لپاره د ترتیب دلیلونو په اړه د نورو معلوماتو لپاره، د USB وسیلې پلورونکي ټولګي انسټانس تشکیلات وګورئ.
Example – د sl_usbd_vendor_create_instance () زنګ وهل

د uint8_t ټولګي_nbr؛ د sl_status_t حالت؛

حالت = sl_usbd_vendor_create_instance(غلط،

(1)

0u

(2)

د اپ_یو ایس بي ډي_وینڈر_کال بیک_فعالیتونه، (۳)

&ټولګي_نبر)؛

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

(۱) د دې ټولګي مثال سره د مداخلې پای ټکي نشته. (۲) وقفه له پامه غورځول کیږي ځکه چې د مداخلې پای ټکي غیر فعال دي.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

(۳) د کال بیک فعالیت چې ستاسو د غوښتنلیک یوه برخه ده چې د پلورونکي ځانګړي ټولګي غوښتنې اداره کوي. د نورو معلوماتو لپاره د USB وسیلې پلورونکي ټولګي په کارولو سره اړیکه وګورئ. د خپل وسیلې ترتیب (ونو) ته د پلورونکي ټولګي مثال اضافه کول وروسته له دې چې تاسو د پلورونکي ټولګي مثال رامینځته کړئ، تاسو کولی شئ دا د USBD_Vendor_ConfigAdd() فعالیت په زنګ وهلو سره په ترتیب کې اضافه کړئ. پخوانیampلاندې ښیې چې څنګه د ډیفالټ دلیلونو په کارولو سره sl_usbd_vendor_add_to_configuration() ته زنګ ووهئ.
Example – د sl_usbd_vendor_add_to_configuration() ته زنګ وهل

د sl_status_t حالت؛

حالت = sl_usbd_vendor_add_to_configuration(class_nbr,

(1)

شکل_nbr_fs)؛

(2)

که (حالت ! SL_STATUS_OK) {

/* یوه تېروتنه رامنځته شوه. د تېروتنې اداره کول باید دلته اضافه شي. */

}

(۱) د sl_usbd_vendor_create_instance() لخوا بیرته راستانه شوي ترتیب ته د اضافه کولو لپاره د ټولګي شمیره. (۲) د ترتیب شمیره (دلته دا د بشپړ سرعت ترتیب ته اضافه کول دي).
د USB وسیلې پلورونکي ټولګي په کارولو سره اړیکه نیول
عمومي همغږي اړیکه غیر همغږي اړیکه د پلورونکي غوښتنه عمومي د پلورونکي ټولګی د کوربه سره د اړیکو لپاره لاندې دندې وړاندې کوي. د فعالیت د پیرامیټرو په اړه د نورو جزیاتو لپاره، د USB وسیلې پلورونکي API وګورئ.
جدول - د پلورونکي د اړیکو API لنډیز

د فعالیت نوم
sl_usb d _v e nd o r_ re ad _b ulk_sy nc() sl_usb d _v e nd o r_write _b ulk_sy nc() sl_usb d _v e nd o r_ re ad _b ulk_asy nc() sl_usb d _v e nd o r_write _b ulk_asy nc() sl_usb d _v e nd o r_ re ad _inte rrup t_sy nc() sl_usb d _v e nd o r_write _inte rrup t_sy nc() sl_usb d _v e nd o r_ re ad _inte rrup t_asy nc
()
sl_usb d _v e nd o r_write _inte rrup t_asy nc
()

Operation Receives data from host through bulk OUT endpoint. This function is blocking. Sends data to host through bulk IN endpoint. This function is blocking. Receives data from host through bulk OUT endpoint. This function is non-blocking. Sends data to host through bulk IN endpoint. This function is non-blocking. Receives data from host through interrupt OUT endpoint. This function is blocking. Sends data to host through interrupt IN endpoint. This function is blocking. Receives data from host through interrupt OUT endpoint. This function is non-
بندول
Sends data to host through interrupt IN endpoint. This function is non-blocking.

The vendor requests are also another way to communicate with the host. When managing vendor requests sent by the host, the application can receive or send data from or to the host using the control endpoint; you will need to provide an application callback passed as a parameter of sl_usbd_vendor_create_instance() . Synchronous Communication

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

Synchronous communication means that the transfer is blocking. When a function is called, the application blocks until the transfer completes with or without an error. A timeout can be specified to avoid waiting forever. The example below shows a read and write that receives data from the host using the bulk OUT endpoint and sends data to the host using the bulk IN endpoint.
Example – Synchronous Bulk Read and Write

__ سمون شوی (۴) uint8_t rx_buf[2];

__ سمون شوی (۴) uint8_t tx_buf[2];

uint32_t

د ایکسفر_لین;

د_حالت_ټ

حالت؛

status = sl_usbd_vendor_read_bulk_sync(class_nbr,

(1)

(void *)&rx_buf[0],

(2)

2u

0u

(3)

&xfer_len);

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

status = sl_usbd_vendor_write_bulk_sync( class_nbr,

(1)

(void *)&tx_buf[0],

(4)

2u

0u

(3)

false,

(5)

&xfer_len);

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

(1) The class instance number created with sl_usbd_vendor_create_instance() provides an internal reference to the Vendor class to route the transfer to the proper bulk OUT or IN endpoint.
(2) The application must ensure that the buffer provided to the function is large enough to accommodate all the data. Otherwise, synchronization issues might happen.
(3) In order to avoid an infinite blocking situation, a timeout expressed in milliseconds can be specified. A value of 809 makes the application task wait forever.
(۴) دا اپلیکیشن د لیږد پیل شوی بفر چمتو کوي.
(5) If this flag is set to true , and the transfer length is multiple of the endpoint maximum packet size, the device stack will send a zero-length packet to the host to signal the end of the transfer.
The use of interrupt endpoint communication functions, sl_usbd_vendor_read_interrupt_sync() and sl_usbd_vendor_write_interrupt_sync() , is similar to bulk endpoint communication functions presented in Example – Synchronous Bulk Read and Write.
غیر متماثل اړیکه
Asynchronous communication means that the transfer is non-blocking. When a function is called, the application passes the transfer information to the device stack and does not block. Other application processing can be done while the transfer is in progress over the USB bus. Once the transfer has completed, a callback function is called by the device stack to inform the application about the transfer completion. The example below shows asynchronous read and write.
Example – Asynchronous Bulk Read and Write

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

void app_usbd_vendor_comm (uint8_t class_nbr)

{

__ سمون شوی (۴) uint8_t rx_buf[2];

__ سمون شوی (۴) uint8_t tx_buf[2];

د_حالت_ټ

حالت؛

status = sl_usbd_vendor_read_bulk_async(class_nbr,

(void *)&rx_buf[0],

(2)

2u

app_usbd_vendor_rx_completed,

NULL);

(4)

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

status = sl_usbd_vendor_write_bulk_async(class_nbr,

(void *)&tx_buf[0],

(5)

2u

app_usbd_vendor_tx_completed,

شمال ،

(4)

false);

(6)

که (حالت ! SL_STATUS_OK) {

/* $$$$ تېروتنه حل کړئ. */

}

}

(1) (3)
(1) (3)

static void app_usbd_vendor_rx_completed(uint8_t class_nbr,

(3)

void *p_buf,

uint32_t buf_len,

uint32_t xfer_len,

void *p_callback_arg,

sl_status_t status)

{

که (حالت ! SL_STATUS_OK) {

/* $$$$ Do some processing. */

} نور {

/* $$$$ تېروتنه حل کړئ. */

}

}

static void app_usbd_vendor_tx_completed(uint8_t class_nbr,

(3)

void *p_buf,

uint32_t buf_len,

uint32_t xfer_len,

void *p_callback_arg,

sl_status_t status)

{

که (حالت ! SL_STATUS_OK) {

/* $$$$ Do some processing. */

} نور {

/* $$$$ تېروتنه حل کړئ. */

}

}

(1) The class instance number provides an internal reference to the Vendor class to route the transfer to the proper bulk OUT or IN endpoint. (2) The application must ensure that the buffer provided is large enough to accommodate all the data. Otherwise, there may be synchronization issues. (3) The application provides a callback function pointer passed as a parameter. Upon completion of the transfer, the device stack calls this callback function so that the application can finalize the transfer by analyzing the transfer result. For instance, on completion of a read operation, the application might perform processing on the received data. Upon write completion, the application can indicate if the write was successful and how many bytes were sent.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview
(4) An argument associated with the callback can be also passed. Then in the callback context, some private information can be retrieved. (5) The application provides the initialized transmit buffer. (6) If this flag is set to true , and the transfer length is a multiple of the endpoint maximum packet size, the device stack will send a zero-length packet to the host to signal the end of transfer. The use of interrupt endpoint communication functions, sl_usbd_vendor_read_interrupt_async() and sl_usbd_vendor_write_interrupt_async() , is similar to the bulk endpoint communication functions presented in Example Asynchronous Bulk Read and Write.
Vendor Request
The USB 2.0 specification defines three types of requests: standard, class, and vendor. All standard requests are handled directly by the core layer, while class requests are managed by the proper associated class. Vendor requests can be processed by the vendor class. To process vendor requests, you must provide an application callback as a parameter of sl_usbd_vendor_create_instance() . After a vendor request is received by the USB device, it must be decoded properly. The example below shows vendor request decoding. Certain requests may be required to receive from or send to the host during the data stage of a control transfer. If no data stage is present, you only have to decode the Setup packet. This example shows the three types of data stage management: no data, data OUT and data IN.
Example – Vendor Request Decoding

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

#define APP_VENDOR_REQ_NO_DATA

۰x۴۱u

#define APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST 0x02u

#define APP_VENDOR_REQ_SEND_DATA_TO_HOST 0x03u

#define APP_VENDOR_REQ_DATA_BUF_SIZE

50u

static uint8_t app_vendor_req_buf[APP_VENDOR_REQ_DATA_BUF_SIZE];

static bool app_usbd_vendor_req (uint8_t

class_nbr,

const sl_usbd_setup_req_t *p_setup_req)

(1)

{

bool valid;

د sl_status_t حالت؛

uint16_t req_len;

uint32_t xfer_len;

(void)class_nbr;

switch(p_setup_req->bRequest) { case APP_VENDOR_REQ_NO_DATA: valid = true; break;

(2) (3)

case APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST:

(4)

req_len = p_setup_req->wLength;

if (req_len > APP_VENDOR_REQ_DATA_BUF_SIZE) {

// Not enough room to receive data.

return (false);

}

// Receive data via Control OUT EP. // Wait transfer completion forever. status = sl_usbd_core_read_control_sync((void *)&app_vendor_req_buf[0u],
req_len, 0u, &xfer_len); if (status ! SL_STATUS_OK) { valid = false; } else { valid = true; } break;

case APP_VENDOR_REQ_SEND_DATA_TO_HOST:

(5)

req_len = APP_VENDOR_REQ_DATA_BUF_SIZE;

// Fill buf with a pattern. Mem_Set((void *)&AppVendorReqBuf[0u],
'الف'،
req_len);

// Send data via Control IN EP. // Wait transfer completion forever. status = sl_usbd_core_write_control_sync((void *)&app_vendor_req_buf[0u],
req_len, 0u, false, &xfer_len); if (status ! SL_STATUS_OK) { valid = DEF_FAIL; } else { valid = DEF_OK; } break;

ډیفالټ:

(6)

// Request is not supported.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

اوورview

valid =true;break;
case APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST:(4) req_len = p_setup_req->wLength;if(req_len > APP_VENDOR_REQ_DATA_BUF_SIZE){// Not enough room to receive data.return(false);}// Receive data via Control OUT EP.// Wait transfer completion forever. status =sl_usbd_core_read_control_sync((void *)&app_vendor_req_buf[0u],
req_len,0u,&xfer_len);if(status ! SL_STATUS_OK){ valid =false;}else{ valid =true;}break;
case APP_VENDOR_REQ_SEND_DATA_TO_HOST:(5) req_len = APP_VENDOR_REQ_DATA_BUF_SIZE;// Fill buf with a pattern.Mem_Set((void *)&AppVendorReqBuf[0u],’A’,
req_len);// Send data via Control IN EP.// Wait transfer completion forever. status =sl_usbd_core_write_control_sync((void *)&app_vendor_req_buf[0u],
req_len,0u,false,&xfer_len);if(status ! SL_STATUS_OK){ valid = DEF_FAIL;}else{ valid = DEF_OK;}break;
default:(6)// Request is not supported. valid = DEF_FAIL;break;}return(valid);}

(1) The core will pass the Setup packet content to your application. The structure sl_usbd_setup_req_t contains the same fields as defined by the USB 2.0 specification (refer to section “9.3 USB Device Requests” of the specification for more details):

typedef جوړښت {

uint8_t bmRequestType; /* Characteristics of request.

*/

uint8_t bRequest; /* Specific request.

*/

uint16_t wValue; /* Varies according to request.

*/

uint16_t wIndex; /* Varies according to request; typically used as index.*/

uint16_t wLength; /* Transfer length if data stage موجود.

*/

} sl_usbd_setup_req_t;

(2) Determine the request. You may use a switch statement if you are using different requests. In this example, there are three different requests corresponding to the three types of the data stage: APP_VENDOR_REQ_NO_DATA, APP_VENDOR_REQ_RECEIVE_DATA_FROM_HOST, and APP_VENDOR_REQ_SEND_DATA_TO_HOST.
(3) If no data stage is present, you only need to decode the other fields. The presence of a data stage or not is indicated by the field wLength being non-null or null.
(4) If the host sends data to the device, you must call the function sl_usbd_core_read_control_sync() . The buffer provided should be able to contain up to wLength bytes. If any error occurs, return false to the core that will stall the status stage of the control transfer, indicating to the host that the request cannot be processed. true is returned in case of success.
(5) If the host receives data from the device, you must call the function sl_usbd_core_write_control_sync() . If any error occurs, return false to the core that will stall the status stage of the control transfer, indicating to the host that the request cannot be processed. true is returned in case of success.
(6) In this example, all requests not recognized are marked by returning false to the core. This one will stall the data or status stage of the control transfer indicating to the host that the request is not supported.
The host sends vendor requests through a host vendor application. USb libraries, such as libusb, can be used to help you develop your custom host vendor application.

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

د API اسناد
د API اسناد
د API اسناد
د ماډلونو لیست
USB Device API USB Device ACM API USB Device CDC API USB Device Core API USB Device HID API USB Device MSC API USB Device MSC SCSI API USB Device Vendor API

تفصیل
USB Device API USB Device ACM API USB Device CDC API USB Device Core API USB Device HID API USB Device MSC API USB Device MSC SCSI API USB Device Vendor API

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB Device API
USB Device API
USB Device API
USB Device API.
ماډلونه
USB Device ACM API USB Device CDC API USB Device Core API USB Device HID API USB Device MSC API USB Device MSC SCSI API USB Device Vendor API

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB Device ACM API

USB Device ACM API

USB Device ACM API

USB Device CDC ACM API.
ماډلونه
a sl_usbd_cdc_ cm_line_coding_t sl_usbd_cdc_acm_callbacks_t
افعال

sl_status_t sl_status_t
sl_status_t sl_status_t sl_status_t
د_حالت_ټ
د_حالت_ټ
د_حالت_ټ
sl_status_t sl_status_t sl_status_t sl_status_t sl_status_t

a sl_usbd_cdc_ cm_init(void)
GLOBAL VARIABLES.
ssll__uussbbdd__ccddcc__aaccmm__ccraellabtaec_kins_stta*npc_ea(cumin_tc1a6l_lbtalicnkes_,sutaintte8__int t*eprv_saul,bucinlats1s6__nt bcra)ll_mgmt_capabilities,
Add a new instance of the CDC ACM serial emulation subclass.
a a a a sl_usbd_cdc_ cm_ dd_to_configur tion(uint8_t subcl ss_nbr, uint8_t config_nbr)
Add a CDC ACM subclass class instance into USB device configuration.
a a sl_usbd_cdc_ cm_is_en bled(uint8_t subclass_nbr, bool *p_enabled)
Get the CDC ACM serial emulation subclass enable state.
a a a sl_usbd_cdc_ cm_re d(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, uint16_t timeout, uint32_t
*p_xfer_len) Receive data on the CDC ACM serial emulation subclass.
a a a a sl_usbd_cdc_ cm_re d_ sync(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, a a a a sl_usbd_cdc_ sync_function_t sync_fnct, void *p_ sync_ rg)
Receive data on the CDC ACM serial emulation subclass asynchronously.
a a sl_usbd_cdc_ cm_write(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, uint16_t timeout, uint32_t
*p_xfer_len) Send data on the CDC ACM serial emulation subclass.
a a a sl_usbd_cdc_ cm_write_ sync(uint8_t subcl ss_nbr, uint8_t *p_buf, uint32_t buf_len, a a a a sl_usbd_cdc_ sync_function_t sync_fnct, void *p_ sync_ rg)
Send data on the CDC ACM serial emulation subclass asynchronously.
a a a sl_usbd_cdc_ cm_get_line_control_st te(uint8_t subcl ss_nbr, uint8_t *p_line_ctrl)
Return the state of control lines.
a a a sl_usbd_cdc_ cm_get_line_coding(uint8_t subcl ss_nbr, sl_usbd_cdc_ cm_line_coding_t *p_line_coding)
Get the current state of the line coding.
a a a sl_usbd_cdc_ cm_set_line_coding(uint8_t subcl ss_nbr, sl_usbd_cdc_ cm_line_coding_t *p_line_coding)
Set a new line coding.
a a a sl_usbd_cdc_ cm_set_line_st te_event(uint8_t subcl ss_nbr, uint8_t events)
Set a line state event(s).
a a a a sl_usbd_cdc_ cm_cle r_line_st te_event(uint8_t subcl ss_nbr, uint8_t events)
Clear a line state event(s).

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB Device ACM API
میکرو
#define SL_USBD_CDC_ACM_NBR_NONE 255u
موډل.
#define SL_USBD_CDC_ACM_PARITY_NONE 0u
PORT SETTINGS DEFINES.
#define SL_USBD_CDC_ACM_PARITY_ODD 1u #define SL_USBD_CDC_ACM_PARITY_EVEN 2u #define SL_USBD_CDC_ACM_PARITY_MARK 3u #define SL_USBD_CDC_ACM_PARITY_SPACE 4u #define SL_USBD_CDC_ACM_STOP_BIT_1 0u #define SL_USBD_CDC_ACM_STOP_BIT_1_5 1u #define SL_USBD_CDC_ACM_STOP_BIT_2 2u #define SL_USBD_CDC_ACM_CTRL_BREAK 0 01u
LINE EVENTS FLAGS DEFINES.
#define SL_USBD_CDC_ACM_CTRL_RTS 0 02u #define SL_USBD_CDC_ACM_CTRL_DTR 0 04u #define SL_USBD_CDC_ACM_STATE_DCD 0 01u #define SL_USBD_CDC_ACM_STATE_DSR 0 02u #define SL_USBD_CDC_ACM_STATE_BREAK 0 04u #define SL_USBD_CDC_ACM_STATE_RING 0 08u #define SL_USBD_CDC_ACM_STATE_FRAMING 0 10u #define SL_USBD_CDC_ACM_STATE_PARITY 0 20u #define SL_USBD_CDC_ACM_STATE_OVERUN 0 40u #define SL_USBD_CDC_ACM_CALL_MGMT_DEV 0 01u
CALL MANAGEMENT CAPABILITIES.
#define SL_USBD_CDC_ACM_CALL_MGMT_DATA_CCI_DCI 0 02u #define SL_USBD_CDC_ACM_CALL_MGMT_DATA_OVER_DCI 0 02u | 0 01u)
Function Documentation
sl_usbd_cdc_acm_init
sl_status_t sl_usbd_cdc_acm_init (void )
GLOBAL VARIABLES. Parameters
د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB Device ACM API

ډول
باطل

Direction N/A

Argument Name

MACROS GLOBAL CONSTANTS FUNCTION PROTOTYPES CDC ACM FUNCTIONS

Initialize the CDC ACM serial emulation subclass.
بیرته راګرځي

Returns SL_STATUS_OK on success or another SL_STATUS code on failure.

تفصیل

sl_usbd_cdc_acm_create_instance

sl_status_t sl_usbd_cdc_acm_create_instance (uint16_t line_state_interval, uint16_t call_mgmt_capabilities, sl_usbd_cdc_acm_callbacks_t * p_acm_callbacks, uint8_t * p_subclass_nbr)

Add a new instance of the CDC ACM serial emulation subclass.
پیرامیټونه

ډول
uint16_t
uint16_t

Direction Argument Name

تفصیل

N/A

line_state_interval Line state notification interval in milliseconds (value must

be a power of 2).

N/A

call_mgmt_capabilities Call Management Capabilities bitmap. OR’ed of the

following flags:

SL_USBD_CDC_ACM_CALL_MGMT_DEV Device handles call management itself. SL_USBD_CDC_ACM_CALL_MGMT_DATA_CCI_DCI Device can send/receive call management information over a Data Class interface.

sl_usbd_cdc_acm_callbacks_t N/A
*

uint8_t *

N/A

p_acm_callbacks p_subclass_nbr

Optional pointers to callback functions to be called on various events.
Param to variable that will receive CDC ACM serial emulation subclass instance number.

بیرته راګرځي

Return SL_STATUS_OK on success or another SL_STATUS code on failure.

sl_usbd_cdc_acm_add_to_configuration

sl_status_t sl_usbd_cdc_acm_add_to_configuration (uint8_t subclass_nbr, uint8_t config_nbr)

Add a CDC ACM subclass class instance into USB device configuration.
پیرامیټونه

ډول
uint8_t uint8_t

Direction N/A N/A

Argument Name
subclass_nbr config_nbr

Description CDC ACM serial emulation subclass instance number. Configuration index to add new test class interface to.

بیرته راګرځي

د چاپ حق © 2025 سیلیکون لابراتوارونه. ټول حقونه خوندي دي.

۹/۹۷

USB Device ACM API
Returns SL_STATUS_OK on success or another SL_STATUS code on failure.

sl_usbd_cdc_acm_is_enabled

sl_status_t sl_usbd_cdc_acm_is_enabled (uint8_t subclass_nbr, bool * p_enabled)

Get the CDC ACM serial emulation subclass enable state.
پیرامیټونه

ډول

هدایت

Argument Name

تفصیل

uint8_t N/A

subclass_nbr CDC ACM serial emulation subclass instance number.

bool * N/A

p_enabled

Boolean to a variable that will receive enable status. The variable is set to true, CDC ACM serial emulation is enabled. The va

اسناد / سرچینې

SILICON LABS USB Device Stack [pdf] د لارښوونې لارښود
USB Device Stack, Device Stack, Stack

حوالې

یو نظر پریږدئ

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې په نښه شوي *