تولزبازار
پیام‌های داده‌ای USB PD؛ Battery_Status، Alert، Country، Enter_USB، EPR و Source_Info
1405/05/24 7 دقیقه مطالعه

پیام‌های داده‌ای USB PD؛ Battery_Status، Alert، Country، Enter_USB، EPR و Source_Info

مجموعه مرجع تخصصی USB Power Delivery - مقاله ۱۲ از ۵۲

پیام‌های داده‌ای USB PD؛ Battery_Status، Alert، Country، Enter_USB، EPR و Source_Info

در مقاله دوازدهم، پیام‌های داده‌ای Sectionهای 6.4.5 تا 6.4.12 را بررسی می‌کنیم: وضعیت باتری و رخدادهای حفاظتی، درخواست اطلاعات کشور، ورود کنترل‌شده به USB4 و USB 3.2، ساختار EPR_Request، ورود و خروج EPR Mode، اطلاعات واقعی توان Port و در پایان Revision Message.

دامنه و منبع این مقاله

این مقاله فقط بر Sections 6.4.5 تا 6.4.12، صفحات ۱۹۶ تا ۲۱۴ سند USB Power Delivery Specification, Revision 3.2, Version 1.1, 2024-10 استوار است. Extended Messageهای قابلیت، وضعیت، باتری و اطلاعات سازنده از Section 6.5 آغاز می‌شوند و برای مقاله ۱۳ محفوظ مانده‌اند.

از گزارش وضعیت تا تغییر Mode؛ چرا این پیام‌ها کنار هم قرار گرفته‌اند؟

این گروه از Data Messageها وضعیت داخلی دستگاه، رخدادها، قابلیت مسیر داده و شرایط ورود به EPR را در قالب Data Objectهای مشخص به Port Partner منتقل می‌کند.

مذاکره توان USB PD فقط به Source_Capabilities و Request محدود نیست. پس از شکل‌گیری ارتباط، دو Port باید بتوانند وضعیت باتری را گزارش کنند، رخداد حفاظتی یا تغییر وضعیت را اعلام کنند، اطلاعات مربوط به کشور را بخواهند، Mode مناسب USB را در Port Partner و کابل فعال کنند و در صورت وجود شرایط لازم، از SPR به EPR وارد شوند.

بعضی پیام‌های این مقاله پاسخ مستقیم به یک درخواست‌اند؛ برای نمونه Battery_Status در پاسخ Get_Battery_Status، Source_Info در پاسخ Get_Source_Info و Revision در پاسخ Get_Revision ارسال می‌شوند. Alert برعکس، یک اعلان رخداد است و فقط وقتی Source یا Sink تغییر وضعیت را تشخیص دهد فرستاده می‌شود. Enter_USB و EPR_Mode نیز بخشی از فرآیندهای چندپیامی‌اند و تفسیر آن‌ها بدون توجه به ترتیب، Contract جاری و پاسخ‌های بعدی کامل نیست.

نکته مشترک این پیام‌ها آن است که هر فیلد معنای عملی دارد. یک بیت اشتباه در EUDO می‌تواند Mode، سرعت یا نوع کابل را نادرست معرفی کند؛ یک PDO کپی‌شده نامنطبق در EPR_Request موجب Hard Reset می‌شود؛ و تفاوت میان Port Maximum PDP، Port Present PDP و Port Reported PDP تعیین می‌کند Port از نظر طراحی چه توانی دارد، در همین لحظه چه توانی می‌تواند بدهد و واقعاً چه توانی را Advertise کرده است.

Status & Alert

گزارش وضعیت و اعلان تغییر

Battery_Status جزئیات یک باتری را برمی‌گرداند و Alert وقوع تغییر یا رخداد حفاظتی را اعلام می‌کند.

Enter_USB

هدایت Mode مسیر داده

DFP با EUDO، Mode، سرعت، نوع و جریان کابل و قابلیت‌های Tunneling را به زنجیره منتقل می‌کند.

EPR Entry / Exit

کنترل ورود و خروج EPR

ورود به EPR یک AMS چندپیامی و غیرقابل‌وقفه است که توان Source، Sink و e-Marker کابل را بررسی می‌کند.

Battery_Status؛ وضعیت یک Battery در یک BSDO

