پیامهای Capabilities در USB PD؛ ساختار PDO و APDO از Fixed تا PPS و AVS
در مقاله نهم، آرایه تواناییهای Source و نیازهای Sink را در سطح بیت رمزگشایی میکنیم؛ از PDOهای ثابت، متغیر و باتری تا APDOهای SPR PPS، SPR AVS و EPR AVS.
دامنه و منبع این مقاله
این متن فقط بر Section 6.4 و Section 6.4.1، صفحات ۱۳۸ تا ۱۵۴ سند USB Power Delivery Specification, Revision 3.2, Version 1.1, 2024-10 استوار است. ساختار Request و RDO از Section 6.4.2 آغاز میشود و عمداً به مقاله ۱۰ واگذار شده است.
Capabilities فهرست انتخابهای توان است
Source آنچه میتواند تحویل دهد و Sink آنچه برای کارکرد نیاز دارد را با Data Objectهای ۳۲بیتی توصیف میکند.
در مقاله ۸ دیدیم که Control Message هیچ Data Objectی ندارد. نقطه مقابل آن Data Message است: Header پیام باید NDO غیرصفر داشته باشد و پس از آن یک یا چند Data Object قرار میگیرد. نوع Message از فیلد پنجبیتی Message Type در Header مشخص میشود و همان نوع تعیین میکند Objectهای بعدی باید بهعنوان PDO، RDO، VDO، BDO، BSDO یا ADO تفسیر شوند. بنابراین یک کلمه ۳۲بیتی بهتنهایی معنای کامل ندارد؛ ابتدا باید زمینه پیام را شناخت.
Source_Capabilities و Sink_Capabilities از مجموعهای مرتب از Power Data Objectها ساخته میشوند. Source با این مجموعه سقفها و حالتهای قابل عرضه را Advertise میکند. Sink نیز نیازهای توان خود را در Sink_Capabilities اعلام میکند. در مذاکره SPR، Sink بعداً یک PDO پیشنهادی Source را با شماره موقعیت انتخاب میکند؛ اما خود انتخاب و ساخت RDO موضوع مقاله بعد است.
همه کمینهها و بیشینههای ولتاژ و جریان در PDO مقدار مطلق هستند. از طرف دیگر، مذاکره نباید جریانی بیش از تحمل Receptacle یا Plug متصل ایجاد کند. به همین دلیل Source باید پیشنهادهای خود را با محدودیت کانکتور و کابل سازگار کند و Sink نیز فقط از میان تواناییهای واقعاً Advertiseشده درخواست بسازد. خواندن PDO بدون توجه به کابل میتواند تصویری غیرواقعی از توان قابل استفاده بدهد.
Data Message
پس از Message Header حداقل یک Data Object سیودوبیتی وجود دارد.
نوع اصلی PDO
دو بیت بالایی میان Fixed، Battery، Variable و APDO تمایز میگذارند.
زیرنوع APDO
وقتی دو بیت بالا 11b باشد، این دو بیت PPS یا AVS را تعیین میکنند.
Table 6.6؛ Data Message را از Header بشناسید
جدول 6.6 کد Message Type، فرستنده مجاز و نوع SOP معتبر هر Data Message را مشخص میکند. Source_Capabilities با کد 0_0001 از Source یا DRP و Sink_Capabilities با کد 0_0100 از Sink یا DRP ارسال میشود؛ هر دو فقط روی SOP معتبرند. Request نیز SOP only است، در حالی که BIST، Enter_USB، Revision و Vendor_Defined میتوانند در خانواده SOP* کاربرد داشته باشند.
فهرست رسمی Data Messageها، فرستنده مجاز و Start of Packet معتبر.
| کد | نوع پیام | فرستنده | SOP | کارکرد |
|---|---|---|---|---|
| 0_0001 | Source_Capabilities | Source یا DRP | SOP only | اعلام تواناییهای Source |
| 0_0010 | Request | Sink | SOP only | انتخاب و درخواست توان |
| 0_0011 | BIST | Tester، Source یا Sink | SOP* | آزمون انطباق PHY |
| 0_0100 | Sink_Capabilities | Sink یا DRP | SOP only | اعلام نیازهای Sink |
| 0_0101 / 0_0110 / 0_0111 | Battery_Status / Alert / Get_Country_Info | Source یا Sink | SOP only | وضعیت، هشدار یا اطلاعات کشور |
| 0_1000 | Enter_USB | DFP | SOP* | ورود به USB Mode |
| 0_1001 / 0_1010 | EPR_Request / EPR_Mode | Sink / Source یا Sink | SOP only | مذاکره و کنترل EPR |
| 0_1011 / 0_1100 / 0_1111 | Source_Info / Revision / Vendor_Defined | مطابق نوع | SOP یا SOP* | اطلاعات منبع، نسخه یا داده سازنده |
درخت تشخیص PDO و APDO
اولین مرحله Decode خواندن B31..30 است. Fixed برای ولتاژ تنظیمشده و ثابت است؛ Variable محدوده یک منبع با تنظیم ضعیفتر را نشان میدهد؛ Battery منبعی را توصیف میکند که میتواند مستقیم به VBUS متصل شود؛ و مقدار 11b قالب توسعهیافته APDO را فعال میکند. در APDO، B29..28 زیرنوع را مشخص میکند: 00b برای SPR PPS، 01b برای EPR AVS، 10b برای SPR AVS و 11b رزرو است.
تشخیص نوع اصلی PDO از بیتهای B31..30.
تشخیص زیرنوع APDO از بیتهای B29..28.
ساختار Fixed Source PDO و جایگاه Capability Flagها، Voltage و Maximum Current.
| B31..30 | نوع PDO | پارامتر اصلی |
|---|---|---|
| 00b | Fixed Supply | ولتاژ و جریان |
| 01b | Battery | بازه ولتاژ و توان |
| 10b | Variable | بازه ولتاژ و جریان |
| 11b | APDO | قالب توسعهیافته |
| B29..28 | زیرنوع APDO | محدوده |
|---|---|---|
| 00b | SPR PPS | SPR، تا ۲۱ ولت |
| 01b | EPR AVS | EPR، ۱۵ تا ۴۸ ولت |
| 10b | SPR AVS | SPR، ۹ تا ۲۰ ولت |
| 11b | Reserved | نباید استفاده شود |
تله رایج Decoder
B29..28 همیشه زیرنوع نیست. فقط وقتی B31..30 برابر 11b باشد باید آن را APDO Type خواند. در Fixed PDO همین بیتها Capability Flag هستند و در Variable یا Battery بخشی از Maximum Voltage محسوب میشوند.
Fixed Supply PDO منبع؛ فقط ولتاژ و جریان نیست
در Fixed Source PDO، B19..10 ولتاژ را با واحد 50mV و B9..0 بیشینه جریان را با واحد 10mA حمل میکند. اما اولین PDO که باید vSafe5V باشد نقش دیگری هم دارد: بیتهای 29 تا 23 اطلاعات ثابت Port را منتقل میکنند. در همه Fixed PDOهای بعدی این بیتها باید صفر باشند. بنابراین اگر Analyzer همان Flagها را در PDO مربوط به 9V یا 15V گزارش کند، Object مشکوک یا نامعتبر است.
| بیتها | فیلد | تفسیر |
|---|---|---|
| B31..30 | Fixed Supply = 00b | انتخاب قالب ثابت |
| B29 | Dual-Role Power | پشتیبانی از PR_Swap |
| B28 | USB Suspend Supported | اعمال قواعد Suspend پس از قرارداد |
| B27..25 | Unconstrained / USB Comm / DRD | منبع نامحدود، ارتباط USB و Dual-Role Data |
| B24 / B23 | Unchunked Extended / EPR Capable | پیام Extended بدون Chunk و توانایی EPR |
| B22 / B21..20 | Reserved / Peak Current | بیت رزرو باید صفر و دو بیت بعدی کد اضافهبار است |
| B19..10 | Voltage | Raw × 50mV |
| B9..0 | Maximum Current | Raw × 10mA |
نمونه Decode: 5V / 3A
برای 5V، مقدار خام Voltage برابر 5000÷50 یعنی 100 است. برای 3A، مقدار خام Current برابر 3000÷10 یعنی 300 میشود. اگر Flagها صفر و Peak Current نیز 00b باشد، داده پایین Object از ترکیب 100 در B19..10 و 300 در B9..0 ساخته میشود.
5V / 0mA معنای ویژه دارد
Source فاقد توانایی قابل عرضه میتواند Fixed PDO با 5V و 0mA بفرستد. همین الگو برای هدایت Sink به کممصرفترین وضعیت نیز استفاده میشود. صفر بودن جریان را نباید بهاشتباه «PDO خراب» یا «حداقل یک آمپر» تفسیر کرد.
Dual-Role Power و Dual-Role Data قابلیتهای Static هستند و باید در Source_Capabilities و Sink_Capabilities یک دستگاه همخوان باقی بمانند. USB Communications Capable تنها وقتی یک است که Port روی خطوط داده USB مانند D+/D− یا مسیرهای SuperSpeed توان ارتباط داشته باشد.
بیت EPR Capable در Source ثابت است و برای منبعی تنظیم میشود که برای بیش از 100W طراحی شده و EPR Mode را پشتیبانی میکند. حتی با یک بودن این بیت، ورود به EPR فقط زمانی مجاز است که کابل و Sink نیز EPR Capable باشند. پس این Flag اعلام آمادگی معماری است، نه اثبات اینکه همین لحظه قرارداد EPR برقرار است.
Peak Current، Variable و Battery در سمت Source
Source فقط موظف است جریان Operating Current قرارداد را تحویل دهد، اما میتواند قابلیت اضافهبار کوتاهمدت را با Peak Current Advertise کند. کد 00b یعنی پیک برابر IoC است یا جزئیات Extended باید از Source_Capabilities_Extended گرفته شود. سه کد دیگر سه پروفایل اضافهبار با درصد جریان، مدت و Duty Cycle مشخص هستند. این قابلیت برای اتصال مستقیم Port-to-Port است و نباید از طریق Hub به Sink پاییندست بازتاب داده شود.
پروفایلهای اضافهبار کوتاهمدت Source بر اساس Peak Current.
بازه ولتاژ و بیشینه جریان Variable Source PDO.
بازه ولتاژ و Maximum Allowable Power در Battery Source PDO.
ساختار SPR PPS شامل محدوده ولتاژ، Maximum Current و PPS Power Limited.
| Peak | ۱ms @ ۵٪ | ۲ms @ ۱۰٪ | ۱۰ms @ ۵۰٪ |
|---|---|---|---|
| 00b | پیک برابر IoC یا مراجعه به Extended Capabilities | ||
| 01b | 150% IoC | 125% IoC | 110% IoC |
| 10b | 200% IoC | 150% IoC | 125% IoC |
| 11b | 200% IoC | 175% IoC | 150% IoC |
Variable Source PDO
- B31..30 = 10b
- B29..20: بیشینه ولتاژ با واحد 50mV
- B19..10: کمینه ولتاژ با واحد 50mV
- B9..0: بیشینه جریان با واحد 10mA
ولتاژ واقعی باید در تمام تغییرات داخل این بازه بماند و کمینه Advertiseشده نباید کمتر از ۸۰٪ بیشینه باشد. این PDO یک ولتاژ دقیق لحظهای وعده نمیدهد؛ فقط محدوده معتبر منبع را توصیف میکند.
Battery Source PDO
- B31..30 = 01b
- B29..20: بیشینه ولتاژ با واحد 50mV
- B19..10: کمینه ولتاژ با واحد 50mV
- B9..0: بیشینه توان با واحد 250mW
تفاوت کلیدی این است که Battery بهجای Current، Power حمل میکند. باتری باید توان Advertiseشده را در سراسر بازه ولتاژ ارائه دهد و Sink میتواند ولتاژ باتری را مانیتور کند.
APDOهای Source؛ PPS با AVS یکی نیست
APDO خروجی قابل تنظیم را معرفی میکند. در SPR PPS، ولتاژ عملیاتی با گام 20mV تنظیم میشود؛ اما فیلدهای کمینه و بیشینه داخل خود APDO با واحد 100mV رمز میشوند. در SPR AVS و EPR AVS هم محدوده ولتاژ با واحد 100mV بیان و تنظیم ولتاژ در گامهای 100mV انجام میشود. تفاوت مهمتر این است که PPS محدودکننده جریان برنامهپذیر دارد، اما AVS از نظر محدودکردن جریان مانند Fixed Supply عمل میکند.
ساختار SPR AVS و فیلدهای Maximum Current برای بازههای ۱۵ و ۲۰ ولت.
ساختار EPR AVS شامل Peak Current، محدوده ولتاژ و PDP پورت.
پروفایلهای اضافهبار کوتاهمدت ویژه Source EPR AVS.
| نوع Source APDO | Type | بازه | فیلدهای اصلی | واحد |
|---|---|---|---|---|
| SPR PPS | 11 00 | ۵ تا ۲۱ ولت | PPS Power Limited، Vmax، Vmin، Imax | V:100mV / I:50mA |
| SPR AVS | 11 10 | ۹ تا ۲۰ ولت | Peak، Max Current 15V، Max Current 20V | I:10mA |
| EPR AVS | 11 01 | ۱۵ تا ۴۸ ولت | Peak، Vmax، Vmin، PDP | V:100mV / PDP:1W |
SPR PPS — Table 6.13
B27 بیت PPS Power Limited است؛ B24..17 بیشینه ولتاژ، B15..8 کمینه ولتاژ و B6..0 بیشینه جریان را حمل میکند. B26..25، B16 و B7 رزرو هستند و باید صفر باشند. وقتی Power Limited صفر است Source باید Imax را تا Vmax تحویل دهد. وقتی یک است، Source میتواند در ناحیه اختیاری از PDP نامی فراتر رود، اما رفتار پایه PPS و پذیرش درخواست جریان تا سقف Imax همچنان طبق قواعد این APDO باقی میماند.
SPR AVS — Table 6.14
این APDO محدوده ۹ تا ۲۰ ولت را با دو سقف جریان توصیف میکند. B19..10 باید با Maximum Current فیلد Fixed PDO پانزدهولت برابر باشد و برای بازه ۹ تا ۱۵ ولت بهکار میرود. B9..0 با Maximum Current Fixed PDO بیستولت برابر است و بازه ۱۵ تا ۲۰ ولت را پوشش میدهد؛ اگر سقف AVS فقط ۱۵ ولت باشد این فیلد صفر میشود. B27..26 همان تعریف Peak Current جدول 6.10 را دارد.
EPR AVS — Table 6.15
B25..17 و B15..8 محدوده ۱۵ تا ۴۸ ولت را با واحد 100mV میسازند؛ B7..0 نیز PDP پورت AVS را با واحد یک وات ثبت میکند. B27..26 Peak Current ویژه Source EPR AVS است، ولی الگوهای درصدی آن با جدول Fixed Peak Current یکساناند. Source بدون قابلیت اضافهبار این دو بیت را 00b میگذارد؛ استفاده از قابلیتهای Extended نیز ابتدا به Get_Source_Cap_Extended نیاز دارد.
PDOهای Sink؛ نیاز عملیاتی بهجای ظرفیت عرضه
قالب کلی Sink PDO شبیه Source است، اما معنای فیلدهای پایین تغییر میکند. Fixed Sink در B9..0 مقدار Operational Current را میگذارد؛ Variable Sink نیز جریان عملیاتی لازم در بازه ولتاژ را اعلام میکند؛ و Battery Sink توان عملیاتی را با واحد 250mW بیان میکند. مقدار عملیاتی میتواند بیشترین نیاز دستگاه یا فقط مقدار لازم برای یکی از Modeهای عملکرد آن باشد.
ساختار Fixed Sink PDO و فیلدهای Capability، Fast Role Swap، Voltage و Operational Current.
بازه ولتاژ و Operational Current موردنیاز Variable Sink.
بازه ولتاژ و Operational Power موردنیاز Battery Sink.
| قالب Sink | Type | ولتاژ | فیلد پایین | واحد |
|---|---|---|---|---|
| Fixed | 00b | B19..10 | Operational Current | 50mV / 10mA |
| Variable | 10b | Vmax و Vmin | Operational Current | 50mV / 10mA |
| Battery | 01b | Vmax و Vmin | Operational Power | 50mV / 250mW |
Flagهای اولین Fixed Sink PDO
vSafe5V در سمت Sink نیز اطلاعات Port را حمل میکند: B29 Dual-Role Power، B28 Higher Capability، B27 Unconstrained Power، B26 USB Communications Capable و B25 Dual-Role Data. بیتهای 24..23 جریان موردنیاز پس از Fast Role Swap را کد میکنند و B22..20 باید صفر باشند. همه Fixed PDOهای بعدی باید بیتهای 29..20 را صفر بگذارند.
Higher Capability چه میگوید؟
اگر Sink برای عملکرد کامل به بیش از vSafe5V، مثلاً 15V، نیاز داشته باشد این بیت را یک میکند. دستگاه همچنان vSafe5V را پشتیبانی میکند، اما 5V تمام قابلیتهای آن را فعال نمیکند. در عیبیابی، روشن بودن این بیت توضیح میدهد چرا دستگاه با شارژر ساده روشن میشود ولی عملکرد یا توان کامل ندارد.
Fast Role Swap Current در B24..23
00b یعنی FRS پشتیبانی نمیشود؛ 01b جریان Default USB Port، 10b مقدار 1.5A@5V و 11b مقدار 3.0A@5V را میخواهد. Initial Source نباید وقتی این فیلد صفر است FR_Swap Request بفرستد. New Source نیز تنها زمانی FRS را انجام میدهد که بتواند جریان اعلامشده را تأمین کند و Rp آن همان سطح یا بیشتر را نشان دهد.
APDOهای Sink و تقارن کنترلشده با Source
Sink APDO بازهای را مشخص میکند که دستگاه در آن کار میکند و مقدار جریان یا PDP لازم برای پشتیبانی کامل عملکرد را میدهد. ساختار PPS Sink تقریباً با PPS Source یکسان است، اما B27 در Source معنای PPS Power Limited دارد و در Sink رزرو است. همین تفاوت کوچک دلیل کافی است که Decoder قبل از نمایش نام فیلد، جهت پیام را تشخیص دهد.
ساختار SPR PPS Sink شامل محدوده ولتاژ و Maximum Current موردنیاز.
بیشینه جریان موردنیاز Sink در بازههای ۱۵ و ۲۰ ولت SPR AVS.
محدوده ولتاژ و PDP موردنیاز Sink در EPR AVS Mode.
Sink SPR PPS
B24..17 برای Vmax، B15..8 برای Vmin و B6..0 برای Imax است. واحد ولتاژ 100mV و جریان 50mA است. B27..25، B16 و B7 رزرو و صفر هستند.
Sink SPR AVS
B19..10 بیشینه جریان موردنیاز تا 15V و B9..0 بیشینه جریان موردنیاز تا 20V را با واحد 10mA حمل میکند. B27..20 رزرو است.
Sink EPR AVS
Vmax در B25..17، Vmin در B15..8 و PDP موردنیاز در B7..0 قرار دارد. واحد ولتاژ 100mV و PDP یک وات است.
ترتیب ساخت SPR Capabilities Message
Capabilities یک لیست آزاد و بیترتیب نیست. پیام SPR باید حداقل یک PDO برای vSafe5V داشته باشد و اطلاعات Port را در همان Object نخست حمل کند. پس از آن حداکثر شش PDO دیگر قرار میگیرد. Position هر PDO بعداً برای انتخاب Sink اهمیت دارد؛ در نتیجه جابهجایی ترتیب بدون بازسازی درست پیام میتواند معنای یک درخواست بعدی را عوض کند.
- ۱. vSafe5V Fixed
همیشه اولین (A)PDO است.
- ۲. Fixedهای دیگر
از کمترین به بیشترین ولتاژ.
- ۳. Battery
بر اساس Minimum Voltage صعودی.
- ۴. Variable
بر اساس Minimum Voltage صعودی.
- ۵. SPR AVS
اگر وجود داشته باشد.
- ۶. SPR PPS
بر اساس Maximum Voltage صعودی.
ساخت پیام با Message Header، یک PDO اجباری vSafe5V و حداکثر شش PDO دیگر.
نمونه Source_Capabilities با NDO برابر ۲ و Fixed PDOهای ۵ و ۹ ولت.
مثال ۲۷ وات استاندارد
شکل 6.13 یک Source با دو Fixed PDO را نشان میدهد: 5V و 9V. Header مقدار NDO را 2 میگذارد، PDO نخست vSafe5V است و PDO دوم 9V را ارائه میکند. اگر سقف توان خروجی 27W در 9V باشد، بیشینه جریان آن PDO برابر 3A خواهد بود. Sink برای شناخت گزینهها باید هر دو Object را مستقل Decode کند؛ جمع توان PDOها معنای «توان کل 42 وات» ندارد، زیرا آنها انتخابهای جایگزیناند نه خروجیهای همزمان.
Source_Capabilities چه زمانی ارسال میشود؟
Source این Data Message را برای Advertiseکردن تواناییها یا در پاسخ به Get_Source_Cap میفرستد. پس از Hard Reset، روشنشدن یا اتصال Plug، پیام طبق SourceCapabilityTimer تکرار میشود تا GoodCRC دریافت شود و حداقل تعداد nCapsCount تلاش انجام گیرد. این تکرار مربوط به تحویل مطمئن پیام است و نباید بهعنوان چند مجموعه مستقل توانایی ثبت شود.
وقتی تواناییها تغییر میکنند Source باید مجموعه جدید را ارسال کند. در منبع چندپورتی، تغییر توان قابل تخصیص به یک Port نیز میتواند باعث Advertisement تازه شود. Source نباید دو PDO از یک نوع با ولتاژ یکسان بفرستد؛ در چنین وضعی فقط PDO با بیشترین جریان باید عرضه شود.
یک Sink در SPR باید هر Source_Capabilities را ارزیابی کند و با Request پاسخ دهد. اگر مجموعه جدید توان جاری را دیگر پوشش ندهد، Sink باید برای شرایط تازه مذاکره کند. رفتار دقیق Request در مقاله ۱۰ باز میشود، اما نکته عیبیابی این است که Advertisement جدید یک رویداد فعال در قرارداد است، نه صرفاً اطلاعات تزئینی.
Accessory-support Sink که VCONN میدهد ولی VBUS را Source نمیکند میتواند 5V/0mA Advertise کند تا Policy Engine به PE_SRC_Ready برسد و فرایند Alt Mode ممکن شود. این مورد نیز نشان میدهد یک Capabilities Message همیشه وعده تأمین توان واقعی و قابل مصرف نیست؛ زمینه Power Role و هدف State Machine اهمیت دارد.
قاعده ویژه قرارداد PPS
در Explicit Contract برنامهپذیر، Sink باید دستکم هر tPPSRequest یک درخواست برنامهپذیر تازه بفرستد. Source پس از پذیرش Programmable RDO، اگر تا tPPSTimeout درخواست برنامهپذیر بعدی نرسد Hard Reset میکند. این پایش با پذیرش یک RDO ثابت، Variable یا Battery، با PR_Swap، Hard Reset یا Error Recovery متوقف میشود.
Sink_Capabilities و رفتار DRP
Sink_Capabilities در پاسخ به Get_Sink_Cap فرستاده میشود و باید حداقل یک vSafe5V PDO داشته باشد. فهرست میتواند چند سطح نیاز عملیاتی را توصیف کند. اگر Sink برای عملکرد کامل به بیش از 5V وابسته است، Higher Capability در Fixed 5V PDO آن تنظیم میشود.
اگر Sink اتصال vSafe5V را تشخیص دهد اما تا پایان SinkWaitCapTimer هیچ Source_Capabilities دریافت نکند، باید Hard Reset آغاز کند. این قاعده در Trace به تشخیص Source خاموش، Packet ازدسترفته یا مشکل State Machine کمک میکند: وجود 5V روی VBUS بهتنهایی برای رسیدن به مذاکره PD کافی نیست.
DRP وقتی Source است Source_Capabilities را Advertise میکند، ولی مستقل از نقش فعلی نیز باید به Get_Source_Cap پاسخ دهد. به همین ترتیب Sink_Capabilities هنگام Sinkبودن طبیعی است، اما DRP در نقش دیگر هم باید به Get_Sink_Cap پاسخ مناسب بدهد. Decoder نباید صرف دیدن نام پیام نتیجه بگیرد نقش لحظهای فرستنده حتماً با نام Capabilities یکسان است.
در EPR یک استثنای مهم وجود دارد: Sink در EPR Mode اگر Source_Capabilities را در پاسخ به Get_Source_Cap دریافت کند، Request نمیفرستد؛ اگر همین پیام بهصورت unsolicited در EPR برسد باید Hard Reset کند. EPR Capabilities ساخت و قواعد جداگانهای دارد که استاندارد آن را در Section 6.5.15 تعریف کرده است.
روش عملی Decode در Analyzer
- ۱. Header را تثبیت کنید.
NDO باید غیرصفر باشد. Message Type را بخوانید تا بدانید Objectهای بعدی PDO هستند یا قالب دیگری دارند. SOP و فرستنده مجاز را نیز با Table 6.6 کنترل کنید.
- ۲. هر Object را با Position ثبت کنید.
PDO1 تا PDO7 را جدا نگه دارید. Position بخشی از هویت گزینه است و در RDO بعدی به همان جایگاه ارجاع داده میشود.
- ۳. ابتدا B31..30 را Decode کنید.
00 Fixed، 01 Battery، 10 Variable و 11 APDO است. تنها در حالت APDO سراغ B29..28 برای تشخیص PPS یا AVS بروید.
- ۴. جهت Source یا Sink را اعمال کنید.
یک Bit Range ممکن است در Source «Maximum Current» و در Sink «Operational Current» باشد. نامگذاری Field بدون زمینه پیام خطاست.
- ۵. واحد همان قالب را ضرب کنید.
Fixed/Variable از 50mV و 10mA، Battery از 250mW، PPS از 100mV و 50mA، و EPR AVS برای PDP از 1W استفاده میکند. گام تنظیم PPS برابر 20mV است، هرچند Range داخل APDO با 100mV کد میشود.
- ۶. قواعد ساخت را اعتبارسنجی کنید.
PDO اول باید Fixed 5V باشد؛ ترتیب Objectها باید صحیح باشد؛ Reservedها صفر باشند؛ Capability Flagها فقط در PDO اول ظاهر شوند؛ و گزینه تکراری همنوع و همولتاژ وجود نداشته باشد.
فرمولهای سریع
- VFixed = raw × 0.05V
- IFixed = raw × 0.01A
- PBattery = raw × 0.25W
- VPPS/AVS range = raw × 0.1V
- IPPS = raw × 0.05A
- PEPR AVS = raw × 1W
کنترل توان محاسبهشده
برای Fixed و Variable میتوان سقف تقریبی را از V×I بهدست آورد، اما Battery مستقیماً Power را میدهد و EPR AVS PDP را Advertise میکند. در PPS، Vmax×Imax همیشه به معنی توان نامی قابل تحویل در کل بازه نیست؛ بیت Power Limited و PDP منبع نیز باید دیده شود.
اشتباههای رایج در خواندن Capabilities
جمعزدن توان PDOها: PDOها گزینههای جایگزین هستند، نه ریلهایی که Sink همزمان همه را مصرف کند.
جابهجایی Battery و Variable: کد درست 01b برای Battery و 10b برای Variable است.
خواندن همه جریانها با 10mA: PPS از واحد 50mA و Battery از توان 250mW استفاده میکند.
برابر دانستن Range و Step: فیلد Range در PPS واحد 100mV دارد، ولی ولتاژ عملیاتی PPS با گام 20mV تنظیم میشود.
تکرار Flagها در همه Fixed PDOها: اطلاعات Port فقط در PDO اول vSafe5V معتبر است.
نادیدهگرفتن کابل: Advertisement باید با جریان مجاز Connector و Plug محدود شده باشد.
یکی دانستن PPS و AVS: PPS محدودکننده جریان برنامهپذیر دارد؛ AVS ندارد.
برداشت نقش از نام پیام: DRP باید حتی در نقش مقابل به Get_Source_Cap یا Get_Sink_Cap پاسخ دهد.
جمعبندی مقاله ۹
Capabilities Message آرایهای مرتب از PDO/APDOهای ۳۲بیتی است. دو بیت B31..30 نوع اصلی و در APDO دو بیت B29..28 زیرنوع را تعیین میکند.
Fixed و Variable معمولاً ولتاژ و جریان، Battery بازه ولتاژ و توان، PPS محدوده قابل برنامهریزی و جریان، SPR AVS دو سقف جریان، و EPR AVS محدوده ولتاژ و PDP را حمل میکنند.
اولین Fixed 5V PDO علاوه بر پارامتر توان، Capability Flagهای Port را دارد. ترتیب Objectها، صفر بودن Reservedها، واحد هر فیلد و تفاوت معنای Source و Sink برای Decode معتبر ضروری است.
در مقاله بعدی
در مقاله ۱۰ ساختار Request Data Object را باز میکنیم و میبینیم Sink چگونه با Object Position، جریان یا توان موردنیاز، Capability Mismatch و Flagهای مذاکره یکی از PDOهای Source را انتخاب میکند.