水晶振動子と時刻ずれ †「パソコンの時計って意外と時刻がずれる」と思ったことは無いだろうか. 最近は標準時サーバと定期的に通信して時計を合わせているパソコンが多いので,時計のずれを気にする機会は減ってきているとは思う. が,標準時サーバと通信できないような環境も多いので,そういう事態が撲滅されたというわけでもないだろう. というわけで,「どのぐらいの精度で実際にどのぐらいずれるものなのか」という計算をしてみる. エプソントヨコム社の FC-12M という部品を例にする. これは水晶振動子と言って,時刻を刻む元になる部品である. 機械時計の振り子やテンプと同じ役割をするものだと思えばいい. この部品は公称周波数が 32.768kHz である. つまり,(この部品を適切な回路に組み込めば,)1秒間に 32768 個のパルスが出てくるということを意味している. そして,32768 個のパルスごとにデジタル時計の秒針(って針はないけど)を1つ進める機構を取り付ければ時計ができあがるわけである. が,世の中,完全に正確なものはほとんどありえない. というわけで,この水晶振動子のカタログにも「周波数許容偏差」という項目があり,±20 x 10^(-6) とある. 部品が作られた時点で最大これだけの狂いがありうるわけである. つまり,実際のこの部品は,1秒あたり 32768 x ( 1 ± 20 x 10^(-6) ) = 32768 ± 0.65536 個のパルスを発生することになる. 1 日あたりではどうなるだろうか? 32768 x ( 1 ± 20 x 10^(-6) ) x 60 x 60 x 24 = 2831155200 ± 56623.104 1 日あたり最大で 56623.104 個だけパルスが多かったり少なかったりするわけである. これを「32768 パルスごとに秒針を進める機構」に入れると 56623.104 / 32768 = 1.728 つまり,1 日あたり最大 1.728 秒時計が狂う計算になる. 月あたりで見れば 1.728 * 30 = 51.84 50 秒あまり狂うことになる. 実際のところ,周波数偏差が 50 x 10^(-6) とか 100 x 10^(-6) ぐらいの部品も使われてたりするので,この誤差の数倍程度の狂いは十分ありうるわけである. |