| DPLL(8) | Linux | DPLL(8) |
نام (NAME)
dpll - ابزار پیکربندی و نظارت بر حلقههای قفل فاز دیجیتال (DPLL)
خلاصه دستور (SYNOPSIS)
dpll [ OPTIONS ] device { COMMAND | help }
dpll [ OPTIONS ] pin { COMMAND | help }
dpll [ OPTIONS ] monitor
OPTIONS := { -V | --Version | -j | --json | -p | --pretty | -t | --timestamp | --tshort }
توضیحات (DESCRIPTION)
ابزار dpll برای پیکربندی و نظارت بر دستگاهها و پینهای حلقه قفل فاز دیجیتال (DPLL) به کار میرود. از DPLLها برای همگامسازی ساعت در سختافزارهای گوناگون، بهویژه در تجهیزات مخابراتی و شبکهای استفاده میشود.
یک دستگاه DPLL میتواند روی یک یا چند پین ورودی قفل شود و خروجی همگامسازیشده ارائه دهد. پینها میتوانند سیگنالهای فیزیکی خارجی (مانند GNSS 1PPS یا SyncE) یا نوسانسازهای داخلی باشند.
گزینهها (OPTIONS)
- -V, --Version
- چاپ نسخه ابزار dpll و خروج.
- -j, --json
- نمایش نتایج در قالب JSON (JavaScript Object Notation).
- -p, --pretty
- هنگام ترکیب با -j، یک خروجی JSON مرتب و خوانا با فاصلهگذاری و خطوط جدید برای خوانایی بهتر تولید میکند.
- -t, --timestamp
- هنگام استفاده همراه شیء monitor، یک خط Timestamp: پیش از هر اعلان دریافتشده در همان قالبی که توسط ip monitor استفاده میشود چاپ میکند.
- --tshort
- مشابه -t، اما یک پیشوند فشرده درونخطی ISO 8601 به صورت “[YYYY-MM-DDTHH:MM:SS.uuuuuu]” به جای یک خط جداگانه Timestamp: در ابتدای هر اعلان درج میکند.
دستورات دستگاه (DEVICE COMMANDS)
dpll device show [ id ID ] [ module-name NAME ] [ clock-id ID ] [ type TYPE ] [ mode MODE ] [ lock-status STATUS ]
نمایش اطلاعات درباره دستگاههای DPLL. اگر هیچ آرگومانی مشخص نشود، تمامی دستگاههای موجود در سیستم نمایش داده میشوند.
- id ID
- فقط دستگاه با شناسه عددی مشخصشده را نمایش میدهد.
- module-name NAME
- فقط دستگاههای ارائهشده توسط ماژول هسته مشخصشده را نمایش میدهد.
- clock-id ID
- فقط دستگاههای با شناسه ساعت ۶۴ بیتی مشخصشده را نمایش میدهد.
- type TYPE
- فقط دستگاههایی از نوع مشخصشده را نمایش میدهد: pps یا eec.
- mode MODE
- فقط دستگاههایی در حالت کاری مشخصشده را نمایش میدهد: manual یا automatic.
- lock-status STATUS
- فقط دستگاههای دارای وضعیت قفل مشخصشده را نمایش میدهد: unlocked، locked، locked-ho-acq، holdover.
خروجی شامل موارد زیر است:
- •
- شناسه دستگاه
- •
- نام ماژول ارائهدهنده دستگاه
- •
- شناسه ساعت (شناسه یکتا)
- •
- حالت کاری (manual، automatic)
- •
- وضعیت قفل (unlocked، locked، locked-ho-acq، holdover)
- •
- خطای وضعیت قفل (در صورت وجود)
- •
- سطح کیفیت ساعت (در صورت پشتیبانی)
- •
- دما (در صورت پشتیبانی)
- •
- نوع (PPS یا EEC)
- •
- حالتهای پشتیبانیشده
- •
- وضعیت ناظر انحراف فاز (فعال/غیرفعال)
- •
- ضریب میانگینگیری انحراف فاز
- •
- وضعیت ناظر بسامد (فعال/غیرفعال)
dpll device set id ID [ PARAMETER VALUE ] ...
پیکربندی پارامترهای دستگاه DPLL.
- id ID
- مشخص میکند کدام دستگاه پیکربندی شود (الزامی).
- mode { automatic | manual }
- تنظیم حالت کاری دستگاه DPLL. در حالت automatic، دستگاه DPLL به طور خودکار بهترین منبع ورودی در دسترس را بر اساس اولویت و کیفیت انتخاب میکند. در حالت manual، منبع ورودی باید به صورت صریح پیکربندی شود و DPLL منابع را به طور خودکار تعویض نخواهد کرد.
- phase-offset-monitor { enable | disable }
- نظارت بر انحراف فاز میان دستگاه و پینهای آن را فعال یا غیرفعال میکند. هنگامی که فعال باشد، هسته به طور مداوم اختلاف فاز را اندازهگیری و گزارش میدهد.
- phase-offset-avg-factor FACTOR
- ضریب میانگینگیری (۱ تا ۲۵۵) اعمالشده بر محاسبات انحراف فاز را تنظیم میکند. مقادیر بزرگتر اندازهگیریهای هموارتر اما با پاسخدهی کندتر ارائه میدهند.
- frequency-monitor { enable | disable }
- نظارت بر بسامد را روی دستگاه فعال یا غیرفعال میکند. هنگامی که فعال باشد، هسته به طور مداوم بسامد واقعی پین را اندازهگیری و گزارش میدهد که از طریق فیلد measured-frequency در خروجی pin show قابل خواندن است.
dpll device id-get [ module-name NAME ] [ clock-id ID ] [ type TYPE ]
دریافت شناسه دستگاه بر اساس مشخصههای شناسایی آن. برای اسکریپتنویسی زمانی که نیاز به یافتن شناسه عددی یک دستگاه دارید کاربردی است. حداقل یک مشخصه برای شناسایی دستگاه باید مشخص شود.
- module-name NAME
- نام ماژول هسته.
- clock-id ID
- شناسه ساعت ۶۴ بیتی در مبنای دهدهی یا هگزادسیمال (با پیشوند 0x).
- type TYPE
- نوع دستگاه: pps یا eec.
دستورات پین (PIN COMMANDS)
dpll pin show [ id ID ] [ parent-device DEVICE_ID ] [ parent-pin PIN_ID ] [ module-name NAME ] [ clock-id ID ] [ board-label LABEL ] [ panel-label LABEL ] [ package-label LABEL ] [ type TYPE ] [ direction DIR ] [ state STATE ] [ operstate OPERSTATE ]
نمایش اطلاعات درباره پینهای DPLL. اگر هیچ آرگومانی مشخص نشود، تمام پینهای موجود در سیستم را نمایش میدهد.
- id ID
- فقط پین دارای شناسه عددی مشخصشده را نمایش میدهد.
- parent-device DEVICE_ID
- فقط پینهایی را نمایش میدهد که دستگاه DPLL مشخصشده والد آنها است.
- parent-pin PIN_ID
- فقط پینهایی را نمایش میدهد که پین مشخصشده والد آنها است (پینهای mux).
- module-name NAME
- فقط پینهای ارائهشده توسط ماژول هسته مشخصشده را نمایش میدهد.
- clock-id ID
- فقط پینهای دارای شناسه ساعت ۶۴ بیتی مشخصشده را نمایش میدهد.
- board-label LABEL
- فقط پینهای دارای برچسب برد مشخصشده را نمایش میدهد.
- panel-label LABEL
- فقط پینهای دارای برچسب پنل مشخصشده را نمایش میدهد.
- package-label LABEL
- فقط پینهای دارای برچسب بسته مشخصشده را نمایش میدهد.
- type TYPE
- فقط پینهایی از نوع مشخصشده را نمایش میدهد: mux، ext، synce-eth-port، int-oscillator، gnss.
- direction DIR
- فقط پینهایی را نمایش میدهد که رابطه parent-device با جهت مشخصشده دارند: input، output. در صورت ترکیب با parent-device، تنها رابطه parent-device مشخصشده بررسی میشود.
- state STATE
- فقط پینهایی را نمایش میدهد که رابطه parent-device با وضعیت مشخصشده دارند: connected، disconnected، selectable. در صورت ترکیب با parent-device، تنها رابطه parent-device مشخصشده بررسی میشود.
- operstate OPERSTATE
- فقط پینهایی را نمایش میدهد که رابطه parent-device با وضعیت عملیاتی مشخصشده دارند: active، standby، no-signal، qual-failed. در صورت ترکیب با parent-device، تنها رابطه parent-device مشخصشده بررسی میشود.
خروجی شامل موارد زیر است:
- •
- شناسه پین
- •
- نام ماژول
- •
- شناسه ساعت
- •
- برچسب برد (برچسب سختافزاری از درخت دستگاه یا ACPI)
- •
- برچسب پنل
- •
- برچسب بسته
- •
- نوع پین (mux، ext، synce-eth-port، int-oscillator، gnss)
- •
- بسامد پیکربندیشده و محدودههای بسامد پشتیبانیشده
- •
- بسامد اندازهگیریشده بر حسب هرتز (هنگامی که نظارت بر بسامد فعال باشد)
- •
- قابلیتها (state-can-change، priority-can-change، direction-can-change)
- •
- محدوده تنظیم فاز، ریزدانگی (granularity) و مقدار فعلی
- •
- انحراف بسامد کسری
- •
- روابط با دستگاه والد (جهت، اولویت، وضعیت، انحراف فاز)
- •
- روابط با پین والد
- •
- اطلاعات همگامسازی مرجع
- •
- بسامد Esync و پشتیبانی از پالس (در صورت امکان)
dpll pin set id ID [ PARAMETER VALUE ] ...
پیکربندی پارامترهای پین DPLL. چندین پارامتر را میتوان در یک دستور واحد مشخص کرد.
- id ID
- مشخص میکند کدام پین پیکربندی شود (الزامی).
- frequency FREQ
- تنظیم بسامد پین بر حسب هرتز. پین باید از بسامد مشخصشده پشتیبانی کند (محدودههای frequency-supported را در خروجی pin show بررسی کنید).
- phase-adjust ADJUSTMENT
- تنظیم انحراف فاز بر حسب پیکوثانیه. این مقدار فاز سیگنال خروجی را به صورت دقیق تنظیم میکند. مقادیر منفی فاز را به عقب جابهجا میکنند و مقادیر مثبت آن را به جلو میبرند. مقدار باید در محدوده phase-adjust-min و phase-adjust-max باشد.
- esync-frequency FREQUENCY
- تنظیم بسامد SyncE ارتقایافته (SyncE) بر حسب هرتز برای پینهای دارای این قابلیت.
- parent-device DEVICE_ID [ direction DIR ] [ prio PRIO ] [ state STATE ]
- پیکربندی رابطه میان این پین و یک دستگاه DPLL والد.
- direction { input | output }
- تنظیم جهت پین نسبت به دستگاه والد.
- prio PRIORITY
- تنظیم اولویت (۰ تا ۲۵۵) برای این پین روی دستگاه والد.
- state { connected | disconnected | selectable }
- تنظیم وضعیت پین روی دستگاه والد.
- parent-pin PIN_ID [ state STATE ]
- پیکربندی رابطه با یک پین والد.
- reference-sync PIN_ID [ state STATE ]
- پیکربندی رابطه همگامسازی مرجع با پینی دیگر.
dpll pin id-get [ SELECTOR ] ...
دریافت شناسه پین بر اساس مشخصههای شناسایی آن.
- module-name NAME
- فیلتر بر اساس نام ماژول هسته.
- clock-id ID
- فیلتر بر اساس شناسه ساعت ۶۴ بیتی.
- board-label LABEL
- فیلتر بر اساس برچسب برد (شناسه سختافزاری).
- panel-label LABEL
- فیلتر بر اساس برچسب پنل.
- package-label LABEL
- فیلتر بر اساس برچسب بسته.
- type TYPE
- فیلتر بر اساس نوع پین: mux، ext، synce-eth-port، int-oscillator، gnss.
دستور نظارت (MONITOR COMMAND)
dpll monitor
نظارت بر رویدادهای زیرسیستم DPLL به صورت بلادرنگ. اعلانات زیر را نمایش میدهد:
- •
- ایجاد، حذف و تغییرات پیکربندی دستگاه
- •
- ایجاد، حذف و تغییرات پیکربندی پین
- •
- تغییرات وضعیت قفل
- •
- بهروزرسانیهای انحراف فاز
- •
- تغییرات بسامد
رویدادها با نوع خود پیشوندگذاری میشوند: [DEVICE_CREATE]، [DEVICE_CHANGE]، [DEVICE_DELETE]، [PIN_CREATE]، [PIN_CHANGE]، [PIN_DELETE].
برای توقف نظارت کلیدهای Ctrl+C را فشار دهید.
مثالها (EXAMPLES)
نمایش تمام دستگاههای DPLL
dpll device show
نمایش دستگاه مشخص در قالب JSON
dpll -j device show id 0
تنظیم دستگاه 0 در حالت دستی (manual)
dpll device set id 0 mode manual
فعالسازی نظارت بر انحراف فاز روی دستگاه 0
dpll device set id 0 phase-offset-monitor enable
فعالسازی نظارت بر بسامد روی دستگاه 0
dpll device set id 0 frequency-monitor enable
نمایش تمام دستگاههای EEC
dpll device show type eec
نمایش دستگاههای ماژول مشخص در قالب JSON
dpll -jp device show module-name ice
نمایش تمام پینها
dpll pin show
نمایش تمام پینهای GNSS
dpll pin show type gnss
نمایش پینهای GNSS از یک ماژول مشخص
dpll pin show type gnss module-name ice
نمایش پین با خروجی JSON مرتب و خوانا
dpll -jp pin show id 5
نمایش پینهای ورودی متصل روی دستگاه 0
dpll pin show parent-device 0 direction input state connected
تنظیم بسامد پین روی ۱۰ مگاهرتز
dpll pin set id 0 frequency 10000000
پیکربندی رابطه پین با دستگاه والد
dpll pin set id 1 parent-device 0 prio 10 direction input state connected
تنظیم انحراف فاز به میزان ۱۰۰۰- پیکوثانیه
dpll pin set id 2 phase-adjust -1000
تنظیم همزمان چندین پارامتر پین
dpll pin set id 3 frequency 10000000 phase-adjust -1000
نظارت بر رویدادهای DPLL
dpll monitor
نظارت بر رویدادها در قالب JSON
dpll -jp monitor
دریافت شناسه دستگاه بر اساس نام ماژول
dpll device id-get module-name ice
دریافت شناسه پین بر اساس برچسب برد
dpll pin id-get board-label GNSS-1PPS
تنظیم فاز (PHASE ADJUSTMENT)
تنظیم فاز بر حسب پیکوثانیه (1e-12 ثانیه) مشخص میشود و امکان تنظیم دقیق فاز سیگنال را فراهم میآورد. این امر برای کاربردهای نیازمند همگامسازی زمانی دقیق مانند شبکههای 5G و معاملات با بسامد بالا حیاتی است.
ملاحظات مهم:
- •
- پیش از تنظیم مقادیر، phase-adjust-min و phase-adjust-max را بررسی کنید
- •
- برخی سختافزارها نیاز دارند مقادیر مضاربی از phase-adjust-gran باشند
- •
- مقادیر منفی فاز را به عقب میبرند (در زمان زودتر)
- •
- مقادیر مثبت فاز را به جلو میبرند (در زمان دیرتر)
- •
- هسته تمامی درخواستهای تنظیم فاز را اعتبارسنجی میکند
قابلیتها (CAPABILITIES)
پینها ممکن است قابلیتهای مختلفی داشته باشند که تعیین میکند کدام عملیات مجاز است:
- state-can-change
- وضعیت پین (connected/disconnected/selectable) میتواند تغییر یابد.
- priority-can-change
- اولویت پین میتواند تغییر یابد. این ممکن است در مورد اولویت سطح بالا یا اولویت در روابط parent-device صدق کند.
- direction-can-change
- جهت پین (input/output) میتواند تغییر یابد.
پیش از تلاش برای ایجاد تغییرات در پیکربندی، از dpll pin show برای بررسی این که پین از چه قابلیتهایی پشتیبانی میکند استفاده کنید.
وضعیت خروج (EXIT STATUS)
- 0
- موفقیت
- 1
- شکست
نکات (NOTES)
- •
- زیرسیستم DPLL به پشتیبانی هسته نیاز دارد (CONFIG_DPLL=y یا m)
- •
- پشتیبانی سختافزاری بسته به دستگاه و درایور متفاوت است
- •
- برخی عملیات به قابلیتهای سختافزاری خاصی نیاز دارند
- •
- مقادیر انحراف فاز توسط سختافزار اندازهگیری میشوند و نمیتوان آنها را مستقیماً تنظیم کرد
- •
- تغییرات در پیکربندی دستگاه یا پین ممکن است بر همگامسازی ساعت سیستم تأثیر بگذارد
همچنین ببینید (SEE ALSO)
مستندات هسته لینوکس: Documentation/driver-api/dpll.rst
مشخصات Netlink: Documentation/netlink/specs/dpll.yaml
نویسنده (AUTHOR)
ابزار dpll توسط Arkadiusz Kubalewski، Vadim Fedorenko و دیگران نوشته شده است.
این صفحه راهنما توسط Petr Oros نوشته شده است.
گزارش خطاها (REPORTING BUGS)
گزارش خطاها را به <netdev@vger.kernel.org> ارسال کنید
| 23 October 2025 | iproute2 |