株式会社インターネットイニシアティブのSoftSIMを動かしてみた

こんにちは。加賀デバイスのNordic Teamです。 前回のコラムで株式会社インターネットイニシアティブ(以下IIJ)のSoftSIMがリリースされた記事を書きましたが、今回はそのSoftSIMの動作を試せるファームウェアをIIJ様から頂く事が出来たので、試した内容を記事にしたいと思います。 SoftSIMを使用するにはSoftSIMを入れるデバイスのIMEIをIIJ様のシステムに登録する必要があります。そのため、弊社のnRF9160 DKに搭載されているnRF9160のIMEIを登録して使用出来るようにして頂きました。 現時点ではSoftSIMを使用する方法として、SoftSIM専用のATコマンドを使用する方法と、SoftSIMの制御をお客様のプログラムに組み込む方法の2通りがあると聞いています。頂いたファームウェアはNordicのSerial LET ModemのサンプルプロジェクトにSoftSIMのライブラリを入れたものなので、SoftSIM専用のATコマンドを使用します。 評価環境は下記となります。 ハードウェア:nRF9160 DK(SIMカード未挿入)アプリケーションファームウェア:IIJ様から受領したファームウェア(Serial LET Modem + SoftSIMライブラリ)モデムファームウェア:MFW v1.3.6 では早速試してみたいと思います。 起動させた直後ではAT%CSUS?の応答が”0″となっていて、物理SIMを参照するようになっています。またAT+PSOFTSIM=start?でSoftSIMの状態を確認しても”0″となっていて動作していません。SIMカードを挿していないのでIMSIやCCIDを確認してもERRORとなります。 続いてAT+PSOFTSIM=start,1を実行すると、自動で再起動してSoftSIMとしての動作が開始します。この状態でAT%CSUS?を確認すると、応答が”2″になりSoftSIMを参照している事が分かります。AT+PSOFTSIM=start?でSoftSIMの状態を確認すると”1″となっていてSoftSIMしての動作を開始している事が分かります。SoftSIMライブラリの中にはIIJ様のSoftSIMのプロファイルをサーバーからダウンロードする用にBootStrapプロファイルが事前に用意されていて、そのIMSIやICCIDを確認する事が出来ます。このプロファイルは実際に使用するSoftSIMのプロファイルをダウンロードすると見えなくなります。 AT+PSOFTSIM=get_profile_listとAT+PSOFTSIM=get_order_infoとを実行する事で、現在のプロファイルが確認出来ます。 PRE-GLOBALの表記はSoftSIMライブラリで事前に用意されているプロファイルとなります。 続いて、SoftSIMのプロファイルをダウンロードするためにAT+PSOFTSIM=start_otaを実行します。ダウンロードが終了すると自動でデバイスが再起動します。 AT+PSOFTSIM=get_profile_listでプロファイルを確認すると、プロファイルが2つ確認出来ます。SoftSIMのプロファイルをダウンロードした直後はGLOBAL SIMとして動作していて、ローミングで接続されます。先程のPRO-GLOBALの時と比べて、ICCIDやIMISの値が変わっているのが確認出来ます。 IIJ様のプロファイルに切り替えるためにAT+PSOFTSIM=do_switch_profile:2を実行します。プロファイルが切り替わると自動でデバイスが再起動します。 IIJ様のプロファイルに切り替わり、IMSIも変わっているのが確認出来ます。また、この状態でネットワークに接続出来ている事も確認が取れました。 今回のように、NordicのSerial LTE ModeにSoftSIMライブラリを組み込んだものであれば数個のコマンドを入力するだけでSoftSIMを使用する事が可能となります。 SoftSIMを使用するためには、アプリケーションプログラムを作る時に注意すべき点がいくつかあります。  ・SoftSIMをダウンロードするためのRAM設定 ・SoftSIMの保存先の設定 ・SoftSIMの起動/初期化処理  ・・・など これら設定はアプリケーションごとで変わってきます。また、アプリケーションプログラムをFOTA(Firmware Over-The-Air)するかどうかにもよって変わってきます。 nRF9160でSoftSIMを使いたい方は弊社のお問い合わせ にご連絡ください。 今後もNordicの紹介及びコラムにて色々な情報を公開致しますので是非ご確認ください。 また、Facebookでも随時情報を公開しておりますので合わせてご確認ください。

