RXマイコンで作るAVR PIC ライター (RAPライター)の製作
※ AVRのライターは ebayで送料込みで100〜400円で買えるので作るのはやめましょう!!
ebay (avr isp)で検索 (安い順) でソート
書いた記事ファイルがどこかいって行方不明なので
後日 発見したときにアップロード。
材料費
500~1000円(マイコンは除く)
電源はUSBからもらう。
※ AVRのライターは ebayで送料込みで100〜400円で買えるので作るのはやめましょう!!
ebay (avr isp)で検索 (安い順) でソート
書いた記事ファイルがどこかいって行方不明なので
後日 発見したときにアップロード。
材料費
500~1000円(マイコンは除く)
電源はUSBからもらう。
カテゴリー: 電子工作
2011.06.03
USB Radio Clock TIME Server / Client
USB Radio Clock TIME Server / Clientは、
電波時計 タイムサーバーと通信を行う専用アプリケーションで、
USBで接続してあるパソコンの時刻合わせにとどまらず
SNTPサーバーも搭載し、他のPCからの時刻要求に応答することができる。
ネットワークにつなぐことなく
いつも日本標準時とパソコンが同期できているのです。
いちいちモデムの電源をつける必要はありません。
消費電流も少なく、さらに節電したい場合は、同期後にUSB自動切断もできる
(libusb0.dll + TIdUDPServerを組み込んで運用)
サーバー機は、マイコンで構成され 日本標準時(JJY電波、標準周波数局 )と同期するので
最上位のStratum1 サーバーである。
また設定により、外部パケットをUSBで端末に転送し Stratum1 で応答することもできる。
(※セキュリティ対策で、1バイト目と転送時刻のみコピーしてUSBで転送する)
サーバー動作の際、Windowstimeサーバーを停止する必要がある。
レジストリでWindows timeサーバーを完全にとめる機能に加え
簡易的にWindows timeサーバー停止・起動コマンドも備え、サーバー時刻ポートを占拠することもできる。
まだ、海外製のGPS衛星の受信ユニットしかでまわっていないが
日本製GPS衛星の受信ユニットも将来的に発売されるので
将来的に日本製GPS衛星も補足して、時刻を合わせるとおもしろいだろう。
パソコン以外にも時刻を供給できるように
この制御ソフトを不要にした
自立電源で無線LANに対応した端末も運用するとおもしろいだろう。
こんなに安価に作れるのに市販のタイムサーバーは数万円するのも謎である。
9割くらい企業のもうけだろうか?
魚屋さんは4倍もうかるというし
洋服屋さんは仕入れは1/10以下というし
中間業者が入ると中に入るたびに倍になっていくという構造もあり
損をするのは、生産者と消費者という社会構造なので仕方がないだろう。
なお、本ソフトウェアに関する個別問い合わせは受け付けていない。
関連項目
・電 波時計を使った格安時刻サーバーの製作
執筆:2011.05.27
編集:2011.05.27
編集:2011.05.27
USB Radio Clock TIME Server / Clientは、
電波時計 タイムサーバーと通信を行う専用アプリケーションで、
USBで接続してあるパソコンの時刻合わせにとどまらず
SNTPサーバーも搭載し、他のPCからの時刻要求に応答することができる。
ネットワークにつなぐことなく
いつも日本標準時とパソコンが同期できているのです。
いちいちモデムの電源をつける必要はありません。
消費電流も少なく、さらに節電したい場合は、同期後にUSB自動切断もできる
(libusb0.dll + TIdUDPServerを組み込んで運用)
サーバー機は、マイコンで構成され 日本標準時(JJY電波、標準周波数局 )と同期するので
最上位のStratum1 サーバーである。
また設定により、外部パケットをUSBで端末に転送し Stratum1 で応答することもできる。
(※セキュリティ対策で、1バイト目と転送時刻のみコピーしてUSBで転送する)
サーバー動作の際、Windowstimeサーバーを停止する必要がある。
レジストリでWindows timeサーバーを完全にとめる機能に加え
簡易的にWindows timeサーバー停止・起動コマンドも備え、サーバー時刻ポートを占拠することもできる。
サーバー端末: 総コスト:三千数百円。 開発期間3週間~。(内メインテナンスフェーズ1週間) 1日目~1週目:JJY受信とサンプルソフトでマイコンの練習。 2日目~1週目:JJY同期搭載 1週目~2週目:USB通信と制御ソフトの開発。 2週目~:メインテナンスフェーズ(実機で運用して微調整) 開発に少し手間取ったが、 マイコンを使うのは今回が初めてなのでこんなものだろう。 |
受信の模式図 |
まだ、海外製のGPS衛星の受信ユニットしかでまわっていないが
日本製GPS衛星の受信ユニットも将来的に発売されるので
将来的に日本製GPS衛星も補足して、時刻を合わせるとおもしろいだろう。
パソコン以外にも時刻を供給できるように
この制御ソフトを不要にした
自立電源で無線LANに対応した端末も運用するとおもしろいだろう。
こんなに安価に作れるのに市販のタイムサーバーは数万円するのも謎である。
9割くらい企業のもうけだろうか?
魚屋さんは4倍もうかるというし
洋服屋さんは仕入れは1/10以下というし
中間業者が入ると中に入るたびに倍になっていくという構造もあり
損をするのは、生産者と消費者という社会構造なので仕方がないだろう。
なお、本ソフトウェアに関する個別問い合わせは受け付けていない。
関連項目
・電 波時計を使った格安時刻サーバーの製作
カテゴリー: 電子工作
2011.05.27
市販の激安電波時計流用についての研究
目覚まし電波時計が800円以下でで市販されているので
一般に商品の仕入れ値は売値の半分以下なので、それを考えるとアンテナとICモジュール込みで500円でうっていても よさそうである。
しかし、現実は、違う。
電波受信用ICは、たとえば、セイコー(SM9501AV-G)400~500円~で売っているが
肝心のアンテナが売っていない。 売っていても某通販の時計キット用の700円くらいするバーアンテナくらいだろう。
しかも実装するための基板や制御用のトランジスタ、コンデンサ、クリスタル、その他をそろえると2000円を超えるだろう。
製作の手間がかかる上に、ちょっと高すぎで入手時間に手間がかかる。
そこで
身近なお店で手に入る、激安、目覚まし時計から拝借することにした。
【市販の激安電波時計流用についての研究】
【受信部ユニット(C6005A1)】
【精度への影響因子】
【受信部の比較】
【問題点】
電波の幅は、精度にこだわりがない場合は、
ADコンバーターの電位の境界値(閾値)を決めて、それの上下を0,1とすると単純化できます。
電位の状態(0,1)、開始時刻(立ち上がり/下がり)、終了時刻(立ち下がり/上がり)
を変数に格納することで、
電位が変わる、終了時刻(開始時刻)の判定段階で、どの信号がきたかを検出できます
電波の幅は、(終了時刻-開始時刻)で計算できます。
最大値がほしい場合は、最大値と時刻も変数に格納するようにするといいでしょう。
また、変数は、これらの値を構造体にひとまとめにすることで、管理の手間を軽減できます
受信開始の最初の判定値は、信用できないので、飛ばします。
ノイズで幅が実際とは違う値になる可能性もあるので注意してください。
【今後の課題】
自作に挑戦する場合は、仕様書が必要になるので各団体からダウンロードし よう。
【電波時計参考資料】
執筆:2011.05.27
編集:2011.05.27
編集:2011.05.27
目覚まし電波時計が800円以下でで市販されているので
一般に商品の仕入れ値は売値の半分以下なので、それを考えるとアンテナとICモジュール込みで500円でうっていても よさそうである。
しかし、現実は、違う。
電波受信用ICは、たとえば、セイコー(SM9501AV-G)400~500円~で売っているが
肝心のアンテナが売っていない。 売っていても某通販の時計キット用の700円くらいするバーアンテナくらいだろう。
しかも実装するための基板や制御用のトランジスタ、コンデンサ、クリスタル、その他をそろえると2000円を超えるだろう。
製作の手間がかかる上に、ちょっと高すぎで入手時間に手間がかかる。
そこで
身近なお店で手に入る、激安、目覚まし時計から拝借することにした。
【市販の激安電波時計流用についての研究】
名称 |
流用の しやすさ |
購入価格 |
備考 |
MAG T-555 | ◎ |
799円 (ルミエール) |
ルミエールで売っている激安電波時計の一つで、799円で購入した。 温度計付きであるが、温度精度が悪く いつも2~3度高く表示されている。 受信部ユニットには、 C6005A1 と印字されている 筆者は、この時計の内部ユニットを使用した。 |
PYXIS NQ501S (セイコー) |
× |
799円 (ルミエール) |
分解すると基板が、一体型で簡単に流用できる構造ではなかった。 右端に電波ユニット部がある。3分ほど基板を眺めたが使用することは断念した。 他の3店舗で値段を調査したところ、980円で売っているところが多かった。 1日3回受信を行い、文字盤も大きく温湿度計付きである。 MAG T-555より電波感度がいいので、使えないのは残念だ。 |
その他 |
? |
不明 |
未確認であるが こちらに MAG T-510SM 、MAG T-564WH DIMPLE DRA362SW CITIZEN 8RZ020-004 もモジュールが分離できるという情報がある |
一覧 |
||||||
タイトル |
||||||
|
|
|||||
|
|
【受信部ユニット(C6005A1)】
値段 |
(799円~1000 円前後) 私が探したところ、アンテナ+受信ユニット込みでは、これが最安。 受信部を工作しないで済むことからしても、 性能はともかく、価格、手間的に一番優れている。 目覚まし時計から部品取りで、 目覚まし時計は、そのまま使えるので部品代は、タダと言っても過言ではない。 |
|||||||||||||||||||||||||||||||||||||||
波形 |
みての通りパルスがJJYに対して反転してしまっている。 非常に迷惑な仕様である。 JJYは、秒の開始詰めでデータがあり 海外は、秒の終わり詰めでデータがあるので 海外仕様では、反転している方が秒開始や幅をカウントしやく、 このような反転仕様になっているのかもしれない。 |
|||||||||||||||||||||||||||||||||||||||
端子 |
※記述に間違いがある可能性があります。 参考にされる場合は、ご自分でも端子の電位などを確認し、 ご自身の自己責任のもとで、参考にされてください。 |
|||||||||||||||||||||||||||||||||||||||
使い方 |
VCC、GND端子をつなぎモジュールを起動し、 TCO端子にADコンバーターをつなぎ信号を受け取るだけである。 とても簡単にJJY電波を受信できる ADコンバータによっては、GNDとコンデンサーで接続を必要とするのでマイコンの仕様書で確認しよう。 また、用途に応じて、PON端子と周波数切り替え端子をHI/LOで制御します |
【精度への影響因子】
標準電波 | 平均値で1×10-11 の桁の精度で送られてくるので、誤差は無視できます。 |
受信モジュール |
受信状態とパルスの再現性 |
マイコン | マイコンの動作周波数とその精度 AD変換性能 |
RTC |
リアルタイムクロックの精度 |
機器 |
通信による伝達遅延誤差 |
【受信部の比較】
目覚まし電波時計 MAG T-555 のアンテナと 受信部ユニット(C6005A1) |
某社の市販の電波時計キット |
|
価格 | 1000円前後 (799円で購入) |
6400円前後 60KHz用アンテナは別売り(700円前後) (40KHzと同時受信はできないらしい) |
費用 |
マイコンを含めても 安価に仕上がる ~約1000円~約3000円~ |
6400円前後~ RS232Cケーブルなどを含めるとかなりかかる |
難 易 度 |
★★★ やや難 (制御マイコンとプログラムが必要) プログラミングの知識がないと厳しい。 |
★☆☆ 簡単 組み立てるだけの簡単キット |
製作時間 |
★★★(のんびり製作タイプ) PCとの通信回路と プログラミングが必要。 |
★☆☆ 取り寄せと 組み立てる時間だけで すぐに使える |
操 作 性 |
★★☆ パルスがJJYに対して反転していて多少くせがある。 (電波の立ち上がりがLoで返ってくる) |
★★★ 自動でやってくれる |
40/60 KHz の 受信 |
★★☆ 両方に対応 ※ただし信号で切り替えが必要 Hi: 40KHz Lo: 60KHz |
★☆☆ どちらか一方のみ対応。 ※ただし周波数選択は物理的に切り替える必要がある |
入 手 性 |
★★★ 量販店や通販で買える |
★★☆ 秋葉原または通販。 |
備考 |
マイコンをはじめるには ちょうどいい素材レベル |
既製品なので応用が利くような素材ではない |
【問題点】
- ノイズ対策(パリティが分・時 しかない)
年月日に関しては、年月日から曜日を計算して、受信した曜日と比較することができる。
年月日から曜日の算出にマイコンの言語が対応していない場合は、
曜日の計算方法については、とても簡単なので各種プログラミング言語のソースコードを参考にするとよいだろう。 - ノイズが混入してもわからない仕様なので
複数回データを受信して、データの一貫性を確認した上で時刻を修正するようにしよう。 - セキュリティ対策
受信したデータが本物であるとは限らない。 - 停波することがある
40/60KHzの切換え受信機能をつけたほうがよいだろう。
保守、雷、災害などで、予告期間なしに、一定期間サービスが停止することがある
(福島40KHz帯で2011年に数ヶ月サービス停止で混乱した例がある)
予算が許すのなら停波時のバックアップ装置としてGPSモジュールを組み込むのもいいだろう。
電波の幅は、精度にこだわりがない場合は、
ADコンバーターの電位の境界値(閾値)を決めて、それの上下を0,1とすると単純化できます。
電位の状態(0,1)、開始時刻(立ち上がり/下がり)、終了時刻(立ち下がり/上がり)
を変数に格納することで、
電位が変わる、終了時刻(開始時刻)の判定段階で、どの信号がきたかを検出できます
電波の幅は、(終了時刻-開始時刻)で計算できます。
最大値がほしい場合は、最大値と時刻も変数に格納するようにするといいでしょう。
また、変数は、これらの値を構造体にひとまとめにすることで、管理の手間を軽減できます
受信開始の最初の判定値は、信用できないので、飛ばします。
ノイズで幅が実際とは違う値になる可能性もあるので注意してください。
【今後の課題】
- 500円以下の激安アンテナ+モジュールを探す
- 100円の激安アンテナを探す
自作に挑戦する場合は、仕様書が必要になるので各団体からダウンロードし よう。
【電波時計参考資料】
- nict 標準電波の出し方について
http://jjy.nict.go.jp/jjy/trans/index.html
- Port 123 , SNTPパケットの詳細: rfc4330 rfc2030(SNTPv4)、rfc1769(SNTPv3)
http://tools.ietf.org/html/rfc2030 - UDPパケット 送受信 (必要になるのは,最初の48バイト)
- ntohl , ntohs , htonl, htons 関数
カテゴリー: 電子工作
2011.05.27
電波時計を使った格安時刻サーバー端末の製作
外部とインターネットLAN接続していない時間もPCの時刻を正確にしたいものです
そこで、USB対応の格安時刻サーバー端末を試作しました。
あと数台ほしいので、今後、良好な動作の場合、AVRなどの格安マイコンへ移植するなどして単価を抑えたいと思います。
筆者は、マイコンというものを取り扱うのは、今回が初めてです。
何もマイコンの知識がない状態で
付属していた雑誌の解説とそのサンプル、そしてマイコン会社の技術資料をたよりに試作しました。
ここで記述している内容が間違っている部分があるかもしれません、ご了承ください。
試作機1号と拡張案
材料
受信部とマイコン間の配線は、
信号線1本(TCO, Time code output)
+VCC,GND
の3本だけと とっても簡素です。
(40KHz,60KHz)周波数選択をできるようにする場合は、さらにもう一本必要です。
ときどき雷で停波したりするので、両方対応にしていた方が安心です。
省電力を考えて切断するのならマイコン側から
受信部へのVCC電源供給出力を切断すればいいという発想から
今回、受信部PON(Power ON/OFF control)端子は、未使用としました。
マイコンへは、USBで給電されるので、電池も不要。
受信部ユニット(C6005A1)
時計は、1.5Vですが、3.3Vでも動きました。
念のため抵抗をはさんで、1.6V程度で使用しました。
1.6Vの定電圧ダイオードを数個買いましたが使用しませんでした。
設計とは反対に電流が逆流しないように保護用のダイオードをつけたほうがいいと思います。
また、Power On Off(PON)端子を使わない場合でも
時々蓄電されてスイッチがHIになり、受信がオフになることがあるので、
蓄電対策をしたほうがいいです。
電波の幅は、精度にこだわりがない場合は、
ADコンバーターの電位の境界値(閾値)を決めて、それの上下を0,1とすると単純化できます。
電位の状態(0,1)、開始時刻(立ち上がり/下がり)、終了時刻(立ち下がり/上がり)
を変数に格納することで、
電位が変わる、終了時刻(開始時刻)の判定段階で、どの信号がきたかを検出できます
電波の幅は、(終了時刻-開始時刻)で計算できます。
最大値がほしい場合は、最大値と時刻も変数に格納するようにするといいでしょう。
また、変数は、これらの値を構造体にひとまとめにすることで、管理の手間を軽減できます
受信開始の最初の判定値は、信用できないので、飛ばします。
ノイズで幅が実際とは違う値になる可能性もあるので注意してください。
今回の時計の精度を考えてみましょう。
標準電波は、平均値で1×10-11 の桁の精度で送られてくるので、誤差は無視できます。
受信地点までの距離、今回無視できる範囲です。
マイコンは、96MHz(T=1.04×10-8sec)で使用しました。
マイコン側は 2マイクロ秒でAD変換が完了するので、 誤差は+-2マイクロ秒(2×10-6)なのでほとんど問題となりませ ん。
また、時刻は、USB経由でSNTP情報を送受信するので経路の伝達遅延などは補正されます。
問題となるのは、
・受信部ユニットの精度(JJYパルスの立ち上がりの再現性)
・リアルタイムクロックの精度
です。
電磁波の伝達速度、光は、1秒間に30万キロメートル進むので
単位時間あたりの移動距離は、このようになる。
なんと1ナノ秒で300mしか進めない事実が発覚!
学校教育で光は速いって洗脳されてきましたが
確かに現在確認されている中で宇宙最速の物質ではありますが
1ピコ秒にすすめる距離は、たったの 30cmですよ
電磁波は、このようにみると進むのが かなり遅い。
個人的には、ものすごく遅いと感じてしまいます。
この程度の速度が、宇宙最速の物質だとは...。
次に移動距離によって何秒かかるのかを計算してみましょう
300Kmで、到達時間が約1マイクロ秒なので、
超高精度にしない場合や送信所が比較的近い場合は、
誤差 10-5の精度までなら電磁波の速度は、考慮する必要がなさそうです。
誤差 10-6以下の精度にする場合は、考慮する必要がありそうです。
AD変換速度がその誤差精度の時間に対応していないといけません。
また処理の面でも100MHzやGHz級の応答速度が必要になってきますので、
市販の安いマイコンでは、ナノ秒レベルの超高精度は、無理でしょう。
パソコン用の3GHz級のCPUにカスタマイズした軽量OSを載せ、
それをリアルタイムクロック機能に特化すれば、10ナノ秒も夢ではないかもしれないです。
nictのntpもサーバータイムスタンプ精度は、10ナノ秒以内とかいてあるので納得できます。
しかし、納得できないことがあります
それは、
「標準電波では、24時間の周波数比較平均値で1×10-11 の精度を得ることができます」
って とても簡単そうに 公言されています。
その 10ピコ秒程度の精度のものを作りたかったのですが、遠い遠い存在で無理そうですね。
スパコンかレーザー原子発振器レベルでないとつくれないきがします。
極めて正確に計るには、送信所から何Km離れているか計算する必要があるようです。
残念ながら、JJYには、2送信所しかないので、電波を元に正確な距離を求めることはできません。
※都道府県別に電波の強度が公開されています。
また、GPSを併用すると、JJY送信所は固定ですので かなり正確な距離が計測できます。
固定地点で利用する場合では、送信所との距離をあらかじめ計測しておくことで補正値を算出しておくことができます。
GPSでは、複数の衛星からの到達時間から誤差を計算できるので、
時刻精度のよいものが得られそうです。
秒への同期については、
パルス幅200ms+-50という定義+立ち上がり時に計算なので、
最悪でも(50×10-3)50ms以上ずれることはないと考 えられます。
1分間に数十ミリ秒ずれる劣悪RTCもあるので、変な値のときは、
時刻をあわせたあと、一定時間同期せずに時計を動かし、
ふたたび同期したときに、そのときの誤差と経過時間から
単位時間あたりのRTC補正値を算出するといいでしょう。
ポジションマーカーの偏差は+-50msあるので
この計測時間は短いと受信時の誤差が無視できなくなってしまうので
30分以上の間隔で、可能な限り長い時間で計測して算出するといいだろう。
クロックカウントをしているのならその値とシステム時計の同期間隔誤差から推定することができる。
1ms未満の高精度にするには、
パルスの立ち上がりを正確に計るためにも受信増幅部は自作した方がよさそうです。
※種々の影響で、手軽な工作レベルでは、10-5程度の精度が限界なので、こだわっても意味がありません。
通常LANから直接NICTなどの超高精度時刻サーバーと同期すると受信のたびに10~30ミリ秒(30×10-3)前後のずれが 生じます。
そのことを考えると今回伝達経路が短いので(1×10-3~1×10-4)程度の時刻精度があれば十分だと 思います。
2×10-6秒で受信できるのですが、省エネと受信モジュールの精度がわからないので、AD間隔を1×10-4秒 にして受信しました。
超高精度時刻を必要とする科学的計測機器は別として、
0.1秒(1×10-1)程度の誤差までなら、日常生活では ほとんど問題とならないでしょう。
一番問題となる遅延は、パソコン内でのスレッドの優先度です。
これが、一番大きな誤差が発生しやすいです。
場合によっては数ミリ秒から数秒遅延します。
パソコン側は、スレッドの優先度と混み具合の変化(CPU占有率)で処理が遅延します。
一瞬であわせるには、時刻同期ソフトがいかに高い優先度で割り込んで時刻を合わせるかが鍵です。
また、ソフトで1秒間の間隔を調整してじっくりあわせる手もあります。
パソコンの時刻は、すぐにずれていくので(1日に数秒)、神経質になっても意味がありません。
ここで、リアルタイムに同期できるメリットをいかし、パソコンのずれる値を予測し、
調節間隔をシステムに指定することでパソコンのずれを軽減することもできます(ただし、Windowsが起動している間だけ)
前回の同期時刻と現在のずれを調べることで手動で計算することもできます
今回製作した省電力小型高性能時刻サーバーは、
標準電波の原子時計と同期するのでStratum1サーバーになります。
これと同期したパソコンは、Stratum2ということになります。
最後に時刻サーバー端末とパソコンをリンクして、
ネット上のSNTPサーバーとの時刻のずれを確認して、精度を確認します
これは、時刻合わせソフトでどちらかに合わせたあと、もう一方とのずれを表示するでことで簡単に確認ができます。
正確に計るには、端末から外部の正確なStratum1サーバーに向けてUDPパケットを送り 計算します。
デバッグが完了したら、
ユニバーサル基板にハンダづけ固定し、
適当な容器にいれて(今回105円の容器を使用)
ねじなどで固定して完成です。
今回は、パソコン-端末との接続はUSBケーブルを利用し、
端末は、パソコンラックの邪魔にならないところにつるしました。
リアルタイムで受信状況(波形)を確認できるようにしておくと
設置場所を決めるときに苦労しないで済みます。
受信状態をみながら探せるように設計することをおすすめします。
【置く場所】
40KHz(福島県),60KHz(佐賀県)なので、考えて設置しよう。
アンテナを延長したい場合は、ユニットとアンテナを分離してアンテナを防水して延長します。
結露などする場合は、本体をおくと危険なので、
適当な容器にアンテナを分離・完全防水して、アンテナだけ遠くに設置する方法のほうが安全だと思われます。
※屋外に設置する場合は、アンテナが落雷にあうと火災や感電死亡の原因になるので、十分注意しよう。
アンテナは、コイルを水平にし、
基地局に対して、同心円上に入るように設置します
【受信部の比較】
【マイコン】
【受信部ユニット(C6005A1)】
【感想】
【今後の課題】
【関連ページ】
自作に挑戦する場合は、仕様書が必要になるので各団体からダウンロードし よう。
【電波時計参考資料】
執筆:2011.05.03
編集:2011.05.27
編集:2011.06.07
編集:2011.05.27
編集:2011.06.07
外部とインターネットLAN接続していない時間もPCの時刻を正確にしたいものです
そこで、USB対応の格安時刻サーバー端末を試作しました。
あと数台ほしいので、今後、良好な動作の場合、AVRなどの格安マイコンへ移植するなどして単価を抑えたいと思います。
筆者は、マイコンというものを取り扱うのは、今回が初めてです。
何もマイコンの知識がない状態で
付属していた雑誌の解説とそのサンプル、そしてマイコン会社の技術資料をたよりに試作しました。
ここで記述している内容が間違っている部分があるかもしれません、ご了承ください。
逆恨みされても困りますので、挑戦するときは自己責任で挑戦してください。
※短時間工作ができた理由として、筆者は、Windowsの豊富なプログラミング知識を持っていたからです。
※短時間工作ができた理由として、筆者は、Windowsの豊富なプログラミング知識を持っていたからです。
試作機1号と拡張案
材料
ハンダコテ+技術 |
※ |
重度のやけどなどの障害を負う可能性がある。 危険を伴うので十分に 注意すること。 ブレッドボードでも可能だが、その際も ショート、発熱すると高熱を発するので 火事や重度のやけどの危険を伴うので注意しよう。 1.5Vでもバチッとくると一瞬で皮膚細胞が深部まで死滅します。 設計を間違う と火災の危険があるので注意すること |
標準電波受信部装置 アンテナ+受信回路 |
● |
今回は、ルミエール(旧ロジャース)で購入した 799円の目覚まし電波時計(MAG T-555 )の アンテナと受信部ユニット(C6005A1)をはずして使用しました。 なんと通電だけで、増幅済みの電波をキャッチ。 はずした残りの部分は、そのまま目覚まし時計として使えて捨てるところがありません。 |
マイコン | ● | スイッチ制御と AD変換が1回路できて、 PCと通信ができればよいだけなので、好きな組み合わせでそろえます。 USB対応マイコン(200円~、端子配線済み基板 1000円~) 安いマイコンはプログラム領域が少ないので注意しよう。 Arduinoが入門書籍が多くてお勧めです。 でも単価が高いので、電波時計市販キットを買ったほうがいいかもしれないです 安く済ませたい+他にも何かの機会があれば作りたい場合は、
ライターはデバッグできるほうがいいので、純正をおすすめします。 ※意図した動作をしない場合、問題を突き止めるには、リアルタイムデバッグが必須です。 あるなしでは、作業効率が大幅に違います。 マイコンの動作原理は、単純な8bit マイコン等の解説サイトで学習すると 他のマイコンに置き換えて考えることで理解を早めることができます。 |
リアルタイム クロック (RTC) |
▲ |
リアルタイムクロック機能 無くても、周期タイマーである程度カバー可能。 マイコン自体にリアルタイムクロックを内蔵している場合があるので 買う前に確認しよう。 独立したリアルタイムクロックチップを増設してもよい(500円前後~) 今回は、マイコン内蔵のRTCを併用しました。 |
LAN対応 (LANチップと端子) |
▲ | 純粋なSNTPサーバーにしたい場合は、 IPアドレスとポートの指定だけで ドライバ類の開発インストールが不要なので、こちらを採用したほうがとても簡単です。 送受信対応にすると精度が測れて面白いだろう。 HTTP機能を付けて設定画面を作るとおもしろいだろう。 必要に応じて購入する。 配線済みLANチップ(700円~)+LAN端子(100円~) 例:RTL8019AS変換モジュール、基板取付用LANコネクタ(RJ-45タイプ)など |
シリアル接続端子 |
▲ | 今回は、USBを使用するので未使用としました。 RS232端子(50円~200円) |
その他の部品 |
● |
基板 80円~ 抵抗、コンデンサー、配線、コネクタ(数円~100円程度) 保護用のダイオード |
必要に応じて購入する | ▲ | 操作スイッチ、表示部(モニター)、 ヒューズ |
受信部とマイコン間の配線は、
信号線1本(TCO, Time code output)
+VCC,GND
の3本だけと とっても簡素です。
(40KHz,60KHz)周波数選択をできるようにする場合は、さらにもう一本必要です。
ときどき雷で停波したりするので、両方対応にしていた方が安心です。
省電力を考えて切断するのならマイコン側から
受信部へのVCC電源供給出力を切断すればいいという発想から
今回、受信部PON(Power ON/OFF control)端子は、未使用としました。
マイコンへは、USBで給電されるので、電池も不要。
USB版の開発中の写真 |
写真の高性能マイコンRX62Nは、雑誌の付録です(2310円)。 (AD変換性能 2マイクロ秒で、とっても高性能) |
マイコンへの配線は、3本のみ(AD0,3.3V,GND)。 アンテナは、セロハンテープで固定しています。 |
受信部ユニット(C6005A1)
時計は、1.5Vですが、3.3Vでも動きました。
念のため抵抗をはさんで、1.6V程度で使用しました。
1.6Vの定電圧ダイオードを数個買いましたが使用しませんでした。
設計とは反対に電流が逆流しないように保護用のダイオードをつけたほうがいいと思います。
また、Power On Off(PON)端子を使わない場合でも
時々蓄電されてスイッチがHIになり、受信がオフになることがあるので、
蓄電対策をしたほうがいいです。
受信部を基板に永久固定した写真です。 良好な感度で受信します。 |
受信の模式図 |
Windows用 専用 時刻制御ソフトウェア(開発版) 予定時刻の数十秒前後に勝手に動作を始めるソフトのために システム時刻を意図的にずらすこともできる。 ただ副作用としてメールやタイムスタンプなども時刻がずれるため、使わないほうがいいときもある。 また、リクエストIPごとに Stratumの選択ができるようになっている。 デフォルトは、システム時刻のStratum2で返信し、受け取り側は、Stratum3となる。 設定を加えることで特定のIPには、 端末へのパケット通過を許可しStratum1で応答することができる |
電波の幅は、精度にこだわりがない場合は、
ADコンバーターの電位の境界値(閾値)を決めて、それの上下を0,1とすると単純化できます。
電位の状態(0,1)、開始時刻(立ち上がり/下がり)、終了時刻(立ち下がり/上がり)
を変数に格納することで、
電位が変わる、終了時刻(開始時刻)の判定段階で、どの信号がきたかを検出できます
電波の幅は、(終了時刻-開始時刻)で計算できます。
最大値がほしい場合は、最大値と時刻も変数に格納するようにするといいでしょう。
また、変数は、これらの値を構造体にひとまとめにすることで、管理の手間を軽減できます
受信開始の最初の判定値は、信用できないので、飛ばします。
ノイズで幅が実際とは違う値になる可能性もあるので注意してください。
今回の時計の精度を考えてみましょう。
標準電波は、平均値で1×10-11 の桁の精度で送られてくるので、誤差は無視できます。
受信地点までの距離、今回無視できる範囲です。
マイコンは、96MHz(T=1.04×10-8sec)で使用しました。
マイコン側は 2マイクロ秒でAD変換が完了するので、 誤差は+-2マイクロ秒(2×10-6)なのでほとんど問題となりませ ん。
また、時刻は、USB経由でSNTP情報を送受信するので経路の伝達遅延などは補正されます。
問題となるのは、
・受信部ユニットの精度(JJYパルスの立ち上がりの再現性)
・リアルタイムクロックの精度
です。
電磁波の伝達速度、光は、1秒間に30万キロメートル進むので
単位時間あたりの移動距離は、このようになる。
[Km] | 300000000 | 300000 | 300 | 0.3 |
光速 30万Km/秒30*10000*1000 |
秒 | ミリ秒 | マイクロ秒 | ナノ秒 |
学校教育で光は速いって洗脳されてきましたが
確かに現在確認されている中で宇宙最速の物質ではありますが
1ピコ秒にすすめる距離は、たったの 30cmですよ
電磁波は、このようにみると進むのが かなり遅い。
個人的には、ものすごく遅いと感じてしまいます。
この程度の速度が、宇宙最速の物質だとは...。
次に移動距離によって何秒かかるのかを計算してみましょう
100Km | 0.333E-006 |
200Km | 0.667E-006 |
300Km | 1.0E-006 |
1000Km | 3.33E-006 |
超高精度にしない場合や送信所が比較的近い場合は、
誤差 10-5の精度までなら電磁波の速度は、考慮する必要がなさそうです。
誤差 10-6以下の精度にする場合は、考慮する必要がありそうです。
AD変換速度がその誤差精度の時間に対応していないといけません。
また処理の面でも100MHzやGHz級の応答速度が必要になってきますので、
市販の安いマイコンでは、ナノ秒レベルの超高精度は、無理でしょう。
パソコン用の3GHz級のCPUにカスタマイズした軽量OSを載せ、
それをリアルタイムクロック機能に特化すれば、10ナノ秒も夢ではないかもしれないです。
nictのntpもサーバータイムスタンプ精度は、10ナノ秒以内とかいてあるので納得できます。
しかし、納得できないことがあります
それは、
「標準電波では、24時間の周波数比較平均値で1×10-11 の精度を得ることができます」
って とても簡単そうに 公言されています。
その 10ピコ秒程度の精度のものを作りたかったのですが、遠い遠い存在で無理そうですね。
スパコンかレーザー原子発振器レベルでないとつくれないきがします。
極めて正確に計るには、送信所から何Km離れているか計算する必要があるようです。
残念ながら、JJYには、2送信所しかないので、電波を元に正確な距離を求めることはできません。
※都道府県別に電波の強度が公開されています。
また、GPSを併用すると、JJY送信所は固定ですので かなり正確な距離が計測できます。
固定地点で利用する場合では、送信所との距離をあらかじめ計測しておくことで補正値を算出しておくことができます。
GPSでは、複数の衛星からの到達時間から誤差を計算できるので、
時刻精度のよいものが得られそうです。
秒への同期については、
パルス幅200ms+-50という定義+立ち上がり時に計算なので、
最悪でも(50×10-3)50ms以上ずれることはないと考 えられます。
1分間に数十ミリ秒ずれる劣悪RTCもあるので、変な値のときは、
時刻をあわせたあと、一定時間同期せずに時計を動かし、
ふたたび同期したときに、そのときの誤差と経過時間から
単位時間あたりのRTC補正値を算出するといいでしょう。
ポジションマーカーの偏差は+-50msあるので
この計測時間は短いと受信時の誤差が無視できなくなってしまうので
30分以上の間隔で、可能な限り長い時間で計測して算出するといいだろう。
クロックカウントをしているのならその値とシステム時計の同期間隔誤差から推定することができる。
1ms未満の高精度にするには、
パルスの立ち上がりを正確に計るためにも受信増幅部は自作した方がよさそうです。
※種々の影響で、手軽な工作レベルでは、10-5程度の精度が限界なので、こだわっても意味がありません。
通常LANから直接NICTなどの超高精度時刻サーバーと同期すると受信のたびに10~30ミリ秒(30×10-3)前後のずれが 生じます。
そのことを考えると今回伝達経路が短いので(1×10-3~1×10-4)程度の時刻精度があれば十分だと 思います。
2×10-6秒で受信できるのですが、省エネと受信モジュールの精度がわからないので、AD間隔を1×10-4秒 にして受信しました。
超高精度時刻を必要とする科学的計測機器は別として、
0.1秒(1×10-1)程度の誤差までなら、日常生活では ほとんど問題とならないでしょう。
一番問題となる遅延は、パソコン内でのスレッドの優先度です。
これが、一番大きな誤差が発生しやすいです。
場合によっては数ミリ秒から数秒遅延します。
パソコン側は、スレッドの優先度と混み具合の変化(CPU占有率)で処理が遅延します。
一瞬であわせるには、時刻同期ソフトがいかに高い優先度で割り込んで時刻を合わせるかが鍵です。
また、ソフトで1秒間の間隔を調整してじっくりあわせる手もあります。
パソコンの時刻は、すぐにずれていくので(1日に数秒)、神経質になっても意味がありません。
ここで、リアルタイムに同期できるメリットをいかし、パソコンのずれる値を予測し、
調節間隔をシステムに指定することでパソコンのずれを軽減することもできます(ただし、Windowsが起動している間だけ)
前回の同期時刻と現在のずれを調べることで手動で計算することもできます
今回製作した省電力小型高性能時刻サーバーは、
標準電波の原子時計と同期するのでStratum1サーバーになります。
これと同期したパソコンは、Stratum2ということになります。
最後に時刻サーバー端末とパソコンをリンクして、
ネット上のSNTPサーバーとの時刻のずれを確認して、精度を確認します
これは、時刻合わせソフトでどちらかに合わせたあと、もう一方とのずれを表示するでことで簡単に確認ができます。
正確に計るには、端末から外部の正確なStratum1サーバーに向けてUDPパケットを送り 計算します。
デバッグが完了したら、
ユニバーサル基板にハンダづけ固定し、
適当な容器にいれて(今回105円の容器を使用)
ねじなどで固定して完成です。
今回は、パソコン-端末との接続はUSBケーブルを利用し、
端末は、パソコンラックの邪魔にならないところにつるしました。
リアルタイムで受信状況(波形)を確認できるようにしておくと
設置場所を決めるときに苦労しないで済みます。
受信状態をみながら探せるように設計することをおすすめします。
【置く場所】
40KHz(福島県),60KHz(佐賀県)なので、考えて設置しよう。
アンテナを延長したい場合は、ユニットとアンテナを分離してアンテナを防水して延長します。
結露などする場合は、本体をおくと危険なので、
適当な容器にアンテナを分離・完全防水して、アンテナだけ遠くに設置する方法のほうが安全だと思われます。
※屋外に設置する場合は、アンテナが落雷にあうと火災や感電死亡の原因になるので、十分注意しよう。
アンテナは、コイルを水平にし、
基地局に対して、同心円上に入るように設置します
【受信部の比較】
目覚まし電波時計 MAG T-555 のアンテナと 受信部ユニット(C6005A1) |
某社の市販の電波時計キット |
|
価格 | 1000円前後 (799円で購入) |
6400円前後 60KHz用アンテナは別売り(700円前後) (40KHzと同時受信はできないらしい) |
費用 |
マイコンを含めても 安価に仕上がる ~約3000円~ |
6400円前後~ RS232Cケーブルなどを含めるとかなりかかる |
難 易 度 |
★★★ やや難 (制御マイコンとプログラムが必要) プログラミングの知識がないと厳しい。 筆者はマイコンは今回が初めてです。 |
★☆☆ 簡単 組み立てるだけの簡単キット |
製作時間 |
★★★(のんびり製作タイプ) PCとの通信回路と プログラミングが必要。 |
★☆☆ 取り寄せと 組み立てる時間だけで すぐに使える |
操 作 性 |
★★☆ パルスがJJYに対して反転していて多少くせがある。 (電波の立ち上がりがLoで返ってくる) |
★★★ 自動でやってくれる |
40/60 KHz の 受信 |
★★☆ 両方に対応 ※ただし信号で切り替えが必要 Hi: 40KHz Lo: 60KHz |
★☆☆ どちらか一方のみ対応。 ※ただし周波数選択は物理的に切り替える必要がある |
入 手 性 |
★★★ 量販店や通販で買える |
★★☆ 秋葉原または通販。 |
備考 |
マイコンをはじめるには ちょうどいい素材レベル 取り込んだ時間を利用して ロガー機能を内蔵するといいだろう |
既製品なので応用が利くような素材ではない |
【マイコン】
PIC |
USB対応(5V) 200円~ 平均(~3.3V) 400 , 500円~ PIC対応のライターが必要になる。 その他、クリスタルやRTCチップなどが必要。 精度、速度より、低電力にしたい場合などにおすすめ。 ※Web上に資料が豊富。 個人にもメーカーが直販してして、 日本の通販で売っていない型番を買うことができる |
||||||||||||||||
AVR |
PICと同様 日曜大工の 大人気シリーズ 安くて使いやすいと好評。 ライターも3300円くらいと格安。 ただし、なぜかUSB内蔵型は、 日本でほとんど流通していないので割愛します LAN接続だけでいいのなら、これを使うと安価にできるだろう。
|
||||||||||||||||
RX62N基板 |
Interface 2011年5月号(2310円)の付録で付いている USBからダイレクトに書き込みができ専用ライターを必要としない。 すぐにつかえて、高機能な反面、開発環境に制限があるのでおすすめしない。 再書き込み/消去サイクル(ブロックごと) ROM(コード格納用フラッシュメモリ) 1000 データフラッシュ(データ格納用フラッシュメモリ) 30000 PICと比べると書き込み回数が少ない気がする
|
||||||||||||||||
SH-2A基板 |
Interface 2011年6月号の付録で付いている 後継品で、より低電力のRx62Nのほうがいいだろう |
||||||||||||||||
ARMマイコン基板 |
トランジスタ技術4月号増刊 2枚入り超小型ARMマイコン基板 |
||||||||||||||||
※共通 USB対応にするとプログラムが複雑になり、romも巨大になります。 |
【受信部ユニット(C6005A1)】
値段 |
(799円~1000 円前後) 私が探したところ、アンテナ+受信ユニット込みでは、これが最安。 受信部を工作しないで済むことからしても、 性能はともかく、価格、手間的に一番優れている。 目覚まし時計から部品取りで、 目覚まし時計は、そのまま使えるので 部品代は、タダと言っても過言ではない。 |
|||||||||||||||||||||||||||||||||||||||
波形 |
みての通りパルスがJJYに対して反転してしまっている。 非常に迷惑な仕様である。 JJYは、秒の開始詰めでデータがあり 海外は、秒の終わり詰めでデータがあるので 海外仕様では、反転している方が秒開始や幅をカウントしやく、 このような反転仕様になっているのかもしれない。 |
|||||||||||||||||||||||||||||||||||||||
端子 |
※記述に間違いがある可能性があります。 参考にされる場合は、ご自分でも端子の電位などを確認し、 ご自身の自己責任のもとで、参考にされてください。 |
|||||||||||||||||||||||||||||||||||||||
使い方 |
VCC、GND端子をつなぎモジュールを起動し、 TCO端子にADコンバーターをつなぎ信号を受け取るだけである。 とても簡単にJJY電波を受信できる ADコンバータによっては、GNDとコンデンサーで接続を必要とするのでマイコンの仕様書で確認しよう。 また、用途に応じて、PON端子と周波数切り替え端子をHI/LOで制御します |
一覧 |
||||||
タイトル |
||||||
|
|
|||||
|
|
【感想】
- ネットワーク状況に関係なく、標準時刻に同期しているので、大変便利です。
- 格安サーバーレベルで、JJY電波を拾って、ナノ秒単位(10-9)の超高精度にするには、予算的に無理。
補正なしでは、10マイクロ秒(10-5)レベルの高精度が限界と思われる。 - 同期元と受信機レベル(時刻サーバー)の同期精度についてのまとめ
端末
同期
精度10-3 10-4 10-5 10-6 10-9 10-12 10-15 JJY 容易に
実現できる
レベルハイスペック
マイコンで
できるレベル伝達距離の
補正が必要に
なってくるレベルハイスペック
パソコン
レベル-
スパコン
レベルGPS GPSユニット、補足衛星数・受信感度、制御 CPUによる 公開
ネット
ワーク
経由
SNTP○ △ ? ? ? - ネットワー ク回線の種類・速度・経路などに
依存する部分が大きいので一概には評価できない。※あくまで も個人的な見解です。
- ノイズ対策(パリティが分・時 しかない)
年月日に関しては、年月日から曜日を計算して、受信した曜日と比較することができる。
年月日から曜日の算出にマイコンの言語が対応していない場合は、
曜日の計算方法については、とても簡単なので各種プログラミング言語のソースコードを参考にするとよいだろう。 - ノイズが混入してもわからない仕様なので
複数回データを受信して、データの一貫性を確認した上で時刻を修正するようにしよう。 - セキュリティ対策
受信したデータが本物であるとは限らない。 - 停波することがある
40/60KHzの切換え受信機能をつけたほうがよいだろう。
保守、雷、災害などで、予告期間なしに、一定期間サービスが停止することがある
(福島40KHz帯で2011年に数ヶ月サービス停止で混乱した例がある)
予算が許すのなら停波時のバックアップ装置としてGPSモジュールを組み込むのもいいだろう。
- 1秒間に処理できるSNTP応答処理数は、計っていないので不明。
- 最大値は、ネットワークの伝送速度と処理パケット数に依存することは間違いない。
- ネットワークの伝送速度÷(48*2+信号処理にかかるバイト数) より大きくなることは不可能。
MAC 層のパケット 72~1526バイト
100Mbps , 100/8/(48*2+α) +αをとりあえず80くらいにすると 0.07M個となり 7万。
最新の1Gbpsの1000Mbpsだと 70万。
0.07M個なら、マイコンの処理能力(98MHz)を超えていないような気がします?
公開サーバーにすると平気で秒間、数十万のアクセスがきますので、激安サーバーでは、ダウンしてしまいます。
nict(毎秒100万リクエスト以上)のようにルーターか何かで分散させないと無理でしょう。
しかし、小規模なローカルネットワーク上では、短時間でそのような膨大なアクセスは、まずないので十分使えそうです。
【今後の課題】
- 動作チェックの継続(誤動作しないかなどの検出)
- ネットワークアドレスの手動変更機能
- 有線LANで複数の機器と同時共有できるようにする
- 無線LAN装置の接続
- SDカードに対応させ、外部カメラと連動しデータを保存できるようにする。
監視カメラ、生態観察、植物・観賞魚の成長記録などへの応用 - GPSを搭載して、マルチ高性能時刻サーバーにする
高度計としても利用できる - バッテリーを搭載させ、GPSロガー機能をもたせる
- 外付け照度センサーを付け、夜が明けると「コケコッコー!」と鳴かせる。
- 200円 USB-PICマイコンと受信ユニット
- AD,シリアル内蔵100円マイコンとRS232C端子と受信ユニット
- AD内蔵100円マイコンとLANチップモジュールと受信ユニット
【関連ページ】
自作に挑戦する場合は、仕様書が必要になるので各団体からダウンロードし よう。
【電波時計参考資料】
- nict 標準電波の出し方について
http://jjy.nict.go.jp/jjy/trans/index.html
- Port 123 , SNTPパケットの詳細: rfc4330 rfc2030(SNTPv4)、rfc1769(SNTPv3)
http://tools.ietf.org/html/rfc2030 - UDPパケット 送受信 (必要になるのは,最初の48バイト)
- ntohl , ntohs , htonl, htons 関数
カテゴリー: 電子工作
2011.05.03