การจับเวลาของ Raspberry Pi แม่นยำแค่ไหน?


17

ฉันตระหนักดีว่าตั้งแต่ Raspberry Pi ไม่มีนาฬิกาฮาร์ดแวร์เวลาจริงที่สร้างขึ้นในบางประเด็นที่มีการจับเวลาที่ถูกต้องอาจนำเสนอตัวเองแม้ในขณะที่ติดตาทั่วเรียบไม่จำเป็นต้อง

สิ่งนี้สามารถลดลงได้ส่วนใหญ่โดยการเรียกใช้ NTP daemon ที่จะแก้ไขเวลาท้องถิ่นอย่างต่อเนื่อง แต่ NTP ไม่ใช่ตัวเลือกหาก Raspberry Pi ไม่ได้เชื่อมต่อกับเครือข่าย

ดังนั้นถ้าฉันเปิด Raspberry Pi ด้วยเวลาที่ถูกต้องในตอนแรกฉันควรคาดหวังว่าเวลาที่รายงานจะลอยไปตามเวลาท้องถิ่นจริงหรือไม่

และวิธีการระหว่าง reboots?


มันจะเป็นซอฟต์แวร์ที่ใช้เวลาในการไม่เชื่อมต่อกับใคร ฉันจะบอกว่าซอฟต์แวร์รักษาเวลานั้นมีความแม่นยำอย่างแท้จริง
Jivings

1
คุณพูดถึงสูงสุด 10 นาทีที่เลวร้ายที่สุดต่อปี (อุณหภูมิสูงสุด -20 และต่ำกว่า / +60 และสูงกว่า) (ปรับให้เหมาะสมสำหรับการทำงาน 20 องศา) มันไม่เลวเลย นาฬิกาแบบเรียลไทม์ตอนนี้วันใช้สำหรับการรักษาเวลาอะตอมเท่านั้น .. เช่น .. ฟังก์ชั่นทางคณิตศาสตร์ที่แม่นยำมากซึ่งต้องใช้ในการวัดเวลาดำเนินการหรือบางสิ่งที่น่าตื่นเต้น อุปกรณ์ทุกชนิดปล่อยคริสตัลขนาด 32 กิโลเฮิร์ตซ์เพราะออสซิลเลเตอร์นั้นดีพอสำหรับการสร้างสัญญาณ RF หรือสัญญาณวิดีโอโดยไม่มีภาวะแทรกซ้อนที่รุนแรง
Piotr Kula

@ppumkin คุณมีแหล่งข้อมูลสำหรับสิ่งนี้หรือไม่? ฉันค่อนข้างคาดหวังความถูกต้องน้อยลงเนื่องจากเหตุผลที่ Chris Stratton พูดถึง (พลาดการขัดจังหวะและสิ่งนั้น)

1
ขอโทษ - แค่ความรู้ทั่วไปของฉันในสนามและประสบการณ์การใช้ออสซิลเลเตอร์แทนผลึก การขัดจังหวะที่ขาดหายไปจะยิ่งใหญ่มาก! ถ้ามันเป็นสิ่งที่เลวร้ายที่ทุกคนจะไม่ทำมัน
Piotr Kula

คำถามนี้เกี่ยวกับ Raspbian มากกว่าเกี่ยวกับ Pi จริงๆ และแนวคิดในการรักษา Pi ให้ทำงานอย่างต่อเนื่องมานานกว่าหนึ่งปีนั้นไม่น่าเป็นไปได้ที่จะทำให้สถิติข้างต้นไม่มีนัยสำคัญเมื่อเปรียบเทียบกับสิ่งที่เกิดขึ้นในระหว่างการรีบูต
SDsolar

คำตอบ:


9

มีสองประเด็นจริง ๆ :

1) ความแม่นยำของออสซิลเลเตอร์เอง - ซึ่งมีตัวแปรต่าง ๆ เช่นเอกลักษณ์อายุอุณหภูมิ ฯลฯ การตรวจสอบแคตตาล็อกอย่างรวดเร็วแสดงให้เห็นว่านาฬิกาผลึกไมโครโปรเซสเซอร์ทั่วไปอยู่ที่ +/- 10-100 ชิ้นส่วนต่อล้าน

