DPLL(8) Linux DPLL(8)

dpll - ابزار پیکربندی و نظارت بر حلقه‌های قفل فاز دیجیتال (DPLL)


dpll [ OPTIONS ] device { COMMAND | help }

dpll [ OPTIONS ] pin { COMMAND | help }

dpll [ OPTIONS ] monitor

OPTIONS := { -V | --Version | -j | --json | -p | --pretty | -t | --timestamp | --tshort }

ابزار dpll برای پیکربندی و نظارت بر دستگاه‌ها و پین‌های حلقه قفل فاز دیجیتال (DPLL) به کار می‌رود. از DPLLها برای همگام‌سازی ساعت در سخت‌افزارهای گوناگون، به‌ویژه در تجهیزات مخابراتی و شبکه‌ای استفاده می‌شود.

یک دستگاه DPLL می‌تواند روی یک یا چند پین ورودی قفل شود و خروجی همگام‌سازی‌شده ارائه دهد. پین‌ها می‌توانند سیگنال‌های فیزیکی خارجی (مانند GNSS 1PPS یا SyncE) یا نوسان‌سازهای داخلی باشند.

چاپ نسخه ابزار dpll و خروج.
نمایش نتایج در قالب JSON (JavaScript Object Notation).
هنگام ترکیب با -j، یک خروجی JSON مرتب و خوانا با فاصله‌گذاری و خطوط جدید برای خوانایی بهتر تولید می‌کند.
هنگام استفاده همراه شیء monitor، یک خط Timestamp: پیش از هر اعلان دریافت‌شده در همان قالبی که توسط ip monitor استفاده می‌شود چاپ می‌کند.
مشابه -t، اما یک پیشوند فشرده درون‌خطی ISO 8601 به صورت “[YYYY-MM-DDTHH:MM:SS.uuuuuu]” به جای یک خط جداگانه Timestamp: در ابتدای هر اعلان درج می‌کند.

نمایش اطلاعات درباره دستگاه‌های DPLL. اگر هیچ آرگومانی مشخص نشود، تمامی دستگاه‌های موجود در سیستم نمایش داده می‌شوند.

فقط دستگاه با شناسه عددی مشخص‌شده را نمایش می‌دهد.
فقط دستگاه‌های ارائه‌شده توسط ماژول هسته مشخص‌شده را نمایش می‌دهد.
فقط دستگاه‌های با شناسه ساعت ۶۴ بیتی مشخص‌شده را نمایش می‌دهد.
فقط دستگاه‌هایی از نوع مشخص‌شده را نمایش می‌دهد: pps یا eec.
فقط دستگاه‌هایی در حالت کاری مشخص‌شده را نمایش می‌دهد: manual یا automatic.
فقط دستگاه‌های دارای وضعیت قفل مشخص‌شده را نمایش می‌دهد: unlocked، locked، locked-ho-acq، holdover.

خروجی شامل موارد زیر است:

•
شناسه دستگاه
•
نام ماژول ارائه‌دهنده دستگاه
•
شناسه ساعت (شناسه یکتا)
•
حالت کاری (manual، automatic)
•
وضعیت قفل (unlocked، locked، locked-ho-acq، holdover)
•
خطای وضعیت قفل (در صورت وجود)
•
سطح کیفیت ساعت (در صورت پشتیبانی)
•
دما (در صورت پشتیبانی)
•
نوع (PPS یا EEC)
•
حالت‌های پشتیبانی‌شده
•
وضعیت ناظر انحراف فاز (فعال/غیرفعال)
•
ضریب میانگین‌گیری انحراف فاز
•
وضعیت ناظر بسامد (فعال/غیرفعال)

پیکربندی پارامترهای دستگاه DPLL.

