最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

メーターの自動読み取り

この例では、Communications System Toolbox™ を使用して、Encoder-Receiver-Transmitter (ERT) 互換メーターが出力する Standard Consumption Message (SCM) 信号と Interval Data Message (IDM) 信号を処理することにより、公共事業メーターを読み取る方法を示します。ファイルから記録されたデータか、Communication Systems Toolbox Support Package for RTL-SDR Radio を使用してリアルタイムに受信した信号のいずれかを使用できます。

この例の Simulink® バージョンについては、こちらでも学習できます。

必要なソフトウェアとハードウェア

信号をリアルタイムに受信するには、次のハードウェアが必要になります。

  • RTL-SDR 無線機

さらに次のソフトウェアも必要になります。

Communications System Toolbox でサポートされる SDR プラットフォームのすべてのリストについては、ソフトウェア無線機 (SDR) 情報ページのサポートされているハードウェアの節を参照してください。

背景

メーターの自動読み取り (AMR) は、公共事業メーター (電気、ガス、水道のメーターなど) から消費データとステータス データを自動的に収集し、そのデータを請求や解析目的のためにユーティリティ プロバイダーに送信する技術です。AMR システムはパワーの低い無線周波数 (RF) 通信を利用して、メーターの測定値をリモート受信機に送信します。RF 伝送のプロパティには、以下が含まれます。

  • 範囲内の送信周波数: 910 ~ 920 MHz

  • データ転送速度: 32768 bps

  • オン-オフ キー付きマンチェスター符号化信号

SCM と IDM は、メーターが送信する 2 種類の通常のメッセージ タイプです。SCM パケットは、96 ビットの固定長で使用されるのに対し、IDM パケットは 92 バイトの固定長で使用されます。SCM メッセージと IDM メッセージのパケット形式を以下に示します [ 1 ]。

SCM メッセージと IDM メッセージの両方を送信できるメーターは、約 275 ms の間隔でこれらを同じチャネルで送信します。各メーターは、ホッピング パターンを使用して複数の周波数で SCM メッセージと IDM メッセージを送信します。しかし、実際の送信周波数、周波数ホッピング パターン、および送信間の時間間隔は、他の送信との干渉を避けるためにランダムに選ばれます。

例の実行

例を実行するには、MATLAB コマンド ウィンドウで AMRExample と入力するか、リンクをクリックします。この例では、メーター ID を消費情報と商品の種類と共に MATLAB グラフィカル表示で示します。データの取得ごとに表示が更新され、最新の消費情報と一意のメーター ID が表示されます。

受信機は例のパラメーターを初期化します。次に、AMR パラメーターを計算し、信号ソース、物理層、メッセージ パーサー、およびデータ ビューアーをループで呼び出します。処理ループは、フレーム時間を使用して無線時間を追跡します。

% Initialize Parameters
initParam = helperAMRInit;

% Calculate AMR system parameters based on the initialized parameters
[amrParam, sigSrc] = helperAMRConfig(initParam);

% Create the data viewer object
viewer = helperAMRViewer('MeterID', initParam.MeterID, ...
  'LogData', initParam.LogData, ...
  'LogFilename', initParam.LogFilename, ...
  'Fc', amrParam.CenterFrequency, ...
  'SignalSourceType', initParam.SignalSourceType);

start(viewer);
radioTime = 0; % Initialize the radio time

% Main Processing Loop
while radioTime < initParam.Duration
  rcvdSignal = sigSrc();
  amrBits = helperAMRRxPHY(rcvdSignal, amrParam);
  amrMessages = helperAMRMessageParser(amrBits, amrParam);
  update(viewer, amrMessages);
  radioTime = radioTime + amrParam.FrameDuration;
end

stop(viewer); % Stop the viewer
release(sigSrc); % Release the signal source

受信機コードの構造

このフロー チャートは、受信機コードの構造をまとめています。処理には、信号ソース、物理層、メッセージ パーサー、およびデータ ビューアーの 4 つの主要な部分があります。

信号ソース

