<- BACK

デコーダ


Arduinoで「IEC 60870-5」規格のパケットをデコードします。

PACKET PARSER / DECODER

Arduinoで受信プログラムを作成してみました。

10秒ごとにタイムパケット、必要に応じて機器に対するコマンドが送信されています。

ユーザーデータ領域はあくまでバイナリデータですが、稀にアスキー文字で"DCF39 TEST"のようにコールサインを送出することがあるようです。
DCF39 PACKET PARSER

CODE

v1.38 DOWNLOAD(.zip)up

パケットの処理は初めての領域で「たぶんこんな感じだろう」という自己流ですが、市販ソフト以上の機能を盛り込むことができたので満足です。
DCF39 PACKET PARSER

SYSTEM

※デモジュレータはNE565Nを使ったもの
MASK AND SHIFT

MASK & SHIFT

プログラミングの超初歩の確認!

1バイトに複数の情報があって切り分ける必要があるとします。そんな時は「ビット演算子」である「マスク」や「シフト」を使って加工します。
PARITY AND FCS

PARITY & CHECKSUM

通信理論の超初歩の確認!

ざっくり図のような検算を送信側・受信側双方で行うことによってエラーを検出します。BAUDOTのRTTYには出てこない概念ですね。
MSB AND LSB

MSB & LSBnew

通信理論の超初歩の確認!

書くときはMSBファースト、送るときはLSBファーストが一般的です。例外もあるので注意を払う必要があります。
時計表示

電波時計

LCDにタイムパケットを表示して電波時計風に。
DCF39 PACKET CSV

CSV FILE OUTPUT

ファイル出力をすれば統計をとって分析することもできます。

参考コード
DCF49 ANALYSIS

DCF49 24H ANALYSIS

DCF49を24時間記録して分析してみました。

取得ログ(.csv)

※2020年現在、アスキー文字でのコールサイン送出はやっていないようですね。