Battery_Status باید در پاسخ Get_Battery_Status ارسال شود و دقیقاً یک Battery Status Data Object یا BSDO داشته باشد؛ بنابراین Number of Data Objects در Header برابر ۱ است. Battery مورد گزارش همان موردی است که Battery Status Ref در درخواست مشخص کرده و باید با تعداد Battery یا Battery Slot اعلام‌شده در Source_Capabilities_Extended سازگار باشد.

نیمه بالایی BSDO یعنی B31..16، Battery Present Capacity را در واحد ۰٫۱ وات‌ساعت گزارش می‌کند. مقدار 0xFFFF به این معنی است که State of Charge فعلی نامعلوم است. این فیلد درصد شارژ نیست؛ عدد خام آن انرژی فعلی Battery را با گام یک‌دهم وات‌ساعت بیان می‌کند.

B15..8 مجموعه Battery Info است. Bit 0 نامعتبر بودن Battery Reference، Bit 1 حضور Battery و B3..2 وضعیت Charging را نشان می‌دهد. Charging Status وقتی Battery Present برابر ۱ است می‌تواند Charging، Discharging یا Idle باشد؛ مقدار 11b رزرو شده و نباید استفاده شود. اگر Battery Present صفر باشد، بیت‌های Charging Status نیز باید صفر باشند. B7..0 و B15..12 رزرو هستند و باید صفر نوشته شوند.

بیت‌هافیلدتفسیر
B31..16Battery Present CapacityState of Charge در گام ۰٫۱Wh؛ مقدار 0xFFFF یعنی نامعلوم.
B8Invalid Battery ReferenceReference در Get_Battery_Status به Battery یا Slot موجود اشاره نمی‌کند.
B9Battery Presentبرای Battery غیر Hot-Swappable همواره ۱؛ برای نوع Hot-Swappable نشان‌دهنده Attached یا Detached.
B11..10Battery Charging Status00b=Charging، 01b=Discharging، 10b=Idle و 11b=Reserved.
B15..12 / B7..0Reservedباید صفر نوشته شوند.
ساختار پیام Battery_Status در USB PD شامل Header و یک Battery Status Data Object
Figure 6.28 — Battery_Status Message
Header با یک BSDO.
جدول بیت‌های Battery Status Data Object شامل ظرفیت، حضور باتری و وضعیت شارژ
Table 6.46 — Battery Status Data Object (BSDO)
Capacity، Invalid Reference، Presence و Charging Status.

Alert؛ اعلان رخداد قبل از دریافت جزئیات

Alert به Port Partner می‌گوید یک وضعیت تغییر کرده است. بعضی رخدادها بحرانی‌اند، مانند OCP، OVP و OTP؛ بعضی دیگر اطلاعاتی‌اند، مانند تغییر Battery از Charging به Idle. Source یا Sink فقط وقتی باید Alert بفرستد که تغییر وضعیت را تشخیص داده باشد و پیام دقیقاً یک Alert Data Object یا ADO حمل می‌کند.

Type of Alert در B31..24 یک Bitmap است؛ در نتیجه چند Bit می‌توانند در یک Alert هم‌زمان ۱ باشند. با این حال برای هر Event یا Change فقط یک Alert تولید می‌شود و پس از ارسال، Type of Alert پاک می‌شود. اگر Battery Status Change اعلام شده باشد، بهتر است گیرنده Get_Battery_Status بفرستد؛ برای تغییرات غیر Battery نیز بهتر است Get_Status ارسال شود تا جزئیات وضعیت دریافت شود.

Bit در Typeرخدادمعنا
1Battery Status ChangeAttach، Detach یا تغییر میان Charging، Discharging و Idle.
2OCP Eventفعال‌شدن حفاظت اضافه‌جریان در Source؛ برای Sink رزرو و صفر.
3OTP Eventخاموش‌شدن Source یا Sink به‌علت حفاظت اضافه‌دما.
4Operating Condition Changeورود یا خروج از Warning/Over Temperature یا تغییر PPS میان CV و CL.
5Source Input Changeتغییر منبع ورودی میان AC و Battery یا جابه‌جایی میان Batteryها.
6OVP EventSink هنگام فعال‌شدن حفاظت اضافه‌ولتاژ باید این Bit را تنظیم کند؛ Source نیز می‌تواند آن را گزارش کند.
7Extended Alert Eventنوع دقیق رخداد در B3..0 قرار می‌گیرد.
Battery Change Bitmap

