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, සහ Vendor Class වැනි පන්ති. තෝරන්න
ඔබගේ උපාංගයේ ක්රියාකාරිත්වය මත පදනම්ව සුදුසු පන්තිය.
USB උපාංග දෝශ නිරාකරණය
USB උපාංගය සමඟ ඔබට කිසියම් ගැටළුවක් ඇති වුවහොත්, යොමු වන්න
විසඳුම් සහ නිදොස්කරණය සඳහා USB උපාංග දෝශ නිරාකරණ අංශය
ඉඟි
මයික්රොසොෆ්ට් වින්ඩෝස් මෙහෙයුම් පද්ධතිය USB සත්කාරක
ඔබ Microsoft Windows OS USB එකක් සමඟ USB උපාංගය භාවිතා කරන්නේ නම්
සත්කාරක, සපයා ඇති මාර්ගෝපදේශ අනුගමනය කිරීමට වග බලා ගන්න
බාධාවකින් තොරව ඒකාබද්ධ කිරීම සඳහා ලියකියවිලි.
නිති අසන පැණ
Q: සමහර පොදු හිටපු මොනවාද?ampමට භාවිතා කර ගොඩනගා ගත හැකි උපාංග කීයක්
මේ USB තොගය?
A: USB ස්ටැක් එක මඟින් ඔබට උපාංග තැනීමට ඉඩ සලසයි
USB-සිට-අනුක්රමික ඇඩැප්ටර, මීයන් හෝ යතුරුපුවරු, ඉවත් කළ හැකි ගබඩාව
උපාංග සහ අභිරුචි උපාංග.
ප්රශ්නය: මෙය භාවිතා කිරීම සඳහා කිසියම් නිශ්චිත මෘදුකාංග අවශ්යතා තිබේද?
USB උපාංග තොගය?
A: අනුකූල මෘදුකාංග අතර සරල බව SDK, සරල බව ඇතුළත් වේ.
ස්ටුඩියෝ, සිම්ප්ලිසිටි කමාන්ඩර්, GCC (GNU සම්පාදක එකතුව),
ARM සඳහා IAR Embedded Workbench, සහ 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_device_config_t sl_usbd_setup_req_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
sl_usbd_msc_scsi_callbacks_t
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
1/174
යුනිවර්සල් සීරියල් බස් 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 මයික්රොසොෆ්ට් වින්ඩෝස් මෙහෙයුම් පද්ධතිය USB සත්කාරක
ඉවරයිview
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
2/174
ඉවරයිview
ඉවරයිview
USB උපාංගය
USB යනු පරිගණක පද්ධති ඉතිහාසයේ වඩාත්ම සාර්ථක සන්නිවේදන අතුරුමුහුණත් වලින් එකක් වන අතර පරිගණක පර්යන්ත සම්බන්ධ කිරීම සඳහා තථ්ය ප්රමිතිය වේ. සිලිකන් ලැබ්ස් USB උපාංග තොගය යනු එම්බෙඩඩ් පද්ධති සඳහා විශේෂයෙන් නිර්මාණය කරන ලද USB උපාංග මොඩියුලයකි. සිලිකන් ලැබ්ස් හි ගුණාත්මකභාවය, පරිමාණය සහ විශ්වසනීයත්වය සමඟින් ගොඩනගා ඇති එය USB 2.0 පිරිවිතරයන්ට අනුකූල වීම සඳහා දැඩි වලංගුකරණ ක්රියාවලියක් හරහා ගොස් ඇත. මෙම ලියකියවිලි සිලිකන් ලැබ්ස් USB උපාංග තොගය ආරම්භ කිරීම, ආරම්භ කිරීම සහ භාවිතා කරන ආකාරය විස්තර කරයි. එය විවිධ වින්යාස අගයන් සහ ඒවායේ භාවිතයන් පැහැදිලි කරයි. එයට ඕවර් එකක් ද ඇතුළත් වේview තාක්ෂණය, වින්යාස කිරීමේ හැකියාවන් වර්ග, ක්රියාත්මක කිරීමේ ක්රියා පටිපාටි සහ උදාහරණampලබා ගත හැකි සෑම පන්තියක් සඳහාම සාමාන්ය භාවිතයන්.
USB සංකල්ප ඉක්මනින් තේරුම් ගැනීමට ඔබට උපකාර කිරීම සඳහා, ලියකියවිලි බොහෝ උදාහරණ වලින් සමන්විත වේampමූලික කාර්යයන් සහිත USB වල les. මේවා උදා.amples ඔබට ඉක්මනින් උපාංග තැනීමට ඉඩ සලසන රාමුවක් ලබා දෙනු ඇත. මෙම උදාහරණamples ඇතුළත් වේ:
USB-to-serial ඇඩැප්ටරය (සන්නිවේදන උපාංග පන්තිය) මූසිකය හෝ යතුරුපුවරුව (මානව අතුරුමුහුණත් උපාංග පන්තිය) ඉවත් කළ හැකි ගබඩා උපාංගය (ස්කන්ධ ගබඩා පන්තිය) අභිරුචි උපාංගය (විකුණුම්කරු පන්තිය)
පහත දැක්වෙන්නේ අවසන් වීමයිview ලේඛන අංශ වලින්:
පිරිවිතර සහ විශේෂාංග USB උපාංග වින්යාසය USB උපාංග ක්රමලේඛන මාර්ගෝපදේශය USB උපාංග පන්ති
CDC ACM පන්තිය HID පන්තිය MSC SCSI පන්තියේ විකුණුම්කරු පන්තිය USB උපාංගයේ දෝශ නිරාකරණය Microsoft Windows OS USB සත්කාරක
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
3/174
USB
USB
USB අනුවාදය 1.5.1 2025 ජූලි 21 – නිකුත් කිරීමේ සටහන්
සරල බව SDK අනුවාදය 2025.6.1
සිලිකන් ලැබ්ස් හි කාර්යක්ෂම USB උපාංග තොගය, ජාල සම-සකසනයන් සහ ධාරකයන් අතර සන්නිවේදනය ඇතුළුව IoT ව්යාපෘති සඳහා කදිම බහුකාර්ය, භාවිතයට පහසු USB සම්බන්ධතාවයක් ලබා දෙයි. පෙර නිකුතු සඳහා මෙතන ක්ලික් කරන්න.
නිකුතුව සාරාංශය
ප්රධාන විශේෂාංග | API වෙනස්කම් | දෝෂ නිවැරදි කිරීම් | චිප් සක්රීය කිරීම
ප්රධාන ලක්ෂණ
යටින් පවතින වේදිකා වෙනස්කම් පමණි.
API වෙනස්කම්
කිසිවක් නැත.
දෝෂ නිවැරදි කිරීම්
කිසිවක් නැත.
චිප් සක්රීය කිරීම
කිසිවක් නැත.
ප්රධාන ලක්ෂණ
නව විශේෂාංග | වැඩිදියුණු කිරීම් | ඉවත් කළ විශේෂාංග | අතහැර දැමූ විශේෂාංග
නව විශේෂාංග
කිසිවක් නැත.
වැඩිදියුණු කිරීම්
යටින් පවතින වේදිකා වෙනස්කම් පමණි.
ඉවත් කළ විශේෂාංග
කිසිවක් නැත.
අත්හැර දැමූ විශේෂාංග
කිසිවක් නැත.
API වෙනස්කම්
නව API | වෙනස් කළ API | ඉවත් කළ API | අතහැර දැමූ API
නව API
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
4/174
USB
කිසිවක් නැත.
වෙනස් කළ API
කිසිවක් නැත.
ඉවත් කරන ලද API
කිසිවක් නැත.
අතහැර දැමූ API
කිසිවක් නැත.
දෝෂ නිවැරදි කිරීම්
කිසිවක් නැත.
චිප් සක්රීය කිරීම
කිසිවක් නැත.
අයදුම්පත Example වෙනස්කම්
නව හිටපුamples | වෙනස් කළ Examples | ඉවත් කරන ලද හිටපුamples | අතහැර දැමූ හිටපුamples
නව හිටපුamples
කිසිවක් නැත.
වෙනස් කළ හිටපුamples
කිසිවක් නැත.
ඉවත් කරන ලද හිටපුamples
කිසිවක් නැත.
අතහැර දැමූ හිටපුamples
කිසිවක් නැත.
නිකුතු වෙනස්කම් වල බලපෑම
බලපෑම් ප්රකාශන | සංක්රමණ මාර්ගෝපදේශය
බලපෑම් ප්රකාශන
කිසිවක් නැත.
සංක්රමණ මාර්ගෝපදේශය
කිසිවක් නැත.
දන්නා ගැටළු සහ සීමාවන්
කිසිවක් නැත.
මෙම නිකුතුව භාවිතා කිරීම
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
5/174
USB
නිකුතුවේ ඇත්තේ කුමක්ද? | අනුකූල මෘදුකාංග | ස්ථාපනය සහ භාවිතය | උදව් සහ ප්රතිපෝෂණ
නිකුතුවේ ඇත්තේ කුමක්ද?
USB උපාංග ස්ටැක් යෙදුම් Examples
ගැළපෙන මෘදුකාංග
මෘදුකාංග
Simplicity SDK Simplicity Studio Simplicity Commander GCC The GNU Compiler Collection) IAR EWARM සඳහා Embedded Workbench
අනුකූල අනුවාදය හෝ ප්රභේදය
2025.6.0 5.11.0 1.18.2 (Simplicity Studio සමඟ සපයා ඇත) 12.2.1 (Simplicity Studio සමඟ සපයා ඇත) 9.40.1 (Simplicity Studio සමඟ සපයා ඇත)
ස්ථාපනය සහ භාවිතය
ඔබේ සංවර්ධනය ආරම්භ කිරීමට අපගේ:
USB උපාංග ක්රමලේඛන මාර්ගෝපදේශය. API ලේඛනගත කිරීම.
ආරක්ෂිත සුරක්ෂිතාගාරය ඒකාබද්ධ කිරීම පිළිබඳ තොරතුරු සඳහා, ආරක්ෂිත සුරක්ෂිතාගාරය බලන්න.
නැවත කිරීමටview ආරක්ෂක සහ මෘදුකාංග උපදේශන දැනුම්දීම් සහ ඔබේ දැනුම්දීම් මනාපයන් කළමනාකරණය කරන්න:
ò https://community.silabs.com/ වෙත යන්න. ó ඔබගේ ගිණුම් අක්තපත්ර සමඟ ලොග් වන්න. ô ඔබගේ වෘත්තීය පුද්ගලයා ක්ලික් කරන්නfile පිටුවේ ඉහළ දකුණු කෙළවරේ ඇති නිරූපකය.
õ පතන මෙනුවෙන් දැනුම්දීම් තෝරන්න. ö දැනුම්දීම් කොටසේ, නැවතview ඓතිහාසික ආරක්ෂක සහ මෘදුකාංග උපදේශනය
දැනුම්දීම්
÷ ඔබේ මනාපයන් කළමනාකරණය කිරීමට, ඔබ යාවත්කාලීන කරන සහ උපදෙස් දෙන නිෂ්පාදන අභිරුචිකරණය කිරීමට දැනුම්දීම් කළමනාකරණය කරන්න ටැබය භාවිතා කරන්න.
ලැබෙනවා.
නිර්දේශිත වින්යාස සැකසුම් සඳහා, මෙතැන බලන්න.
මෙම නිකුතුවේ ඇති මෘදුකාංගය පිළිබඳ වැඩිදුර දැන ගැනීමට, අපගේ මාර්ගගත ලියකියවිලි වෙත කිමිදෙන්න.
උදව් සහ ප්රතිපෝෂණ
සිලිකන් ලැබ්ස් සහාය අමතන්න. පිළිතුරු ලබා ගැනීමට අපගේ Ask AI මෙවලම භාවිතා කිරීමට, මෙම පිටුවේ ඉහළින් ඇති සෙවුම් ක්ෂේත්රය බලන්න.
සටහන: Ask AI පර්යේෂණාත්මකයි.
අපගේ සංවර්ධක ප්රජාවෙන් උදව් ලබා ගන්න.
SDK නිකුතුව සහ නඩත්තු ප්රතිපත්තිය
අපගේ SDK නිකුත් කිරීමේ සහ නඩත්තු කිරීමේ ප්රතිපත්තිය බලන්න.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
6/174
ඉවරයිview
ඉවරයිview
පිරිවිතර
“Universal Serial Bus specification revision 2.0” සමඟ අනුකූල වේ “Interface Association Descriptor Engineering Change Notice (ECN)” ක්රියාත්මක කරයි මාරු වර්ග
තොග බාධා USB පන්ති පාලනය සන්නිවේදන උපාංග පන්තිය (CDC) වියුක්ත පාලන ආකෘතිය (ACM) මානව අතුරුමුහුණත් උපාංගය (HID) ස්කන්ධ ගබඩා පන්තිය (MSC) විකුණුම්කරු-විශේෂිත පන්ති රාමුව
විශේෂාංග
මතක පියසටහන අවම කිරීම සඳහා අවශ්ය විශේෂාංග පමණක් ඇතුළත් කිරීමට පරිමාණය කළ හැකිය පූර්ණ-වේගයට (12 Mbit/s) සහය දක්වයි සංයුක්ත (බහු-ක්රියාකාරී) උපාංග සඳහා සහය දක්වයි බහු-වින්යාස උපාංග සඳහා සහය දක්වයි USB බල-ඉතිරි කිරීමේ ක්රියාකාරීත්වයන්ට සහය දක්වයි (උපාංගය අත්හිටුවීම සහ නැවත ආරම්භ කිරීම) Mass Storage Class එක Micrium OS වෙත සම්පූර්ණ ඒකාබද්ධ කිරීම File පද්ධති මොඩියුලය විවිධ OS සමඟ ක්රියා කළ හැකි වන පරිදි CMSIS-RTOS2 වියුක්තකරණ ස්ථරය සමඟ සංවර්ධනය කර ඇත. Silicon Labs GSDK FreeRTOS සහ Micrium OS ports සමඟ පැමිණේ.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
7/174
ඉවරයිview
ඉවරයිview
USB උපාංග වින්යාසය
මෙම කොටසින් Silicon Labs USB උපාංගය වින්යාස කරන්නේ කෙසේද යන්න සාකච්ඡා කෙරේ. වින්යාස පරාමිතීන් කාණ්ඩ තුනක් ඇත, ඒවා පහත පරිදි වේ:
USB උපාංග මූලික වින්යාසය USB උපාංග තොරතුරු වින්යාසය USB උපාංග දෘඩාංග වින්යාසය
USB උපාංග මූලික වින්යාසය
Silicon Labs USB උපාංගය sl_usbd_core_config.h හි පිහිටා ඇති #defines කට්ටලයක් හරහා සම්පාදනය කරන අවස්ථාවේදී වින්යාසගත කළ හැක. file. USB උපාංගය හැකි සෑම විටම #defines භාවිතා කරයි, මන්ද ඒවා සක්රීය කර ඇති විශේෂාංග මත පදනම්ව සම්පාදනය කරන වේලාවේදී කේත සහ දත්ත ප්රමාණයන් පරිමාණය කිරීමට ඉඩ සලසයි. මෙය ඔබගේ යෙදුමේ අවශ්යතා මත පදනම්ව Silicon Labs USB උපාංගයේ කියවීමට පමණක් මතකය (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 ඊ
සක්රිය කර ඇත්නම්, කර්නලය ආරම්භ කළ පසු USB උපාංගය ස්වයංක්රීයව ආරම්භ වන අතර එම USBD මූලික කාර්යය පළමු වරට කාලසටහන්ගත කෙරේ. අක්රිය කර ඇත්නම්, USB සත්කාරකය විසින් අනාවරණය කර ගැනීමට සූදානම් වූ විට ඔබේ යෙදුම sl_usbd_core_start_device() ඇමතීමට අවශ්ය වනු ඇත.
SL_USBD_C sl_usbd_add_configuration() හරහා එකතු කරනු ලබන මුළු වින්යාස ගණන
1
ONFIGURATI ශ්රිතය.
ON_QUANTI
TY
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
8/174
ඉවරයිview
ස්ථාවර
SL_USBD _අන්තර්ගතය ACE_QU ප්රතිරූපය
SL_USBD _ALT_INT ERFACE_ QUANTI
TY
SL_USBD _අන්තර් ACE_GR
OUP_QU
ඇන්ටිටි
SL_USBD _විස්තර
PTOR_Q
UANTITY
SL_USBD _STRING _QUANTI
TY
SL_USBD _OPEN_E NDPOIN TS_QUA NTITY
විස්තරය ඔබගේ සියලුම වින්යාසයන් සඳහා එකතු කළ යුතු මුළු USB අතුරුමුහුණත් ගණන. මෙය භාවිතා කරන පන්ති(ය) මත බෙහෙවින් රඳා පවතී. පන්ති අවස්ථාවකට කොපමණ අතුරුමුහුණත් අවශ්ය දැයි වැඩි විස්තර සඳහා, ඔබේ පන්තියේ(ය) “හරයෙන් සම්පත් අවශ්යතා” කොටස බලන්න.
ඔබගේ සියලු වින්යාසයන් සඳහා එකතු කළ යුතු මුළු USB විකල්ප අතුරුමුහුණත් ගණන. මෙය භාවිතා කරන පන්ති(ය) මත බෙහෙවින් රඳා පවතී. මෙම අගය සැමවිටම SL_USBD_INTERFACE_QUANTITY ට සමාන හෝ වැඩි විය යුතුය. පන්ති අවස්ථාවක් සඳහා කොපමණ විකල්ප අතුරුමුහුණත් අවශ්යද යන්න පිළිබඳ වැඩි විස්තර සඳහා, ඔබේ පන්තිය(ය) හි “Core වෙතින් සම්පත් අවශ්යතා” කොටස බලන්න.
ඔබගේ සියලුම වින්යාසයන් සඳහා එකතු කරනු ලබන මුළු USB අතුරුමුහුණත් කණ්ඩායම් ගණන. මෙය භාවිතා කරන පන්ති(ය) මත බෙහෙවින් රඳා පවතී. පන්ති අවස්ථාවක් අවශ්ය අතුරුමුහුණත් කණ්ඩායම් කීයක් පිළිබඳ වැඩි විස්තර සඳහා, ඔබේ පන්තියේ(ය) “Core වෙතින් සම්පත් අවශ්යතා” කොටස බලන්න.
ඔබගේ සියලු වින්යාසයන් සඳහා එකතු කරනු ලබන මුළු අන්ත ලක්ෂ්ය විස්තර ගණන. මෙය භාවිතා කරන පන්තිය(ය) මත බෙහෙවින් රඳා පවතී. පන්ති අවස්ථාවක් සඳහා කොපමණ අන්ත ලක්ෂ්ය විස්තර අවශ්යද යන්න පිළිබඳ වැඩිදුර තොරතුරු සඳහා, ඔබේ පන්තිය(ය) හි “Core වෙතින් සම්පත් අවශ්යතා” කොටසේ “අන්ත ලක්ෂ්ය ගණන” බලන්න. පාලන අන්ත ලක්ෂ්ය මෙහි සලකා බැලිය යුතු නැති බව සලකන්න. මුළු USB නූල් ගණන. ප්රමාණය ශුන්යයට සැකසීම විශේෂාංගය අක්රිය කරයි. මෙය අක්රිය කිරීමෙන් උපාංගය යෙදුමෙන් සම්මත කරන ලද කිසිදු USB විස්තර නූල් ගබඩා නොකිරීමට හේතු වේ. මෙයින් අදහස් කරන්නේ සත්කාරකයට විස්තර නූල් (නිෂ්පාදකයා සහ නිෂ්පාදන නම වැනි) ලබා ගැනීමට නොහැකි වනු ඇති බවයි. වින්යාසයකට විවෘත අන්ත ලක්ෂ්ය ගණන. උපාංගයකට පාලන මාරු කිරීම් සඳහා අවම වශයෙන් විවෘත අන්ත ලක්ෂ්ය දෙකක් අවශ්ය වේ, නමුත් ඔබ භාවිතා කරන පන්තිය(ය) හි අන්ත ලක්ෂ්ය එකතු කළ යුතුය. පන්ති අවස්ථාවක් සඳහා කොපමණ විවෘත අන්ත ලක්ෂ්ය ප්රමාණයක් අවශ්යද යන්න පිළිබඳ වැඩිදුර තොරතුරු සඳහා, ඔබේ පන්තිය(ය) හි “Core වෙතින් සම්පත් අවශ්යතා” කොටසේ “අන්ත ලක්ෂ්ය ගණන” බලන්න.
පෙරනිමි අගය
10 10
2
20 30 20
පන්ති වින්යාසය
පන්තිවලට නිශ්චිත සම්පාදන-කාල වින්යාසයන් ඇත. වැඩි විස්තර සඳහා USB උපාංග පන්ති බලන්න.
USB උපාංග තොරතුරු වින්යාසය
sl_usbd_device_config.h වින්යාසය file ඔබගේ උපාංගය පිළිබඳ මූලික තොරතුරු, එනම් විකුණුම්කරු/නිෂ්පාදන හැඳුනුම්පත, උපාංග නූල් ආදිය සැකසීමට compile-time #define-s නැවත සමූහගත කරයි. පහත වගුව මෙම වින්යාසය තුළ ඇති එක් එක් තොරතුරු වින්යාස අර්ථ දැක්වීම විස්තර කරයි. file.
වගුව - USB උපාංග තොරතුරු වින්යාසය අර්ථ දක්වයි
ස්ථාවර
SL_USBD_DEVIC E_VENDOR_ID
SL_USBD_DEVIC E_PRODUCT_ID
විස්තරය USB ක්රියාත්මක කරන්නන්ගේ සංසදය මගින් ලබා දෙන පරිදි ඔබේ වෙළෙන්දා හඳුනාගැනීමේ අංකය. වෙළෙන්දා හැඳුනුම්පතක් ලබා ගන්නේ කෙසේද යන්න පිළිබඳ වැඩිදුර තොරතුරු සඳහා, http://www.usb.org/developers/vendor/ බලන්න. ඔබේ නිෂ්පාදන හඳුනාගැනීමේ අංකය.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
9/174
ඉවරයිview
ස්ථාවර
විස්තරය
ඔබගේ උපාංගයේ SL_USBD_DEVICE_RELEASE නිකුතු අංකය. _NUMBER
ඔබගේ උපාංගයේ නිෂ්පාදකයා විස්තර කරන SL_USBD_DEVICE_MANUFA String. මෙම වින්යාසය නොසලකා හරින විට
CTURER_STRING විසින්
වින්යාසය 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_සවුදි_ARABIA
– SL_USBD_LANG_ID_චීන_තායිවානය
– SL_USBD_LANG_ID_ENGLISH_US
– SL_USBD_LANG_ID_ENGLISH_UK
– 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_සංස්කෘත
SL_USBD_STRING_QUANTITY වින්යාසය 0 ලෙස සකසා ඇති විට මෙම වින්යාසය නොසලකා හරිනු ලැබේ.
USB උපාංග දෘඪාංග වින්යාසය
ඔබ භාවිතා කරන Silicon Labs උපාංගය මත පදනම්ව, USB VBUS Sense සංඥාව සඳහා වින්යාස කිරීමට ඔබට GPIO පින් සහ port එක තිබිය හැක. වින්යාස අර්ථ දැක්වීම් sl_usbd_hardware_config.h ශීර්ෂයේ ඇත. file.
ස්ථාවර
SL_USBD_DRIVER_VBUS_SENSE_PORT SL_USBD_DRIVER_VBUS_SENSE_PIN අංකය
විස්තරය
ඔබගේ පුවරුවේ USB VBUS Sense සංඥාව සඳහා GPIO Port එක. ඔබගේ පුවරුවේ USB VBUS Sense සංඥාව සඳහා GPIO Pin එක.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
10/174
ඉවරයිview
ඉවරයිview
USB උපාංග ක්රමලේඛන මාර්ගෝපදේශය
මෙම කොටසින් USB උපාංග මොඩියුලය භාවිතා කරන ආකාරය පැහැදිලි කෙරේ.
USB උපාංග මොඩියුලයේ මූලික සැකසුම
මෙම කොටසේදී USB උපාංග මොඩියුලය ආරම්භ කිරීමට සහ උපාංගයක් එකතු කිරීමට, සකස් කිරීමට සහ ආරම්භ කිරීමට අවශ්ය මූලික පියවර විස්තර කෙරේ. USB උපාංග මොඩියුලය ආරම්භ කිරීම USB උපාංග හරය ආරම්භ කිරීම aCl ss(es) ඔබේ USB උපාංගය එකතු කිරීම ඔබේ USB උපාංගය ගොඩනැගීම වින්යාස(ය) එකතු කිරීම USB කාර්යය(ය) එකතු කිරීම ඔබේ USB උපාංගය ආරම්භ කිරීම
සිදුවීම් කොක්ක කාර්යයන්
USB උපාංග මොඩියුලය ආරම්භ කිරීම
USB උපාංග හරය ආරම්භ කිරීම
sl_usbd_core_init() ශ්රිතය ඇතුළත් කිරීමෙන් B උපාංග මොඩියුල හරය නම් කිරීමෙන් ආරම්භ කරන්න. පහත උදාහරණයෙන් sl_usbd_core_init() ඇතුළත් කිරීම පෙන්වයි.
Example – sl_usbd_core_init() අමතමින්
sl_status_t status; status = sl_usbd_core_init(); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
පන්ති(ය) ආරම්භ කිරීම
USB උපාංග මොඩියුල හරය ආරම්භ කළ පසු, ඔබ භාවිතා කිරීමට අදහස් කරන සෑම පන්තියක්ම ආරම්භ කළ යුතුය. වැඩි විස්තර සඳහා ඔබේ acl ss(es) හි “ක්රමලේඛන මාර්ගෝපදේශය” කොටස බලන්න.
ඔබේ USB උපාංගය ගොඩනඟමින්
වින්යාස(ය) එකතු කිරීම
ඔබගේ උපාංගය සාර්ථකව ආරම්භ කළ පසු, ඔබට නව වින්යාසයකින් පටන් ගෙන එයට USB ශ්රිත එකතු කිරීම ආරම්භ කළ හැකිය. උපාංගයකට අවම වශයෙන් එක් වින්යාසයක්වත් තිබිය යුතුය. වින්යාසයක්(ය) එක් කිරීමට, aa ශ්රිතය අමතන්න sl_usbd_core_ dd_configur tion() ශ්රිතය. ඔබට එකතු කිරීමට අවශ්ය සෑම වින්යාසයක් සඳහාම මෙම ශ්රිතය කැඳවිය යුතුය. උදා.ampපහත දැක්වෙන්නේ සම්පූර්ණ වේගයක් එකතු කරන ආකාරයයි.
Example – ඔබගේ උපාංගයට වින්යාස(ය) එකතු කිරීම
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
11/174
ඉවරයිview
sl_status_t තත්ත්වය; uint8_t config_nbr_fs;
/* උපාංගයට සම්පූර්ණ වේග වින්යාසයක් එක් කිරීම. */
තත්ත්වය = sl_usbd_core_add_configuration(0,
/* වින්යාසයට විශේෂ ගුණාංග නොමැත. */
100u,
/* උපරිම බල පරිභෝජනය: 100mA.
*/
SL_USBD_DEVICE_SPEED_FULL,
/* සම්පූර්ණ වේග වින්යාසය.
*/
“Config Add Ex”amp"පූර්ණ-වේග වින්යාසය",
&config_nbr_fs);
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
USB ශ්රිතය(ය) එකතු කිරීම
ඔබගේ උපාංගයට අවම වශයෙන් එක් වින්යාසයක් සාර්ථකව එකතු කළ පසු, ඔබට ඔබගේ උපාංගයට අතුරුමුහුණත් සහ අන්ත ලක්ෂ්ය එකතු කළ හැකිය. සෑම USB පන්තියකටම අතුරුමුහුණත් සහ අන්ත ලක්ෂ්ය වර්ගය, ප්රමාණය සහ අනෙකුත් පරාමිතීන් අනුව තමන්ගේම අවශ්යතා ඇත. සිලිකන් ලැබ්ස් USB උපාංගය එය පිරිනමන පන්තිවල අතුරුමුහුණත් සහ අන්ත ලක්ෂ්ය එක් කරයි.
ඔබගේ යෙදුමෙන්, ඔබට USB පන්තියක් ක්ෂණිකව සකසා එය වින්යාසයකට එක් කළ හැකිය. USB උපාංග පන්ති අවස්ථා සංකල්පය පිළිබඳ වැඩි විස්තර සඳහා, USB උපාංග පන්ති බලන්න. බහුකාර්ය (සංයුක්ත) උපාංගයක් නිර්මාණය කිරීම සඳහා ඔබට වින්යාසයකට විවිධ පන්ති අවස්ථා ක්ෂණිකව සකසා එකතු කළ හැකි බව සලකන්න.
හිටපුampපහත දැක්වෙන්නේ පන්ති අවස්ථාවක් නිර්මාණය කර එය වින්යාසයකට එකතු කරන ආකාරයයි.
Example – ඔබේ උපාංගයට පන්ති අවස්ථාවක් එක් කිරීම
sl_status_t තත්ත්වය; uint8_t පන්තිය_nbr;
/* ඔබට භාවිතා කිරීමට අවශ්ය පන්තියේ උදාහරණයක් සාදන්න.*/ /* පන්තිය අනුව මෙම ශ්රිතයට තවත් තර්ක තිබිය හැකි බව සලකන්න. */ status = sl_usbd_ _create_instance(&class_nbr); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */ }
/* සම්පූර්ණ-වේග වින්යාසයට පන්ති අවස්ථාව එක් කරන්න. */ status = sl_usbd_ _add_to_configuration(class_nbr, /* sl_usbd_ මගින් ආපසු ලබා දුන් පන්ති අංකය _නිදර්ශනය_සාදන්න. */
config_nbr_fs); /* sl_usbd_core_add_configuration() මගින් ආපසු ලබා දුන් වින්යාස අංකය. */ if (status ! 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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
12/174
ඉවරයිview
sl_status_t තත්ත්වය;
status = sl_usbd_core_start_device(); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */ }
සිදුවීම් කොක්ක කාර්යයන්
USB උපාංග හර මොඩියුලය මඟින් ඔබේ යෙදුම තුළ නැවත අර්ථ දැක්විය හැකි දුර්වල කොකු ශ්රිත දෙකක් ලබා දෙයි. ඒවායේ අරමුණ වන්නේ බස් සහ වින්යාස සිදුවීම් සිදුවන විට දැනුම් දීමයි.
වගුව - USB සිදුවීම් කොක්ක කාර්යයන්
සිදුවීම
විස්තරය
බසය
USB Bus සිදුවීම සිදුවන විට අමතනු ලැබේ
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 – සිදුවීම් කොකු කාර්යයන්
void sl_usbd_on_bus_event(sl_usbd_bus_event_t event) { switch (event) { case SL_USBD_EVENT_BUS_CONNECT:
// ධාරක පාලක බිඳීමකට USB කේබලය ඇතුළු කළ විට කැඳවනු ලැබේ;
case SL_USBD_EVENT_BUS_DISCONNECT: // ධාරක පාලක බිඳීමකින් USB කේබලය ඉවත් කළ විට කැඳවනු ලැබේ;
case SL_USBD_EVENT_BUS_RESET: // සත්කාරකය reset විධානය break යවන විට කැඳවනු ලැබේ;
case SL_USBD_EVENT_BUS_SUSPEND: // සත්කාරකය අත්හිටුවීමේ විධානය break යවන විට කැඳවනු ලැබේ;
case SL_USBD_EVENT_BUS_RESUME: // සත්කාරකය wake up විධානය break යවන විට කැඳවනු ලැබේ;
පෙරනිමිය: බිඳීම; } }
void sl_usbd_on_config_event(sl_usbd_config_event_t සිදුවීම, uint8_t config_nbr) { ස්විචය (සිදුවීම) { අවස්ථාව SL_USBD_EVENT_CONFIG_SET:
// ධාරකය වින්යාස බිඳීමක් සකසන විට කැඳවනු ලැබේ;
case SL_USBD_EVENT_CONFIG_UNSET: // වින්යාසයක් සකසා නොමැති විට කැඳවනු ලැබේ break;
පෙරනිමිය: බිඳීම; } }
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
13/174
ඉවරයිview
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
14/174
ඉවරයිview
ඉවරයිview
USB උපාංග පන්ති
සිලිකන් ලැබ්ස් USB උපාංගයේ ඇති USB පන්තිවල පොදු ලක්ෂණ කිහිපයක් ඇත. මෙම කොටසේ මෙම ලක්ෂණ සහ මූලික ස්ථරය සමඟ ඒවායේ අන්තර්ක්රියා පැහැදිලි කෙරේ.
නිශ්චිත පන්තියක් පිළිබඳ වැඩි විස්තර සඳහා, පහත බලන්න:
CDC ACM පන්තිය HID පන්තිය MSC SCSI පන්තියේ විකුණුම්කරු පන්තිය
පන්ති අවස්ථා ගැන
USB උපාංගයේ ඇති USB පන්ති පන්ති අවස්ථා සංකල්පය ක්රියාත්මක කරයි. පන්ති අවස්ථාවක් උපාංගයක් තුළ එක් ශ්රිතයක් නියෝජනය කරයි. ශ්රිතය එක් අතුරුමුහුණතකින් හෝ අතුරුමුහුණත් සමූහයකින් විස්තර කළ හැකි අතර එය නිශ්චිත පන්තියකට අයත් වේ.
සෑම USB පන්ති ක්රියාත්මක කිරීමකම පන්ති අවස්ථාව පිළිබඳ සංකල්පය මත පදනම්ව, පොදු වින්යාසයන් සහ කාර්යයන් කිහිපයක් ඇත. පොදු වින්යාසයන් සහ කාර්යයන් පහත වගුවේ ඉදිරිපත් කර ඇත. 'නියත හෝ ශ්රිතය' යන තීරු මාතෘකාව තුළ, XXXX ස්ථාන දරන්නා පන්තියේ නමෙන් ප්රතිස්ථාපනය කළ හැකිය: CDC, HID, MSC, CDC_ACM හෝ VENDOR (කාර්ය නාම සඳහා විකුණුම්කරු).
වගුව - බහු පන්ති අවස්ථා සංකල්පයට අදාළ නියතයන් සහ ශ්රිත
නියත හෝ ක්රියාකාරීත්වය
SL_USBD_XXXX_CL ASS_INS TANCE_QUANTITY
SL_USBD_XXXX_ATION_QUANTITY වින්යාස කරන්න
sl_usb d _XXXX_cre කෑවා _ක්ෂණයකින් ()
sl_usbd_XXXX_conf_add_to_add() iguration()
විස්තරය
උපරිම පන්ති අවස්ථා ගණන වින්යාස කරයි.
උපරිම වින්යාස ගණන වින්යාස කරයි. පන්ති ආරම්භයේදී, සාදන ලද පන්ති අවස්ථාවක් වින්යාස එකකට හෝ කිහිපයකට එකතු වේ. නව පන්ති අවස්ථාවක් නිර්මාණය කරයි.
නිශ්චිත උපාංග වින්යාසයට පවතින පන්ති අවස්ථාවක් එක් කරයි.
කේත ක්රියාත්මක කිරීම සම්බන්ධයෙන්, පන්තිය පන්ති පාලන ව්යුහයක් අඩංගු දේශීය ගෝලීය විචල්යයක් ප්රකාශ කරනු ඇත. මෙම පන්ති පාලන ව්යුහය එක් පන්ති අවස්ථාවක් සමඟ සම්බන්ධ වී ඇති අතර පන්ති අවස්ථාව කළමනාකරණය කිරීම සඳහා නිශ්චිත තොරතුරු අඩංගු වේ.
පහත රූපවල අවස්ථා කිහිපයක් පෙන්වයි. සෑම රූපයකටම උදාහරණ කේතයක් ඇතුළත් වේ.ample එය සිද්ධි අවස්ථාවට අනුරූප වේ.
රූපය - බහු පන්ති අවස්ථා - FS උපාංගය (1 අතුරුමුහුණතක් සහිත 1 වින්යාසය) සාමාන්ය USB උපාංගයක් නියෝජනය කරයි. උපාංගය පූර්ණ-වේග (FS) වන අතර තනි වින්යාසයක් අඩංගු වේ. උපාංගයේ ක්රියාකාරිත්වය දත්ත සන්නිවේදනය සඳහා අන්ත ලක්ෂ්ය යුගලයකින් සමන්විත එක් අතුරු මුහුණතක් මගින් විස්තර කෙරේ. එක් පන්ති අවස්ථාවක් නිර්මාණය කර ඇති අතර එය සම්බන්ධිත අන්ත ලක්ෂ්යය සමඟ සම්පූර්ණ අතුරු මුහුණත කළමනාකරණය කිරීමට ඔබට ඉඩ සලසයි.
රූපය – බහු පන්ති අවස්ථා – 1 අතුරුමුහුණතක් සහිත FS උපාංගය 1 වින්යාසය)
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
15/174
ඉවරයිview
රූපය - බහු පන්ති අවස්ථා - FS උපාංගය (1 අතුරුමුහුණතක් සහිත වින්යාසයක්) ට අනුරූප කේතය ex හි දක්වා ඇත.ampපහතින්.
Example – බහු පන්ති අවස්ථා – 1 අතුරුමුහුණතක් සහිත FS උපාංග 1 වින්යාසය)
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_callbacks_t class_callbacks = {
(1)
.සක්රීය කරන්න = app_usbd_XXXX_සක්රීය කරන්න,
.අක්රිය කරන්න = app_usbd_XXXX_අක්රිය කරන්න
};
තත්ත්වය = sl_usbd_XXXX_init();
(2)
(තත්වය ! SL_STATUS_OK) නම් {
/* $$$$ දෝෂය හසුරුවන්න. */
}
status = sl_usbd_XXXX_create_instance(&class_callbacks,
(3)
&පන්තිය_0);
(තත්වය ! SL_STATUS_OK) නම් {
/* $$$$ දෝෂය හසුරුවන්න. */
}
තත්ත්වය = sl_usbd_XXXX_configuration_to_add(class_0, config_0);
(4)
(තත්වය ! SL_STATUS_OK) නම් {
/* $$$$ දෝෂය හසුරුවන්න. */
}
(1) සෑම පන්තියක්ම උපාංග සම්බන්ධ කිරීම/විසන්ධි කිරීම සිදුවීම් සඳහා සහ පන්ති විශේෂිත සිදුවීම් සඳහා ආපසු ඇමතුම් ශ්රිත කට්ටලයක් ලබා දෙයි. sl_usbd_XXXX_create_instance() සමඟ පන්ති අවස්ථාව නිර්මාණය කිරීමේදී ආපසු ඇමතුම් ව්යුහ වස්තුව තර්කයක් ලෙස සම්මත කෙරේ.
කාර්යය.
(1) පන්තිය ආරම්භ කරන්න. සියලුම අභ්යන්තර විචල්යයන්, ව්යුහයන් සහ පන්ති වරායන් ආරම්භ කරනු ලැබේ. සමහර පන්තිවල Init() ශ්රිතය වෙනත් තර්ක ගත හැකි බව සලකන්න.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
16/174
ඉවරයිview
(2) class instance එක සාදන්න, එනම් class_0. sl_usbd_XXXX_create_instance() ශ්රිතය class_0 හා සම්බන්ධ පන්ති පාලන ව්යුහයක් වෙන් කරයි. class මත පදනම්ව, sl_usbd_XXXX_create_instance() class control structure හි ගබඩා කර ඇති class-specific තොරතුරු නියෝජනය කරන පන්ති අංකයට අමතරව අමතර පරාමිතීන් තිබිය හැක. aaa (3) cl ss inst nce, class_0, නිශ්චිත වින්යාස අංකය, config_0 වෙත එක් කරන්න. sl_usbd_XXXX_add_to_configuration() අතුරුමුහුණත 0 සහ එහි ආශ්රිත IN සහ OUT අන්ත ලක්ෂ්ය නිර්මාණය කරයි. එහි ප්රතිඵලයක් ලෙස, class instance එක අතුරුමුහුණත 0 සහ එහි අන්ත ලක්ෂ්ය ආවරණය කරයි. අතුරුමුහුණත 0 මත සිදු කරන ඕනෑම සන්නිවේදනයක් class instance අංකය, class_0 භාවිතා කරයි. රූපය - බහු පන්ති අවස්ථා - FS උපාංගය (2 Configurations සහ Multiple Interfaces) වඩාත් සංකීර්ණ ex එකක් නියෝජනය කරයි.ample. සම්පූර්ණ වේග උපාංගයක් වින්යාස දෙකකින් සමන්විත වේ. උපාංගයට එකම පන්තියට අයත් ශ්රිත දෙකක් ඇත, නමුත් සෑම ශ්රිතයක්ම අතුරුමුහුණත් දෙකකින් විස්තර කර ඇති අතර ද්විපාර්ශ්වික අන්ත ලක්ෂ්ය යුගලයක් ඇත. මෙම උදාහරණයේදීample, පන්ති අවස්ථා දෙකක් නිර්මාණය වේ. සෑම පන්ති අවස්ථාවක්ම රූපය - බහු පන්ති අවස්ථා - FS උපාංගය (1 අතුරුමුහුණතක් සහිත වින්යාසය) සහ රූපය - බහු පන්ති අවස්ථා - FS උපාංගය (2 වින්යාසයන් සහ බහු අතුරුමුහුණත්) වලට ප්රතිවිරුද්ධව අතුරුමුහුණත් සමූහයක් සමඟ සම්බන්ධ වේ, එහිදී පන්ති අවස්ථාව තනි අතුරුමුහුණතක් සමඟ සම්බන්ධ විය.
රූපය – බහු පන්ති අවස්ථා – FS උපාංග 2 වින්යාස සහ බහු අතුරුමුහුණත්)
රූපය - බහු පන්ති අවස්ථා - FS උපාංගය (2 වින්යාස සහ බහු අතුරුමුහුණත්) ට අනුරූප කේතය ex හි දක්වා ඇත.ampපහතින්. පැහැදිලි බව සඳහා දෝෂ හැසිරවීම මඟ හැර ඇත.
Example – බහු පන්ති අවස්ථා – FS උපාංග 2 වින්යාස සහ බහු අතුරුමුහුණත්)
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
17/174
ඉවරයිview
sl_status_t තත්ත්වය; uint8_t පන්තිය_0; uint8_t පන්තිය_1;
තත්ත්වය = sl_usbd_XXXX_init();
තත්ත්වය = sl_usbd_XXXX_create_instance(&class_0); තත්ත්වය = sl_usbd_XXXX_create_instance(&class_1);
තත්ත්වය = sl_usbd_XXXX_add_to_configuration(class_0, cfg_0); තත්ත්වය = sl_usbd_XXXX_add_to_configuration(class_1, cfg_0);
තත්ත්වය = sl_usbd_XXXX_add_to_configuration(class_0, cfg_1); තත්ත්වය = sl_usbd_XXXX_add_to_configuration(class_1, cfg_1);
(1)
(2) (3)
(4) (5)
(6) (6)
(1) පන්තිය ආරම්භ කරන්න. ඕනෑම අභ්යන්තර විචල්යයන්, ව්යුහයන් සහ පන්ති වරායන් ආරම්භ කරනු ලැබේ.
(2) class_0 පන්තියේ උදාහරණය සාදන්න. sl_usbd_XXXX_create_instance() ශ්රිතය class_0 හා සම්බන්ධ පන්ති පාලන ව්යුහයක් වෙන් කරයි.
(3) class_1 පන්තියේ උදාහරණය සාදන්න. sl_usbd_XXXX_create_instance() ශ්රිතය class_1 හා සම්බන්ධ තවත් පන්ති පාලන ව්යුහයක් වෙන් කරයි.
(4) class_0 යන instance එක cfg_0 වින්යාසයට එක් කරන්න. sl_usbd_XXXX_add_to_configuration() මඟින් අතුරුමුහුණත 0, අතුරුමුහුණත 1, විකල්ප අතුරුමුහුණත් සහ ඒ ආශ්රිත IN සහ OUT අන්ත ලක්ෂ්ය නිර්මාණය වේ. class_0 යන instance අංකය, interface 0 හෝ interface 1 හි ඕනෑම දත්ත සන්නිවේදනයක් සඳහා භාවිතා කරනු ඇත.
(5) class_1 යන instance එක cfg_0 වින්යාසයට එක් කරන්න. sl_usbd_XXXX_add_to_configuration() මඟින් අතුරුමුහුණත 2, අතුරුමුහුණත 3 සහ ඒවාට සම්බන්ධ IN සහ OUT අන්ත ලක්ෂ්ය නිර්මාණය වේ. class_1 යන instance අංකය, interface 2 හෝ interface 3 හි ඕනෑම දත්ත සන්නිවේදනයක් සඳහා භාවිතා කරනු ඇත.
(6) cfg_1 යන අනෙක් වින්යාසයට, class_0 සහ class_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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
18/174
ඉවරයිview
ඉවරයිview
USB උපාංග CDC ACM පන්තිය
USB උපාංග CDC මූලික පන්තිය අවසන්view USB උපාංග CDC ACM පන්ති සම්පත් අවශ්යතා Core USB උපාංග CDC ACM උපපංතිය අවසන්view USB උපාංග CDC ACM පන්ති වින්යාසය USB උපාංග CDC ACM පන්ති ක්රමලේඛන මාර්ගෝපදේශය
මෙම කොටසේ සන්නිවේදන උපාංග පන්තිය (CDC) පන්තිය සහ සිලිකන් ලැබ්ස් හි USB උපාංග තොගය මඟින් සහාය දක්වන අදාළ CDC උප පන්තිය විස්තර කෙරේ. සිලිකන් ලැබ්ස් USB-උපාංගය දැනට අනුක්රමික අනුකරණය සඳහා බහුලව භාවිතා වන වියුක්ත පාලන ආකෘතිය (ACM) උප පන්තියට සහය දක්වයි.
CDC හි විවිධ විදුලි සංදේශ සහ ජාලකරණ උපාංග ඇතුළත් වේ. විදුලි සංදේශ උපාංගවලට ඇනලොග් මොඩම්, ඇනලොග් සහ ඩිජිටල් දුරකථන, ISDN පර්යන්ත ඇඩැප්ටර ආදිය ඇතුළත් වේ. උදාහරණයක් ලෙසample, ජාලකරණ උපාංගවල ADSL සහ කේබල් මොඩම්, ඊතර්නෙට් ඇඩැප්ටර සහ හබ් අඩංගු වේ. USB සබැඳියක් භාවිතා කරමින් V.250 (දුරකථන ජාලය හරහා මොඩම් සඳහා) සහ ඊතර්නෙට් (දේශීය ජාල උපාංග සඳහා) වැනි පවතින සන්නිවේදන සේවා ප්රමිතීන් කැප්සියුල් කිරීම සඳහා රාමුවක් CDC නිර්වචනය කරයි. සන්නිවේදන උපාංගයක් උපාංග කළමනාකරණය, අවශ්ය විට ඇමතුම් කළමනාකරණය සහ දත්ත සම්ප්රේෂණය භාරව සිටී.
CDC ප්රධාන උපාංග කාණ්ඩ හතක් නිර්වචනය කරයි. සෑම කණ්ඩායමක්ම සන්නිවේදන ආකෘතියකට අයත් වන අතර එයට උප කාණ්ඩ කිහිපයක් ඇතුළත් විය හැකිය. CDC මූලික පන්තියට අමතරව සෑම උපාංග කාණ්ඩයකටම තමන්ගේම පිරිවිතර ලේඛනයක් ඇත. කණ්ඩායම් හත නම්:
පොදු ස්විච් කළ දුරකථන ජාලය (PSTN), හඬ පටි මොඩම්, දුරකථන සහ අනුක්රමික අනුකරණ උපාංග ඇතුළු උපාංග. පර්යන්ත ඇඩැප්ටර සහ දුරකථන ඇතුළුව ඒකාබද්ධ සේවා ඩිජිටල් ජාල (ISDN) උපාංග. IEEE 802 පවුලට සහය දක්වන උපාංග ඇතුළුව ඊතර්නෙට් පාලන ආකෘතිය (ECM) උපාංග (උදා: කේබල් සහ ADSL මොඩම්, WiFi ඇඩැප්ටර). ADSL මොඩම් සහ ATM ජාලවලට සම්බන්ධ අනෙකුත් උපාංග (වැඩපොළ, රවුටර, LAN ස්විච) ඇතුළුව අසමමුහුර්ත මාරු ප්රකාර (ATM) උපාංග. හඬ සහ දත්ත සන්නිවේදනය කළමනාකරණය කිරීමට භාවිතා කරන බහු-ක්රියාකාරී සන්නිවේදන ජංගම දුරකථන උපාංග ඇතුළුව රැහැන් රහිත ජංගම සන්නිවේදන (WMC) උපාංග. ඊතර්නෙට්-රාමු කළ දත්ත හුවමාරු කරන ඊතර්නෙට් අනුකරණ ආකෘතිය (EEM) උපාංග. අධිවේගී ජාල උපාංග ඇතුළුව ජාල පාලන ආකෘතිය (NCM) උපාංග (අධිවේගී පැකට් ප්රවේශ මොඩම්, රේඛීය පර්යන්ත උපකරණ)
CDC සහ ඒ ආශ්රිත උපපංති ක්රියාත්මක කිරීම පහත පිරිවිතරයන්ට අනුකූල වේ:
විශ්ව අනුක්රමික බස්, සන්නිවේදන උපාංග සඳහා පන්ති අර්ථ දැක්වීම්, සංශෝධනය 1.2, 2010 නොවැම්බර් 3. විශ්ව අනුක්රමික බස්, සන්නිවේදන, PSTN උපාංග සඳහා උපපංතිය, සංශෝධනය 1.2, 2007 පෙබරවාරි 9.
USB උපාංග CDC මූලික පන්තිය අවසන්view
සන්නිවේදන හැකියාව ක්රියාත්මක කිරීම සඳහා CDC උපාංගයක් පහත අතුරුමුහුණත් වලින් සමන්විත වේ:
සන්නිවේදන පන්ති අතුරුමුහුණත (CCI) උපාංග කළමනාකරණය සහ විකල්ප වශයෙන් ඇමතුම් කළමනාකරණය සඳහා වගකිව යුතුය.
උපාංග කළමනාකරණය මඟින් උපාංගයේ සාමාන්ය වින්යාසය සහ පාලනය සහ සිදුවීම් සත්කාරකයට දැනුම් දීම සක්රීය කරයි. ඇමතුම් කළමනාකරණය ඇමතුම් ස්ථාපිත කිරීම සහ අවසන් කිරීම සක්රීය කරයි. ඇමතුම් කළමනාකරණය DCI හරහා බහුකාර්ය කළ හැකිය. සියලුම CDC උපාංග සඳහා CCI අනිවාර්ය වේ. එය CDC උපාංගය මඟින් සහාය දක්වන සන්නිවේදන ආකෘතිය නියම කිරීමෙන් CDC ක්රියාකාරිත්වය හඳුනා ගනී. CCI අනුගමනය කරන අතුරුමුහුණත(ය) ශ්රව්ය හෝ වෙළෙන්දා-විශේෂිත අතුරුමුහුණතක් වැනි ඕනෑම නිර්වචනය කරන ලද USB පන්ති අතුරුමුහුණතක් විය හැකිය. වෙළෙන්දා-විශේෂිත අතුරුමුහුණත DCI මගින් විශේෂයෙන් නිරූපණය කෙරේ.
දත්ත පන්ති අතුරුමුහුණත (DCI) දත්ත සම්ප්රේෂණය සඳහා වගකිව යුතුය. සම්ප්රේෂණය වන සහ/හෝ ලැබෙන දත්ත නිශ්චිත එකක් අනුගමනය නොකරයි
ආකෘතිය. දත්ත සන්නිවේදන මාර්ගයකින් අමු දත්ත, හිමිකාර ආකෘතියක් අනුගමනය කරන දත්ත ආදිය විය හැකිය. CCI අනුගමනය කරන සියලුම DCIs යටත් අතුරුමුහුණත් ලෙස දැකිය හැකිය.
CDC උපාංගයක අවම වශයෙන් එක් CCI එකක් සහ ශුන්ය හෝ වැඩි DCI තිබිය යුතුය. එක් CCI එකක් සහ ඕනෑම යටත් DCI එක්ව සත්කාරකයට විශේෂාංගයක් සපයයි. මෙම හැකියාව ශ්රිතයක් ලෙසද හැඳින්වේ. CDC සංයුක්ත උපාංගයක, ඔබට කිහිපයක් තිබිය හැකිය
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
19/174
ඉවරයිview
කාර්යයන්. එබැවින්, රූපයේ දැක්වෙන පරිදි උපාංගය CCI සහ DCI(s) කට්ටල කිහිපයකින් සමන්විත වනු ඇත - CDC සංයුක්ත උපාංගය.
රූපය - CDC සංයුක්ත උපාංගය
CDC උපාංගයක් පහත සඳහන් අන්ත ලක්ෂ්ය සංයෝජනය භාවිතා කිරීමට ඉඩ ඇත:
පෙරනිමි අන්ත ලක්ෂ්යය ලෙස හඳුන්වන පාලන IN සහ OUT අන්ත ලක්ෂ්ය යුගලයක්. විකල්ප තොග හෝ බාධා IN අන්ත ලක්ෂ්යයක්. තොග හෝ සමකාලික IN සහ OUT අන්ත ලක්ෂ්ය යුගලයක්. සිලිකන් ලැබ්ස් USB උපාංග තොගය දැනට සමකාලික අන්ත ලක්ෂ්ය සඳහා සහය නොදක්වන බව සලකන්න.
පහත වගුවේ විවිධ අන්ත ලක්ෂ්යවල භාවිතය සහ ඒවා භාවිතා කරන CDC අතුරුමුහුණත පෙන්වයි.
වගුව - CDC අන්ත ලක්ෂ්ය භාවිතය
අන්ත ලක්ෂ්යය
IN පාලනය කරන්න
පාලනය පිටතට
බාධා හෝ තොග IN තොග හෝ සමකාලික IN තොග හෝ සමකාලික
පිටතට
දිශාව
උපාංගය සත්කාරකත්වයට
උපාංගයට සත්කාරක
උපාංගය සත්කාරකත්වයට
උපාංගය සත්කාරකත්වයට
උපාංගයට සත්කාරක
අතුරු මුහුණත භාවිතය
CCI
ගණන් කිරීම සඳහා සම්මත ඉල්ලීම්, පන්ති-විශේෂිත ඉල්ලීම්, උපාංගය
කළමනාකරණය, සහ විකල්ප වශයෙන් ඇමතුම් කළමනාකරණය.
CCI
ගණන් කිරීම සඳහා සම්මත ඉල්ලීම්, පන්ති-විශේෂිත ඉල්ලීම්, උපාංගය
කළමනාකරණය, සහ විකල්ප වශයෙන් ඇමතුම් කළමනාකරණය.
CCI
මුද්ද හඳුනාගැනීම, අනුක්රමික රේඛා තත්ත්වය, ජාල තත්ත්වය වැනි සිදුවීම් දැනුම්දීම.
DCI
අමු හෝ ආකෘතිගත දත්ත සන්නිවේදනය.
DCI
අමු හෝ ආකෘතිගත දත්ත සන්නිවේදනය.
බොහෝ සන්නිවේදන උපාංග සිදුවීම් ධාරකයට දැනුම් දීම සඳහා බාධා අන්ත ලක්ෂ්යයක් භාවිතා කරයි. USB ප්රොටෝකෝල දෝෂ වලදී හිමිකාර ප්රොටෝකෝලයක් දත්ත නැවත සම්ප්රේෂණය මත රඳා පවතින විට දත්ත සම්ප්රේෂණය සඳහා සමස්ථානික අන්ත ලක්ෂ්ය භාවිතා නොකළ යුතුය. සමස්ථානික සන්නිවේදනයට නැවත උත්සාහ කිරීමේ යාන්ත්රණයක් නොමැති බැවින් එයට ස්වභාවයෙන්ම දත්ත අහිමි විය හැකිය.
ප්රධාන සන්නිවේදන ආකෘති හත උප පංති කිහිපයක් ඇතුළත් වේ. උප පංතියක් මඟින් උපාංග කළමනාකරණය සහ ඇමතුම් කළමනාකරණය හැසිරවීමට උපාංගය CCI භාවිතා කළ යුතු ආකාරය විස්තර කරයි. පහත වගුවේ දැක්වෙන්නේ හැකි සියලුම උප පංති සහ ඒවා අයත් සන්නිවේදන ආකෘතියයි.
වගුව - CDC උපපංති
උපපංතිය
සෘජු රේඛා පාලන ආකෘතිය වියුක්ත පාලන ආකෘතිය
සන්නිවේදන ආකෘතිය
PSTN
PSTN
Exampමෙම උපපංතිය භාවිතා කරන උපාංග ගණන
USB ධාරකය මගින් සෘජුවම පාලනය වන මොඩම් උපාංග
අනුක්රමික අනුකරණ උපාංග, අනුක්රමික විධාන කට්ටලයක් හරහා පාලනය වන මොඩම් උපාංග
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
20/174
ඉවරයිview
උපපංතිය
සන්නිවේදන ආකෘතිය
Exampමෙම උපපංතිය භාවිතා කරන උපාංග ගණන
දුරකථන පාලන ආකෘතිය
PSTN
බහු-නාලිකා පාලන ISDN ආකෘතිය
CAPI පාලන ආකෘතිය ISDN
ඊතර්නෙට් ජාලකරණ ECM පාලන ආකෘතිය
ATM ජාලකරණය
ATM
පාලන ආකෘතිය
රැහැන් රහිත හෑන්ඩ්සෙට් පාලන ආකෘතිය
ඩබ්ලිව්එම්සී
උපාංග කළමනාකරණය WMC
ජංගම සෘජු මාර්ග ආකෘතිය
ඩබ්ලිව්එම්සී
ඔබෙක්ස්
ඩබ්ලිව්එම්සී
ඊතර්නෙට් අනුකරණය EEM ආකෘතිය
ජාල පාලන ආකෘතිය
NCM
හඬ දුරකථන උපාංග
මූලික අනුපාත පර්යන්ත ඇඩැප්ටර, ප්රාථමික අනුපාත පර්යන්ත ඇඩැප්ටර, දුරකථන
මූලික අනුපාත පර්යන්ත ඇඩැප්ටර, ප්රාථමික අනුපාත පර්යන්ත ඇඩැප්ටර, දුරකථන DOC-SIS කේබල් මොඩම, PPPoE අනුකරණයට සහය දක්වන ADSL මොඩම, Wi-Fi ඇඩැප්ටර (IEEE 802.11-පවුල), IEEE 802.3 ඇඩැප්ටර ADSL මොඩම
රැහැන් රහිත උපාංගවලට සම්බන්ධ වන ජංගම පර්යන්ත උපකරණ
රැහැන් රහිත උපාංගවලට සම්බන්ධ වන ජංගම පර්යන්ත උපකරණ රැහැන් රහිත උපාංගවලට සම්බන්ධ වන ජංගම පර්යන්ත උපකරණ
රැහැන් රහිත උපාංගවලට සම්බන්ධ වන ජංගම පර්යන්ත උපකරණ ප්රවාහනයේ ඊළඟ ස්ථරය ලෙස ඊතර්නෙට් රාමු භාවිතා කරන උපාංග. මාර්ගගත කිරීම සහ අන්තර්ජාල සම්බන්ධතා උපාංග සඳහා අදහස් නොකෙරේ ජාලයේ අධිවේගී දත්ත කලාප පළල රැගෙන යන IEEE 802.3 ඇඩැප්ටර
Core වෙතින් 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 port උපාංග ලෙසද හඳුන්වන අනුක්රමික අනුකරණ උපාංග.
ACM උපපංතිය සඳහා උපපංති-විශේෂිත ඉල්ලීම් කිහිපයක් තිබේ. ඒවා ඔබට උපාංගය පාලනය කිරීමට සහ වින්යාස කිරීමට ඉඩ සලසයි. සියලුම ACM ඉල්ලීම්වල සම්පූර්ණ ලැයිස්තුව සහ විස්තරය පිරිවිතරයෙන් සොයාගත හැකිය.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
21/174
ඉවරයිview PSTN උපාංග සඳහා උපපංතිය, සංශෝධනය 1.2, 2007 පෙබරවාරි 9=, 6.2.2 කොටස.
මෙම ලැයිස්තුවෙන්, Silicon Labs9 ACM උපපංතිය පහත සඳහන් දේ සඳහා සහය දක්වයි:
වගුව - සිලිකන් ලැබ්ස් මගින් සහාය දක්වන ACM ඉල්ලීම්
උපපංති ඉල්ලීම් විස්තරය
SetCommවිශේෂාංගය GetCommවිශේෂාංගය පැහැදිලිCommවිශේෂාංගය
දී ඇති සන්නිවේදන විශේෂාංගයක් සඳහා සැකසුම් පාලනය කිරීමට සත්කාරක මෙම ඉල්ලීම යවයි. අනුක්රමික අනුකරණය සඳහා භාවිතා නොවේ.
දී ඇති සන්නිවේදන විශේෂාංගයක් සඳහා වත්මන් සැකසුම් ලබා ගැනීමට සත්කාරක මෙම ඉල්ලීම යවයි. අනුක්රමික අනුකරණය සඳහා භාවිතා නොවේ.
දී ඇති සන්නිවේදන විශේෂාංගයක් සඳහා සැකසුම් හිස් කිරීමට සත්කාරක මෙම ඉල්ලීම යවයි. අනුක්රමික අනුකරණය සඳහා භාවිතා නොවේ.
SetLineCoding (රේඛා කේතනය)
ACM උපාංග සැකසුම් වින්යාස කිරීම සඳහා සත්කාරක සමාගම මෙම ඉල්ලීම යවයි: බෝඩ් අනුපාතය, නැවතුම් බිටු ගණන, සමානාත්මතා වර්ගය සහ දත්ත බිටු ගණන. අනුක්රමික අනුකරණයක් සඳහා, විවෘත අථත්ය COM පෝට් එකක් සඳහා අනුක්රමික සැකසුම් වින්යාස කරන සෑම අවස්ථාවකම මෙම ඉල්ලීම අනුක්රමික පර්යන්තයක් මඟින් ස්වයංක්රීයව යවනු ලැබේ.
ලයින් කේතනය ලබා ගන්න
වත්මන් ACM සැකසුම් (baud අනුපාතය, නැවතුම් බිටු, සමානාත්මතාවය, දත්ත බිටු) ලබා ගැනීම සඳහා සත්කාරක මෙම ඉල්ලීම යවයි. අනුක්රමික අනුකරණයක් සඳහා, අථත්ය COM port විවෘත කිරීමේදී අනුක්රමික පර්යන්ත මෙම ඉල්ලීම ස්වයංක්රීයව යවයි.
SetControlLineState ධාරකය මෙම ඉල්ලීම අර්ධ-ඩුප්ලෙක්ස් මොඩම සඳහා වාහකය පාලනය කිරීමට යවන අතර දත්ත පර්යන්ත උපකරණ (DTE) සූදානම්ද නැද්ද යන්න දක්වයි. අනුක්රමික අනුකරණයේදී, DTE යනු අනුක්රමික පර්යන්තයකි. අනුක්රමික අනුකරණයක් සඳහා, ඇතැම් අනුක්රමික පර්යන්ත මඟින් පාලන කට්ටලය සමඟ මෙම ඉල්ලීම යැවීමට ඔබට ඉඩ සලසයි.
සෙට්බ්රේක්
RS-232 විලාස බිඳීමක් ජනනය කිරීම සඳහා සත්කාරක මෙම ඉල්ලීම යවයි. අනුක්රමික අනුකරණයක් සඳහා, ඇතැම් අනුක්රමික පර්යන්ත ඔබට මෙම ඉල්ලීම යැවීමට ඉඩ දෙයි.
Silicon Labs9 ACM උපපංතිය, වත්මන් අනුක්රමික රේඛා තත්ත්වය පිළිබඳව ධාරකයට දැනුම් දීමට interrupt IN අන්ත ලක්ෂ්යය භාවිතා කරයි. අනුක්රමිකය
රේඛා තත්වය යනු සත්කාරකයට දැනුම් දෙන බිට්මැප් එකකි:
අධික ලෙස ධාවනය වීම නිසා දත්ත ඉවත දමන ලදී සමානාත්මතා දෝෂය රාමු කිරීමේ දෝෂය වළල්ලේ සංඥා අනාවරණයේ තත්වය බිඳීම් අනාවරණය කිරීමේ යාන්ත්රණයේ තත්වය සම්ප්රේෂණ වාහකයේ තත්වය ග්රාහක වාහක අනාවරණයේ තත්වය
Silicon Labs9 ACM උපපංති ක්රියාත්මක කිරීම පහත පිරිවිතරයන්ට අනුකූල වේ:
විශ්ව අනුක්රමික බස්, සන්නිවේදන, PSTN උපාංග සඳහා උපපංතිය, සංශෝධනය 1.2, 2007 පෙබරවාරි 9.
USB උපාංග CDC ACM පන්ති වින්යාසය
මෙම කොටසින් CDC ACM පන්තිය (සන්නිවේදන උපාංග පන්තිය, වියුක්ත පාලන ආකෘතිය) වින්යාස කරන්නේ කෙසේද යන්න සාකච්ඡා කෙරේ. වින්යාස පරාමිතීන් කාණ්ඩ දෙකක් ඇත:
USB උපාංග CDC ACM පන්ති යෙදුම් විශේෂිත වින්යාසයන් USB උපාංග CDC ACM පන්ති අවස්ථා වින්යාසයන්
USB උපාංග CDC ACM පන්තියේ යෙදුම් විශේෂිත වින්යාසයන්
CDC මූලික පන්තියේ ACM උපපංතිය
CDC මූලික පන්තිය
පළමුව, Silicon Labs USB උපාංග CDC පන්ති මොඩියුලය භාවිතා කිරීමට, ඔබේ යෙදුම් අවශ්යතා අනුව CDC සම්පාදන-කාල වින්යාසය #define-s සකස් කිරීමට ඔබට අවශ්ය වනු ඇත. ඒවා sl_usbd_core_config.h ශීර්ෂය තුළ නැවත සමූහගත කර ඇත. file CDC අංශය යටතේ. ඔවුන්ගේ අරමුණ වන්නේ USB CDC වස්තු කොපමණ ප්රමාණයක් වෙන් කළ යුතුද යන්න පිළිබඳව USB උපාංග මොඩියුලයට දැනුම් දීමයි.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
22/174
ඉවරයිview
මෙම වින්යාස ව්යුහයේ ඇති එක් එක් වින්යාස ක්ෂේත්රය පහත වගුවේ විස්තර කෙරේ.
වගුව - USB උපාංග CDC වින්යාසය අර්ථ දක්වයි
මානකරන නම
SL_USBD_CDC_CL S_INSTANCE_QUANT ITY ලෙස
SL_USBD_CDC_CONF IGURATION_QUANTI
TY
SL_USBD_CDC_දත්ත _අන්තර්ජාලය_QUANTI
TY
විස්තරය
ශ්රිතයට ඇමතුමක් හරහා ඔබ වෙන් කරන පන්ති අවස්ථා ගණන
sl_usbd_cdc_acm_create_instance() .
වින්යාස ගණන. SL_usbd_cdc_acm_add_to_configuration() හි ඇති aaaa වින්යාස එකකට හෝ කිහිපයකට ACM පන්ති අවස්ථා එකතු කළ හැක.
සියලුම CDC ශ්රිත සඳහා මුළු දත්ත අතුරුමුහුණත් ගණන (DCI). සෑම CDC ACM ශ්රිතයක්ම aaaaaaaaaa ශ්රිතයට 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 ශ්රිතය sl_usbd_cdc_acm_create_instance() ලෙස අමතන්න. මෙහි විස්තර කර ඇති පරිදි ඔහුගේ ශ්රිතය වින්යාස තර්ක තුනක් භාවිතා කරයි.
රේඛා_රාජ්ය_අන්තරය
මෙය ඔබගේ CDC ACM අනුක්රමික පන්ති අවස්ථාව T aa සත්කාරකයට රේඛා තත්ව දැනුම්දීම් වාර්තා කරන පරතරය (මිලි තත්පර වලින්) වේ. ඔහුගේ v lue බලය දෙකක (1, 2, 4, 8, 16, ආදිය) විය යුතුය.
අමතන්න_mgmt_හැකියාවන්
ඇමතුම් කළමනාකරණ හැකියාවන් බිට්මැප්. බිට්මැප් එකේ විය හැකි අගයන් පහත පරිදි වේ:
අගය (බිට්)
SL_USBD_ACM_SERIAL_CALL_MGMT_DEV
SL_USBD_ACM_SERIAL_CALL_MGMT_DATA_CCI _DCI
විස්තරය
උපාංගය ඇමතුම් කළමනාකරණයම හසුරුවයි. උපාංගයට දත්ත පන්ති අතුරුමුහුණතක් හරහා ඇමතුම් කළමනාකරණ තොරතුරු යැවීමට/ලැබීමට හැකිය.
p_acm_callbacks_ආපසු
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
23/174
ඉවරයිview
aa M aa p_acm_callbacks යනු sl_usbd_cdc_acm_callbacks_t වර්ගයේ ව්යුහයට දර්ශකයකි. එහි අරමුණ වන්නේ CDC ACM සිදුවීමක් සිදු වූ විට CDC AC Cl ss වෙත ඇමතුම් ආපසු ගැනීමේ ශ්රිත කට්ටලයක් ලබා දීමයි. සියලුම ඇමතුම් ආපසු ගැනීම් අනිවාර්ය නොවන අතර ඇමතුම් ආපසු ගැනීම අවශ්ය නොවන විට ඇමතුම් ආපසු ගැනීමේ ව්යුහ විචල්යය තුළ ශුන්ය දර්ශකයක් (NULL) සම්මත කළ හැක. පහත වගුව මෙම වින්යාස ව්යුහයේ ඇති සෑම වින්යාස ක්ෂේත්රයක්ම විස්තර කරයි.
වගුව – sl_usbd_cdc_acm _callbacks_t වින්යාස ව්යුහය
ක්ෂේත්ර
විස්තරය
.සක්රීය කරන්න
USB පන්ති අවස්ථාව සක්රිය කර ඇති විට කැඳවනු ලැබේ
සාර්ථකව.
.අක්රිය කරන්න
USB පන්ති අවස්ථාව අක්රිය කර ඇති විට කැඳවනු ලැබේ.
.line_control_changed රේඛා පාලන වෙනසක් ලැබුණු විට කැඳවනු ලැබේ.
line_coding_changed රේඛා කේතන වෙනසක් ලැබුණු විට කැඳවනු ලැබේ.
ශ්රිත අත්සන
අවලංගු app_usbd_cdc_acm_enable(uint8_t subclass_nbr);
අවලංගු app_usbd_cdc_acm_disable(uint8_t subclass_nbr);
void app_usbd_cdc_acm_line_control_changed(uint8_t subclass_nbr, uint8_t event, uint8_t event_chngd); bool app_usbd_cdc_acm_line_coding_changed(uint8_t subclass_nbr, subclass_nbr, sl_usbd_cdc_acm_line_coding_t
*p_රේඛා_කේතනය
ආපසු ඇමතුම් කාර්යයන් සඳහා සිදුවීම් දැනුම්දීම් ආපසු ඇමතුම් ලියාපදිංචි කිරීමේ කොටස බලන්න example.
USB උපාංග CDC ACM පන්ති ක්රමලේඛන මාර්ගෝපදේශය
මෙම කොටස CDC වියුක්ත පාලන ආකෘති පන්තිය භාවිතා කරන ආකාරය පැහැදිලි කරයි. USB උපාංග CDC ACM පන්තිය ආරම්භ කිරීම ඔබේ උපාංගයට USB උපාංග CDC ACM පන්ති අවස්ථාවක් එක් කිරීම CDC ACM පන්තිය භාවිතා කරමින් සන්නිවේදනය කිරීම
USB උපාංග CDC ACM පන්තිය ආරම්භ කිරීම
ඔබගේ උපාංගයට CDC ACM පන්ති ක්රියාකාරීත්වය එක් කිරීමට, ඔබ මුලින්ම sl_usbd_cdc_init() nd sl_usbd_cdc_acm_init() ශ්රිතයන් ඇතුළත් කිරීමෙන් CDC මූලික පන්තිය සහ ACM උප පන්තිය ආරම්භ කළ යුතුය. පහත උදාහරණයෙන් defult rguments භාවිතයෙන් sl_usbd_cdc_init() nd sl_usbd_cdc_acm_init() ll කරන්නේ කෙසේදැයි පෙන්වයි.
Example – CDC ACM පන්තිය ආරම්භ කිරීම
sl_status_t තත්ත්වය;
status = sl_usbd_cdc_init(); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */
}
status = sl_usbd_cdc_acm_init(); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
ඔබගේ උපාංගයට USB උපාංග CDC ACM පන්ති අවස්ථාවක් එක් කිරීම
ඔබගේ උපාංගයට CDC ACM පන්ති ක්රියාකාරිත්වය එක් කිරීමට, ඔබ අවස්ථාවක් නිර්මාණය කළ යුතු අතර, පසුව එය ඔබගේ උපාංගයේ වින්යාසයන් වෙත එක් කළ යුතුය.
CDC ACM පන්ති අවස්ථාවක් නිර්මාණය කිරීම
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
24/174
ඉවරයිview
ඔබගේ උපාංගයේ වින්යාසයන්ට CDC ACM පන්ති අවස්ථාව එකතු කිරීම සිදුවීම් දැනුම්දීම් ආපසු ඇමතුම් ලියාපදිංචි කිරීම
CDC ACM පන්ති අවස්ථාවක් නිර්මාණය කිරීම
aa M aaa sl_usbd_cdc_acm_create_instance() ශ්රිතය cll කිරීමෙන් CDC AC cl ss instnce නිර්මාණය කරන්න. T aaa M aaa පහත උදාහරණයෙන් sl_usbd_cdc_acm_create_instance() CDC AC cl ss 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, &subclass_nbr);
(තත්වය ! SL_STATUS_OK) නම් { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */
}
ඔබගේ උපාංගයේ වින්යාසයන් වෙත CDC ACM පන්ති අවස්ථාව එක් කිරීම
ඔබ CDC ACM පන්ති අවස්ථාවක් නිර්මාණය කළ පසු, ඔබට එය ශ්රිතය ඇමතීමෙන් වින්යාසයකට එක් කළ හැකිය.
sl_usbd_cdc_acm_add_to_configuration() .
පහත උදාහරණයෙන් sl_usbd_cdc_acm_add_to_configuration() cll කරන්නේ කෙසේදැයි පෙන්වයි.
Example – USBD ACM වෙත අමතන්න sl_usbd_cdc_acm_add_to_configuration()
sl_status_t තත්ත්වය;
තත්ත්වය = sl_usbd_cdc_acm_add_to_configuration(subclass_nbr,
(1)
(config_nbr_fs); (config_nbr_fs) ()
(2)
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
aaa (1) sl_usbd_cdc_acm_create_instance() මගින් ආපසු ලබා දුන් වින්යාසයට Cl ss අංකය dd වෙත යොමු කරන්න. (2) වින්යාස අංකය (මෙහි එය සම්පූර්ණ වේග වින්යාසයකට එකතු කිරීම).
සිදුවීම් දැනුම්දීම් ආපසු ඇමතුම් ලියාපදිංචි කිරීම
CDC ACM Serial පන්තියට ඔබගේ යෙදුමට රේඛා පාලනයේ හෝ කේතනයේ සිදුවන ඕනෑම වෙනස්කමක් දැනුම්දීම් ආපසු ඇමතුම් ශ්රිත හරහා දැනුම් දිය හැක. ACM අවස්ථා නිර්මාණය අතරතුර ආපසු ඇමතුම් ශ්රිත ව්යුහයක් තර්කයක් ලෙස සම්මත කළ හැක. එම ආපසු ඇමතුම් විකල්ප බව සලකන්න. උදා.ample – CDC ACM Callbacks ලියාපදිංචිය මඟින් Callback ලියාපදිංචි කිරීමේ කාර්යයන් භාවිතා කිරීම නිරූපණය කෙරේ. උදා.ample – CDC ACM ආපසු ඇමතුම් ක්රියාත්මක කිරීම හිටපු අයෙකු පෙන්වයිampආපසු ඇමතුම් කාර්යයන් ක්රියාත්මක කිරීම පිළිබඳ le.
Example – CDC ACM ආපසු ඇමතුම් ලියාපදිංචිය
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
25/174
ඉවරයිview
uint8_t උපපංතිය_nbr; sl_status_t තත්ත්වය;
sl_usbd_cdc_acm_callbacks_t sli_usbd_cdc_acm_callbacks = { app_usbd_cdc_acm_connect, app_usbd_cdc_acm_disconnect, app_usbd_cdc_acm_line_control_changed, app_usbd_cdc_acm_line_coding_changed, };
තත්ත්වය = 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);
if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */ }
Example – CDC ACM ආපසු ඇමතුම් ක්රියාත්මක කිරීම
bool app_usbd_cdc_acm_line_coding_changed (uint8_t)
උපපංතිය_nbr,
sl_usbd_cdc_acm_line_coding_t *p_line_coding)
{
uint32_t බෝඩ්රේට්_නව;
uint8_t සමානාත්මතාවය_නව;
uint8_t නැවතුම්_බිට්_නව;
uint8_t දත්ත_බිටු_නව;
/* කළ යුතු දේ නව රේඛා කේතනය යොදන්න.*/ 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)
}
void app_usbd_cdc_acm_line_control_changed (uint8_t subclass_nbr, uint8_t event, uint8_t event_changed)
{ බූල් rts_state; බූල් rts_state_changed; බූල් dtr_state; බූල් dtr_state_changed; බූල් brk_state; බූල් brk_state_changed;
/* 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) ? true : false;
}
(1) රේඛා කේතනය යෙදීම අසාර්ථක වුවහොත් මෙම ශ්රිතයට අසත්යය ආපසු ලබා දීම වැදගත් වේ. එසේ නොමැතිනම්, සත්ය ආපසු ලබා දෙන්න.
CDC ACM පන්තිය භාවිතයෙන් සන්නිවේදනය කිරීම
අනුක්රමික තත්ත්වය
රේඛා කේතනය රේඛා පාලනය
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
26/174
ඉවරයිview
රේඛීය රාජ්ය උපපංති අවස්ථා සන්නිවේදනය
අනුක්රමික තත්ත්වය
රේඛා කේතනය
USB සත්කාරකය CDC ACM උපාංගයේ රේඛා කේතනය (බෝඩ් අනුපාතය, සමානාත්මතාවය, ආදිය) පාලනය කරයි. අවශ්ය විටෙක, රේඛා කේතනය සැකසීම සඳහා යෙදුම වගකිව යුතුය. පහත වගුවේ විස්තර කර ඇති පරිදි වත්මන් රේඛා කේතනය ලබා ගැනීමට සහ සැකසීමට කාර්යයන් දෙකක් සපයා ඇත.
වගුව - CDC ACM රේඛා කේතීකරණ කාර්යයන්
කාර්යය
sl_usbd_cdc_acm_g e t_line _co d ing ()
sl_usbd_cdc_acm_s e t_line _co d ing ()
විස්තරය
ඔබගේ යෙදුමට SetLineCoding ඉල්ලීම් සහිත සත්කාරකයෙන් හෝ sl_usbd_cdc_acm_set_line_coding() ශ්රිතය සමඟින් වත්මන් රේඛා කේතන සැකසුම් සකසා ගත හැක.
ඔබගේ යෙදුමට රේඛා කේතනය සැකසිය හැක. GetLineCoding ඉල්ලීම සමඟ සත්කාරකයට සැකසුම් ලබා ගත හැක.
රේඛීය පාලනය
USB සත්කාරකය CDC ACM උපාංගයේ රේඛා පාලනය (RTS සහ DTR අල්ෙපෙනති, බිඳුම් සංඥා සහ යනාදිය) පාලනය කරයි. අවශ්ය විටෙක, රේඛා පාලන යෙදීම සඳහා ඔබේ යෙදුම වගකිව යුතුය. පහත වගුවේ විස්තර කර ඇති පරිදි වත්මන් රේඛා පාලන ලබා ගැනීමට සහ සැකසීමට ශ්රිතයක් සපයනු ලැබේ.
වගුව - CDC ACM රේඛා පාලන කාර්යයන්
කාර්යය
sl_usb d _cd c_acm_g e t_line _co ntr o l_state ()
ඔබගේ යෙදුමට SetControlLineState ඉල්ලීම සමඟ සත්කාරක විසින් සකසා ඇති වත්මන් පාලන රේඛා තත්ත්වය ලබා ගත හැක.
රේඛීය තත්ත්වය
USB සත්කාරකය රේඛා තත්ත්වය නිතිපතා කාල පරතරයකින් ලබා ගනී. ඔබේ යෙදුම වෙනස් වන සෑම අවස්ථාවකම රේඛා තත්ත්වය යාවත්කාලීන කළ යුතුය. අවශ්ය විටෙක, රේඛා තත්ත්වය සැකසීම සඳහා ඔබේ යෙදුම වගකිව යුතුය. පහත වගුවේ විස්තර කර ඇති පරිදි වත්මන් රේඛා පාලනයන් ලබා ගැනීමට සහ සැකසීමට කාර්යයන් දෙකක් සපයනු ලැබේ.
වගුව - CDC ACM රේඛා ප්රමිතියේ කාර්යයන්
කාර්යය
sl_usb d _cd c_acm_se t _line _state _e ven nt()
sl_usbd_cdc_acm_cle ar_line _state _e ven nt()
ඔබගේ යෙදුමට ඕනෑම රේඛීය තත්ව සිදුවීමක්(සිදුවීම්) සැකසිය හැක. රේඛීය තත්ත්වය සකසන අතරතුර, අනුක්රමික රේඛා තත්ත්වයේ වෙනසක් පිළිබඳව දැනුම් දීම සඳහා ධාරකය වෙත අතුරු බිඳීමේ IN හුවමාරුවක් යවනු ලැබේ.
යෙදුමට රේඛීය තත්වයේ සිදුවීම් දෙකක් ඉවත් කළ හැකිය: සම්ප්රේෂණ වාහකය සහ ග්රාහක වාහක අනාවරණය. අනෙකුත් සියලුම සිදුවීම් ACM අනුක්රමික අනුකරණ උපපංතිය මගින් ස්වයං-නිෂ්කාශනය කරනු ලැබේ.
උපපංති අවස්ථා සන්නිවේදනය
සිලිකන් ලැබ්ස් හි ACM උපපංතිය සත්කාරක සමාගම සමඟ සන්නිවේදනය කිරීම සඳහා පහත සඳහන් කාර්යයන් ඉදිරිපත් කරයි. functions9 පරාමිතීන් පිළිබඳ වැඩි විස්තර සඳහා, CDC ACM උපපංති ශ්රිත යොමුව බලන්න.
කාර්යය නම
sl_usb d _cd c_acm_ නැවත දැන්වීම () sl_usb d _cd c_acm_write ()
මෙහෙයුම
තොග OUT අන්ත ලක්ෂ්යයක් හරහා ධාරකයෙන් දත්ත ලබා ගනී. මෙම ශ්රිතය අවහිර කරමින් පවතී. තොග IN අන්ත ලක්ෂ්යයක් හරහා ධාරකයට දත්ත යවයි. මෙම ශ්රිතය අවහිර කරමින් පවතී.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
27/174
ඉවරයිview
වගුව - CDC ACM සන්නිවේදන API සාරාංශය aaaaa sl_usbd_cdc_acm_read() nd sl_usbd_cdc_acm_write() සමමුහුර්ත සන්නිවේදනයක් සපයයි, එය tr nsfer අවහිර කරන බව පෙන්නුම් කරයි. වෙනත් වචන වලින් කිවහොත්, ශ්රිතය ඇමතීමෙන් පසු, දෝෂයක් සහිතව හෝ නොමැතිව මාරු කිරීම සම්පූර්ණ වන තෙක් යෙදුම අවහිර කරයි. සදහටම බලා සිටීම වළක්වා ගැනීම සඳහා කල් ඉකුත්වීමක් නියම කළ හැකිය. උදා.ampපහත දැක්වෙන්නේ කියවීමේ සහ ලිවීමේ හිටපු අයෙකි.ample යනු තොග OUT අන්ත ලක්ෂ්යය භාවිතයෙන් ධාරකයෙන් දත්ත ලබා ගන්නා අතර තොග IN අන්ත ලක්ෂ්යය භාවිතයෙන් ධාරකයට දත්ත යවයි.
ලැයිස්තුගත කිරීම - අනුක්රමික කියවීම සහ ලිවීම Example
__පෙළගැස්වූ(4) uint8_t rx_buf[2];
__පෙළගැස්වූ(4) uint8_t tx_buf[2];
uint32_t
xfer_len; მარ
sl_status_t_අහස_තත්වය
තත්ත්වය;
තත්ත්වය = sl_usbd_cdc_acm_read(subclass_nbr,
(1)
rx_buf, (රැකියා_බෆ්,)
(2)
2u,
0u,
(3)
&xfer_len); ('සහ')
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
තත්ත්වය = sl_usbd_cdc_acm_write(subclass_nbr,
(1)
ටක්_බෆ්,
(4)
2u,
0u,
(3)
&xfer_len); ('සහ')
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
T aaaaa M (1) sl_usbd_cdc_acm_create_instance() සමඟ නිර්මාණය කරන ලද cl ss instnce අංකය, නිසි තොග OUT හෝ IN අන්ත ලක්ෂ්යයට මාරු කිරීම සඳහා AC උප පන්තියට අභ්යන්තර යොමුවක් සපයයි. (2) ඔබගේ යෙදුම ශ්රිතයට ලබා දී ඇති බෆරය සියලු දත්ත සඳහා ඉඩ සැලසීමට තරම් විශාල බව සහතික කළ යුතුය. එසේ නොමැතිනම්, සමමුහුර්ත කිරීමේ ගැටළු ඇති විය හැක. (3) අනන්ත අවහිර කිරීමේ තත්වයක් වළක්වා ගැනීම සඳහා, මිලි තත්පර වලින් ප්රකාශිත කල් ඉකුත්වීමක් සඳහන් කරන්න. 809 ක අගයක් යෙදුම් කාර්යය සදහටම රැඳී සිටීමට සලස්වයි. (4) යෙදුම ආරම්භක සම්ප්රේෂණ බෆරය සපයයි.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
28/174
ඉවරයිview
ඉවරයිview
USB උපාංග HID පන්තිය
USB උපාංග HID පන්තිය අවසන්view USB උපාංගය HID පන්ති සම්පත් Core USB උපාංගයෙන් අවශ්ය වේ HID පන්ති වින්යාසය USB උපාංගය HID පන්ති ක්රමලේඛන මාර්ගෝපදේශය HID ආවර්තිතා ආදාන වාර්තා කාර්යය
මෙම කොටසේ Silicon Labs USB උපාංගය මඟින් සහාය දක්වන මානව අතුරුමුහුණත් උපාංග (HID) පන්තිය විස්තර කෙරේ.
HID පන්තියට පරිගණක මෙහෙයුම් පාලනය කිරීමට මිනිසුන් විසින් භාවිතා කරන උපාංග ඇතුළත් වේ, එනම් යතුරුපුවරු, මීයන්, යොමු කිරීමේ උපාංග සහ ක්රීඩා උපාංග.
HID පන්තිය බොත්තම්, ස්විච, බොත්තම් සහ ස්ලයිඩර් වැනි පාලක අඩංගු සංයුක්ත උපාංගයක ද භාවිතා කළ හැක.ampශ්රව්ය හෙඩ්සෙට් එකක le, mute සහ volume controls පාලනය කරනු ලබන්නේ හෙඩ්සෙට් එකේ HID ශ්රිතය මගිනි. HID පන්තියට ඕනෑම අරමුණක් සඳහා දත්ත හුවමාරු කළ හැක්කේ පාලනය සහ බාධා මාරු කිරීම් පමණි.
HID පන්තිය පැරණිතම සහ බහුලව භාවිතා වන USB පන්ති වලින් එකකි. සියලුම ප්රධාන සත්කාරක මෙහෙයුම් පද්ධති HID උපාංග කළමනාකරණය කිරීම සඳහා ස්වදේශීය ධාවකයක් සපයයි, එම නිසා විවිධ වෙළෙන්දා-විශේෂිත උපාංග HID පන්තිය සමඟ ක්රියා කරයි. මෙම පන්තියට LED, ශ්රව්ය, ස්පර්ශ ප්රතිපෝෂණ වැනි විවිධ ආකාරයේ ප්රතිදාන අයිතම ද ඇතුළත් වේ.
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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
29/174
ඉවරයිview
ධාරකයක් සහ HID උපාංගයක් වාර්තා භාවිතයෙන් දත්ත හුවමාරු කරයි. HID උපාංගයේ පාලන සහ අනෙකුත් භෞතික ආයතන පිළිබඳ තොරතුරු ලබා දෙන ආකෘතිගත දත්ත වාර්තාවක අඩංගු වේ. පාලනයක් පරිශීලකයා විසින් හැසිරවිය හැකි අතර උපාංගයේ අංගයක් ක්රියාත්මක කරයි. උදාහරණයක් ලෙසample, පාලනයක් මූසිකයක හෝ යතුරුපුවරුවක බොත්තමක්, ස්විචයක් යනාදිය විය හැකිය. අනෙකුත් ආයතන ඇතැම් උපාංග9 විශේෂාංගවල තත්ත්වය පිළිබඳව පරිශීලකයාට දැනුම් දෙයි. උදාහරණයක් ලෙසample, යතුරුපුවරුවක ඇති LED මඟින් පරිශීලකයාට කැප්ස් ලොක් ක්රියාත්මක වීම, සංඛ්යා යතුරු පෑඩය සක්රිය වීම යනාදිය පිළිබඳව දැනුම් දෙයි.
වාර්තා දත්තයක ආකෘතිය සහ භාවිතය සත්කාරක සමාගම විසින් තේරුම් ගනු ලබන්නේ වාර්තා විස්තරයක අන්තර්ගතය විශ්ලේෂණය කිරීමෙනි. අන්තර්ගතය විශ්ලේෂණය කිරීම විග්රහ කරන්නෙකු විසින් සිදු කරනු ලැබේ. වාර්තා විස්තරකය උපාංගයක එක් එක් පාලනය මඟින් සපයන දත්ත විස්තර කරයි. එය උපාංගය පිළිබඳ තොරතුරු කොටස් වන අයිතම වලින් සමන්විත වන අතර 1-බයිට් උපසර්ගයකින් සහ විචල්ය-දිගකින් සමන්විත වේ.
දත්ත. අයිතම ආකෘතිය පිළිබඳ වැඩි විස්තර සඳහා, බලන්න
1.11=, 5.6 සහ 6.2.2 වගන්ති.
ප්රධාන අයිතම වර්ග තුනක් තිබේ:
ප්රධාන අයිතමය ඇතැම් දත්ත ක්ෂේත්ර වර්ග නිර්වචනය කරයි හෝ කාණ්ඩ කරයි.
ගෝලීය අයිතමය පාලනයක දත්ත ලක්ෂණ විස්තර කරයි.
දේශීය අයිතමය පාලනයක දත්ත ලක්ෂණ විස්තර කරයි.
එක් එක් අයිතම වර්ගය විවිධ ශ්රිත මගින් අර්ථ දක්වා ඇත. අයිතම ශ්රිතයක් a ලෙසද හැඳින්විය හැක. tag. අයිතම ශ්රිතයක් ප්රධාන අයිතම වර්ග තුනෙන් එකකට අයත් උප අයිතමයක් ලෙස දැකිය හැකිය. පහත වගුවේ කෙටි විස්තරයක් සපයයිview එක් එක් අයිතම වර්ගයෙහි අයිතම9s ශ්රිතවල. එක් එක් කාණ්ඩයේ අයිතම පිළිබඳ සම්පූර්ණ විස්තරයක් සඳහා, බලන්න
වගුව – එක් එක් අයිතම වර්ගය සඳහා අයිතමයේ ක්රියාකාරී විස්තරය
අයිතම අයිතම වර්ගය ශ්රිතය
විස්තරය
ප්රධාන ආදානය
භෞතික පාලන එකක් හෝ කිහිපයක් මඟින් සපයන දත්ත පිළිබඳ තොරතුරු විස්තර කරයි.
ප්රධාන ප්රතිදානය උපාංගයට යවන ලද දත්ත විස්තර කරයි.
ප්රධාන ලක්ෂණය
උපාංගයේ හෝ එහි එක් සංරචකයක සමස්ත හැසිරීමට බලපාන උපාංගයට යවන ලද හෝ ලැබුණු උපාංග වින්යාස තොරතුරු විස්තර කරයි.
ප්රධාන එකතුවේ කණ්ඩායම් ආශ්රිත අයිතම (ආදානය, ප්රතිදානය හෝ විශේෂාංගය).
එකතුවක් වසා දැමීමේ ප්රධාන අවසානය. එකතුව
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
30/174
ඉවරයිview
අයිතම අයිතම වර්ගය ශ්රිතය
විස්තරය
ගෝලීය භාවිත පිටුව
උපාංගය තුළ ඇති ශ්රිතයක් හඳුනා ගනී.
ගෝලීය තාර්කික තාර්කික ඒකකවල වාර්තා කරන ලද අගයන්හි පහළ සීමාව අර්ථ දක්වයි. අවම
ගෝලීය තාර්කික තාර්කික ඒකකවල වාර්තා කරන ලද අගයන්හි ඉහළ සීමාව අර්ථ දක්වයි. උපරිම
ගෝලීය භෞතික භෞතික ඒකකවල වාර්තා කරන ලද අගයන්හි පහළ සීමාව අර්ථ දක්වයි, එනම් භෞතික ඒකකවලින් ප්රකාශිත තාර්කික අවම අවම අගයයි.
ගෝලීය භෞතික භෞතික ඒකකවල වාර්තා කරන ලද අගයන්හි ඉහළ සීමාව අර්ථ දක්වයි, එනම් භෞතික ඒකකවලින් ප්රකාශිත තාර්කික උපරිම උපරිමයයි.
ගෝලීය ඒකකය
10 පාදයේ ඒකක ඝාතකය දක්වයි. ඝාතකය -8 සිට +7 දක්වා පරාසයක පවතී.
ඝාතකයා
ගෝලීය ඒකකය
වාර්තා කරන ලද අගයන්හි ඒකකය දක්වයි. උදාහරණයක් ලෙස, දිග, ස්කන්ධය, උෂ්ණත්ව ඒකක ආදිය.
ගෝලීය වාර්තා ප්රමාණය
වාර්තා ක්ෂේත්රවල ප්රමාණය බිටු වලින් දක්වයි.
ගෝලීය වාර්තා හැඳුනුම්පත මඟින් නිශ්චිත වාර්තාවකට එකතු කරන ලද උපසර්ගය දක්වයි.
ගෝලීය වාර්තා ගණන
අයිතමයක් සඳහා දත්ත ක්ෂේත්ර ගණන දක්වයි.
ගෝලීය තල්ලුව
ගෝලීය අයිතම තත්ව වගුවේ පිටපතක් CPU තොගය මත තබයි.
ගෝලීය පොප්
අයිතම තත්ව වගුව තොගයේ අවසාන ව්යුහය සමඟ ප්රතිස්ථාපනය කරයි.
දේශීය භාවිතය
භාවිත පිටුවක් තුළ නිශ්චිත භාවිතයක් නම් කිරීම සඳහා දර්ශකයක් නියෝජනය කරයි. එය නිශ්චිත පාලනයක් හෝ පාලන සමූහයක් සඳහා වෙළෙන්දා විසින් යෝජනා කරන ලද භාවිතය පෙන්නුම් කරයි. භාවිතයක් මඟින් යෙදුම් සංවර්ධකයෙකුට පාලනයක් ඇත්ත වශයෙන්ම මනින්නේ කුමක්ද යන්න පිළිබඳ තොරතුරු සපයයි.
දේශීය භාවිතය
අරාවක් හෝ බිට්මැප් එකක් සමඟ සම්බන්ධ ආරම්භක භාවිතය අර්ථ දක්වයි.
අවම
දේශීය භාවිතය
අරාවක් හෝ බිට්මැප් එකක් සමඟ සම්බන්ධිත අවසන් භාවිතය අර්ථ දක්වයි.
උපරිම
දේශීය නිර්මාණකරු පාලනයක් සඳහා භාවිතා කරන ශරීර කොටස තීරණය කරයි. දර්ශකය භෞතික අංශයේ නිර්මාණකරුවෙකු වෙත යොමු කරයි.
දර්ශකය
විස්තර කරන්නා.
දේශීය නිර්මාණකරු අරාවක් හෝ බිට්මැප් එකක් සමඟ සම්බන්ධිත ආරම්භක නිර්මාණකරුගේ දර්ශකය අර්ථ දක්වයි. අවම
දේශීය නිර්මාණකරු අරාවක් හෝ බිට්මැප් එකක් සමඟ සම්බන්ධිත අවසන් නිර්මාණකරුගේ දර්ශකය අර්ථ දක්වයි. උපරිම
දේශීය තන්තු දර්ශකය
String විස්තරකයක් සඳහා String දර්ශකය. එය විශේෂිත අයිතමයක් හෝ පාලනයක් සමඟ String එකක් සම්බන්ධ කිරීමට ඉඩ සලසයි.
දේශීය අනුලකුණු වැල
අරාවක පාලක සඳහා අනුක්රමික තන්තු සමූහයක් පැවරීමේදී පළමු තන්තු දර්ශකය නියම කරයි.
අවම හෝ බිට්මැප්.
දේශීය දේශීය
අනුලකුණු උපරිමය
පරිසීමකය
අරාවක හෝ බිට්මැප් එකක පාලක සඳහා අනුක්රමික තන්තු සමූහයක් පැවරීමේදී අවසාන තන්තු දර්ශකය නියම කරයි.
දේශීය අයිතම කට්ටලයක ආරම්භය හෝ අවසානය අර්ථ දක්වයි.
පාලන දත්තයක් අවම වශයෙන් පහත අයිතම අර්ථ දැක්විය යුතුය:
ආදානය, ප්රතිදානය හෝ විශේෂාංගය ප්රධාන අයිතම භාවිතය දේශීය අයිතමය භාවිත පිටුව ගෝලීය අයිතමය තාර්කික අවම ගෝලීය අයිතමය තාර්කික උපරිම ගෝලීය අයිතමය වාර්තා ප්රමාණය ගෝලීය අයිතමය
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
31/174
ඉවරයිview
වාර්තා ගණන ගෝලීය අයිතමය පහත වගුවේ දැක්වෙන්නේ සත්කාරක HID විග්රහක දෘෂ්ටිකෝණයකින් මූසික වාර්තා විස්තරක අන්තර්ගතයක නිරූපණයයි. මූසිකයට බොත්තම් තුනක් ඇත (වම, දකුණ සහ රෝදය). උදාහරණයේ ඉදිරිපත් කර ඇති කේතයample පහත දැක්වෙන්නේ මෙම මූසික වාර්තා විස්තරක නිරූපණයට අනුරූප කේත ක්රියාත්මක කිරීමකි.
රූපය - සත්කාරක HID විග්රහකයකින් විස්තරාත්මක අන්තර්ගතය වාර්තා කරන්න View
(1) භාවිත පිටු අයිතම ශ්රිතය උපාංගයේ සාමාන්ය ශ්රිතය නිශ්චිත කරයි. මෙම උදාහරණයේදීample, HID උපාංගය අයත් වන්නේ a
සාමාන්ය ඩෙස්ක්ටොප් පාලනය.
(2) එකතු කිරීමේ යෙදුම් කණ්ඩායම් පොදු අරමුණක් ඇති ප්රධාන අයිතම වන අතර යෙදුම් සඳහා හුරුපුරුදු විය හැකිය. රූප සටහනෙහි, කණ්ඩායම ආදාන ප්රධාන අයිතම තුනකින් සමන්විත වේ. මෙම එකතුව සඳහා, පාලන සඳහා යෝජිත භාවිතය භාවිත අයිතමයෙන් දක්වා ඇති පරිදි මූසිකයකි. (3) යෙදුම් සඳහා තනි පාලනයක් හෝ පාලන සමූහයක් භාවිතා කිරීම පිළිබඳ වැඩි විස්තර ලබා දීමට කැදැලි එකතු කිරීම් භාවිතා කළ හැකිය. මෙම උදාහරණයේදීample, එකතු කිරීමේ යෙදුමට ඇතුළත් කර ඇති එකතු කිරීමේ භෞතිකය, එකතු කිරීමේ යෙදුම සාදන ආදාන අයිතම තුනෙන්ම සමන්විත වේ. එකතු කිරීමේ භෞතිකය එක් ජ්යාමිතික ලක්ෂ්යයකින් එකතු කරන ලද දත්ත ලක්ෂ්ය නියෝජනය කරන දත්ත අයිතම සමූහයක් සඳහා භාවිතා වේ. උදා:ampඑසේ නම්, යෝජිත භාවිතය භාවිත අයිතමයෙන් දක්වා ඇති පරිදි දර්ශකයකි. මෙහිදී දර්ශකය භාවිතය මූසික ස්ථාන ඛණ්ඩාංක වෙත යොමු වන අතර පද්ධති මෘදුකාංගය තිර කර්සරයේ චලනය තුළ මූසික ඛණ්ඩාංක පරිවර්තනය කරනු ඇත. (4) කැදැලි භාවිත පිටු ද කළ හැකි අතර උපාංගයේ සාමාන්ය ක්රියාකාරිත්වය තුළ යම් අංගයක් පිළිබඳ වැඩි විස්තර ලබා දේ. මෙම අවස්ථාවේදී, ආදාන අයිතම දෙකක් කාණ්ඩගත කර ඇති අතර මූසිකයේ බොත්තම් වලට අනුරූප වේ. එක් ආදාන අයිතමයක් මූසිකයේ බොත්තම් තුන (දකුණ, වම සහ රෝදය) අයිතමය සඳහා දත්ත ක්ෂේත්ර ගණන (වාර්තා ගණන් කිරීමේ අයිතමය), දත්ත ක්ෂේත්රයක ප්රමාණය (වාර්තා ප්රමාණයේ අයිතමය) සහ එක් එක් දත්ත ක්ෂේත්රය සඳහා විය හැකි අගයන් (භාවිත අවම සහ උපරිම, තාර්කික අවම සහ උපරිම අයිතම) අනුව අර්ථ දක්වයි. අනෙක් ආදාන අයිතමය 13-බිට් නියතයක් වන අතර ආදාන වාර්තා දත්ත බයිට් සීමාවක් මත පෙළගස්වා ගැනීමට ඉඩ සලසයි. මෙම ආදාන අයිතමය භාවිතා කරනු ලබන්නේ පිරවුම සඳහා පමණි. (5) සාමාන්ය ඩෙස්ක්ටොප් පාලනයක් යොමු කරන තවත් කැදැලි භාවිත පිටුවක් මූසික ස්ථාන ඛණ්ඩාංක සඳහා අර්ථ දක්වා ඇත. මෙම භාවිත පිටුව සඳහා, ආදාන අයිතමය x- සහ y-අක්ෂයට අනුරූප වන දත්ත ක්ෂේත්ර විස්තර කරන්නේ භාවිත දෙකෙන් නිශ්චිතව දක්වා ඇති පරිදි ය.
අයිතම.
පෙර මූසිකය වාර්තා විස්තරක අන්තර්ගතය විශ්ලේෂණය කිරීමෙන් පසුව, host9s HID විග්රහකය උපාංගය මඟින් එවන ලද ආදාන වාර්තා දත්ත බාධාකාරී IN හුවමාරුවකින් හෝ GET_REPORT ඉල්ලීමකට ප්රතිචාර වශයෙන් අර්ථ නිරූපණය කිරීමට සමත් වේ. රූපයේ දැක්වෙන මූසිකයට අනුරූප වන ආදාන වාර්තා දත්ත - සත්කාරක HID විග්රහකයකින් වාර්තා විස්තරක අන්තර්ගතය View is
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
32/174
ඉවරයිview
පහත වගුවේ දක්වා ඇත. වාර්තා දත්තවල මුළු ප්රමාණය බයිට් 4 කි. එකම අන්ත ලක්ෂ්යය හරහා විවිධ වර්ගයේ වාර්තා යැවිය හැක. විවිධ වර්ගයේ වාර්තා වෙන්කර හඳුනා ගැනීමේ අරමුණින්, දත්ත වාර්තාවට 1-බයිට් වාර්තා ID උපසර්ගයක් එකතු කරනු ලැබේ. උදාහරණයේ වාර්තා ID එකක් භාවිතා කළේ නම්ampමූසික වාර්තාවේ le, වාර්තා දත්තවල මුළු ප්රමාණය බයිට් 5 ක් වනු ඇත.
වගුව - ආදාන වාර්තාව සත්කාරකයට යවන ලද අතර බොත්තම් 3 ක මූසිකයක තත්වයට අනුරූප වේ.
බිට් ඕෆ්සෙට්
0 1 2 3 16 24
බිට් ගණන 1 1 1 13 8 8
විස්තරය බොත්තම 1 (වම් බොත්තම). බොත්තම 2 (දකුණු බොත්තම). බොත්තම 3 (රෝද බොත්තම). භාවිතා නොකෙරේ. X අක්ෂයේ පිහිටීම. Y අක්ෂයේ පිහිටීම.
භෞතික විස්තරයක් මඟින් පාලනයක් හෝ පාලනයක් සක්රිය කිරීමට අදහස් කරන ශරීරයේ කොටස හෝ කොටස් දක්වයි. උපාංගයක පාලනයට ක්රියාකාරීත්වයක් පැවරීමට යෙදුමක් මෙම තොරතුරු භාවිතා කළ හැකිය. භෞතික විස්තරයක් යනු විකල්ප පන්ති-විශේෂිත විස්තරයක් වන අතර බොහෝ උපාංග එය භාවිතා කිරීමෙන් සුළු වාසියක් ඇත. යොමු වන්න
Core වෙතින් USB උපාංග HID පන්ති සම්පත් අවශ්යතා
sl_usbd_hid_add_to_configuration() ශ්රිතයට ඇමතුමක් හරහා USB වින්යාසයකට HID පන්ති අවස්ථාවක් එක් කරන සෑම අවස්ථාවකම, පහත සම්පත් හරයෙන් වෙන් කරනු ලැබේ.
සම්පත්
අතුරුමුහුණත් විකල්ප අතුරුමුහුණත් අන්ත ලක්ෂ්ය අතුරුමුහුණත් කණ්ඩායම්
ප්රමාණය
1 1 1 (බාධාව OUT අන්ත ලක්ෂ්යය සක්රීය කර ඇත්නම් 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 උපාංග 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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
33/174
ඉවරයිview
මානකරන නම
SL_USBD_HID_CL ASS_I NSTANCE_QUANTITY
SL_USBD_HID_URATION_QUANTITY වින්යාසය
SL_USBD_HID_REPORT_ ID_QUANTITY
SL_USBD_HID_PUSH_P OP_ITEM_QUANTITY
SL_USBD_HID_TIMER_T අසන්න_STACK_SIZE
SL_USBD_HID_TIMER_T ASK_PRIORITY
විස්තරය
ශ්රිතයට ඇමතුමක් හරහා ඔබ වෙන් කරන පන්ති අවස්ථා ගණන
sl_usbd_hid_create_instance() .
වින්යාස ගණන. HID පන්ති අවස්ථා sl_usbd_hid_add_to_configuration() ශ්රිතයට අයත් aaaa වින්යාස එකකට හෝ කිහිපයකට එකතු කළ හැක. වෙන් කිරීමට ඇති මුළු වාර්තා ID ගණන වින්යාස කරයි.
වෙන් කිරීමට ඇති මුළු Push/Pop අයිතම ගණන වින්යාස කරයි.
ටයිමර් කාර්යය සියලුම ටයිමර් මත පදනම් වූ 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
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_CODE_සහාය නොදක්වයි
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
34/174
ඉවරයිview
SL_USBD_HID_CODE_ARABIC SL_USBD_HID_CODE_CODE_BELGIAN SL_USBD_HID_COUNTRY_CODE_CANADIAN_BILINGUAL SL_USBD_HID_COUNTRY_CODE_CZECH_REPUBLIC SL_USBD_HID_COUNTRY_CODE_DANISH SL_USBD_HID_COUNTRY_CODE_FINNISH SL_USBD_HID_COUNTRY_CODE_FRENCH SL_USBD_HID_COUNTRY_CODE_GREEK SL_USBD_HID_COUNTRY_CODE_HEBREW SL_USBD_HID_COUNTRY_CODE_HUNGARY SL_USBD_HID_COUNTRY_CODE_INTERNATIONAL SL_USBD_HID_CODE_ITALIAN SL_USBD_HID_CODE_CODE_JAPAN_KATAKANA SL_USBD_HID_CODE_COREAN SL_USBD_HID_CODE_NETHERL ANDS_DUTCH SL_USBD_HID_COUNTRY_CODE_NORWEGIAN SL_USBD_HID_COUNTRY_CODE_PERSIAN_FARSI SL_USBD_HID_COUNTRY_CODE_POL සහ SL_USBD_HID_COUNTRY_CODE_PORTUGUESE SL_USBD_HID_COUNTRY_CODE_RUSSIA SL_USBD_HID_COUNTRY_CODE_SLOVAKIA SL_USBD_HID_COUNTRY_CODE_SPANISH SL_USBD_HID_COUNTRY_CODE_SWEDISH SL_USBD_HID_CONDRY_CODE_SWISS_FRENCH SL_USBD_HID_CONDRY_CODE_SWISS_GERMAN SL_USBD_HID_CONDRY_CODE_SWITZERL සහ SL_USBD_HID_CONDRY_CODE_TAIWAN SL_USBD_HID_CONDRY_CODE_TURKISH_Q SL_USBD_HID_COUNTRY_CODE_US SL_USBD_HID_CONDRY_CODE_YUG OSL AVIA SL_USBD_HID_COUNTRY_CODE_TURKISH_F
රටේ කේතය මඟින් දෘඩාංග දේශීයකරණය කර ඇත්තේ කුමන රටටද යන්න හඳුනා ගනී. බොහෝ දෘඩාංග දේශීයකරණය කර නොමැති අතර එම නිසා මෙම අවසරය SL_USBD_HID_COUNTRY_CODE_NOT_SUPPORTED (0) වනු ඇත. කෙසේ වෙතත්, යතුරු පුවරු යතුරු කැප් වල භාෂාව දැක්වීමට ක්ෂේත්රය භාවිතා කරයි.
රටේ කේත පිළිබඳ වැඩිදුර තොරතුරු සඳහා, HID පිරිවිතර සංශෝධනය 1.11 හි 6.2.1 කොටස බලන්න.
interval_in සහ interval_out
interval_in සහ interval_out මගින් IN interrupt අන්ත ලක්ෂ්යයේ සහ OUT interrupt අන්ත ලක්ෂ්යයේ ඡන්ද පරතරය නිරූපණය කෙරේ.
මෙය අන්ත ලක්ෂ්යයේ ඡන්ද පරතරය මිලි තත්පර වලින් නිරූපණය කරයි. මෙම අගය සැකසීම රඳා පවතින්නේ ඔබේ උපාංගය සත්කාරක සමාගම සඳහා නව වාර්තාවක් ජනනය කිරීමට කොපමණ වාරයක් ඉඩ තිබේද යන්න මතය. උදාහරණයක් ලෙස, සෑම මිලි තත්පර 16 කට වරක් වාර්තාවක් ජනනය වන්නේ නම්, පරතරය 16 හෝ ඊට අඩු විය යුතුය.
අගය 2 (1, 2, 4, 8, 16, ආදිය) බලයක් විය යුතුය.
ctrl_rd_en සත්ය ලෙස සකසා ඇත්නම් interval_out v lue නොසලකා හරිනු ලැබේ.
p_hid_callback
aaaa p_hid_callback යනු sl_usbd_hid_callbacks_t වර්ගයේ ව්යුහයට දර්ශකයකි. එහි අරමුණ වන්නේ HID සිදුවීමක් සිදු වූ විට කැඳවීමට HID Cl ss ඇමතුම් ආපසු කැඳවීමේ ශ්රිත කට්ටලයක් ලබා දීමයි.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
35/174
ඉවරයිview
සියලුම callbacks අනිවාර්ය නොවන අතර callback අවශ්ය නොවන විට callbacks ව්යුහ විචල්යය තුළ null pointer ( NULL ) සම්මත කළ හැක. පහත වගුව මෙම වින්යාස ව්යුහයේ ඇති එක් එක් වින්යාස ක්ෂේත්රය විස්තර කරයි.
වගුව – sl_usbd_hid_callbacks_t වින්යාස ව්යුහය
ක්ෂේත්ර
විස්තරය
ශ්රිත අත්සන
.සක්රීය කරන්න .අක්රිය කරන්න .get_report_desc
.ගෙට්_ෆයි_ඩෙක්ස්
.set_output_report .ලබා ගන්න_feature_report .set_feature_report
USB පන්ති අවස්ථාව සාර්ථකව සක්රිය කළ විට කැඳවනු ලැබේ. USB පන්ති අවස්ථාව අක්රිය කළ විට කැඳවනු ලැබේ.
ඔබගේ වාර්තා විස්තරකය සම්මත කිරීම සඳහා HID අවස්ථා නිර්මාණය අතරතුර කැඳවනු ලැබේ. ඔබගේ එක් එක් HID කාර්යයන් සඳහා, ඔබ වාර්තා විස්තරයක් සැපයිය යුතුය. වාර්තා විස්තරකය මඟින් උපාංගය මඟින් යවනු ලබන ආවර්තිතා වාර්තාව විග්රහ කළ යුතු ආකාරය සත්කාරකයට දක්වයි. ඔබේම වාර්තා විස්තරකය ලිවීම අභියෝගාත්මක විය හැකි අතර, ඒ නිසා උපකාර කිරීමට සමහර සම්පත් තිබේ. මෙය අනිවාර්ය ආපසු ඇමතුම් ශ්රිතයයි. ඔබේ භෞතික විස්තරය සම්මත කිරීම සඳහා HID අවස්ථා නිර්මාණය අතරතුර කැඳවනු ලැබේ. භෞතික විස්තරකය යනු පාලනයක් හෝ පාලනයක් සක්රිය කරන මිනිස් සිරුරේ නිශ්චිත කොටස හෝ කොටස් පිළිබඳ තොරතුරු සපයන විස්තරයකි. භෞතික විස්තරකය පිළිබඳ වැඩි විස්තර සඳහා, HID පිරිවිතර සංශෝධනය 1.11 හි 6.2.3 කොටස බලන්න. භෞතික විස්තරකය විකල්ප වන අතර බොහෝ විට නොසලකා හරිනු ලැබේ. මෙහි සම්මත කරන ලද බෆරය NULL ලෙස සැකසිය හැකි අතර දිග 0 ලෙස සැකසිය හැක. සත්කාරකය ඔබේ වාර්තා විස්තරකයේ විස්තර කර ඇති පරිදි වාර්තාවක් සකසන විට (එය වාර්තාවක් යවන විට) කැඳවනු ලැබේ.
ඔබගේ වාර්තා විස්තරයේ විස්තර කර ඇති පරිදි සත්කාරක සමාගම විශේෂාංග වාර්තාවක් ඉල්ලා සිටින විට කැඳවනු ලැබේ.
ඔබගේ වාර්තා විස්තරයේ විස්තර කර ඇති පරිදි සත්කාරක විසින් විශේෂාංග වාර්තාවක් සකසන විට කැඳවනු ලැබේ.
void app_usbd_hid_enable(uint8_t class_nbr); void app_usbd_hid_disable(uint8_t class_nbr); void app_usbd_hid_get_report_desc(uint8_t class_nbr, const uint8_t *p_report_ptr, uint16_tp_report_len);
අවලංගු app_usbd_hid_get_phy_desc(uint8_t class_nbr, const uint8_t *p_report_ptr, uint16_tp_report_len);
void app_usbd_hid_set_output_report(uint8_t class_nbr, uint8_t report_id, uint8_t *p_report_buf, uint16_t report_len); void app_usbd_hid_get_feature_report(uint8_t class_nbr, uint8_t report_id, uint8_t *p_report_buf, uint16_t report_len); void app_usbd_hid_s
.ප්රොටෝකෝලය ලබා ගන්න
වත්මන් ක්රියාකාරී ප්රොටෝකෝලය ලබා ගනී.
අවලංගු app_usbd_hid_get_protocol(uint8_t class_nbr, uint8_t *p_protocol);
.සැකසුම්_ප්රොටෝකෝලය
වත්මන් ක්රියාකාරී ප්රොටෝකෝලය සකසයි.
අවලංගු app_usbd_hid_set_protocol(uint8_t class_nbr, uint8_t ප්රොටෝකෝලය);
HID පන්ති වාර්තා විස්තරය Example
සිලිකන් ලැබ්ස් හි HID පන්තිample අයදුම්පත ex එකක් සපයයිampසරල මූසිකයක් සඳහා වාර්තා විස්තරයක le. උදා.ampපහත le හි මූසික වාර්තා විස්තරයක් පෙන්වයි.
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_USAGE + 1, SL_USBD_HID_CA_MOUSE,
(3)
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
36/174
ඉවරයිview
SL_USBD_HID_MAIN_COLLECTION +1, SL_USBD_HID_COLLECTION_APPLICATION,(4)
SL_USBD_HID_LOCAL_USAGE +1, SL_USBD_HID_CP_POINTER,(5)
SL_USBD_HID_MAIN_COLLECTION +1, SL_USBD_HID_COLLECTION_PHYSICAL,(6)
SL_USBD_HID_GLOBAL_USAGE_PAGE +1, SL_USBD_HID_USAGE_PAGE_බොත්තම,(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 +1,0 00,
SL_USBD_HID_GLOBAL_LOG_MAX +1,0 01,
SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 03,
SL_USBD_HID_GLOBAL_REPORT_ප්රමාණය +1,0 01,
SL_USBD_HID_MAIN_INPUT +1, SL_USBD_HID_MAIN_DATA |
SL_USBD_HID_MAIN_VARIABLE |
SL_USBD_HID_MAIN_ABSOLUTE,
SL_USBD_HID_GLOBAL_REPORT_COUNT +1,0 01,(8)
SL_USBD_HID_GLOBAL_REPORT_ප්රමාණය +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_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_ප්රමාණය +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 එකතුව,(10)
SL_USBD_HID_MAIN_END එකතුව
(11)};
(1) මූසික වාර්තා විස්තරකයක් නිරූපණය කරන වගුව ආරම්භ කර ඇත්තේ එක් එක් පේළිය කෙටි අයිතමයකට අනුරූප වන ආකාරයට ය. දෙවැන්න 1-බයිට් උපසර්ගයකින් සහ 1-බයිට් දත්තයකින් සෑදී ඇත. යොමු වන්න viewරූපයේ සත්කාරක HID විග්රහකයෙකු විසින් සංස්කරණය කරන ලදී - සත්කාරක HID විග්රහකයකින් විස්තරාත්මක අන්තර්ගතය වාර්තා කරන්න View.
(2) සාමාන්ය ඩෙස්ක්ටොප් භාවිත පිටුව භාවිතා වේ.
(3) සාමාන්ය ඩෙස්ක්ටොප් භාවිත පිටුව තුළ, භාවිතය tag පාලක කණ්ඩායම මූසිකයක් පාලනය කිරීම සඳහා බව යෝජනා කරයි. මූසික එකතුවක් සාමාන්යයෙන් අක්ෂ දෙකකින් (X සහ Y) සහ බොත්තම් එකකින්, දෙකකින් හෝ තුනකින් සමන්විත වේ.
(4) මූසික එකතුව ආරම්භ කර ඇත.
(5) මූසික එකතුව තුළ, භාවිතයක් tag වඩාත් නිශ්චිතවම යෝජනා කරන්නේ මූසික පාලනයන් දර්ශකය එකතුවට අයත් බවයි. දර්ශකය එකතුවක් යනු යෙදුමකට පරිශීලක අභිප්රායන් යොමු කිරීමට, දැක්වීමට හෝ යොමු කිරීමට අගයක් ජනනය කරන අක්ෂ එකතුවකි.
(6) දර්ශක එකතුව ආරම්භ කර ඇත.
(7) බොත්තම් භාවිත පිටුව 1-බිට් ක්ෂේත්ර තුනකින් සමන්විත ආදාන අයිතමයක් අර්ථ දක්වයි. සෑම 1-බිට් ක්ෂේත්රයක්ම පිළිවෙලින් මූසික බොත්තම් 1, 2 සහ 3 නියෝජනය කරන අතර 0 හෝ 1 අගයක් ආපසු ලබා දිය හැකිය.
(8) බොත්තම් භාවිත පිටුව සඳහා ආදාන අයිතමය තවත් බිටු 13 ක් සමඟ පුරවා ඇත.
(9) X සහ Y අක්ෂ සමඟ මූසික පිහිටීම විස්තර කිරීම සඳහා තවත් සාමාන්ය ඩෙස්ක්ටොප් භාවිත පිටුවක් දක්වා ඇත. ආදාන අයිතමය -127 සහ 127 අතර අගයක් ගත හැකි 8-බිට් ක්ෂේත්ර දෙකකින් සමන්විත වේ.
(10) දර්ශක එකතුව වසා ඇත.
(11) මූසික එකතුව වසා ඇත.
USB.org HID පිටුව
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
37/174
ඉවරයි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 තත්ත්වය;
status = sl_usbd_hid_init(); if (status ! 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() හරහා Mouse Function එකක් එකතු කිරීම
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
38/174
ඉවරයිview
/* ගෝලීය නියතයන්. */ ස්ථිතික const 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 01, SL_USBD_HID_LOCAL_USAGE_MAX + 1, 0 03, SL_USBD_HID_GLOBAL_LOG_MIN + 1, 0 00, SL_USBD_HID_GLOBAL_LOG_MAX + 1, 0 01, 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_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_ENDCOLLECTION, SL_USBD_HID_MAIN_ENDCOLLECTION };
/* දේශීය විචල්යයන්.*/ uint8_t class_nbr; sl_status_t තත්ත්වය;
sl_usbd_hid_callbacks_t app_usbd_hid_callbacks = { NULL, NULL, app_usbd_hid_get_report_desc, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
අවලංගු app_usbd_hid_get_report_desc(uint8_t class_nbr, const uint8_t **p_report_ptr, uint16_t *p_report_len)
{ (හිස්)පන්තිය_nbr;
*p_report_ptr = app_usbd_hid_mouse_report_desc; *p_report_len = (app_usbd_hid_mouse_report_desc) හි ප්රමාණය; }
තත්ත්වය = sl_usbd_hid_create_instance(SL_USBD_HID_SUBCLASS_BOOT, SL_USBD_HID_PROTOCOL_MOUSE, SL_USBD_HID_CODE_NOT_SUPPORTED, Ex_USBD_HID_Mouse_ReportDesc, sizeof(Ex_USBD_HID_Mouse_ReportDesc), 2u, 2u, true, &app_usbd_hid_callbacks, &class_nbr);
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
39/174
ඉවරයිview
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */}
ඔබගේ උපාංගයේ වින්යාසයන්ට HID පන්ති අවස්ථාව එකතු කිරීම ඔබ HID පන්ති අවස්ථාවක් නිර්මාණය කළ පසු, ඔබට එය ශ්රිතය ඇමතීමෙන් වින්යාසයකට එක් කළ හැකිය.
sl_usbd_hid_add_to_configuration() .
හිටපුampපහත දැක්වෙන්නේ sl_usbd_hid_add_to_configuration() අමතන්නේ කෙසේද යන්නයි.
Example – sl_usbd_hid_add_to_configuration() ඇමතීම
sl_status_t තත්ත්වය;
sl_usbd_hid_add_to_configuration(class_nbr,)
(1)
(2)
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
(1) sl_usbd_hid_create_instance() මඟින් ආපසු ලබා දෙන වින්යාසයට එකතු කිරීමට පන්ති අංකය. (2) වින්යාස අංකය (මෙහි එය සම්පූර්ණ වේග වින්යාසයකට එකතු කිරීම).
USB උපාංග HID පන්තිය භාවිතයෙන් සන්නිවේදනය කිරීම
පන්ති අවස්ථා සන්නිවේදනය සමමුහුර්ත සන්නිවේදනය පන්ති අවස්ථා සන්නිවේදනය HID පන්තිය සත්කාරක සමඟ සන්නිවේදනය කිරීම සඳහා පහත සඳහන් කාර්යයන් ඉදිරිපත් කරයි.
වගුව - HID සන්නිවේදන API සාරාංශය
කාර්යය නම
sl_usb d _hid _ re ad _sy nc() sl_usb d _hid _write _sy nc()
මෙහෙයුම අතුරු බාධකය OUT අන්ත ලක්ෂ්යය හරහා ධාරකයෙන් දත්ත ලබා ගනී. මෙම ශ්රිතය අවහිර කරමින් පවතී. අතුරු බාධකය IN අන්ත ලක්ෂ්යය හරහා ධාරකයට දත්ත යවයි. මෙම ශ්රිතය අවහිර කරමින් පවතී.
සමමුහුර්ත සන්නිවේදනය සමමුහුර්ත සන්නිවේදනය යනු මාරු කිරීම අවහිර කරන බවයි. ශ්රිත ඇමතුම මත, දෝෂයක් සහිතව හෝ රහිතව මාරු කිරීම අවසන් වන තෙක් යෙදුම් අවහිර කරයි. සදහටම බලා සිටීම වළක්වා ගැනීම සඳහා කල් ඉකුත්වීමක් නියම කළ හැක. උදා.ampපහත දැක්වෙන්නේ අතුරු බාධක OUT අන්ත ලක්ෂ්යය භාවිතයෙන් ධාරකයෙන් දත්ත ලබා ගන්නා සහ අතුරු බාධක IN අන්ත ලක්ෂ්යය භාවිතයෙන් ධාරකයට දත්ත යවන කියවීම සහ ලිවීමයි.
Example – සමමුහුර්ත HID කියවීම සහ ලිවීම
__පෙළගැස්වූ(4) uint8_t rx_buf[2];
__පෙළගැස්වූ(4) uint8_t tx_buf[2];
uint32_t
xfer_len; მარ
sl_status_t_අහස_තත්වය
තත්ත්වය;
තත්ත්වය = sl_usbd_hid_read_sync(class_nbr,
(1)
(හිස් *)rx_buf,
(2)
2u,
0u,
(3)
&xfer_len); ('සහ')
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
40/174
ඉවරයි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){/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */}
(1) sl_usbd_hid_create_instance() වෙතින් නිර්මාණය කරන ලද පන්ති නිදර්ශන අංකය, HID පන්තියට නිසි බාධා OUT හෝ IN අන්ත ලක්ෂ්යයට මාරුව යොමු කිරීම සඳහා අභ්යන්තර යොමුවක් සපයයි.
(2) ශ්රිතයට සපයා ඇති බෆරය සියලු දත්ත සඳහා ඉඩ සැලසීමට ප්රමාණවත් තරම් විශාල බව යෙදුම සහතික කළ යුතුය. එසේ නොමැතිනම්, සමමුහුර්ත කිරීමේ ගැටළු ඇති විය හැක. අභ්යන්තරව, කියවීමේ මෙහෙයුම පාලන අන්ත ලක්ෂ්යය සමඟ හෝ බාධා අන්ත ලක්ෂ්යය සමඟ සිදු කරනු ලැබේ, sl_usbd_hid_create_instance() ඇමතීමේදී පාලන කියවීමේ ධජය සකසා ඇති ආකාරය මත රඳා පවතී.
(3) අනන්ත අවහිර කිරීමේ තත්වයක් වළක්වා ගැනීම සඳහා, මිලි තත්පර වලින් ප්රකාශිත කාල සීමාවක් නියම කළ හැක. 809 ක අගයක් යෙදුම් කාර්යය සදහටම රැඳී සිටීමට සලස්වයි.
(4) යෙදුම මඟින් ආරම්භක සම්ප්රේෂණ බෆරය සපයයි.
HID ආවර්තිතා ආදාන වාර්තා කාර්යය
කලාප පළල සුරැකීමට, වාර්තාකරණ සංඛ්යාතය සීමා කිරීමෙන් IN අන්ත ලක්ෂ්යයකින් වාර්තා නිහඬ කිරීමට සත්කාරකයට හැකියාව ඇත. එසේ කිරීමට, සත්කාරක SET_IDLE ඉල්ලීම යැවිය යුතුය. සිලිකන් ලැබ්ස් විසින් ක්රියාත්මක කරන ලද HID පන්තියේ ඔබට ආදාන වාර්තා එකකට හෝ කිහිපයකට යෙදිය හැකි වාර්තාකරණ සංඛ්යාත සීමාවට ගරු කරන අභ්යන්තර කාර්යයක් අඩංගු වේ. රූප ආවර්තිතා ආදාන වාර්තා කාර්යය මඟින් ආවර්තිතා ආදාන වාර්තා කාර්යයන්හි ක්රියාකාරිත්වය පෙන්වයි.
රූපය - ආවර්තිතා ආදාන වාර්තා කාර්යය
(1) උපාංගයට SET_IDLE ඉල්ලීමක් ලැබේ. මෙම ඉල්ලීම මඟින් ලබා දී ඇති වාර්තා ID සඳහා අක්රිය කාල සීමාවක් නියම කරයි. SET_IDLE ඉල්ලීම පිළිබඳ වැඩි විස්තර සඳහා, බලන්න
(2) HID පන්තියේ ආරම්භක අවධියේදී වෙන් කරන ලද වාර්තා ID ව්යුහයක් idle කාලසීමාව සමඟ යාවත්කාලීන කෙරේ. idle කාල පරාසය කවුන්ටරයක් idle කාල අගය සමඟ ආරම්භ කෙරේ. ආදාන වාර්තා ID ව්යුහයන් අඩංගු සම්බන්ධිත ලැයිස්තුවක අවසානයේ වාර්තා ID ව්යුහය ඇතුළත් කර ඇත. idle කාල අගය 4-ms ඒකකයකින් ප්රකාශ වන අතර එය 4 සිට 1020 ms දක්වා පරාසයක් ලබා දෙයි.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
41/174
ඉවරයිview
අක්රිය කාල සීමාව බාධා IN අන්ත ලක්ෂ්යයේ ඡන්ද පරතරයට වඩා අඩු නම්, වාර්තා ඡන්ද පරතරයේදී ජනනය වේ.
(3) සෑම ms 4 කට වරක්, ආවර්තිතා ආදාන වාර්තා කාර්යය ආදාන වාර්තා ID ලැයිස්තුව පිරික්සයි. සෑම ආදාන වාර්තා ID සඳහාම, කාර්යය හැකි මෙහෙයුම් දෙකෙන් එකක් සිදු කරයි. කාර්ය කාල පරිච්ඡේදයේ කාලසීමාව අක්රිය කාලය සඳහා භාවිතා කරන 4-ms ඒකකයට ගැලපේ. සත්කාරක විසින් SET_IDLE ඉල්ලීම් කිසිවක් යවා නොමැති නම්, ආදාන වාර්තා ID ලැයිස්තුව හිස් වන අතර කාර්යයට සැකසීමට කිසිවක් නොමැත. කාර්ය ක්රියාවලීන් 0 ට වඩා වෙනස් සහ 0 ට වඩා වැඩි අක්රිය කාල සීමාවක් සහිත වාර්තා ID පමණි.
(4) දී ඇති ආදාන වාර්තා හැඳුනුම්පතක් සඳහා, කාර්යය අක්රිය කාලය අවසන් වී ඇත්දැයි සත්යාපනය කරයි. අක්රිය කාලය අවසන් වී නොමැති නම්, කවුන්ටරය අඩු කරනු ලබන අතර සත්කාරකයට කිසිදු ආදාන වාර්තාවක් යවනු නොලැබේ.
(5) idle කාල සීමාව ඉකුත් වී ඇත්නම් (එනම්, idle කාල සීමාව කවුන්ටරය ශුන්යයට ළඟා වී තිබේ නම්), interrupt IN අන්ත ලක්ෂ්යය හරහා sl_usbd_hid_write_sync() ශ්රිතය ඇමතීමෙන් ආදාන වාර්තාවක් සත්කාරකයට යවනු ලැබේ.
(6) කාර්යය මගින් යවන ලද ආදාන වාර්තා දත්ත වාර්තා විස්තරකයේ විස්තර කර ඇති එක් එක් ආදාන වාර්තාව සඳහා වෙන් කර ඇති අභ්යන්තර දත්ත බෆරයකින් පැමිණේ. යෙදුම් කාර්යයකට ආදාන වාර්තාවක් යැවීම සඳහා sl_usbd_hid_write_sync() ශ්රිතය ඇමතිය හැකිය. ආදාන වාර්තා දත්ත යැවීමෙන් පසු, sl_usbd_hid_write_sync() දැන් යවන ලද දත්ත සමඟ ආදාන වාර්තා හැඳුනුම්පතකට සම්බන්ධ අභ්යන්තර බෆරය යාවත්කාලීන කරයි. ඉන්පසු, ආවර්තිතා ආදාන වාර්තා කාර්යය සෑම අක්රිය කාල සීමාවකටම පසුව සහ යෙදුම් කාර්යය අභ්යන්තර බෆරයේ දත්ත යාවත්කාලීන කරන තෙක් සෑම විටම එකම ආදාන වාර්තා දත්ත යවයි. ආවර්තිතා ආදාන වාර්තා කාර්යය මගින් සිදු කරන ලද සම්ප්රේෂණයේ නිශ්චිත වේලාවේදී වෙනස් කිරීමක් සිදු වූ විට ආදාන වාර්තා ID දත්ත දූෂණය වීම වළක්වා ගැනීමට යම් අගුලු දැමීමේ යාන්ත්රණයක් තිබේ.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
42/174
ඉවරයිview
ඉවරයිview
USB උපාංග MSC පන්තිය
USB උපාංග MSC පන්තිය අවසන්view USB උපාංග MSC පන්ති සම්පත් Core USB උපාංගයෙන් අවශ්ය වේ MSC පන්ති වින්යාසය USB උපාංග MSC පන්ති ක්රමලේඛන මාර්ගෝපදේශය USB උපාංග MSC පන්ති ගබඩා ධාවක
මෙම කොටසේ සිලිකන් ලැබ්ස් USB උපාංගය මඟින් සහාය දක්වන ස්කන්ධ ගබඩා උපාංග පන්තිය (MSC) විස්තර කෙරේ. MSC යනු USB උපාංගයක් සහ ධාරකයක් අතර තොරතුරු මාරු කිරීමට ඉඩ සලසන ප්රොටෝකෝලයකි. මාරු කරනු ලබන තොරතුරු යනු ක්රියාත්මක කළ හැකි වැඩසටහන්, මූලාශ්ර කේතය, ලේඛන, රූප, වින්යාස දත්ත හෝ වෙනත් පෙළ හෝ සංඛ්යාත්මක දත්ත වැනි ඉලෙක්ට්රොනිකව ගබඩා කළ හැකි ඕනෑම දෙයකි. USB උපාංගය ධාරකයට බාහිර ගබඩා මාධ්යයක් ලෙස දිස්වන අතර, මාරු කිරීමට ඉඩ සලසයි. fileඇදගෙන යාම හරහා s.
A file පද්ධතිය නිර්වචනය කරන්නේ කෙසේද යන්නයි fileගබඩා මාධ්ය තුළ සංවිධානය කර ඇත. USB ස්කන්ධ ගබඩා පන්ති පිරිවිතරයට කිසිදු විශේෂිත අවශ්යතාවයක් නොමැත file අනුකූල උපාංගවල භාවිතා කිරීමට පද්ධතිය. ඒ වෙනුවට, එය කුඩා පරිගණක පද්ධති අතුරුමුහුණත (SCSI) විනිවිද පෙනෙන විධාන කට්ටලය භාවිතයෙන් දත්ත අංශ කියවීමට සහ ලිවීමට සරල අතුරු මුහුණතක් සපයයි. එබැවින්, මෙහෙයුම් පද්ධති USB ධාවකය දෘඪ තැටියක් ලෙස සැලකිය හැකි අතර, ඕනෑම එකක් සමඟ එය සංයුති කළ හැක. file ඔවුන් කැමති පද්ධතිය.
USB ස්කන්ධ ගබඩා උපාංග පන්තිය පහත සඳහන් පරිදි ප්රවාහන ප්රොටෝකෝල දෙකකට සහය දක්වයි:
තොග-පමණක් ප්රවාහනය (BOT) පාලනය/තොග/බාධා කිරීම් (CBI) ප්රවාහනය (නම්ය තැටි ධාවක සඳහා පමණක් භාවිතා වේ)
ස්කන්ධ ගබඩා උපාංග පන්තිය BOT ප්රොටෝකෝලය පමණක් භාවිතයෙන් SCSI විනිවිද පෙනෙන විධාන කට්ටලය ක්රියාත්මක කරයි, එයින් අදහස් කරන්නේ දත්ත සහ තත්ව තොරතුරු සම්ප්රේෂණය කිරීමට තොග අන්ත ලක්ෂ්ය පමණක් භාවිතා කරන බවයි. MSC ක්රියාත්මක කිරීම බහු තාර්කික ඒකක සඳහා සහය දක්වයි.
MSC ක්රියාත්මක කිරීම පහත පිරිවිතරයන්ට අනුකූල වේ:
විශ්වීය අනුක්රමික බස් ස්කන්ධ ගබඩා පන්තියේ පිරිවිතර අවසන්view, සංශෝධනය 1.3 සැප්තැම්බර් 5, 2008. විශ්වීය අනුක්රමික බස් ස්කන්ධ ගබඩා පන්තිය තොග-පමණක් ප්රවාහනය, සංශෝධනය 1.0 සැප්තැම්බර් 31, 1999.
USB උපාංගය MSC aCl ss අවසන්view
ප්රොටෝකෝලය අන්ත ලක්ෂ්ය පන්ති ඉල්ලීම් කුඩා පරිගණක පද්ධති අතුරුමුහුණත (SCSI)
ප්රොටෝකෝලය
මෙම කොටසේදී, අපි ස්කන්ධ ගබඩා පන්තියේ තොග-පමණක් ප්රවාහන (BOT) ප්රොටෝකෝලය සාකච්ඡා කරමු. තොග-පමණක් ප්රවාහන ප්රොටෝකෝලයට තත්පර තුනක් ඇත.tages:
විධාන ප්රවාහනය දත්ත ප්රවාහනය තත්ව ප්රවාහනය
ස්කන්ධ ගබඩා විධාන ධාරකය විසින් Command Block Wrapper (CBW) ලෙස හඳුන්වන ව්යුහයක් හරහා යවනු ලැබේ. දත්ත ප්රවාහනයක් අවශ්ය වන විධාන සඳහා stage, CBW හි දිග සහ ධජ ක්ෂේත්ර මගින් නිශ්චිතව දක්වා ඇති පරිදි උපාංගයෙන් බයිට් ගණන හරියටම යැවීමට හෝ ලබා ගැනීමට සත්කාරක සමාගම උත්සාහ කරනු ඇත. දත්ත ප්රවාහනයෙන් පසු stage, ධාරකය උපාංගයෙන් විධාන තත්ව එතුමක් (CSW) ලබා ගැනීමට උත්සාහ කරයි, එය විධානයේ තත්ත්වය මෙන්ම ඕනෑම දත්ත ශේෂයක් විස්තර කරයි (නම්
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
43/174
ඉවරයිview
ඕනෑම). දත්ත ප්රවාහනයක් ඇතුළත් නොවන විධාන සඳහා stage, CBW යැවූ පසු සත්කාරක සමාගම CSW සෘජුවම ලබා ගැනීමට උත්සාහ කරයි. ප්රොටෝකෝලය රූපයේ - MSC ප්රොටෝකෝලයේ විස්තරාත්මකව දක්වා ඇත.
රූපය - MSC ප්රොටෝකෝලය
අන්ත ලක්ෂ්ය
උපාංග පැත්තෙන්, BOT පිරිවිතරයන්ට අනුකූලව, MSC පහත අන්ත ලක්ෂ්ය වලින් සමන්විත වේ: පෙරනිමි අන්ත ලක්ෂ්යය ලෙස හැඳින්වෙන පාලන IN සහ OUT අන්ත ලක්ෂ්ය යුගලයකි. තොග IN සහ OUT අන්ත ලක්ෂ්ය යුගලයකි.
පහත වගුවේ අන්ත ලක්ෂ්යවල විවිධ භාවිතයන් දැක්වේ.
වගුව – MSC අන්ත ලක්ෂ්ය භාවිතය
අන්ත ලක්ෂ්යය
පාලනය IN පාලනය පිටතට තොග පිටතට තොග පිටතට
දිශාව
උපාංගයෙන් උපාංගයට සත්කාරකයෙන් උපාංගයට සත්කාරකයෙන් උපාංගයට සත්කාරකයෙන් උපාංගයට
භාවිතය
ගණන් ගැනීම සහ MSC පන්ති-විශේෂිත ඉල්ලීම් ගණන් ගැනීම සහ MSC පන්ති-විශේෂිත ඉල්ලීම් CSW සහ දත්ත යවන්න CBW සහ දත්ත ලබා ගන්න
පන්ති ඉල්ලීම්
MSC BOT ප්රොටෝකෝලය සඳහා නිර්වචනය කරන ලද පාලන ඉල්ලීම් දෙකක් තිබේ. මෙම ඉල්ලීම් සහ ඒවායේ විස්තර පහත වගුවේ විස්තර කර ඇත.
වගුව - ස්කන්ධ ගබඩා පන්ති ඉල්ලීම්
පන්ති ඉල්ලීම්
තොග-පමණක් ස්කන්ධ ගබඩා යළි පිහිටුවීම
විස්තරය
මෙම ඉල්ලීම ස්කන්ධ ගබඩා උපාංගය සහ ඒ ආශ්රිත අතුරුමුහුණත නැවත සැකසීමට භාවිතා කරයි. මෙම ඉල්ලීම උපාංගය ඊළඟ විධාන කොටස ලබා ගැනීමට සූදානම් කරයි.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
44/174
ඉවරයිview
පන්ති ඉල්ලීම්
විස්තරය
උපරිමය ලබා ගන්න මෙම ඉල්ලීම උපාංගය මඟින් සහාය දක්වන ඉහළම තාර්කික ඒකක අංකය (LUN) ආපසු ලබා දීමට භාවිතා කරයි. උදා.ampලේ, ඒ
LUN
LUN 0 සහ LUN 1 සහිත උපාංගය 1 ක අගයක් ආපසු ලබා දෙනු ඇත. තනි තාර්කික ඒකකයක් සහිත උපාංගයක් 0 ආපසු ලබා දෙනු ඇත නැතහොත්
ඉල්ලීම. ආපසු ලබා දිය හැකි උපරිම අගය 15 කි.
කුඩා පරිගණක පද්ධති අතුරුමුහුණත SCSI
ක්රමලේඛන අතුරුමුහුණත මට්ටමින්, MSC උපාංගය SCSI සහ SFF-8020i (ATAPI) වැනි සම්මත ගබඩා-මාධ්ය සන්නිවේදන ප්රොටෝකෝල වලින් එකක් ක්රියාත්මක කරයි. “ක්රමලේඛන අතුරුමුහුණත” ක්රියාත්මක කරන්නේ කුමන ප්රොටෝකෝලයද යන්න නිශ්චිත කරන අතර, USB ගබඩා උපාංගය සමඟ සන්නිවේදනය කිරීම සඳහා සුදුසු උපාංග ධාවකය පූරණය කිරීමට සත්කාරක මෙහෙයුම් පද්ධතියට උපකාරී වේ. SCSI යනු USB MSC ගබඩා උපාංග සමඟ භාවිතා කරන වඩාත් පොදු ප්රොටෝකෝලයයි. අපගේ GSDK පරිශීලකයින්ට කොටුවෙන් පිටත භාවිතා කළ හැකි MSC SCSI උපපංතිය සඳහා අපි ක්රියාත්මක කිරීමක් සපයන්නෙමු.
SCSI යනු පරිගණක සහ පර්යන්ත උපාංග අතර සන්නිවේදනය හැසිරවීම සඳහා වන ප්රමිතීන් සමූහයකි. මෙම ප්රමිතීන්ට විධාන, ප්රොටෝකෝල, විද්යුත් අතුරුමුහුණත් සහ දෘශ්ය අතුරුමුහුණත් ඇතුළත් වේ. USB වැනි අනෙකුත් දෘඩාංග අතුරුමුහුණත් භාවිතා කරන ගබඩා උපාංග, උපාංග/ධාරක තොරතුරු ලබා ගැනීමට සහ උපාංගයේ ක්රියාකාරිත්වය පාලනය කිරීමට සහ ගබඩා මාධ්යයේ දත්ත කොටස් මාරු කිරීමට SCSI විධාන භාවිතා කරයි.
SCSI විධාන මඟින් උපාංග වර්ග සහ කාර්යයන් විශාල පරාසයක් ආවරණය වන අතර එම නිසා උපාංගවලට මෙම විධානවල උප කුලකයක් අවශ්ය වේ. සාමාන්යයෙන්, මූලික සන්නිවේදනය සඳහා පහත විධාන අවශ්ය වේ:
විමසීම් කියවීමේ ධාරිතාව(10) කියවීම(10) ඉල්ලීම ඉන්ද්රිය පරීක්ෂණ ඒකකය සූදානම් ලිවීම(10)
Core වෙතින් 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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
45/174
ඉවරයිview
පන්ති සම්පාදන-කාල වින්යාසයන්
Silicon Labs USB Device 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_callbacks_ආපසු
p_scsi_callbacks යනු sl_usbd_msc_scsi_callbacks_t වර්ගයේ වින්යාස ව්යුහයකට දර්ශකයකි. පොදු usb උපාංග පන්තිය වන callbacks connect/disconnect වලට අමතරව, එය MSC පන්තියට තාර්කික ඒකකයේ සිදුවීමක් සිදු වූ විට කැඳවනු ලබන විකල්ප callback ශ්රිත කට්ටලයක් සපයයි. callbacks අවශ්ය නොවන්නේ නම් null pointer ( NULL ) මෙම තර්කයට ලබා දිය හැක.
මෙම වින්යාස ව්යුහයේ ඇති එක් එක් වින්යාස ක්ෂේත්රය පහත වගුවේ විස්තර කෙරේ.
වගුව – sl_usbd_msc_scsi_callbacks_t වින්යාස ව්යුහය
ක්ෂේත්ර
විස්තරය
.සක්රීය කරන්න
USB පන්ති අවස්ථාව සාර්ථකව සක්රිය කළ විට කැඳවනු ලැබේ.
.disable USB පන්ති අවස්ථාව අක්රිය කළ විට කැඳවනු ලැබේ.
ධාරකයෙන් තාර්කික ඒකකයක් ඉවත් කළ විට .host_eject ශ්රිතය ලෙස හැඳින්වේ.
ශ්රිත අත්සන
අවලංගු app_usbd_msc_scsi_enable(uint8_t class_nbr);
අවලංගු app_usbd_msc_scsi_disable(uint8_t class_nbr); අවලංගු app_usbd_msc_scsi_host_eject(uint8_t class_nbr, uint8_t lu_nbr);
USB උපාංග MSC පන්තියේ තාර්කික ඒකක වින්යාසය
MSC පන්ති අවස්ථාවකට තාර්කික ඒකකයක් එකතු කිරීම sl_usbd_msc_lun_add() ශ්රිතය ඇමතීමෙන් සිදු කෙරේ. මෙම ශ්රිතය පහත විස්තර කර ඇති එක් වින්යාස තර්කයක් ගනී.
p_lu_තොරතුරු
p_lu_info යනු sl_usbd_msc_scsi_lun_info_t වර්ගයේ ව්යුහයකට දර්ශකයකි. එහි අරමුණ තාර්කික ඒකකය පිළිබඳ තොරතුරු MSC පන්තියට සැපයීමයි.
මෙම වින්යාස ව්යුහයේ ඇති එක් එක් වින්යාස ක්ෂේත්රය පහත වගුවේ විස්තර කෙරේ.
වගුව – sl_usbd_msc_scsi_lun_info_t වින්යාස ව්යුහය
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
46/174
ඉවරයිview
ක්ෂේත්රය
විස්තරය
ක්ෂේත්රය
.scsi_lun_api_p tr tr .scsi_lun_api_p
විස්තරය
මෙම තාර්කික ඒකකය හසුරුවන මාධ්ය ධාවක API වෙත යොමු කරන්න. ගබඩා ධාවක පිළිබඳ වැඩි විස්තර සඳහා USB උපාංග MSC පන්ති ගබඩා ධාවක බලන්න.
.එකක් දැම්මා r_id _ p tr
.නිෂ්පාදන_හැඳුනුම්පත_ptr
.p ro d uct_ re v isi on_level .is_ re ad _only
තාර්කික ඒකකයේ වෙළෙන්දා හඳුනාගැනීම අඩංගු නූලකට යොමු කරන්න. නූලෙහි උපරිම දිග අක්ෂර 8 කි. තාර්කික ඒකකයේ නිෂ්පාදන හඳුනාගැනීම අඩංගු නූලකට යොමු කරන්න. නූලෙහි උපරිම දිග අක්ෂර 16 කි. නිෂ්පාදන සංශෝධන මට්ටම.
තාර්කික ඒකකය කියවිය යුතු ස්ථානයෙන් පමණක් දැකිය යුතුද යන්න දැක්වෙන ධජය view ධාරකයේ (සත්ය) හෝ නැත (අසත්ය) යන්න.
USB උපාංග MSC පන්ති ක්රමලේඛන මාර්ගෝපදේශය
මෙම කොටසින් MSC පන්තිය භාවිතා කරන ආකාරය පැහැදිලි කෙරේ.
USB උපාංග MSC පන්තිය ආරම්භ කිරීම ඔබගේ උපාංගයට USB උපාංග MSC SCSI පන්ති අවස්ථාවක් එක් කිරීම USB උපාංග MSC පන්තිය තාර්කික ඒකක හැසිරවීම
USB උපාංග MSC පන්තිය ආරම්භ කිරීම
ඔබගේ උපාංගයට MSC SCSI පන්ති ක්රියාකාරිත්වය එක් කිරීමට, පළමුව sl_usbd_msc_init() සහ sl_usbd_msc_scsi_init() ශ්රිතය ඇමතීමෙන් MSC මූලික පන්තිය සහ SCSI උප පන්තිය ආරම්භ කරන්න.
හිටපුampපහත දැක්වෙන්නේ sl_usbd_msc_init() සහ sl_usbd_msc_scsi_init() අමතන්නේ කෙසේද යන්නයි.
Example – sl_usbd_msc_init() සහ sl_usbd_msc_scsi_init() ඇමතීම
sl_status_t තත්ත්වය;
status = sl_usbd_msc_init(); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */
}
status = sl_usbd_msc_scsi_init(); if (status ! 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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
47/174
ඉවරයිview
uint8_t class_nbr; sl_status_t තත්ත්වය;
sl_usbd_msc_scsi_callbacks_t app_usbd_msc_scsi_callbacks = { .enable = NULL, .disable = NULL, .host_eject = NULL };
තත්ත්වය = sl_usbd_msc_scsi_create_instance(&app_usbd_msc_scsi_callbacks,0 &class_nbr);
if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */ }
ඔබගේ උපාංගයේ වින්යාසයන්ට MSC පන්ති අවස්ථාව එකතු කිරීම
ඔබ MSC පන්ති අවස්ථාවක් නිර්මාණය කළ පසු, ඔබට එය ශ්රිතය ඇමතීමෙන් වින්යාසයකට එක් කළ හැකිය.
sl_usbd_msc_add_to_configuration() .
හිටපු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)
(config_nbr_fs); (config_nbr_fs) ()
(2)
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
(1) sl_usbd_msc_scsi_create_instance() මගින් ආපසු ලබා දෙන වින්යාසයට එකතු කිරීමට පන්ති අංකය. (32) වින්යාස අංකය (මෙහි එය සම්පූර්ණ වේග වින්යාසයකට එකතු කිරීම).
USB උපාංග MSC පන්තියේ තාර්කික ඒකක හැසිරවීම
තාර්කික ඒකකයක් එකතු කිරීම ගබඩා මාධ්යයක් ඇමිණීම/වෙන් කිරීම
තාර්කික ඒකකයක් එකතු කිරීම
ඔබගේ MSC SCSI පන්ති අවස්ථාවට තාර්කික ඒකකයක් එකතු කරන විට, එය ගබඩා මාධ්යයකට (RAMDisk, SD කාඩ්පත, ෆ්ලෑෂ් මතකය, ආදිය) බැඳිය යුතුය. MSC පන්තිය ගබඩා මාධ්ය සමඟ සන්නිවේදනය කිරීමට ගබඩා ධාවකයක් භාවිතා කරයි. තාර්කික ඒකකය එකතු කරන විට මෙම ධාවකය සැපයිය යුතුය.
හිටපුampපහත දැක්වෙන්නේ sl_usbd_msc_scsi_lun_add() හරහා තාර්කික ඒකකයක් එකතු කරන ආකාරයයි.
Example – sl_usbd_msc_scsi_lun_add() හරහා තාර්කික ඒකකයක් එකතු කිරීම
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
48/174
ඉවරයිview
sl_usbd_msc_scsi_lun_t *lu_object_ptr = ශුන්ය;
sl_usbd_msc_scsi_lun_info_t ලු_තොරතුරු;
sl_status_t_අහස_තත්වය
තත්ත්වය;
lu_info.sl_usbd_msc_scsi_lun_api_t = &app_usbd_scsi_storage_block_device_api;
lu_info.vendor_id_ptr විසින් තවත්
= "සිලිකන් රසායනාගාර";
lu_info.නිෂ්පාදන_id_ptr
= “බ්ලොක් උපාංගය exampලෙ”;
lu_info.product_revision_level = 0x1000u;
lu_info.කියවීමට_පමණි
= අසත්ය;
තත්ත්වය = sl_usbd_msc_scsi_lun_add(class_nbr, &lu_info, &lu_object_ptr);
if (status ! 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 තත්ත්වය;
status = sl_usbd_msc_scsi_lun_attach(lu_object_ptr); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
…
(1)
තත්ත්වය = sl_usbd_msc_scsi_lun_detach(lu_object_ptr); (තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
…
(2)
status = sl_usbd_msc_scsi_lun_attach(lu_object_ptr) (status ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
…
(3)
(1) මේ මොහොතේ සිට, MSC උපාංගය ධාරකයකට සම්බන්ධ කර ඇත්නම්, ගබඩා මාධ්යයට ප්රවේශ විය හැක.
(2) MSC උපාංගය සත්කාරකයකට සම්බන්ධ කර ඇත්නම්, මාධ්ය දැන් ලබා ගත නොහැකි ලෙස දිස්වනු ඇත. මේ මොහොතේ, එම්බෙඩඩ් යෙදුමෙන් මාධ්ය මත මෙහෙයුම් සිදු කළ හැක.
(3) නැවතත්, MSC උපාංගය ධාරකයට සම්බන්ධ කර ඇත්නම්, ගබඩා මාධ්ය සම්බන්ධ වී ඇති බව දිස්වනු ඇත.
USB උපාංග MSC පන්ති ගබඩා ධාවක
USB උපාංග MSC පන්තියට ගබඩා මාධ්යයක් සමඟ සන්නිවේදනය කිරීමට ගබඩා ධාවකයක් අවශ්ය වේ. මේ මොහොතේ, සිලිකන් ලැබ්ස් ධාවක ලබා නොදේ.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
49/174
ඉවරයිview
TPY aa ධාවක AI යනු typedef sl_usbd_msc_scsi_lun_api_t මගින් අර්ථ දක්වා ඇත. ඔබ sl_usbd_msc_scsi_lun_add() සමඟ logic l ඒකකය dd කරන විට, අපගේ sl_usbd_msc_scsi_lun_api_t v rible ඔබගේ sl_usbd_msc_scsi_info_t v rible, p ssed s rgument සඳහා ඇතුළත් කළ යුතුය. ව්යුහයන් පිළිබඳ වැඩි විස්තර සඳහා USB Device MSC SCSI API කොටස බලන්න. ගබඩා ධාවක ක්රියාත්මක කිරීම RAM හි අංශ අරාවක් තරම් සරල විය හැකිය. ස්කන්ධ ගබඩා උපාංග සඳහා සාමාන්ය අංශ ප්රමාණය (එනම්, බ්ලොක් ප්රමාණය) 512 වන අතර CD-ROM සඳහා 2048 වේ.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
50/174
ඉවරයිview
ඉවරයිview
USB උපාංග විකුණුම්කරු පන්තිය
USB උපාංග විකුණුම්කරු පන්තිය අවසන්view USB උපාංග විකුණුම්කරු පන්තියේ සම්පත් අවශ්යතා Core වෙතින් USB උපාංග විකුණුම්කරු පන්තියේ වින්යාසය USB උපාංග විකුණුම්කරු පන්තියේ ක්රමලේඛන මාර්ගෝපදේශය Vendor පන්තිය මඟින් ඔබට හිමිකාර ප්රොටෝකෝලයක් ක්රියාත්මක කළ හැකි වෙළෙන්දා-විශේෂිත උපාංග තැනීමට ඉඩ සලසයි. එය ධාරකය සහ උපාංගය අතර දත්ත මාරු කිරීම සඳහා තොග අන්ත ලක්ෂ්ය යුගලයක් මත රඳා පවතී. තොග මාරු කිරීම් ව්යුහගත නොකළ දත්ත විශාල ප්රමාණයක් මාරු කිරීම සඳහා පහසු වන අතර දෝෂ හඳුනාගැනීමේ සහ නැවත උත්සාහ කිරීමේ යාන්ත්රණයක් භාවිතා කිරීමෙන් විශ්වාසදායක දත්ත හුවමාරුවක් සපයයි. තොග අන්ත ලක්ෂ්යවලට අමතරව, Vendor පන්තියට විකල්ප බාධා අන්ත ලක්ෂ්ය යුගලයක් ද භාවිතා කළ හැකිය. Vendor පන්තිය හැසිරවීමට OS සතුව ධාවකයක් තිබේ නම් ඕනෑම මෙහෙයුම් පද්ධතියකට (OS) Vendor පන්තිය සමඟ වැඩ කළ හැකිය. OS මත පදනම්ව, ධාවකය ස්වදේශීය හෝ වෙළෙන්දා-විශේෂිත විය හැකිය. උදාහරණයක් ලෙස, Microsoft Windows® යටතේ, ඔබේ යෙදුම වෙළෙන්දා උපාංගය සමඟ සන්නිවේදනය කිරීම සඳහා Microsoft විසින් සපයන ලද WinUSB ධාවකය සමඟ අන්තර් ක්රියා කරයි.
USB උපාංග විකුණුම්කරු පන්තිය අවසන්view
රූපය – Windows Host සහ Vendor Class අතර සාමාන්ය ගෘහ නිර්මාණ ශිල්පය, Vendor පන්තිය භාවිතා කරමින් ධාරකය සහ උපාංගය අතර සාමාන්ය ගෘහ නිර්මාණ ශිල්පය පෙන්වයි. මෙම උදාහරණයේදීampඔව්, සත්කාරක මෙහෙයුම් පද්ධතිය MS Windows වේ.
රූපය - MS Windows Host සහ Vendor Class අතර සාමාන්ය ගෘහ නිර්මාණ ශිල්පය
MS Windows පැත්තේ, යෙදුම USB පුස්තකාලයක් සමඟ අන්තර් ක්රියා කිරීමෙන් වෙළෙන්දා උපාංගය සමඟ සන්නිවේදනය කරයි. libusb වැනි පුස්තකාල, උපාංගයක් සහ එහි ආශ්රිත පයිප්ප කළමනාකරණය කිරීමට සහ පාලනය, තොග සහ බාධා අන්ත ලක්ෂ්ය හරහා උපාංගය සමඟ සන්නිවේදනය කිරීමට API එකක් පිරිනමයි.
උපාංග පැත්තෙන්, විකුණුම්කරු පන්තිය පහත අන්ත ලක්ෂ්ය වලින් සමන්විත වේ:
පෙරනිමි අන්ත ලක්ෂ්යය ලෙස හඳුන්වන පාලන IN සහ OUT අන්ත ලක්ෂ්ය යුගලයක්. තොග IN සහ OUT අන්ත ලක්ෂ්ය යුගලයක්.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
51/174
ඉවරයිview
අතුරු අන්තරාල IN සහ OUT අන්ත ලක්ෂ්ය යුගලයක්. මෙම යුගලය විකල්ප වේ. පහත වගුවේ විවිධ අන්ත ලක්ෂ්යවල භාවිතය දැක්වේ:
වගුව – විකුණුම්කරු පන්තියේ අන්ත ලක්ෂ්ය භාවිතය
අන්ත ලක්ෂ්ය දිශාව
IN පාලනය කරන්න
පාලනය කරන්න
පිටතට
තොග IN
උපාංග-සත්කාරක
>උපාංගයට සත්කාරකත්වය
උපාංග-සත්කාරක
තොග වශයෙන් පිටතට
බාධාව IN
බාධා කරන්න
පිටතට
උපාංගයට සත්කාරක
උපාංග-සත්කාරක
උපාංගයට සත්කාරක
භාවිතය
ගණන් කිරීම සඳහා සම්මත ඉල්ලීම් සහ විකුණුම්කරු-විශේෂිත ඉල්ලීම්.
ගණන් කිරීම සඳහා සම්මත ඉල්ලීම් සහ විකුණුම්කරු-විශේෂිත ඉල්ලීම්.
අමු දත්ත සන්නිවේදනය. හිමිකාර ප්රොටෝකෝලයකට අනුව දත්ත ව්යුහගත කළ හැක.
අමු දත්ත සන්නිවේදනය. හිමිකාර ප්රොටෝකෝලයකට අනුව දත්ත ව්යුහගත කළ හැක.
අමු දත්ත සන්නිවේදනය හෝ දැනුම්දීම. හිමිකාර ප්රොටෝකෝලයකට අනුව දත්ත ව්යුහගත කළ හැකිය. අමු දත්ත සන්නිවේදනය හෝ දැනුම්දීම. හිමිකාර ප්රොටෝකෝලයකට අනුව දත්ත ව්යුහගත කළ හැකිය.
උපාංග යෙදුමට ධාරකයට හෝ ඉන් දත්ත යැවීමට හෝ ලබා ගැනීමට තොග සහ බාධා අන්ත ලක්ෂ්ය භාවිතා කළ හැක. ධාරකය විසින් එවන ලද වෙළෙන්දා-නිශ්චිත ඉල්ලීම් විකේතනය කිරීමට එයට පෙරනිමි අන්ත ලක්ෂ්යය පමණක් භාවිතා කළ හැක. සම්මත ඉල්ලීම් අභ්යන්තරව කළමනාකරණය කරනු ලබන්නේ සිලිකන් ලැබ්ස් USB උපාංගයේ මූලික ස්ථරය මගිනි.
Core වෙතින් USB උපාංග විකුණුම්කරු පන්තියේ සම්පත් අවශ්යතා
ඔබ sl_usbd_vendor_add_to_configuration() ශ්රිතය හරහා වින්යාසයකට වෙළෙන්දා පන්ති අවස්ථාවක් එක් කරන සෑම අවස්ථාවකම, පහත සම්පත් හරයෙන් වෙන් කරනු ලැබේ.
සම්පත්
අතුරුමුහුණත් විකල්ප අතුරුමුහුණත් අන්ත ලක්ෂ්ය අතුරුමුහුණත් කණ්ඩායම්
ප්රමාණය
1 1 2 (ඔබ බාධා අන්ත ලක්ෂ්ය සක්රීය කර ඇත්නම් 4) 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 උපාංග විකුණුම්කරු පන්ති වින්යාසය
විකුණුම්කරු පන්තිය වින්යාස කිරීම සඳහා වින්යාස පරාමිති කාණ්ඩ දෙකක් භාවිතා කරයි:
USB උපාංග විකුණුම්කරු පන්තිය යෙදුම්-විශේෂිත වින්යාසයන් USB උපාංග විකුණුම්කරු පන්තියේ අවස්ථා වින්යාසයන්
USB උපාංග විකුණුම්කරු පන්තියේ යෙදුම්-විශේෂිත වින්යාසයන්
පළමුව, සිලිකන් ලැබ්ස් USB උපාංග වෙන්ඩර් පන්ති මොඩියුලය භාවිතා කිරීමට, ඔබේ යෙදුම් අවශ්යතා අනුව වෙන්ඩර් සම්පාදන-කාල වින්යාස නිර්වචන සකසන්න. ඒවා sl_usbd_core_config.h ශීර්ෂය තුළ නැවත සමූහගත කර ඇත. file විකුණුම්කරු අංශය යටතේ. ප්රමාණ වින්යාස කිරීමේ අරමුණ වන්නේ USB උපාංග මොඩියුලයට කොපමණ USB විකුණුම්කරු වස්තු වෙන් කළ යුතුද යන්න දැනුම් දීමයි.
පහත වගුවේ එක් එක් වින්යාස නිර්වචනය විස්තර කෙරේ.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
52/174
ඉවරයිview
වගුව - USB උපාංග විකුණුම්කරු වින්යාසය නිර්වචනය කරයි
මානකරන නම
විස්තරය
පෙරනිමි අගය
SL_USBD_VENDOR_CLASS_INSTANCE_QUANTITY sl_usbd_vendor_create_instance() 2 ශ්රිතයට ඇමතුමක් හරහා ඔබ වෙන් කරන පන්ති අවස්ථා ගණන.
SL_USBD_VENDOR_CONFIGURATIY වින්යාස ගණන. sl_usbd_vendor_add_to_configuration() ශ්රිතයට ඇමතුමක් හරහා වින්යාස එකකට හෝ කිහිපයකට විකුණුම්කරු පන්ති අවස්ථා 1ක් එක් කළ හැක.
USB උපාංග වෙළෙන්දා පන්ති අවස්ථා වින්යාසයන්
මෙම කොටසෙහි Vendor පන්ති අවස්ථා වලට අදාළ වින්යාසයන් නිර්වචනය කෙරේ.
පන්ති අවස්ථා නිර්මාණය intr_en පරතරය p_vendor_callbacks
පන්ති අවස්ථා නිර්මාණය
Vendor class instance එකක් නිර්මාණය කිරීම සිදු කරනු ලබන්නේ sl_usbd_vendor_create_instance() ශ්රිතය ඇමතීමෙන් වන අතර එය පහත විස්තර කර ඇති වින්යාස තර්ක තුනක් ගනී.
අන්තර්_සෙන්
බාධා අන්ත ලක්ෂ්ය යුගලයක් එකතු කළ යුතුද නැද්ද යන්න දැක්වෙන බූලියන්.
වටිනාකම
ඇත්ත බොරු
විස්තරය
IN/OUT අන්ත ලක්ෂ්ය යුගලයක් එකතු කර එබ්බවූ යෙදුමට ලබා ගත හැකි වනු ඇත. කිසිදු බාධා අන්ත ලක්ෂ්යයක් එකතු නොකෙරේ. තොග IN/OUT අන්ත ලක්ෂ්ය යුගලයක් පමණක් ලබා ගත හැකිය.
පරතරය
ඔබ intr_en true ලෙස සකසන්නේ නම්, ඔබට interrupt අන්ත ලක්ෂ්ය ඡන්ද පරතරය (මිලි තත්පර වලින්) නියම කළ හැකිය. ඔබ intr_en false ලෙස සකසන්නේ නම්, ඔබට interval 0 ලෙස සැකසිය හැකිය, මන්ද එය පන්තිය විසින් නොසලකා හරිනු ඇත.
p_වෙන්ඩර්_ඇමතුම්
p_vendor_callbacks යනු callback functions structure variable එකකට දර්ශකයකි. එය class specific control requests හැසිරවීමට ඔබට නියම කළ හැක. ඔබ class specific requests කිසිවක් භාවිතා නොකරන්නේ නම් හෝ දැනුම්දීම සක්රීය/අබල කිරීමට අවශ්ය නම්, ඔබට මෙය NULL ලෙස සැකසිය හැක.
හිටපුampපහත දැක්වෙන්නේ ඔබේ පන්ති නිශ්චිත ඉල්ලීම් හසුරුවන්නාගේ අපේක්ෂිත අත්සනයි.
Example – පන්ති-නිශ්චිත ඉල්ලීම් ශ්රිතයේ අත්සන
අවලංගු app_usbd_vendor_req_handle(uint8_t)
පන්තිය_nbr, (1)
const sl_usbd_setup_req_t *p_setup_req); (2)
sl_usbd_vendor_callbacks_t app_usbd_vendor_callback_functions =
{
.enable = NULL, .disable = NULL, .setup_req = app_usbd_vendor_req_handle,
};
(1) විකුණුම්කරු පන්ති අවස්ථා අංකය.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
53/174
ඉවරයිview
(2) සත්කාරකයෙන් ලැබුණු සැකසුම් ඉල්ලීමකට යොමු කරන්න.
USB උපාංග විකුණුම්කරු පන්ති ක්රමලේඛන මාර්ගෝපදේශය
මෙම කොටසින් Vendor පන්තිය භාවිතා කරන ආකාරය පැහැදිලි කෙරේ. USB උපාංග විකුණුම්කරු පන්තිය ආරම්භ කිරීම ඔබගේ උපාංගයට USB උපාංග විකුණුම්කරු පන්ති අවස්ථාවක් එක් කිරීම USB උපාංග විකුණුම්කරු පන්තිය භාවිතයෙන් සන්නිවේදනය කිරීම
USB උපාංග විකුණුම්කරු පන්තිය ආරම්භ කිරීම
ඔබගේ උපාංගයට Vendor Class ක්රියාකාරීත්වයක් එක් කිරීමට, පළමුව USBD_Vendor_Init() ශ්රිතය ඇමතීමෙන් පන්තිය ආරම්භ කරන්න. exampපහත දැක්වෙන්නේ sl_usbd_vendor_init() අමතන්නේ කෙසේද යන්නයි.
Example – sl_usbd_vendor_init() අමතමින්
sl_status_t තත්ත්වය;
status = sl_usbd_vendor_init(); if (status ! SL_STATUS_OK) { /* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එකතු කළ යුතුය. */ }
ඔබගේ උපාංගයට USB උපාංග විකුණුම්කරු පන්ති අවස්ථාවක් එක් කිරීම
ඔබගේ උපාංගයට විකුණුම්කරු පන්ති ක්රියාකාරිත්වය එක් කිරීමට, ඔබ පළමුව අවස්ථාවක් නිර්මාණය කළ යුතු අතර, පසුව එය ඔබගේ උපාංගයේ වින්යාසයන් වෙත එක් කළ යුතුය.
විකුණුම්කරු පන්ති අවස්ථාවක් නිර්මාණය කිරීම ඔබේ උපාංගයේ වින්යාසයන්ට විකුණුම්කරු පන්ති අවස්ථාවක් එකතු කිරීම
විකුණුම්කරු පන්ති අවස්ථාවක් නිර්මාණය කිරීම
sl_usbd_vendor_create_instance() ශ්රිතය ඇමතීමෙන් Vendor පන්තියේ අවස්ථාවක් සාදන්න.ampපහත දැක්වෙන්නේ පෙරනිමි තර්ක භාවිතා කර sl_usbd_vendor_create_instance() අමතන්නේ කෙසේද යන්නයි. sl_usbd_vendor_create_instance() වෙත යැවීමට වින්යාස තර්ක පිළිබඳ වැඩි විස්තර සඳහා, USB උපාංග විකුණුම්කරු පන්තියේ අවස්ථා වින්යාසයන් බලන්න.
Example – sl_usbd_vendor_create_instance() අමතමින්
uint8_t class_nbr; sl_status_t තත්ත්වය;
තත්ත්වය = sl_usbd_vendor_create_instance(අසත්ය,
(1)
0u,
(2)
app_usbd_vendor_callback_functions, (3)
&පන්තිය_nbr);
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
(1) මෙම පන්ති අවස්ථාව සමඟ බාධා අන්ත ලක්ෂ්ය නොමැත. (2) බාධා අන්ත ලක්ෂ්ය අක්රිය කර ඇති බැවින් පරතරය නොසලකා හරිනු ලැබේ.
ප්රකාශන හිමිකම © 2025 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
54/174
ඉවරයිview
(3) වෙළෙන්දා-විශේෂිත පන්ති ඉල්ලීම් හසුරුවන ඔබගේ යෙදුමේ කොටසක් වන ආපසු ඇමතුම් ශ්රිතය. වැඩි විස්තර සඳහා 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)
(config_nbr_fs); (config_nbr_fs) ()
(2)
(තත්වය ! SL_STATUS_OK) නම් {
/* දෝෂයක් ඇති විය. දෝෂ හැසිරවීම මෙහි එක් කළ යුතුය. */
}
(1) sl_usbd_vendor_create_instance() මඟින් ආපසු ලබා දෙන වින්යාසයට එකතු කිරීමට පන්ති අංකය. (2) වින්යාස අංකය (මෙහි එය සම්පූර්ණ වේග වින්යාසයකට එකතු කිරීම).
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_ re ad _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_ re ad _inte rrup t_sy nc() sl_usb d _v e nd o r_ re ad _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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
55/174
ඉවරයි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
__පෙළගැස්වූ(4) uint8_t rx_buf[2];
__පෙළගැස්වූ(4) uint8_t tx_buf[2];
uint32_t
xfer_len; მარ
sl_status_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.
(4) යෙදුම මඟින් ආරම්භක සම්ප්රේෂණ බෆරය සපයයි.
(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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
56/174
ඉවරයිview
void app_usbd_vendor_comm (uint8_t class_nbr)
{
__පෙළගැස්වූ(4) uint8_t rx_buf[2];
__පෙළගැස්වූ(4) uint8_t tx_buf[2];
sl_status_t_අහස_තත්වය
තත්ත්වය;
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,
NULL
(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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
57/174
ඉවරයි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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
58/174
ඉවරයිview
#define APP_VENDOR_REQ_NO_DATA
0x01u
#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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
59/174
ඉවරයි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):
ටයිප්ඩෙෆ් ව්යුහය {
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 stagඊ වර්තමාන.
*/
} 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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
60/174
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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
61/174
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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
62/174
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 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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
63/174
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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
64/174
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 සිලිකන් රසායනාගාර. සියලු හිමිකම් ඇවිරිණි.
65/174
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 |