2) หากมีสิ่งใดที่อาจทำให้เกิดข้อผิดพลาดในการจับเวลาที่สัมพันธ์กับคริสตัลออสซิลเลเตอร์ นั่นอาจเป็นสิ่งต่าง ๆ เช่นการขัดจังหวะที่ไม่ได้รับหรือปัญหาการเปลี่ยนแปลงหากนาฬิกาที่ใช้อยู่หลังจากตัวคูณ PLL - หรือได้รับผลกระทบจากการควบคุมปริมาณนาฬิกา (ถ้าใช้)

อนึ่ง NTP หากดำเนินการได้เป็นอย่างดีอาจทำให้ช่วงเวลาที่สัมพันธ์กับตนเองอย่างแม่นยำแย่ลงในระยะสั้นเนื่องจากมันหมายความว่านาฬิกาท้องถิ่นสามารถเปลี่ยนให้สอดคล้องกับหน่วยงานภายนอกแทนที่จะยังคงสอดคล้องกับตัวเอง


8

มันจะขึ้นอยู่กับคริสตัลที่ใช้อาจจะประมาณ 10ppm หรือมากกว่านั้น คุณไม่สามารถนับได้จริงนอกเสียจากว่าจะมีการระบุไว้ที่ไหนสักแห่ง คุณอาจสามารถใช้ GPS หากไม่ได้เชื่อมต่อกับเครือข่าย มิฉะนั้นสามารถเพิ่มชิป RTC ได้

คุณจะต้องมีอะไรที่ดีกว่าเวลาของซอฟต์แวร์หากมีโอกาสที่ RPi จะสูญเสียพลังงานหรือความผิดพลาด

ฉันหวังว่าจะเชื่อมต่อ RTC กับ GPIO เร็ว ๆ นี้


3
Kevin Sangeelee ได้โพสต์ข้อความอย่างละเอียดเกี่ยวกับการเพิ่ม RTC ใน Raspberry Pi susa.net/wordpress/2012/06/…
Steve Robillard

1
ทางเลือกอื่นสำหรับ Pi ที่ไม่ได้เชื่อมต่อเครือข่ายคือการใช้สัญญาณเวลาวิทยุดังที่กล่าวไว้ที่นี่designspark.com/de/content/atomic-time-raspberry-pi
Steve Robillard

+1 สำหรับเชื่อมต่อ RTC กับ GPIO หากต้องการเวลาที่แม่นยำยิ่งขึ้น บางทีแม้แต่ตัวรับอะตอม .. :-) คำแนะนำดี ๆ !
Piotr Kula

ฉันไม่มีความเชี่ยวชาญที่ดีที่นี่ แต่ฉันอยากจะบอกว่า "สถานีวิทยุ WVVB หรือ CHU" เป็นตัวบ่งชี้ที่แม่นยำกว่า "เครื่องรับวิทยุอะตอม" หรือคล้ายกัน :) ข้อเสนอแนะที่ดี สำหรับผู้ที่อยู่ในอุ้งมือของ CHU ยังมีรหัส c เอาไว้เพื่อดึงเสียงและแยกเวลา
Tai Viinikka

1
ตกลงแล้วนี่คือโซลูชัน GPS: raspberrypi.stackexchange.com/questions/68816//
SDsolar

6

ตีความคำถามที่จะถามเกี่ยวกับ Raspberry Pi ที่รัน Raspbian

ระบบปฏิบัติการเป็นอิทธิพลหลักในการที่ Rapberry Pi รักษาเวลาไว้

คำตอบ: หากไม่มีแหล่งภายนอกนาฬิกาภายในจะไม่สามารถคาดเดาได้อย่างมากในแง่ของการรักษาเวลาด้วยตัวเอง


กรณีศึกษาล่าสุด:


นี่คือโครงเรื่องจากตัวบันทึกข้อมูล Raspberry Pi 3 B ซึ่งสูญเสียพลังงานยูทิลิตี้ประมาณหนึ่งชั่วโมง:

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถเห็นได้อย่างชัดเจนว่าเมื่อไฟฟ้ากลับมามันจะบู๊ตและรีสตาร์ทการบันทึกข้อมูล

แต่นาฬิกา Raspbian กระโดดกลับมาทันเวลา

