アクセス解析
カウンター
AVRマイコンのSNTPサーバ

AVR版簡易SNTPサーバ



最終更新 2012.02.21

トランジスタ技術誌2009年1月号掲載の「AVRマイコンと電波時計を使ったSNTPサーバの製作」を改良したものです。
作品詳細については、トランジスタ技術誌をご購入ください。

開発及び基板頒布は終了しました。今後はKDBシリーズにて開発継続します。

作品全体図

○特徴
最新版(NTP補正対応 ver1.03.02)における特徴は、以下の通りです。
 ・基板サイズは100mm×110mmで、SNTPサーバとしては小型。
 ・消費電流は、LCDバックライト未使用時200mA。
 ・対応電波時計は、トライステート社製電波時計キット(TS-JJY01,TS-JJY02)です。
 ・タクトスイッチからの任意時刻設定(スタンドアロン動作など)
 ・時刻誤差1秒以内(ちゃんと補正されていれば、SNTPサーバ自体は0.1秒以内のはず)
  参考情報:ntp.nict.jpとの時刻誤差(補正が正常に行われている場合)
   電波時計補正:平均50ms、NTP補正:平均15ms
 ・搭載プロトコル(ARP,IP,TCP,UDP,SNTP,NBNS,HTTP)
 ・キャラクタ液晶への情報表示
  日時表示(JST(日本標準時)、UTC(世界協定時))
  ネットワーク情報(IPアドレス,ネットマスク,ゲートウェイ)
  物理的情報(MACアドレス,ENC28J60レビジョン)
  タイマ的情報(DHCPリニューアルタイマ,補正周期タイマ,配信周期タイマ)
  履歴情報(時刻補正・配信履歴(計16個))
 ・Webページによる設定・閲覧機能
  ネットワーク設定(IPアドレス,ネットマスク,ゲートウェイ)
  NTP参照サーバ設定(IPアドレスによる)
  NTP配信(ブロ−ドキャスト)アドレス・周期時間設定
  時刻補正・配信履歴(16個、クリア機能つき)
  NTPクライアントアクセス履歴(16個、、時刻補正量の表示・履歴クリア機能つき)
  イベント発生履歴(16個、履歴クリア機能つき)
 ・リモートからのリセット機能(UDP 10001にアクセス)
 ・テスト用MACアドレス付きで、動作確認しやすい。(運用には使用しないこと)
 ・シリアルループバック試験モード(組み立て後の確認や試験に使用)
 ・GPLv2及びBSD修正版ライセンスにより、商用にも転用可能。
 ・ソースコードが入手できることにより、自社内で独自に機能拡張が可能。

○使用・応用例
 ・ダイアルアップ環境や、インターネットと隔離されているLAN環境での時刻同期
  (無線LAN使用禁止区域内とか、LANケーブルをルータやハブから持っていけない場所など)
 ・低消費電力でコンパクトにローカルのタイムサーバを持ちたいとき
 ・パソコンでのタイムサーバでは精度が足らない場合の、時刻源など
  (WindowsでのNTPサーバ運用より、かなり時刻精度がよくなります)

○基板

・基板上の部品
 6ピンのヘッダは、ISP書き込み用の端子です。(動作時はSPIの通信線になります)
 CN1とJP1は、機能として不要です。(外部回路との同期に使うもので、実装の必要はありません。)
 イーサネットコントローラにはマイクロチップ社のENC28J60を搭載
 EIA574コネクタの信号は、DTE仕様(パソコンと同じコネクタと信号配置)です。

・KTXO-18Sについて
 マイコン及び時計機能ののクロック源は、KYOCERAのKTXO-18Sを使用しています。
 現在では入手困難のため、YS DESIGN STUDIOさんのKTXO-18S互換品をご使用ください

・マイコン
 マイコンには、ATMELのATmega328Pを使用します。
 電源電圧によっては、入力ピンの判定レベルが仕様を満たさないことがあります。
 基板面積の制約上レベル変換回路を省略していますので、ENC28J60とAVR間にレベル変換の回路を挿入してください。
 (下記例は、ねがてぃぶろぐさんの記事を参考にしたものです)

トランジスタ足加工  ・材料
  2SC1815 1個 4.7kΩ1/6W 1個 10kΩ1/6W 1個
  熱収縮チューブφ2mm 2cmくらい

 まず、2SC1815の足を加工します。
 モールド部分が4mmほどあるので、足の部分は3mm以内にしたほうが良いです。
 (スペーサが10mmなので。もっと長いスペーサを使用すれば、余裕をもって加工できます。)
 ベース端子は根元から曲げ、3.8mmくらいの長さのところで曲げます。
 (後でENC28J60の足の間(4-5間)を通すのでピン1.5個分)
 コレクタ端子がベース端子に接触しないよう確認します。
 エミッタ・コレクタは、2mmくらいで切断します。


3.3V→5V変換回路

 で、まぁこんなふうに(笑)。ENC28J60と93C46間に入れます。
 ENC28J60真横の直線パターンをカットして、レジストをはがします。
 3.3Vは、ENC28J60の25ピンから横に抵抗を延ばすと、短く綺麗に仕上がります。
 この際、ベース〜25ピン間は熱収縮チューブなどで絶縁しないと、他のピンと接触します。
 特に、4-5番ピン間は注意。
 Vcc(5V)の10kΩは、近くでは無理なので93C46の裏かATmegaの18-20番間に入れるか、
 ISP端子の1-2番間に入れます。綺麗なのは、ATmegaの裏かな。


