GIDトップページ 数理設計研究所


GID-GV試作機
GID-GV
地震電波観測用装置
(C) 数理設計研究所 矢澤正人
開始 2004/4/15 
改定 2007/3/21

概要 

もくじ

  • 49MHz帯の空電ノイズを受信する地震電波観測をおこなう装置
  • 受信機が出力する音声信号4chを2441.40625 sps/chでサンプリング
  • 各256サンプルごとに、各chの最大値と平均値をRS232で送信する
  • GID-ADCとワンチップマイコンで実現

GID-GV専用基板製作中

アートワーク・回路図

 安定供給と信頼性向上を目的に、50×80mmのGID-GV専用小型基板を製作しました。
 回路構成、使用部品は従来のGID-GVと完全に同じにしてあります。ケーブル部のみ、DB25の専用ハーネスを廃止し、標準的なモノラルイヤホンジャック(MJ-3536N)×4個に変更しました。 
 2007/3/23現在、基板業者からの納品予定日を過ぎていますが、業者と連絡が取れていません・・・。
 海外の業者を使っているのですが、メールの返事がありません。
 クレジットカードによる引き落としも行われていないので、出荷していないことは間違いありません。
 さらに催促しますが、他の業者への依頼も検討します。
アートワーク
回路図

通信

PC側ソフト

データ形式

  • ASCII 数字 "0"-"9" 固定長4文字+","=5文字 chあたり10文字、4chで40文字
  • 9600bpsだと、文字列を1秒間に24回送信できる
sample
0432,2572,0200,1503,0400.1405,0941,0236[cr]

ch0avg,ch0maxch1avg,,………ch3,max
  • 1秒毎にバッファを読むと適当にたまっている。これを読み出してラインに整列させる。
  • たいていは8ラインが読み出せ、これをLNとすると、平均値はLN回の加算/LN、最大値は一番大きいもの
  • まれに7や9があるが同じようにLNとして可変行を前提として処理すればよい。
  • Qとして4kバイトぐらいあれば、毎秒320文字だから10秒間のネボスケがいたとしても、読み忘れはない
  • もちろん起動時および再開時にはQバッファをフラッシュすること
Windows付属のハイパーターミナルでも利用可能
ハードを繋げて通信を接続すれば動作開始。

ソースコードとファームウェア外部仕様

ファームウェア内部仕様

ソースコード

20040622_gidgv.zip ZIP 12KB

外部仕様

  • 通信条件
    • 9600BPS 8Bit NP 1Stop
  • 電源ON
    • RTS=DTR=Hで電源ON
    • RTS=DTR=Lで電源OFF
    • 電源ON後1秒間待機してLED点灯。0x0d(CR)を3回送信してからタイマ割込み許可、通常処理開始
  • 通常処理
    • タイマ割り込みごとにADCを実行(1ch)
    • 4回の割込みでch0〜ch3を順にADC
    • ch3のADCを256回実行するごとに4ch分のMAX,AVGを送信
    • 動作中なにかを受信したらソフトリセット

ADC

  • 102.4us毎に割り込みでch0〜3を順次変換
  • =512step毎のタイマ割込み
  • 9765.625 sps/system
  • 2441.40625 sps/ch
  • バイポーラモード

初期化

  • 全バッファ、カウンタクリア、制御レジスタ設定
  • タイマ割込み停止
  • RS232受信を待機
  • RS232受信を検出したらCRを送信、タイマ割込みを許可してメインループへ

メインループ

  • 送信開始フラグ=Hなら送信処理を実行
  • 受信を検出したらソフトリセット

タイマ割込み

  • W、Statusの退避
  • ch0〜ch3を選択するカウンタをインクリメント
  • 選択したchをADC
  • ADC結果のABS、AVG、MAX処理
    • ABS 2の補数を演算
    • AVG ADC結果を3バイトバッファに加算
    • MAX MAX<ADC結果ならMAXを更新
  • ch3選択時は変換回数カウンタをインクリメントし、256回変換したら送信開始フラグを立てる
  • W、Statusの復旧

送信処理

  • PIC16F628AのUARTで実現
  • 全chのAVG上位2バイトとMAXを送信バッファにコピーしAVG,MAXをクリア ←次の計測までに終わらせる!
  • 値を10進数に変換
  • 送信文字列書式の作成
  • 送信