จากนั้นคุณจะเห็นว่ามันข้ามไปยังเวลาที่ถูกต้องทันทีที่ได้รับการอัปเดตจาก time.nist.gov


สำนักงานมาตรฐานแห่งชาติแนะนำให้ใช้ time.nist.gov เพราะเป็น URL ที่ฉลาดที่ค้นหาเวลาที่รวดเร็วและแม่นยำที่สุด ทั้ง Linux (อูบุนตูและ Raspbian) และ Windows เริ่มต้นกับพูลซึ่งสามารถกระโดดได้หลายครั้งจาก Master Clock

ฉันจะตั้งค่า Raspbian ให้ใช้เซิร์ฟเวอร์เวลาหลักได้อย่างไร nist.gov?


นี่คือพล็อตที่ใหม่กว่าจากระบบเดียวกันอีกครั้ง

เนื่องจากมันถูกขัดจังหวะเมื่อวานนี้ (ดูรูปด้านบน) ฉันเคยsudo init 0ปิดมันอย่างถูกต้องเพื่อที่จะอิมเมจการ์ด SD ด้วยWin32DiskImagerบนพีซี

ใช้เวลาสักครู่หนึ่งสามารถดูได้ที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ในที่นี้คุณสามารถเห็น Raspbian เริ่มต้นใหม่นาฬิกาของมันทันทีที่มันออก ดูเหมือนว่าจะมีการบันทึกข้อมูลที่ดี (กระโดดขึ้น) ภายในหนึ่งนาที

จากนั้นจะแสดงสิ่งที่เกิดขึ้นเมื่อได้รับการอัปเดตเวลา มันกระโดดไปข้างหน้าไปทางขวา

จำนวนเงินที่กระโดดไปข้างหน้า (สองสามชั่วโมง) คือเวลาที่ Raspbian พลาดไปในขณะที่กำลังถ่ายภาพการ์ด SD


นี่คือการบิดที่น่าประหลาดใจ

ระบบจะแข็งตัวง่ายขึ้น เปิดไฟทั้งสีแดงและสีเขียวไม่กะพริบ

ประกาศ (ใช้espeak) ภายในไม่กี่นาทีโดยงาน cron ที่อ้างอิงกับเซิร์ฟเวอร์หลักซึ่งตรวจสอบตัวบันทึกข้อมูลสำหรับเหตุการณ์ที่เกิดขึ้น ดังนั้นมันจึงใช้เวลาไม่นานกว่าสองสามนาที

ดึงพลังงานสองสามวินาที รีบูทใหม่ - ไฟ LED ดูเป็นปกติ

นี่คือความผิดพลาดนี้ส่งผลต่อการบันทึกข้อมูล:

ป้อนคำอธิบายรูปภาพที่นี่

นาฬิกา Raspbian กระโดดไปข้างหน้า 2 ชั่วโมงเมื่อระบบรีบูท

จากนั้นเวลาจะอัปเดตจาก time.nist.gov ตั้งค่าไว้ใหม่


คำตอบ: หากไม่มีแหล่งข้อมูลภายนอกนาฬิกาภายในจะไม่สามารถคาดการณ์ได้ในแง่ของการรักษาเวลาจริงด้วยตนเอง


ฉันจะตั้งค่า Raspbian ให้ใช้เซิร์ฟเวอร์เวลาหลักได้อย่างไร nist.gov?


1
ฉันสามารถยืนยันได้ ไม่มีการเชื่อมต่ออินเทอร์เน็ตหรือ RTC วันที่และเวลาจากราสเบอร์รี่จะไร้ประโยชน์
Łukasz Jakubek

มีเครื่องรับวิทยุ VLF ที่มีตัวแยกสัญญาณนาฬิกาอยู่ ตัวอย่างเช่นที่นี่มีการปรับหนึ่งถึง 60 KHz สามารถได้ยิน WWV ในโคโลราโดทั่วอเมริกาเหนือ amazon.com/CANADUINO-60kHz-Atomic-Clock-Receiver/dp/B01KH3VEGS โมดูลเหล่านี้เป็นโมดูลเดียวกับที่ใช้ในบางนาฬิกา พวกเขาทำงานกับ Arduino และ Pi
SDsolar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.