Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

メーターの自動読み取り

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

Simulink® で、Simulink でのメーターの自動読み取りの例を検索できます。

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

ファイルから記録したデータを使用してこの例を実行するには、Communications Toolbox™ が必要です。

信号をリアルタイムで受信するには、さらに、以下の SDR デバイスのいずれかと、対応するソフトウェア アドオンが必要です。

  • RTL-SDR 無線機と Communications Toolbox Support Package for RTL-SDR Radio アドオン

  • ADALM-PLUTO 無線機と Communications Toolbox Support Package for Analog Devices® ADALM-PLUTO Radio アドオン

詳細については、"Software-Defined Radio (SDR) 情報ページ" を参照してください。

背景

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

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

  • データ転送速度: 32768 bps

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

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

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

例の実行

例を実行すると、以下が行われます。

  • 受信機はシミュレーション パラメーターを初期化し、AMR パラメーターを計算します。

  • データ ビューアー表示には、メーター ID、消費情報、および商品の種類が示されます。

  • シミュレーション ループで、信号ソース、物理レイヤー、メッセージ パーサー、およびデータ ビューアーを呼び出します。

  • 処理ループは、フレーム時間を使用して無線時間を追跡します。

  • データの取得ごとに表示が更新され、最新の消費情報と一意のメーター ID が表示されます。

パラメーターの初期化

既定の信号ソースは 'File' です。この場合、記録されたベースバンド信号ファイル amr_capture_01.bb を使用して例が実行されます。RTL または ADALM-PLUTO SDR を使用して例を実行するには、helperAMRInit.m ファイルの呼び出し時に signalSource の設定を変更します。signalSource の有効なオプションは、'File'、'RTL-SDR' および 'ADALM-PLUTO' です。

signalSource = 'File';
initParam = helperAMRInit(signalSource);

% 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 つの主要な部分があります。信号ソース、物理レイヤー、メッセージ パーサー、およびデータ ビューアー。

信号ソース

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

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

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

  3. ''ADALM-PLUTO'': 1.0 Msps のサンプル レートの ADALM-PLUTO 無線

"RTL-SDR" または "ADALM-PLUTO" を信号ソースとして割り当てる場合、例は、指定した無線機 (無線アドレス '0' の RTL-SDR 無線機または無線アドレス 'usb:0' の ADALM-PLUTO 無線機のいずれか) のコンピューターを検索し、信号ソースとして使用します。

物理レイヤー

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

RTL-SDR 無線機は、225-300 kHz または 900-2560 kHz の範囲のサンプリング レートを使用できます。ADALM-PLUTO 無線機は、520 kHz-61.44 MHz の範囲のサンプリング レートを使用できます。1.0 Msps のサンプリング レートは、マンチェスター符号化されたデータ ビットごとに十分なサンプル数を作成するために使用されます。ホッピング パターンの各周波数では、すべての AMR データ パケットが送信されます。周波数ホッピングは、時間の経過ともに信頼性を向上することができます。すべてのパケットが各周波数ホップに送信されるため、この例では 1 つの周波数を監視するだけで十分です。無線機の中心周波数は、全区間のシミュレーション ランタイムに対して 915 MHz に調整されます。

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

ビット シーケンスで既知の 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 または ADALM-PLUTO を使用して、この例を住宅街で長時間にわたって実行すると、複数のメーターの測定値が表示されます。

AMRExampleApp ユーザー インターフェイスを使用して、AMR 信号をさらに調査することができます。このアプリでは、信号ソースを選択して、RTL-SDR または ADALM-PLUTO の中心周波数を変更できます。このリンクは、下に示している AMRExampleApp アプリを起動します。

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

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

参考文献