ハードウェア

回路図

  • GID-uPCを改造(GID-uPC + GID-ADC)で利用する
  • PIC16F628AのUARTは反転入出力なので外部にインバータ(74HC14)を置く
  • 高クロックで消費電力が大きいため外部電源が必要かもしれない
  • PIC16F628AのUARTは反転入出力なので外部にインバータ(74HC14)を置く

CPU

  • PIC16F628A 20MHz
  • 1Step時間 0.2us、1秒あたり 5000k step

ADC

  • GID-ADCを利用(ジャンパ線追加が必要)
  • 12bit8chADC、分解能1mV
  • MAX186ACPP
  • 24回送信*4ch*256回の平均化 = 24576SPS
  • GID-ADCのDB25コネクタの14番ピン同士と17番ピン同士を、それぞれジャンパ線で接続します。
  • 完成品としての価格(参考)
    • GID-ADC 完成品 \9500
    • GID-uPC キット \4000 + 組み立て費用 \2000 = \6000
    • フリー基板セット  \1220
    • ミニプラグ×4のハーネス \3000
    • RS232ケーブル9P-9P \450
    • 合計 \20170

GID-GV回路図 PDF 133KB
GID-ADC回路図 PDF 31KB

2004/9まで出荷していたバージョンの回路図 PDF 137KB

更新情報

試験中のバグ

  • 2005/9/18
    2005/9までに出荷したGID-GV付属プローブに、設計ミスがあることがわかり、設計を変更しました。
 試験信号として1kHz707mVACを使用していたが、入力LPFが1.5kHzであるためLPF部CRの精度誤差によりch間で30mVほどオフセットがあるように見えることがあったため、試験信号を500Hz707mVACに変更した。 

 数台製作したうちの1台で、得られるAVE電圧が他のGID-GVと比べ20mVほど低いものがあった。MAX電圧は他のGID-GVと同じ程度だった。
 GID-ADCとPC、ファームウェアは同じものを使用していたので、問題はGID-GVのハードウェアのどこかに限られる。
 問題のGID-GVの各所の電圧を測定したところ、PCから得られる負電圧が断線していることが判った。
 GID-ADC(MAX186)は、負電圧が無い状態でもバイポーラモードで計測が出来てしまうが、計測値は正確ではなくなる。
 断線を修正し、問題は解決。

 GID-GV回路内の電源線ジャンパを取り付け忘れていたが、PCによっては正常動作してしまう事例があった。
 PCのCOMポートに使われているドライバICの種類によっては、電源線が配線されていなくてもデータ線経由で電力が供給され、正常に動いてしまっているように見えることがある。
 動作試験では検査できないので、基板の目視確認に頼るしかない。

開発費の概算

動作試験手法

システム設計 3人日
ファームウェア 7人日
ハードウェア 2人日
動作試験 1人日
合計13人日 × 人日単価4万円 = 52万円
 0.707VACの最大電圧は1VDC、絶対値の平均は0.635Vとなる。

実験機材

  1. 発信器 テクトロ CFG253
  2. オシロ 日立VC-6725
  3. テスタ FLUKE67

試験手順

  1. 発信器で500Hz 707mVACをCh0に入力
  2. 最大電圧は1VDCとなる筈だが合わないのでGID-GVのMAXが1000mV位になるように調整
  3. 未使用の入力はGNDに接続
  4. AVGを読み取り、635mV近傍ならOK
  5. 以下、ch1〜3も同じ試験をおこなう

動作試験

ch0について、600回のデータ実測試験を実施し、MAXから算出されるAVEと実測したAVEの比較をおこなった。
  ch0 ch1 ch2 ch3
平均誤差(%) 0.731 0.722 0.725 0.723
最大誤差(%) 1.089 1.088 1.122 1.067


 4ch×600回=2400データの誤差の出現頻度
試験データ gidgv_test.xls (213KB)

 誤差は必ずプラス側に出ており、発信器の出力オフセットが原因であることをオシロで確認した。
 最大誤差は1.22%であり、発信器の出力に歪成分が含まれていることを考慮すると、結果は妥当。
 テスタもそこそこのものを使っているが、スペックの確かなGID-ADCのMAX186の値の方が信頼できる。

写真