B23..20 باتری‌های Fixed و B19..16 باتری‌های Hot Swappable دارای تغییر را مشخص می‌کنند. پس از ارسال Alert این دو فیلد نیز پاک می‌شوند. در متن منبع، شماره‌گذاری Hot Swappable میان جدول و Subsection یکسان نیست؛ Decoder باید موقعیت بیت خام را حفظ کند و این تفاوت متن منبع را پنهان نکند.

Extended Alert Type

مقادیر معتبر B3..0 عبارت‌اند از 1 برای Power State Change در DFP، 2 برای Power Button Press در UFP، 3 برای Power Button Release در UFP و 4 برای Controller Initiated Wake مانند Wake on LAN. اگر Bit رخداد Extended صفر باشد، این فیلد نیز رزرو است و باید صفر شود.

ساختار پیام Alert در USB PD شامل Header و یک Alert Data Object
Figure 6.29 — Alert Message
Header با یک ADO.
بخش اول جدول Alert Data Object شامل رخدادهای Battery، OCP، OTP، OVP و Bitmap باتری‌هاادامه جدول Alert Data Object شامل انواع Extended Alert Event
Table 6.47 — Alert Data Object (ADO)
Type Bitmap، Battery Bitmap و Extended Alert Event Type.

Get_Country_Info؛ انتخاب کشور با دو نویسه

یک Port برای دریافت اطلاعات اختصاصی کشور از Port Partner، پیام Get_Country_Info را با Alpha-2 Country Code تعریف‌شده در ISO 3166 می‌فرستد. طرف مقابل با Country_Info پاسخ می‌دهد. Get_Country_Info دقیقاً یک Country Code Data Object یا CCDO دارد: B31..24 نویسه نخست، B23..16 نویسه دوم و B15..0 رزرو و صفر است.

CN → CCDO[31:0] = 434E0000h

در مثال منبع، کد چین «CN» است؛ 0x43 برای C و 0x4E برای N در دو Byte بالایی قرار می‌گیرد و دو Byte پایین صفر می‌ماند.

ساختار پیام Get_Country_Info شامل Header و یک Country Code Data Objectجدول Country Code Data Object با دو نویسه Alpha-2 و بیت‌های رزرو
Figure 6.30 / Table 6.48 — Country Code Data Object
دو نویسه Alpha-2 و ۱۶ بیت رزرو.

Enter_USB؛ فرمان DFP برای ورود به USB Mode

Enter_USB را DFP در یک Explicit Contract برای UFP Port Partner و Cable Plugهای کابل Active می‌فرستد تا USB Mode مشخصی فعال شود. گیرنده باید Accept، Wait یا Reject برگرداند. برای ورود به USB4، DFP یک PDUSB Host یا Hub باید پیام را در محدوده tEnterUSB پس از PD Connection، پایان Data Reset یا پایان Data Role Swap ارسال کند. برای USB 3.2 و USB 2.0 ارسال پس از Connection یا Data Reset مجاز است.

یک Hub می‌تواند پیش از حضور Host، لینک‌ها را به‌صورت Speculative آموزش دهد یا وارد DPTC 2.1 یا TBT3 Alternate Mode شود. در این حالت Host Present صفر است. پس از اتصال Host، Enter_USB دوباره با Host Present برابر ۱ ارسال می‌شود و EUDO دریافت‌شده از Root Hub باید در سراسر Hub Tree به پایین منتقل شود.

EUDO فقط Mode را تعیین نمی‌کند. قابلیت DRD میزبان، سرعت و نوع کابل، توان عبور جریان کابل، پشتیبانی Tunneling برای PCIe و DisplayPort، پشتیبانی TBT و حضور Host همگی در همان Object قرار دارند. برخی فیلدها هنگام دریافت توسط Cable Plug نادیده گرفته می‌شوند، زیرا برای Port Partner و انتشار قابلیت Host در Hub Tree تعریف شده‌اند.

