さくらのIoT

前回のコラムでは、モデムトレースを試すためのセキュアモバイルコネクト評価用クラウド環境構築例を解説いたしました。このコラムでは、モデムのログが取得できるようにnRF9160DKボードの設定について解説いたします。

モデムトレース有効化作業手順

nRF9160のチップにモデムトレースが有効になったSerial LTE Modemアプリケーションと、対応したモデムファームウェアを書き込みます。

nRF9160DKの用意

さくらのクラウドのコントロールパネルに登録したマルチカードSIMをnanoSIMサイズに切り出します。

nRF9160DKボードの電源スイッチがOFFになっているのを確認し、nRF9160DKボードに挿入します。

その後、nRF9160DKボードをmicroUSBケーブルでPCに接続します。

ファームウェア/アプリケーションの書き込み

①nRF Connect for Desktopを起動します。
(注:Quick Start が開いたら閉じてください。)

②APPSの中からCellular Monitorをインストールします。

③インストールが完了したらCellular MonitorをOpenボタンで起動します。

④Trace方法のHow toが表示されますが、今回はこの方法は使わないので「close」で閉じます。

⑤nRF9160DKのスイッチをONにします。
正常に認識されている場合、「SELECT DEVICE」をクリックすると、シリアルポートを持つデバイス一覧が表示され、その中にnRF9160DKが出てきます。(PCの持つシリアルポート次第でUnknownが表示されたりされなかったりしますが影響ありません。)
nRF9160DKを選択します。

⑥「Program device」をクリックします。
nRF9160DKが認識され左側にメニューが表示されますので、左下の 「ADVANCED OPTIONS」を開き、「Program device」をクリックします。

⑦Serial LTE ModemのSelectをクリックします。
Program sample appという画面になったら、Serial LTE ModemのSelectをクリックします。

⑧「Program」をクリックします
Program Serial LTE Modemという画面になったら、Modemと、Applicationそれぞれにチェックが入っていることを確認し、「Program」をクリックします。

nRF9160DKに乗っているnRF9160への書き込みが開始されるので完了を待ちます。

⑨書き込みが成功し、完了したらCloseボタンで閉じます。

各機能のシリアルポート割り当てと、トレース機能の動作確認

nRF9160DKが持つ複数のシリアルポートのうち、どの機能のポートがPCに何番のポートとして認識されているか確認します。またFWが正常に書き込まれ、トレースが出力されていることを確認します。
前項の手順後、nRF9160DKのボードは電源ONで繋いだままを想定して進めます。

ATコマンド用シリアルポートの確認

①Cellular Monitorの「ADVANCED OPTIONS」の「Terminal serial port」をクリックします。
この時リストに出てくるシリアルポート3つがnRF9160DKが持つシリアルポートになりまので、控えておきます。
(注:この記事ではCOM3~5として見えていますが、PCにより異なるので注意してください。)
この3つのポートのうち、いずれかがATコマンド用になりますが、環境により番号や認識順が変わるため、実際にコマンドに応答があるかどうかで、ポートを特定する必要があります。
Cellular Monitorとしては「Terminal serial port」自体は使用しないので「Deselect」を選択しておきます。

補足:設定について

Deselectにしておかないと対象のシリアルポート占有されてしまいTera Termでそのシリアルポートがオープンできなくなります。

②Tera Termを起動し、「ファイル」-「新しい接続」を選択します。
(注:ここからはTera Termでの作業になります。)

③シリアルを選択し、ポートから先ほど控えた3つのシリアルポートの内のいずれかを選択し、「OK」をクリックします。
(ここではCOM3を選択して説明します)

エラーなく正常にシリアルポートをオープンできていれば次に進みます。

④シリアルポートの設定を行います。「設定」-「シリアルポート」を選択します。

⑤下記内容でシリアルポートを設定し、「現在の接続を再設定」をクリックします。

  • スピード:115200
  • データ:8bit
  • パリティ:none
  • ストップビット:1bit
  • フロー制御:none

⑥続いて端末の設定を行います。「設定」-「端末」を選択します。

⑦下記内容で端末を設定し、「OK」をクリックします。

  • 改行コード受信:AUTO
  • 改行コード送信:CR+LF
  • ローカルエコー:ON

⑧この状態でキーボードから「AT」と入力しEnterキーで送信します。
OKが帰ってきたら、選択したシリアルポートがATコマンド用ポートとなります。
OKが返ってこない場合、選択したシリアルポートが間違っているので、ターミナルを閉じ、違うシリアルポートを選択して再度同様の手順で確認を行ってください。

