في المقالة السابقة المخصصة لمزامنة الوقت عن طريق الراديو و SRNS (أنظمة اتصالات الملاحة اللاسلكية) ، لم يكن لدي الوقت للحديث عن اختيار جهاز استقبال GPS / GLONASS مع إخراج PPS. وفي الوقت نفسه ، تعتمد دقة استقبال الإشارة على ذلك ، ويمكن أن تتراوح القيمة من مللي ثانية إلى عدة ميكروثانية ، وغالبًا ما يكون ذلك ذا أهمية حاسمة.
لاستقبال إشارة الوقت الأكثر دقة ، تحتاج إلى جهاز استقبال GPS / GLONASS مع إخراج PPS. ومع ذلك ، فإن النقطة هي أنه في السوق الروسية ليس من السهل الحصول على جهاز بمثل هذه الخصائص بسعر مناسب. توقفت إنتاج العديد من هذه النماذج منذ فترة طويلة ، وفي المتاجر المهجورة عبر الإنترنت مع تخطيط التسعينات ، بقيت أوصافها فقط مع عرض للاشتراك في إشعار عند وصول البضائع.
يمكن العثور على قائمة كاملة بأجهزة GPS المختبرة على مورد GitLab NTPSec. ليس من الصعب ملاحظة أن عددًا صغيرًا من الأجهزة المعروضة في القائمة تم تمييزها بـ 3-4 نجوم وخيار PPS. وبالتالي ، فإن المستقبلات التالية مدرجة في القائمة المختصرة.
- Garmin GPS-18 ، وليس USB *** (السعر التقريبي 10 آلاف روبل)
- GlobalSat MR-350P ****
- Jackson Labs FireFly-II ***
- ماجلان تاليس إيه سي 12 ***
- موتورولا Oncore GT + ***
- نافيسيس GR601-W ****
- SkyTraq SKG16B ****
- تريمبل لاسين آي كيو ***
- u-blox ANTARIS LEA-4T ***
- يو-بلوكس EVK 6H ****
- u-blox LEA SQ ****
4 * أداء ممتاز: يتعرف GPSd على جهاز الاستقبال بسرعة وموثوقية ، ويتم إنشاء التقارير بشكل كامل وصحيح.
3 * الأداء الجيد: يتعرف نظام تحديد المواقع العالمي (GPS) الذي يعاني من مشاكل بسيطة أو زمن الوصول على الأجهزة ، ولكن يتم إنشاء التقارير بشكل كامل وصحيح.
إذا كنت تخشى من سعر هذه النماذج ، ولا توجد أيضًا رغبة كبيرة في العبث بالغدد ، فلا يمكنك قراءة المزيد. سيوفر جهاز الاستقبال المتصل بالخادم عبر واجهة USB أو RS232 تحديدًا للوقت أكثر دقة من خادم NTP الذي يستخدم TCP / IP. ولكن إذا كانت طريقة الساموراي ليست غريبة عليك ، فلنقم ببناء خادم Raspberry PI NTP الخاص بك مع مزامنة وقت GPS.
تجميع التوت التوت PI
لذلك: نأخذ المكونات التالية لخادمنا الصغير.
- لوحة Raspberry Pi 4 Model B ، 4 غيغابايت من ذاكرة الوصول العشوائي (6200 روبل) ؛
- حالة ، على سبيل المثال هذا (890 روبل) ؛
- بطاقة Micro SD لـ 32 جيجا بايت ، 16 جيجا بايت ممكنة ؛ (540 فرك).
- وحدة GPS تعتمد على رقاقة u-blox NEO-M8 (1700 روبل مع هوائي) ؛
- هوائي GPS عند 15 ديسيبل ؛
- لحام حديد.
في الواقع ، تم تجهيز u-blox NEO-M8 بواجهة UART ، ولكن بالنسبة لإخراج PPS ، تحتاج إلى لحام pin-3 على وحدة GPS إلى موصل GPIO المقابل على لوحة Raspberri Pi. اكتسبت وحدة الشركة السويسرية شعبية بين المتخصصين وهذا ليس مصادفة ، فالخصائص تتحدث عن نفسها.
- SRNS المدعومة: BeiDou، Galileo، GNSS؛ GPS / QZSS ، GLONASS ؛
- امدادات التيار الكهربائي: 2.7 ... 3.6 فولت ؛
- الواجهات: UART ، USB ، SPI ، DDC ، I2C ؛
- البروتوكولات المدعومة: NMEA 0.183 الإصدار 4.0 ، UBX (ثنائي) ، RTCM 2.3 ؛
- حساسية الكشف: -167 ديسيبل
- حساسية التتبع: -160 ديسيبل
- وقت البدء البارد: 26 ثانية ؛
- وقت البدء الساخن: 1.5 ثانية ؛
- استهلاك الطاقة: 35 ميغاواط ؛
- درجة حرارة العمل: -40 ... + 85 درجة مئوية ؛
- الأبعاد: 16x12.2x2.4 ملم
في هذا التكوين بأحدث المعدات ، سيكون السعر الإجمالي التقريبي لـ Raspberry PI المجمع 9330 روبل. يمكنك توفير المال عن طريق شراء Raspberry PI 3 ، أو أربعة مع 2 غيغابايت من ذاكرة الوصول العشوائي. لا يزال بإمكانك الحفظ على شريحة GPS ، u-blox NEO-6M مع هوائي يكلف حوالي 650 روبل. ثم سينخفض سعر خادم NTP إلى 5500 روبل.
وحدة GPS / Glonass UBLOX NEO 8M
قد يطرح السؤال ، ما هي كل هذه الاستثمارات وما هي الدقة التي توفرها هذه الطريقة أو تلك من مزامنة الوقت. لوحة ملخص صغيرة كمرجع.
مصدر إشارة الوقت | خطأ |
GPS مع ساعة ذرية | ± 50 ثانية |
KPPS | ± 1 ecSec |
PPS | ± 5 ecSec |
واجهة USB 1.1 | ± 1 مللي ثانية |
واجهة USB 2.0 | ± 100 μ ثانية (100000 نيوتن ثانية) |
NTP عبر الشبكة | ~ ± 30 مللي ثانية |
يختلف Kernel PPS (KPPS) عن PPS في أنه يستخدم وظيفة kernel Linux / Unix لتحديد الطابع الزمني بدقة لتغيير الحالة في سطر PPS. يتم تطبيق PPS المعتاد في مساحة المستخدم. إذا كانت نواة Linux تدعم KPPS من خلال API RFC 2783 ، فسيستخدمها gpsd لتحسين الدقة.
تحتوي العديد من توزيعات Linux على حزمة أدوات pps التي توفر دعم KPPS وتثبت ملف رأس timepps.h. تأكد من تثبيت هذه الحزمة.
(1:1146)$ sudo emerge -av pps-tools
Local copy of remote index is up-to-date and will be used.
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary R ] net-misc/pps-tools-0.0.20120407::gentoo 0 KiB
Total: 1 package (1 reinstall, 1 binary), Size of downloads: 0 KiB
Would you like to merge these packages? [Yes/No]
وبالتالي ، من خلال توصيل جهاز استقبال GPS بمخرج PPS عبر USB ، نحصل على زيادة 300 مرة في دقة مزامنة الوقت. القراءة من شريحة GPS على اللوحة في وضع KPPS تعطي زيادة في الدقة بمقدار أمرين آخرين .
لنكن صادقين - لا يعرف كل منا كيفية استخدام مكواة لحام ، ولا يستخدم الجميع هذه الأداة بانتظام. في هذه الحالة ، من المنطقي البحث عن وحدة GPS لا تتطلب جهات اتصال لحام.
لوح التوسيع Raspberry Pi GPS / RTC
هناك عدد قليل من هذه اللوحات وهي غالية الثمن. سيتم تعويض الفرق في السعر بالكامل عن طريق شراء مكواة لحام وتكاليف العمالة.
تثبيت نظام التشغيل
هناك Raspberry PI OS كذلك. كا Raspbian ، يمكنك فقط اتباع الرابط ، تنزيل أحدث إصدار وتثبيته. يقوم العديد من الأشخاص بذلك ، لكن دعنا نتذكر أن Raspberry PI 4 يدعم نظام التشغيل 64 بت ، بينما يحتوي Raspberry PI OS على تعديلات 32-bit Debian Linux فقط لهندسة Arm.
هناك وجهة نظر من هذا أنه غير مبرر على نظام تشغيل 64 بت على Raspberry PI 4 ، حيث لا توجد طريقة لتوفير مكاسب في الأداء بسبب خصائص الهيكل والتجمع. تبدو لي وجهة النظر هذه مشكوكًا فيها ، فقد كتبوا بالفعل عن هذا على Habré - نظام التشغيل 64 بت أسرع .
يوجد منفذ ديبيان لينكس لهندسة arm64 ، لكن التوزيعيحتوي Ubuntu for Raspberry PI على صفحة وتعليمات واضحة. في الصفحة ، نجد تأكيدًا إضافيًا على أنه من الأفضل اختيار نظام تشغيل 64 بت.
جرد التثبيت:
- التوت بي 4 ؛
- كابل طاقة USB-C لـ Pi 4 ؛
- بطاقة Micro SD مع صورة تثبيت Ubuntu ؛
- الشاشة مع إخراج HDMI ؛
- كابل MicroHDMI ؛
- لوحة مفاتيح USB.
الخطوة التالية هي كتابة صورة التثبيت على بطاقة Micro SD. إذا لم يكن لديك أداة مساعدة وبرنامج متخصص لهذه الأغراض ، في أبسط الحالات يكون ذلك كافيًا.
sudo dd if=/path/to/ubuntu-core-arm64.iso of=/dev/mmcblk0 status=progress
يظهر الاسم الدقيق للجهاز في إخراج dmesg عند اكتشاف جهاز جديد.
PM: Adding info for No Bus:179:0
device: 'mmcblk0': device_add
PM: Adding info for No Bus:mmcblk0
أدخل بطاقة Micro SD ، وقم بتوصيل شاشة HDMI ولوحة مفاتيح USB وكابل الطاقة للتمهيد في خادم Ubuntu على Raspberry Pi. اسم المستخدم وكلمة المرور الافتراضية هو أوبونتو.
إعداد خادم NTP
- Raspberry PI (headless), IP . .
(1:1151)$ arp -na | grep -i "dc:a6:32"
Pi HDMI USB , 1-2 . - ssh
(1:1152)$ ssh ubuntu@<Raspberry Pi’s IP address>
- .
user@server ~$ sudo apt-get install aptitude user@server ~$ sudo aptitude install wpasupplicant gpsd chrony
- Wi-Fi wpasupplicant.
- Linux UART0 Pi /dev/ttyAMA0. UART0 GPS Linux. console=ttyAMA0,115200, console=tty1. /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT. , /boot/config.txt, .
Raspberry Pi 4 6 UART-
UART2-5 .UART0 PLO11 /dev/ttyAMA0 (Bluetooth) UART1 mini UART /dev/ttyS0 UART2 PLO11 UART3 PLO11 UART4 PLO11 UART4 PLO11
, UART0 — , UART1, mini UART. Bluetooth UART1 , UART0. /etc/default/grub, /boot/config.txt enable_uart=1. - /etc/defaults/gpsd .
DEVICES="/dev/ttyAMA0 /dev/pps0" GPSD_OPTIONS="-n" USBAUTO="false"
- , gpsd.
user@server ~$ sudo /etc/init.d/gpsd start user@server ~$ sudo /etc/init.d/gpsd restart
- GPS.
user@server ~$ cat /dev/ttyAMA0 user@server ~$ cgps -s user@server ~$ ppstest /dev/pps0
- /etc/ntp.conf.
, Stratum 1, 2 NTP (, pool [0-9].subdomain.pool.ntp.org) , GPS/PPS .
# GPS Serial data reference (NTP0) server 127.127.28.0 minpoll 4 fudge 127.127.28.0 flag1 1 time1 0.9999 refid GPS #flag1 - PPS on
# GPS PPS reference (NTP1) server 127.127.22.0 minpoll 4 fudge 127.127.22.0 flag3 1 refid PPS #flag3 - enable KPPS API
NTP0 , GPS. NTP1 PPS . - ntpd
user@server ~$ sudo /etc/init.d/ntpd restart
- GPSD Time Service HOWTO
- The Raspberry Pi as a Stratum-1 NTP Server
- How to Setup a GPS PPS NTP Time server on Raspberry Pi
- GPS Raspberry Pi
- UART configuration