JJYタイムコード発生器
by K.I
Index
要求仕様は以下の通り
- 疑似的なJJYタイムコードを生成する。
- 基本信号であるマーカ、0、1のそれぞれの信号を連続して発生する。
- 被測定対象からの信号を入力して、スルーレート等の評価をしたい。
頼まれて作ったものだが、単純に決まったコードを出すだけなので、そのうちに任意のコードを出せるようにしたいなぁ。
[top]
1つのタイムコードは1分間で1bit/秒の約60bitで表されるもので、非常に低速だがコードは長く複雑なので、CPUによる制御が適当と思われる。
もう少し具体的に、以下のような機能を想定してみた。
- 生成時刻の設定 →年月日時分設定、曜日は計算して自動設定
- ランダム信号の発生 →乱数により0、1信号をランダムに生成(マーカは規定通り)
- 基本信号の連続発生 →マーカ、0、1の信号切替え
- 連続生成時には、被測定対象からの出力のデューティを求める
- 外部での観測の同期用に、零秒時を除きマーカを出力する。
- 高速モードでは、100倍の速度で出力する。
- 設定項目は真面目にやるとかなり多いので、仮にDIPスイッチ等を使用するとそれだけでハードウェアが大きくなってしまう。
- 16行2桁のLCDに設定内容を表示し、カーソルキーで項目選択することで、回路規模を小さくし、且つ簡単なタクトスイッチのみで複雑な設定を可能にする。
- シリアルインターフェース →今回は使用しないが、将来的にPCへの接続プログラムを作成して複雑な解析を行なう事を考慮。
- 比較的低速であり入出力の端子数は少ないが、LCD表示器の接続やタクトスイッチは複数必要になることから、 MicroChipの 16F873を使用する。
- 28pin DIPパッケージ → 非常に小型である( SOPもある)
- RA×6、RB×8、RC×8の計22ポートのI/Oを使用可能 → ポート数が比較的多い
- UART、I2C、MicroWire等のインターフェース内蔵 → 将来的にシリアルI/O追加可能
- 10bit A/Dコンバータ内蔵 → 今回は未使用
- 128byteEEPROM内蔵 → 設定内容の記録に利用可能
- ICSP(In Circuit Serial Programming)対応
[top]
- 出力
- 40kHz連続出力 →停止可能
- タイムコード出力
- マーカ出力 →同期用
- リセット
- カーソル移動キー(上下左右)
- 設定キー
- キャンセルキー
- 5V電源 →LCD表示器の動作電圧の制約、PICは3V〜6V
- シリアルインターフェース
最終的には ePLL書き込み器の入力表示回路と同様の構成1とした。
ただ、ICSPをする場合にPB6,PB7に接続されている液晶モジュールを外さなくても良いように、1KΩの抵抗を2個所追加した。
1敢えて変える必要もないし、デバッグには同回路が使えるから。
[top]
タイムコードは、以下のように1ビット/1秒で表される1分間のデータである。
sec | signal | sec | signal | sec | signal | sec | signal | sec | signal | sec | signal |
0 | M | 10 | '0' | 20 | '0' | 30 | 8day | 40 | SU2 | 50 | week4 |
1 | 40min | 11 | '0' | 21 | '0' | 31 | 4day | 41 | 80year | 51 | week2 |
2 | 20min | 12 | 20hour | 22 | 200day | 32 | 2day | 42 | 40year | 52 | week1 |
3 | 10min | 13 | 10hour | 23 | 100day | 33 | 1day | 43 | 20year | 53 | LS1 |
4 | '0' | 14 | '0' | 24 | '0' | 34 | '0' | 44 | 10year | 54 | LS2 |
5 | 8min | 15 | 8hour | 25 | 80day | 35 | '0' | 45 | 8year | 55 | '0' |
6 | 4min | 16 | 4hour | 26 | 40day | 36 | parity1 | 46 | 4year | 56 | '0' |
7 | 2min | 17 | 2hour | 27 | 20day | 37 | parity2 | 47 | 2year | 57 | '0' |
8 | 1min | 18 | 1hour | 28 | 10day | 38 | SU1 | 48 | 1year | 58 | '0' |
9 | P1 | 19 | P2 | 29 | P3 | 39 | P4 | 49 | P5 | 59 | P6 |
sec | signal | sec | signal | sec | signal | sec | signal | sec | signal | sec | signal |
0 | M | 10 | '0' | 20 | '0' | 30 | 8day | 40 | JJY | 50 | ST1 |
1 | 40min | 11 | '0' | 21 | '0' | 31 | 4day | 41 | 呼 | 51 | ST2 |
2 | 20min | 12 | 20hour | 22 | 200day | 32 | 2day | 42 | び | 52 | ST3 |
3 | 10min | 13 | 10hour | 23 | 100day | 33 | 1day | 43 | 出 | 53 | ST4 |
4 | '0' | 14 | '0' | 24 | '0' | 34 | '0' | 44 | し | 54 | ST5 |
5 | 8min | 15 | 8hour | 25 | 80day | 35 | '0' | 45 | 符 | 55 | ST6 |
6 | 4min | 16 | 4hour | 26 | 40day | 36 | parity1 | 46 | 号 | 56 | '0' |
7 | 2min | 17 | 2hour | 27 | 20day | 37 | parity2 | 47 | 2 | 57 | '0' |
8 | 1min | 18 | 1hour | 28 | 10day | 38 | '0' | 48 | 回 | 58 | '0' |
9 | P1 | 19 | P2 | 29 | P3 | 39 | P4 | 49 | P5 | 59 | P6 |
- JJYのタイムコードは、40kHz或は60kHzの搬送波に振幅変調で1秒あたり以下の時間出力される。→それ以外の時間も10%のパワーで出力されている。
- 0.2秒 → マーカ
- 0.5秒 → '1'
- 0.8秒 → '0'
- 曜日は000〜110までがそれぞれ日曜〜土曜を表す。
- パリティPA1,PA2はそれぞれ時と分に対応している。
- PA1 = (20h+10h+8h+4h+2h+1h) mod 2
- PA2 = (40m+20m+10m+8m+4m+2m+1m) mod 2
[top]
[top]
[top]
[電子工作関連に戻る]