補足:シリアルポートを控える

本ポートはこのPCでnRF9160DKを使う際のATコマンド用ポートになり、のちほど使用しますので、控えておいてください。

Modem Trace serial portの確認

モデムトレース用のシリアルポートがどれなのかを、実際にCellular Monitorアプリでトレースの取得を試行して調べます。

①Cellular Monitorアプリの左欄の設定を下記の様に設定します。

  • TRACE OPTIONS → Modem trace database:Autoselect。モデムのファームウェアバージョンごとの違いを自動検出して対応します。
  • TRACE OPTIONS → Modem trace serial port:今回の探索箇所です。3つのポートの内、ATコマンド用を除いた残り2つのいずれかを選択してください。
  • TRACE OPTIONS →Reset device on start:OFF。Resetを頻繁に繰り返すと接続処理が不可能になるモードにnRF9160が入るため、OFFが無難です。
  • TRACE OPTIONS →Opne in Wireshark:ON。トレースの取得開始とともにWiresharkを立ち上げて取得データを表示します。
  • TRACE OPTIONS →Save trace file to disk:ON。基本は上記の自動で開くWiresharkに表示されるデータで十分ですが、この設定で自動で保存されるこのファイルからWireshark用データをあとから生成したりできます。
  • ADVANCED OPTIONS→Terminal serial port:Deselect。Cellular MonitorアプリにATコマンド用ポートを使った制御は行わせません。(注:Deselectにしておかないと対象のシリアルポート占有されてしまいTeraTermでそのシリアルポートがオープンできなくなります)

②この状態で、左上の「Start」をクリックすると、下図のようなダイアログがでます。
こちらのダイアログは閉じないでください。また、同時にWiresharkが自動で起動してきます。

③このダイアログはトレース用シリアルポートにモデムから流れてくるデータを見て、モデムのファームウェアバージョンを自動で確認しています。
正しくトレース用シリアルポートが選択されていてファームウェアバージョンが確認できると、自動でダイアログが閉じます。
この後の操作で、モデムを少し動作させてトレース用シリアルポートにデータを流します。
(注:ファームウェアバージョンが確認でき次第自動で閉じるので、モデムを動作させる前に閉じることもあります。)

また、Wiresharkは下図のようにキャプチャ中の状態になります。
表示列やウインドウ構成は普段のWiresharkの使い方により異なることがあります。

④続いて、前項Tera TermでATコマンド用ポートを開いているか確認します。
閉じていた場合はATコマンド用シリアルポートの確認の時と同じようにシリアルポートを開きます。

⑤この状態でキーボードから、「AT」と入力を追加しEnterキーで何度かおくります。

すると、ATコマンド送受に伴うトレースデータがCellular Monitorアプリに到着し、ファームウェアバージョンが解析され自動でダイアログが閉じます。
もしここでダイアログが閉じない場合、TRACE OPTIONS → Modem trace serial portで選択したシリアルポートがモデムトレース用のものではなかったと思われます。
その場合、今回選択しなかったもう一つのシリアルポートを選択しなおして同じ作業をやり直してみてください。
以降のトレースデータは自動起動したWireshark側に送られ、そちらで表示/記録されます。

Wireshark側ではトレースデータとして、ATコマンドの応答のOKについてのデータが記録されます。
若干Cellular Monitorアプリ側でバッファされてからWiresharkへ送られるのか、数手手前の操作が表示される印象です。

この状態になれば正しいトレースデータ用シリアルポートが選択されていることになります。
このシリアルポートを控えておきます。

⑥Cellular Monitorアプリの左上の「Stop」をクリックし、トレースの取得を停止します。

取得が停止され、アプリは待機状態になります。
今取得したデータはRAW file nameに表示されているファイルに保存されています。ただし別途Wiresharkで見るデータに変換が必要です。(注:Wiresharkの方で個別に保存したほうが扱いやすいかもしれません。)

⑦Wireshark側ではキャプチャ動作が自動で停止し、取得したデータが表示されている状態になります。必要に応じてファイルから保存で取得データを保存してください。

以上で、nRF9160DKのモデムトレース有効化設定と確認が完了となります。
次のコラムでは、正常系のトレース取得方法を解説します。
モデムトレースを利用したさくらのセキュアモバイルコネクトのLTE通信デバッグ方法(4)

2024年2月公開