加工後基板写真
 加工した後の写真です。
 白い線はブザーを付けているので、関係ない線です。


・リンクLED、動作LED
 リンクLED及び動作LEDは、PulseJackの内蔵LEDを使用しました。

・外部電源
 本基板への供給電圧は、+7V〜+9Vです。
 φ2.1のプラグで、センターは+でも−でもOKです。
 基板上ではダイオードブリッジとリセッタブルヒューズを通った後、3端子レギュレータで+5Vと+3.3Vを生成します。
 +5VはAVR・液晶・ADM232ANの電源として、+3.3VはENC28J60の電源として使用します。

○ソフトウェア
・プロトコル
 搭載しているプロトコルは、ARP,IP,ICMP,TCP,UDP,NBNS(NetBIOS over TCP/IP),SNTP,HTTPです。

・キャラクタ液晶について
 キャラクタ液晶の有無は電源投入時に自動判定しますので、接続しなくても動作できます。
 運用途中でアクセスを禁止したり、許可することができます。

・MACアドレスについて
 秋月電子もしくは本サイトのMACアドレス書き込み済93C46のより読み込みできます。
 書き込まれていない場合には、ソフトウェアのデフォルト値が使用されます。

・Webブラウザでの設定・確認
 動作イメージのページを作りました。(設定・クリアはできません)
 入手する前に、操作のイメージが知りたい場合などに活用ください。

○ライセンス
 ソフトウェア等のライセンスは、GPL(GNU General Public License)と修正版BSDライセンスのデュアルライセンスとします。
 どちらかを選択し従ってください。
 ver.1.03.00以降はソースコードにパスワードをかけてありますので、ソース入手希望の方はメールにてパスワードを問い合わせください。

○ダウンロード

ダウンロードファイル
回路図ver.1.00
外形図ver.1.00
ファームウェアver.1.04.00
ソースコードver.1.04.00(パスワードロックしてあります)
取扱説明書2011.08.24版
部材表ver1.0用 (3.3Vは電流確保のためTA48033Sを使用してください)
旧バージョン
ATmega168版トランジスタ技術誌のダウンロードサービスをご利用ください(アップデートは終了)
ATmega328版ver0.07.02 2010.03.26
応用例(サポート外)ATmega328版の同期確認LEDを圧電ブザーに変更し時刻が来たらジングルを鳴らす
(毎正時に「ピピッ」・30分に「ピッ」・任意4点に「ピピッ×4回」)


○ソフトウェア改版履歴

2010.09.03
 ver1.00
  初版
2010.09.10
 ver1.01
  NTP問い合わせしていないのに外部から時刻が設定できてしまうので、要求中フラグを見るようにした。
  上記異常のイベント追加。
  未使用イベントの整理。
  イベントのENC28J60受信エラーを「ENC28J60 RECEIVE ERROR」に変更。
2010.09.17
 ver1.02
  DHCP初期値60秒に変更(早く回復できるように)
  DHCP失敗(DISCOVER)時、強制同期ボタンでDHCPシーケンスを実行できるようにした。
  Web画面のブロードキャスト時間表示間違い(64434->65534)
2011.07.17
 ver1.03
  容量不足のためTIMEプロトコル削除。
  NTPタイムアウトイベントログ表示に、サーバ位置を入れるようにした。(どれが悪いかわかるように)
  時刻の補正量を表示できるようにした。NTPでは秒、ミリ秒。電波時計では秒のみ。
  IPアドレスに0が入るようにした。(半分バグ、半分仕様ではある)
  イベントログにリセット要因を付加。(再起動してても、原因が特定できないので)
  Webページの電源再投入メッセージ削除。(設定変えたら、電源再投入してね。一応。)
2011.07.23
 ver1.03.02
  補正履歴の最後が表示されなかった。
  DHCPのメッセージが画面を上書きしてしまうことがあるのを修正。
  AVRStudioでビルドできるようにした。
2011.08.09
 ver1.03.03
  GoogleCromeからWebページが表示できない対策。
2011.08.21
 ver1.04.00
  TCPのソケット数を2個に増やして、Webブラウザ表示ができなくなるのを根本的に修正。
  ループバックテスト削除(容量不足のため)
  MACアドレス編集機能削除(容量不足のため)


○注意
 ・回路や部材表、ソフトウェアには不具合・間違いがある場合があります。よく確認のうえ使用してください。
 ・趣味によるプロトコル構成・ルーチンなので、信頼性を必要とする用途には適しません。
 ・当ページに掲載されている文章やソフトウェア等は、事前通知なしに変更されることがあります。
 ・各プロトコルやICの詳細については、解説書や各メーカーのHPなどを参照ください。

○免責
 ・個人的な趣味で作成していますので、動作や安全性について保証するものではありません。
 ・この回路およびソフトウェアを使用したことにより発生した、直接・間接的ないかなる損害も責任を負いません。
 ・また、回路やソフトウェアの不具合に対して、修正する義務を負いません。


戻る


(c)2009-2011 Junnichi Tomaru