مشخص می‌کند کدام دستگاه پیکربندی شود (الزامی).
تنظیم حالت کاری دستگاه DPLL. در حالت automatic، دستگاه DPLL به طور خودکار بهترین منبع ورودی در دسترس را بر اساس اولویت و کیفیت انتخاب می‌کند. در حالت manual، منبع ورودی باید به صورت صریح پیکربندی شود و DPLL منابع را به طور خودکار تعویض نخواهد کرد.
نظارت بر انحراف فاز میان دستگاه و پین‌های آن را فعال یا غیرفعال می‌کند. هنگامی که فعال باشد، هسته به طور مداوم اختلاف فاز را اندازه‌گیری و گزارش می‌دهد.
ضریب میانگین‌گیری (۱ تا ۲۵۵) اعمال‌شده بر محاسبات انحراف فاز را تنظیم می‌کند. مقادیر بزرگ‌تر اندازه‌گیری‌های هموارتر اما با پاسخ‌دهی کندتر ارائه می‌دهند.
نظارت بر بسامد را روی دستگاه فعال یا غیرفعال می‌کند. هنگامی که فعال باشد، هسته به طور مداوم بسامد واقعی پین را اندازه‌گیری و گزارش می‌دهد که از طریق فیلد measured-frequency در خروجی pin show قابل خواندن است.

دریافت شناسه دستگاه بر اساس مشخصه‌های شناسایی آن. برای اسکریپت‌نویسی زمانی که نیاز به یافتن شناسه عددی یک دستگاه دارید کاربردی است. حداقل یک مشخصه برای شناسایی دستگاه باید مشخص شود.

نام ماژول هسته.
شناسه ساعت ۶۴ بیتی در مبنای دهدهی یا هگزادسیمال (با پیشوند 0x).
نوع دستگاه: pps یا eec.

نمایش اطلاعات درباره پین‌های DPLL. اگر هیچ آرگومانی مشخص نشود، تمام پین‌های موجود در سیستم را نمایش می‌دهد.

فقط پین دارای شناسه عددی مشخص‌شده را نمایش می‌دهد.
فقط پین‌هایی را نمایش می‌دهد که دستگاه DPLL مشخص‌شده والد آن‌ها است.
فقط پین‌هایی را نمایش می‌دهد که پین مشخص‌شده والد آن‌ها است (پین‌های mux).
فقط پین‌های ارائه‌شده توسط ماژول هسته مشخص‌شده را نمایش می‌دهد.
فقط پین‌های دارای شناسه ساعت ۶۴ بیتی مشخص‌شده را نمایش می‌دهد.
فقط پین‌های دارای برچسب برد مشخص‌شده را نمایش می‌دهد.
فقط پین‌های دارای برچسب پنل مشخص‌شده را نمایش می‌دهد.
فقط پین‌های دارای برچسب بسته مشخص‌شده را نمایش می‌دهد.
فقط پین‌هایی از نوع مشخص‌شده را نمایش می‌دهد: mux، ext، synce-eth-port، int-oscillator، gnss.
فقط پین‌هایی را نمایش می‌دهد که رابطه parent-device با جهت مشخص‌شده دارند: input، output. در صورت ترکیب با parent-device، تنها رابطه parent-device مشخص‌شده بررسی می‌شود.
فقط پین‌هایی را نمایش می‌دهد که رابطه parent-device با وضعیت مشخص‌شده دارند: connected، disconnected، selectable. در صورت ترکیب با parent-device، تنها رابطه parent-device مشخص‌شده بررسی می‌شود.
فقط پین‌هایی را نمایش می‌دهد که رابطه 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. چندین پارامتر را می‌توان در یک دستور واحد مشخص کرد.

مشخص می‌کند کدام پین پیکربندی شود (الزامی).
تنظیم بسامد پین بر حسب هرتز. پین باید از بسامد مشخص‌شده پشتیبانی کند (محدوده‌های frequency-supported را در خروجی pin show بررسی کنید).
تنظیم انحراف فاز بر حسب پیکوثانیه. این مقدار فاز سیگنال خروجی را به صورت دقیق تنظیم می‌کند. مقادیر منفی فاز را به عقب جابه‌جا می‌کنند و مقادیر مثبت آن را به جلو می‌برند. مقدار باید در محدوده phase-adjust-min و phase-adjust-max باشد.
تنظیم بسامد SyncE ارتقایافته (SyncE) بر حسب هرتز برای پین‌های دارای این قابلیت.
پیکربندی رابطه میان این پین و یک دستگاه DPLL والد.
تنظیم جهت پین نسبت به دستگاه والد.
تنظیم اولویت (۰ تا ۲۵۵) برای این پین روی دستگاه والد.
تنظیم وضعیت پین روی دستگاه والد.
پیکربندی رابطه با یک پین والد.
پیکربندی رابطه همگام‌سازی مرجع با پینی دیگر.

دریافت شناسه پین بر اساس مشخصه‌های شناسایی آن.

