最終更新日:2024年2月29日
ここでは、STM32minShieldを使用した、提供可能なGPS NTP タイムサーバを紹介します。
※2024年02月29日 今日は閏日です。日時表示は大丈夫でした
※2021年01月15日 タイトル変更 NTP という単語を追加させて戴きました。
※2020年12月25日 一部仕様を変更しました。シチズンさんとかセイコーさんとかから高機能なタイムサーバが提供されていますが、とても高価です。
目的さえ合えば、シンプルで安定した、、安価なタイムサーバが良いに越したことはありません。
そこでSTM32minShieldを使用して構築したタイムサーバユニットを紹介します。
時刻同期方法はいろいろ考えられますが、安価なGPSモジュールを接続したものを紹介します。
コラム
目次
- 工場等で使用する装置に接続し、PCやPLCの時刻にずれがない様にする。
- 工場窓で有ればGPS電波は受信出来る。
- 19"ラック取付用ユニットとして汎用的なモノとする
- SNTPに対応し、OMRONPLCなどのユニットでも時刻同期が出来る。当然WindowsPCやLinuxPCの時刻同期も動作確認済み。
|
|
ここで書かれている内容がどのような構成部品で実現するのか明示しておきます。
大まかには、以下の構成部品要素で実現可能です。
- STM32miniShiled Kit
- W850ioModule
- GPSアンテナモジュール(ステレオminiプラグタイプ)
- TM1637表示モジュール
- USBケーブル+USB電源アダプタ
- ステレオminiジャックコネクタ
- 適当なハウジング
GPSタイムサーバ 備考 時刻修正方式 GPS センテンス$xxRMCを読み取って調整 動作状態 SNTPサーバ(時刻同期)
HTTPサーバ(設定)時刻精度 GPSモジュールの精度に準ずる 内部時間は処理時間分の遅れあり LANインターフェース 10/100BASE-TX RJ-45 対応プロトコル SNTPv4 外形寸法(mm) 483×44×120 電源電圧(V) DC5V
消費電流210mA(実測値)USBマイクロBで提供
ACアダプタは100−240VAC50/60HzGPSアンテナ 受信周波数(MHz) 1575.42±5 安価なカーナビ用のGPSアンテナを流用U-BLOXのモジュールを期待しているが、汎用文字列(NMEA-0183)を解釈しているので特に制限はない。
φ3.5mmステレオタイプのコネクタで有ること。本体より3.3Vの電源供給利得(dBi) 28+/-3dB 外形寸法(mm) 45x38x15mm ケーブル長(m) 約1.6m 固定方法 マグネット固定方式
本装置で使用するGPSアンテナは簡易取付型カーナビで使用されているステレオプラグ対応のGPSアンテナを流用して使用する事にしています。
カーナビに採用されているGPSアンテナですが、安価な簡易取付型の場合、GPSアンテナオプションの場合が多く、GPSアンテナ単体での購入が可能となっています。そのため本装置のように流通品を流用利用してしまうことになります。
このアンテナに電源供給するとシリアル9600bpsでNMEA-0183のセンテンス文字列(ASCII)を受信出来ます。
$から始まる6文字で トーカ ID と メッセージIDが固定長で得られますので、ここで篩に分けて必要なセンテンスを拾い、情報解析して必要な日付・時刻情報を抜き出し、内部時計の更新に使用する事になります。トーカ IDは無視し、メッセージIDのRMC(Recommended Minimum Specific GNSS Data)を採用すれば、日付・時刻情報が得られることが判っています。
カーナビでは位置情報も重要ですが、正確な時間も必要です。そのためRMCの情報はどのカーナビでも採用していると考えられます。(※確定情報では無く、手元の調査情報です。)ちなみにRMCセンテンス仕様は以下の通りです。
※GPRMCとGNRMCに違いがあることが判りました。パースの仕方に注意が必要です。センテンス例:$GPRMC,085120.307,A,3541.1493,N,13945.3994,E,000.0,240.3,181211,,,A*6A
単語例 説明 意味 GP RMCGPS測位まとめデータのような存在 085120.307 時刻 8:51:20.307 A データ有効性 A/B/V/W A= valid current data 3541.1493 緯度 DDMM.MMMフォーマット 緯度:35度41.1493分 N 緯度方角 N/S N = 北緯 13945.3994 経度 経度;139度45.3994分 E 緯度方角 E/W E=東経 000.0 地表における移動の速度 移動の速度:000.0[knot] 240.3 地表における移動の真方位 移動の真方位:240.3度 181211 日付 DDMMYY UTC日付:2011年12月18日 磁北と真北の間の角度の差。 磁北と真北の間の角度の差の方向。E/W A 測位モード N/A/D/E/M/S/ A=自律方式 *6A チェックサム センテンス例2:$GNRMC,004055.000,A,3430.62710,N,13316.68285,E,0.05,115.20,251220,,,A,V*0B
単語例 説明 意味 GN RMCGPS測位まとめデータのような存在 004055.000時刻 00:40:55.000V データ有効性 A/B/V/W V= navigation receiver warming 3430.62710緯度 DDMM.MMMフォーマット 緯度:34度30.62710分 N 緯度方角 N/S N = 北緯 13316.68285経度 経度;133度16.68285分 E 緯度方角 E/W E=東経 0.05 地表における移動の速度 移動の速度:0.05[knot] 115.20地表における移動の真方位 移動の真方位:115.20度 251220日付 DDMMYY UTC日付:2020年12月25日 磁北と真北の間の角度の差。 磁北と真北の間の角度の差の方向。E/W N 測位モード N/A/D/E/M/S/ A=データ無効 Vナビゲーション状態 S/C/U/V V:無効(RAIM 機能 OFF) *0B チェックサム 実際にamazonで入手可能の対象GPSモジュールを調査しました。
ブランド 参考型番 価格 ケーブル長 写真等 ThiEYE CV3-GPS \2999 VANBAR A2000 \1499 Superbat GA50-180-35MRA \1380 1.8m Crosstour 5823920520 \1499 VANBAR D164 \1300 NZACE \999 YAZACO YG30 \1790 AZDOME JPDOME-GS01 \1999 AKEEYO AKY-X2-GPS \2088 もしGPSモジュール端がバラ線だったりした場合は、以下のようなアダプタで対応可能となります。
【本体(タイムサーバー)の設置】
19"ラックに設置し、同梱LANケーブルにてHUBに接続します。
【GPSアンテナの設置】
GPSアンテナは屋内専用です。外壁近くの受診良好な窓用の箇所に貼り付けてください。
接続ケーブルの延長ですが、供給電圧が3.3Vと云う事も有り、延長先の電圧が3Vを切ってしまうと動作不安定になります。延長にはステレオタイプのケーブルが流用出来ます。
もともと車内で使用する様になっており、LVTTLのラインドライバがモジュール側に備わっているような気がします。【電源の投入】
GPSアンテナへの電源供給は本体から実行します。
本体への電源供給はUSBケーブル(タイプA-MicroB)及びUSB-ACアダプタを使用して実行します。
USBケーブルは添付のモノでは短い場合、2A供給可能なケーブルで置き換えてください。
EtherNet/IPモジュール CJ1W-EIP21 の取説10章『時計情報自動調整機能』に記述があります。
CJの場合、このモジュールが設定済みのSNTP サーバから時間情報を取得し、自身が装着されているCPU ユニットの内部時計情報を更新することになります。
設定にはSysmacStudioが必要の様です。
項目名 内容(デフォルト値) @ SNTP サーバの時計情報 (取得しない)
SNTP サーバから時計情報を取得し、取得した時刻をCPU 内蔵時計に
反映するか、しないかを選択します。
取得するに変更します。A ポートNo. (123)
時計情報を取得するSNTP サーバとの接続に使うポート番号を設定
します。変更しないでください。B サーバ指定方法 (IP アドレス)
時計情報を取得するSNTP サーバを、どの方法で指定するかを選択
します。
IP アドレス/ホスト名 変更せず、IP アドレスとします。C IP アドレス SNTP サーバのIP アドレスを設定します。
実際の環境に合わせて、NTPサーバのIPアドレスを入力しますD ホスト名 SNTP サーバのホスト名(ホストのドメイン名)を設定します。
何も入力しないでください。E 指定時刻[時: 分: 秒] (00:00:00)
SNTP サーバにアクセスして、時計を合わせる時刻を設定します。
(設定範囲:00:00:00 〜 23:59:59)F タイムアウト時間[秒] タイムアウトの検知時間を設定します。(設定範囲:0 〜 255 秒)
リモートホストから応答がないときは、ここで設定した時間の間隔で、
再送処理を4 回まで行います。
最短時間1秒に設定します。G 時差調整 (+0)
SNTP サーバから取得した時間データに時差を足したものを、
CPU ユニットの時計情報に設定したい場合、設定します。
SNTP サーバはUTCですのでJSTにするため+9とします。
『日付と時刻』>『インターネット時刻』タブ>『設定の変更』>今すぐ更新 で実現出来ます。
上記方法はマニュアルでの設定になります。定期的な設定はタスクスケジューラで実現します。
コマンドスクリプトを実行して設定した方が確実かと思います。
schtasks /create /tn "TimeDame adjustment" /tr "w32tm /resync" /sc Daily /st 15:00 |
上記スクリプトは毎日15時に“w32tm /resync”というコマンドを実行するというスクリプトで、タスクスケジューラに『TimeDame adjustment』と云う名前で登録するというモノです。※名前は任意です。
/createは新規作成ですので、一旦作成したら/change に変更して更新登録とすべきかと思います。※/changeでは/sc使えません。時刻変更する場合は以下のように書けばよいようです。実行する際にログオンパスワードを要求されます。
※上書きも許されるようです。
schtasks /change /tn "TimeDame adjustment" /tr "w32tm /resync" /st 16:00“w32tm /resync”は既にインタネット時刻設定にntpサーバが登録済みである必要があります。
実際にこのコマンドが実行されるとコマンドプロンプトが起動します。気になる場合はScriptのラップを掛けて解決できるようです。w32tmの/monitorオプションは、ローカル・コンピュータとリモート・コンピュータ(NTPサーバ)間の時刻差や上位NTPサーバの名前を確認できます。
w32tm /monitor /computers:192.168.0.199タスクスケジューラ用のコマンドについてはいろいろなサイトに紹介記事がありますので割愛します。@ITの記事を参考にしています。
https://www.atmarkit.co.jp/ait/articles/1207/12/news146.html
NTPの仕組みについても@ITの以下のサイトを参考にしました。
https://www.atmarkit.co.jp/ait/articles/0508/12/news089.html
Raspberry Piハードウエア的にRTCが搭載されていないので、起動時に時刻同期するようにするのがリーズナブルです。
設定ファイル /etc/systemd/timesyncd.conf を編集することが一般的のようです。
NTP=192.168.0.199 LocalNTP
時刻表記を『時分』で扱うため、動作しているのかどうか安易に示す方法としてコロン表記を点滅表記するようにしています。現状0.5秒点灯0.5秒消灯の点滅です。
このコロン表記ですが、諏訪精工舎が1970年に特許出願したモノだとのことです。1秒間隔での区切り点滅とのことです。出願後20年経っていますので、ここに問題は残っていないと思います。
※重田暁彦氏著『「雪見だいふく」はなぜ大ヒットしたのか 77の「特許」発想法』より
2Uのパネルの方が需要があるかな
サウンドハウスが扱っているパネルは安価で、アルミt1なので加工しやすいと考えています。
https://www.soundhouse.co.jp/products/detail/item/53980/
2024年2月29日 今日は閏日です。
2024年は閏年です。NTPサーバの日付がどうなっているのか気になり確認しましたところ、2月29日と表示されました。明日3月1日と表示されれば、カレンダ部のプログラムは大丈夫なのかなと考えます。
オブジェクト自体はベクター殿のストレージをお借りしています。
https://www.vector.co.jp/vpack/browse/person/an051501.html 免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。