この例では、2 つの信号ソースを使用できます。

  1. "ファイル": ファイルに書き込まれ、1.0 Msps でBaseband File Readerオブジェクトを使用して読み取られる無線信号

  2. ''RTL-SDR'': 1.0 Msps のサンプルレートの RTL-SDR 無線

信号ソースとして ''RTL-SDR'' を選択すると、この例は RTL-SDR 無線機を無線アドレス '0' でコンピューターで検索し、それを信号ソースとして使用します。

物理層

信号ソースから受信したベースバンド サンプルは物理層 (PHY) によって処理され、SCM 情報または IDM 情報を含むパケットが生成されます。次の図は、物理層の受信処理を示しています。

RTL-SDR 無線機は、225 ~ 300 kHz または 900 ~ 2560 kHz の範囲のサンプルレートを使用することができます。この例では、マンチェスター符号化データ ビットあたりのサンプル数を十分な数にするために、1.0 Msps のサンプルレートを使用します。無線機の中心周波数は 915 MHz に調整されます。これは全区間において固定となります。パケット全体がすべてのホップに送信されるため、1 つの周波数を監視するだけで十分です。周波数ホッピングは、時間の経過ともに信頼性を向上することができます。

受信した複素数サンプルは、振幅の抽出により振幅復調されます。オン-オフ キーをもつマンチェスター符号化は、ビット選択ブロックにクロック リカバリが含まれることを意味します。このブロックは、ビット シーケンス (送信でのアイドル時間を無視) を出力し、引き続き既知のプリアンブルについて確認されます。プリアンブルが一致すると、ビット シーケンスがさらに復号化されます。そうでない場合は、破棄され、次のシーケンスが処理されます。

ビット シーケンスで既知の SCM プリアンブルが検出された場合、受信したメッセージ ビットは 2 ビット エラーまで修復可能な短縮された (255,239) BCH 符号を使用して復号化されます。既知の IDM プリアンブルが検出された場合、受信機はメーターのシリアル番号と、Packet type (5 番目のバイト) から始まるパケット全体の巡回冗長検査 (CRC) を実行して、パケットが有効かどうかを検証します。有効な修正されたメッセージが、AMR メッセージ パーサー上で渡されます。

メッセージ パーサー

有効なメッセージの場合、次にビットが SCM または IDM 形式の特定のフィールドとして解析されます。

データ ビューアー

データ ビューアーでは、別の MATLAB Figure に、復号化されたパケットが表示されます。正常に復号化されたパケットごとに、メーター ID、商品の種類、AMR パケット タイプ、消費情報および取得時間が表示されます。データが取得され復号化されるたびに、アプリケーションでは、これらのメッセージから復号化された情報が表形式で一覧表示されます。表には、一意のメーター ID と最新の消費情報のみが表示されます。

また、メーター ID を変更して、データ ビューアーを使用してテキスト ファイルのログ記録を開始することもできます。

  • Meter ID - メーター ID を 0 (検出されたすべてのメーターを表示するために予約されている既定値) から表示したい特定のメーター ID に変更します。

  • Log data to file - 復号化したメッセージを TXT ファイルに保存します。保存されたデータは後処理で使用できます。

その他の調査

この例に付属するデータ ファイルには、1 つのメーターの測定値しかなく、915 MHz の中心周波数で取得されています。この例では、RTL-SDR 無線機を使用して、住宅街で長時間にわたって実行する場合は、複数のメーターの測定値が表示されます。

AMRExampleApp ユーザー インターフェイスを使用して、AMR 信号をさらに調査することができます。このアプリでは、信号ソースを選択して、RTL-SDR 無線機の中心周波数を変更できます。アプリを起動するには、MATLAB コマンド ウィンドウで AMRExampleApp と入力するか、リンクをクリックします。このユーザー インターフェイスは、次の図に示されています。

物理層、AMR メッセージ形式の詳細については、次の関数も参照してください。

複数の無線機を利用する場合の例については、amrMultipleRadios.m を参照してください。これにより、使用可能な無線デバイスごとに異なる中心周波数を設定して、1 つのメーターの周波数ホップ パターンを調べることができます。スクリプトは、2 つの無線用に設定されていますが、任意の数に拡張できます。

参考文献