بیت‌هافیلدتفسیر
B30..28USB Modeکدهای 000b، 001b و 010b معتبرند؛ 011b تا 111b رزرو و ممنوع‌اند.
B26 / B25USB4 DRD / USB3 DRDقابلیت Host DFP برای کار به‌عنوان USB4 یا USB 3.2 Device؛ هر دو همراه توانایی USB 2.0 هستند.
B23..21Cable SpeedUSB 2.0، USB 3.2 Gen1/Gen2 و USB4 Gen2/Gen3/Gen4.
B20..19Cable TypePassive، Active Re-timer، Active Re-driver یا Optically Isolated.
B18..17Cable Current00b=VBUS پشتیبانی نمی‌شود، 01b=Reserved، 10b=3A و 11b=5A.
B16 / B15 / B14PCIe / DP / TBT Supportقابلیت Host برای Tunneling مربوطه؛ Hub می‌تواند آن‌ها را Speculative تنظیم کند.
B13Host Presentوجود Host در بالای USB Tree و معتبر بودن Capabilityهایی که باید به پایین Propagate شوند.
ساختار پیام Enter_USB در USB PD شامل Header و یک Enter USB Data Object
Figure 6.31 — Enter_USB Message
Header با یک EUDO.
جدول Enter USB Data Object شامل USB Mode، سرعت و نوع کابل، جریان و قابلیت‌های Tunneling
Table 6.49 — Enter_USB Data Object (EUDO)
Mode، DRD، Cable، Tunneling و Host Present.

EPR_Request؛ RDO به‌همراه کپی دقیق PDO

Sink فقط زمانی EPR_Request می‌فرستد که در EPR Mode باشد. این پیام معمولاً در مرحله Request مذاکره و در پاسخ به جدیدترین EPR_Source_Capabilities ارسال می‌شود. برخلاف Request معمولی، EPR_Request دو Data Object دارد: ابتدا RDO که Object Position و نیاز Sink را مشخص می‌کند و سپس یک کپی از همان PDO درخواست‌شده.

PDO هدف می‌تواند SPR یا EPR و از نوع PDO یا APDO باشد؛ نام EPR_Request به این معنی نیست که انتخاب حتماً باید از محدوده توان EPR باشد. Source باید بررسی کند PDO کپی‌شده دقیقاً با Object Position در جدیدترین EPR_Source_Capabilities یکسان است. هر اختلاف، نشانه خطای Protocol است.

Source در پاسخ Accept یا Reject می‌فرستد و فرآیند Explicit Contract مانند SPR است، با این تفاوت که EPR_Source_Capabilities جای Source_Capabilities و EPR_Request جای Request را می‌گیرد. اگر EPR Source هنوز در SPR Mode باشد و EPR_Request دریافت کند، باید Hard Reset را آغاز کند.

ساختار پیام EPR_Request شامل Request Data Object و کپی PDO انتخاب‌شده
Figure 6.32 — EPR_Request Message
Header، RDO و Copy of PDO؛ تعداد Objectها برابر ۲.

EPR_Mode و EPRMDO؛ Action و Data چه می‌گویند؟

EPR_Mode برای آغاز ورود، تأیید درخواست، اعلام موفقیت یا شکست و خروج از EPR Mode استفاده می‌شود. پیام یک EPR Mode Data Object یا EPRMDO دارد. B31..24 Action، B23..16 Data و B15..0 بخش رزرو و صفر است.

ActionمقدارفرستندهData
Enter0x01فقط SinkEPR Sink Operational PDP
Enter Acknowledged0x02فقط Sourceصفر
Enter Succeeded0x03فقط Sourceصفر
Enter Failed0x04فقط Sourceکد علت شکست از 0x00 تا 0x05
Exit0x05Source یا Sinkصفر
0x00

علت نامعلوم.

0x01

کابل EPR Capable نیست.

0x02

Source نتوانسته VCONN Source شود.

0x03

EPR Capable در RDO تنظیم نشده است.

0x04

Source اکنون قادر به ورود نیست.

0x05

EPR Capable در Fixed Supply 5V PDO تنظیم نشده است.

ساختار پیام EPR Mode شامل Header و یک EPR Mode Data Object
Figure 6.33 — EPR Mode DO Message
Header با یک EPRMDO.
جدول EPR Mode Data Object شامل Enter، Acknowledged، Succeeded، Failed و Exit
Table 6.50 — EPR Mode Data Object (EPRMDO)
Action، فرستنده مجاز و کدهای علت شکست.

ورود به EPR Mode؛ پیش‌شرط‌ها و فرآیند هشت‌مرحله‌ای

EPR Source وقتی باید با درخواست EPR Sink وارد EPR Mode شود که قادر به ارائه Source Capabilityهای EPR باشد و اتصال از کابل EPR استفاده کند. ورود EPR یک AMS چندپیامی و غیرقابل‌وقفه است؛ بنابراین نتیجه فقط با دیدن نخستین Enter یا GoodCRC مشخص نمی‌شود.

