Nordic

Nordic nRF91シリーズ LTE通信ログの取得方法

2024.02.09(2024.02.22 更新)

こんにちは。
加賀デバイスのNordic Teamです。

ネットワーク機器やIoT機器の開発していると様々トラブルに遭遇する事があります。
実際に弊社にも下記のような様々な問い合わせがあります。
 ・基地局は見つけられるが、そこから先が接続出来ない。
 ・接続までに時間がかかる。
 ・基地局までは接続出来ているが、その先のクラウドアプリケーションと通信が出来ない。
 ・通信中に何かしらの理由で、急に切断される。
そのようなトラブルの時に基地局とどのようなやり取りをしているか通信ログを見たいと思った事はありませんか?

Nordic セルラーIoTモジュール nRF91シリーズでは、Modem Traceの機能を使ってLTEの通信ログを見る事が出来ます。
この機能ではATコマンド、無線リソース制御(RRC)、非アクセス層(NAS)、およびインターネットプロトコル(IP) レベルまで可視化出来ます。

通信ログはUARTポート経由とSWDポート(デバッグポート)経由の2種類から選択可能となっています。
どちらを使用しても通信ログは取得可能ですが使用するツールが異なります。

UARTポート経由の場合は、Nordicのツールがそのまま使え、実際の動きをWireshark(通信ログ)を見ながら評価が出来ます。そのためATコマンドを入力したり、クラウドアプリケーションからの指示を試しながら、動作がどのように変化するかすぐに確認出来ます。

SWDポート経由の場合は、Segger社のJ-Link RTT Loggerを使用します。SWDポート経由は使用するツールが違うため実際の動きを見ながらの評価は出来ません。取得したデータを後で解析する形で通信ログが確認可能です。メリットとしてはUARTが占有されないため通信ログ取得以外にUARTポートを使用する事が可能となります。

実際にそれらのポートから通信ログを取得してみたいと思います。
評価に使用したソフトウェアは、Nordicの開発環境:nRF Connect SDKの中になるSerial LTE Modemを使用しました。

◢◤UARTポート経由の場合

UARTポート経由で通信ログを取得するためには、nRF Connect SDKのバージョンによって設定方法が変わってきます。
nRF Connect SDK v2.4.2以前まではソフトウェア(prj.confファイル)に下記項目を追加する必要があります。

 CONFIG_NRF_MODEM_LIB_TRACE=y

nRF Connect SDK v2.5.0以降であればビルド設定のSnippetsに”nrf91-modem-trace-uart”を追加します。

画像に alt 属性が指定されていません。ファイル名: -2024-02-22-151741-1.png

またPCソフトはnRF Connect for DesktopのCellular monitorを使用します。
Cellular monitorを最初に起動させると下記のような画面が表示されます。

SDKのバージョン(v2.0.1以上)やModem firmwareのバージョン(1.3.1以上)の指定があるためご注意下さい。

起動後にデバイスを接続すると下記の画面となります。

“Start”ボタンを押すと通信ログの取得を開始します。
下記のような画面が表示されて接続に時間がかかる場合はリセットボタンを押してみて下さい。


ATコマンドに対応したソフトウェアであれば、”start”ボタンの下にある”Refresh dashboard”(青色の枠)を押す事で、下記画面中央から右に示されているような、どのキャリアに接続しているか・電波強度はどの程度か・デバイスのIMEI・SIMのIMSI/ICCIDなどの様々な項目が確認出来ます。

左メニューバーの中段にある”Open in wireshark”(黄色の枠)のスライドバーをONして”start”ボタンを押すと、wiresharkも同時に起動するため実際に機器を動かしながら通信ログを見る事が出来ます。
Wiresharkが起動しても左メニューバーのCONNECTION STATUSのTRACEにチェックマークが入らない場合は、一度リセットボタンを押してみて下さい。

通信ログは左メニューバーにある”RAW file name”(緑色の枠)で保存されます。クリックすると保存先フォルダにジャンプしてファイルが確認出来ます。


保存された通信ログはそのままでは見れないためファイル変換が必要となります。
ファイル変換はCellular monitorを起動させた時(デバイスの接続前)の左メニューバーの”Open frace file in Wireshark…”(紫色の枠)で見る事が出来ます。


実際に開いた画像が下記となります。
どのようなATコマンドを発行したのか・応答はどのようなものか・基地局とどのようなやり取りをしているかなど、様々な情報の確認が出来ます。


◢◤SWDポート経由の場合

SWDポート経由で通信ログを取得するには、nRF Connect SDKソフトウェア(prj.confファイル)に下記項目を追加する必要があります。
 CONFIG_NRF_MODEM_LIB_TRACE=y
 CONFIG_USE_SEGGER_RTT=y
 CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_RTT=y

またPCツールにはSegger社のJ-link RTT Loggerを使用します。
このツールはNordicの開発環境である“nRF Command Line Tools”をインストールしたときに合わせてインストールされます。
もしくはSegger社からもダウンロード可能です。

J-Link RTT Loggerを起動すると下記のような画面となります。
必要な設定(赤枠部分)を行います。

Device name    :NRF9160_XXAA
Target Interface :SWD
Output file     :任意のパス(ファイルパスに日本語が入らないように注意してください)
それ以外はDefaultのままで大丈夫です。

上記設定を行ってトレースを開始すると、表示の最下部のデータ容量が増えていきます。

データ取得を終わりたい場合は、ツールの画面上で何かしらのキーを入力して、トレースを止めます。
ファイルの展開方法は先程と同様です。
データは先程指定してパスにありますので、Cellular monitorを起動させた時(デバイスの接続前)の左メニューバーの”Open trace file in Wireshark…”で展開します。

◢◤まとめ

NordicのnRF91シリーズを使用すれば、実際の通信ログを簡単に見る事が出来ます。
そのため、ネットワーク機器やIoT機器においてトラブルが発生した時に素早く現象が確認出来て、その対処方法も検討しやすくなります。

nRF91シリーズにご興味があったり、通信ログについてもう少し知りたい方は弊社のお問い合わせ にご連絡ください。

今後もNordicの紹介及びコラムにて色々な情報を公開致しますので是非ご確認ください。

また、Facebookでも随時情報を公開しておりますので合わせてご確認ください。

*WireSharkは,Wireshark Foundation, Inc. の登録商標です。
*SEGGER および J-Link は、SEGGER Microcontroller GmbH & Co. KG の商標または登録商標です。

Nordic コラム一覧

nRF91シリーズ新ラインナップ nRF9151 を発表

関連記事