فیلتر بر اساس نام ماژول هسته.
فیلتر بر اساس شناسه ساعت ۶۴ بیتی.
فیلتر بر اساس برچسب برد (شناسه سخت‌افزاری).
فیلتر بر اساس برچسب پنل.
فیلتر بر اساس برچسب بسته.
فیلتر بر اساس نوع پین: mux، ext، synce-eth-port، int-oscillator، gnss.

نظارت بر رویدادهای زیرسیستم DPLL به صورت بلادرنگ. اعلانات زیر را نمایش می‌دهد:

•
ایجاد، حذف و تغییرات پیکربندی دستگاه
•
ایجاد، حذف و تغییرات پیکربندی پین
•
تغییرات وضعیت قفل
•
به‌روزرسانی‌های انحراف فاز
•
تغییرات بسامد

رویدادها با نوع خود پیشوندگذاری می‌شوند: [DEVICE_CREATE]، [DEVICE_CHANGE]، [DEVICE_DELETE]، [PIN_CREATE]، [PIN_CHANGE]، [PIN_DELETE].

برای توقف نظارت کلیدهای Ctrl+C را فشار دهید.

dpll device show

dpll -j device show id 0

dpll device set id 0 mode manual

dpll device set id 0 phase-offset-monitor enable

dpll device set id 0 frequency-monitor enable

dpll device show type eec

dpll -jp device show module-name ice

dpll pin show

dpll pin show type gnss

dpll pin show type gnss module-name ice

dpll -jp pin show id 5

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 monitor

dpll -jp monitor

dpll device id-get module-name ice

dpll pin id-get board-label GNSS-1PPS

تنظیم فاز بر حسب پیکوثانیه (1e-12 ثانیه) مشخص می‌شود و امکان تنظیم دقیق فاز سیگنال را فراهم می‌آورد. این امر برای کاربردهای نیازمند همگام‌سازی زمانی دقیق مانند شبکه‌های 5G و معاملات با بسامد بالا حیاتی است.

ملاحظات مهم:

•
پیش از تنظیم مقادیر، phase-adjust-min و phase-adjust-max را بررسی کنید
•
برخی سخت‌افزارها نیاز دارند مقادیر مضاربی از phase-adjust-gran باشند
•
مقادیر منفی فاز را به عقب می‌برند (در زمان زودتر)
•
مقادیر مثبت فاز را به جلو می‌برند (در زمان دیرتر)
•
هسته تمامی درخواست‌های تنظیم فاز را اعتبارسنجی می‌کند

پین‌ها ممکن است قابلیت‌های مختلفی داشته باشند که تعیین می‌کند کدام عملیات مجاز است:

وضعیت پین (connected/disconnected/selectable) می‌تواند تغییر یابد.
اولویت پین می‌تواند تغییر یابد. این ممکن است در مورد اولویت سطح بالا یا اولویت در روابط parent-device صدق کند.
جهت پین (input/output) می‌تواند تغییر یابد.

پیش از تلاش برای ایجاد تغییرات در پیکربندی، از dpll pin show برای بررسی این که پین از چه قابلیت‌هایی پشتیبانی می‌کند استفاده کنید.

0
موفقیت
1
شکست

•
زیرسیستم DPLL به پشتیبانی هسته نیاز دارد (CONFIG_DPLL=y یا m)
•
پشتیبانی سخت‌افزاری بسته به دستگاه و درایور متفاوت است
•
برخی عملیات به قابلیت‌های سخت‌افزاری خاصی نیاز دارند
•
مقادیر انحراف فاز توسط سخت‌افزار اندازه‌گیری می‌شوند و نمی‌توان آن‌ها را مستقیماً تنظیم کرد
•
تغییرات در پیکربندی دستگاه یا پین ممکن است بر همگام‌سازی ساعت سیستم تأثیر بگذارد

ip(8), devlink(8), ethtool(8)

مستندات هسته لینوکس: Documentation/driver-api/dpll.rst

مشخصات Netlink: Documentation/netlink/specs/dpll.yaml

ابزار dpll توسط Arkadiusz Kubalewski، Vadim Fedorenko و دیگران نوشته شده است.

این صفحه راهنما توسط Petr Oros نوشته شده است.

گزارش خطاها را به <netdev@vger.kernel.org> ارسال کنید

23 October 2025 iproute2