Source باید کابل را پیش از نخستین Explicit Contract یا حداکثر در بازه tEPRSourceCableDiscovery پس از آن شناسایی کرده باشد. اگر VCONN Source نیست، ابتدا VCONN Swap انجام می‌دهد و سپس Discover Identity کابل را اجرا می‌کند.

شش شرط قبل از ورود

  • Sink ورود به EPR Mode را درخواست کند.
  • Source، EPR Capable بودن کابل را بررسی کند.
  • Sink از طریق Charge Through VPD به Source متصل نباشد.
  • Source و Sink از قبل SPR Explicit Contract داشته باشند.
  • EPR Capable در Fixed Supply 5V PDO تنظیم شده باشد.
  • EPR Capable در آخرین RDO دریافتی Source نیز تنظیم شده باشد.
  1. ۱. درخواست Sink

    Sink، EPR_Mode با Action=Enter و Data برابر Operational PDP خود می‌فرستد. اگر Source پیام EPR_Mode با Action دیگری در این جایگاه بگیرد، Soft Reset آغاز می‌کند.

  2. ۲. سه بررسی Source

    Source ابتدا EPR Capable در جدیدترین RDO و Fixed Supply 5V PDO را می‌سنجد و سپس بررسی می‌کند هنوز توانایی ورود دارد. شکست هر بررسی با Enter Failed و Data متناظر گزارش می‌شود؛ در غیر این صورت Enter Acknowledged ارسال می‌گردد.

  3. ۳. انتظار دقیق Sink

    Sink در این مرحله فقط EPR_Mode با Action=Enter Acknowledged را می‌پذیرد. دریافت هر پیام دیگر باعث Soft Reset می‌شود.

  4. ۴. استفاده از Cable Capability ذخیره‌شده

    اگر Source قبلاً با Discover Identity قابلیت کابل را شناخته یا کابل Captive باشد، کابل EPR Capable می‌تواند مستقیماً مسیر را به مرحله ۷ ببرد. کابل غیر EPR با Enter Failed و Data=1 فرآیند را متوقف می‌کند.

  5. ۵. در اختیار گرفتن VCONN

    اگر Source، VCONN Source نیست باید VCONN_Swap بفرستد. ناتوانی در گرفتن این نقش با Enter Failed و Data=2 گزارش می‌شود و SPR Explicit Contract موجود حفظ می‌گردد.

  6. ۶. خواندن e-Marker کابل

    Source با Discover Identity بررسی می‌کند Maximum VBUS Voltage برابر 11b یعنی 50V، Current Handling برابر کد 10b یعنی 5A و EPR Capable برابر 1b باشد. عدم پاسخ کابل یا شکست هر شرط، Enter Failed با Data=1 می‌سازد.

  7. ۷. موفقیت Source

    Source، EPR_Mode با Action=Enter Succeeded می‌فرستد و وارد EPR Mode می‌شود.

  8. ۸. ورود Sink

    Sink با دریافت Enter Succeeded وارد EPR Mode می‌شود؛ دریافت نتیجه دیگر Soft Reset را در پی دارد.

دو Deadline مهم

اگر فرآیند در tEnterEPR از آخرین Bit پیام GoodCRC مربوط به Enter کامل شود، Source باید در tFirstSourceCap، EPR_Source_Capabilities بفرستد. اگر فرآیند Abort نشده ولی در tEnterEPR کامل نشود، Sink باید Soft Reset را آغاز کند.

فلوچارت ورود به EPR Mode شامل بررسی Source، Sink، VCONN و e-Marker کابل
Figure 6.34 — EPR Mode entry process
جریان Informative بررسی Sink، Source، VCONN و Cable تا Enter Succeeded.

کار در EPR Mode و سه مسیر خروج

Operation in EPR Mode

Source فقط EPR_Source_Capabilities را برای Advertise توان می‌فرستد و Sink فقط با EPR_Request قرارداد را مذاکره می‌کند. انتخاب Sink می‌تواند SPR یا EPR (A)PDO باشد. Source_Capabilities ناخواسته در سمت Sink و Request معمولی در سمت Source هر دو Hard Reset ایجاد می‌کنند.

Source ترافیک دوره‌ای لاین CC را پایش می‌کند. اگر Sink بیش از tSinkEPRKeepAlive پیامی نفرستاده باشد، EPR_KeepAlive می‌فرستد. نبود ترافیک بیش از tSourceEPRKeepAlive باعث Hard Reset از طرف Source می‌شود.