無償公開中 RISC-V 省電力コアの電力効率向上

こんにちは。加賀デバイスのEfinix Teamです。今回は2023年4月にご紹介した、Efinix FPGA Sapphire SoCで高効率動作するRISC-Vコアについて更なる電力効率の向上が確認できた件をお知らせいたします。  株式会社ウーノラボ 株式会社ウーノラボ は、2023年3月に提供を開始したEfinix®Sapphire SoC への実装用Trinita®1ステージコア について、電力効率が2.1倍(T20)/ 1.8倍(Ti60)に向上した無償評価版(暗号化・1時間の使用制限付き)をGitHubに公開しました。Efinix®Sapphire SoCとウーノラボ®Trinita®(トリニタ)1ステージRISC-Vコアの融合によるさらなる高効率動作をお試し頂けます。なお、2024年4月現在 1ステージコア の性能向上にともない、2ステージコア は提供終了となりました。 ※Trion®シリーズ ・ Titanium シリーズに対応 Efinix®Sapphire SoCの VexRiscvコア(6ステージパイプライン)をTrinita®1ステージコア(非パイプライン) に置き換えることによる高効率動作についてのご紹介 【Trinita®1ステージRISC-Vコアの特長】 Trinita®1ステージコアは特許技術により命令の読み出しステージ(IF)を削除し、1命令サイクルを1ステージ化して1クロックで処理することで、処理に無駄のない高いエネルギー効率を実現します。命令メモリとデコーダを直結して動作するため(インストラクション・レジスタ不要)、最も得意なのは比較的コンパクトなサイズのソフトウェアを処理遅延なく実行することです。 ※内部メモリは大容量ソフトウェアの格納には適しませんが、リアルタイムOSの格納は可能です。※Bootloader と外部メモリを使用すると、より大容量のソフトウェアを実行できますが、2024年4月現在、外部メモリは対応準備中です。 また、Trinita®1ステージコア にはBootloader が実装されており、ソフトウェアを Flash Memory の特定のアドレスに書き込むことで、FPGA デザインをコンパイルすることなく、ソフトウェアを差し替えることができます。 【用途例】 高いエネルギー効率を実現するTrinita®1ステージコアの用途として、バッテリー交換が困難な場所で常時動作し続けることが求められるセンサノードなどのIoT機器やヘルスケア用途を始めとする様々なモニタリング機器への組み込み、画像処理のエッジコンピューティングなどが挙げられます。 【Sapphire(VexRiscv) とTrinita®1ステージコア の性能比較】 Trinita®1ステージコア のDMIPS/MHzはSapphire(VexRiscv) よりも高いため、同一周波数ではより多くの処理を行うことができます。さらに、Trinita®1ステージコア は正真正銘の1ステージ1クロック動作を可能とすることから、条件分岐や割り込み命令の実行において、パイプラインのような先読み命令の破棄・再読み込み等の無駄な処理の発生もありません。つまり、Trinita®1ステージコアを実装することで、Sapphire(VexRiscv) と同等の性能を保ちながら、周波数を下げて低消費電力化を実現することが可能となります。 ※Efinix®Sapphire SoCの動作周波数は 20 ~ 400MHz ですが、Trinita®1ステージコアは実行効率が向上しているため動作周波数を下げています。動作周波数やメモリ容量のカスタマイズはご相談ください。 ※改善前はSapphire SoC(VexRisc-V)の1.4倍の電力効率でした。 【SpO2 デモデザインの公開】…