Commanded Exit

قبل از خروج فرمانی، Portها باید با یک SPR (A)PDO Explicit Contract داشته باشند. سپس Source یا Sink، Action=Exit را می‌فرستد و Source باید در tFirstSourceCap پس از GoodCRC، Source_Capabilities ارسال کند. اگر Sink تا tTypeCSinkWaitCap آن را نگیرد، Hard Reset می‌کند.

Implicit Exit

Power Role Swap و Fast Role Swap به‌عنوان اثر جانبی EPR را خاتمه می‌دهند، زیرا VBUS در پایان به vSafe5V می‌رسد و Contract از نوع Implicit می‌شود. New Source سپس Source_Capabilities برای ساخت SPR Explicit Contract می‌فرستد و در صورت نیاز ورود EPR دوباره انجام می‌شود.

Exit به‌علت خطا

دریافت Exit در حالی که Contract هنوز EPR است، قرارگرفتن EPR (A)PDO در هفت Position نخست، نامنطبق‌بودن PDO کپی‌شده در EPR_Request، دریافت Request معمولی توسط Source یا دریافت Source_Capabilities ناخواسته توسط Sink از خطاهای بحرانی و موجب Hard Reset هستند.

Source_Info؛ تفاوت توان طراحی، توان لحظه‌ای و توان Advertiseشده

Source_Info در پاسخ Get_Source_Info ارسال می‌شود و یک Source Information Data Object یا SIDO دارد. این Object برای تشخیص قابلیت واقعی Source Port چهار مفهوم را کنار هم قرار می‌دهد: Port Type، Port Maximum PDP، Port Present PDP و Port Reported PDP.

Port Type یک فیلد Static است. مقدار ۰ یعنی Managed Capability Port که توان آن می‌تواند Dynamic باشد و مقدار ۱ یعنی Guaranteed Capability Port. Port عضو Shared Capacity Group باید Managed باشد؛ Port خارج از Shared Group می‌تواند Managed یا Guaranteed باشد.

Maximum PDP توان طراحی Port است. Present PDP توان قابل‌ارائه در همین لحظه با درنظرگرفتن محدودیت کابل یا وضعیت غیرعادی مانند دمای بالا و ولتاژ ورودی پایین است. Reported PDP توان واقعی Advertiseشده در Source_Capabilities یا EPR_Source_Capabilities است. بنابراین این سه عدد لزوماً برابر نیستند.

بیت‌هافیلدمعنا
B31Port Type0=Managed و 1=Guaranteed.
B23..16Port Maximum PDPبخش صحیح بیشترین توانی که Port برای آن طراحی شده است.
B15..8Port Present PDPبخش صحیح توان قابل‌ارائه فعلی پس از محدودیت Cable و شرایط Operating.
B7..0Port Reported PDPبخش صحیح بزرگ‌ترین حاصل‌ضرب Voltage×Current میان Fixed Supply PDOهای Advertiseشده.
Maximum PDP

برابر با مقدار بزرگ‌ترِ میان SPR Source PDP Rating و EPR Source PDP Rating در Source_Capabilities_Extended است.

Present PDP

برای Guaranteed برابر Maximum یا بیشترین مقدار ممکن در محدودیت است؛ برای Managed تابع Group و محدودیت فعلی است.

Reported PDP

ممکن است با Mode، Policy، Managed/Guaranteed بودن و Capabilityهای Advertiseشده تغییر کند.

ساختار پیام Source_Info در USB PD شامل Header و یک Source Information Data Object
Figure 6.35 — Source_Info Message
Header با یک SIDO.
جدول Source Information Data Object شامل Port Type و سه مقدار PDP
Table 6.51 — Source Information Data Object (SIDO)
Port Type و سه مقدار PDP.

Revision Message؛ اعلام بالاترین Revision و Version

Revision Message در پاسخ Get_Revision ارسال می‌شود و بالاترین Revision قابل‌پشتیبانی Port را با یک Revision Message Data Object یا RMDO معرفی می‌کند. B31..28 Revision.major، B27..24 Revision.minor، B23..20 Version.major و B19..16 Version.minor است؛ B15..0 رزرو و صفر می‌ماند.

Revision 3.2 / Version 1.1

Revision.major=0011b، Revision.minor=0010b، Version.major=0001b و Version.minor=0001b.

ساختار Revision Message شامل Header و یک Revision Message Data Objectجدول فیلدهای Revision major و minor و Version major و minor در RMDO
Figure 6.36 / Table 6.52 — Revision Message Data Object
Revision.major/minor و Version.major/minor.

روش عملی Decode این پیام‌ها در Analyzer

  1. ۱. Message Type و تعداد Objectها: Battery_Status، Alert، Get_Country_Info، Enter_USB، EPR_Mode، Source_Info و Revision یک Object دارند؛ EPR_Request دو Object شامل RDO و Copy of PDO دارد.
  2. ۲. Context ارتباط: Enter_USB فقط در Explicit Contract معنا دارد، EPR_Request فقط در EPR Mode مجاز است و Actionهای EPR_Mode به فرستنده مشخص محدودند.
  3. ۳. Reservedها: هر Reserved باید صفر باشد. مقدار Reserved در Mode، Charging Status، Cable Speed، Cable Current یا Action نباید به یک قابلیت معتبر تبدیل شود.
  4. ۴. Cross-check: Battery Ref با Slotهای اعلام‌شده، Cable Fieldهای EUDO با e-Marker، Copy of PDO با جدیدترین EPR_Source_Capabilities و Reported PDP با Fixed Supply PDOها مقایسه شود.
  5. ۵. Sequence: GoodCRC فقط تحویل Packet را تأیید می‌کند. در EPR باید Actionهای Acknowledged و Succeeded، Deadlineها و پیام Capability بعدی هم بررسی شوند.
  6. ۶. خطای Protocol: پیام خارج از Mode، PDO نامنطبق، Capability اشتباه یا Timeout باید با نتیجه استاندارد مانند Soft Reset یا Hard Reset علامت‌گذاری شود؛ صرفاً به‌عنوان Packet ناشناخته ثبت نشود.

اشتباه‌های رایج در تفسیر پیام‌های مقاله ۱۲

  • تفسیر Battery Present Capacity به‌عنوان درصد، درحالی‌که واحد آن ۰٫۱Wh است.
  • یکی‌دانستن Alert با Status؛ Alert فقط وقوع تغییر را اعلام می‌کند و جزئیات معمولاً با Get_Status یا Get_Battery_Status دریافت می‌شود.
  • نادیده‌گرفتن Host Present و انتشار EUDO در Hub Tree.
  • فرض اینکه EPR_Request حتماً یک EPR PDO را انتخاب می‌کند؛ در EPR Mode انتخاب SPR (A)PDO نیز ممکن است.
  • بررسی RDO بدون مقایسه Copy of PDO با جدیدترین EPR_Source_Capabilities.
  • قبول‌کردن کابل 5A به‌عنوان کابل EPR بدون بررسی Maximum VBUS=50V و EPR Capable=1.
  • یکی‌گرفتن Maximum، Present و Reported PDP و از دست‌دادن محدودیت واقعی Cable یا Shared Capacity.

جمع‌بندی مقاله ۱۲

Battery_Status وضعیت یک Battery را در BSDO گزارش می‌کند و Alert با ADO وقوع تغییر یا رخداد حفاظتی را به Port Partner خبر می‌دهد. Get_Country_Info دو نویسه Country Code را حمل می‌کند و Enter_USB از EUDO برای هدایت Mode و انتقال Capabilityهای Host و Cable استفاده می‌کند.

EPR_Request با RDO و Copy of PDO ساخته می‌شود و صحت آن به انطباق دقیق با جدیدترین EPR_Source_Capabilities وابسته است. EPR_Mode ورود و خروج را با Actionهای مشخص کنترل می‌کند؛ ورود موفق علاوه بر آمادگی Source و Sink، به SPR Explicit Contract، بیت‌های EPR Capable، نقش VCONN و e-Marker معتبر کابل 50V/5A نیاز دارد.

Source_Info سه سطح متفاوت توان Port را آشکار می‌کند و Revision Message بالاترین Revision و Version قابل‌پشتیبانی را برمی‌گرداند. برای Decoder حرفه‌ای، Context و ترتیب پیام‌ها به‌اندازه Map بیت‌ها اهمیت دارد.

منبع

Universal Serial Bus Power Delivery Specification, Revision 3.2, Version 1.1

دیدگاه‌ها (0)

برای ثبت دیدگاه لازم است

هنوز دیدگاهی برای این مقاله ثبت نشده است.